19828829592343779721009762239897049597277629338964504778817837517938677159884370976475713288063910632391987604455093664905611141638191742833203793207808833455929494930906816997429630418012406645211829311657256914059860818880834384658844392730381920869147723671048854672178327263286621008294077238379063526615993841035529963611015599380946684062026162377133446446419708160620394227282826284270168720397832799000887351633983400912053391665082483266228995563944784091737171908360456611292963196565431178556447081354541340098514180165003505631891396912249696170496132074919670158371581273170780189823813971326210866600882896507683998994260291671312244499344982172950254581108868631327407914674172060386962925079486142733716047312090062418592274300714027715914339660347895297916850511310317884323473739588907847625820099519666299898854375954939783045950055822165054799066920738464029920169708436247416764415941220397721612307104962438158689533264766222425563339917456015590376683649466408682507503881102669549249503963127109466402262865637335795223104684622309663139018719072623857036871795650738619081746155053364712550532919367559568455506748109183292305893770716252097801032718509209834733867186902484881280757525955362227975987316610740727326962052035709805795777008596020124045566993708277843519043290459312528881691422694312740804710937067521852116595108329151132934549843127692418818670832766147074417840867341504673719748610195088629917890553603822273788371833215046096730986902673902456883417951127093275894913287584263774137180805920742958423959476304558728729754421110749314469417348313717075765788961963699673614925962616311392777310543318816770965689712857865305210908633113263824378761644155557300584892924452317285531518619912238724233143100651462733877042695211337281567402743641576856207478652037004323046622714846408696317800465828311578632803760471818257250756809601636825747927297101546942154335057674153067969836030727668299238583936353152026759701025954805551964191470584409874065275314451065886401714273220491005028575027891290203396183659689451412191666461610782703473178151439270467513079084355417074496068498578234281623451077779001890205184231727224213422040517172191089849751086902389065104569082935133647615244092897147302409198522827754272250036771806155443238754157026210830005456041183077262041220344940330029971266596985556145786938093277164354871144240875942276996593752340038551275320343095664910571712540633524998189517961010609522350524883451423855447287651864897276278306025087130006244702230691052402122793973663860822755792471472177709761606438228306713965937056805602919110751492369912431407933131904024472766368219886088417917601027636179060350784646117747567778206000896850104651080290999339817689746382409973920125028499776100788951924936109255800852428259453408242335917895456101289193134015357287492270218531216510845100242279371864166964802230703717016842619044452654853660746113725010460577858695290332321757477215939938852921182243605273723653162140152505303215373816376777335270158847309799124930554112708447671967365374198508468992743833778615658706620856611644726249803016079435098382378041670495543821446170619306344871245120722715189828673494042207053675256774786813950791975921151261576643592077947904291657148594723045727216718826560101684742792477384264882674423168779845945473128631266253867911390735406751289591577574712779882220936694537748018434058670661221031805157822604487786055014729264662479980152027188545148684608143585900085368894431455941654799304024210767389357293443907650708359025465466768739365746295268777531853419657410940482938127401297328396678619637526936039581530390552064908637804397965046179987441311318579174290427980840485308972951039406651202440489308810424073216421863221605590078049769378669338286449905393743089034929589094610267120709589288927341471995394880450624524639236923823222033071287569432195386424222995250901882003663555475793475906488249345401739812014487536224130811011701199873754901231953683039790345006704914171105840019279602393411743100339301234192652368054544994180426900824867275581384482708760097754909630337836185358186335071526734503442240668944594661366531985160848241184210264987248477581833882146327533933165833774613014547114545897300829555271243459506758173180854428793860108134357943238226798294751134630746277207381921423301658634699390562934590805344071934636412156733865797060361174872771750792289742992840119760128650727903567253440278250545014297993309292572286448781555787640461664156498861418861566242485534552659523998566505218777303449551640941443756409952656260915204575098271339606122252441867021474318329726029431066858345669977899074718572101722207341278093435411165920227003644491939649612464417386920935471909103294664827268638894788684452596807512520920136286528791503616860163141170356368168236805990650781172966730019884304212772127563563615676276155187936682422386856440840093781647781297829106704992152922189864869722485727246585877955496394397335262240346181064812638471185451363342357835936842578582548057980746909712534463592341951137317810200479974210075182336243028932075054660704754440823605300070299497195888676705311342715798112240125244399382379086616890832417215106981591441327835062443469225118339989131562640037593370174070973240676565290461205303227759157195332275063398398033519467839192197310717796388648558365889329574038733115474528489836396460972304658001996703923464341845156825617396083344251856932541392827980584234848272782744172965489208693627383984128004597177696392794233598594466414518717287261601713488478908916614525991947623620421044266842645999096210388945968321381431584129335972309976579375245693784864456557993904954454044327637387685923920669164722197100870835509438584266243120258000067966218858219628071897105779082970655129830090663736082383915262083780750664908420932726294991925628347209673379069291444579700713852235155840091274700260533058499754141027964761741214135370759532596671488852112627959636601371061594137919713004512564590345104596459879137641263284944393205816784739908398499698896487964131716343692600542443924314396602626162243102445397441378386232049526183680819283289029050514545083945928157953872083611671121630324493432469285018549665186093741628626213062561117707005982595150308500518148649634911007995704857958208806958072443810688309617228706883943459525077589891320782080792831438052169132389079407617601083505799752187382859693624128528697612388700350369885674180306891613997303255858138238346110887445925922976882056923078897533456526885573119198929135515866084472649704996849016606007735490807468412332586975080484330988102235216109738265018977290738497045040044090860196289406155824353723404386643441170042152915013666988120301142544702694811139325776495473214739835621683397077119573519166631478469574978686636458304369716934111902537515173606689003076492838453702502821596793756042761878785494029246162077080385234204701375342643369079084376732511467193569582955592744555390365178410395038959866027547590102239570543223583912073805466877809605988258619284076885804294906783624163702915546127797429990996640534405301864557635824989420992392052937591542434962626838727633914652978661695577788532234065120879262881688620639035916915669844467030609898616326928989372608343300904166823533977526088453663011493529501425613442993856975533825361984035817100912670829790510486009205031562590634863563760480054523104897099588618397735412527471049556072959799610260209265891384572305859255032599114349532479736782642548993169818506138767475564707972941444182084936385090477950922840969998631529767267407047295276759663973168659806887405433769485508415084476959652072202466141795239657198664333245156219006667391437832784255435599765297098602065704481773819570095791445999450613880118677183726546501044886967675289625328577001287429107917123023346053765988148291848981190191671704413486544056762552663702911129632444443969510283788370558810716084469045243188264673177582810067445198164024597312053974878766777960857319504720662978384487096301801472841858470344789647396032746665370126331361248527991028328563818936135831416852609386803722077413952393706295485243529661297882913025415254496330097571084919957890253814918626372499870068875204869391416182003645942388859273770363575841214466148284533952446740318562889176498112279811169445272082119576443167180494987847608125444809566944347538301554354095172870901599043175021225085902252559816714891625576697105165147440038861824903028157247867030206187411134360104379863626018310228042443124748387915933973324003997383710495292796068609323505705050624563540920738026657609870359863056199275498556201455172253982685670283072204951429619312681467597023708769961025081866682650108263035688975026637865780734221460687502960077093209313696128643243121530319842487327200692341427244444672864214032123112897138767930237768220135136492246497728198509866317856815228611486210875044070275299560586273872878033603013965131860014905070401447634824361238662654639655610390941101140092010127192738328647771814176987845507722132229414695053656652757580272544848697480594757317378072625135150797540159002162510486644761587309435598756035782255344141439172492024873931971564607139386777862267776387182525090218004624379734709571130562067626014142351273728863177764347818136654248962271160075263877905705802125155008041450647096012151766831804470601306250066111560321320504988505061535266942647705836398690208199845896755453582632388151038341681119891148974079337965939543102346363504819428417447847607233543751738699386166773917831064199304871828504677640891089452685811474867870438036274939694465582555040630620717670883603582559512249048821635134716577024565221380805003126267219156646210107085016994543297589752289574521523159446715850735765001479941693830988869318221717948199835020851646633787593522081672935079141278216950394120101908689130020515004561675055295373989631436587949276647556350997118636414203716635138447892479813645660673386817310199379165509457520810329933014269156468280590853091781147445470879565358913326183150855355276964689142196819676294540212283643372640220769726045763521245594630473482663723317683718753755386842709049309012440336165482252599408068489076038518325297123947006882590689588849557428189058845705392129588386444816496851964984148049497258071370474349191155780325780038859219643061723991370227506556933766718758879330842542007146931594144354590619941530202494861616249830462323300747163722230352941840480074653166085709133013227015639276928806160011309087849143555759721968656988948456765712558905625893438874029843153722639872016770504924290898336685923412679336314409502308254580967445315110974652728639196355747479173771860211056953600442238427738924332102676346736656799929041674612621023133817898736694161569080991874378452199900302626080842428246171203372506780893226562073303242352127004025588356576577381161259565493411599292724957266993095397126501507635002860346657419232451819099961294405655348022210623885584553326683077783809233676629135572079466507568730432175525106465307197497194481967758544943695893309195103412371933075912016469088281816435187224797229983656577242267286078097736117998293021644139710177624674318035228281925028423157882412832177793542084377048482132026919074537135455587508966168870725436331023204622859554064295638568397239365822812058067872088025111974069222166237038527270349360929032942100268534374811229988051052000370413037792228279278661229445738080239166422524195446308292520239705222254105376893430850666053042831756354471915664655796830289767803577063837979804145753106173576376740696515786161032008277478758768957187961717886319115579292979145965843779709032624371156568382383984370943447754139969057282443609531615853294633029738564146776902564551701440541111201878293227852375779385713734278079833745104213706780106111014160683814127462542923397968655141804767356936227958312804338403192335473600010175772063628718451049188548214016957659243182414906484284547806805971628647140089705985856293095725993775260025934847113180729750035742583371920781323826896539299780359027052248431441071655853991784455015663119078163510824725920666407000334656502928994013295990483383879868302744796563644620483399426351744967886946879184689384293734429037612155428295573734803882708393008660196158003430427440284915035067308204916519062705440297405455790543065165667268651978427139940215035960665948577684052230183453169372481018966894744429163050288257392363519944936822255390695740673130292478760209136015041894812047599247880773359376768243543984160656765187068431777172175537327631932409631050374836436400737744577342930861812562578684897149871569391693144340287322962953567609960317112894930306124362260469903403786150808186340944906320388646454263975229271850253080863378922113738919309538711887150902588452777412903223803089999291774031800353014962703424061658594430763992338794563171835457669947954358916569145781056730091661408295550333869219513384904846291693471011490459774945874920794023378314786041287353187792259919592646802316783731226153409525797227399688278862164191045179863691515497308471482114948926320024642189038264869385155057650339258554931754947701725929053580187470088839218875367651515571586096226182191536248725456111140131294621731537178206591156946122030624949404798389981507270004694917577991039300483400532832086139995048231879669896222456134204278527570231198581331594058555733653287373747081790152170609491162657043295251996818182945924072936751593895590709596196470630620331009079130842879460775807168310823686013937819646509707866247617049093365079492381682889389847522108563636739019627292083367813310685473368741154715071871824691103214552812990839402125633655637986933569873119553674374832567349263163559935083081982937934353332783350602155523264707857861442091251552309772817423645191010850843088104735094267653495690522882606266189312247810109029642830985314870719119601018978093118054619172422210871290871982769620952443591445489481708887411088434846345798573359469523571593771888292036922642977034981539497682516012830610690907316699493858174226069897774638320671386912192239605239049374804788859857862436808205812101617298282832314933882811045911647637370572990744040110315912119769626547071371424319971803756838225957967945792064926315013520084285766543784594749544090065889699244422349219504061389218662679210916332835043735959011990301345891545943057474234507188566672200349266707332945119717171013921587169326366875839748047741321425717143005282138238281579427378155300165583865364453499117780225910608534055745763332248409717189818297174868788980024877573159585000043906049932663034111237258064895449953633612190257690785007158378287890707323781638724301924349580796640677804488870856184623801193530371485211913389947741664003446311745560202088316763729789609128860818401690187582136705655611952226728177921029209855764497042312453988902154584578763569889008087142868819882732633704492852399732600910115937715115601913815344798238894219678760696891819566347182892830560730533885423726351558151138988193122398633318324550470668884510120472869873744942118893751692548577953007344509021601075525182833243303086026276934520643081675828207451832044263634645322799588081963604893501223189548413824567619382988526941882254234083401463166049488902839274493193748839057434458452423073475606592158083637507107079731181466808732088877819850915113718822101760948335735650783354057552177481421515645127114158277880061826344501991442415893343672681841516102083413420188191169626170560130748463572227808486730347506136149457500762674014967649172908084401525660862036630368514714233840032447495028246225387484318897738076162911907803386166083125105496953149878790779424859374489572904594750028242328016755135808949948607677585878766720966591087304832428200459748086376530929933132640141893785844105749938216465199465659712218556599753707539241183043023073972843559322881256995643147379140497084460026439358236579609649605309735274527869982985966981913268249838383265927030833828401996189790811483988129782988738018946398093345849992772294832717464558967497790134367838950986564417458578729023960822009028266359750455046001996250743615535496147574591881752437333375829581846674102488555828031357818633240132090729236794530799242093427879832002642601371570520890666104810499987205642405947038543342268648199711514861562862330486981986897326205100191569027457673211815209036586781703596802389441858605939229002818282257393938510598187417699962672879508131861596269244142848531798357735532953828494030901384658327520612454662590238850471411077884592003233394884994653404282090997516576877386715250458783036434663163772626879024884410343274472353479268495638791283103232451633805208220038826437313378430387500047177057699013054025944288466790294459666970084411153238740360080604066664047031436215250220661699167675449023954510973636326618392090770220992199711791551331846308940763674653664507822719765874560378601791670502664612632449488912219680716269123724136439317170056144271584319607417988688170645213127042032330910398655563000154259561217969977823063856447304552688487832631984563741055720952234725080684718841100967971112809299882034238538582693497868031777809362219347118371143440356687116680414742588307945958490935718240808229496150574288907592901101736067578894779596871633009140146241460273079802359291024580048983933159420702085125661926175661290218883393445889231199282415336257541571092306313458632155570909907064749438565436797144749444467878823210873689968702975708219906159006260828360695623439677156706192632535122768986288245207990042222620068836514411027534170042332103390520948561369554172373413666020778678873129957349717786445438964237380252643305912926819691154455352490647488695264975624384865982800859409274089027759303231199884416218625106418291638416146162554586729144306425572775377935507231373327032854933738529978628834235620073013747144638365960097307644580435821768780189270905178761884865093888258627217996409801222447806279434677275604883168977851948377608055247277882597128003001823094016162101668220631890953846890910191412161614369444856584401142622595823796667112618782315041134382448494512478948017295105898265361563868703371651918902429578708980740810698487520849413045095667166152009416946921174944810106240160515950551272319970803683123200460640762731326589169335230891035996827183467114106201196722327945623801471578187411801017391255013476865168126968925266246364310271660228318853957447186612716198439774511633118859969193351023223657649516875241792302712956926868588634111718208049977826274544626874431598362685339227666245024364144030371764322469993010940499425791167876655350170236505492269246811812245405108828248357440637141632443437851492993129150995882789700866477540446490439320316065493432218343746923564015483827058724094514854935793255933255025694979504453026084041251633125382061631327896566060029066503798552138667708721494831575041342140078639134200897940461114868632574207050876745763708648742147265886113498756656734647780800964655882246505699229123139369706899332110886253938361181154996417036129538713957726682625447748510236745466418046409697640977829791351073476884782650252587734305273737171985571653286382361005252408966929329273661819456921296119859296074468626217677043448041927596247860087549010810739568842069323505625600871668472448118092052667057143126298723632509578563552734704001357605652350093487601446677877174860748522567331332941109773755166004452731251085582135000764679798659901136754387942234989317576299118876399425962292491711566657283402833902858084796249513605340076408929706729176057474172147237010916223778638780068804487093307305602667464490256571681262460101119493828584381773664704946121216497432577874155735141188411324057359206640150206310918064070543160244720987621407686492780787931883240947968870843867168732048986218643863636696529369442581505810493030538018699075071551585746595361646457935307460848655626982109596771342350315880663676022384693239446031787308019036251266093008032662933844539269599492477384952845515688385429182210701652488932704025106325383520486300400415411140985828823694792705605036701790736843145556065076800866172045973194644470904105071203070598000069298505423226470521156420932942973042236424348041650600107139939737293571177981189634085640068397251576985378863127361542185486977023238356248412743079613862506011340084535459234511322248438552286837307221181776364593651381411776404793833243968840154060378519552511721537472016308990919528209854989253557360090600579695219108786861527065893269992687635316032896049638606157267682046899342861003965070332445876964894520711757395410243278375822208976489941239579898135468047111198856118189053921470537061619801091581123214656729807796882149343009361637755313850633023611664331600973317717271754177351339237977152805331446462858711941463310463020147869719164671235328509169557934523577011051933200824668201579045763329158422555006408117842272324716960717820461087671011092047548037886969670848780650659365093787813382319786988114021164879957272936897357606314035894123814669363700552942901934063149266167422168944167860005764233043844584880667556104630076010152915470616622370846565809961668822276114348706192059320457491160570426636115672913520674988363462327892676655186350558088094610103792869589712013485591466345966783038598880958646950636341134791985718743808984990504928903654839228128945593914502163649086455383572862736461766355572584015339919601718790369668150396938221010427288264523892968986126137691212989505972346169617239181744584765582186050479477196423684809678211836933118911399189978165180232207797885509013404223613890211808429469014190137180345570058983510175158260946804037386775525267807402763909809632437023210303492458887112640075871810979904805391913627687334543880640209284205294596458092146044075992689779636921485177616909592154305264195402843952345252890612159331348087567099508185333561260040255553168551760603901688260152618776192936168305898627014678369625726720409544589257128070940715448246853238350337004523331029381952936767764407885492192231707753734365107754587979355141364594917175583183037315665851948082729040872230130289380708695324567792519941383254802303937610335665442883778217606215589554140286526167823814770403995054200898344025571039938423158852027155759997461359963615569249246110421391868294596418012018266767278366037518136025509162493157192804233545001976077768542990595663145636827430886808427415430403831391493307864947678566746215024221280972980210434085198899065088340329609446391748180668218886639804171099734694718563071616535596840636422518295249136797068077625838758756645114134204132940913557459086597789213953394388649479000658702566651126568208059466136255542654893776236506887893814973019985964705335180362568316363223224385319157712076636730008290511867087917477342146649352661481385376542102759485471777071422326784343313399767067365222868309593312169590037357657944178985069667086153551694073540845497845103230438945792465617379488629848846489703218733376808524314430834151343302334519530133166882094623158101291885493264678581541581362719919245955406349859518288324487634084788522835570312584582393135442300032492807885222015679129316144241337320706480175973310760223455843447919324946746408820874354031837656233883814248677731316291901913692632032296799842204731904155213695749950114751573873828928013900996031732366066340666127274974932632042737430651717919143744825959360374946304007194440783881537005749636954738313298572762403618686020794923128569240673915285262572141919827573113325403251418524357857928924855177309350042873371389763208707549212536436811514658128821749861348681256986069892748831803218016977860105670771740966081315405914627662394917792074633466155168396165678509648782437391078963787954312936804395103401660730875164275834022067541682663113731527302666440143433410124465353192440456285582085021131071069706893247075309033572099932015361684341491228183518114717243115886909431429755562755498822789454038071465723815387732567311173773109923341464325215546746817561552316367567187668951853730270972108856442195624685212790158727412968731147977887495852163061532127658917343662162781644576498103230211005199541740745321734140045473705510708582022273656845456229631797580114251893599419462525046887827108712527871287530456243957697461232227541693313620076464496115482547380412445300530666978306479822882730667730067533490083941393403621904531487953255129606432137685861998064463523059660885460454871846410896669345610783985263526193595669310240986965689255774668809777402360482108018070488653560506291901585127644982537546475049258437922390509451137577153774960080558265666715183340714553796754880030091513864746329327980109055745226915845434520605990495888067546522198313364726477679953509295992794032646574577856834091193384767487412487397264793398155391036024708810076696256874681619335266888313355737863398309890226877312362119973582948224343543228770795752745123300457024836539497094027614041242303162268876308406182421119506008663066641912359101881322751880324821213833373161890664327669863347657378830121383224373151570683079425078310449983930036390814212795999839326976841235536333471284488672014908634539002403750448674275731644894997450236176274571621504734592397905153741410597820799166764527004034799180928470237819103167734651533492697159510924976194575261935949155896447891866654250405500878987617369176337395081177997290617827133599273690838576293810304511289699531305265873124217506009205401376201545220378929480053710110425457007039182750309256914028680163229110859317277282491261083770716136404616829079258982643293048818735364219264689448421736326340914045505984756279575823429600455995338134357787781603751785761555966402230335288630764435215063506728834681355769668703227737743714049780967814259213361744692978330557757578627323347325994350811171181250537283957426305692574121968155508695505098677910717304414350493266901630989314142262230405765738592755355442143228434916592489248221739363496471444724931621677215875548165505666021952550927838141520164310586599150814898384272289395554264681348137906247708971221556719523415717091165513675245342276834948128379077935626796518065832992741184824582715219106194275302184318121770480557945846645699639019489678045148809649772689314480267834244989838147975750779377262761869460858769934395011065156736361064702128265921565144273498729941874672003623269022152479644767744974010035032842972102797443426621629977197968107735756253270349594201031526044362980472522763525074595442238095769678077081781863819342646639298145413334317589195876100906224186808199890974797869311536180522250243736119033618169492857183814781099236205864806776509612665160726846305428355297034067577422601706446600386488140273420035405315936455395700714794744457700381350656159970913618819364920585282001650950835960913118082414177330526165110177857290057702964959893237605293024718283658919108589213323860851498260010029165403327511964312970742380174907891910347845235437182354624356591117122598144404495800371546810867701166318614291864003875498255114385229827565121353053599921288662672940246201423962981870040937375323034503010261716554421266424501875371559884156537841553518280645138836554248778373125231378438355860990804098636583057573636551569597090349973502242959529514720023419465878070673775471308219368917352041694770561995324218111385988065180342164951654157885738281926707726383741894013628681058550791800281613796020269605639063114160226783514020137761951098750584363956176850073204029655040196320876520447355296415968757244240424756365499594877899367389183568002038093675771864128367221119553829895535171183928642991350689666447224524452507737611236300992936688421198849848309550454246814280094593796903445995062468199244812606971663400322406812052351245538398077283943603503673776010122235634804809266738443539287092482653179196233700538570644838702996691201008239113688904030830301929815000039770431184123741841914395447293805631431907238613194279967182195989064124695755380908502223265904786037580026320892971447739401708161006192368081263560089868501271322641572319867623230889265410185636491814689198684054016492917987507066227119579447594275833163758021521124540704573703576431038574854361075247133272991458343544847832477446329654664787253242261793111653850095431108846444139591574050427136797119874396746998826385984928039008527489563936404838761274920057905061007420923804111758990892115322541635364935902047006976942483967362222375847308149424076266443106624600715920580138687808794660797118993382014992141269691665519984639326313303419635214029135701042634569584017504667134405558522005856981528746110188005526041193370986286504241244350773613974908569558274447205971892060334890936157152903134717655753340533576489522863536421440426583055356212468262282404102137834229025482794226738943119182015652935892507880888184091143319591366634753087724001591281209771815866425464150022343329032382713413734129571177729318482263532100042835708922060458578227112048769797495172727843287929054901797994419511651958856857211565901267943236109143717983178995238480517286260299633917489145217588892503297655680481708979144532394644874064428643410509437501583708696085901859158276789817937532393484539536178671447916885393880303041855355381595211890781439959396744761547745900327313499844766156104189335332078091483194377369124088958416632317758377382451428774156829785710202076187950867021673508935152025186225493105840033289317035345285054465331358872040663590563527755691822514211775371467549071085315332552975654775927630861789077035472633187621362601042280357526912126660394674469526942554746457285408507176935602894507716469514954402229772517659463442821299042888892352211905237535178598176874217262651257608739589045428999259045821731969681019880880336894125007564569545716742438142118100210380210465258346669548850313509544137711057522254617183662777703938660344879464759861296685237425527800370475011339298445801521757903867973972846027554648849046033066832737010093917230711382423639651585455836706052636736943942759748073622658399815713938537861757504792383289263952754289089449142834948732945026732961435788971737349628424840223225762161440523397461364645456271710680841528363482227435918273993049976864908759996690473750302257810658217194170221032262846838367293395957400068616386705128608791735529022477602162907123301601861061705303513127868660716445308371726494617984721638633272028750833136198034459554827269072888102152442390647532369527913195866653292480718695620427443713328470751818511523470362335337702820178992626167354957674534458701955511743066970544484756249660468581222928468630690124114099417660061168393029144953341952324305559982768008440072807274831331077542876303047799229172129232564289011072022835210824169093820354164257528513476813516009734003513437177314799805565141833072513216821281704922532433206929059951784968552052371519638108031488391165153726013445355414896137725962178065534170398769645239299590874654127527469093732204934975535246503423846604740044047818589434934705798755037323154840019638070711090340430466266149735199304788581691141111696952985999237214613251483068450538568607178665741551436098383169998949665103451603438783395642370038303506060289436520231006871997344711076288911523623609999372959340509121687174224890107406163216148039084428701793893994191246489405077171312649730296298585599410036229348196936709392881877824796703435618073338695710248103003632033075263281094658385092689515651149925887651420189748705334069717098880121828005115942442213149979474405540279902019016982579020314764040150886779096569055984015554529247019862487073910462290146447546317859673437635261486224957670182010642921256546755853312121048133635579506078719576455382123265083376773718973410497065365802576825288045523845320746173540463823628869087907795993229329495347908693524557134403120089331703304870543499331664188830943109114301145962941093445557514605304429734616256047984206410179789159866720217538773055968953845154776425636366962835923732113055639726714614808185167540922467559495784825259495277747588007341291014874113525385905778152011879633584311615525190607981244309317938864687723544091695999930588560237966685379236220775826562749666654013690843269241092068160262094961577945291945118299083581880429552468801481097676421380195815051328303541051028736568062913195208752520080367891421201223180568546431189217194108779123131592637438592929443553413212329988204480673088387276626389151763893937205423537784823287004015764604003205677613050741483623666823839830065731392605024557282667474888136863695747769079462243565287368222583402597493787813902324488697486639352476603887725393738490685972033998006503984827304289629057668503191350064974324120961593609842462303854044836966535136977989000431398995129667056413003348228037266922951438532839442037226238935044835001034988229561596760718792317007609835162245311404844950222516133600005191718538017315359422620811647503616535444607655467652523225483486559892249826106682717512916466968228644839809830956966383571710414704096820448439478511938521936656010887110512770470958662566081151179018064348302659755166081701236043123527834305880740495939770165641453302512673152858083521572744846232569170429252257822258249552522516961475751280608593918178775824071151585130085224757597351733728643421351149250974224369812313848507440824891550868092609020628420672004568799507396885664092578105301840651304247208120077269342588529531686075098421573404647515516855025404706832791094161123162163036355586620734153789143418564633887020716665867568650945953819613773473877398666632887852174585102431708990475637295596995799019512663257641261462913841285087255225036349737487019747760360491833821717901771994980349458448589682605235455054507634743119415908326683323193349486134489153635901588336761430741884816631154832087644304028737261612542941824425248631377213820384344230430701272578110887596519213060611714772424763279981963889528134461900641732821159548294933619583162276644823927704222676886557840436383474454778131393306584043779331248325102107932339422476090139243391824240233130698491654540402117908690954097014621824583152985528281866759228638192890084833080287267523864714558494622819580434275284070147411384146025343990496256581951457955058462856133666140384452656867286562222207585521898764617690129831134394856637674529117466207045515820260355902035586157252983081183606853859301450291788619226121442844430805430794693227930816093057932053138454837971047336673310406680354522428761940140402801267490895102569577032183875330127146380894994384180047289766512478900172201185172365391719660498961394729424660224126588207824250792164176309073652735183193060005723658454111656732577140968472285764109732728734133025762492970741303917333243547604494680128125916254212238152242085026431874312147577525692563801715800839845953626421786025426819298786492753298751941197119354268069214870038086294079355745854242882116698580159403647367063075704612193545216388646999769487200744727014821650421612127062420677327999194270961658169667828828783391519597743909982420531309930422044456860118550430849000959778787675575005104037072381798683007893784923831838944620804717891637706840446878067978998173392558023731599934398120023590173744339277809527081286619606221684544964532237021776879688635487224403528707011472829984286258518447401590888246718564351747464771368793275115636088170744072508027341154169631282345243121025446722457133085359534056560590016416702647618092921230695586050059778403993924168360489337863806782115682941619581705924480471540573107796762627434799939069809948659267467828317278343141969435175528306403516301607144750286548692312680636640119742844350657634921407151603416277884092000453693079399222547111429272980010612622070125649136527472984409789823042416948304866725003102095196347445544944664157920777292412361292067286205590633042908783626904131658433523571400546331459255330291140956559945855158491357690742077589856516593030503992165834800759336115653788826009096555760730562667046272949375397444108986518707237361799205269108698566732021825376184257249500290464415270460291167172254972284768029379994759923099045560062745646471853037948685476835816907100804676656176655978792063685174203933979300300215974340925741228017265398065046004937027354407790998495037392028149010957903105866747195849475434417325943729642326504462323268207898007757764906475534675233141881740733118244945727866658886747853858820490262672362789042177115760838001488662319157871441679510604456824171202876327950190116518163571042074282080434120867004123441672757110547472826688369127013735133669656316787915102775835678757495855086544075125129841718763576375161390959663956428739197014596401713988900770988852931390977388362420565285014236581706487039642554895020994692876316679835739592384537767765436725850151223704283604830254544459088963658657987140736656746873315081045646026682873420692995942518321453943710868253488681368333782782737396802119043416821984075546611264620342286236813201182038135948313042281752074668076955798296148649930834662784496615423016104675341547270381518580423537810238297213392388520942244445537708003925285101114781765060114616701373794670837025639621514990958251565319505272095507291362033766212041305889508750748151664823753488053843348478838583985656852653969335669659368157886891286082134674277130221309456486763893959007619385381699006129755746432433567419592193773047141330281541797815726496995351331883215530457322605782306049490587339559235179386466512486476830142472587370517523587305599505102013163573376348063092873010561286795349237636569577529478676432705900825396412517218074931474768555946782352352640187098488203416796952201095925513512048284627475540729763496493958935711222290898451895669749991118622014033068729485775763168347783518396188714186331019425649974354281672314398651900819504602850474153802741149363294315856666227154609648106242901340597887960249788556536862371075662691806281421320129108439046893923551917254662760151397800737992662336641140377911998531594325559124163511633453830243455383906435169459580987960254819871679804600055465289411239060711928693564093932125908252507384312243054013161208302198988098609543551361844752478462013832405565510985494363760593991289823217655931143185505748556463076705455624621238136762396489916241009145820952626477293812765843744417670732611371898344571490606096394559778346017030622198728561604659775327885447311159052402448514718652133997178309408711492026218691449161478825690659513486774378730099177064048916422742556510976477390503353291547497480056655423994867581243374968674053182739415063320965138335149303065741726781104768415910441940415840789414283552032821159808803237857693338909400093859171991923901797950088581907464958493494398032724997528265491653439594252382390169928222724777440704940275425896975817585961109689212682371200765395881221683034838906272132805584756523791310356556418499703804566552764224853498553340623748018448070756202263509761702583812365511820440899168878799374260408015759722255359423376350709556866279350225926010905381503410397048370399101271888841579342622933400881470043986834675503733551318682472502772883188362799335834878141012085503890006514171634908359144271673977880384743073011683173484227928465180103466029629702451930976381368566838986838955884551903746765260919867399056717922904911250858387901920097986980189412108864733132284334569680881682889919051711528221556710256993873543270809466647417514804901090004804375858621097533990505101272919697126288492951075924701097750862306107938588881540023611930816235613450001550298079553235639264736566149499800177192791288971095321997975457089334402210482198454301006875693999323685714387353485996436637329708659994244434571356820653365037770841573204336608705847084350813614602056743415429987274687957316263429785312738628562759683226250836269041503829912684240888614514556482278654883242120374901752383356668138330879875920962282346058643770684850594406325129635938305624651554146060784192020875654545061970405717903392158850583079344728942594863213195132998417599836394190012262550860095111168755692135486053309746223438376092578244008169531370995600843689226677697385289659948152848155323924961117571815541280839443807942221081946185085119686300218207859630828727206506277029368874402313582536407567959128310342841390604153672449282193031539241381224959565708691180264168531334365932520700877849097490675392227602049420740922449969273491150457326303716269320134150737396619150722979169330796301118693524284123382928873259302144462775322932432616739046316981846832610400738779886708649470323064989252991860379986564516272075830788050610586936194466453493870518932657532635878324396025473647569567613486235249924229945718898307039835258101864063972656898534145694941329182850922509614874009087925496587198675473972098434410424637393955245752092776418728044688914392792040332816549822543554187944642913136218015958529869590874345132240770862709860406105849905864561132680461575260460173090664586762264739063023566561711183099490574571934186719611548647842007162394741447311519875958645147519543871982745545625820140781487640373366627011485699778412344341607994624298811240479495613079336115701387956891767911529690475402638244384467086202178139388207849042527959251018008998721041592403828427704675618237675436167346785251419166976109170865129108888330630440251745582113556723197195321904695790543657212592309909947788222796767491185330274094908642172032756914307244913102551155697606762044161883691655939470888674214421282480645108614357043025648037983785614131551413308940356436554038128032980770086449842140023005573443878803234333722258142628662877470040359802494098344575112589606126331419609742559353262775575387168573917028551282136495228675637870046837536408826793692942770927880294340423970413146177332002282659324859252943924512004734686762973703165805804630356037682836593189948834351017037000301234340918113182814267132601110541563212239022816958955085897998552570573380780877141902245189856605604307064631859711730082718271409940151770418516509999839920201407214801312418170496776314639786462088958639777994375211707017343981747305975342276848419078701749333679688170136699059208277286592225881980159178399400497632460747749579267646990199233038671188011480999985441229773773075397229516677603065028877967024663167814081254996898562309921286030789289689656745108200447208932664821596324918863688277553271485467422133361500302508113584623390711977258374829210306808778171168020806616243515396159896427586292209195578497394161693427836401540409281288779263038403794358987469535542898416284025019440456918542912422215661444874963579469660279099088351775911229264839434517854352608988982632805133375871606941698953118501727678194497245789112391568102808906513620470818476626253637206192402314153294310358692947349410282557905141071501576059522303068369982753022985841918721134519438907345079365475006247557205548963903641517991530625812220012061615550140499588300683120438537840774450983797393995953136115154589408641654562815658900727709995228765865528370162066478641262377849490262019126770045851333644367504269758177447403692269129785529506333913817246746252676737316492532705623759014326668625791927682152868623469936226524600315662610584420276497166738609027467081328498464658698047921540655391438836093266348448332152517005508838948361850997082144346076241471519441730043648749060648857183643806958898010387570110670230915943010875627195615850993550462133084674168724098770292363516753603816820307950202681040264306115928981571032405455578715307483601548270448470365395477447532334679343878646120057908985225912584355780117563888354220336762112973512192221540057788033363314711097468342439185236927205531488900818203783965985114091433708039467275365346189869902039155127141014605939376592367565590449161170193268616507193074431513867164141445707258529780080132369860518117352259579038809308407670535031413804987365976619613886941458925948642577227867559737621203590334473797326991822229588035483037980002822147326677824980799645292905619066754505845893666446546801781711971462207967836047576501233002387086664409395258734550693759202531135455341726440246791504769845992420068372690888761133918432544060374151556487073887434703890303129290170568630309730058639116585191110042349740618990584962087082824660448796625045154677338551684948632256447672150290664408569281305364984248143592520158898430876118174052074041003910784996209571550653636315416676589719771728195029167613522654046399550253294426085467725135265724316874890915973638627533075308676054076361888449022058719128702506644722688733551559693398937493929500843303217836679616061909999845052683203117791935669569033329769821942338708113172600230062395115092443750922262474630822583725447639828530368203209378010963511283742465820983009317738073451124591655429584112812057542476119017811087222293323712846165087018468042188366130509242142657935944552913549647931713462667940200076956668588522004391583889504881345627866735914690480223316507340338899049790765962677595591742039879562769798075610530760790829873605173478031699524964139866059289414417001422315905537761164926069812353821154036523076135559612997132994425136353815410498063621075194618432322869447468590354087226180071071967756475514442169066728035288125901580973948115976028198667729247433933674599372130812933358209804986238686038061576276761772232309840185484335394767054437132594083327918061958938924025131825177427176235740679409441377565224176339001110583870570074833337800572396276820912621363190719896583332448045344538037462924087273047184312346897935511980871923172968241591312968697920918591138666757544424331887447339373778774187798488057274651643751781318370205527151178254576331373745133827580964477722901628854648773477787070064273158347839107368955375135975588995070674595989947597722877014464966299937764628048930318754103493221518157773642840113215622255455025510167707437955455626857414301893737282929241640141479252599582800454814489940025637264507178994388907665524045449897241689081420801684023078056403033603868016117207570231729672477782961646980550870155181510147856332059349819216663740634618020287361951592242592916513518245406238131980518003138607829424980249085505117294646005525747038920330621249969915411659447022015859210801996982890711618603291407451064562841306605744920266628368970098346001520880302705434057863256653804076367742479998342746481782923179638013287502653787030122038534016222686392863325307363464466201903189332255363500266875583463602721588142476330262030270940135401699265313351862128296805921198022691970222714301551111270239797867010073242011569348364762080766376388750785150038383042578087067745906748670006753186187181468802918248007264931569184933351230795711722205496878110925939327174182911584637194295761007851265620961893736458536015641367082237565980650727545371784998474072946412918422543698037429940250457973795790242678178520348668091596982632579117244263070832277045364720012060464277729337057490616083084586265045914617655744327274375640855033240412878880552098754102911394243812445804141174755142189564679786360063066618148787364801558744892122591076844015344597346596800039593701405059863675838707954210190652291040992153464807928071446894659493592660108584470038132355858686923009448110008582009989390503976546714266937095633670823803529408772694564621588723416843285488707190109126427411036545613958700479121634866005899353881776571731043271316239367576478428763919481297737486254418411951543769932820680213791804712212667004900922196084859114923077234747380312324055934555081584756061587570748797425546228352917882774782352706092625173093811727994614007346872950105155308625025830914234320837301592283803584620287587262938578852316273487848920588708109809055668756861561571043151644539484732231233691931392976713062931530531980761212832020447362382480021121236450307873099778930292461406805958069356158827527802877184341774500884341178605636172168452145488600223760111392023008494142811223473002113983732821666087513638865985281701383737484897859830538593974646065030314893337251915837248952015247885937599403358244919562928186655461637860922065417515225288054870701234386080782117165070382028245351289983212062876762571612656073109799181371187258864482597702474625781969933437221074284581898749330891654847945194364599527987185540800675484194888894896728461990996134916857671121067770102509448581552159119717320879707295280870275806050170137891733062882594708590949930593140568245236982453739773064467742844053127985884077220592858566537783060907122340255832051708957967706299522713187755708446646941210678948145562849977996081158905445013737965801520531377704748561257705431299750752830926319558904679257757225959045944235089170329450952424596181021983625932523530560772023447314709596659218777411797535732568520789074245978485717988827571483379822956967119969047218296642161390121849374024306826723461127359147511097517025028103160845428387535868330567486985123180488324798703276811089466268010699918215822553314298516819999369284045000214567966409947816045202335124981597233596796932647896981141771759527364031761572289697582159779380546830479807692419537664490162493566562486257772512173226049809204548341294178225941794458029574534393086982376505695511580917995847917579710707152323153836161957046814971940530597306461602949290889814792556695895835467549771427103888646765383369412360040635188358574937207583625996490961245846894645694712047988906623804606663069049170344308990673069715982971188801706237967354848548827797256428916991439628080434214069101678156166473883181467892469218286919503031945923220646627691023741077868635010868010314906913594158070050973540046321573847844545903964482872360662294349147479988586017940019271966454794690882067279892042709075468582806756350825343967721717512869151916708601914683664082514622173874684367044985994031140725860334820827883652746189348951917273875346706333874559650810642026242887952490730380273179894778261558438147781431772486905189590543596241727421183519437192347444533328420665233163684415548548097650464429913389121635364852926717820702544312934817917080926515685296237239633310445827397819942939469263663772259853020104830809319341870179064070211706359465946509688122893849034225324797913724637599277880499224040490238749641210509112321256733466809387430532760987169348525942606826969813411511053144066763282110414767945635818609219727468889708806897068846218090105338859060849421500824992099166147760912528829118345527702200356101685839750255916013032530495175902259176534726278686500993416679609676904947207789106077401954034538137747206691994386926132681437089467771802814117934989196517353263415940848543071993941726504947387501789988579627288740511474216303274175527357387070453098444819001772988502130094354379178150808844124669536328857074439472926536765442223499654671192737609668700690300075292097964083835939668977239129832762913130469513106697959282314348802874464340072104460967903428869600893787261556216822772812187236079321591514114168958417760523823819707164224593443107691939486467267645233151314198552187243693387407991558563629503342565781333384198045835825326953804013019296964615603035212726991723023229737646689292256612024235122666693583979371182155185336559318727656971532262388255382878182261589308501780887381479262321962885457247385418471548074697901795195833884965037420171369421147664351583378246088584567634194441287968198572304308875206904583467685084057569354629184106383449502124836090838529320854877907484244627870438076155651517379815050756522776631441268996657100731953750759229883691303390520161903474646830573190020070610603764824701532442036323355700849728078002474585914611052567509667420737002711633598812935291505319092071056260572799422386918835373734867342002583243940913161041121390369801276850176282046171300206707432972851293367502169248458995913479226476887613657769767367181535048456770870470479847919770144934614505643835558603289315178810376858253449078658514258126494350123309959764598756402033886845934483706569781385000312190409230399738632089061506482387276902717589602324518655673983151444852202676614705046015955062925463991916980572076088637892250002538109332947707063852603450299951053414680155192741321054034506690551136862398379015423307036685534920804496994089190476219000920145265133184244949825028799039004513544397773537763756489841663605559552038934060940217376706129821686099399652200252490649663870887036328033287504817147360094854412042311206858813404369478100880642211594597750887102631522330617536953930306643810862877784991014846437313711251309387796337078260557924859556616962603311977005459653078381685145796855045906480914550987083280938819829618137666119346110349706834556480481535458050001734935525712207953664798555897196905465251549903719741870900205177272198836857518539232007014210504997538648276060517386747327631707836689629683953143060743616669478119482684589972221563169487214075613714274659377250854837861968817194401255335557220965239808872991749335791642529153324130447897832245268446138161189446258163801824928436690534527180927903268694883614919877078263987523376637659946133179910447854934600094186358693362248485467491737582324666683123846697098188914261317091794708031868459102386839312277374218980115687115231910622059205534144300489898265353120666597664201480822648216922517458149684135253587473515979414816644441461409378936270871413574156725078308635121151413837116467627948491928096532149820276815150086867715536840812245812183499814818012824130098084274521515273626422110959662469032562033623747330950554227776030989716899746928975796872321153378302262223019240038268879183509826668007342794961611536347792258468565738109359210374122059040131786819623421782866241731759798685659875022054208809528579298753404135789823586701623379498386402476947487818985030873620877282521501986356516608546433692168047612518323893283257447226892676328053879115357914496569316565658662901606961544195382931970245461933280757939442242545651864732628670245795190837595739505717420273111116025595708620191105435407910391600192043654930471374919939269440531653221071876105339933932044632124874257378562480341274436091117217313545852085349517642585323705817926698645662379895585303946919232345179378940118879193990647868769545466267154282886346095971242722495377078122823934225633369538774319890480844828631489144467654385603999802198801474387680419220670677957322253968985568707372223924935687427719706881331990916797380708349821285846363646769206559280051691010538989017277759903622604464500356117135952610451654726104751264939387884263247995952356281151578923623153164562230373513076385684437683509758289215218448628577873541487778957386512443314156969074904718190773077493990952977558961197025500069686273282436254935687701082518845014759418570326681227543268107302777719272511679313380598651894345496405516596374807673599326829854556385133000020376450225193607234105527127437978830242697425923831003617293787489824686204418583747178046532750630917934940930734901163191864851641930317830013989173641731379499312649660118669706282945339896596552453367473055276013115524025957666716116373233589049834132392726795098135660412874643905282249786691013052236396907692165416081026280292911213748405757716368057299454372292547952093992417022354021380928172135884494315106293010788984581716520273194936759049054029120524943118152939165125310296456982887684176503290224932657026236757696244841770594783835536226747108474557282607310988951167746795429249856407551872468068231304158088626700835117188999734595869852918509472954405221480223023920637837059692428317669504724584099644057757611895355801054603830845393651676000412447060565117129489221881140874432865122611075722374756760661765445067935996015126181607819039131280708299491588904981664258997353142861619626270059674348515850999737754602981441905570919241875397653942324552144865818333376995997465141003322667394559961969708972342641416263007046047781363005371528562461805396027115740352664389129400143138835531524764773627078407121516703584022573511772903800252997602510657942080339570350675912444310487527485693356930732553370034971946131674766061144357101018038418167941643945338905352913102750943163201092200258529209339964587919365659245985873873004739282137892432535333740506930695218773806114295076261080161933353600617425522946916572749202292668436692181572188020720506735355657700799382226404738425985347355061367577102678108913796053743842814669018397141279226555419349060613904068821332759962927653240142139486919658903833016172745995151570823464264813676715332582827919595994971915275003524240022373943303902981750973363624964968910084735013651403754201549452552007397687804338411111909326533540270000467192263250021535576480442114985181047108861551808051408520078755559149760284732530941459750079882751521416897794872232678377313961903463174560571069570213342392193015805554420453715288636827786336264258348619607893156109311656798150479759800053047035740043409252279122281340595640585073303900397606305300814288796347057123016847477185605535976791433555589428824965643293528373727522147471309847180538324466357911672440276523771624611693453432122490141387145593470339786112709025374249643959515294218171381687556448386842373967194708010884606755437498926009094094618725566821737186225731859657922137223754795228655324762485486739427297021394132688947038049179323527882503837445125544281210485287203141550081225540060991690237611894473391590352083040367348157894486662255548242429919457368594861117179338612223391335368173518592203172683399233568482730911437978339618061582854526671198349232149983217234062562739969784989414628790857664209709639602039951018537783090530539236669148219786368257127130243509930720564946091019783379177428767739459772559506120821634056621625591200658119593320883167300488683099578737350134906213353295076638392679058546208603626822107367858271361983021268007478591340588505636914822247299581111885580578192684983685043527184447592060647167220644166649741608618583510503728198096978551806017719813187089219711657460689128277905043246084052899438294415883740252218017490033834637634466566684890932186335300731523235896863243479503974124136569675549348027354855992988627373771949235284435351440896455087495331853154328361219071435059443601812299481098444398317461391019818999534472193480108390362104931457294561646630724837157102524616912894814753339367249020627200654714256456758473579344275470543120103141342019691512494506938880981318511412745097192765124331975279567127047156087203540679448068645004859801571175867474878845905200010255212390707763871468929880252253699887076112061588318353821687964277303225114347066045537001736078657036774383676695306685354886612311484467421362897134883560430589000685727198435488514525813653331735450080198480322303565111067938618050082588844979988344459195420877320095967558744185819703729118622135810877297514948957115509004418209477138969594319027036396527940238700547132352158804397237397160742912247480022139168006019876054975836557707764911653870160773429709029875003223384141087671598032499983963575077984607414820791748541055293954982142496357013532605405838916814578987237074767241772091473773561951335878085715068459164058622133892478181268249580156681883731206008702360245081232904327641051120544102658851740782756780068382913953802737969113703563264100815012091130085931671164188141829841587331989571472531107932158083712172740883401402187698590186693923137226812601165426146104521629275596614035767288384452567253404964087971806469966312780502072708643181106232634027242551118123158100515756157723791743555616761460527632466085075185574346874682753697198606169195933445233287925401663748082019349088257498400864845452632140304816859074886419176927309123760022099889192157587011034309201975504176059603257788209181345803406313280757052934223030078118247392149993079232033580389196308812391192410980477926474353714535717665835088516694923052162754259548705858611215351360153235018471848274865728348434944341540467237556744831260287370774788085819439394043398149979515610533442327457519694906120888620229141731037610343201750909305880619184265973471590216265443433648507631428932612924936438889954422184883770469035473829995480613868076206028107636956015567169735578052423413054417792557224473122831403225325925842889885935650324714558954461391879948167878522075643590919203013234087558410519210658195427430326739182241860327457034360244733213174715126324210864896905683540980918125030229255967173487549694316155851287783098904868462428038676660196510495389646513881963283988494582188935308354605758313287854882769241567716155218894553557638945452109364509841923423920645660398378636954511055070646128184926654354793267837808332264363781537016247322115455897167456912045541535553939526090837864472803751186620828938645937182168097946516149703170674027013702600999782983461412465894209937464687758370709063890824170662148589637167247751346052522377493209657121582534003459054288361807505592154735393410926433473286653035010310031612881724138458047343418208053697904346766494901726554952556584483018373453054189534563149427113932058407562898232651694835637078207279320067223871725370272573911621817388606447670931469835849786122012732835489181010522315044539074162104584040366699722685436986684953109356332052585306573519247443013795114214581285324651918434876686900470724643416259589488287083527185586929170864289844996826087222351503560286412763932847082755829658502096126630656034500248967889145140350707732347746762081604284582335621516613400744323062035607404375682079374579701066046355185094724750150046257675600090340929617037264284888671604894722234159513594224216705186254213162232101988599804714036056327740703026788359176922194755240854774608717986198620588220727480711724433655965872431310017268718602185230839138265446194512380265822128669236999126765017538396402358536531239524962301498759231987535219011104536473272718443112232534049547599502789476800876990965375174513152906902567090201710828508474009514568443593867419407666718660101618612339720778328522359125662195096529693279112938586807002706447406519902691007229843128433181750690451263462759084614096098777042377186323109585649055919509646293312001772633990310625470954267111875573628571445484460757775972958741652703354849232350903888489082660703854677221088006971110380175667979982953671440352592209096718446234464576110762278860873559112962465612183028515458607090212353783248087633787262632387922290207235981726468904806895172764986143665070954046038163396281926926212879754908602937543450164966002729148760562313417425561734404478242460334744943694534029028712112870047481365830226734829512728885116104348697483020874616421632045414116475288903150263288253309056000269033138580718879928606408298815338963733731247897872345052442473846242905837893873939235746515133497499232407321766952724978766296618490732748932806628287685822995551419347307192609309088679156216902210321768844909196770376985312923039660719063433850265463235098106341493622547260565670611695192299125781912852667861634198864136791992598475485371261290306209607282363064433218568453185588469390834002696796668718801444584413629929434386119006670312708138163834005792255525557864771550324081636585825401611092260949712740593000513800304346913230269442094100073666753682478677180604348786250122335360215348306869780515709270647504924577245910766825789316457525119037796771593858852284647768948632245151640217064941654563958622998543051221149520885233670254587488526111367504168641535916180091628922768520784453989364624378798847050587343492657534351408718570007948093972697894551659246270497374733770091456133955544115576753907229172417425437517661497287084015036885296059743347148767847512901832966318288740087497758723146753319141653521909336621054011021268458207479002280738549362022167755237684313775181244810894455882478220189615388386245471285793488011652523694707163908015085950310985079656355560298575759861025613467045913922716928234119362305691910597486666069793289157549303729208751604842034696068899102406951770698399269232853540018235850695206763449398982517350988581773314405085327014815416445445406974277969948518624036597183817780092373368807393862231482584558601321472336266526719272122380133488368493987026662952515471052292084232105736504786294151516229633701896351510267958591636308745907436040707089688167319739524187560837186574853761143596105229309290498059371830362064826617267072055505403391329105316249448848408378811157925575634852673505135828491752789574508329042345983752385504538154726190276624237620801884082640805917579069006650149571526894008949421143432593454959165911623719479986843907827900791268787771739494679928672066228146725973124650384211422616080089987477049350496947751164295869022763261810551318764100780659718478304133999368590748702827065921351804124725544927498510799602977612140687299137544537220222099487287002087597777060212935942073615447043759513747466680153454129790936578570026387280980340176704173809759734845753564503677747165189708368790930492670001656108883232006757922076317566978021173404967697284127768160415669279031673801451225012434074457405381014298732656012036067754771143411382213581056086836202540683556672260982501703887216576914091272646592881404144014185005099744232067613407094722887908017994281241276729950715441284307669463687688075141001525404862753685470533562908444856328013728590889883629638584946024850422247889266784099846035302747876917344137027826089236314216296223686369825450176473575841803742203678873626049916833617619012395666025379465175274400234224746732194800228777946823181950775325319988431094708054568630061617240257357351214314055498708240209418890385961757445863991269339098006945469031164094296424016504427361490082260880348746134392335076234569673749578830625878372711821710351616887914376455328973498384998401775445257489908940751115490044115080464829175018107760902190135915219674785446627744419941380233428644579050377318444094344622721756359129482350118898080774528318300690257802271116867167130854012287067926095408777452276545622584534991121174815917103534525217696369487102064085105460549143270360728802010574086859788076904843992866150302985703236787731943823987776949192727312959704548199188552885655185890806985037544048726986625584576356139756230653478091764769107371336657195119375201445408348725990812554608638977702898204573575889441972626293373066581558323682112062762214664677950760083554279929907900829296973156261562207618445879512951248009036073210484022267085305497158983913269596264424898885131147418920219675602444746626243698955225905338480752927047624391210748722308430600286170259167773899459247211851884963834467177341226938645918065277911574571587830417391109434303347213398610627739523885446648446838409506130273373591384083385572584532349667306764768910182612567962895364771308206694586048371100226175364754194741831536908518700665840718335196806755901389058345926886271493948044084846458775838441528167839337658859071208131805062155703277142325890632214010527790858179181568473868277144012615033430061685321090561348472004864388433987706991661825760365235952767293936479271218202769445105392315875551873843600706163782101929296491198301918242703571169781479162262318836879844132335543085364747095251858608140728533829870285899682794089395118475650855373624292543510524748659841202887766737527855943655702010891031214036451816548263006437353850754407632652339303294706062354326903807276425869163144239790120343261046634364975822277191156552484636630307655875702575282845030951079576689333664603671865393633448264860604858463920993288701284907116278977816035157175126126853848386366756244672253009873250756940875160550760803041557244035074636776434187359811988852466249126380326150405093349165471296587039844988341388633362195252507934054498956481090450907767330132877745425014370517167345097753284573882808116107763551264414478038922845008964506056812219036463120300027659140059285333667788803505823167822149049214540481479569214293427102510485385081223546624441586532427234450396559480084506945863720366407370899242424143346573021624113628872536342964533708616557077980952741312797235686198614316455079028289243986294218227927778243955350838901960278738557303364909006044233804946172812677178876802299509601684630500700034796903520815703135076952250271015217968852186158397252445423013886371157902220195478256287767082759814084467768501309878642937094347431000458027111652253505918528233635118474301645823299327283742328365813231652722338716733762512509322980900658028429043487190359515598385949698017671747699885555926536349038634049871751772348173527588003717406208933522268560396479602367585501960105758037350755887444503887660671529341195892742877961406671097080271697547076611409002317281346809470132851936007754177067584550246753956296965345866044739758851982808398198464135993481256035869786665626526796675776064336483271371938936789642689492186653676096386567595570112558756164007326927497119013365353480438498156971193100793023516462565299694834883641365566046772343341249723143834259149631850515970207901261566409354720966737776583693330345273567305169765062359344990262465819578976947357018782336661989323208457717996256614428672100916002252738182930623194224724369939186891334762383328042341205001107749894358365088985037093756741570642222506622037951220419727960744384747078079722703629703476723983855821361905491496977780377442601880221304886242880005708249740731691209683551567150245924079043318174953113489535892081956649801073465197416152657166783130587162202110886177826690855288530984907609267176696357451042184113275512415314383776120192993401765551317220739866380388661054562269411599153854486590488694818858085868416237822054118239956330772784426248220981529207057884507850438569316881859944426361838436282808663622036759093485458475106622728355702468232061761776805202199100849638410024440408659410194290662183689295266956630886453724203797036124226295756493086423191411092679193803836133567737191211257370315211659635587623734178621619590762474399605733837922640959013207617822549612799822803282207657308229273066629041821565574134363946680280196570541276513800032930180718135657199952931312173845902472591767381391969724678042662313582834452469289613150972343628066483676468386378223123074516274639017624792365133728399653066179622362864138824864481748325707277937181471723900335905969081504519718749544244796202536057635576869512173001130879279663909764966482954139708238259568509195172711099119746279578294247821286128343896097137298480128460986817600996333733023244908104734315296216830667309913277645528991827408243818270529053255311357588246421051231575697527818471566214680413254946573727001681997254234450511677152706005791651854638506846148282763372917775960267381521283191277124978331273179455478541825436746600563276703705970025479487520011539709936453265650199921698967395770244196822883870486647288955393380787487496283234427871804772997218221714466960770871262337949073738591866885120018185616289334692220037678422555083300730113861154990478870739020222575309392589082134825051102386440339247941944693994485385168959150501136324233041741704785828458304843278242529183408137652492656431185950505168888414495957763128013866111987438410161371422888469141593637192177786128523805594614580352032155186499917666198166200108303004858432945572790225087788636192656181725793462442036381139899387387492145145410806731903430804434787221732614027510673782772880371826801753597961916536665483343550326251568400605006450271368263724065738679202006534407970018206473936979266827571647964543621136458222118593420950685800628059485536969100890687996618194846954563443799920910439827335799988624623036931891407671073013025213330245392042044170522604548508033935790015217878083120613629309343251120954349171268698751264745914139453891254974142648136594530586703258680827707629480088532036407494900352554820951515069318034612777623046904340476403100008190613199937837024285794585694535357794998315565129573274552140955960270651016460983065906303017038345401838243713226637114860271076292174223558138259858891317373280435141398187874792030043977680783820978797038223077546487643937644907095077051247336043542066911066654282633507877262388998512117957836654430211584870037723264415898350262209936016605457596794922674684006138756626583453405007597673501342345972337087461854695830634363975772404999838394605659015424977939385571530640261728980291281985180447984117164037273479459502911522304187619434585133406714510436396008769189076747733899558742157271822650457706261395249074766354130857032574413728794543078884890291770438049236213951922618863095901220825458503215836017292689627483862573912484796072010723808889773723536050669699742390542835607140571394279749352346450447450214819403517303701612170329922315492092469627510468744878547692474039353113300305267153239791628262476382474276494802008971430886169676141494270065137342318516439419485233740342905394377692998315190580621823359462061083807076887700756513491799926934318178608051994839129207679393391076891355102508685450950778214958779315230632771627851001544679001015669400074187400672549220419520670037117933349093403673336122757958645547938079491583121460650866319107570346407153287487256674815459725163728203423201915467454242579894959409978015072356364370508538957325726001115662801369148190452924671335422008700294282571669672871586659577203259410099897943667387815059457879813200122476414061803335766498365212362085479252172403691700449506300459019364111756398551513435396311882676733625610249648474942836043920844499338792832528346995806289355547361245251247640198699264494640271588528176593835176663353135753954607246816613496648094903159070178863178336924919572743044954778058238987881899499366863088809883219563989599490773343541445829229976085504159556584922692728735695533763072869083857187503076185585616141807537260786982827383827224995880441055520108445970345291272147179243764575579727195743998708600917831770003475833011039472600947525370298567628494313336112951284449304072237764256265056709559319853102873538137192374387625608626749215445381997087382398745316670390589004726673040754415985811099824436709548354418685330080345773869866654868293962273312368013249041048050360314571061655436640954794027348048017221062323089432410470155867127943301944451232526040333111182874340586124856031964349836462141372730405831902154136748059701597122905433843389544002658665402975425740501646214660213486076084435825713138373213059698235322168621472634947525998533391035976147450982619128046353545537331767839621532129837068821339590402936469499480198654158170579264736084477508079937014688067064832075550940615616528947861283638540465576510235956202145044043642952170504940019839579758855534245607814841346099146670270989487301715108640364607783139619454890260704062731401378489135676008215175056381326580659763649909492768139896556870158578226348100296727500420930273226233515213895033142382668070955844219833057668853160016779086174013117208591557593899944953032657341808259930732927606290881892808459289484916205223547485642129285779460526927381117860179096144880982104488771455704618755421572513634632934286176695800038810088627510654523746775145097046792219713306852391987109082535374461479772321915188359612472248224080424212222419057225823217000734239884095795222227335996712606586401667882209417296859321142005018293537997525488289414269978895400579424048862659649421111568375360698465082489504725625748290905998100208805248390622482143102119893830076996776769658007936022676366792895739386382134200792627296293309394103622585510651926688509666465485845138690215860399343726239625852382147839284656776503767573390185495200602858128944462137886144559476426032332189364940415400388744637580000911008980677016070873527738191327889721070044648027804777932661574013098930630913907567773477591847795926605439734328547464120049613746264793222052237948212076100120055289988706251587038594762092877103892197951198442323926288811026607861712776221120925231752575084256925125762058527266785400788694192625386512548322409062627732030325974543935818133760573854995808577791550570656679728145762358882085068769876790731958678532944496933537751929158914836381339509645023075986040020513538131300930522055006535364716175756760006273365150400476612604389513153144112793581368577716282443939629369812976243149674741635055532888403097576104407208784012068716183741277130743321065775329923559383472414204068225847454765202545861645113403143681224797405532866810100058663370446812680694683666791226907102046704469562660807533462235754649522690873443150516133012250086159424991249352791662335788795780588944673392425162179616383198335610452065859307003306297511999968046963807161153107487373538988320744057189512505668451841127417168581458440617838825943502464421569765904653499401743259671356753305206704707847893753602265581379265204526214526300773690068050027401549534174620657616908928328210336304852230458048306113720338775810727803361949431956945217949873062551205103742735985291252601980582096636450808427697209370143921231715273700172258134674897145806166094122324003763470395481956877338161533793728766838122624463202072250723872031531065888581309061216077617106018131684811041802692094088345306022998587437398828812944014171578690094778736124033401895347228928222536337259375248997065189096669241505513690120308371049731368991951831098525348353500606952482989638726257267834395909504969858767997541051319414403946225100007025027647992693174443909433135846980898801159055267434199511180334735057997910100158512840437573351473377735733723759200273933209856229829254942516720356680831096721126237917576812333433762821279464113214795273823032920004323412741544138975976712557552646092318904155260641755525516771146844781202380713366398095682277782434946632206685623251702396860256205308893582567623648969405812138780965239317901032145179519008810807359381680339932143524291719432377980138916361355222826948061384980171545148790509083032547681854329218499520552334996076836540308014904859262182092387456686928843550230970321358859504621079823153515427910936404124435767069474211703511632105851290582147290677551507640010318368496352439404927853736824826790377286910497331478455370397978268392023860560357003222114399931528573747616142926216747830755994793693333935166322322742540817559249339470528788720264821332152215205019697853145832892557409655948935155947423760162890419574486504079778929686841348281608248940816759673358149399532125425761863522946931052251917882367516504424680795053699645140652827170900168943029569448607910390285075887408272100443664074595292895763666762296131575975246625447760139302205678884938342982893302995053057329833270562988599568146103374478360784914622189166567403316606441404384976736515929832584034833980355795706973536015232654445180661679477805652401520671217313160286575640571495960010258196662315821691161015788445671237784805551251117896562007823093366147226376747561400775577172923878831908626429487842945597110066602050311002207758246470809141692383430854198976294050013403515811125543516525535668382467790198576817617617648106350997017916048133535264477190947290037993466303308179041196777215298372027982785127149635542247037923781519792288282234488215914191178545960827146949934504047853282440649854528767048507231732959751124981697808623609878374705044088642197128120328444563957857588636057257402611605910229349665958403845446613204249314349787250075192018038601272109362826237817368234321516698518160410917388706412652045312625843660917818343048184455623179558838497828686311338534118088481913355798601156538844602617920321101815302158805522351232330539958235713718799367530238075184273226683324564187550513996890006474794098703309963093587639453551265814481498019453306995482601624217292060577940113872529271391884705657809712035498816220189396423242584559681240657988760878473455177904422077239794003135801939639599583454202448749750298347288093469708524616112179578074014078105686888726728876117895118322179756708898228887028122793127173254189871251291384641986072542876695186196481056249465870781800057319509108225587315145252110513606215843566589612135490322251969899684609983569974334472020320735431110121860788661242945957108284584180439058887672331629054227459554042449311581865053005229459819047316102865887178524832582140273453492085187884082687615779726195734024594901932358930355911230785843120330288280374829564477188743372209138546947275116170611336742103214354069942659691769597903674164501140880469144508116194576674609837308835813335853495264014618608355668528121421364149694317777561148837156903745320404066873111238793097038445552613923420250487406690530963189837256363329817487721169044621350614890996541134832737068659939377962636624170354488622900319579044004930601799385424930106479974564503143516405945560601231266784149022932037734262529314898517037651828461883953299252312108496451128290389667977254998054334656925993789536892631954345448752729154619439886276393325299084823806440649942551133208459500420643664581007034018129757740785318189602915364393167258673148383007092937139362201055795589140166598405305265340148885656093351742150623904895285084784295041985672232312465957794631239841607148094727362068018680702577689781675688988606109012459016263777176343626401747857308480336603288807752133295198685831577832126889360884225466133646948346543714797569496126454192345225342289292450245744586407498984389804520689664580879019995038388659653852205262408257325061010955783683464973207711097860121169364108195602254396589933677917105979412735513351858601265375063371458465661396808400516507193752488099380398711629634455067797240551341141848638821053971220555071257905784629347311178607186294471375080120712462144813049707130387224677586424314864909292938932682916784736795554384126640982967682459937836624581033904069420390051112533673026127712219570589942359927843900191331686093940046153088773078362143039768123856950091804384098391149593492427268434209452740138873191352742320395409748836837976394340260176954593872760103702321977457056804248442944823110376493864160673742040118136798382895933031426730211518415412147890952923258253947383288121532466434929020107014987072280250131214420784258945771990878740025320830257368346344339527057280352585579459257742420120696980856437380169980811551648567504202384176912519958800738730756576717919561217269761336120187388703542733825783947611949564938246749675123418627175799837842884935297518684072500954059703365169493460014931895900796299976464405401196351949130435975901905216926376526074139736299785186754888071700143418112380633513055417085675459555181316213756103253783044914145816868605942238736228795517451669950111413046235920901712508433181363736957670190676360909155195509415098218460047372004049967266421274282388845423545621391811775481642860413236966399512180565326067925252440002215666217794174348281463170443519574954494869709215708136536100852877274026407062173747910887717132403363111979454320097782370710200786467540520529691611309649144830986555200202571435666967225860643533269390999522878991792055595882795153896530864573346810305781206480434359232911681512940356823772434284114146348094698857948041120341267813917056455420377688375220908959423552358892451907937314730605379724796607084170143842018363073584910860241203559954822268552809715496312181645783464523109228784943785639819182600550005251644666497810517169497128539520628261074103418215084126378253576935398752670726162882163318428201154112286407941955226532186297839364855910970874898426086262154938774407531307170079574657463926854111857669371716332187318843475830319179012417578326839230551805269286677181027159855813891418506468241923823363071696289200949734249394498147107294565288658438833097064263124319826100640003089135631351568359156568379465938891375002366668098539948641939642110352025774822692702299005876521582140034180645834345716712297679954171731874544063584637465264443046405255691588047988905296248679559455302933440550171631461760624918660609604017747949153095368113620329801457673432824611311916186694421965496336909794053604012085668305581291448929335301584501220092379125339761449450290608043541783701743409438082426118178527896623277239548673452065667768661933916681990576870236432134916154937218027918224958975127400544939974423732580608989989782071791295290881402539112979204534577907833083428436979723674096082128904101911183619970091210135481324728405108411824445402295351385278804208477347344063790073790252620435242013820340061673794280883216156264651967518370625133808845120138375732931568154252406495950371788269609947270321603942839518741111482665141073341235103147886848383986838449528632793564488057906232434069099619618794801268190451691575076248420960700912304150209865642596151184766762576435708500912263384912216822075696189126305916789003687971059710175269774898578820544183242697305449416620436582119833301984985067587177447818108538746241112443839912923580984063576625700658720687583549479665750940194834668954552469966653451382857978666663160598617807090230917850334655815275037805474385096197634309960227986834083123627430690679688046530979806130148476244814231316818206752135330931981424699435036673458133151712161812147002396354485756583288615585888213817457655302158448027191252228616784461094242583794330746963317377177411880404078407460697657118033921891481948720608683643866549397621414638123707155196257462558437536205515728070785322792910710119480132918206645662905578816453644814456374678033361307858458048184964013148698602936137613209504388721170143880430156855116135713381187794645066913841066479384826780812538217303834125606903709210606506319635539633916434418989510994123464667935733852148435146111515432381286252533072570497135150629116756379366710975109971229657498001467946535012248439763935091645289031022607337532440645593179889925595148742909585262611526498392921021493019169261090769223960253176795944405957844431030441208248489058637066271968975808858320952447155322951610013793627989874096019302355869648174720321986096008673597786887774729106060771530912011589898785041068394967558230975945843719671877502699477816071323236003763582070866322186196343602005995277834112434757138664513095547202889356812457113855128756747478262920776942666526633868425556977864951323942173116993216804173765212557499550794486591362323757234702584983899374632884790679439248637638793998481636243104855199600077645450328289711087966976426344705314073728379920107216161353976112114901749265159024092882107448830697954907582199547749715867101774767956662856072650774101322884416461394918409154900135930534608691383186713880285859109155991453574567313954219117173124319939435975064804064284853156271226497963361585564320739106388536254180709358696672640036982380781735751395964433864609737272863275764751943191874797551006230875520505271090131182131231779846213714368020752330631330610048314285310392772093860222399085854622989571428362460690585135541949653392438051844582366453455920892927816857411303806107004364647891184159878076358595730092672153482614774143068641950572997334316717358603029701992335266646101192201400642675984956520012809993496261451454778091892785626102071639334140833622372743775756280231497151221668896091797011693911095069109639049012710705875597415140628311460448763994547144841466909759494278282685702967695561038291108300287973536156781219025132009378000885501405476734236824569614128999362065748126699579428379594941242999889562933971143034232579276084936375600684152215373444667549546789762932515212655362085292886718860633997095335744579330577278172006477791101717067571495482038002723390520598749819030335961192432159798370375624930176800378309483841107081652117712119014992467030999566356058901189811651194836397437348003381602898837098313494078094740333284863104138551156947748795928986997680678770217966020157984101277836593696164529659714695999395123002656590582196262918944613007822591036962768948551093098080298654758563755023763848172460398380067179998172800406340310341234364774618531050921131413401600610432701575420966199473751573058859814638446934733458537208470625098775115762415398046832854392443543674791619202339322457251727086097713769488108142352610107827328854395741988323963797046828114005520996354105296571604554684188051860563639496507775434087602885297886962833228622881013285329019098059841733838411710759361172423285290641825095500271094721482769854459471606156736744411339463171096853673850320217359794453024275645749012540007663290893948132423660464735784228578768413975781204711888743251184773409337764345879706269752490263005063667128725204234396701663235387133134590914470213003053703156157443317673562574668600913374698906784228041200775850044361921118431433480700085875253517845826155851529245923293128524895066387296930244910303271819259381594426905431469579552415877245709874159488192375190993218517505248462984975137058580588758534314472315074826429270771402061009576744076162085797401956055659201832511599700601383044140256075070961443512217726048282377375122932595066098419100575706544097563552747002854258143605625445121300120992264010355138853089163684566014482278729043023565762007537328123979207098483838660051991716887651525492329658281401620962438772870314739698423160349166415803805617034820411291309340942091423539284651145695468657473757935826670614673703906819809714092198140667554445810859988200113037214229186521516615016503433946554325035929645175627129532720854356644572771786948590779303958340764199826763020841701676405276045893036979874827462810928163571615033526871451141051280948949388137943219525709043287907563758821233080618497384447071165750611385062525595195796464909486528719478669139408281536404881675556711221007315689422643230287639334281701145841305266854626183672037609153183387089161478105788112067864586401867202965081835696021091366937433901166633277871904585126916879022366871655617518931781204917233951023711846883022895402348996407096752636596141903092978275170139033630048245914962908300893632414942851323974599317969747466412973107888551144973952199233932327367969405901585139318624935747390539635033301273192026536006423552420820947032660624670595229253344989823800964361761046292290712755781824278624927562290094831664098032063254961642314344407870413322672856301788962464252426968164878898574804953066088487892405656176325188434230369967899519269092598902790583248059911489799776261908080364679216828701346553651213119635158002709643185920927426128623347536482084013520811918185012186395064186111646239731942685992699697495060631759777770329705770967943889034348875811796781224423833799647974570749978192809049433381912421275813439984480478424334168476488599596146533841191126425519042167310055486819513816510017980008411917055605389922091821010053590637399017695395364879586043166835402498761560949564046741973026784525327687561953785289989282374783796373332531428462267620979578236792420125321071178595131077901917852968696613941061069990566260541962214338243391156021449077409322938651055398874502555710462600389766425652141948969720314147594575725561313643633925329452309011231613773600297874081668677146167632489429163505329293522906046657720962746779624908837478247004376039660780243727505970853412507128933635511545441273493694035269367427445170084676722312807927138099715197012287771666528934026407907937147073809127816096176361779201031412238196142612937447151255917145200622606217918151942010427699619970910997455525073844303683665680243647198129312657095425543101467482183680639283312646197891778618389982712600885890938280614551089863482965048942146629384996538946879577161459444575977507931325657889121969036785138782183593183457882714348072857783805544023425804101714275801125568126274508676571155670749283708005795668277265982265142692095406955231393068468278967022755184367115126156489513354745482766494618636154756408469643440247152671949741939000834734311560261392576786985000645159190848537495845082499500905170067075831863712808624577971559692502701244725741083144796920810446702585202269931957405600484278545995418327535071962193440093113016610446102177551970463136414691721726970727317472844649088786236122210691071347553300230164517668992529233015670393526779029298984211627321643070748748412296001411511021916152164425780442030882518715140501707979174162665973552959454486171320897419910676659173943335344051332845764229794684186813151827031388172550661703027638155689301235101241843115796350611556637528429315438367665375258158317117506449977520339007493330599909677701252369773309292213593757054068084497507835190960499166893381528378250129755176225316546943919347124837196501474203052204858073904565682237240795613290416132923685347600551598367413270030338915061689069640902679943493025239052882614543904137846303034873781759352511843097858415979557418514815925527573213792958642262586009561888627688714147596753966385436028365933095951452512988946068707756058538995986791853790596060477116778320842488723262597896438449054265911967168057767188225076922648248428529530958265247580014408020377201757628575392898962827859074490354773127010544958704221472168022969063829936408907839851334565522491854450215848644800505911311134807960739467094554948503420159313175772983734125172048365040759672402402791879737171326012682187436802256467987559191768100262838247987313972516168025221041967851729804403561714755994562463757127472699928552134177026099339260844923590413023967747201807430336866045924657728709431335663754720970510559190308235429569186171833472796785567398061627382429587979692788246659926913763561354568881593660377096962873345298717638668200362501824273603907951818127606429660612843942672421798358957687937060509132215898410711615834930887404652307140323127362119157020101906962858275106381611759215711060376573366011235569926190030719662665823005310769989463143089178373725612683258945691678483356918245238428592758946804794089715813509480900057673764460251156938290270767777640509237469719286559596962907436393470067515777336057685979813823424651472737497226491149895336426063767365603087211252569445433766133594538335171561166464347525138992202802839119309107192453108137600047250366409085691620745799259042217764365996975026930613973198317002152012534923924881976419788572887823825582726608121995049166798162781975748569088931368129716306991946546946984684440718798607848379111763064710947087260903467614313275398220538779365781196551324275575732667078436174471533157833962870099486728972044666998046135135982222871523790708292901668470112072840317292822895090944805204817367291165736092168507470930101331692865242444349509570153150008915835844837471976918788178878831687666643633769290928958321958632193634173488131325472908824057963505867754821800535448382014980712563893580482024839142124293975346350795075950733811933042152889124670983019287150857554913279028391415959165003412277719667201704337014765510721473308117988059341872188140198838565198871402943294075007973774158624514680019268409104483434222377645622764344176284017134434380196956492622827493761759185598008428756631109619810229130972967164909654212563976998350810858588407451732995146980689615686815279612129415272656950568106315735909578330376950278594721497695839395824448178848861940313688973226857909587794168552194829642017104626453347887874726862748668122427765134134320416623280619107261855038353393657954519818848065771930751996648938600309268915411504600203510917111294119035867947538956745982123830113694352738683030546369559534884198690965355374574445403751942500621117698990857523182216806767270216871540834612422096605570485416681896106211734118181947367695384521607980351220566966841720248772663344867757654698074342077083925287648628970312034061177329189235328717651472818952787103909881033796382502448174515334269056700207158632859388794734924149856902686336218912649612764920233775694798656582335760399983868891980453404302519390900027378745210803216631098116951042180179579267054952690632568587111084124852324049639277030838801954442050522961050159865913622429291812180445384212996118878057409428879494845122846926948852924275911432359555366986171840824888323420148664736839713089053010221675138337607430048876810828559960331593577682200703344304390218516227287778323541644837459146724123335104985884304844813678312744924520258042991024031079762778432847163776608408273659890564856922824282661837797937085430280961365395191110564914431035015386855277511156438185757217483576213252845556921737082480155409853784210330564969941876639794943286763020012200555194300196496534216370975074152425499147460245276366581345990918974684033288262921948397042541896253117758385154969769855320253518910388627573180561454386208494844776850556298470556400818521951863265147294262481841376997369763470160355318694032225115926284175994624468170190466721270722711826692421311752770393555507170566634972765753961093953791095224154645071426230057247060391116841654022906442075648528190188001599614444680675573909862036027317380627100044788738640002866195480208567705522382940517882238390577426156957557076138982914359524768655301826427833059062480560152420028452618359074279338430492585566239045473674175400843266618638588633798637496567034533981126996498998798367964342957927464605035639845669085795949905953440220687626634797124141339653509727733166909713738894184933789834895535834060498851194004004406016044210040636296568467299569007917445244311425373670604562092302176773004931274965622010061626637100511660296056347798085478070644344289364983442978482164725631184164019447331916210519259745997095662852602056463316770217223835709915761970608484892625859948186421597069802024190957469279947162335927321382791683382408417324792998868947083067911207655668147724135605047693795729823379276693325233771864375349481335789257897101485282621657554608783591406281680859455264756898730286848961683631854231303733678032538968622715609229910788395997527873634184232606015953328579892079474283022254018323628052965744611676500961803997579423020088269138242165618532421671524817236665293818218117491519428210918996384333889716584102385945060749774692361811302421756370063749994965446308972499110183242974720044868157992957838569947916310817486471439553659988018442065970388665173968413711698359941080925407690953216066162159628695996217927506949944968674297581631070557599974827437763235214377457156047452102186978896650761015656123270686282819385833037657927798275862611970853369397068666719961016761842098077027085232067793081321133113462052919936139461227810740606066035063467891178355164955013350598855333770119474953776925547471668674257011907249765192361733066302080002093275961161654851908721566371933039187238136987895572326025654773519198613315772609719283136413795907722197875911024132276455546662508130680366497845740444891696781097304940382575915143911109067252141714896414996508318103522620940887001779586960320298801937135323599704846661687197876822379873151893369502645647562335356551197880931122556703827539818899751901451035212836635618271988407732226562725524248683858721582733172360622932420100883069346446237184174844151226588383022737914926390413957322021113664414431971597063194800938878229964881806510684187425901561060119770011034802136245399716282188931590123479342152772144070475763521564452734949777181432184638864048588500057481442019247185823365799755683285884553074351077550885289545825755287003544847568746912307529186623322169351143033176944149021287087461800072250942313638370332093267683221248731538916728269872770178867974011788649003071606611128026818742318892852618050074958573451283861608156396964284198927002829063861159405607668645849414418509661919241071042978712967957361737547403357648240351863204918321308812502836216903612229895598674303574991902985141118736952124341809086390765648083852484354707065963702352424760335935745178417148569785533397245986144641303773330976485602048847283704185654297883316980230270515055754960146834366347361760710051046741761778688720438571851062181924561915920217743086616809727791795558518410627508530119949430209174279580439325824292338752178431921520039066112707420710105157673606799624145915239026035820679746141550226762664850713453051038198504956124730605460537109286444397206352339706081282903517450320015676452560632086436000715166816243897005840452876186242948659903599236669015551853175352988308123826972791403274884150891849094463349855325241918743402005619403450980597470642578699017661116204161357377267581357525326187723217713685408163421190193479361195919037066181197309140966852570690268542964103257077916191808162878042053052158697235858054649582653330010418147658373459063807217727032468399866765596926006440178198800202090021600149899810137698989787623442238289566001638463595300193094866396487244128255304236581060340962457945421057377439270274249981640774835367318062704286651440016535674646171097813668306839450073836832335112995135089911076884832595580379171609617064227988092475158111971322826495389022741319300097093779008830350196149751038012452133309620811397992591735860170262335203816691380753603942945410573299712189918927133025653019599517354801097034379324783767980514843298923959314120530128423349947909146995612638270834850245698327474832255606122136005396241286728428871319690380476121934882597206906849392032278878648936829306624554802077905095548245133482259485963805762350001983033315562044254820793354566631281563912513763966651277020344146036292558167697106142341262091743544020404611910733725809025030992341125732375617195604389800823412927888362541021981791942779296768957011042044201586588344596009349884153386988598955413916534764717516074629458891030031257906896980384857242578318450692454948170747785728007567639197566547912850254453171056353559613759425837276421413657331197798507764928564567237010598149362575320024820512590553796579089862262127844779624191557765483698506062499956431697236933251514995813245261952037054596485788437849795169894476567321719119159422704051104843822122034920928572921583968574365154857870117973795360659131348155883281629959135852063227817489378406430239201774270145944581110054325134937457780516940627944905539998732959201214838455781465572356094986019830822227096812095488535066099671060461587005626334834137366293675992508927203633926718338577865910157836039278309354001720136716158232426431789140152012145330963026415687994718613637015850079739584602122872043388935787976004457313516873683278833266747653840039799409040138861988166740950339924309932679028452803225582697197185696791740272122579147567189440606575736376545953070007644325955413629218754101858547232120162461451410280398173889559100572992005263211342869061687830989724706654648327832363430295595734771819214338933409583705327865572753666830032246178034775823683336515243920552129031441909522922345712483145086045439921178266334422723206455811104342351695876159267267906865244235306548183875131800159610760759536223649950654785105505970717125898960638706268291665569005010030542150607058891647564628387910230655460710936376411160813065284844977843127085233836461325934782882250068322903725705921790231239744904729434612503728133082082751856916094179566072241280166244377872381339699862991570926147478077165141496127289458482389155079031467566656420354772072961901890042281752631402560659282511037464662259642345132620480998581369911370921259684050735514080141257254795515353018776869411499085500963819376350954054142507113360086701453142675938483751432594834007406664829217983554449357793867792177130709458536947721050601053091653056894106794857023361677263228093585466965041902555820794848432288696647090280814642314162959236001418361587557595948797835310655254164689019767618904309556416321683456968250737630914573910069041338061109692067105958157535659227323190680683821800101104483224234684512780402197906783376911975193646625274521517453991395504836892388288942705535277046749101849840204432315389076337743593695695692379824401587353319459855772018238634208594220076070796636664177153065280642894929159704970436137165966215440126242264479196821450462785454053780124461078438164313844811029680087156516226095829897054619812790715004710540723942005602842976740956165731706283427238264626980025843870546412182646618296501341646094936513178035884588431752830242788548961182032234741661771750912489149684321870178370024241269963637354297548928522211165155732821043985814239630068115240867756016176930363630150742034594904782908606726476534982951063411401406524509001094138609915172333781326047753517290904840526387307258476927612528331534585039916809655472229263936332347870279608446775516015041609812091744887905227794568509181524034862511033859668536171830754797175384094343716240649207846026073208786405191252140392336392284441010032409194619785537616554349583620357809358448605706318723718696928973442395584948255365817552931445424004691127325557275170907029103739423711820739117981663734191940752075809836117738457236363726370520241684777154328022891458905063954951026607554911335881645721959688795069652314697631318224564623701413030341824969885399976236038816540276520736431559081799605867810909765049109997343681046949919642219107667236872053905694739676405461067095802983942142778770780538167585334707254771210668841408051820361473555982488160300164795285287335017753628718802935060882731808666783070750343290013336798025709051950648473602919487030649262792287885278589206236745080460080233898829337263003259662786627152654338833481846317655275432964831050017104439174736463930341393958654600741573748203812316346935386706747133278483581151206886461291387039890720637785942548958760483368604566597578346068231727481206727125334114418824537106720187885376937548219296192042990926018181024164477067105186542829026664136319090380827188374606900762368493885064160409998473395377213274297352524868235727351977855270647265560147887339511944091498560968351574458140870790213457985174919472492067556015574944893150822132431576592714990323745888566431997555709338076352423387623481038687031880482179233487003934676141881714583661137857536899768790832534489800535835619763594585213618829105022483613767222686382795640087380874749279190240165856784132077523866188291864638545433180294005519513389860261105062711015978694981716168424580608982597340368568903643735392587691466305766972956816358207540125718020481511335619270568096853274195999603900177283882338820079124235496231876937484721569498218152676237056290090168579316495216605593167693558818885409615072682826656421240656648778826267839336821398942643548811347627268484566502212762085805394171608586565981294634874642522317849908398391658051434047898898312869113169498359765202068155908808466492278457993619667485059422560239218592980193098649470194577004287550162948905141291198825296248576242194629002552508205100437179260977215331150564987011702566752939743864131123372305604429107083229066799237197517374393898240352570392526908121506628706727614151584062365672519848412496900573711509318148295504735301315375663255090108633050402408341952853881113152950230539678837041147595418208342330063541564993642690685847098974003176749250593512664412160175803461224660955497669041490571483081121393587706742006977158546995459521426983408913621621177291628896813895133400380821090388307542099561379479403119592151532139159107349500603603894314134786904116674047256914325553278597150458418741340270598936998187512367589402577648685016391824017975531669717110028642319783139946517962645000910375043085688226389509522994462920310600528765666146956086340618430497861124286175316513811951271133474018488235832202613435301486226485956616201175097115967946393404028175532596286113830918878918540986974278447220479028289057367040771950724724388964208474937600983676125890099531443956274611720181812601883794932535738890965819394687871921923824974905337760056063357475273526101825733391232430681003813857043932409087722475130310035937127416732732080246811446734149852097153058754174860494918208169606451615824048851210651969089228716221077208399712570458504763686877916837693087580458845914638400656097285388563499347419872473926269376391802775205344543111114685046523708409386462540077610214783686148704273094961251927579958664442213225762650981853057235527220344043030118025074541481421388743206314917236607114458289858917035366011085589104062629856947783157321337490168320345372301379968849212909792531003699727657625817960478155955916736745651800760692156379304187891706591288628440144877669446060478648488946758334779413519632654456624309961446707633335417281585341913071733745048861051186893303002574205285190294514893898357415507166545559600508520420681628032624152490087327026850384427753935732392603122546432387835561073820958904761833707690613972120061440475337925265276450364658938172773086375328818816715577460253730383583561812520229539678557004444144642207485890353836851362891882369247547786740765060951072889917298966219946845880693095503988789944311728310433771515889057586932464650393050248996444240920110573476238257984683694172606155863043857638568072125967900462647049687257657048699412337180112500926642089606067136331302538553484687238905993208921261725144373743005360807049926255014214422768588586555702450880854490684877986273570022901104483591246480288180398322918890620531802067478102848313314801432939127130601563939084372348841456981762297179656868063626929728419397623864309963273036696891159069558076575617788278235753875771607277789168724872207487505354188732280041520740118184507898748534759967083721773887914756444048301464092028627173494277644634956296296105649061005362060978982042066114202535785830444517418899243118794320237064480478015504522936836441701259494112962542938126912161513278526983849301188529696938918604679512062952294051481195458514473820664677622803868726787804373297388876885313341413970195285403320039347040610836537277029570964752705059399505301307575394791289178170408761325715740408465596137213985395924795826443192987982964506040201327441624634771568496643788610573971006191408312798194343314289389454520422067796602761462808009238110952243620934272255699539292436938229762745919809766009894359953117824127643352996573571979003567717852614306761822261793972000814638718600169686656024403254525307653864369877231863818956471964705010757153061598361630127793082068565079993688627158456634371652525308183986463377253725246292633156088182618219462911776995189742898770534019471263309430402090809368731466575882644776420705972132219465026527553459633522856311418306726462973356328636257074628754117821631217294985259916052885912750197863933603674689646576593562701063508099621919987236266072931193424277336552404293367459363996233210697704797225712156973808976741894640327032170959133137949658843567313461088735272465802292150489385835832831559191465867048496101363213102962651415106088423236304072059909814123295076255192913595684993344425283097141901860834172555425683873684515025840749257581488180828033691268478395368546529197492568486386935659960943687547502881590929709801035986020085838584694738509933848598323125328976537777933941427757706017713557925057932025889029820745827546604839962113435123881193282419663214668571791442829099373710425711504175882175874773295680338593784643972130211278955414310655771691768629476792381612501253360205586351710665092279653750690786128089369231193605363965513880430243544040671834170893594877745779614351874158918674700531488835647462721476111116646391129630305410114164514344777434378350288696288874725592131183131359201958080529502200544829133029699624958853606351101898650475502251827771040217240738877515520285933697782235358156142446124036037566027326032028932697199714870603317382549537089442051820446325343652701374097771650677779861363496884756365708065546984961334881887355870557984203383005093252846359336215943497039321271272360336130119493409082976848349863186522117114114373690894267855394550746499225852166333227449656754805903023974635259486268771174556434458881548093380562312050468423471612773083003501889482213778450358368275380401708684113487228437284136651231161323261194081633730858327192697598638634403600813024165284797767045312697605645493896747473566034902278219636000400188734467636631387446825161151640618641304164803513045660895316063720688516826715315235811193234141900293054220134182678437349632636579562916979329322657080670440273521008940384199457246672118367914595670788258017215351967593614616130730210925737470894775663316727528057759157369289467721812414587367583847838249401305550620366942822158401032641842047893213239176892395150790030494103940425743671357882674929105207009100252530858194618703391765315882840479382343021878874199363378029973171393485902844650824684643334759741519652375190407143181244099801853576586351534732120372949724840216513304379856852719473928287040184739543106559769023173386555533996838745082121053749275293272844632957484050931115165182502385428291977898619681284320057033736513968039530106568074771207141652978434028648967231803496861142589334616564303359726550663327232029976763148475064074066171122122884212268120044494606620811415977162836238435280409612455212883163757397258512251836306049397011046490103879997675123274064016215524017141769003405760086814451665092404380082832484085435348180619855257519410294602867416212921813911574944070914187828408330656273343116783647225503805104690116090735200607740990721574897934907134683154866884502241146427189831817887348093423442298875150621932279661446841530510271823838840433775274261844250731367615062541156473401277648949578541877004227984430157585854832233019501383109951559792804596090071209969942209389549096260833512707272555747408981821377188825502588602073748389810309631836748066011445229918760914282804637604426508914001395027611378309112696172366136003913922388114355025322348702662225905385431755868274183105299717438759227353657611348697785660085235857995961887815219326088307305313601413550087797097412250035308397678636358338676979268945068188892452387171461767253810834122712783404310728059402814097667693850403535480151951365489831054753102135186573596777550020389529663003260682014254628293415906615222051312770408745637711079606007966582372984053537500124901374569405368378329330723153396176917014914105864196172483343238093535376646531979691134597494040851236542173030163228460729109799904904172095761726958468239862255933953646686956100959955188642249943537563042125844735493701053465706463960843707249549421639554310850057718511144877090228477854555239966934739195676054855183678213635541107206471468256845485141918869155972656843671024054580432482129415072595306828925883531903494524359937734297936863018218049553299046490600704153828600777856167018612172021648796704955577149126626807756412724356751883543055969887648768308132431295093092864710089554855268903109964432641924534573439498337835226334611197624708210369406420445428828174941265859013228952752236447912216105220152530575377927569198784104600814043206566099872716283553939398204087512184709110675938404662327985250259197215029719995802612074047458042102661712090981222345802602335750912543609752431405143650948283253285022326822623825522225365444261124077826324697922693667564519685239089431770672864326185491784421081231475950870666028688467107591995393973555287911142936834827590604236581715050901881908021503306358736079442032852046546707562642588874667711136092050787221521506896909259387904372327983699676896416612685225100590321928848868247445849479020000906747261532543276712918627267127426178272154049033271988555174137660788692806601514444738634033882405080617710417113194992915344949064710467471952636997269659148855527673228611756862975738536936701975822050299198450599942896868250453710119160073491607902061377608399869968410682241105216335452673207679334641828893199402421346787888335270754611195031094639628334321173764369504539067500078913060666106817207975536707897313039363384287227528096580948545191469497571347809094054189552767764390030919657293387401293682470018772674530714588703164627172114144108825064750021640514217981347259866653099358437250798270113569375499585294548006185334505385095417801359414057122566139379031508107830766118169002860697554308250409314356695942852167569080199534976549939405280145063869517600027748188766710526242001345737665659511957667378514336189540192003760542561988346722016461272687294643354158759091139681386551310359259521461318171100716209838001926212103618049773828423886938200418534361975668301498412330539492378968785979220086438055324867456891823158212737838403876531689606811882503984033359978712406594534085035321275157461753288854671929095428624068108893637425817196492846392296762526818852337535705633053354945296935221710329127706101627128628219871090337789783755155228901657571310035741705312036826323198609203992733610976462278375099756873012167846827189406407274954177345201225334145230087471224633755279973714943720483432105234036762397121143580629732034265956009390530271013327759023333159880181747245566264312624398338155582539983310790673977110674260623378714935841350722308565639775086802491826985087904297224210321816204233740621537664373677054146797350112102755193455577392127779803136142799842593210742382197132948438353100298492300956149526287711659862233467552217036528641813905051473365798438805974223880078847891097713005313808127427184098860797168668749061429962032816070261459372860684607030230688909885826677982293738596269446103029918283586478270165896973242655410445376585653247022037584564385792624091817545385030659368014734263098613741259863797747959020206184439695020268736124835983677457044555546569660139407554458659872346060487860032999664594663103406557285312465862906104540146205585917086695980417206410879276586353378102914256375769640467778197845750944728680841249714476130749289011917789730387562122205731048239539468929447202417451872101166492879879369996914213445754385609498401423197536612790233132681687587955069646786319014152600755538835835564407464216850543250043152437585118358903405394654124536081162276094210342734577309801892716324551821067032016808540121061529077304907639207692238087016658192702158215992799224053489931727302125272054120758958628175729354754931785220219557020470523514479155159030139760134900986965824630169350173603281948689958004990691077953206865685000874347090172032255270456520822250575090798205585109801113292282825383773951440198988567026744433874774050883278464311376904252050779469894068813248120663237257227909032166963462335522105829407731573315168746637553054161549443344245729651035182473540507093570023986988714555826839320208322073067097360070168301318481019021804644513163986773456880862862660087798855839916104006600694946329479760951376817901313169295750075719647068704040602602544951811045178962751612943700183191308768179498655862308310229728299768907374589840005479076602974688457414771444329305284130425105901887653886360546774404046106433937353720528393965311246740850024852930492073645644418114757778012674829748121726553153796829302525249281641281160686423114472576472739756563250085674866324622451646559662066184313687258827061073257029452416451128283123067071422231364543896479745439268633728008367909168047929187932952912300946275482711724960521612931980699014270164965439433749285382981478957801495775119229168617603098390744168743546024264708566931471930802965595803548851097297931942597819763639108554609615735866963484720233101124471289519576498907440064547686771139706716107115491250415222289103540089114293171577235868993372370629493747839305039443120045991538011637391330827741677151009374883563919898803000060638404161260189815386476727920567381487631825675457266600779017622447002421480909007410436923676775101156181460416317105709190717570623752781227014176260737337061452751927176883492256514537595689683122959536379257633171309858467518928837605691756074835631660974297689291902373177232972560666707981320315365020972106095040928169868000116604976067466613925855896800454798640304626691793238883619948160578498218763111608797572420389176513742944132776732832563502115048028113946511482104378698155084026163072929945141510952238976509228688322744388213842684512380062034145961185443980505385903501734128265145726888635821361969012784688773263165374041962277900501546621825490333666008075076160690578516005851452003147735519442407918276740524599137621355128016094548716615535107329587190828944789695523224973474287567873869710923092849866467871440362288346110537801647294485889342093272969452667010585878798752259200147738896219566700907744054636700357653249418244540328095042457842068891298921424239924603064526752929193255053162759515219386294364379132980201548874301913472272545165251320945293851006534987482080346124079809323581303619692349736235280070621922260827784653728289754386609361176269395704954278336718396579208667230385072749954311791692835215006439257864239162405416053270602740568292421698814179979801490259878927672783414856608793981328625760693263225640652988776441071119838577109078399224999152660632387728400620826743790701755383929181932208497862597657324362521038142338733894809072033202798214282487052889700998222653756929048064772513686772091351835293522374379403201825406809753171356064400073782356785510653247849430868355914270474377953643934959137559561907888905515906047534633445676520527419097542744961851768140385381104509320628745227654007352426930903962649609550940443343230150962742123552519569156625798265317581391843575504224475511889980394250144809607965407702955059563447525344641517262831437565502879133923490389295689358943104995954219134280194447628140202840155578312137638258425478631962631703092673333248024234752704128461243074131491858117191580965068910971657559311440655208107170289428118595727846358276832515506450441245180848388158490879531922575580227361493800453705939336957894254678510954748798405020020205729369710825982078021467625813404956853697477369139918424148362050170720300598335589330980129730850674954815161569442362382885260346116481651159260709507634646244279826827737326246437978258160526979462563951265605569812476141441798783651180624498187640915559138126310388103877480054703347431085569758575572042416809743769912043093602457273736122881157462648847777616572318065883737002884228119717790700383107642230806800260480497087761988150559299983605333887787106357382572682495692896810032874429869366003357761174998993595189043770474508246316276488126351649734492663429617245097218162540583574542443078284727512957296695404121096530914866470938924692932395262337770325010078990396394882093291712436762505718898953927230614362948253665130330204834078853230346963886391835850123901012982963054058825456917710046090200197879951935835661684943483307731719323721858022684209726759946555764190313382780763794486414587263589083533486451725412579058288332538359562385416227566282737671985328672575423767077298296714159147073647713216733008095825585495809507036114525869341503356116519762644063161420609763924173396422180598820686349729067799435774829900692313920277319972323537342887080052390219614092175853400519636402309366494567175286007011878977009325332052618148624261839603508433298988620345838043063921755224639605637649992554132507247313121271481439095676213124707128915039486818499453772237895249819189166479089250930451349475441978057201970884549209274171320473861060372058644539969358249386963421812357427094781968074795876538731196166860592011615921498928973539467796713466725782923567754544538563416431168466669655534535503116760047897851585520796522074897397995505577315225895313670567859187973878417741365289892371040095641722634587600675421314341016782035611782934015232704944309007255121278392719411795244442285566555808630413004025775733090169683159947702657737723679585744248313585469787161472523250869109987817159277468279127580633087284553627075643084978067531629233719773175708849540072142871319661018441055104603258189359933883071445389075172860578723424564906479407153588601630243513411948796925656777151080665208129271265067074509853019069755581102563148065612657073599148443084796863289514995076079400658058142208253793999311616961709310939750779752457760295823368597312737959238829540778653063613826256357095504535351365609518735676910006840997200452488746077885275194141361154550488339145042315385735338992640459525388238855904206357304608631344048419975107259384349755697443052422998248491510641698954018743628020707134287608501404938655506929346654944809158219795643401198336130637763658464337478060533608253010738994863804086214729566322166706915940132575337507450554734140215568768283068046496885803812149086509175691291359578566815288450499368391574652820213606491201322488332937003972953761240022804150533527237129949757744432619934915592104636711956412863859814279516070722231474263512458446527221371992925761586533085079527197164993515398797578626173120543335321130964690567894461519101960954992236965671675728381765994416841308672090496482443089158509091686794635217044410838631795272917795769175528665997839004146952144637934733096136016431798474420480495100694274431855023123314402621226958268431470004277125957036633145405145555857281887968417644172039437766215623106812080013346703467448212014133270211694988727554051488511784072684993605365888082186363114469800615288212547379911670493039485077977869663740207389778846964557845153851800785635679534328284493826135652318610139481527204423977498742346519385323299999629003412514901459045383776230880357156009241625086070208786221721648692353732164546060527261359140166230846862345817960159147330212990067506184720360533953374811358282813601628258391556684921225995518052744951767946763756497874417850863255863456473409302962877554742183945382004892922448392672652221094504447267555320715588425146314955855423851311880132988977871567230136853695049927981736387908892196418968781127794477035932696112300384824341340094731873724834361757813755813957260736503980371899581102678403105524686825544542597602566461885718891679816395509376451236461387736167912609307785266983565819144379401455823030875122534864508146411459007600127282817151646316437473456610222578346460354483429376531379846216755876599592952865911853124812480344783452396346466748099089306897640270088952934817313309838118793127157774437714921816514377135077936050134560614968885187334602371146149091628048259639956775308479882187453591658766322611512408636528591878042252405167548327251963993561871873244449040373225345694391680668660523357805859426499577657129968311319155184765639385023588227265553272961433093850837000799796533941904416492806503063514112451469907257007447230512840824064361011199112460214761586796283421292691535156706251263208656325520769774369612201168541037365254348231431833876806064241146407183786411262474966903373747693354427293229196274254615814282248471048783873926687420172925465306072250931198558278091497254501349806929309497193926460768550977877608098651943690640751450567440601742853952267814615546897003799814829797221426174942268417444790142601250096558685414330195543205403733328990207817940893567722087156670714672530623630196125432859268239294760338579196244176443514365491399931687363261948617512458692834795881904871134212710999705973811711361156036341736701151492914124087848146656151143104108584299990864187078692520722578476668854491943876893983568836940140226575551802330914194111318729274319156948952441451240423001235052731521139424018369057875049927628980794444548045811076635254528222813649455683933981336598954374999924519747351109414301544766408913538312614714501036114550720188961806004188253600211153152293654569524675215199130087059125658626288956033284580292661675525980670282557939247731794477114432618294091545590967477890943359080926391157235832147259990442031154162813986310341376672992188586286513941713298457720298017931264757377331102251863497238585795775156640913688396187780507905001533987781980039582183853908752688365656956482733162639441867229490891034316986008924395828647709078897623076154907678634123920260188905263995192338441890494523622057075037600494767701469516620639301527152566583544466021847231000027935434732479877137153967960287976593876815937608357455238027270517323069157835879545229836759382933671363326051244406598939088852611725706663831619071903960705091011998428625326816679183758356744825903149131918014560048575198891472939418148760068495483697827878542683744575319570241701215750582966314872791011409243333214601401095001965403534837573664611838829145281075668930026465348907436190246477248529013439285015656818246774043033730207713864068731152210250548886519789064527454963417202146753919691289050298645154440596954695523557080592620693023217371626104354686778372729019522601562604747025634938209692994793517778587687322460632126720164587270030341264461570095880376741072895809722796154121662288696510799464749526966707920373472603974284753501641618523086920019248776427283446637453492590117814447585613930537171987864289240036304897114598477125724544254748168612308216594851820913124586291323474857371925074515786206706770900477420822401852957836394308665859920463086671583436222662369067901215650385830629419429370653171834856359777551156202276560673660304207804919204941752604387985188374876176761336904635240151749155434920559978190302460249519348276710869903555456887353275008836830377017673847552214241822485997259645461298478104107098415687049536197138706033983471551578126709868477277974946885765210775466506024181776587797893049758153545603275481167517832470259208630535468424443566044320797103271270216281674632212458526418612745271699291312754798470620362515061004965513707304136895146414460947145983559562521476093330724085418703528560566865639524449985503461599111735411968089739890386951338893764450279238661068404486598905667242896031519405747002401108397277009892374027636169979169932071154331443595802809423529562558844424880319271763039136916754076265217850047926813603071414217527639133714092905266822786592771807250784207121909693141752045063477999774996454787909477658016311885288316615125580834740253870654722370499794803432566187103160859450232319714382415139763471356012728448397053148666482581648541012316527840332929745134228774432473729174585942935508238572996524638034659528486197099694629754243132886631860738063944836961098616059255942431525913454174150282786009481989212298708897333636219025344746967542606189201681612389844990847150976133485757786233469273557674320106454018505420457400848281203995763809401641090236059911572566041595358868804847306164963675968108136362071054748880060731288375335823700268073132024437100082460512698248802719810138371461391944162405731438749565901565361544677732980544709825179312776209599859620679731587728074245989508797449483483867785788235260396611993476489740286046237989361776235315780291264636504828012854529756921581173969165574100478885693840535026423894156324302776548293684640699845512055641573662564452456965730766386920027062397669156427408993362247930548010800637322806858607921550620245528990501489611460922097472177643818292328557433797889935320959623002185240926529228018300328153571971020435980171631787976919413321849537936371714195607381804161513110900225622531152203612931589714323794854032857690665025431107967170276479144826344251653103622474715211325929622360986887452976028333646801065196409218922482604569467271702987639507442923372884500401493106581528218530237439983065646510468806805614850112606766498014375606534407738759565286271981060860863597473397182570897270828264262729327134957787920423781773251507834698899629270387837711830446398010923429442947873238411105749167059028490856872233635588463132959031644972589863173352604415863265785500819667071283263999567285496736881690615320694731066223616763363080913261972296841730364107916448331908894815608611586288385704891585810882502823924198882331351610213319681644717219079031739576735822635680176260445926494701390831196709916385002305389820952975601059381542970346296643219223994310624968003701131060819476352144309200676547077031005290687624658043375642325560792820462224122150513725446992456231024791670704091262187794123086503697868087117373675932274334500335299130043798949789403301482803013610378561918694293927198298866696652175589604557526463957104446042521011159823619285491245618082844923729493790669551439830064777366576394569741883797683952186698460551475222622158781257025986037526024915040017103988091990079938525237359653972341929572195299560093460440573972311142988606907402426207838881678786577825307649904136643987396731866607041273313765285925901546647245256069860582601522268432762431276017181395607856000798766305794179865748091686221254958786578183093770042069328488677673993754381642874832255048277245455442438754630568396879757420324703596457963435759610339775478891749700288062191505137646832514740753182401789972745809890310072814944311338941495457317164748418953815526838722079057050931027301868453177144168912739633289012919322876550776423373936878474536665790629073822636919924984037568226170869813134524475629950634654870750107357869088063742673837117788991101728662083053071377382862744210199794314879835306715613422044585787551673746721685105233674638932493425908889485202915438165475897870821451489022425862445092035354206072719232270135613321213698692499020021908198504851402419840127617317410523443132776244290761788577357608845853278216669663564994143867967609866050788353795187588982653646342692418063429471087949204289588226946269506251340406884903763211506314199210601125988670910583910097469356138892232974591820400309700107190174854971436449947130173532884243840216748069330321742613134213667573909862823512794896998189597887714901628035356402358457097129899853178217715028189901917741562446022897368462603569689899000726643908488193680930630898553318993087868588401936331585583126188749562951974314950047840389512195697075319083779084136238216872525182177178384782959788450651735780372124640580560833701205952530449709592394401895606338640331949524719986070030206558836336048181061274677091083202231803164147241871806181191376432017460388732239461576982686669016585370371688775692906525272779520510156728643829618825462220802313105629172454449616147662880076053846017647588661112891987620749491313796515340621146133794369239729010199945001225982110882806123659346341630054318181095259495536257090247095578137537570922671510069126652042109588449621080361448120500141514119531765346392896223668495640398324183500634625218347048101715545696671833629056683792463553515325542137731527322171089109177503627545362189443511443958603682006532162799822707331048345758007754419045372042285592199508282295309755082109129094089845648068880385143529741833505576908939042401319890224588062247425592959615054212982164879257874698984768891270482113409521431896125647255299754452929453843417902177368136138957457168222825143528001727585068233493697475592304878511227959204663349377385763121751064912958687056705708753076679211792328072932738080120799842962266239482110602543060068567125984563162899251082511586602799477876513356168239710008463756363654246561480631086376472361886428216296245165899359711277755021638835524251437857439532332651272191575290851003791466877252258586299169178436698363435825649441710277555158894997713844019452753484697073872230553316862468864104487002078765392688795577856267709470224506287733718745836775429314613518480945891216934816731183968903953423451022786452474929560290783220241127370662140860317903561355338978992590900535955486065661403392904029288470719364666948661699708251136564754577913826433074441151569413172451923469940869991526777905558743290412101823151488810077043346156828800361670097560524504023734828392670875839442561362248647180623102240042613043904431465732392667658317195292706350673840469675462437676809791831428514022633115305003675838106924008794394965210858076886864895412353458025590936252583052169893856575995582199706637609553242498029445141138691884282490496114022887619557609943687449916879846952563227742521084707774160068181600024084991546097446545147753905724828289282405465216029096955729234161010589350286257453827596215640318110387552862667313674793835938693405768840327418500790934380575482901553568448618002794934693142309825996545232438261754825693035698974697810354582838373406352943054903400553864228793182928094411300827814216701715406269057334250540751980510613132806947453003926478851028138581350024807771784352392379380965744479267826107125733279165782036252336996062997625995042225805586640831109754740978426589302882565424489148625570473010550073192036606900423283442325409808545844010737201688954234393734719578817893255457292413918624546160392470519643413489106175758560534701024348210418557420605460888677857425575340457735543041339022254946467427919407017204330796723847036353726889914452302628041621938058197367879589937551116942121013935309349707817497888909086181143905670643930625591932145733166884538666569543843616094743468480037086757761465925463657348270681678387993529641495899183530548677250090041021893221205552450664447087177859597637433397910238387330443307828796524678190562293374802542569296014468545766402128412335318380165591873530333245313277167736384205370820406698373872433507942279314252742517210952213445934710971804369116932471817947784370127507390507234089894055449968071265397045060068810806271141610637397031165315084228114101399150766841109423907499578914221921300161200073423735817935798258682699706804426924259518253425049294891379523229430626963418769156578599431852978536079965188673342846039521796058454401596882404352954174491089064041976673446219854993763150734818475390872647559160414165453991320150199802353986434164793565209078270263231703015375371725216856225088190946340130674495911350180681197111520176109249889661160469093309091799131030830792755312888334552513480857223795941785041429264067568736544691518759717564866505815069558765407096149562192561326311517365382023286429672802107805761199955493041557657321655501495082910935541567374484265857570692272131182690269425864290797799946886944166367521846696051377714975447847462204659926981336715039735463301649129905519232319778156884472696469460670695579972787948745714371798553446465969640749285001840407122747988526330243889434738709644536840433076602598989108424358352209787788417254073973016313159143628041817993928530844767353004642563112116735660308468062185658699228268001940740312942616391692380338038381931742639282013833622434157872189763405633059293636501497318183005998515600782463956603658792964815233952160211349643759875420228679419327252305855274036866273545314541578967646214399568062805157928731188696146834434407286623419153911757608311267114411453867390863686477590465578528248999783023216352060278363159114477241069702831457934465832254680322838909848153641274110196424857766000182445964619734868845735035435908083841714547415325270873113564681998066580984321623557211618147905605909958217005141221722791962831790164600798201288715714414517062133959546047624155007253645754475545774104626506041293338048458399984172084580584704883901686353133191950810618223140346242641929150014692346187392279651227056724354230109010275658383621175407126073177570401532992045504179234361146648203283619155477390630815052970259943446721787353245440520041392538911414172664840949360423009125489046343333378845475387476378075779089010297598045766332337810235466165319428124448403278315954821692466789420671238491229845380757508630693279407247259502227417427426960136093538231096727558784144541539768738848311602742769116859479188890342592825204385241345464473135208534402507118919896914488299210933697894047818842274789893676076496220947337737614346823467734630820403261207176274322588563892927402042739784372297020077527523284216743163536475814625900631428274325092520639287229540219792904718162345724117911420217166524859358783566432625596576574809231896543242804684702317594363226204955539837818557989430937725617423849294741406950716808933286951474767041446095878188409497262590597621990614855549486977485236381881397095751401776826075863922867296971449335338917551433933150954360399841912257142463388640167339668546420723368599363507802866673921120112595619247262302741197313884382885123374573518506769998883816586871292920624222599004787373376624637132437013147949474297511261149220671972529009813303411005651327363510181762949715786499997731000652522178910268188718449066327029822915458735662706743740500334123650490832475778740416410225076647501185609412885795071247750089455647380562594506558409700917913453710485939646884072357164898806301106066437078910418978798319815187925721480574570922597967017588038932862763566585986007038281465622118057313476380014531964450877262265440574959117988190385695219565938730217777415759298020345292287022043317509304563188335658272781686048881795036748652241405265585153967783613822365752296298055194799261763215502187777127449535315322277573178412814746096984974995450280711253922392301803163218882854717003814262153796729851876369517041672801537135091239540880277995841792375163094672392489983853831908984675512642957170241628271702078171139395804316832971057451702403273763154501938388221615052462004416306895816694412014609993618457538368873115778042110564507817457838403486632372800060375404334139354192829654719563300355516072896345308389425041673131598818509075480570175333748050423262658480697016064375149178097507108044811901099462114260987906070193788309831710576935236196860955730310086662529873101529864034684961650233813994504857841036143424556643432830836237627400141980741628665722582844229685646708133890517396157958679868757092666780778803573411666567872362765415862808531805463459656304024531436847227629535873747859482824886115032787578352044915678513836776105183829328387903170492487307373958574099182021407050654471151427114443192338438610561855421016737368415472933071444460539755832549221572773016494048839551757765155393544834943369918384974010692748565478468449763990145375790933844271049138292665513528156788897050948011386779197437137787814842420450561009747648576254825124541725729874938013632934925891027857938562171629834621733287699916529664819038606112233929442325320953206829520050073793161098142988667192805957125799353281828122052893834682825560925048707048113359338454859676226164552726423848130051453317418474842811709391446664228019592393847481363034905503300081332275477513331712194364988710289690453942128402618626381964764686051364692527469540856840120779314268138602421200951812663478428369469550977606738346310479221784665112292361058565375734211815019133595484273069144188876932307872119946116911403236056528981259009311626432432393856735997057394540786076228267186226525872832784894334902879882504969004705320108027456710177157057590324177966959076720643020755475384625259094723866648217576399767119352805533261401033961870302512425849012923128169509215777300281295817093933519960350185893135957526086511442402162053070341996430537803179297724404700585003347584371302761405699946864766849602498742413358662328773763749769519878389060990000981564605615318755694973034501357833499160367533836666519767317534088542985516148504909016730011792536242018631313527624284321591644675208623997538453808512666404664789900476293405835368580849273667184740505940269409714053429836296977824330950318478819351628548334554612474563341000258840161034493705091653182553504942197598658953315455086448693101141586490598887159260407587215750885362623078540453944177087313403718373953469794170588000718364181154078161068053033548903138886830006020593022821405911076401765336640290123898612210417896260097466328106372041608269474750452959146414494421169870323493781787769466293565690852687994302315703111184671982184767713416977429744108846251090209511723174717288906095284865097488580212381084109738120404572137342458369443507607498490192885128348458779337501210649821212279047763666818972443153398800260037411988106922435254568903902837168675668811877266838177289162814275800058068654574449428921614867309030531783798060259918696113802706775792920590490140918996779444583617821685685491292617395369409146525076583330807906625276432435960918788853377731238329579922570248939756687854265148603790873717489943827433670183502342307455760871924019158655651893105319259580159966678268508333512734083839517229502085041789642507790351422909110857255972141894599372759477560619168656165557028169852710917969721687192927138632683741038339415193732874863465801241403853696620697795991754394257355522634262000851648365201988576086225490613335020995656064546014774183009362724310021275218606492647586426446051113591299557773143268166543039941445909296875357672622230727652880040482216674879458292447295418337048508761343693091489412332685668192020808730796564609212858166531120819744068224674014103190053735683490520039382869078931086835024342042144501230929266242286922630480090850465593349107371771151167057048731514052032176078731881359906829016779809857712186846297307498274248571639364186659282930569858719085606852297207040298033161173632746812413186583890969425865345226328450861170468033448122749387929447284009724867121027225816837768117289605620391508921351140228369508525638609010450900105926466308714664674975121054751912477734084380331249896405645206799916382848854615456032148787843056740853622644102172220465655709757374634883436748773319893123885845020976212633858578668494021617023989407886499189051353905193253813288912028757748865030079922368127677856936202303998291834036642565123395449662049144496419255555651053492826216683455926188505366387741797167873293542482040179641194321186171053155108734484665700779692076057449084850820236385476493504946212226374653931708798901859558141504319207452764861026909898843805214422537850991469256166863633556480702206341653515186094268756695163645686122218536150226475040702498699538027138391220409799703042767813131710889275219622398627335801223837753044604508560472896376703258691719614566774897556373076622579403061922603110361662748472938801951563370087900855024078756476677440672386022452196210781750421928681646858452804864733353454761569683700180378769371143627772070854409633361529847696971087027110585918576903904065324671470787503797458680637362710124877923168098926137141433223638049207879822131666339057695284428041549766473876605669343903904696343895000736200325500766435767377721009928713426515516373896745332472166891332896540375451243965014041432030187375926511713993723176722967063602897342159643651297566064414033612908785543041289438637967184283962565145463572395903281241520175595073822918574287587593731203196739152594702179474468143294577445606315901507322968181844801333722704590537662080578153477685724806720287520833893773260416842199996076665099552896131484963270005147753078482757647860111634531241556594137749030282389031542213292358574679010691510585257183901753027782001906204735227201981799024954761790213233450072267441625240574726983813069939573634791636996206203322202743635101156617569629975157139720025236904555132070399342769383458632506090879224285549709086615826560033101493922910766136288920863373735729949828736269641603026261836503861694900238732648107307123891208989471251757973379571930126540533213375635593352041866196661763084648330448069255127332004180168398051285428717747732810375764122793424431948031786882470926127181283761868755529054665228910331154743125573863848125591889502287583897699077946177642897025868626929939037142513836275665202244361522199618083947544890817136074043376547650142795420512988139235030966798199052403642360002868818281612953698905380912358326737046531132907106513355786771841236347463374031229597891357345170901727477373210958128800494336671801228233244348992803266153262296576418730810166159426668284259285345529885236086493025588264672253255547711946148774867044295309664337672812745611506039960660232133499178464467555154725731757858279357715852634392322226591675147880407424877956168095328039333377672152821931341831664856909739244853123007596056655664484349043981268677981207579679807357252506967870951173592936365761503261114648987299156545590080278732514591454646519896593671870859625431041619799027095166205978142301247448159201318506208393081093074761321270086785232793373869399689551329887710545586360661353447654299838540150128961185989024860728364704067826293046851843636649578784311947949705860887503732398964671154805370737382743193063390732768381448987483739105917274519520692216957410155529417982233249910993984583752118038867696766664696579558150725553586855792507342191600608568026317430391899732231840480424362766120454507054534667376339995201347941247109572327410144029294597616095567722305838554542587824105631771246598128811586269784232482198733289027341025355989091345757050982553624910300096859037079468050352078683382559772458974296614793344297285600178346221285408882949041365574538246406883315852553767345199866633205022156920492455787454689240046785512509556534304253244315372160982802997021782985056894019783277753188801690330693899070040842982761603855582351080886140584647225884969779278787172730576081267856311707523665378098662892247813647162788540657461732925616949668413927556663488349478992506861730731603518176985717844523810076385740774701936879974619269117251737783573502422080241722898968722906563775229428051812636511623182100916476547740607470791473576154452698917592020014472642834945009791819540448224762850480550195840359567988651956117133330103975556266831073236824702742823932913283642210185678293246210914287718079169175365715713953778598833539765634788721664896026471786992722670357725063705554448866269476897864766137715000269080368609178274511800010696108271987196780635450513951655388602410600968466492258466049907989487100396516232387182511064234949534781225309662662996781841010219276461512214873434807929743670614988673197962094530396482511950739455064080683695883075364528137328914281546893274938190964483961708779640041966521678903447477106104990550009825402208883565057508590059216234572017114454204772569841763336598645236772960355531578620751991740026363097071412148447241811301180546061436888743396311195593521159911731314082966364500277106307248198722745734733021623564129332078558948262783711517268315620069517988425451851123602936196251714992041853507959330767245258384867381520420629266157459635596224190616256859184274821579228092048791970561227831451351488691714038824886987108248955180155299312142463522908976209644154641490956604291160264494355177867678300139641042946561601593695004723199081065366346453683027193155868189794859393661064972782897581867697453704781935062343185439769666751344447855490998064282534481169729906790158601033099511752045449963252581741974533077552555773533472266360782755790672084440754575078514429319280893256958939910583411970406065444382370400433664744889666644740341744902914786884931381687935611610908209393504455696481522494159268988792936355346426761544077474885928272072583595408947068408717093700230191226550945890963135411734747206454839039292437965695017349302486064214468623608110380839764330061070018386605561831589044147332619767966831840541990366045595071933561403054232286055406308740571196395375036126144573190464607178260281594279109407204581843813757977544497977390509697740150799486744026559299709850681704131773447752388218346251419835376565683853500930758958908245172908520800034248313201839204397639191042063574716685527286213181772873417057882273240399491834310468485095623842187018675419132269109860102073294889109656798337112594033186325856697476995350574463858171788224359959198594467010932168494692698480018716151309921366681519514018790710475257584797831286342693363757790552882762081003005316645430487357896014320187686194792518122999749310093414279119903073234553260096431363161790230944992705040331676457982433985524795345733465444734915460317603522122137505795306118477802540504069120218225081051556832186767788742943608863538952068771503636077433023467553748500491988254032995128360654312767296597178426859028329732457608039446466893667681835656499580763915838899660440635025975389694629000089108357215404352609642710875987975065383981157729899904866770302544929575920599966107560382259105609519773525012721072661497882951981705050848855414945495253820278527605195354429195641314293462986585556548149888758517023842409490130294966895697004500025595560710055053964870808340964927398886243814479848322671205140461973477711095758165455423072703960390248406342847079991757532079253316000819013846044905921316567048260930668201369569593545328195728510150717237162910701865250492097871276686227565520080901813015051086653850947192484595574422830977860804874525926856067962578059218571141764390228681737753595483855546159885411989979652207034773197463143085394269717758455684885887214781350111204924239831532512751154068527298751456295302671782559606782984299413434058741881852159718769669764949099314005378839953159918800840109339653593335940840515618206046726291116331418170458529001771772352726583430184939492924415900591201244688338396228552228984364530655513359857954009014905160371213265531699560497362802674724768219992579699225584908992694818440661466597785028292826103889708629245191424442226869351054625908593516837909179738058209279619028904837411018741099941744625747870630900665499530306863441350261320540126705202617417499369869426207386013185811099108725536017848510201727272242677714299946053499544574041619321117093438021187587361903469434022465450894855356946245784340177381963517009920780035010200485835425231100105203134339386200605827837433045925515834978653338857556917678649788649150247577898908107904265492421830784826032591785289756175259101776570161533308767874754811575365362445288562705755522894167060006917097038472420132232172361699420675201047981111492550964143260360476868263712958924154443669695220823829639435346390860499354228593932742564674805543301934472892650085262178760763028032057820899722820929337358152373910077986275703427222491499371602164082985467930253645330980270598191753664268352676091894690659791540495787791765878499562990412576554968731363870557900856984699142506626351015638846147526209054564994031474635129537795863804221170577206527787237440764703981391759042185406794770097045772046027630062508855088062897005754031926646088874049662845928984145722732791506966527685107432787716226508451701000396163860878280876869795030587227433329444333484440978509309230976339996638080574105691724187481071372108772132731988097902523503853171346699622722749628459445935603677499292387693322142057292389890026124794853802632858515133906550482952418465400316343332586001075317798768276168563449272242205195109934538568377500234722030124224924692084149663438615486128170754750649456653065923958031496988521434367827260133844840966429218884354602329498925925215021874580503969607120878964287279738360615674548239843785937048466590983719783278562466020136726239849602393552707717019868479166591377019325145662152836430952570303183337467000857162282259870350742254477000420834794108876818532834095453092494080603283999700979087562850672192026911052060272280513613782036529077757804009826200412128464439482820028675247102880758346020076320037394010651886698510797231058025880690519039651984774376486955137048329898352580134679281175337612599095070740894798130158293654407467893517494503646428347405349541297294012319790936110267814346161595482787347776596546805087411366002114132624875525533024655546678376731816036035802954409840524477884355758038925585887235829054979953213833610049599758189570379560853092215562324384411301584365379156390142512494291399388758083871806586776857133895999433135980605481531001857182203540812382269149654041524182532032587470958651930891127944128081175237578189387526074821873648835820135389008015872682390919270462312607893074665173487181785791258827181433674838694619552317427417282631823394973088486206048310911938692859631465691001057515490888066984572536318319542839626448245066730176213779392680006769782954906053358052338760800630801406320083762312199436891917507809355869389583280120912824740027453707411911810294032078442997491239441391314854276648250351092367526995179925052075974193118600817947159933660354154589324644950089244060038079166019311547336299577596406415328239871962435553487513204651787914191064108762930233301166086000764613637861223292596977832096892632475543855103928471184399824790284611848439179621773762796233898702701485769997184637830517940124244636270271127486660044960614919747198235391335979702575647005866019834717649925804236086585794778792837008333447899015805419527860197389169125589266368255449245280537528454893842690617990747861633257624792262190185318781819051670709841166599546435126108637542936980867291408933089886310891640706982407024716827046447755803260413426525148507759654110220854412152019712603845040307386843842431892840602850320401531370115841190642326116167208699324763417657777144825781852337899584366716988117263152764815393172550981693921824893975432103081596008389338315798594959536376608269137387071204847562660727914570656616745077583790372734378720688587709520910170660491585797895632907782323900350947444594020471782194837126719556760787505139323621271258617961536828452808643579173621139282607656644776024865898779989913316323036569639268881636544067049969123162166349344341511641196542770859793810819189828083778163584385284203213692972355490460007616853247111276950027355135639117881596279702742788577981070115746914145579222029395605453742226115906048773694025039620307931610699815752309916998035576688793252662761658120879680560187435061751607343073519940581810534293051566728930112666424272332766666886806691747399693172504990863416207778634467178932721492483990551949274049982218187713459771008747648116915994784631525539287167887082770475500327384379449358603301064155656460505796406300914920118296640688585806033042930024476082778462459193725816278394438107173822833461845174402205592611759810581281221875278441484863667846315207639001220572269552119295999870829274972283761506146470625360705835474188762844745936351331827133589857331765767721762048478493736662114850778884038163585777608383464369448188530599123586405062093973966946520220729999744648475019167224249081849263439784790641085758168314274251144895098063438884949595425382962830236783767326650859486186945873312356554323854806499695753828599876770784573146893716551120679121975279173483242991206855904929392124526033135263153049063517075086250926803368349728209308724088135072864805571505124967881172687727939075914060808346771495315964367273376069253059321783901832930212424047682616221381954548895177414185365921573054849203782721719302869917303025215783925115391895906095793728183644445031750932046023896478348066308854313144605685531852167462868312024642968103060062615585396087989523271355909756958499403399594262155244718441381615663911647109469412105201677893694977083092771629639225891030597654298551739938140363519974264244400519619143872367857830648545802061522129872074113899359168499030815620969946015909841457971668648944180649661184934273641673889717175569748888509871774334931777279306171847303383896947557562603242239353584412849141273571961610532139281752437956794365941108578191111796081524566984514702850058229821603124557242124968782958034603807396132198919133675396510174778468286876131988499373212855693995079180589006259680806494646824028913869475635120111011808388775947330424693867514802518335074346550400327414451643693545599750604137683182858105301981653364703235198253732352734458699052639007940171596310736022703564073149360819638582829241082929485108366848597831450654280174575133255405983419318782414163156458891312465655931502934748843649446783216661805165423099621179429998967178744739175830405884817793981132568305764926082754278201042392260933791379451546855514343738452686403384000146170485235456271374462382379555902747150378294150810580982202991514251817391263472084564511609471481786476615598558623426871593725615914266973670584416947553140322797715296544020461804477383810668375616313593571850174362520634454899556545362195921430391455133424180351161377158156476805970150071775104649159336053903010739989999721669272453070467685058792003706441997787457463283774716974843242396872971233755397087695515063290384499995811971657888632744363364232779556682745247684749553727263263285412015080540700015894911461367827550967225482981379303771619445078957081319688000990758030559040918249284242007997811816175346604850346572380772542088974220534162436694910647132577162167570795910265176301410362107708399884842601091693611512034354987852856951952693956809760221716314607943187428769500022361632073305748370394135214732211813855048699876897773059642600721795043497633524000538198089046907914010507946391587310144237423274901038706065777077427375430987693079030846747304831011683567518299434495553139784826988627469293302625076552146692595959421862256541804113717621762152588117939085720412405399036348130787227895302920560553850934189359936964757765503500588753402209639691310562330230980078474606986062056304796258650956894890065530123531933689409654175644087838893448198436816752227242049783356832490252499811423964955193328532038848379054021860372472137128740433122765839573123003388564883900364108560080786662331361726388462467434351231170695579673062677042998255953198299075057734011776022663715242072054957647824953775233415381923514332896385586751872704286182462163024344610487499197964130687468219474650191789386160586789643234667479831349304322795175828733411927140487442075061130614166593576955965798283464214676108491166549426644975814743707070528742477236863611410992437293972675025734620834752565079574005267166880586518344582468102887324915691102407456575508362975865755623266971123780771337720094665375754478432181379890968507546891947867459931330414318939956231225759402058263741051479616284723360802179835422284148668440618410063210163115672000122197775615479301466623431853042291432475994228657668852871282870385131410426441757444006883436231131394332212224706684538975368066077813440561959453629955303855088747536892881356486801744485482034372437224102707755901058877044345183722573992031164349533996903350907993695601171675496667733561974904150290315379541811873466555336637450965071335468011160824987679665569063661517601733903623189594879638327684235379963478286869077941991313783512891438136322559014322698950329302887736751071174908313162206418668857460282811312095428712385380909220342775698877117033337751858206237350475514259501174648534705825462242641483499004329389199321571610116861850237539362340548984535714524007824739466496558264988319529588412972650403502590870464884936713848515478768471895478879158577114633029569570432062996849899910315532136168479544784077677976531000096124778697454640141472450725588717822184114305357327777239853402340003757001496629938353867206732376452431302282875496586061481469428638576330641522159304830725992420309521048698482632026148596167665995635777504726680081360502595741450344978022741573945987753120945328689824245578256634916439134472740583155632554127720291172517366927277430032356771144772305028639248058919410842936083361581012892785040702402963331734611120678798838473810474638072019824528292206173391203661128010334045055919321756291438915675872705690661986198797218187260645792901741159669285207446240957589547729309722263693388113992042996895811895165162167894248411349046395254494352946642818202645297268589298897088954398340617115651829511990693621182257400871388853981940813006380495408659249596450189563359148222276552823341283755959891634660966665831086174837052786976840674732759124524762851144325477410575556421215047777568171471606188611642660471351999154076993264030138307873173102850427548055387284264364528292482160651353126971359887718510820018747634522745717595436217730637809115847620958521871427929185879838981022308732987888118433464911900116621359536670914770431243337690961304661916193936551232308529670329465884169229451754075324599151545644020595648321571796190108344358788186905948746896155235346941412033997789976673915606476641793518191261786994608859188393229451495724368618337387707828118124578210454027245500065368017116802914302413997610029196296089581103726489353811393194400028739024947989511746315940872525654269683854455489440230619680245871252902316357006598395965697837326539949825585731510390580298436970278510232549692241402003364117885152239534314787181821531613609911456139308216187663898365766882010917181256170162174442392574724509448613304289848647827814655354306998114023633057379934691240570402052891077399724199239948203074102304386742396983481648990254875921988766228728969323218164530160017428733099946498170483962610864810242672842026527042791369838225904578877102577172157531361338804779886845159780668684617582308659001652982477516167844825351702169007723813346749510268276403298523735638164731679500876397837118702372403544667863189966899120310518194111947486853044993471861544444767373732220159573812203878390008779936965444945976599781363079902834267938505874731126682334239431604919207647928813730211709255783751150174672595956694481819878980317121925185199799426513300451414201524118252736829768497397888582364012596463800619403704748568220300839772181604762282940087393778705188854579810420540280370748261342005432709903441406460392139335582410064793576548531599109455469859448316018738529351144997044689355529664629345892192032059928358863668731352991103922427414925650772292545376929366412934795307133527163642876329035902443759550804437748675649445955886697993002411271643099124951918798539743268868224286500421835908976903267930780491455235185871821787470139814453443436557075392203499373668404702925510800955711038175491475751026645400854036971450085616905366913045131391078270206766783218560140956413294750627696506654350701418831760884221237031405709663250343100455174807209628622816640283313822165354545587359083102653959784520869875975179370766763089053568014676361400722048733949401836777198649556688500954456202352496880994004288471653350863821710047804792663588782071105136977494331637796187204065185223211713754696128269390222774740988141491080905693029627392003904886702876459301511077610846639238493790168440040140610743635061446166106526383736190663755208837838113914496330815994322474610835903552415343615617362028679577947996421695664750879600869097714653878214440011804755688147955520246417405201119731573294796335992960460101778764695543044667024888831850292459054874377653363115054302939689093742866495207332665722065458225319389610790708947469969856908139414935067862314494836606741867303767042802754889157164726230416868708555319692106646791234712459831445659594640413560814441780937017362946038047429719809055390060133747704706729367518691525156881119994320220596486613666978213182771252772797982501226893063088357140687746430475820949055913146065980553851099481937739518930997695970304706891049604262512597099522424485471484801592308909297883698881508223962875763136887654864053296558736851256641794631270398335709826792218271769893988959258301606811613829799887861998327583109764266152223800238625705876098300692511649557588431421092201416618010720223356389943174424576618277133230540205478332830217427519802361449093101855333153276502102735164225397816977941136013722691006786484283296365110072668801519491414168328507097622235466237163470866588276997861026998405973798085606121856092119123253993002802448855484156261168337482138570253870986242445347463373408265360788813489554683151569809642329826261380142221714644726176584275173834267612900044766779283579897799621265709885793668782188545245193015456267241097879164847121581889722070483958863961086359796664312239387782913652654593159116439899048162306621214560005478555568665642254776537282624587549886678448235836222148443416529270334706684639797272759602578715704381245782109061867603784620715374825800899269059243494714736514619959165636949534092185659699366331583432421545634910855856593954944850919966539152273606246453542352609900033986745244491473052537797041003969889303067272343802661052958118961122639565535662496140106896847670105507626615289287797850165149301280867438348004976955619747115030391742743719158716582386615251054528825095111151536349058708744637299124794861782853541913220809707997916351940160902430886120733691210711425570155320071293275124217187020289796137568138584918966960176760287620666915991408585130724914518378949127654284807486828172710207572011573404199321143304766233361394282107947707480613009687795103338947070523721428824843672798410401806071925478125845789622859202015568383307093313925824747155870623417861155681000496613151736242342606083505649638296516982929079826939224944684290603991591831072841179504318721548901951234194503343928673491627021464378993839970248381193208359747107209720779338683253808297673211721911964451008160939160955498016620468036780069136013465515626395336084387155492928046010644776566031449708596283438717706602870807794468255920156394929220902847305856972626337899701907280813615600944200662951417262230248976530221422296859701746570889741823993934962300036881468664512388649658000661795043178473390828926390338413768731040009744132746458255444499870889528511471475291289016110590879977323670708232921093099358767864582478447420046559432152932672844201110487040208326612530424215629034523512629530839874451074487596065342141952206430300983054576142941781063058192844992389452385249033927960972838486549968616037029169989264523435536025637231146882800315914426813070362820773038610781893260307970884433577187059870961929262040211181534680384699541913139615035885322579768781327279131295829083726157312542894204324702221125036349053200034002711188993748135389048834953281836522415537908343631864029921227073003528374509915730068095747475084216526757697399607963138920862901971541092209829697731314196647976650632053959525724981631363786496647792835392238952261351759950482277996634170624944207820303525062175719306968082368057141213537175100293057754068410821104049466694375970489996899914349769785155466927376255876159209167181396944015812885371384940930960377841908788534112915588491998106776265207260993733823463834981016010051619458312536871798848387272503763911249894230658316699591160010167371331131803842656107465683148481081726321349182444976657948302949485761835079319772840127973544120437822499651966128383764683930141021695438433858993377372250146253538816878255546087254795711676123489186553225051732232972119911162789653248005451094448668636495674368709769333421904362293650887757926595446726344334597420514711122408329766528688575142031851024058057801444517434711788023334388946141705735823604595497300726433743230634894941352960555029033814891498470931672345873534855684881999381519322162819979369289590999294732224501979496247459423969876098136895641315738797780865879414971619094628631395195742161490206463379135527682443697417194846959667662777660066667212769410691569692464399124302688738149825526789888560512862026693249146742617159140723115718151897009781467048829472094596760180606822962629551130194472418263916719122153112287487265841609080979156401408599679570539891405761709119739131512770122914824835753204314709220921640862211674882675699382999974973860123496117417350280196842308059925955734124865702739307279654540569412695734270630908843140332346509714155853927492034613712099417471590668932748252983536918349728307871893466348830360782126444023234930012054769187570967679016510084222954697547207095492186561069014004813597055353805001028908393932089730853101828699393094073660482771783042776386488943424555622058880650057451521751814492693633329208981697630751480965550766858846230278337156727045015894959099813776009626520630312186361838646756625119426646678310632036256981947827456164312516892027141310061837445149227189185919903460182739919557980848434187485560207080467974689355658190659505874539407266029403334997141843012715848993254444464141885460557813314442812580720418786425611374375322159363552858614413523595577496884722776993378227907204716326456151404331767414530866036147070588813621841486920301817649014864327921794554871188341082350445978884617589682730798008367262910612893836335459488635669775462992713067700237054374751731128251527814049305113448578038827472108488845775251359171670392979588151977386577129568665475164254457167533691107194802184227575302790209222823075136743135786507954243372064794498544886177345751321350801213333184659783045199422970103333179682512216292588102538480029708353626543194772917489099319669158432326681192830046966584764703121383312819225144106140927737497491301939887504370529459289594096725368192331435993587892358682637522628305299998963586045530796121367960491901273071666965281949043073293531402770497624676509111849598971283687409797972780003462308429903679478723873542240681492262551937267599520678026838031219644058068422812090782656231966324062310756182743322130880290938830513626766520986823697164334318403097697035267809970250481149638985026096275249506350571123619316415108042314731259458311659102788413661805127898936752817492853031803010265311669114107360477713939345979878379164176239817120571818934667162746002422773561748653518256690377654302724309727891628992442235365588903181711290214069241760546375832846122628944514769944833111149563662234231022224727390079486707476070385470947998114207896701435766175527500403684607070779032784896997562356994982929448290542032906531552702289258109342260366694986374974599032383651101377854475609626180206967537085101269830123546472054202183099568659333917790830230996733738806404548550238429513285724860580622183753497972788920311119995305555080204652820043584381594997547185941598686886980919741630981914388204225450877937905530357377039634341432560607492948801353754882491952474838075499380558049710562800629113960074567604610242334434225622655761251947129427118342659436257134656261051434568205850883644923938885821257721144674104980088650993786037694806645427659709613947343615509257103369869989483066514204248858331827748829054875629785719390518907478029712258360531036497829286927019526940169568699273309095538770103245885789589522265442824725771686913442266033937882154159259286408527329658006508125931752136006640477424188468722537013278681091696760206890169592933442530531685054640531389510523693028365961888141090010054899428600965944547958048842140794395548253794274589112471719168607069694952218341983649224557181218469248776630748139496025586627628698138712353387566951601662661306647518307571843617463793416628643245143787734092979790375421172233843248675911935785791783445106274921402413039463905373154940929907332615484904324736288896555515352971535053002859910375570618644649811764862401662091164224522632572608133171497864425686336463267430500152051294299827659368638361115595080494793135583865117434920521540646793090152969775563467299607661857878146130299772449427540950066641007327989626628073105797882423267938174253004304292521827674576521347180056180943380378270951380948854283357100050847966884219512868266125127442232719822289938361794218222001363032975591712819077007819885222385803247033828189187960048358940953884141687945971764331575834444982818434159170960530933343067888166393859550033935300862937067469592361189046178866717033831735138967529128632863896979143675038036016770139983401507665276966296847632133331932810312776062017572246029548431468725448644063285664140870748661807856326782261058936111815138853167904377608905281095804963295390199011606047586128438846644840220246508330095127032385848175876508623160156127650486154246539792508232233338103553084230317854293681777352044817824225996608309711759276791913964168553221262705370147627293265322611646152881608293008013035936677660810843944980755366493877251421620463095109190593810110397690601245867315852293531355927823042886406669451968389251305923929162894477069634606442936983621778713461521272877055258434801488117688398868787080656030358944632482007212063216982662759691993308071707418692451997923938122775986033866752830293959234160808210253168909143490682650665357296462220645368391999856343593540736717035848529513908057344640038438018456425484613882325062639940297571002701819534520205785900387549430319621820706741378468949669287145997733607228956502710393454325358618801585712515469850814620067119830379034488288501907059808665863779799490648669321762357412101802893945549509666024244236130184296754175724384323184205984656030406802611635023142717740641331710729777857564559335673990731976135548296349510830980978488397783223462746056812452739685278008337090159257994708600156433663387399574031006431168089357502639529883529370488387776754893004753090841003657758042779070437016436445354168774757611157516627556789499050177857317889016620185537650014671561984168590981666487992088603867295055891956253444745388372552258788118615622474901686441592493602273410301491534248837901886485044674028657521389440029067046989550649933391546595233690443898942134306361218628135568092846443139805606052477041048271963143998618898002094250609828384133489447916197214465249322201842590980805936415570420292452756069920925113857945599391360554535493509991494620222265781234371092457263292324189682560172050623767260090790184874981389978339561374347539631684151429793782045761045460456297548213272031176974979162816677193114517650518641368299672919858381661468040390611161670405427425963516599322953284923870075490461500324252856762468216616868456634681192498459870438299243556288743209487228767305536655094984046278970488079593151491468661564232342850241950372362287909553580901988860294352435029570949298544447479336762957449320337479437557417632003268416243079461467637856740802034891146903176423364403848495673427524879596664673503668158679464177368922181969675922503198098721224615921894541114184337798768464916002358544633088417061160080455662808087255001528418741766722402096818955622569400063116243499412067945444785052145250445874882881611399576874194802006680493407486605430178361551955458256010347281699625551068672557003441539890464373410770854882165069163973674116929465944310025473908440605284062745116943214966655176236525102203760221716143959087771949763547977343978813962069680943311047500491587879647484501398018296132779646515480369688913452017464256115092835548594426238940541118674620127013100741418547469623764895653151942249344505604010392080372816124665859159528117507788196315606344247409946091049555521627441888498495203956933496161876351244715223979813404850640414326545967970594396007228518935913694507424226142270541217880845956524039737392965963742105334083854800879733940008704735598851417384510132149775364973908004769650685919663182055044943107289817698499933434101887728815289669801407236053900153238634103876923150517473492270895056323255108541245998285517383354961937408438366721135000387402565448799259476541039245798273840833656120470226972108177972534575918264361081715951417589169465425361919494512219205398697667417799102382939146294171816960907593122268105075614519282904323887481598775827830844530754860549318200279213690181271411089892105231419826647179226837170089028537632059614091606447779309300788962118820963879930931990592287427860068163625082967646272767413605968744609082891280410301923195865457979102204451680134388277126567068976827455114752458697026822339961064036234295530091088269233266143015126947161126214797978663667978354443148349479482760051443326688170788134050323653247246189608957567580724650209826835133773828535011924538052247161326147333769055065883612453862169376633305404081785819029439648463023689603649028093756742888319786661073474860320031930061212411938265470038802173246735188347273080599826036778238484107067264969722909168394618998621571543090097164446778428839269396113757301798121066788028686082340075287767706406730059183612042426316292241799297630367295894904515198569921026547957118713300569915548171882568967526100818366198666010685162550465418911457995083543690771381727345976233528656788115329522871120450160712800835113390014098994905986272254371898199551206197953297705593491752153503833639056771715434134181233619724210540671805235162038793277237677042810015463990365763665909737946496971153816322355587736812724014444201441522632130568098324844775523320360998303690497318256867249740210940738619295808498585185336917618488365450622440832465148287910530673470950187933525054657512604197524446856798824578146277746707245817918185546060940447707808046023616551609760676527901196299776408607384426883801723379008153046923624387793109731441968266089526005511282332266607135865910847119915701441563707469570941663292969612042475775878147985411682690771543745355699740426121015882736769499889184316245287254557458253780751816044955454063972392578813625469451524279822573891555561659379418622497555265038319583834554135835465312399892017444059982353600637005094656120367132302811276347799324158534680823558874823563324892505021258319520068495479968079992079503594280417844626986681001513159080405514867297071892037203917130618828226016507124666428058961971145618892871229277584453950250089961481761893532016876456851235879392228915699948271212394191633477391338593274732875863904455876244980775294075717616763901044197800089768283443416743300153532369941090176447024381196216862139263553196340129007841035983034677213086391912650464648623915128152961561822373793265319229530506642233389267799157331695840836203593555387317920240605198876110786520636757004056006297082429465616709973830088582337700890269352599980607124859718008769515209406585520000958617208582558581063371577211224256337036344986746894096600598375104468227812801356238640987493237009451764447642637172723906064358060400208157290050682502529076633831772687981280938773413539436722669449915779510223048822496966669379922668762890294804703078115314077874567700468407869751381294619446954141748668862222632682218507838513699599528829404482775929102980408305353799481422713324544675654257390361012020790103495656329317853294272215998610881238307446244619729538996657138686345107045103708002443521165310623472684570290602431650388530395652078554956149847498017703011774715071687069095261921802645273400409506190448729080102753744160123235155446337034204623322553467982349636597889783431890921277654920200615644081200140982811888211289315410611313619400839184856174068574019976460367369747178703998184073399839365733983398375485317718375328944340591541991015644713341764572006258511449590337952291792016933913570354083241038587429576521431054759102738024024297686861632873955657786870855423723980511017349455057702221091120675174182633468803784865410167186348378540797613417533641002772847488335654444280524785760549205881525323721218815298219423342868066198024047471071888109352369736723318236622396633664155442415160846884268913994612758672925985094690067487530655987129096690586484262051504006096581290498739408758376767539436673676074632195884402041608607814438945511827116122005696996160132944558254274458754929664473135988736073744867611599927216324756812013368788301901393249986071258216063366043696204724392769670370315242195824856181275597000539001082275669302885489152591646450746262111493445267081704023213202377593824560706637244604844479545646080276904295560501830241205069628307624708886670738708504501286961139483749108124175329747539035648891450170033771909478252758887319589394131395222433782926688417003259614434759922591661068999099218232255825666287018677963380253635162055276689051425908177546886395555476820981728768724847887253049165576878912192246608284236849878427222998905125214084179888943508383354848644696004030648688809499898547481818420250416472484616461225508917924010066524707813952556350366483789245651878684174650820121709226417447316859722017475209027894513284788175001018123032286247918021386399183905864509935873293754466859144845556771535908445400402013295107202042214537168686539836289307035903848891350578815594486775346598180224611988473069090492950373617457223388544498353879318679690839438224241315760161455525345519968125082140780921771794844808539660549548406638609272832986022749460994437019719009590356103509525700413229071017554791256522953451955712859008252105126703110227592643496353684356187776287816607842436352378750807326562350294179994716739887571844747284733620528572531015676999474614522150163321762179962486782917754051020490949566151498154702025893587786163277299043622211608372734094482566484694021154090598359584149686052854200084936355303337807248211855395895060730190465665034027637974580262157955937296065639358589360507007318386809820735074405657641262970114662846069664136871764636501020771621813245050844958841889218759963124160522740710378610787010492466253484559312359728619927582551068587415966753011287391663591125192979571900030654263926552798451140749366129863825632588807760086918188974504653685717220475888129111530260061135101873195729555663386614166275805342120012989520104216641382355140561488294117846295477313442550876939485484089471685884858267068171894537868972610920722136528296515456000260446522066437379870867879517826581730453990182488883816944961292339351996387813471030765797460443458097520754354492418146596172016813761106394095800381480127576144084082107915667404175095352514383540049567626095867171658370167640171358620110300707318819286657414786472213968676163477647360605191984375579563135641328719916831385026221889085682468485652812837465846828255178788461469037883239326100741274131184904481806123981931264377455967435402202531457377062524951008940984297502330279594749089581830473618275523263326511115954017686052045648670322893337426904222919798962408128305779287137876461966229258176030931533024723105654690692031088662753649109437260152374912555123609583488748490862015569153299593176387023892911663877857218495791680556409394611071431493860677110632515344255377803755422249107236113267542814559426020799085566381264419879103300849095399724876526514365640059381613213264123289957455381759940186121956797805241226981920390487301119659746671973242598095189558021594195711478535747611518129326352889371970563899445324670948248499605478890108273393726436117761989867416144846644523509788375093084972571982140728891742335310714941934157320747433319301177922658258507341703285988509332546249260109866384530887429762070925638446331056929728440056531207463476561400927602042925608837596659409646528269600852336280976468688493664195348278564591611555166123522204087990827113460053300683643600492430096697842145383708865478841641080159040207738528650156041796248392142427841820930999931922658679693520649370037175489978743056451316837710042136706118124589735399448508869441513173269409981827691473170309500734012166469275293833575441850163258647023895741948127280403319163193113369085878908093333780902690196185557452529708376809653338543737071326678711263699681259420354912186777511695860591713271758160935833702833545295242350178837487874124853505659284085845783623900695899718986888168793454234690709866593349098294982312678798605228210794080929397818412968581344599663402332710441774427838323439458025869058379274503915362376529196608060186663044153697592716657278564183358651204558384818545670183228381277614627756891791840124650535501793582760113872602745599396867278981584004638033199438121519281753870690756007232522748170752004561395213845711180619772974955313188743159457365078993110487580220229889929819501653947021476361004310954343779005443568435703840368135950854008608419999722176731684507424780135771503086127132868583970874859025966428847617841213767372911463173169127699493276194724486466148647156377522742011970556293157800555287056644818709695837801023321172558641727237774792121305354858170173986564790518313804179471753206254835907663396676982144581594071565732193052502309187687559284379479471027452750327749212702655286186769229769116421497813304899483436581254923892552489103337308424582364765493824085033902687341634934995336957728404300267781945375090488242015908399136587388750495909306558859198908137874459606044917817708154413977630467840165183531311420417685498592007282490365297306511153371698145115010917763317161340232435685889234374835412906344813658975344650543602944196060823216744728325684257055356025357710599809363393202242924037442798070832395778495990855193883053018865533275274086524271774014084252695964546968635257156976480068639707686569096372729287900769400374895901464727814216422511268776304347752607381628772370334865631866752856089211210221513069428315914488085752823905487224474950888343056066667112302098777019806552941649323585826696878120935650846624693175908597920411782452757926107105168427637087113372271601523815071347941888385594189502727859493332901574802415854743743158491323725891348759032399679229590332261652529990893319660623183937924635622927244521633631824606591418697389323611195346906055164599529878377652363117079341520617143572169873761172088398686577611039791401210032957333569584745958460373839207781175859991952580785966251503515456917884476027862282203600413206538648048962791071867488911998618372639082010802457437889651054430466852799150282717490823224661853823472197823814210088908695522385882955429549500301171466545794742180583571213799489483800631114796032259663436074524806906651380365227171666166670854041215897150046625139488348624631534792642023125658717371013778727908492837472752259705041035178976130888957622445213488576670212943787666523232508514746748650136025326942401274708070419501758045886350273064413496647803910455338183544620917352083615670162339011080727596293168688411416607029589061404409221281230660424990666500232616843590094014858821396272153094807227232845088056461049226780578207605342034927122881991899751912689586840171701983447454636368143028481977339485704999072718002376653672934986653835478457253765564773135873121596906105365034794792371802732169101830686852256282353236546350014271280874120211818180036059712829150112066962375571275772015610143462181086803945404657981295533399080964089560322311384805422852184050162464117162826663711554876326322756898807182980570311487048800770296638967606433861151161247575664481489591256229449466725664757778426630362934979555776527730833728168147093432416933821076526097423328299004581874386828517610244271789301126265020933107905078187763767823471196692513449963084378133024501420000609855510723943117279961351060111479890667370936828625421213396423022366365606787954420064550626651805933796826913633756713139999316228829331342638197554650488813258932356642159344510647198104441382492099792500557845938900505594326384490786121304019808926502104551062367085015170303215771186705277748537835849902950422360437047336745607433483503284654631523818917331290018924759878867640684634518164488272085568446005899347734133412342844294291570192882780081288622064073501601173237233040523493680170240877215257284890896695223021026428300734992608495121912343552893279187138782028504068467827116620829022958629968001334413043818588501236773451279736404458508875614762671995361674768870309081594762167929209381549829650972534558209748520715885625413017392704735207486470833477253603069785503604730574673702501273690703207488096778213094128158789890638726008065966824266171991163693477046932216369528574914571150626112647455960586891462031189484101959518304057115149535590878005244574540655848959183659034848713077516280740027574685042821900636604308827538640012384963103823726494181746739430463517217318276404965059658939300532341767163413215106773805607355416300383548844281121220456537037188251144028569199416115664134814364503098884173858691031792668448288440790479465905323933094421746711441854925371905760272530181619108036042732489296181778585156011031499863596324431121099480412883880521850715113437688973156296149372902989373293244963309899123804591353274295557228421553675327360141496976665723496653269320679707304866920116396841990088174794423415367895282499207313450175790331372211900078790206206168387355838599930884005125858188184510570933491894538195842024939207671393427067035415202006369512750561530377904068335996277021729210561692971654847290401586043854038158620620858023934303954628232628153141859121789680495017437318228139224422711044425212367379105039504276927177387107941683727478007904395862676272246281561122635589658964941959256338229662917591206234001382007194312105591423190652770939502211409265204118790186847561725656403991688139407680247839771352198568680099356914496811552828631361808594522753979398877142592120645979978236110374164021083793253275559906067764968991626419990840245430263691199669601487070290821348937261954936450739869127241318470213596273827615289161953520655814658946475121270358214760844119806951121586387516002363317616052712556755741599606921415395782034247763140370467396719131718641253224249292918566406196309563325150827318351909756024684893400159437145504998501310941534518342464926901810900501106434806465822911711465539338696327020733367334993759912562049523698843228295490561480507380715698751898286006603082166308126852879967481842801537358205685689981901250207039177372690009278207205583381034765030787774933206583286669018656711362785776050441838585543813793648433602151812812850574616529143195621931106731360142087245787443221162257579929539493499868371532933067311342560635609885474539141028280046188710055562893221442172301691978474796457859434174469885029952655996215931320194922569060441909981253847427353303035749455152364606366241220143402841397666501686470815617629404857579874051056114793112553969213436881078982670663846766093058055200722232505862539805458252972991768600606646177680156269374267159976996546836144777154538193576029040881601443303441552326424979022630635802835985736486454411122253833311854163901611677993260690867463481653980138330272361207496475863997420635898220248024715229436412645325339922389056775027602584670180347689032402900758683959368958616899732188742257528964626628409945587523514277277235553631323328129337400850827340220484736744729648275808796627156424595016672644567945626876078048793258488498173144699981690696988247791124410613568421688421176975193725994300871698944991040086658770151897160369494955258841184625215591776924051990289014074680255333404491635021686679968384261935310074989852990159365705731472883555008787288933541344837852786646434972281394496543457920107827267290820118654087822271015312555620943897308349255328888406114169772307833227995070025257739850493208336214512445253109707493683327226905238170461674793890540026167236567373572318221598075041399688846575176826388146681506391513116653936866268636824488313803972515271264210768323811202448452529182028189983177109792955357621357718007931445844905837221564115132730303325136202939380638551716465500060006322147205648055990619009081189999648556752044678875967253268368481438565057642975676139527269855246747240983681973875032356545928417992889800092592597240514169900047296573363914562505455394677867979985025929455303050823517816481151197665557858382672177739470175541103282889701751212981236154761220472453948031608886815597229540307076553711434580193030066544799902593735753345554232606409660950546338543332404638246537411396697086348146773442323335338296816085529782900680411110944169616882947745244461849498392245318257108487905019972629000731505123528237879516044774812779040988810818159008497768553751348213984821453239678388902859237966951519650575358024570687934760450653765522067369537596658941159525874954543258963697439741424746465726105084119656363232323199404081311646564847831227930671778992034166620525714460577382044618847690117863142917505022741866991458357067915915047275895020421013949535888980586958375210575090537032332501479493004684399444573860280908522321567308666220386708159183749837027632887431517379367347271096176362761804677503530378237836436855983482565122378182607359095648343130450144954236191299477253653307672786212444277284397508248587540809786075743317913199651037537778852528801941440264922919532687861287784768732194670486218286437044761662100148004420081521125592352741088916305115082114868208999921600479859734985356727212930349848544182223002217628145283222474368382987228066388799158232309085954218967901991088657815030847845849402642580339839839197391539007171502288917724271581149611282708994974272376104034053160340628605282155114867438967477684020914159366715229112657276731960265459122933984673403386744472154150863980158505632453259266556918252065903963378420532380911732215821208244196640346422767058966638927436943046112986144648171692170069411615297403494703368102066626905874966341433810651883699044866555364479084559456138178493910538561255998623990535417251471794948894981026640048714631961055638631755129099174877065594130487002127347396069136446251536726802237970426407163516961793816676484551502667389347201452594010499195371782119415107878829249587545851076956047307141308190971641949188934961394254536383761792514676122355714576726861675056224634189026699868866425785047226768164643533765168766393745065163491123804622109228954013577201511973642607105318586544540383429252693922274678942935475397172501900941645986287483450463439233883223659203711784369924642479959023200196588767070940601102171656262887685288681404788738364732016360446761485981667692945731818346810134677368964266857147109686498163392026637897434039263706975751553486689941835921436567749856873639749826839401813497570008079516552877567869325532545181489673106804311004461964153225162738642639266779611093850982573965023438891882850169081422238727547119761976359123923212888200948552033893974846559014195659862282598917349809883375020010201085164476161132207094116669107204734052925288542397179847033688995835962905763069777647535497467896929596574292348079870025294844808790129787066749756224509856374562259148783937381988937677797329774702764444120176598940033641817206331336535874145469737435734825494663497197615354761993952038403169512843827004372791309516230998528281543361817369886701241924577160822654021841693069119905306373582803819091378073206951940507191601234729444344545048518757241489128628674755452623549363499305009220743027111657412001978773202843884025464396169995858816224205513099365436972788918871562513330297107792553007347146422464177623799757066588424292711102766374692852361465700778403391722044102162320045661351914872593063554916809679935841475046972759776295056367480411354792371134055011105136336584456017212394923299991566710525924752892199832286117329376732975554950109062578180650320227926280830368560158338787113121560725617159009497739368763674643723537336658025514135032300516425005486489991537633448645064531606124952979251458091262958553493032493013046085069693849478802842750945560956843115145135362082551796191741290685143629916217693508170903925755454916350631066374205420356757539596121978017914879068076077548080931490135033633968036127556354487271618307399163388700358087189670344075366040602784516708066543355104647695319861945689742322978517761278871931765746321771572245093812280023679743666293852367224716305924119421552298355922641630771167119829504082031208314357364467590651292898995997017493454451621748194881496162870733220722931627175403986097795124275970357569451490189879045293649634465953624068820990987144939861226548474928925334140707799748499051026844893295349438299376652103539670352511247461310271470206674738767214784969528616648730665454315942549854708353714433076601190009350173812699434451364935748608029323496737739781173122953290849285239163603195965541392833843285101225000472583976975563419841894390402581158007475063459691738684275675430113883609910303813092558342164895614654096345827980995208843174711848970089613979554859906197318978409344971410212428642680209847282379985157081582792928421943040013923867780768244497057461436747379276125294782844261921112638712491381482955124487413318401984969983011813839307397337548733478682128921632540948009808832869441239338397618773650623527486552428205078542409204333924169486149118585360367472421632718135441217343504159831943046263209369046759200101775598281624271564288870449709518797946259703672161694613527617948366555813970627399718499639359017127522055213534201525249646985870632760451588378746466986656652121238073955340991161567292960840441195374464232259143294130228910286181585244490081464164727496179599186640688447954877616402420466785031321482399810780610144182048375467143257762007795036307827104964309348560322097418444407924462687638168592580219870647456239986738206139989168116545798965240744365428732555582167961443262319931654392784622846322916743098972788434896112637508007806438486233602495560147285424397491392326887350776415748259339368394667758706612444995931548202882858129387092827926622436900484397686590610635627206722907214653682092321100769870424273514031981933357453598022186362094029899107755079763613297479738632197020667506707613184675034181188851225320556206544836870385646259452821831073267763018816274110733966477985132198130464187780610011066542154298911945365582818101829835135609483103849039986720005694714032170621834517913084148144393859071320445695375037520782645680879315186280899175278798099546431392160812212614418930524428426766838925083326227698012598544481114272258038384921549991214304335633984704737257550029987614227198931337378854844563838746508303033002261576389508457125652863685239182991512165455243929633440297552008705537669769480326032945474575097895773919396997803235914374668513003978345027267429010666876206380709755271396225149986422678019024255993725919354828870789945623366840610584244144340378296661410848689828329854320531947579912755781471790427390379258529953295879753037348803399232491932527852373802145222047492877529498027546689896863987761496249700155462433465264514156675149165970430210862598353715016800747312396968493439113313983364361559370204106121891139015921620252059321169316915527217905147537949492074809387020358320435114251356105632178741377212502188692214923777904397265327668232783172381331375694991247412884034086782927426376390427873925403447151385531395845178012183578488068754036778747961284041079232616686419417079917540921523069024064527093727994243613040845296363591725544912436812442641639364022808627013839685791986349109706742032300645142326789955078569502423765914697464982037423068383700227638283697081710760345641924284429217807269988424840878776165288128235189506796119973021559377679124185491124400275480064364075182574726515166526474586478122343686489992573513746604884848880524229106438858459200748559573222521270321714354012395147767954686898272078988211752163908994150580072916823573224910842837312378010460427103218512297288607449989526456219573097050941686194273225589251326439276665213075188268774601264920944282715169894039724527937644364224277448141546559564735172991809440180356115137745254941911933955427137499009196074913075109540012956509633138350913786783812772279959734276409106147940640258320852350240753365631311620703532848733568071051593889296559507117312491121953275680963013719116586423123728294858003331690605046494925142486209682579084382896579624492213213806079921753610774754967830329303397041697984766390003350830206216741503548403182527620686495111647020466485092612262917161393535157855856880650219343018569541991995759697935682613910599760221440183236809152075400785073681901359680745078900147600956721366093009449169149241728770077205930135904865465932241546848306035829184782657378163256915117067371084367201493707469940903277310313116096462503787673509555515805248980074640151132563279212307622355143165799859286913993834042041722185271110674603599544375773353963905228693195821714410311807824930984141784474978846215425166803398508033464231225172305880728144255482211244974998047855905259861456726203409472223111983042948124085748743689186266196354765714310174384034365388756829249191397372457225823140191690652826019940606296338939482405027111767624473889322369053580159071351953469559743317790756072608610120448207058104563323908339174232173036568297194527185617041801634520062550536963308627563770874885023662502945398213997767342646180271992782835858518576836009765457940287005457767603978499514678547629922717892861708812327323519547998635605809039542904870670223038264892631123188460683370251591100980949479351082497197662272932373893674708851475894203935886228916349358139841229549223542604993097420730443056623336480240634333886442328377218172520936934675425910541399977915997877316989452668570131814850905082745224191476921498365785124075689069939351560293898284612525756321162925375513091106022101480477787032319553076404882665837638779507204514046046256096221333538733550917625297234036010283231776249054341959839321669750562952233936847913722935728813557454154001120990486697100827559539708595157336086427040121922897834375107540816898503288138950705010199608781068450651671953755827852764463594869712777549146209577016097962945709161874839971500205365018998151419486922356021013968348334212538382055478445469655334841553559267967716433339847286549460810049424269848625724394162732420031035061906182589145139750680591814615850293139082185441098596922811198962481073092649094179175285916405752330210291387622087230242509511736177152181917575561562341964036162460702944211110525454309486655704650978306266029132916021802155743311006135676285362335482227732887673350151215199770043084270219474007153055725462587033555098392719724877721976874876777748488567940220141822915718737941711849672457296536883304755964121338406446876087372171673907320261793270299523308811659869907303800575467249756962099996928097885770469177088600972277275406065940776385084955084732221269691318860406957384568892698987019899970096311900068469487465681928123514820058025758364454817693846995490191635216461155958096272618691256238908449891976214376510624267710200719254615415698157083896349184764771839297089301627068843752625802779965479344276454838655543982156123405222315320398595990079797285665257099759072905858075687178378150775510494573164388396146039129412374447666533974581296560234171432751122671307605385485501204113812092310600111756709450978182446089002086008608946336684521613607391069429402773117438480467565052690332161323468302150301814779935573707333132234437619125866357711766677123017130015105625844228801510664916074134183626517542538366708132676369756649819193147753209202134420515953017974547884362966616270713496967634167307975803165969395245417079871524981511359600004390507524219338091758161515980928940463848679475833780963695705027052594839337882767715832316228319401906209967740673783243459923187327914677775270577711646564301825051870776436975985270713446787535565662235080259398793906634676238847929347311836588689671004197222644829202764664441165716816352434197366123500802211163149810934840730691591627295838271574534091640889604389904366399085060677547700714220652263786919255819675342437141894140408607811977861414494517703772216831560994464972738817918295272339920394567217280526051526155269618333744771797353955923752959330593914396630802253079615817648435856955576680657477590347513066116870037455313367500731157495970878930412514422293531721294397225150897069238921146517992004886357640982050437396333788864063048804757955804749032596560534923014370930946140167178145954785235424748826405431333427157137643241936807653275484388309343221381207063757985469319428304313803424443469804312486695378836548561245195797872601885524220867366858665270380844506625735114153064467518329866081364537414921182202920923407037984173154349442143250116823694251438983895634068665153777175123642957118639077676166694006846929189591012334763232981715913081871041098930676907773581547919899636017575391943828927854538555297616824501821393577176426377342627484049582653610980999113956712232989731051493608725655735867640497035805087888804266057462301079074271152008621105854818357553714623413139037073029310467288266540909592279664693906033626294728526960307712987048497295058578779907877345469704082710770256755636383124298390445163084412882669728385232126969796534071721516915578858237257027013895459070909760340193488789699926026654258768225583826656447299349884348027045162384166141298555116423347835371947674375382466657756958598139485945827371667353548770442543991129764501596103433143293601654642004194657275470911032772678737212271284246757867667127896360057471645783572000221344818046544720980514394736404792195201873133416997028108451375012410745965220187738284183810802759445856432711701395623898420716772202778957667949531696981089787696085317933398833680827408660715572539567664868501912055915817688920155741066064262060337402944061341771114389407917617732689264435423273419695906187348428272676522046466309442601719324575206615506629710103664679251917212158673030431764371047864303338974465778779605794530090150268322939650329842537989769458568849558424160068877691163663641300313359042347736030530098228012544690085576457744154769985483096068827680862101391132139091529952667808140765365394180051465972031784502434621770481106796649897947135928422396681158664355679388737163727918135071272992534027046740511418704685069997448661926817947845438488586137744295769285269564054234102077060659786820079668933047904111326250753409037477668552516986353202139280885008552744449257099129822022359183729814449960688656584645811168326558443598500644884374479594464810173121091975059291456622600777688184520336211232008805472268976205328894977306395503691098969435724124458509600725341329221145699444172654300583516038987038321482707865997020388326687983535875908521796640578332934370626074829117866122032509650994144851778993724165193908894588517505126358133239889990423908902929017184786850652560934632234140729456667469825163379236366447193235344663202005110809854541726704452382882076570600238148627621684511053749657402843222013661238897931292717534723383586319407835335320374189380726144052048845767365674813908661555523968035758719249308553046630211478023984654100072913364971214809675453753148366596383356192934381872224748875342600843660409777377991830621408046368440737636465798577780232973011807215698032743896678608070277143966591025609335871082634633686236363055389387311650386802306432283699212513524332499145781515100724215378536082691337764544258606032945772221773356423585222898412370355151141113300846069919958712301679464067137637348731723109527456669782203938943497353712758726345620199840448804017325253030507665891197602563950241022148338750523153575085738667268504517970713467542752521749002913800428653914897411843096052148482126232982112184809636515077290012194156730549045284794649885689081486175869690407107942373244921492865720104363739382198348070115055734461924067929101743305762066850162731261172469663290904539154016587418574400873892466110715377005462021337382732673574192666494494492393149850528847198371222127837349624146302574357249379168691976975276066067797391808595656608556186024078847523036994760891337918086331919078465264185262663608942162286391695674158544838369973525992052064936972508911298077003083836335171974925374792331593078424608636322437600421247796154628343110640139310720484216744970406260736576677477965381652876882114969281727250369094732320366661097939046578193609839135935883978343965097391420288992668497270704041427329719537756114312560556488344159720391598772428933602651871257950552953758460897079816609150081122150748337371499156411293935509395976925516301977642995580206521410964070058096799132944186831570430561170317087369524731820333488658682963408592527689009637276007473843635477891986844495491864556764651118974562928443105060800097991238804623740224744442871308129581372024548875032247268400126766451785893509024352989256245957154081426461020229360583529398281914274967428724465393366578460098512183988116813647356754032973084917488953985622724568603861169591446083267506164179802694413296322599057252872751455740888223749547086785674710415008565869892068781078096061214319767474474193765057087580295026090069796717887734366948018158071330808951854361050827175182073803709093719095451277722068214991885606070408315706877374441076306294643849913327452066522996403275119122500616584762070681445990684283892764005887146897366227602973829847249807827720357394284062026218864479591560475616839825218527996163975181550880501592781236993272808167847325792033157435396280007279964699368024878928685937310383202035275157935027030992176279229345885186465331411700340812219844785989014055065184838944324239795483192714295790190574462672686735459093245151080430305176648581098485286075233138280363605566814006828238122776874548637554572403817034346510694255715467654883791415826410380745600330872302861948994132361587354671505124069255193480698028334287241354266516217264929143028268215073712079634290201681321333470552627137567406535119762497617919041447915859898216611362403410726713170170185533592268222209471280770516143287407987399697172718828134852977472857393821624086557952479125854134091749340154900869029526743207389948283750461935819530225486184959305050436579861936696468193491029315199509738300545405560824203609159332786500565428260300686964056744711237197117795333154574457352051497508286596037388201949509783739971124168016377632485614733139209499019837452170356813734215788985592972352708669341675251522082316702432178633567874383678613136683193506051553423494553028890090559405679816912133823503901671143161572509222091744506989051957781793968984728951760419464163382871704916687807681098285561374688192873889444770516713742645497410030524061289630313191443038183932468013045900671124378424795254772954550949458919309861076571677871095904876114610627499215965160267321287174538450712560702204649372896560794448831142321113450168940549075975356015845242606821509536848929321510987166710764442189182012907880025056835518362694709184814623473884554754880461883720204699172651525457937306573867661639253158416725183509208997520796737567532578012576483482357565618779899025376484612174561706588350836704212122697737466635872369124891197426252000387208922278374754905160586779291245341509197532964025221261519239878258514372935075861817756617779583249745825866114996084284806828967429990988551377516383762987015929976613334567497491029465865234091754247277540335014125538726782538369146629353810140189041949506516318093112918466647015846027215276676359937961957790237758523329481222711160470917276339885018457850683567230193666914660289711230503695915358918833908118353787417258437565026297309757260159922353234560227614594654467175230540078015755584392416448639411609926371294932194621207477190923254450865714497070866315578223476984643755103408730872744466660585276422894393757121749807850571687466134093716209745459076649438436058143136162775880207959302581390015865852183897669038063728265612599353507490682573368884195395716904788024915523661927309200961462621977920954253135621475185008000090772346730555344740832577619885280222173463643983077975275586095815967449912249936085520223014015880846723244382303773220526444974149185312072681696493041855736916202856632151396188361933270997776479043708908167813384497568783102607352754911879785520947035421749283783383176937346521611963772592395380269099688998755694521735453526199302968780730443151279363728425643958072100613013286049690942002199990976078201139389390177409331828693365875084292210337544915270638906876319140492032120546065070641728731714707497355789646959427154141785475818702105946463833278991085794668232940576995327125649056408155734037298445003186452289752412160525429653664726959254544552746502845295249792995008466685143917000239887351072641942130656562992158046795373528281916946978746211592844411694027850197865191215302277545155422150405010846897946284012432119525620276405256879836705715262321356626193389166880112073471795305645941738669642999281318066465479540582231679376559062635834035855810447845054916315134473273827781684299494197943878346964604077280459890134077234828079181306130846874560554850844367981209273092331358134873202441326811521047120411623458875112713121281700023482517377752615312707307317312311008768351807593132597699825865576861670123649206378923123528124391985289089185373850809463010381896885863343072316219120412971048225413969730784524986804726099240784566013710421114701794176426281895821185193761139529387511030157877475346498762708188515862571355301504172900905267597531163495537079042960010156614587042616764357148146140560493352563812273818262195945603756226207881974223917170941334580939200759998611392586255666712079860925996815532153689848874543701718308809862682151806583446062076616135479995174498124431445901135851966711812610569893091689921570272555022892154386283246911413475120049782742617590840862178764665359589311178231271129271299852859785699201770274246798105641590801505643123430716930175949164975452097458640618360060504604960451171513817525200787712833093891851227578841538463756549563316934254735917705578001133031559325034835332930745842934108513341061433538030245966123445253379712899534905856812173699946410521078670355402324719535025926274698796190877581986487210986179748677600790611670336905049561921893320095187743288108359660383720141522624976379171356457444578728781094515669906688919172376167039997809450937277223398747468571078588584078540484143387828336051343277574701458683485509911147119814817511475193518928833381254613382284590330991302922442455564454099552202440703470959623152385525177186006890762992373557119396316252616064852834532911501115338922560442381218690446213895529059841123636858517400681436804554361454254281937974777599929279302634551980806940987634163949738842998367532278145450538205110085368397308428513607437171926215300850078584327487365121488433830785470694227221010933591720796263529203859583876019874211277186075393409168150038201402538740686542738836109393128594508110932017236942887277627204307732617697108500602002459398432134141752764757884079138653018950484516855690912354724531890087169881508738140887820370738012507002545360515125911593692675606651038174752577128454641666569817131581630197833823571905648373761758387397740055264718655646801728530806702177504562175776858985635344313623701607243612386117062021156623643901314140300569368789711873563265514588039446943078161918134165406825024274062694606193449306135520839291806166919748351873415182127645460164604476213930809235054217814146063515753556682426721098306548158535807216436020240962904612818239385941308047756162862775180826589434799720484763321696856571104891971869893423133328452429766318845897073751586910278780914043644940220031756894560313746500357921191126299537056047515458203305968189789868159611546477923352668366242038303955113176390945194841563139866997868098425980102437410579468226455302445819588131598366198807970639526937191989353688586217441248295505097172123206892825866618464713677332595553114033771392669280350227784707539494870817911506531450591665506473910549743389210708378457419781111136543411554594574260952306825952931848519081291218243803319450740884850052474050713084468092039869616059819370947604475249194476450436137570254257333052399385208584325829214122649359590183520249471730306541948267173734195214234394028287231089160427946626015442781610794148827506687475785678094006257678433908603845450949945604103936674443052587789997308848249478563741875335261524082049175051945919881781960781024240038668356508746499091869484782706376229911049059139391839092332059589068319830146630669225948419729950415080751324952373734414226494689457520824806501291776481192575737126231640766846175093844054846190237314554689291607390933038595810810071320981520559245180584155957948484425519728539198109483212533606792396600852085863233939590803247600394175548030109717351282210345759930632033486198039455486138839896006613312291595378129035871548874482403088600745542422455153687446007990583808389331060215426383776207305288884006140962207959308275851804270203506556036087879768468270727184623435158406352272170414266045243550962703918324242109637783954134723275463136802850916034034810003900399111157328355964053642090193034918785464430189264016166496502350740797357467069846900506936174639749492919945795882132778027151899693841417428847075616994894545579604023077292858306263322435943863255550266112688211707983260564668729173701241117082552083873757670483268256737798647266015600178136032677296235587230231535798119110642526034152423254980809084873633066876647568385796057342101878621165521517177204308538447648044781784178655566539643872175019159035449561751533389890988138814053299780484571890991812751755356574377347073529007405189365934610262584108355658564161621051145501959717687763778918060402742370925271505722604703189587484600105754059582608805900736288746161874460368927052221183680917176698101220879056770722022936934626630237786910890267384739119708938179225721601085583653646108075256163037248411063386871639563586411029813329230358162226818783127331710819258828228171380598636500318157080227869768783620190944119703909930521054829063687945821639559160087554615295257441516851843638287504520069799142238120062971635539290699847075334752511585776793558240390879507129934167892837251064424223477739010228843430811417946679642982308657315782448874005998763146439346075723628500306536378905390521690201578088334000572705332899083356018860258066953692737046111974412303064956745539757209193194607781837093497300566517303913731750967165778597625572259605011173787381031644080021466086370263488563334306082110267146455494989776208069438425244483537976152280722166868219973394520634435773660252208855096433837783452467513383202748791177758036288133724641783058339044401283834952113011854300913867250706921100108481648577570130309837604993983012879526438347018596884796103368434729586844708841856931800191960811359401623530340790056889355610103034516760680426519342586799065258505181881426781858146182925445476335138151478579228574307134285535499733383666167544492429969213087073691669584873953414007308978939269916468335444806248478559183498616634191046335301416246194744985048075881871761702381228623175089294831489707565971033354688787122646202774876714683416436957412708147657287065518905839244878229015834344238146127973984982538444614074188821699272837065623350016719448670660241235009770361000069040258681968960108624384820672573872865489993775480271804044440286836691831969468965748004002230562173487093478728149231369184413006629150991824691799019405665590567940720529757367411441032985078053104264921693041569470365885912918724830483156176490796931708083953240924763226345486731160512337668641828878348333181235817211067713779536938108436288222988893942911295730115845914139699642955357105925825238856532024011437208468235386085880242309525771990191753093729594281091972574824179867870888517968261941806987420136193238645041242582957794650958691453745742518326105081715976535089504500574229251078764616869027284296581866249190858180740390825994240816407360013462954804543857113942471093255971286004828891316487658840518413794681574909449161446944238242767186113202448413229961300183892774560288741440815665757218843870339448375160772332461425543153640237867265218029160745907281740432869681865623376435650724326921772041654188135538831509474522210332420089946461284968982121294549719182506986160204596791537984304427878803520470032573532214789809257886566210962951203603434913894123240936454925906916153448252211859329699840978099546368298277103226885720829514270960770775644040304904561107492269463974422735235905841409854887863120750565604789614301664291026061972177264493809573569654294331912782202105323126151835821167127141032971307495530359725448619629793962782119566370517602627948837069511241944727594047871183630189551936769261267331983383576084960468445621040788693706096248766812451961461012041642499659218967572643703061859574307672097546691113312035096772140170687680754661113426986503712551032383123295954168175459093554971678237524467025987942780168248771839962246134913067208190492400314046089087945115980793792423237172067463028871587532601438947387439904963118758430174208888054620647810653250111714100602146706081299623860784279039387505069001547203079065529252545269890910696809179667993587247094538158022383043527220593037846665276608243618875516509219644047024002616020568606630366351833677649770341136293962533658280662937051453551837331041596826042450098230617519721945422285760193625759342393726973456270697346077975479560062311357501597479985058644224893952000099129498547160823356552216243773081337690040504615589767429169332625214298335806678869769822146306221697261542576918227263221233092867429726189904910815462714645292930225976411679635785839189831790109175872503605979997680865264994056738815998305038849179179128707285898191436394012707757174943133736722546763388730317669202106873260652224331101504753084223503049891505427856574117797523144406874788897617154094400043205987511119766598165014993163400893801064393056987639571964319130407654860690759252341416560140328720513891418484223338999613486042754073525039445161608922718852907246817816037925457486167798780874548585247585552372299951936893699373770887799183982746311061999160002022306949482571801622764704586648086599280979325944400652377134473297231986210590495563485928186744490829308778675982347961146672940242492923142183072097896468196017462610587152165867583434721507992459531812371803516228167748928651203551659257451865822737433379290947008307811246220969454676571280091065522041680573886869848466537731067681232114434789284770271651547392199858207359258759386765933967451920481316309730503162701511296990644949820861279732578173189779911452104097153850559352814470849473620048781535101321423670606680172604749331804090265103100595951926179541609457353595818239047602228419395190194030700212851140532412978713455702698201474936592207022707480848117443927195503948016484295635892701362879514534803663386487606138584217269122235949526785554176045203423810443150319617097813344661335679867074737786228526363006709417603927295914604953127897578691734398326630983130817733109694978051898145126099582703677710282791859336197377532784183995017238062770820161399524462748661898503019044250419354231403138078174628054141328399132493409769320827751953307488563936178170553282574946664358285895308043111324314037867589364004541591382619310567713223953368478141581107229147121979284854989229183811010088811643270821077293196101714048057233335238640044197954816588921892899849882638336416915093483171411011249090297005504489464831956465577233545944344610825096101282271973693082702211970110014581989921310121213856734054650850367836000900300023959787764931434203649391767155532057376024790154523797852653262946658231458392598347070555679928959704946530366221370851173678008860604280764779908679924881825963955779558643598146693562643885757865912011976235995775620332057071993467164493744263966461888855410216012600350737716747301652631686868964075092115458886261669232775798782311726914553868259000618923859074006600645933366894154916017336990320964372717314467937660290523483801361219644595530661558342560765961409135463696250816889665037808105379789154302426151821216480601252326295338375069188324295878083180400324817608830976932257613077310735427557868591479997785422465818129838023375263700025452304557468309041987554092491195873257711317070441056121082658650290698774959698594417722392024605445058295946249036887498278502875824785070192045963515323465373962881493455952301263328964856641698139260726469250846237933901766982864704175726350647520152346166704308379367150878164769032982601453585385314420910139296743172677674874779921743364711820120596115113798714651252670450219453977181192881699968177531795854691905884960256496324395387663856178680448085587686674076072547819797949836148607563965890261338808331602760076690018651142014852390774193324255569586329358607183315523364711006694113469236517904062195072474859188046815824396829909839784102505314715554218828259873708076140666284902303129649986185339939680434564233111971995226966023172722654010682048648933682662122302370320784414601025403313467770717169832391957177354495237329345084227026860750203289927532075137687912868732428637734389367613731989992456587186751220568940542014183188331460064475257144087397136665518550177554525364758243737838893195751866706032306733395887419822080352411411903733792264026196657751952878864383444393144399816933883557124213601269263788430342199149067306730782507323543577700957414256402581230166291919294729232894576409279256084069307124712670176501420595165879871445614116921832054523254705387339641069045465498314908843360964805897260097231245189390544187000337071014833577366761343697517152785040869076553431446836010712943340717699971195468955157114421541722810570283801931705494366849377748190272346001532610354095765369253801575524819160128005739944973915216491465274546317610354089958522563271937191670030267387805234843491590695570382626762392403627070989268533280974571041496444287278984910276159254993692909479650070922536631189458899310755966586951515358078136967546561511037253750925224517997142301994074633134813303102365209366182749765313570244300417577096280659875827469352866996521042317135059437781408438427788800778930461005357171612978444009598812443037582366511757448389963212141440192345348584424574914741148627053011175990233326082497217000155183388520821203388558005402115291842917423671508833221192534823786834969219984396005358441209952791094726332406195284301115133606165953918425167254839731780461676206148123068905106393059005997026543324703803876042312247639275568725651790989048854929137041890338563671667585121860661311115855383200026951457555775159119106035950685726005380870599150196363205610497529948773219547633636571435056538578871182884597986283941004109321181944903187000281295503492766356607778842178653552608336962245178078569635591995702862156463910171421634774078847929338326065903504872554718480086252685362894417139399322368240521661352260122472032108541357326289918366427493710541038607798974470412942588609289652800248141816453997075260608974722856878911726699822694143363148064978495035484516958252264571820639924991721509032995740317139144413566435940607669344841504627673681703371797422975129973988381328476212183355246461608665190613905397736230523551682823128319871246818039633437080868700162016157941289178985540957757659566290310727643879988067427100773602713862716294879755895097101888681433132578090309425765100715491285254492112365978477580840955613530454643573361746177506100654915556076117137847060122827144107554844709961339576197889373051292474955865097981662992970453997197786397274948564505699572881006328771805539091950317542406671522044376332983414854961113289656401681672666408649001571057601008133514584740639552715721878336006027258438091719658548310662979354261305506148251651447365297421292468802267336200740043342410803003614813528598866759759224718815403805233083820747531882166805169279074528665107547875659966184658340502916507180927111446789443046134395456599655954394664221120164465918363189930524134868645817574601819960470459553675269863587351230953702659847942530752978418897457924074733323351522493906535551488693666116948209701107721954444951005008329580288299214685091186639486925189773584205029931397016351406809957891878445643130194531269525243157461275927058943963611617366101983458416448630019812417293981778829497149093798279499115262414927977340202705496851039510481924730795110402701968159267657070337020204761721150601161286631610533679048231066902983996393385136690774673790699395443571561169816457378782008101906737051491219425896072771935267154481497881194281617628607482725684752978261082504478105057417776760667830380956882798771086001825827036304302414822842797039506368976945502134703787327631185673566934565100312989734841655987698567080265350923104567909917466678949715614173001733892407950128232803776590086217911113115964790414982293499057497522271948568543605812945896575666697571200061718893009632608097959865068363517849304247526332082817025403702392964099635224614020307573045533122787694395840043078125499082383574987827137708134181485393201225780665409906598914864382896383366390787038468912875564130413307629622809793616309088597487306606926751794028283355389634968937511530461098672125421305112738957444748569008643787760452443301843089551930947309398974149303388622286470001000637453111969664259025610803344505874727911467824943982190676754181242089122287032028762822850629920956609177878551729108888765739747220924095832893397285074206718951065080598997139290556518406880268187315202750496676075630099193282505475078331228706292350643928840365533444772187790134217508960227613811216243521700968301658165939669561747159229589550723756757287565059043034590347708406880742129577017222771765193104791343605385576191936879901155687982740131234451833427731150277855014427184257145124642533617954278655027549238590451512444536617878322576213591012807762694658958940061413742981181712558542932026412110367411851993460079812027442269066609583101983804406203010551065923544056346392620010996017890755801256569323848131196881684955908741016539512258884302307670908684810417770752516908193055505097788720528375848744210857523367438771487200413236873903133891302056368604610223124291413513644996501919649250510975861493699017257816530606926299896225867964514005287079700517082341641569418522508015732469180153669466436294570735041501492445441604430299432158212751818313855532613708896382313477583941333139775900156019792929476166703493703206647353481046389461784596677088118721689454739234728165274285684835237335142521889070072250842302069021468361008743781916374531759269154601309701337484802988105724524622397523174629535010938103963273558676625815611796283648061450573671565941793302032985796108284378961941277112354356451963331179214358404140992568249841713853392692877413646439407175996560004326319765531619479325743675190664857920839013603944471899809634500041759738357064198610963965025465643611023051974395430933197724632689389839883550519795391956626750687349251000879642957620214800450180794066227118525680434899468903949876139591155062872325058471135225723836741130566777270689671107362733864796072229429389290595901087364925318011326424506423276389797604213679004699178284988722099349957767849818828027877921461268215024327027162818189594799117947090632329356777084230109628793781855650455105414787787136163692508625173599370400187562069966504841622474193274302577637107976129719377116607263139136584671552968224224673401632357947298243256562762657045113494052358139070654559303513495678168756955610273689446426363471320611915846916792646566685651710142882484641265427590979643767158183005791757597047615358031731149917988035713741461237151150940258792377142346659515429097829399894251643739714358419148360895481098482815171401938233143411875121299344386528588388048400208609143668501693530488516983520019646074466821096603740102129280006054428357400785074246041700170143127048751890419166456641085249705041197061197419511504697432456740528191865464816492166751949395471541435753017165053515375299375525133026104643063884020390905678222932311889146446169092821973989094608864340463724272915460186056785896015248568736321492287465137179775118152989156898464089370608735698391965740473056579314187517744950815135195554251064317410902937123526957837320550316448065100538598933635917582362884002702465695875812275465944201178287795318254992269795931524092398231601497517235662551162828979647703305144436016575414473303300149012756974131993802356581867165696767613493138708317542431008346971217360767897049699728752438763261721656852772858088787232596617257768015980744008677740085496394851810524094714278190813703626355307708367597543200835823855289976766264224049312984673794716137590554717177439502331283032041987039739162543510809036491802044894950998065278328756073555911695884830182570387701743751430072000322078339064045312385035844633753591163519979395349242049118350870884937284754716944962247831671892728452168988476199194710504024177505253251360459961906058946839199472557320255497523017019646794277625353910091865077916879395334901477318031199840806414744675011261533131394873247948473352773556971609647377496774247123329795778946470213574405142336361026157086777757524705547695348720941428684539149222198073549867930972175135462775524025835730449011470830048951392871590782697676368990473483796195158731441448292814550482433156402775639975328796858649936637714676686510579983680656455329481430978321081954486386399286061943431779589117856946729284818118458635945582190565110350125409649606835700036889254080780556693793436687826379722814964000093971375152724339221815027985782148654048052438827382180192646132769075622747860720080339097606642567639922245024538679807742796817489183136066380103001339877675909466832186429872438830246792903361906304168503117512955232878108710323100301002987006611840643897255789528842597707504090641677656383240834629284779405413104408856468011307086747746267360332685410553082095469067830048621945638768063930381488446235761168892353732367162385494158180082584876209404418755533943433069682238614262218093526988339446999468790048865355888310187412199003844463767234009298733989433620258076831273452726372653316437054115752521775588498903687634496153244834889471124019242453609842423176300901123493929849997315745061260057051471327966580100932541302643555497683237792157854238973036187080382712607259677754953093887043358740865403961749980242557714215405675820094146445415860158111624672135113773598221859337620285313840999051383786724975455723310812192074856098414201589847499423394544396700910211752120470642791963496584037226899352767988739669572366148322767728699673313201793956521548478034495412102375196400057964608386062586560125458744296865427008013527774479429474535767922106258060140090779200448124808549544745255732335675957072102096098206423863359484294517885080392843761096499544590243232920300688124886315921670948080446439267342870064154729300923455078696477429962879561447220685599629362310107166188963576423831058193938582044610779006389661005908732239728189002436567536968132338733251616808388667004774105571146468485100458123559972256270576708220875396045961012567955338518417679337103878757906810713302612929929338355376043100819180686546963910392200190418892259010653767515894020825840046966700938993129005670638531247541697381074980052711823516345514846117898093986749777159185607965929902093145100900243595862750526014559069484094637228011093760730197620058985885332432918807095086398462934684618545231484315943706283830654797354364006593801441872413979248746344118792256892697088362017152349822801702925519024168364629269963278048318222159630437561674246118113388949984350648741777234282419003157900608332003089994760411966041359164621984333938634323780441819797935425133345384279987370565501266437305047171087637291365033294445904734926747847762053244120547304591352534900751540577060666697447419509124835237690523332224744974715286242761836525637045281398879854175080054978990473784683654826723087118680609991087241109212524067773009596616132089517134177845917652881240307132089539906358174006985796939559960239468189251627361916057495366480729481005166294531916294321713240919814938635945255851633423057620837330078082073893524785998081211847542315205283392080606940306263259842443764339825148181828166780564518230825504696295928648519673185270867675040125934358071740861437222130461792572120298023017326155143408319222210412763832876943668535158344934219904236706445012658129203403845248707178785380698699714716864292688005845577327922465099731681129395282130852118931691053051933679768875330639307793360355595180009060937894714928030885820797173725879405741415115387899526629753346799642972810887170748005183658508153603722778194045470235863714651150874465277118141651431521536626091336182231355844328260662932689205353488316246401182378076241828324947855562335499763771893797236279038457506949716195445533294750835383653263145508131391462978588612495305130747774179711256382555528805368767952432536548326361491891722336730430260292603382292103328419483052910917248195348285495522391032433299004069560068225123089716376565976956860098447831815448391058865568815062038045483016695072232891173127996724424620401754877553843896731087083959109435829477698230190611208571635418672248110220272765929901742781991312681098296887437669097410830189981603683005365946332362076939191917819829058998600137562141636622719460366776539240648930630388554989502968952838920597076535661385352284154828948018983478487794904200682432305497797887297247777116978664468780354691507381568578881390967738097156886261694790830898395239297745919373029475192035484528353401984266535229887932943599014200520526499018331528887024546651729099497633832349667119141608133669070228269932259399041265120639464870142712558245170897442077815298617913160255910070919674101410760076631378216835249304005077482909565241035293195221952541443227436197173082108429924162911910179214952363531686069900349850989031481000929819398582804475903213029897638140702938558781679379524683147717878983512017204046554258805328974520312772946442575164048296527441058190661890582568073842162495710755852231730105680415823298489850311542585418064912437181996025411991746512879914923397700211394272341151430460690985314329620748324924424337793036038892316862206181616804883784089847406143082778432191920360864310919507292136940016059907571143199962502527429344214460727577993699094634772020432465742761749818459230349082869999220222108042575452556930372637012368109339004732527536733294190756189021207246116786784847159065621778102710915784235876192081149096112953073516244647617070923053735051013573966607081317602826554319260715836675826344224847788477239663930621114389622441466379183284490783621527102529472595489772208900269103055322600307237711843541251693065496660541822603653784256223851017808580906082762707741733191314998146584105402070608870115049754312255811776151507361776124061723398252817050978437258605451981546433803815696778798525990033824081429480149082937805198673491869044974876630608999981094609058608964786585619873231629928446735790309995047714829126532698632114768638399193413418165427182030279040275167594118256650535965119070004045995972690109632301890390031224656122606772443654807173383758711514202497976108604888321137737824889945093862084095842702071466151047630251748876603639813998511870343098772509842671821258763713225266383473630254166716621703391027667668950297918031907555177785210363601470809541825804537510236468355871497567643883049713296008244714871733852476648755832493179776254966630097933967288111049491235589373109756487389739063464986029887943355206938669127089041952093215435671536996623413319262110262795631181432289602874110796916014873096938981228531560308146689311987154865649930863648357858090999070289951650808376795003970055072086468556093939185568310708946259575047664767154902954498554655176238465682067880639153172442306561566763915796781697702659631629004731762733432687322950523335977022882183716332373744288513215517376565840350877840884172826637027951697816720689701740963597622991104996462333344054778539527740036362266266764563679205699250728423514243166690749746398761400897649217018745751318182521726572833461976555385524855458675835055241983357720505225858484525697473983758405533018659852008952052206057782954221359789673711315312764460600134564452441619226063801027544298090270981803031831988475540905212591145825275149028111257961563941635016577850000810317080176047150999614523674638229336802704886384975187475009543207882265936636393281915752257378306069232927679287717814881953929783997450850294015302036524451868246447730421380635878531843463228806714908042390846972709780569332339159545810858436750719262831554670398779751531685444407103787971979148031857099229126568952342585796466865296349642871079285842286797159055933399529179822774242076429449940883641857384229664964906221589789213935054303396205754936147701260129150414578621479327504664995403192338714259255425663315253231395725160769182485660465652659984853913535680535922337814509608403963905351586381635931214575064497648522513505155541146108096106978951849992508891189538238484935594231869451414992842506790831388773094880105286122700317029732199694141208427930243512711183705434943175734981593945235556534566909920313913145972648465565724143411156598700039111782739768635893019148636446141345687872630003100751311708341217007251629619407668931363946416303938489246288737312041346815320194953968140232882245344119581222726193513854721042444230465818420782598676497439736298830443332210329929456986096014021882147850273441186948624959379766153772594811768998801805207790914333019762345801729222132889605456377355214271839903535632648167364956462038051355532587878518930825020492983487890819143619424210307945612594036166113823237353511453924305166345059041570724854962941837377962024626252239664415346713697593347306846083122643433847338858160026259721294615030089330949781880498845627201957554322281183107768854566756447691272069848638808268517488281857022945305988317053370175275463119118572067186399014761087984799231817503866592462426927823445978508585872536524982234212066498918006495013202616016015574985754995512490957948302772126082602391642728901028723127438199169609289294984425543933865372555792241213776582191658789336374758950217460451320275175826024126289436596856541119052550709882495774160909883765599594072181241342124840307300660143898245561988639161423634406939191775428589208914356325620121416456317700838211734707974527658565093491559655088798269436786190410943150944729357100404587422216706228921912387171130130371173616310217901912423408097011035935624182994043209718722168879642950123326301926286428275729408062177139695085058495008448656860439211740994569878006464441937373646002846937836054284878719187985394621170534101527391774656314506611856532494075217068454298696880370547479854784458566773823031132671952712109905951557318721615826884639985000416705845621687337199834975899934099349005202346020540357736101782788809384461115547596662829744907719282022768687737757773693466930784850818481162458849363040549066362678707994543136478470045436220064547425340955733502160205038408732408943615409909800353017521014625896764239416875603646811893947263676632278667866039597926799764133943274858798501748920849108396349639925636785453968015303611090034717105608436353918451524675229153887233694510321654401234416674448755229345826938047520129836584052787044055984686889545187000267373058149621634900664178418356626019094464932787646427188329955247300535846948863296074220133169923623065622529458421440355347025851884244859931820168463656251032217025986489140242422138504940302031973774909792098129997572036251000635335184442638712465529143289238089648333721317901469905408275619635899084018980011337158147553504658866788762114873464313540353924014181139621024143412284905004291636368652026801049663778192693416014850806781241429891226977360367147209888832244591267743093113637492607063685853678756634949017489518888618188009650918884933803378815452894911697693562125200508386505812408132421705146514221338104987838291583972120542821767986495192089804815444483250319327544249927296936770294372797001786469798297683972744130286338311402948148806226671505958052498064970943139947608745734623602406280358893552392202338130194834064679793626663633772749413899459240972818627432221918248402874269281421738442473670727150667553729328316264496612866297601558351225343574210344594694523785400958198687486324882762305758353776540285952252741082133010598074530956460894088043840215503003848433964936994083280361239432657066097242220659088461997131788034818385837903604799798385673723931623038814339042335510480950486051282438390366725077055808553439264696743079898233445830617850977975164306060240314543640847482040978844364055392383943434223293049665470844395500096033606617358204518827688381387025304743724118383697105077645268740653673977634392568616664233474739898460515576141741332729558364633285928578195627451010473219628240091532025451887193846097982300019202756768826057654015835292176043879414769438361911809736690336794389189765809892631132780154495191386851177731172855084838409594661919494201776637447475658314944752558666502902788372080342926714490019846689564994856638852614390086871419087436247445092695697370450293848860948124548302543015503524837030937424014239997878165881724472778928355680117508558726688558815881568213032120715941637433692165279587559845863294112518723664095932024505937569679517400937740896828942823895014534142448955429154621796481105256898543949697778026781126309112103471170325480764516085000257612706672953201562907309769884632440531706322139022269425206922738993716830082757443277601343993178674279086473330576677885507995009476604098299571968763210155374506842747294287805409326288547230167876538441523758387307356691437265568921042577459150618294232533561844039040507126020271595495915598752831710424418343980651234530844647940534605374075238753850954767890522150680311138130399790304308205932552109891701269030738799417218568609035237252578046453803312193945483182823851393310170089330170395601995886521711688753403687213553064543448490792488420022609226062084813317783920195078083649720731888962548467466353627709366641767794121943042021877122187912322883986124920853327763917080873252327678281661629520671394605662389063111735935947301147685561424516971167577988549902062204634888172090322827099313704624094050565266927308117425169365634829203404281314457167882830049902925030230193065229871565537006679718890731761314915362937572137405291323138696859265840960513035921855646841009159445523619327127473003689963604155156218565365895842937825346516655054687751203239909497436296911570245260304202999195114760565057966572527627796296812930551739990976501393095506923197333493771808563963236855352268141097815228507506028676041501684373752581848176926828350038981549759698991932554463827407382779317928662612652585701711242162201402525346701897930689537521976429372005904726750371227618569751636983225193895286979005100341484786829740866182985920207970292617310810583306122763169506566574930402481504835195241068838423877076204996602821200623635117239519756208587835361904035084786967031218444688113591223498277446160967395128188020816946374665751608395099691871686868452383207504012772362421763846771331200447923158820426154060949192661969093503079165402006202102879997986647820641502745770044908976221487372882929238151310103138328938282870298069390602187861377521356802616774793047541517321768125517411911078707099872623937072829638976932379278594996835447380777766568888966259145719713784340413077166053088960916404156028501868058881299498945750752064862277883676389253331158006259564544051771487679397505929263245716372557372919482183584686721061122846141690669038119367794301429360343581576704709500319393707405332959526015812433975449813102025445334320269449470248806861548687029246004955773848241656557542283121644116910196237987308228017218923249127752711771396042096873237452662116072832907298340827946852551498342157079414279179493682969265567279681313666105254392651064875404224365484685138778104139972814037073294873283966874743456748093262085819081243184442760828231762781544821141607821831235713806405394296198967569566513639874090018453933083849720755338607223655018714380783209278907355323386442961489264959320759717082873587947031405553589441806930729710580844324175666058241582379168034514422694162461785398676015686033337818665145807059090107794210007936828036427030327686397676581649389508607768623669729094694238882061195388798298536664787509351653845220096912380113415252782167460835883660108916746514411000900045130155038828870609882083950600221912961820139711318574692609547824600847353273625335823514544734212205514428485851254779824500367338424512104396859000196364764790841955476182965921092341754892071842973972555127695314843970748932641760228786940752892108287752892691887675656868814793927761629486473192490876131391261280933224153790356546619121026595683368251524754138436277160793373963397894802914986395479493992606076903497176792303419730249491865810137042354730925869144161370830830056543474098477951742937568059094239862349145274258834167767012025191219308720711575953225831056619730167033728027038672636547407122849816281080493184801540802131539865612354724478326051928743784500296551541173627398807860503830394971075466417982450975853651529550091951750846006107954308847716451805455628811456954727503021514944498408192801940730613980399246712163352106188452460738198870888695608511531800916050051231003244383393377648839138627331183517310235959075707474829977997989558713256154546442169936695825253708765861227858990004462020442550128590948006974232162194424232174344514140207959325235481304074652863854357622379508608187167215764084013754365582480222610655343010227352324067213241497378876701369263657631877728945700682152821800207382408248377743879288569540233360086205624722641377551946663360403494886844403768914878952745522731181092530843411928908159753021330386395494268190119428526846026640494650288539701067578555353645745794914189115003352806379211183909735558999259874444791832196078810434320367530992968469834622212216334862338437182683367755643546892071957641729838858346977049497506289309379864550749113771166113598974703500647940059727432584621942935632037777596706975586163605482634019859060560840660083601809203589205179623307332600926779206630315175629564580551088825913586108623758804449867465795710862945799422870943379224581725820276039352965777584598132683593452607915955685395714514594327630273583383317517590621431575048891557682434246001573323034134061381083528935195839214333509965452792387550231192155175864936373441924373613914919684315010291811526276575585181443173336705706090993462723630204637576659842409003298815396261750787837257260477738929121988246425378415182158633710425312378181381544708048517320286166931689434417463048818334697700263950373351574106981473232866804106668127555276281387779669878778963934886735898093313138241838707956142561750534504095151042417504668910875859012754487789373746920712655075134028969535852672113484060148951531432898080477394845111862192482327775194940032958567482792328597692923947516630192615715262469321042818469012762813556944013955642959887197149248278581437342335315180267931044944761404999320342454360792626839148961521371553149487677468066217689062934149864954458456730619205761277938493535286484108694296700341805996068844294579904832835420126771124999987144023680149115982260001843239658729793652824568167944311177548273035595966467280692647049702322985917789305924566479547579202294971669227414476278620329447151967611955808008248594836437221442938126902175869604702077526462855816837578712103047512994568850138356984674104202276860418665182534127013483813421943267878124379977570658269235976800423005205397151400001499734310405627603633281678649450234833330447271213731320221411956161698949114915392918209656362702615456398933325676755513389014676545825655050007832600448052588058542133184783495471206765826554253612945267699131053795276974833062470553430953933665784395835969950343858723302821079061755449520169420922888803493066701353320664014982997586633851711878798626193326244900954396029419413311612543592039121910925571402822580656196432073536141421015975521588627419687954449038452003573572618965619775149004006124429246789084552480781638002290281678185048847322247435941830096145395466817850585791191092211075472378721838669230911415031948891840913208043356180823794327311638868075714264512979253922339784516225015335082648285291332221042622763701262081396668706670635068271506644259366995598981211081228626011604773487257101183444270709926485934269706535750355814794493030661554192760028945621467905075880134573143469193333824022814300970888768445165982206246886872655715453075257048046460599821489559740005460708027935145104555278489553286837421131978179610802725115429392397143826287471257085990588682223012943991740269411056007926165006445673912425259688213866135202989107197757346579742841670310056047443900546730192722531545339763034493905995269210247761764906892144992510280595498575722928909378217570314498458265014062385470715991868954131193325166600069559551947824791383611702973375158406791976762912986049329500738227946594440573483576272869781008923511656813841491365489018504027292257743719417049414063643875492671131078556781836199587696922243035783054098143479925432137600524323538122671175650239718832248254534394103087394028941836767000401659849526004712643162770517968784513309928588128743161548688328187311109984429483595092697403111510122470778389401412165029151477461278778823479424947254152663119623616106367753801701052381447697852142662973193427436183375878345834011877251835189748523550535846108092428310570089584056233859000284150429034677539768307302463857555480364976842925522020545651926589015996118585060748990062100742112760117142494777808804107048321871217916967163972167545475286437626713451202269172912227056376657842236022513631465580050293920093422631628218608012069254606533803212788058143098919117496467968911254828008331612040191361884099390880837366533261886256093012218485878203722456040945862741624834189571921410843423913607338275979771854323207968651828086132456767590121692745622394554156102767914904384246951765519097551597615078179712653784060953739196831600448508932238346871751310130889487419665972079975734136049460439321775067368138041605713422134768692703255609194240286857344543546231261815401334301023474816894995184703812920808213710010182888763060422184072720492471391686097464390550883086892560780107061004703524658665431513902749735080065178340281746284244347235717058876000330310526398317963878087352747988068222973717706417715347216345833329149859347539426831156463374549000176207660903454717570324965585342182954443850890147843284494605138113246661091346353287039401572159764494949869816544772077560453446303398360070660296391013128693732451501520333232644770677146131694289555170664336090722271179021562350559917311911566380517095467561197931822944747428901874486805927297194969037282885415320022748775367827278990038640202733079649875024058404343201978626917396710388531748759908206016764680698130528531952593606200909339356076979935447544379618164197849241805649523470763507711434313049880811159077065378800261301492454850860099722266054119483361286240949897712853931168385310733787746286871217702961393586022575844901131806605301786203413274789382688956377766028844458268342088569389198217643883017792745822109936245642066712452129195420010245810384614401953335985873445520018001981014369752794025507118626629777862102274862175475388211206355629646163728248059629130754767837818982505990459920840407089101530585321411463161758219323399218481066366074250230408212053920113451295159298307769433720217364760509331544874458271319722829713914312299765486301929943364625505440038972569914322696708373223989412997650718721326903929444181935816861174383619956897164973976456202232868889029586240306044980418637271076036612864494281497244332556757305435015889503765761366905521565542155755238427266649468994533124836674205108328178044975133915419962361211348008151601354947517986853880495787272770047863245489367103385908851859694981334867541203135715795206739862120130528006503369896401114622326371565170801402741179231934890360334157041764287449806476108103304297959526106287266433316200285167663793060681350209202778895480790103074006932691624442284916180600931073880084144966574354083365687223360581788387071536812589621883412376361744750419689068808910191451340130516872562201741720082075537004266037825438089468762861823122205054623913647907230098186385310575646189829655978863846582591884921597942538039596019125418083640083688481957827872480477958653320276826446877251771681954792811334901101907418050633353560771560153222980575156118594474994906261094168712205538048463286929975117278588998216189128095736371603085799762637721179296554026611851505796106668630787867302970349931091695493610107641744826794996470812548134279965282400090969717661488410736110653493651359304584964246736511758503123544666717282060100478562845619634043522296338129496932027350409381496140343145019350511709654761853869288157830994473272338533344519957545295015388359965114649101188252892037485370042882085739954556519583309721149024249632526795793464680455320435361501506268604669833099520240459078591517923441943282803887015005319923906714296404274586176429828872142030303184317247609709958908206026946060653709635376646280123772482399448889507104886185316622076660528718828223674140931194581753339729320703144929141644326487367062485854190673966168092145058088691985824619763410968952764778085898543592078615446282720200036897566765698978694112873696566659692097232073314646195377223153609765768501305081340267101549534876937981708371852426537651005163742156185073964070458564675824590524457669404394173481537048214751345938448863280545785401558361974704398888583618504942083512648100442065249633431420169305649620088987322488798758616698457349918137461335351662638456840860724326502781940607292066882253061331097133273437815405924790657350124454406162509826830157779918200396022586229715144112985460689831632120402475155381280032594335793917623014445231516451423624014734707112858457811653199483730809162419674631578260657165565642055979528756199225119232683506975225585590037099723908154230520530054708826071128196463709494600700610679070498668320325899657751749174938041552183355388595601206571126505839430347542441872333555760053356685608140961169288222777672014885282902529815279165670224717587673738463216867686152673457455896075772671263554124501375183287262771773489892566909338527515684661449741095738406872997216324287446566123115112272691674024957483206692571660740360478575707612495244268244720116198636794518155345188591053034960568987777630110393000700037358522013694740123775650478651248414833274592722214626221401365695986214084121589845716890568872797298161100812059587945146120537135884466219593504491325142156346550908448137144347238931509207585115162098845031390898887313110020404942093487553671988536243236306441571243154714755070367043856123387638317178073471322685806239675999573309707116383160137706246200563383565627630187860572698807076430152037137952285255320310317737666754539145361284540224357616042306805136809881265686481950206386243494164374612044047516652573625264203391703185590012344179369362746383167875805961591808120643315681970046226071233060150534137321458773018486043198289832356240837999372021780467937540906922507392626737153919440354747013895370433407182716803289540918969605390477024280140224533385790539583179277161709722078763507008018404905319435071128022081285770836676578618759915236649794467437701623961857451225361474485018351781357112129452965399529429903168543658784482068572301550324327354566375908219177255452374766546163917061360195729000174686537604615381448196538510656984877023658402707354895515931565710307673677450975866469051095268219733722470680568618133265674855192329741966050531156292297234018920789894753400121058397198529963918953932598517024619033232161930047316652268903528287766012652315460219016180494159656000565235220920150750025656347202566259930944420381573345734634337352454101266744298815251148237809409779244932220430325449560355682948105962554274268781784480886364093873334346612723640957586021320995200164718157992966256870332665825120779970764905720377497994178974180869601063821690639767815605969767269252686345891492405479056186061221687595880702362792097997700344969214695600766752046144247643581069529273247343184249445496010633033556096021796343618521277666041438884675227386837953639126419274756002383164690170573313396059204793912079105972373519129552739584876116131460908691154042344604358605820303701438238796228610971477257604397155186621229994980747928617294282940285975850608277112599490053649949156659042465432956363644813912475521852812556762750067908056499566764398854959407055440106940536047908851277032063911556461060094381370922053519022051276635482753300587208693296445411734575889786728215993706172157523377061044407916624006754999933473025805549669842357441605084295176095928657519339902107777241442134949997750300855759804667294010254610276678751062887967923380007350744126965828849177007068431437902470991372114603271831231553180690561891201060191747111505939486268098126826701217478649148745345281126269886230193633052444054439994545155840274319704153220837732397826859410704602380557424749900561754354757658902787053997641797197244523155189346883541709394218010641024016944067891481415698299334115212365027611777342237088080248763120360482558780509358361027958459277152258842884031834057038813111794376474381995855852653715606498561021381565718412297659188265839551188514531228453015979686785747802307461506722912094235179339439041133387786808336264322347922508593096026069229183213862308160225010711334695674536470048635189913207746793689159021181464423502113703444592539354253314088152802764008612001541630419020880823794673670782688897278378508373856663340028952291911477716913582227682867003238173093445292403473482514306954550478540010723000131930776285521586299252394172437948847731426648275857657634844186779512761489088817418061442642277226830907690579516647635056053912437638608456892124075945824704670632641065984976731441640471068418968677364708462082752848440592996698841997220265804892702282357600124843772386863805079769607877106258206323709413793288650636539585719346349068819400882910763673650862043807738151570808734863455224043465666512432230599692804100800561561136819929573861643987249489646658814090602469279791034490773753821352050254605725435587971839682841265378421677032268376983906180850870561245964793880437946287240817554367862433098572151530518403180932670185920887543524554902801112094987139509345272990328596278341073850313483287383542207449373311368295855733644034076710401070721236039636625366705065839053883637842563201198863270592126472272363192414432511786042714929853598854840429463007705609524699566310867996139294168348180726912158544259411778438827586991493416426210776915705103899462521153317990579057897803236501825701338671849106173480881510456143610976794613437815471896839241644957609416177406439169607946119390523093611783726935108524885337059591872131099434650788312653623245941394142985379142019081656596765834211328018067794440649018938368880759890641476953249792759375659256218508459566981933271699675726378792241249951736668817876109373112243710101144308942611693354913252291910819871893109267064141423683764513865215709891708407684611711546036797508693175657512384748904044974832509313775379029762053462340464158585811643130866106806632295085077759699880703032094106503511381309538756803121072500019287082996001251889224045567640555523416067939164930120740977779533445228390541277342664949268964222901517996496657458176361754934193635979640501397568256298021573907643480313148843351535216042466072664867952432197076236659420833966549662803864705438199111724802139632021474020260535375177052350694403597493835173483794249421748646938060378081021514211400512640273817243718835530174204681765254800729820140014671452135789310299762438482382756588254121610796921020550713588931695487279063788075868657797816928546956275814923127229803743494146611001909589396546397035175762521158251766769425421821151150593416390332411394101382770160796108558259542821116140543482143158703042529227169221195143427459328323300357746420604456093172095803711234668821855798850761195184112832014059678338755135071692019611686957158877700387370874180890233394430311838583159437627410805415075947678276801792137915271465629868734401190496836550444286500621704077325672993816417171660131594279202679437765846732982459636380540734904961137063563709118499395370575310345318037647868388791701435130108897965451671239096997473973465648724593300061058006564846748714820347977053681662977204695697561143904847317667460613489238367031510363745133161208865971840648077607321412236221878927278140486449759475392326992935880010034384463641310837621434910831899749014465210599298548848735527639275958816970321155892220003098682116122812278112709075213930494246045812339047880983766585718501062312313992537560292256900903625319613561070099860731346829079900458218039616975604815534379139372511602379733576198377435754676846567384081042387130999463187190390297170004274182551567137245193976499344258129807776308571460574771171842434718626429302729501903725187896212855408696357714971253949155656571803319378285793829998648752489645005986786699026310567075089041007220146646678178961634746514386542033491742025867763043433862614568796060317274645470379610681205055063651685562542259169890366073086506281529101792072175202712633430704308830390715292381231122261055250712282389448592689237897611383223792139928409570616199377726285845247631789250246060259665835502358023456803810040191901706872022355424564895268105514053940890153305570135551950294314849356196311581246566158394745609126049411897471443849053148999466840135676052658916020390903516613879477514304754078843574958111521436224884180203813358432131319476908168534131403259633444599482896431658408742953898550792025877349731806604707833247019417605743499568958891600820418411133826273705117884814777381906967166600427045336934508434422878636359184958504284657970875790527655952368765326309769939844363867162392308210304012146116180664225860225004159295858110916090961536314292854291404380682961256561420201173169980157447388746089689179215864881856987542010701046202970923096943903857009177232903233483343085957169661440566719963911599706259548539767328897103841903515543894762647066603693770433473882423845872767871448569729467112957549997061176955722887367676501791974158211710163490259374504624619145127655360512179422581665194709671022527626753100353098842910462588659859680705746641551723597198901199224667530103354527727604868973075985551958766891222599328093338033085471312098420731197761956451433778247394236742666634380108852181378084420016826403369484945197614691178576511961441308375949022646310618916025524931902868338403859354958554899584015088970820845090126960653646393713440297656137645618197996392303835853977007521557164461916751033904447745081653732860256513380891255105167015642080652354517599754991949129395330009514295093630848334258994084955460438585727043756205393573216095949331851091217546663309928003046887129654322476778507301211554565880117322777811766582620442876879137482778397501309321723057061126454367376563686619161597847519974217265589620537182570533638631611101715665673201101900748926716145049158790155887962109367342775954680737981685799688299996546902118834808463213503125309086629455978492312636940592871124973142083752641289112325145353059546496702379035656788304542432360253657060355829905260020777738378850331208398835646198544529884274715260758420422245625226684890682711938172318964726054715969767775315589275376559534107092575681672409330752598062855035333050538583655730802675985424347025277318728201396365216103715575241621622648106763877918300777449169540340402442093886310660701701595821374929792364684883269204482943594491780104816323997234087476408703993235501714925510317705564459759179137199522148991121395323884164702403398510058029839648746906874746927584140972411694689837753065039324434191876488236550068708792364480187356486285687095340331000478514789776117052532315286958249011037957252199283403264618457611908858041746271211801102848409626906967562445075748377051248942225358933765685125456418106125034975407418961603907730805716296388142042533342892496105700764710969857669926540919898216262524900005301953734675564513890061182651596221388492861901310034709883621515547099400498415583505376741776634633019001447295985532788982544289100166067613724820448790502181810814089042947385221990551556740937000119423953543187303245538472296016673313977365476966821422570955403047506825026511397762330337159981154868016759336969051520485291189019868070392707404038478211870051147365221449991545669861435945293690293252650674173355286062359376001446628886699911331299568787223945739398070314942875153544546381715674359389530293488889771718114390500131306596463439677660778506392458682906021913203486018957672956051594605706773881502153020856145875492144228076000797384718335888223006984562737444576122766127318823100966915022649503668366581981170016531938372561630929968350373886477577837681648403301825741352998667612892272481105581783925449719873196009840618981090031175245042411938684890976021719935774031142202652088885700557883567806438814590113868554314319347331386881684532836452810851011819373883989623809308922655598043812423290076439847418788244685814481025552407530392176476998797169596485449638003209200001483560934093568137889337953336255143899615613512026436989521700503331685441915918646852296938638340835403095043058188991204808359826397080874974038672975414761065159917245539806040514248644880639112086411531268628889646338283458243612396516463840802618847466808482396168576923007493158796863835093106175651918333924080856567412512618892805596385805909248181080525922651874603504282962354484560712786186125004427647239486513451355222388554373268858536793644995194601022553908567767847795399467038079234587625691773994409314021430224540481961703540980075988615913498454680777394476131671234977931420575227140692463667391543600961561765099876592717941865344501956392764113415431265446796554902359224159439762731463572403281280166993195769059705144323716359411214910662262604292726605077946973811875717387427264573911260943817300425919459936272192939639624874674524976039223604604146910199837592030747798135910533152653831111290555636658053637862046714840658025713316714100015300436282119435225811628984006732715011350421468192845647508169825221044743122721874713096785555087805219429886961971682437223056391676093945084497770841771951538915448953886314510070125845851799629946125795318840539316365749020822452848624483899333946185848308984637984590736291704008260869529690462113833930955142926834601667253166590735142149239764086730826204107501832748859552792260029768650335431327248847266354366962543437012467114785315928898318010185609379060135836389396840659016097272216288194250663627425515812863118173446587778922490449158303639002387035178361787234539059268385786959771100237880445357721152995676398393998823076319863084088877318604593971478830163305139625367566966960367214307380417890179732300439624577587971229006082604483903003622015726066375358502847200058329016042122295096870766189122207230830180053266888075758984516348407025507551449541167881944034528966004945019320929486628368004710230669424835626155821735558428730943170518796199351936241163014458265839938194944874099709097655049057251825126843581540003262840486194410261419227360249892394278999773701667268629455687307167513229537647018103628705035339222811317481389523848736626408261809416899730381639922919401652869199920174996822254066757122388542618728554149983230553259900188516647015942072021286573067323572702750418356229230013748405210264707694852933458296471640615148254510991729754007420669354331589765371815627841815677658116469829379826995915692860001546606876566213123095775257476534281423585608036461505182416727276765902180128496009899507829774114186618305556910231803598037114143857354288469307872029997849137554397532639712440164231337598829611892227678803511752028299562133424319937245188122282880275675767648335980145874944717073737306563220496826003876225492353552066604977756873598401537783888420229368007747654155479568278661468787491490764833989820195320361999731145405459273458511516215613802941191276782976541555450365371580511299667570603933487878117968554449532231414332909062271876870583935274898527589167029751691651280938622883125024347074624027973575085573774480218442074807208218318184170308269008253188413222802797790005893285800797749430071663321516320377198259181029265997154681598712381460113938366909113331573985566624474290784474673811316737365385651971846606161786496734055413340623058504676050636771073534396751332604119175913478997691085557335781244055103979744843108455233689129847560848096476348566321690625986691754600365396176813501516532178418426772357525362904686761543745435455573974952588789034879309378325373823527428372968103563333325787958167235516330355692557947519307447146978203592456229660877335618601715522569502177009029773531477053495037454881850535365646140804408443259914327957164589832030412953938631480639811560666094979150251262715414712094958577254630073142714523648017682875010345466464002175551755988696056494243383004220273499414825052868721797759497495003174245419346217864177033501131646877445731182830633046810009969470129065427582861572952476002261284656657970911980865618317915840271936299394244720634783490725940222011930387144561446117102467565002061549134500354131860601151885801311920562645284129359420599878719552707687646480428057724335073362005877216523685124719532181118101992162915764222429372599357224679295967317523648159201749768876519114468593232113099953104831363785971588925289165669478420701510140335751700264702995062962626539593611154878006232323247980826184110253129894241024737154154064531372753534084263059261369159108639521310818154266918119864488316272504451775262952065024471852387704523002736730197926300563633844608302960989374589223322901010316366950340062577056665211730557725638996906526764150170290352618628621520552523883406505817591481298177297451292813396768665656380574307132164259494492772217101196229162673932813632074788570807352201452216515265794192203093573617179849526067470247893436231134298092938506774269722137863192795215991640328143851581517508900858001575462055473533547929373250266559143062020354468478980553827380084046024355345776598239867923125987778658028580836479293668406581800243984778190763668486605426434432505139888170598254766837084465228002549112447009279946702962727154554732987813558307540629902449487695318767089711906804570657770819435522966852989257908007480029576083795990930407981640769453155758355943184748940819499045792105407852608510968531429891008114982736304709260591821438986530950728942235508286874640903580145911552637512542688678869361451902287160052018946264659541071044463335873468296633231511066925534700441180361750097586832578678201331965347943072000688029484988528200880001258649283005279744739871991010160665148337845204870189181228999217587929873001500218430172256254344692451119285609634082983929899272572895178626056679642677386177825738256069415149344059273442949640018972562182304510961795295241967112066474628696992338296586386160185889925116003055122791804845700175507083990606348815970815927072029556322708494705917752436540260840144508012673388486253320592426212317137082878027270226153411173136073023323338689992031556612580266108580891978010806760070559586182802777065556296540480246577846491204421246712214238918233303277537717698594158172378161493900253741261652506380799063159469257549350079774093548142945362830021745942668406164674639594051098401873324705183716408272081329685253543074041107094978791572982432952118927940267822223354788763956685176872476234823772316557792752774709849049988034056565161326204728053308544128947457116555622820240076337385185445608592914685096174445762457396943392817203068965569097553264269689435386142853759786655064453341761993486318429900177696682275578209937772352282679392481032613183453316212244474843510331578204997307253903666280172653068745495510773279738971582201720586952792889419391118733625593541049510437504226538504767159520596382165427325251408401678008286213558735136854387502214762460487155788306540557585221608766824689640622424083636281052472962378932461661145384763570640543035325843526520181832454922345311906678192564248762765874922982683286706148410474757679877915253670503816222592175129148509847193491570871587811627588561452853895518909015938680046313191522309127725902549941753597149571985712159515210944359625980474669837921583756373781497305470341080343813102453317228447991081164112566388366605019288273187978051008830006156342729566195554090007496255535226890554896047891550572355438838751725397475970530135201651804142995696576274238915381026788839436720961413677035953900998063928715843705525098863992517345347450016969056900770273740160208035800655048527823049511219005390571315600613604487655918252280177705843260353511126328075605637373315387384514629693183909360667393054215159426282402098298135285106313286863703881551736605700119335915460009431625448436077959380527348590689988664955785034830814576240844433147690175466834014500356175255485225609642612109896765635941259984743019036098856127628817072137041524388897146046052609281486779695668475855790860979211822009483420373572516014499480797737832431010961031287153032617606601731716278500503029415620210126877590739494973966502348013554462408953428466643424583288885608179909155568327299046304257243317933910252781121201473019595733864261394681285571419585591278269610324274531224670567158838841291573108326812431950733927671489691113692575887866406718068213525522229619389810368969344030589576053803058419861124577597718187826358310365731066961293884955817491579523349599493087574688763436519352884220698074399782112183464463712746770400540804074503462366551556746652630335062071205159276193598057528251493314902305148718158215349161691889530270002627213493436603024840654288488178710009340583105500096157528687505411886670434309703128588438973796566822473507834077928167363003548375410632175250839102703989659262760632564588869862622174963979661562921493486496788383430247834300628527053346563703785003297709015976031062106344072954801552990091029106234176848153968287189722868182950954256649995276515653457639922872706193326459081596317559902614136162831513686746814770543677026275323966369453327629061877112344209382471322796229484101666457506516677833975559141825757911892769742739038900075130320054971757903226543782063372873861746061284295610380107757299064345923251548810885824123554948879508971844296191275448467363120057901300912738997141829605219042515449495604932465620661195903259918300632526093009221492390453604615517589619781000502228377048728385938694429176208798379319871220529293065765074044879509225081541072003987553655267790275335618587924686245444013597487353068907322025427336208212938665561222477586479981517202230551546827005024816114264225980502383205941284243332586069968735863130004249981496191016305864134147341815719317243472672581888998842884716793270945495027456909252577550333695061000910091236369757479193299740892529480779236961116226822822533946040343631076552159997047410841903127895177881150750820476462990838121764331676384830651338700569702093626617340825101393691413059867849966732837160825810360091134568114226439898671436430902023469514881006513255451177582158302283659066933530228789638238350382498098003632148846441559072405420064812450352874820352640717085316699082469237138591681155263401331740590391185582626229069133495696165033502628054930468800150350923270978360582340151446937432577944781555212243672531421714781974981149618962623086289572969973595005914703731839119088006464293761194632741605452974854721051082972709472425625304627685520175430784916631053113785837344928769640833701848861950464831972711114865688767009850575341751778866883329334587692777778037134099453819290807141010687236227626541743021922527786597134439418801320874413460492647090538851233143212537308759003258851991924950607673143044468654400534298789838097789532757612125708611461705745389780536862548752424018839195198524512983108513578075710784365017927887522582751087752902774432158970350538520214788750360763225919845596120250351215262365367088146259919776956288880333605914125969102326642548156518504389235508139233917962759726771344944172936823820426000935710499250418548776333367405322338492784221849225752035216218508309597991283043580075139486471681986465661270815475161054896435182790824877194660550245828451668693044643775239256031914981139906863026327301281734936854263290663200386226825027200716038133874649328901902493033448662012130248295638279895383239659658839522204921220518162406309206262428382548460459678109661069096823220382711855060369573759781415354559756284207645213556129215828993871699193789457692973953784510264963004069614298197173859578077176240302532927816201303285734225616913982716888711706395762693383678470936481842480426578962309711005670109129070610476528723737151333166993511202070008130496487008612576031929354538133083766343932488219877856438122824505961196547873917149395011919963570132218686269976792888477189089066744326497064387174614346835909047213918978218911117590442419880173261475275535065135612195326430819924653691512676835410071530063991891828102383074741691526703354351250598451848848538012090498502850429425806869116255206941088343914647582132799851520514754307385669709921189842097318490289234008175739318995498268638927658401666825659929450115129383852587003387831827872870388194482288851881685794875634808845909840628678987518261000572455007277978319853737898290317780038049109336730970213141903403551453090331702001762549370322023244816357472090604566241741666528254128399781883299512674432503280136156819075565539697641377143798606123147034316327215809551971484121423126496469481416847177170241095573136000569543230227411362082757099523018736876152910448485915619799352292709952412591865807098896981171336691007955444686622769423953406406766499464662294160238365497502125948620667504528308745010605057022791786500842237338816243448853902745080492418198977149629882348679807010977522484027745153771974153106760986498564013951377913763106087540929467559715137634897730555305981321300960900167839553041588867464763911026315527006306937948242890181855338298572391726997941845953383800916065810919754272131202856578850327038867340712076534069259887797073200119800202156455211860744302899635107121409293220268012447086368071909763063428994083633066404605206170790138704769492197236083295939334014267863802368744009323178060236814040543210743313614956610742691623729723765101660760989875872746965325738318141154887303896506841062089274854145150848243558291221480805246599663721618907903946947220847601021090592121754637016925987820064452632452558852195964753994274938107751469689811089400770970460690397207198873043207566904103764251471457670352202105890414630842741125697545388102019639859013389815290231255303860806247162506963113553525480114112673422411002974690000445452266962933807675608436523916204996351044068001360748238242642127949958243692356856864312616254858787288269272610964425361016857172945345134074192102991823711752650325631796826844511180832393617697975750138989233669877509367910029283139532543344326865538096651221556312057401417780863140934708702906111890461186648493970702103711861157905691152398406331987349736535382722253044144491924774158749549546481556224998855596039535460091702319387828957734902897986408911468913104363715827131882018176964508050597893520071355620357078162998809557872653888149636849817663212988188222680521925313539573912319767512559952494801179060659094050972063937335683747917045400956529408885003425919711329794021883651505379077116274153352858940168988385614074028931327648276920861669913252561924165407299479006565599900902434501001135780942730452691904968672569778392035347523686547674035930634521730902422182295397403807336267950990622106141705360863598324001525128508333351794686149936846860781823172483827833313629691757933992035637179291299427565430441520190062201619934635003639337521214746232805983673037424896693919362992941007060270887384355786142550113666696979330909656930292626168382064901391409015456826214454740017362214021302359830653676196749510214242169000907554760533727792229587371978081103429864227588945178175359323707995778944023935481801876217272343010854639345101454309341115564316892393362295500600637526082011513068869963771280330207628274626622617776286752557375332325346225086290514038891427169916097591994835496128185810573489135208793348407268613068738540024238356718574067992741415309107001506606709416763351947520770387243582712104958445602451260259777829988232298712171388524102731853594486898938205096484203381802916069266654348280972689827182482442776222596212397156651515999503104787221689764743010596866044342750630182651848411560985890973096707089075987621773320852734861650092455108368338604987391612481596233538983756652972053733558751617513087748946993900736799325189144906300901378800785182383575972591733691555569422571615779016156624352620360685436218589935897636323624709620738448333406047396929912780848539244409057331249839228037953347452623062951644908055644187332259623226903069590809740059596237773329066182435700002233829438086576356000112264133108110526254099855327289174587810174739828332038390831012490819180215330591531223629969182886803960953332037129048206215032941550260205315598528770017767204879535903728148045917694135192102923557060956955902944060311314415862873091780027998178350973351336031706788167945226200342930294789452185939170401021344006340071455179903195152835508925229959702177876922098725517071394743748107376525419914116026956878161772190230516032627433096078809817878866882048478284032413468511118957517049682030241583028012809196523446263049710467687317067577455207357695157947297214330132794952633293775769575903606552366555795548120203516509905185577061477543619216024383200271791571791576728189807568934917569029903806968073350828973849241646305514476204303296320708108281271139999729979663071551123385002237614988314646217011924513728957237941034465722779754524443945165862847989211830854763838522795881371367251289924372760035199405055102155100535476481760126750367227700204800047008674842785950627963403507493708608379458363168991229908173827135866699062850977230622764315715387176537867064383814211670514902491460066729707649106277046060597315215707500351534519414110498184199402109350806963455960955482383090482374642341900434756038978390362768603415384758898944702213408402229582195705092176452838840381739631906442060724676072342662121269476986282801513966765582246565503013232001095440232661564880253810518476730580572173501633070994422534605716262133566122514655965387583493708828563714650654939399739735418336234192062867000165186971528208171159875232750440404105027640374279163535893702335583938352693102653419169366558643054562018662759998926160767004468776203530739136371662137848925074632025234044900328436216601053744278795356359509498382553780674790668618958987273170692298160956298807418564725830647901263476985811976887008233218638663104489043728004326794055176248600108099435034896918264472778786311198580832042249817483328001537867135874464619469355058130481774299945284824641012094720783300083109436354361732024000272840520438992773181779812947460870030478158949191907775552683533949482725301526426309550307697779153955169110873109832145442334330582638230387413412949224295126128206341087295815535685763763891204458973722835753553702723790827753386788546082106825284618998135434442319666997808168487642430740141058738846722989969108031530360742793705328151349146818874766692197566235855447471979284499165699526765900785768052898112290400772895242777055592695181730506079533865283966270238510533432211484281589756808483243951196281259357051248259428882563911538329684278779907654957227585890225913632172488058137473487417215022347101949499278006776169728689023007409498106425165329180388016311674368726280244071477276189098083854214341652226418343308713576901556175595473316220341576699133634732759674996023382069752972065353350466220976712006372471198256938214961886020872117636605060066461997429304464348876318341063695624790439442114321516815863469643225473091075110986398303701252919471771792761126109267019981979784487764705141477234081578500580031424720778331357076889833936167851231905970352800496239459435632025064533191549931196940404868027759245889630695278295910103877159361967378223996378282752790168958972673854823507044655592355192855679278536312940902507803811240565670557835433692858385801527362623986113756763819236787186024487841012190832988591078505271859823914063936793631942810052891905821209715152900429910693904473573683848171717509772891483540974941003174477226608286789148410923523749364842105227243665940993686982346645019015523481741063452074470359110305460234910537064436586396025782037232663265506125274418481453628241641377856690586477434906113368034780362625214204259160861578391022124454222093714934810130481711542594424046799137000968022883848717055089425567626907292629231936533651419658747726536511598229060758529086605897584653017199210217757960078838384085336628025181858055656677250194066700432717296470342143679095321261575878582076210587408907967059057605544485654284864682453164698508986260717904974950448922806686618077343505928551728945741041317759221777204337958089505028564810581769990657191014856983838759360622287221282501360406241869689143881436419894704280607675402705276745411513371638636409349155551826596731343700789654192372268243716249380900136582085666805849780336803746972965014706248916982654193663128176253762391179399933016542374740008991729675681971908448123531928475982850712632120244260860321505802205777682358835713282359413851071571675375108269647615439378085280522472839943684539321687882623737572817871754323156652016020126901728331364096956665248793803028003976921367871670004847034798218061375129583402467707880088875159106166020777200362190922351168225571312401757388649470503305203044420153963680638652215949784288498388980948593355423943911181678675726334317920917138572414807009992948547575773417846997436039584875272053432134878502944806556516078895572467953039873944463784421478795337059102614853363573248584550261519175137425373868356245459285393035191457781761709205456471142205791339862767780092065249037441470527934611889556691058798474927554508730221770520412859984887844886442133670572938554081537079962735224456793339447656240795605096105441758053121765181371920248257765446953318169457684233358788194169563342300341400396025700173909724205961398357603092616532295765310817107468633792191086916326452266899890942582688265056178535036386899433281480583421334431060207533248073251392822992643707065536689317827957505543076077287352679303360229892370085871578318633940304462779899563457926815388059291581912673999678003841106614616158880539714429064726621249172010227946166499544146441580114139708965367510644720697110474157521916564365484957051470339882080843573461342083387252015109154172850863213600508234116765155193179684128103023873274416655903156409191589839049255204099079487621448311369229877176389098222521507258236885791993901808512437863482450063942193064375621152690666993070137778986258427282245022039154003510166625296669143703114044013122788051576145674359064778180714269474066698994934576565303809958073506832560279315631718163781384727387135168523197219184231705361378121652267408348831006351879912050586689835828181095080206865837428904953462762961855327223341750334463442823781442403227838576305889067413809579471999984108033088083221984011502069837379212538486003234188465490513912994676197436674613235189021687691696867813447463316630875870400874060569791611372362745374199554309500645976254543831104226220000932622057287316892246074979772204145019267328281996898329509242079945754524602184550467289709080493026353535622246206654928209360034664822901986166677748929059576298782224553226951700498932108255472977769493175909235918815935993419204171762286922612282356976612247129050744660097466229561714679327603259932492072990953156908064179384740287690893287294516269706080558648072539043116680401055139328118571701141557220519200602226048884658201443560892104927382135214979346797085206700283424676773935414315457503525066442686209776075618803908397332058023305268472326767683679934792915241354274926239629587857322953464772431952855119325017091025835062874576139791790554590447625156139008778024886256134600879651303121402948283612502083502481733813295361381835371279456557572978744961820447032593843506672369028015140957948823557486448078798776604435664843212706129437468483887088546042530000615936303118261157034081196739450389222297266397298746705716354258196510464860567331530664844566216991538067604557452198172839932650309271951398357320797044989757414644366621220071278204405009157906162494401302588986411694634308972034931794963622236872208219652469455384260536317940068529832331886034651736764542435793624785384941754117951846823250508731498928461468129865540680554086509199854259530312125661792168872786501311646829890469069111772971297323616282781010914879775184132929699837407665389620771678386107126086552192666577493736322747471912236807168833184566470899662814702300539574474178297252568561664876390946920139850850150709148691476602165969336866646635219153722173257178877374032494479800553685889810902967740959989067835723601260502170946645543211143114759831134030828903337488651809275213499182567966824057405568313206934373311611095451074045530565081320853332502350980903169734384026521904298828245969396594500468440964183466605242884411203918325437614360018164956297376933174917629181177990764890420363802392191249532279241033544277720484865534505902859754289046169684123111354001951521440242786268256810328076589447796545185198074220650098557965435173570117474038218336404927328915857426429535238566075223051422276480421660982063271334200740489838903908269460299323407152187700437689082239807280964974063752684709078341204248666589710921923860477041172968087894939096560552691298807259637386278143368965872599440634314964429004529119678490362768936193732215390684496845495987621476453440396077520177912181796654858190335162709775638684588141541106084625840823844815996711325765621527747535232987045138454844782389439585689539891469523020907762489818855907942003650451462125890465109509639196285307841221881023537981141145449925836939317790830895087080068515515394473336030518747931909318373175100690005554719083465868337050168689963333634906354688507537192222424441228317073096006436269248417693890901149286698666143629498776271177929663087961782278104977962499319476057703505957150644202489976724644380795353424779657662752137616073042848099733877030249677492875595536720312578560176400497721583771451834183076969702708465227322267195658063548929143617296247476471562932441145525074399773897004984371567318911982027614439266779985138114249894615902199795589443411667552343006670091115309425105557424008144596922887460748548269757648307738910580524727614323640986567939928575133821379907737907104565055644937598881038888003920705464574844228564615112096443714725697392464547802464510456459250516942748751484070086709612361128131510922093220907620665638666014720657189178623044224998076401531627752600400797511577424714115338219166909683589372223200685900918164304089349462727925075003939280650395777831442139787725338470777179541810868496758450056200783682236330475614183194401122675422810438581694534261647560413314431367488435552886697726480635532499434493849912672683410356636055546184144558459566086039931031620860687796693128503822927479676383629144868499708129293658484062179586837943209577767838658956171882033585802054839419809640061737232575115342860633758709469640548229086833597144675600647994490345516961726814823072087722211559161928187353132897971119590327643358341734417465931515602991300163168718534559746586110884785699203598624278698036454922946549534254560241021166824459583617397501441322599002993090300891667252258446505951174074836276123815488032281042875662100431149177457201289799927844738054935049379873628345231774989308561737946243582062374613196599538427516393029233759578622318734573842933290930810531917005756364004123409481509371337882875387470941493881557011114355876145113503681888136454372136245479138655862222296930518439204132901531313994935239912493164380577519509001277603597772326314058936301704625528928833211146383054823911384464912142114748176489201619213168288236158873426409272817351347773515621786892401070760230916811361893693502335304807670827562676316768345343988746419914444040013341425232031894733260537255872228968469794101398738590350364546289944492768586886754018984137234476199082720484703392213213431482528031071579946752137926501585058579958298877283822578720301306402689097488929363997819379796697663351248321379118314780964991829632461414339706146546803483241600749066125547981343838087195289742474747329337339249396091121696717550695028187690337861620949242854569852427931700104198343846092036406534607605904785878734167844334320667410652472762562749195306374186415502973332225523509589346828255957334646415723898091716911281795162601012891989885802821331016596581903353979683988051308477881460146722645128216234512501153016216362089328090389065160410817000490314583972350847887466380359466920222491439586011189353173713747352459496923570698776768174213745872657441864391618394265031233986192374010306525653928398170501941871976267878477077591300191257300179364264573231163246404796272605707449119514465716201974469806596382080495869453834326926053427257544049714852320700130223659910507957544167922615881230064183044022010331492710780446642014643605340857108202861041209085938265343760612423360262095028118218283335717963780805545887506233997569954609604250545050394049694800322950093251414469573290580553087801113569019635430831155475894636470552678988601623342979145842823101198793316888289422980566561362509653404700334307926022152093648353157721497201802689017293442849181245714151029600944614667831799953707039261747634061750425727787884834377580647237224256391057331361414936157351505647286061947190363116544517183816167591192506528444872915134787930601625239474209705145218957559151801890099295031349742497562909173337594640963435426090427436695126206256981459223489530131302411554474336696105395099700108409824645853692287109862856630181126613687467321446852346479548935404850290706025370586179794413005191892288487972767550677323994711444237338146326945632977765962646297090862263604821865003571304753928160352332008901525337332469977851223352185823606516268165634885809542448016812923356148484768556474096447029466097847752442810810461779394423230647063006345598798474617541694034430682933881874942295932366015879456636699695279813036370171211658286615325343494101874483072105431972758732235717390428065200629221015371226294792456770162395808152620274035893967238901765534142489821137623187013641718692869600042037656059383503519976225312959298701068170869116830914791480101419451932686872123382248059558212636624351192290768599435053716297278225645558933913695802398233841982058066128802519479441753716887482085082632112707989346077546826566927164659766788603871034354858505162090682330249040947214322412956575668692352604219554623965865379552053092857838717907035216331165232605731102607183828416681044857295524705264515028198132513657678288602835412592151841595041779504030528290449753003299179650728507470730323703075837701920059469049120674884829468268810273084656775029780983728582841548630713876941620876882382302264407386979196639885322024633510827768740049853350257883905942812337554302145150376572325930046633314338870570614697183943815445213845767745935540539217037745244989578566717076309481532301558539791201689296000349693383471353832516030448938061770394144145324924663487686262039715513011750700889517655761427963349309899761490626229314965879032292864271028188975600333947152833974844630704827504898551987744638895484929867385625619082533603405679448069714585051696304635364794174303831609824720671003509150697996537035750889525537723795022430394588932080238336553029649765355937817400357356434821895619350103400204480560370802603898787269226555723969233155374551176077162128169740654827888532970548602799423864911447408793093654090405230826969930047553004512210843776341919049229309056669955225361078179978728272292223732005268585373933391374816228453286337147121561071870858208690558373668142383831400139492674783551323784543682994661756571938100474278681849071853437365116053903305492347044026394286994873265485890007094471980508030673026144879633122513210875684198054038265689345556260617159526889673038746190074611233996374348755209683578715797759185898817264338941657491056357823548097377952882642525327783799605344050866926276030483228296411336891150497382032232860678085056204738226298290472748343081031437063255304009325154494975354002699070536365146664129263734937919071628878256653812881344163502530146257694981699049913231309011673519992672528679622469814446404407734430129986467145886049615598939727043280951533596518060010279072580419618752787909180333358089998957015233320520131269174592555674482773159594406438107053018389844586921586223166116247080591467283115360810694906593470575008040553385850320152942924695649431267182506163945022829842835904746319345793713949399309714019064657010004261537795454898631340129322124147160019718833714941388994596486872519732875055512313485940621431102572973235934141826639902729256297091212834728962300273981993184949351610328898626903524717867004793556942414174047304198287031357847299433345701765497145535455858187430463984988089980062651989635259500096094186512858687959165687486601762418228061363007219297953698765504872164507957247237768552554344605427861572653019709759429860716481274880275402523667775386874209287814024390040698001412597012955382539573893216491816744208222435779706955153716860085031616346101890751793240708122845342761237173724839855699627427884740023414285645094196703991910554157263318532188737000046066505126929190143621640788925930983422572419593383591555747918828617048174057083583745058257431230096281505675480658990324129135450687251141573177321382438527123646907792923762515123538789428030885884084470633202507684205376138079050578922433118934984549759391465229240032548268596063654077951514429314537655200904804357427605251415898088528238235982914067988831070287987435082127803640304359383842591758760262991948994635540030376578418233306931126164080105336351498587207910390314848095409601693713322073370451205711136727585567017627137282079329155275680611999945401923281464599940279127611895498904273880238729213682647583467365295473973211246329362021004024877893360169096460469408540217937713199020178914517525423605346369080609398747514359226919532167886907261005525131368239375165959566480373114871132312805045162924523514107516739648737866773225791340910709305434208417659036296574896138111532083392807815293554858802847960373977872068729223691810439194599824428059789261013593483086746690638945377232539403148232544793472873026611554729251067530390076338036480036295446259377938524368478306661517407282057010644606054187247783241000160943820616569388037158525097554420185674611866850668152953597221065321350807368158605384685686471581406087935555271470341865223072834906975197478178761944306155789494369111122689193140061590949108479161486192221810991203086108686504194686407649702525840574321175871593558825184271901423215161199311024035784903531735372684871095263673896642459585454651247792792127065372401455883433598961277594640533918764425346673535237772996919535938145994024578447054047464602794510293580555129945890580195474420392384132538466499240357935149508261575788111688720240175407863869913412767393871831477333379276658284641150845078319461844044028784377550639110229855229396859753233744471634058492830539478516694939352929794796839206160742816163239690720917561967708984058109954243425420018348600018772703637405913763735339155931963831906093479062653114329819960548706720483464854184119992787582197664943817324700361930088045220098790999519481009495946510963286404854540100804612113684506804682299816328491500761917368588734861418814251896246405305665163306986162556402046178003226962853665341775697507007886007675078384294319881651149586254188594381409588647180523474528786135998211912797563059288141239009204550402937456861323390315183907555594123550406160771631497455953657773901563488709554037607380323289085940018202668835308311239473521201779525954539823024315429339094145447859902465469671038376616606054260766300640612017904292800337134737466169611301280841744842475566836960494559347572987587527754719431719288211233062892532093966014806175574690718933634599574300083702041522342397199358032776714931241828807390045603912608555555370041071368486494199686546992054514526308139789493708766972894059692883593065219698537370888364835526706048597211067787770877885703449273574457888084794357508465046285590859826303756560877746155628613344602940236793929234949631223446212421920518120382164088064102870558678259736761505065736249040680273743281627331690908026521480391911913254721632411281702902155364508537417414551130138451245129013126611869825348884182415668894429396402986231705808165864050757049409675577531653550510767308526226487384061515619456653486993445126050363124391751882185934430117625263398498227969964202067756551813584262188865819141785571432908670146869628804416551202920194721239587870992060679862410924055050411720014669154671521485631847215351715474242203610431959716679217009946900412024140403088693157140320803573828526985476191481173708805001783418842317183619828629890878630183482147986866412772339877456289858275361275993296087979289161551675395247865299136777154831255587389322326584656655566847903435574203206172648108528877654592444652134312479714490100140894151130325960576099987123545206597950768778377500684539676067912379471598914013462896154458815590061045321989135007660880011152012035901127544925220109265378529294282406998371475434904860222066200840644965362894532936628735432356881266342247977960747650585184479838970501694558234106449935578031968224463784438771045744101509699646021608718471712036119984616239535256556777357548869875182306076227349600974029667729715548077163083271345291293791778387533765813270249408077701730762120627484982514183260758325463141229701211667976092729593277337948271786535781374443698796642338293203287360372457296832515738234597698859560266607763974827718342782013593044734063670793494345111976058544700561187293290810415230690123405132294237555232676768203549146185896683865140457349544737718098914285937152573386432136524323447395952275337732893225724213601011263396865643293193739935481712204530732449475242918362423247844027338563543952672075265428986506230038739112327297610475694561090693414748624677517856868129958389333363258446625181965804384323901041069360625144820360314044618487789822903242615074882851006460016127505476901496113678556653913721190075917076338117879983613005717844253345788218914225563244477573230908957413434712180676945850146286518186383068470231145135711248367909694441628886772053396255745276423734097645089828278523808072532071138046068166330184036765107262551314828994012241262918401930937195380974229789332541501647501879115807239997074133695591681893619369811095142581842744027186086563060006184315613849078428927225315986559633077433000136620162222993037683934126348007061022470909804186083754724300409543467323012758932904187513377798626129736579746159531687041478931820518435485058518658348880375864990923980483882672105286825638653682863297126700822167630933046056936957488802853042055846777655019484983641421958771802767840581790910772548209911310003720980144096172835443876215727680123742115206183297153673378625914653098930106355473267426954650530554037759940358680869875752780551277207742065440507666520850817330632576110096601725286375118574921295612481180338391320045116561659294094555230584592212072757720248985978379584132456309901417481430693634233930840981830178070630358589008004608838445719257719954717865407863709967287036412767092906400184723656253519977975104398241626657860594354396946512293797736308956277526889486502941955675071727550354426701456478458111478086874862617162894463291713609263493654468440981939501091154648222323914288740525109885534322745208641169116281099518061792629648920850919881624527146805937048939379902098364547011126410161646069464373500781021278161830525195041517352156740538881542226083082473583163408109094157609486683895406376437603207386200869200591996709686651454601360319678305529916216908266297856461029819246022257316747278303182750954034384304502997120185978567302512414310029812109651605873067200093856355923684680210377216616813450069694025672806862558654147685789227361800621512627509875102046516045656377528005814568272809214966367985652061913181929711116633358625020479193685837907502062632019474326465232968374456930338404043293000826484645873853855324314690395661014801101404876749424955976639093887983135656133927296965330781440544484315770374349422100105231318883880335230500879951002150490163782566665459544723287353290933968918651355975263930095729160324247667897298683759094129147941809125912553950715250602589187926470070590416958487175221230296964372075235852160221128246446026510267016737540256521691048600449045772627043002894211890063428489897131386383979665779928675089126151725149640943251782347598174848114553855702920170261130062710502512133099273960349975844589053141270631445233819604467445395007447610613650152558632371637353464631184968202649096974118990941161639066772224505605782691668076426821832288425720959183409132168556546658528861967602285013294000435369920697008343096828342368420340975752804679224696203059187271911045580990198036714207387285778880002630772401033734608739885216817835333949830694657735255840401375695395444874485153699997934677327954888030773927026194315299570449108187026871828849310818772054778982235122435324848873517145011705906238683234973468883989604088710716377473456823042169556504216269589630719555888518806539972016866368503548420590968935991154112776156569159709453882928959450590725172806327171191407352392991702480097700370898726023682429690955948353418690364763570281420700316742550178577029850736705464871893737328496597564853962880775759696091499225012192536083285150362176822381169045324717002851331993757522732322151098461832267018889391851667535265499420694543890899447344360694491370827332366799414973840876152209976858376065876399045393864701588262719623024461088537434495697587521510604505250708076344776070581274800732584909349260046841010434671176913390578620460253653763949632043802324360575778981795052623192003280646290939025719136727974774172147518631280211415340842573199458282390242931570893019769792886508844409654469528200027573538430367889339008900806063110010582516042766326484571091301695615773871321467773691270552974113818433401780297181066802130436751336764674308864545990726944200681064972482296483018472747231501459795439681829581809976168341932814910007188185544700777350546417732141110643153188006957452207543657164804919860470380900007087647180364684248768960843478444818518297743163132021616628615089500601700047178857303423268480671392221914358460081840697760677580123240848060398246178702696206031831300953889165276407157871399548607454140559131306134128045518170927499339778703608848324115324224997255563011348506047973750759401965889663255522211876240153342076438238288379912686727775887977282954132064791332846391816893300043068492160630295390480652915296181962750680572221256969018324163947377417235491471524105576703062454491403790905558307004658421752434504304754952495184120863066633337665663161457448282817978724759269029440544317945905223839736784725654107262535208449562014218296837347139048930020083132566022897163950006043120867316353078038633741701411869597982672202229057315200301870986490932720177842585626609900602852514558851593108409179341324427910494836098652783299089812661809975186092570661533555674382158930457961525942197008784991127283683175291711723526607114066790507407798668182687323365514705534422756503447196949337142347566927903566829829126305653609660957757382078458960692977327578592128159003525744626356736667887222943110572570331931076296885084762666669268051768641090452408354921027910823070551884217083402755975345779009877152019543547210484724081236997530410011598506722645701836023881630290191044540077657578950438280745077130933349227948706033947184757925772777615448845886032239605744376344392838391239275142908774860259997889281919688461893503076380707807642169538185877663001074549230223908920089602698025656151276741974707866417007291521187236718814979809720688035921327123197591854005505257735652736151456379507460718993689011307691763379995386403516023348300593768793468737180539638292018375353686367350454045220086005294249278188366945391362509207903356350967515228729753318704110294071743664221153592490757759495029937722652307278606019813201980405091206609610864258753300613631892850040790780499449614140071489219825603767963707496492051106387299607907454891460209293315055624081173892419186182372265853491372925307219069597139437347871256219782018918387472725239153621953028539161056653675811346339186272959284521298418560461566613309939478196873118879129469978861739803037985414542791428940477613532060632900569401331410719153816096279364898387127531409853837200942941568271350132404338471425124578605026543596805293229742056867358821820403421818923819892672078749028926640507811043095301088321261385649963633073554632681356956964457783450708976206225328794553832135849517215337540064510161255953190934617794204869146286176730192678237818561936453576912634596004507194921954146493880048932509305795105997778367988717910032851926622179066429523903185098774005048309980856215459013440186343285625764704286912072616401526683140809772287822460338752272182744840816867378537397923256818764470296071509133801875336650762317664465937925739770828634506402553833559227175222114437304034289872171090516350007212393624759762658997475566242687697972901035284446546058527269380386767052247488287592627393909135760999063011519287382247518720365629667139951782712432989053668491044116164558096056467742870316630802260447190581224976027303060091487905996462883906887228199732179663411299298412130723623861838804871904900658928218114085406800020338180143349909396025573392554566247708690756935855440056224440167155777185778904933015099916782984864659689742661870612682172750943139444686145789189813120766661620972517086891518207690722490083396299378057888777555972956269946179674606925147365004543140816323919962017469062832548425728677207546647690780617856468028108538034287465410075233287770135588061369059166994895395225467556372703817151202102976975638107801648189990882944181330667509822068398880192099155735656691522413929265813794536058424054346382970850330809540913132722135879833216706593506406977019367797220205240248087348270885177749575510210736480957288284917554563327767501039018655166766620200696640649556638701417960304071025757557384903241599230451653914689866942723775824398380496645942836925331712592048465788825850386436468086328349940743715836512428219291697044340744885438820258859892288435588828241388750033055944449065877747673570121688360162882964098598079923895321170324063713733481080015739911520873835506798382613952764549423354716931765580390951340343739622586051618238909625082662748461507997328360417176723318983603654604995380081264332581427452693498007565222303277823291244052130434771870202923856225422984408467822087029688393886713917989821371142516871007096766899753158323873105384859914675443404176557462842328880442655607606205070026162349766534909565679831416732506097502836074495407145722939507039699288085559433422901734032493622859762095691366932823961290223822772242393220142779998736397134049668901522738947555896031427259073813656595914750953254191252213462730777736504965441491483623701290096846014797893291560894388118702910062529966382988712628798665085192451316717140473289583049763339898484060240850746826959975638797734642807883933391623124104676260672009377675167774069998459057521750197672753382201740806029495546365295311319610907994943614900651081763228531736407668050316818741342482812439239652196071570524230331753043061817459471416595735405548035104885948439196572814924526838661902513165858191499749172360349662440165322949638233259637703415200413457736661764618059252628296342854893055028126954263956517027171340971207211831703409299303633515573568090074582026656635696449098550512555170201059997712120828967223328815456290472721215833058263216407139660779487953413781224002021025156141224559728747182399300269163109734204670256265899096127547821802427219543849226143543229914474765551366911851999537552751161519004514697918826951905897665400037295280704807897446406625408629090773564561078230141765173845744990870396822470356932655596460900262801569190409310731270267891084042190322748112238047217808730496198382283083647989839189982310195395654426156121864708720377844920371709789094373563795401837937696991818294024025136031263153089939983934685369903847123593530194785716518963996560770932438666309109831229868365713880237852484837839326222385111605715221379903800423040366824010046603412558158110543854644704620021274202931983983395887986704036669514251267921663540383302954056489971325333926064477532204595555108197675093887246548962527250287244264677464623945923407988776554663612492868406191688161515131314973864871353329025815218369499712153198108741950607471766373967200966061547975935648309010046564643040508251138339618593671678833418944309071802036856622825641980082157773627181771275005757770450081186123074393822201283088326831241078518071024143796775664067783446029557252378059988308664841921211588490933581118925081561929183736802619599062591673114078059467439739064276801745584914341276694327968352696773695855842149561870073652463180520894111077288849137929763682552597478446833118121787057877361377897834628048432678322838237875512816561701856296797449952581957359160393575086352712111196514722468763383350051310595068647997024740826767320505596750005696945689763455801467087520650185106695279242917797850174538565451542907296752909696436513838989029572125679372769438616601239139275230907087352635364677217207303782388230198778820793790342994604681887260735865141450453000269112191750716429776119312638815790042147513106633517318334981459304890474285890886146919728035966058958740276476790824751536118915616312847269770581197510565653024510539110251877966442787161820679717566185762927466010548054540659084656333803536574478899721972141545711646751778879155675384523392756220207198290548849160644473811621667492609562229451075718254400140473274401578738213873173359697444557230479157700844089539762843940422468117464508582005045434287180335621639715504969520046548560078033907702109305511613321063396509484456378047732417276979855516235518701382855109275047620540154433363888953419345962015251838144582301947886352159440631987750545861472822944239834938608908677260590058533179607227571259465935578583528493599414645879381128051422107561176424087282182701366175477108617519882388423606175406586014557917608998129845458549390699044869611611796617380991868430046585542701521817251090632978083967199176355201326456198633272279931084174649934581870685774813702935685479021386711128722988970368601663540146285366260997139357605680349999651516090934751664471192012942143047390513033914451126288153131419355819747229931816416205589595289047849851235358103143428716273449132155772639415716738343513366284638771013910905609779238377454562002994427708774239889901547890401449012223456459280560728428759060646122978307060244081225553960856205460475122871734504257869994654613763681850934157232730392584533985921609492076194377033437465946696038236729500517076180298337826964053339154495553247303932315329461040289185505802165134542995492389400516870616149432210190306696023059235912144051107833492356821405546430211431197181447779215503654852378949715673567053183180627959670122042985557038530436388109543953834763800824116291629548793186113119545103570962885917599863804188494856388674403718896774655915891275183047291532657111569897215526482188781092219361775596083589979926848207870721959365940504014729313002831162047352259186474812160873455049137760271150852052740335044333032852479760835123283774089606160325922959301551437972748992439861816567917267450152622904619344724927744291451344825587484549490023292047601245445145669304727095206611813061569438417161105456403283397935168021667688145812587837231407687932639298017828209135947433915000293457966441710795008974194386014015386149392408684027943383038793618999190597678412031314825342360504324318242112190566745282546919254333090073398650857801184560482562648060539212392887453725365231485560386819970692085380098558767540187508999088417569463293420489846749270453070725912086433659144415799382535670923939206408312208020638047771218035646986051521121385447264241653370310577224742347258449506393380613811404291256639724264212176694087294530956477625988939307460115525325005614464866249735637015966773649982382349938867873473103752828484126912275945967695610818910780738583207064091191566513275607647633370981483195494517503285004948500737446185450761149441445859859392262688718698428476650011141265278314404790299868960582776290661142967703941570561182345980437767823489498823679287907143139814424267379899085013966339017400724439974709324160196021432254548231330017542745928902673790642235637634033658764432804615663711383106724277912911577574745151705181867225662945821654686809362295086862862465069625171451467074423528270661112850083150318595921227907092436060307701608410641719604651054318456513108367843355233827368800224449466107215529280890595221470075336338124469208611882461276233486178999634079143470528062749970675342982746976002719565595978363953254166737538816537069716240887374271076624934541028083866778579162448376725472868537106371825349273308723667787338394976246728079781630704528073999043892005013208063891081187530580580225631794167665447456669539479079120984693775973960182982911988221539604447064251884470189509224163815774319380326123228179689431782717876523662945872201002830190935111651120787851696661589502846213527631335842817034415276186055690570455570170102763826381329736086774533742942028627539887617192375938450043615376625462458271489875413128428617085664420353988680034727026325821466335029177197928102036168487434147306495002934202040389474975327806138914259183899109689080358638947223524671153183612044168461912208546846674892374329848665466225509700978945732941972983330798425440354481046290921206323928025681751219373913502303240006395529646642957140503456420949381917436760099295241161579481924479089922257364170565596864936212035297280198590413417756217099256754768591054276289432669257584457800964341669796889516907457108115850603794153402572631301988264885685175343191869671898401831093000251625801060364612438156347541277722030112253658405684208911012426683317979649326751105045456181467691812507880782280168928070016711530058707392779620069825792590939560783717385780732757554834626989382563786363729840242301119520424222703621898757895527277965033099366712383920344942421613674974850756264592960128917344222746497538386267104031331234817809158376797843230129056510417266064935122268794213698710938524199018944918434117351256256241766869595150162723952681361896114080805246548609745851311912706503095726628807135836689332360584056770695623205833487796580327679481888221645861214991886408905754362405079064826285921029965625487280155993006110238094579832473976323175525461985353156097953521325548473562685652642056758381293847592703978203949021030143458149484739505369702336338150840049420764152737863675359216022774516986448725147435608432092220483332805169352003942589075643718586818829124206730519487468707794959949632059763178441916930663523658150715455834518984847248383278396130474352457067089555309541011137638979418716150257510189924070670516191822899415286735383691709770529347342835643876428793352301171267058261151534890920371264138468062800020323341408660705214820048934355953840537971792035868074715966295336753825343848271965690735880623542878950749673491403455992146355859523782832677494619183693554736679322362515150027564453010615502012051749722326178852489324118557207353988511067025244654293557894301008990642073393079268886640666667151353254007352892808024716614594246824906724396309787516523846665062460655906983180245753135548345832592002113876197979017818253595284170428591273698275315951959418486958254025464546751456739075997167100356551284525031846997715089552897958797426375405522718644615600873554632241101486994150746214795781393014117246474120766912974211686728329583856618472352239815487920339341305646442013379928046876191226900202264972552302176314726246748457945417182816949867376549493396199649225886851350169780480424868317774562015238279864632780231945419418593680863315701874844304089381341826154490386482818996992248202116011285429562517723668598275530906340197675869673882184525826935827367499338714562667945466147332214561666094390172872673318432190283666094549261282443941041237099669714227586970492756959496103031352865439979765914189506649506421412220362589645560341046566406326875793694182315120834959761470620055981210843396957041745747564187174870770970643224901104689350039487534652783765009472493516671507903641773135472319576588524560864880338177482139468271458421842986436558702023854378839631790114157027425354465745524873626950759401499879299374008290729413017709065538050796955103510576776190476130544741116986567427617553794847043750670604639004033778969632770907110924385520516557401827367033101271954820781874511812208273396169040985207040104813071770188809754758493870224252407977414729895012033150655346215262296540498095131214779944946459948594056258478082790085013122537648786630576618580629027778963736354480451754795065153847605166086869420351491011486936483070238893907317448676641551516142039901234249782895737357534512088066852272034841308662154593787624907407475756292285782476950174388306593023676835765516135093938315114774025183915864379114429136021478401780044405708820101676964980978182067854663193887677144879414070823545444964742395967547972616195234139382119301148861697529236279720030744107763822057813745252519840071062350026166182547337603615591440881448797547105588798245936435187297575705108533906217459547023552775534027194619548763457393109948168811338129548957483024923801301465525135654549392096583822238093935815203210187663778660605322080692989048821680494844068054771217109714560144850309957768466775555744920187639091488342576024866185773983622051446802044443538228784830525898182251944531667687447661245413931153460698522720586982640379440222707720260575062725728821094430134412068808116472166538054530958727305337024116597633146952041310077630234132606894224731530722717194294499728497503091945558004816892173143367464612007399213083008226846814400119824444404759206576506198184214478154269897693714925670115510688810274879852807144199904513690664554978271925751410232337453510626300475046358169083086185824828940443748444130522067856710957017932830991900520699631693988401568624650796901793832441923831692274792397862513496048917369595968151665380934124368616591890620037637300319627011656742224848038662132806352604892606784670078115531371811762075937755978686837231825734350927905032808154868071307780308020751342848057022759217938622124093832029985848396693646907120830663268040536201130877413073808506764576561524693236273998440445333683961683669583769068451206092344686991330569841411010587679507911238068514201231158110534745655778582484962919829096527969854994028388565062578682295505573740540497417127422320501859256387544223194059278331639252780519939280994630553220886600583513689568632178516511738273553593557694740565705071738356322694013674355162393403557648493294436945025759748775444032862511168215791305256527336480194057796419304488721964613310618329322695033636616220770962663482848116426610484754277977017830087732334545437424784064351594108000448652723280479972340512166163787003973437874879476194991754411329486658453790987214051232080004330920714523608298508651469267349417960438530669527870821136706137320648557157737485098526039076783369489798289557371869676690274200495585592043114052278009246302464619348568283913540817262777506575453975247125531558227156178356954229040500907583856944591040734727927497371605237385910950773117771841989917627109017557684791389509624870362174532966553750314253727889364034886871840967078997790950079811769803333488590100344945325078619235894378324113540928622620542969765046478523349929142160521314900132586991044402375371593726565301868509016024069737056297937908702930064320026882769832848372672863978455381403768772624314054180212060546454961622715453309684449975931453164372655422899455069216630843485145059628474391713678975353937416831165485139431513247909951603640311744599570545559507947304107553729945305744190612398789349386786702235944658713329729963137691566867755815947367260099564123737059244008370697865209669214689068563522579542472395736759449651781286542484336740258275027950671698392264948605185409612152946574651073361300613311552782199276071274506060196257038058870927949158178093010188236599791252850573424722656818497295425870856049874241094474788369776567157871146069229130030759842959199368062186112910943265090034180846806454231164533750561829961018254156936671437081580525774806644479219879729795174773025094437645121145197272640989124063808754053635398799141381964825927060207176904504729841528668595382678948680775694558541695943752278725206420521804074885757472981447124780906358116532287903887329188008303476028822365632790839667181034853483267451291164002236018805156442540392606923701441836608958751112741379437697491718879384287029004487852151418071327006066777103625468695256641641334432604405825592403234325334318397390410536014551755562320307215396961914494499822500158830534116986727187998631598658963551542396834865002066964209611854357853761268986314998874356367816525098046070003372287104667866585892320477388707867955416884210022454275492016364815645624121744142934942904157709327199827933138131548735623672828203498348474569410179219567754933496336207760176930252863372285200936713944981430556143921296763042408802350308273383888319963983996495295238424945894531185837859493394164292216174680613646547897190928493809599381566063621439397338402704613246608431539208389264203740954103030558069871819165622611572203543914231298230636634384596676216027992733117199654281498150865249613101744204237267880705693292913915500297134093631175648441044729606115230230246963080789065723942544948805928758388780026366035719083070408266070478384805838101775920808168329058757207562788615290745524524829967836446762217734005233485236652701176963157615693902432989036114070914652203376718361958941250998053681439515627527934624628608231738886054906148290239040486767269255452051530636827008676751733960621943832703067207290627610032613077590806058227513268479950380509964579504898115226545493853251405808793872693295809362387154645327958688750263761511756579445945294631943660823347451118690082589977338447751083415805383704737510544654881242375728589381826661557039580641555923239934744754241889175217766666176034333703043313935420271515612987876435681800069897687209894494011515732946371214681131063904106641698651341227784880284973397111101470347380552352825952578610994776748879216500257850783547323963345399789638805716110237425382606701362719961111359094258061287376493393607384243553872419771531947520711639410250492993871017833314628847764842389070216531299178346881746304773266631137727506366286617116609835511914601414124616031250651607940504232036458924189727819788240535344866940902524640395936421160259918525376620070066158026597198550522999214879012763376130947603072984199583327665439244622720375724111290602525081651495784946851937192946426565948168367289678692149358503839205478215234411531843709906743802010240454997899033262718854876118964095400484414822922179919485727144153404201965944646838539452278035995423201830366847752386782351093927473352997295023280857228852340783050400416776226145102690838275705107764796905768693008848892984442454313927032481996139439596254237764061520404675003744221195273298491814405099524605186788271904184951766846601512450919757637150879413224430152796672678380934680128809793542521503420083191877333642986153770600268780354302860271827160009454527037089006566678543061347720521415622489159508887527613024825333991985687778902358083657384879833596305773409979194762267244039325739657918222365136531063323753170064094422894472076514105273343057806490289347625253889904192376589137949958109135586559637033260810493285674969017586806958208014989892727816796025150970660961130982129573262816295405695200815827983491844765280148211332227395663832381549783754549750225665217616587175654542255211184223761847253273409824077592109098196705202446787668103252298197637767090008848752785157390383646665598501843713786874527839781922512772370063159370436861459647290150503257680934999414604844038200620340509242096425928487249069784826642932986003586235336055775030942001572108145829758914933523756092453994404976392007472266279011487874383907444580545782422291090913574270399536722183864332256506718232057899555052701171624530237231537418839565502076133494584028396454927523347078975032726196249725565706024604526850293173063626675781902891029926131672634787926271933359964075702511217602674935078666401944739499257515659481002285052989167654315633718775246799840853756195841968708903412144240296281355451666373562457866819658015014750228888929321758822668828895907417620856778991128357801194500366738350643966645042376906006962074800469286577135846206253264060628458495373291620788054577974322759025073854973975964787600084671342104449720487610300486274147114381930877826120059610001281584291937974012305745816444634921489079035810899770440906254733328305733916765990176724755317758422086026813690637694492243297770246560791634679730717512057420723977331591753688956933111397480840518188284616388163026840527457747740778679400757995344645360012800338022117923334225665369712790508531501567102058937319812516607832829587621988027201692011443693479766928902137652351073302037602207896574710550730068363966256404810632385705889010300714085259266042686150970060465070381438235651290486632197852988526724208773263938505608004303089827624826126799121955700085080829085991327342440503395226358700978028926041993073661733163711170985860530134541516303923549614355768778228104527013924154088793850198700935550996284073683247769392451504012963793556786874242851131487499547279697095342065803819547076490332740531802725592714927985614061299323455811539897321606668963596250945603507259609956342538997926723452402759267540532661237258723953515380015079408591972616712033720761640990416778910755710498270477443159400668901855607032396146418089684831299252063861657131886988232518722792133005804962948337939183413869906883498399258225165719238612738621401383434370163125194362156572034878127735890326586079620474000736274612337193052800728512396263806572752341618083123545646112501881097317869781019294046683476987477019127511402814622082992567887781958041882585830723572440847907659075288618927962404643142672720740766020760695646039905949608619809889797298398187472227319059990662873423430163422308283672870509249041302328121890219945787756231424651374689640272917679454564626417651107614343926569300512698769573643980037370896143165813953552523864079325036328281695196618376390995829382143631962365672683912890078382683922561647960501918145059862438800393088906328648827475246912111599661403924375956983575991101032925033822669985198785228334758422044763195292809669346664210580751086492548040036424690946185274093949853192419059912034017170942803228851406926438579664804587143999578276504785734831528804348276361581315300569124441366277780936467993670134441223239136515864645783307163222901832074322545412920745801553674021321516300501881720270747407296762587172190613999690507621912738121641298346149909513375817437545430663695664942664132009100113794614538260156282282703952649609290038730756616081129705878661612988766596279078042016282060284533857500674835809843712602469859639871110150165139848857927193264850339169414752679596463604140083199201869663622080751379775301912488117960881986567635947256025857338104361216121356023225651298523996374241391708290219790011970608225795348388318835572602474796881165773962013640163193437141207797999900506872385343566717136367627095189023975413399396776153150271273707282390150785988566147361071319938205400720210200565904835345141852598441116040986572476827852068583612843787178106262081266002135580670156337025026185352545757361078908942844208702296764821379464202463730779375838431937841429533583053314553084010921447604080416838569949581410537321239703507328080192353247533394985961364946597429087279247457561124551080558706437628499083522571339357254937984218889831656054548377447654102921850699417257251930235262951604930020423973626722399341733667531102765395323279731935938188191121498372097519228819890204253218989240792113183317557644347659317571571737819412891726358708426376127415505991117351200939243315563249789674205069226128375936712555503648326402469048345024342215382813421164346953940136275268358689393319286132674369260660384503929032042509130840177274398365372568434509125499832767995926204521618558638600624114755010336784707200590813604909841598218194554500493300348483137413123523220607814977069051919378147004300267619072392340155256805386116868220679246044489678051558989338700143001958925871882887145103256387891967217983569152433291359947000698575059635364340007533335527127769587672560349901852748915989427222252700824668082811666012307144551727075982023654896405548054366277120582783669271734814811251435685043983385888966807333331214042243422726253348887826779916348642317341871586144967187014435487138160023279334669307936308994961130706929904358239363849835789445210569001545484784504466804462505006746997912612065739297308457160304512351599703456286552751363665279545172539953491158752612739709211496254009718949066237679335188221472721264671377072527606257356013501161503120578489526426663273587594646242450479064288923846664392045955043420478405685754666866889115324402357690568595845116309426460741053002867875236026030350165463007727581952996111673149922055287884193310938267670800190240011232185160322270288867079236229102723206824365510902523571603003342540471863771999060401883585335615270069160939920741753909685723688407524118821298276604645818006762742242037872861128484221734594829888950563614734009065116606063121841275500576224021750927683866378513836453158174953401386175528833676864455666045738818143642038693891720609559044259569577081849748811336258540810802940148578966251966006818723801727419371047740984039294100851895714047372784394673814000491949430435569988922021698885412995492426766810377151805801768058098283643776981388767395194505557164348648743171684509954451588849670120907260580897694321727707633895581444349066975140506365948317402786447832495557100432566409663545005561846423243401664561343439185047500405475903128847716294016421624671807544112361170929121482356449888659915945755723507063599369174019337900875323189440243410129059562167615520627738908192649898109257867551985218659835248767264441561800789240684630936714086752216540455636224812172968716121756567915591328635964375573873053388603302889300531932467063645944416071011625558958867302339594455709407292719332337133329379459996083870901773264230535468751645877126840995871459209630567539087080591156870957032227716762585512015223889912478816554748532134812572464435753090810900117035623176885498898254660256676902662348673508382153834293070895794305255100412143799656627167201648996486727818974570501251852442488874413252918380292540009026612300518553820964667339681493076303661913356504356234194673022623767474088953536404232499356947032850858952586666368265834181777310354620019354601313266274116224445979699029134392537739211903266164421624269816836248012436250329885340539121745073003626167933353314584216998042961289671255095424788327351369882687267527933790872883702219360181081727486740044471274727989002359572465831075652249741485503626464336241745759358577515491891697371795955037005779129942065701199155099621949849608321076167135510675169445528377712907546145189015482308100948358568651878928988047015285737011079510994819151106018966310513784533420398435483958361411818413891508483514937700035465710823752050478164353820476366788523895523957369158160324523611938410546027085176227088522431346096959824300726777012608135588547901753736586754030703909078287663335674065533544111783986692603398944884749302999196079439781040035283473700761385524090862313803638340369621583646705664752780771142446799417170128936552032677319839573051645619949141573671627375984820464523333352301097211752379430275808918007804984872571983784593971928650062495218568544356107258049855815192145346951720017530518213099159329318049981192265561312800405890511096847760231806928285155332498469770006995888668213754570971572695014273793380735788281680178021407819299101574366515542598458551296744918327949634085055310091854191973535103272727293532349940377246149668925692284504883357940690151234133834497651748365775789605366202528873236598613386607309480807108352907438341845183934214820406391805201682723684021102975206112536598103020487147075925997792581856272149895483453279598940395621394197827157848606897746425628959186661813958497132085497018551548867683698511967869490098263121113032375213855719225047387076688920388428875189128113034377850510190545860822858900484023462797793383511699183892916020375926215476756455419813200824648572032907218817300556964143036787021322057135447795260007493856142899037901627445618501493549364057513513851121178357794875202768718229163701466566147904756781650583403624345810724773969486114861066278861049714205494786389809299481808389803898450781600570694543378569430922537775667404628555495430955031062991809605426148849435560198330798394975084107646626091394016812879301954381718783009131322266728428399844913449709324378691179627397896015720693862812713369241728551240362213491618767974296111036476494384603242064495801495273944903954227703060698357070219794876119106802745052892433234926935314033067996139163919524221905105950170970864425151369647017638655493925244080383829756818338817417324079947942021403945286281402980137615308342502066480224960050766904315097883307039392631360605853276335556682735981585035225474496741800100653430754799278141568649487796884948397200759844453916306029068349135354665471284383010937462060176681648829442052102287201338516900084880642141596201732672918132615928849881425997284795770810564746029463472398386476644106493762804479124704237620719120205063354079886918368642915347585940739841737419259140461308639551546817789907639229826390160899384208195419244473996351236819621080232095115144084908284482846112944586224283481034195388408491732604314583213209213225844625707900550127916753222103691318373058241082013018243173685257148362626725429104911340812907424931114076897515923590288246179304704523767547868307753726587735798994131568125932238894424097605397419498721287378166435940359154134982740693043876055494040083509290206148881308874192517991819192966377713821187813516710948890900965623119494580054210176194202469792731312028906796938477143635640953061922783444781481103394632742831647485314249430867497499495713034642039677525837221878098318571805970552361276095224047286687167358606608451302686889962814718053852808109262440419830475264164393711361224577154668295794293339313028108652336763083145482298526780204874236176887933774164233150723734335162370354057869839332526200419179691706973689005443891839975657739039552742965088098666740912646746977241796698935707266697451604521890413256988824064840286666557696980403344165398212252186167745221931075929726049056654454036770267481789373025190619183556229823279800749316672390985432123081202978896701211192229035971670551835567228467951991673424894372860119041050287307378903707976943166021410123899897357407922005721693076167124062789160156729438161828878332840305386804779914599410812954040103528469424865021018138930827152537157517366095584790000493603191563587861737177964221413150287957588526428867684574694313933336010218127948433889175865373910416358327738529635857206392732481441179322670370021580972008627482609372631646240284197325345684239206837266384191357332688932246001256903544944345778496659574087412264071399472742554104277772940051510355503092993600562379283128841683485950989056341957277829066924163049788476236305844628165626191412374161477638729919328731724110885578333237517677549104813977333247819529306031661244865822389300778725813092207648885909864416045318174147728026244026210141120290683703051692391217816686426012200665475924921799526917420477577488626194107499154151776340878732991819183807204554940933152416050808301139010248692993057134433699225306428729235943318953259450060285583998114707171746880603759209854527115840070565621358118189259548292293181735246478368069142553406591943571185017180769945601485087624179060454989886198415189551673314713435031639062519839322005279400922716715715875866981230771548568966113340295011388330174821528999551528419878488449191180121200017289341588515787353098777785986092773102127070062754903149708918733051615018088593237354079801907203549422063759140184584649007000462215303034749816157420219589042130929363684721196713232422478093956804115517936766629168754899974419509467850754877171168274248434249568354081969897084145244465177021342387944227084856755111724704973546854209167640869785398620118404741797856433377209300445106892196142546212433384557231943469932681320931478058081994605420187581394988634618452534384684287834224863970610989338668856440671908551266400356862770189424266367601029785053612318582726594269185611743461469517505253025625088015039008924315225438912589339622881377557222283626282089904760537845684615604222187806484519688349147552265131209661181362976268916765159755409003310279899509259201651620732977488527907639923506733919267323032609070728508746254476368391465848046550106936764699353791584561866986469169468540059920372314835284876996786754349021650308672420362273709439807534761872323863455390275084618215203757518881460105205090160372185982311707863913586226219859373196691689717289039454875807397694686422044340437988678005425560103713229909954719517617041502574989541743283445464915829311572822330109181277134649737969721464889344799053490419794637162622678365310277352133512147629911267807672027436598540108664075780233960608225958450903734175972570584006411843186150935519889274281759677239451293553371360161992893386459377844921815984140123653281188864381131589471729853566011147776757267049148383200824115709581778069029043323564206941954249687327555357219243672459746634517845134400814609390314895785454889571095609179409442319558260457339904162066703358586933164679621465507571473857345143304912213003975932800456506523977133724460893661553987514914689840238379161205543449208901962845393974494365480322853014942018013515315212900493984215397810734893008437271959575743086864067506622404534910649193707127722170907098990863447120654857480311493584660580767442143504612526857323998037660793287065631053107609220079022193146212769195522811798328483164081667278407030894936501465880857861390482832460010682975654100009231963802650088104128081716738794401027129680440294432885658662369220456204902398626520195155445298725752195364552450997415686075135514810437916039010443607083254496932827444179255829625732870631072743211463449493329724809364932448397558850543550722803611455512021968600096648285889462060341616598565256840915622584524233990303025512988599058078455539342381361724066343960819028991831333667919736008045270392277490685469127875544470282286318691814885543078686845305638137322153544313877790879226709980918496105550884027189335183216856520233762235827503337339394347992796610349180899065774623843974270896007074090589192529816020127875324426401723228567838044599057877360654341245734602144592848291645243390530578138272911878723774249437721717092779684715591590013561222503896076653063352845938639927724851584336406556683341499730569405454569367324571968007422966513601111996137150791205210183515163423759899307951141582004885911429883609646067938827153455421070528752664429503978572137926700193230334989045899466742390360719691439175750694334734153945877592677148650172702098881012560456891596446744259936485355981051948298020777508749416174851578229354686952174961224175033458015245310406659007457762063542158030844668892269653880634123081370586403563331817430958569824418274751584735484802887389110298480769528195731606942898132397583417818362870028548599814319329215889102887159649465531541885210788602427361461635292480142367551823957766135696601481905487936173687045600076877109699518185830611881408375059816215816613000068451820177019632965099321726624677327237800100835848473688699010245462817701188529617509276854055131166987453509671715329949137185345084892997034724945269894754064616322056701835568534352224920398237005249420675011514806289900261035753353742319324432185662086461694500506435439469152202989426380741246944566853041164741420956067165968141291036261912696781285732342275885358064653893573734593241731837627513968327093509436603159851731526657877951204666302297407610410870706605197579455587869385182183011257894162851154557616785835751728602477677899614801855609044795797752780407714015891211241230495065458941798124498970837178757094276631599120832519163032548977621194370901137993049748547323700477304959460529800547858684474498001907522326487191299687372172720757764116717470785955011443732041881933860059592513413346143149239017335711710149118544060919855380719668040567276848104790074628901143567013737985622406152120470419682217706796337756700990180708329414113402192689446845135254666219204541188731401474888735741581318203403903899695006081412924570104324209388325488736493184024711583687425298618138786739689920984967411611319277151945142490817138407770200994324091503198523085742894439791894063261309621239363466673598517603307826621793752453298657606414432807280084529868248533772834561060261493241539721472414562000249238363608745938114058939878739678087440340860954324944303141895082992844096178371584792618140299720390166033305287476773984082510222869026780384548516536739749021941678323966021830893602325918212533679377276612004958151856280047629051048080713868944451681240815503727474964568572517290348904681856246082906380590784060330387659907096951271130990918944712459755936776732708714735525660605117124821742237401398179977000898090191036568631009883643953867565997698890946048735821997993118693543817795376697168673979171748516928975842414776150430791871341858319374166066588332930147437761491149918214826063589199028692702812275109812401014442996948178942105638831736703453261441799493994558722724351695958253901334402794249717059868471240553774785130639108014838362707781275117757549373290233737886129418805152645762640769639007390688719562332757880721624153230850608043663954307630562083940243699875414890952807282824023227608892880499281600141475035445324890853551415348422400017908669451700942575848782694461170889189004077235579841305741620008803437260546136631433171987064333410806621376529931981095377894548535287727144720168641261135554815933492867415906350072299714095837462912199074307351719618045911171339737534962427626618918500285409450262058126393705495484150090338246447345105751459236112173458930920519972433197749447907974671609027586928821119910178612032336410693172279823144386968094373328362785591441181396475406540555660118185546917774609785407186431963587510888616207495767695520725121131369370527859525577424257643973386423155482718581603216471565842952948517184716102951636038306595009146604545196980253954723324722015288887868456722456604342057551292175126965868370572967421490602349443234952814424880441841421888336157318793442091632349942349718224148994381781807094463681700660201188585809661358047062480734932312014598888459494366859458694897369747932904947164484137785022456854718768739034188644926707705088445313365378522677576697950110882193487700501333849470880252253134873803704154985034064226816404193864346403312148038475274957301135952096751153427010728043648426726875934204413687172502426011925242108791757712065207547263841499934471657330018096960922630527214707134647589776035156489112989465066368124130651784711092277016930908262791072937913824204289123224537663061459624820983334305275222856459685335336538590860114504082950283592834349493424067100309083988395836843103687485796908948972309632743748360610960182081327569101157666526536230019633740951350260240125911230101108080513965145153128623538011384392726832954484485597219773232657394587055956940084313514154952343992154704906287687556064931305280802293029697832419487873182194496177472747210380089566520343589032572544012473213976724047226588928421658162847545914062710410405797416795148649468591300073431230920517711461621786605438997321851705277823088738748986796255517445032543951746737609931352192157167252971055498251699464689479769457651631327021687832393185439175949607488691889697744956030869739307166786254799325086598998532458051482410326326583960511676643328386276100710943651443819243686356670129360982094663392489984086770820617852803069069573581807886403436181041274080098415188638805758364352172386789982459879443954676347233279900088921783029322192904233054861830187083455067729432536844127489592748866904078245947960590672553654931193446194066806178235174438744189786122250169823359962612491325680121301724329518965431482951142230276190214529597500669497117269049564370403559577617085978933058113654116324208470391240725837153929622120599345721845570383770752450159931986465198811527578012645557429487806509056445247324033189807001054116245602947728351544950413009058128298471612001402222347266165825096197213779290064079295552401898161194226790520129512159647336493097881577474588997387728403517920052775747695880629571216607960214019578083720214939275640551811653833401895173264765184116427883537300227415994549825248082623669384693000857329516212300968374407923325465798936007395467398013429713405219630344940608013938257190886116113901467916117895008203895894188730549716764836731988756826239890544672085947676016993460033625640852264853751835558117884658171083555638356973935183138937892050689508742447819348647085751002991797974302956296594501969299308057100611386053996239668296026362802751638819248959551444478769574269447205152853141258207028248912218091230555434621242046575464253614806826622530949688044309979793114340082187587214124609918944846573597700855761417888979813597163467822971636784393704493141219132534231102295361508961221589943066825577073352870819083224320007727776450845685021580153306153464055815573240508918944357033704467404225228726876103555843794407612321771046053986776102566039525693474633368356883199472151935282432054820451647483201462053673319541437468659334733885794971517654684000954196527281614340988427735809616910613444579073470348890502800183806787089089201906881066152825434234930231100542923957943298803598180894170101961284052203575462267418078847234706276219695683143907470329884670033275250718626709500693256798063061771788341829340301537578582373308636360273189853679432048406935007074313357725376125156319780687820268463728418903945549797046980591772300650266495233489155217692069600567547666234665498538278413819388805790425676671969767057207982924545589826879451441094286756568584771694965310388553939836206060242424331374992034617294777611174747930104320191921937134238301377702460764021645333761221413864172376500700405745481655573136710060670452304723789085325313668253999588753816464970216797153650642267490793460652636139245433664348767164376623986194348572719014925905998457711323517193273134907906628328923466210669128070668158307869439168492514426750865953575632644301159400586308694833463965778684969950967987548774490755205035951212742115552363683362545841406609894419270028276874284065906710679747855311317467838701548703854252310548311554605789312155402312752396394674715043469728540859666371738687646658228883332613101064123795451917594468434321289987688933386363415714003934081779429030494545112578849270875316958374211037245723753284793491124887367164818521009161544987750638195805649563531929222433939181797383298096961473778049919637960110723353062664680298629256759301375436002433407029508161688241032315956295550949175330385731938536690626724013311358832292813472830323739056754631203148180027312144485609601327395063814823281870336588206537099609634258418383726404479085275405174945620325091561003004699835052074713621694039543165197568017813691748247007928141314757620561275220673413199888785825894754268394526261827003703696334421110211575699199880098182454230518674143056244117970058185785876337849565787429283735310270205331855560335923215516499764119430828248733935904766484305748421398452336383239536539009199711500912151723791937541337924420993712979806908639406178109874213005671490605123299510045368204654234684877676087043680820362454178436739029021869816939085489279789754977785463310703239869982478867624093772793633762556171412445297922955393285848639172293805432638558361372505614146106648178203345160099293038984414959197933316821293293991263315257878224048635519242396876736105897965102755383845639053813964237701617701786777776462258178487582912320678703238624020093185812100774944500693175685691521223710454983447870168365521013443146119092757923790198588001106232800360862065380104884499373479671650383598027737074354049086542967513699295556727267817256922067683117646879059725743939718784241511709424620937830073225597400628768827063458241378379342991525422572801996418177726287246928153274144326768460199022180661985530529194579027228256625353229264872393765078706747237378812368097051215647512790891435013953600831212901471614679611143723352211637348171314010013941113592858199320942695504064505331803189662843799090741537865139968426818841732590326252613686973145574744200706981413045360253227074840796841926104642117262901065432283403132936236152993087446132724478271855694321990195803849173707013214835133099013122818661085474665406454013468822790468972047029820181457277631360662949322824370077167617295404543184197762681233229533173542022066566426605346347193744523155771467057015513095024394782219114969991418012001983388820615898150634295155489178913025107504100236388548462175571116328717619009844224490596480388238968994028747481633652315442462366399812434691594280052221726816443654418518563840246632429836440540515020441225745540364045547438217510007421755807499205136065077056433940576015638079596086012587261431004288719141275874616923859705923683762670597116500616721830052265412156517082266481524164337932714191625991408844142199367450526242514912935992142655553093840295565635321635817033621754977977201782161665072913997316728936796188310119461972924695265693420152140141207717057287450081441506703200325326681651153514648074340009208470675491712591642495390945129724895905103801577613760098051721479838171661656105194479094944747575234095127500385964052020509515361273012573927559908777709537168772373942721746325525531282409456749007724274909387287934607021912588326781445276809970354012176012613605680704512524575849758125573779159013622588593113003221951552265848776699434221932726952896743377265373517754613196829265950146249423124233491100774689756051498708743168917117611723742672107746348668685971611067000115373543123998695035537027537486363775338949970295938131089407913749813936608073381698230745299270656322666151295215245130080798323433044606243642647930997065405530551568839980881477444483753091203139446428462824451355968861303285903906851960265621132667276271354303280356607958186913668646487763836987305464420249025159090534954641445202002966518591910429964702781444065228788932575935737104499422115092393425107266034287512145206667926433261925217133893845769839155215708645527792185883234459129409272768305773796283252123111308844920732954844015090610220481073311038404255477455759335110510915270006697555002274973833252647627543514986996076063261185245113025407184343590780071714556544936420830038579890949665261552660110348126362707279862110202611094499890146746469738895078124394179536645374560400333825761094821149298210275479184054457263249590876124924264846605487143510307554767677943927602841694021335131963348335361426734960088440581730542100458833834260105855288252913726752122618470730783215663082576723902093909904043887306069110828778254409028569284645797964605912135366814250103561615373850425989451227119959369603233389483456154539178806216222502438925180178095185994784722563192496648085722934303077811207739899402206860596677018168388310289335988751067299177400017987831617808834052893889558150861313157555893800835254079141123485917066017654908212982293586413062941664531582409720073262050342295809167884303149590476968877495991743951514988964850050265177385809029213898455296433781053922723507984913269506850030179836564545641242700657871722964733123597836074803772157120007323572750191223983713010224308172190463103750464456657940294561989727909635743245155083107426106716813461825079350277692902935938988543321903645053059624257281884990819563200965269876078382911751113976833690789354069573662339350395981440463453254738980956412735532416739153983775236596123096338671803466154456126318924179661352259831213821454890266563479369254410585235990694516486369609325493502069263959290559586155038760163995364977790511325149427281223882169551317249915036534477532061857603243553301389480401554015624592004425236720944930752336070753836344547171875112156120127338630787305476019060370753031273171010487295031843429430521695856731720060005957627619918663244684570278094698371674723940816805866252794465195729757303398794149286460960112450034530853935822559093574257786760154266037626304768645815215924253422623677960169864203654475956538736259748192873078017666572322293676338997904502431154875920779797983718613673961331072393354808239812400858377393288455723274032541662599605994619464820434218103929653175774144207728131571493364294001381366178025068952540043925400427083406884795012196102164014852018445183477311614464078161482511487228532230190301765577862632154903714373344063739336521040772605090802944640806741995209030582751269106335903571607349648882875029471844202234893622961312134879362217812217566784462786297232710074876108622112965915666630187186153354492911245526455705187470733129744325933311500521353926476383368052861772420769398607974047683238551040189201130075861013652665603651055958864782351682669632345480452464123567669155867819241137674851656503086237080802481383455183289085671073117781903186052748499944941994533742508725095316125114645275785054743265406716388440786412741739808293837167351321742234330921829966050868801483076850803568762043324814095248493013647833175543634022091923182225135344030130218233548096898623947379288650553785003811940338349522332072406672207278156242538570976182090319601761380119572598547305429650496026628952488251262508262587283643948852540973018363590202982909109462787950796527552612565969435659357302385587608756478577669587562180532900561526240498439312294599931529957228438132220957157053553990946979987049853674926131465809123002241170245099084569067298874383277414027611707170062394569572209854119856015039544511207291630526107449418833432714458765482258264112485759299598270986491018646159271005540357006458348484498494577647314993157293708036288414160795439166015868182693404111531726408078794424816493138963138764537087275514254507263826924959039716808962986849965788958316628331097819267824708931475513933054160737521007978849911970439482718555104504639422386350983359304608010962138626374960776443687860424054034301821421052894599422333617914257397024413063147820772389704840317763137409986592009047780307214339420753837060021888600071239601879831354215430033178778642972794164166757786162833647113266285636867021838276829555459653461190332132376269364261880458717254571563852491167295594937064997389555181418588381287612378060764347216731778957443569158390206429777215340348414026043463709691349981514403546073632841712480864081676232634692878033144132073079932249273058003985868403001407963191888334600729547753821419382599386489574734256794315670082483800772699532991367845349582080358763401133796444126024702689209972798459652383095081334823437157519443509163567603602751050487881417545341578407101151405229314912494362312456145038914050724906439370691104094280709299046446405308774137760061964399240608254866628723855455316991087505251595755431466087620714780211955245190049307761970360125572898018642769757474110177675744094376338157029686842875883519218505021874927468721515173875698588150641300514987964650176292649524547304719502219507353734881326138267809458386073697647381671034306691795916771693594030199234952041190496295345077732897047391528190070913568443706623800571362053822218691866586141893162559153469504413041308626814661566029638550621387913960590554348611030810085713005905766006854464816728972566842454206304270331807960263077379681573518074824562978975070730982122303212896618415230602080127143975522134074358453254893190581135670504863103630497406492443763999689383933021040990886070919670503585067168096978515310518184193202397918815081904516029684141092709622197872782954336748798370816430065210841831772934186753537278401207314401032984424213129789141866966753242584884586284815388984150110840428467180202276494988302104375882976273980142022559401745808646391809696924179320375240163742059777042513475652495176613138844007450421318283244149357041370683770950392030554116562566304844245913382449821487909279182202638135644896820330290350750658011622587862517509009975941731664954264382720777219519278119421976829948762724629150303852025397152681886855368518323304197233882532746239077327608447497714110695946350678080366765206913592558169960949091040416977146099602493041698608878922300431597170978992407779646487633446566178448978718343037166149628364299339647009903430852515057212514320661670852287085364317051003011332950164531984881679488163749804927146235168029607579131114276053362333473588051191407727355657500101271298209553843513745665411870692567384441255470918199147484630855941507499823522281915701368157948051210378895705562744238984358551684023230138703002825099467847677193968320587700566324255972761346188884972097171155445932985451855445602808308983442618295157443999884811431692644771570080026897916446532090466705714222308842209916490964880016379124183517349408773510128816874642026769539728271147910367388090367565730672188284009328285374038689089406284826278657654577809821435010033273396262802721911754930151542204820326965855864333577224246215412424720246201841925319683089368279395970809698876523071984383411936445275041981000181649221640826640775448410147869761911542205453029617030385877535793060045967159563654413240595738739459376374935810141316470749246087350020542863638550635143088695596180205310264525590195635490806240408346211480130076586627031666789129981528057325497623842023926984591271376085840331307592872095431563493511638037219800327018466196190890057523015731077236561942179549309070509578033144760736672139940396251298316604982470225214321883261440436245005195162450488260029519367344406634681160480766486801550838500503544362763655570686761633047118169493472569663683787524761582136774706170729963982910002481270192656236277410022933103884590571707868048358434537190247146242129178023374606227186347111155942002938713686174647936130556467009746620724195229331306438815390412538928594414715702845009324462384892001415431269416402462729419988849371233291763824445355400560724144771565606809210195819308752065100571738271307991640649412204865883282369641885807621193281797820472212035288464008315787978419815292120898931077848283729212772321125484332690072882255984104126213668804067536166644711155628853681704805008253614915953447493917764324332370866635669092143506881690552501885229984356961335661272035194544174588250974783733558440087781871307558395758927616051769438368834305482300460400444387518031209219644279778345373557947426209011719353663302336405312364179438687171985272517840414775722026895659562794515511595013921863771716245441003783851016878980925335117140091969515940309387920233609435374948934854424589843732428506878099304678658976149113513897831272699265142815448081591529675984523280224016269710126490264178163252202320429793402478540028003794731816885499123678044543887468641474458750519542100967028610039843004396695586676382530777848210294326883597741822888416343121451545202259920310167978905254305748462784699151799948164462823645545982265338159331588510380606196325774045492149392086120635634664187780946208493999481897455605441003597933324262331774827638303184600730195577321289914423370237554841930782711719507605858901212194783084507071378590045880881850764197828701779286858462916086176452080833003240496283421279930564627620385325814185176262666920762037827371756572109612034693889124065609370226259038009528641426213814695973658959023245875196147713652280770337273167293772350641965599541056483719198519033777205524514702731074081352719556302998806711964062897630499225442109471327860120528659352570915869206268319472475526995085639403226375126090398911102312768286037679842986189445400065360455522826061223888264101081400925623558801439667106441543556988965615282795087999020603558114007218557504955671474186207904273531552039142856858640286953867821358068347167600430373800332162632908214989178590247507958581924674606866676060705563968494307028787663644197788474353803482799757539004470359476537214969301921325710428009762550287293848008852156101950250633917598237735058581497884377473916317180410524568436620799318816179578886239224720309143550962062111627511272015514309465545512115384325916247920169753959877372081605519179419057936244086854028994566110122015402240769837831922399906011381021264047021587260797455781760187764011514971185658984602032702897046263544792450057322068588045003194556577353885246917385622500177478546238104664692266066894805997761000837088400375206263557098140966464714371377578617561152723508417934037364902182506997457874032271430437321289591993724273929963552381716132432185194137917411023509282556390743722797345515557062920777259902721322808070897373924189069110327827472413456923436560548130470982456402954837515444018967425897620105235833043694692952654360916435054722793647777147618804584818304046904326098534475781685428729116671848418389562490361993808740693798171177981530500959835180472824814534434299341062629583339056241787108382478350991853078628908823282374177149624867134213832404791457850446034136596684990966381041641147877930444826935705692838215894418031564743288668501493893078500757994473105578863705061581013669797759887337117323436019932814136358771057321309801557219842192153095327215776266829492168581264881803890907173642648889199637140706446140182212772455169974899084680743490932819625358252350077592898823833601872744533181287393401357231546826597505654489115453493681610942996424652042822618583492135321206330156620417516341767560543995881625629352855997673281983275854821831713276663636789732406019335573178502635534254207047912176295329197659335747160525016546564820998006074966526750206781088997870255611009696255039928008309474874171850504065898230389868998662623936069622470463928332114531028227512559064280605187001671125968430938188990418031179424266894140021593919320101421241043076282827661865680310889311688085876444254342743722790603248986283647803771779553354403665785400315984438386950154985105384989517429341869396459176814934784022854988900244926752269491272722871193442236404486573650842425385754879493451606261946481502984208391332709512693772782712671947196084479265517892841922218895527163624126975073166749724346087732861143797923172262935926683965494859047110193661250232777789822038193582734940461696582467720652684409999632691273825348071366591069155660837792878893921919955383399904932888356488420942887362345809523094913762339012349443798925229398406311494870407150177512506175537243277803763659688465991500851093729213670051186624734225725015454876084353247371295875935358550403066223966448304890288130345923614099495065944225769250396329406004367009268179891638968376465791148938006954178366439048261395483752961450581928495109272896448472787689535977886782033903994018018647965382073326650015995664370941774469747224441565815391761524893653741710517375564748568654409162474993183699997870165477254264949897100283335315947144650265645190628461896106621958959493162952969409312857204261027422634241360425168657318820291643725508327996430403130756766353633619663645414371986925360476155156288662432369776449680643686006718928697983718801927433961138899302988751008320388560771636099185341545463377224619648755496505209032022621280075636981500022943012211589369552577213795201589553166484524845048243214456788508771222361568500970770043798768583619617670692892003227611142438437039567317114474473021322682484755806909190114381107266335987014828613346240543155250142090787588871303936853344004351277522146177511160034896463747226589902728072250628549086802703669035985159637566252361164622654316281731585649300346106729516026867567599051616158551845187830051278498451795265997653419709485639836546364851986864441384835647933250256160675044818719398160598558437654127971107841950775254289070774091886729549001496590740074025478378824432409350628630719174504314822592786438517399211960374676466211142568098155433371368627775602765574913447272083116320314543149895022277288574276859944187249064330915084290899506383263307953718264264169618486092459151888081343420906061916701554062723143387563273692619094065598682241988565933465708428956048122828353262358799350932133900701197605472753458130847405247475511897236467934925343316575004634161244402708362183504122110187411501658638443532066820793158175288068263103251290688971029096372952542398555137684875578625749786549451108705247076954345592821840481424445402287723627251095930542322041240140986747187018272149028803828627759729291234626728278207935743487482467489300215122678614331805756008257579639527332232934540237641518406524622313125202182654877353439281843806230497890611936989706573649071902070745861458529370847873666188717782164982701888592203363007911755787020193503748425451284379280725272023309945932972706839813868000955183967888608283710000033832881679519208808190649868972455160151685455392333132679359463777427229849859383041332373525016460278731507885256590541125883730765610772261750237219275547264673388855461044224725528781492354348110861884436333116239260643270090535357125262383885258479749612526137378551792717375325971783816604435632267453635554300629225390442777003115633767747309557827472123259858512036355154741660932157755639570816796782313902240583018414109071300946880099132077132530150933154165110004806052605305028458212203633113990001721747354260987213027418888326139831435730547827024044282522853284005846274989828978177083207629166124128703708299057042946001964680913210858848470623641689626143506864583064277134300947647026335725956680406464448372052037039035510375290317910665420783066961297707396584576703789672003334596880497549537521312963936145322572176634726517491728442131395412022847293710525117556780082444381957318587519453488881039622963607178934777424868118783407045375715629346793801384360730059236273489995937171429246791051713609077459566610168943695244499695621058569305488621189263720430346506373459473891075927007894692114146364861446445017144309315018498707584144208331045343161255322433605128749751703814612824514546848027118899796609105288591668375111955066425467194612183203911814418443959372288114160530861519871756797015412146145364473416667844215434108908050189776232877743584503793269417956988071262757477350879967550417091469149696743780389730781382875981592580048573586724246754124434206090578478416465784037148197388475625937264564230639888202671850786129783951002795258114765511172854991621715779754929458609688848681259347219168908863022791088114482939541485854373668011672862280518987398521608495751185600189380385214373686007072790176798639399222005582382361937732070642898504765260943413682904190782408043109450487501964956848092602925414060035471636207610117353912139266574713774289619077453237869180946451271296720824767628954991950384245673638063367461068987318810471023137208136323215390171562183182010246800680337705133027379533916288475775328847513598453472010080065421890737885486929837759315520449877590762964818103849440936569074930069420014303949189160629365000493557690092582535989576423055298555495012917768930829294995340350468882705754196599816881117704377558203627852165552990371251903872961171367789102661796926605630917469668189777325610251448932425292995806751035176178029826369816739728935300451130298672208920923654142193906612715953496325031038572752074239583352548795729773613133370933956335191950920490594415274310820606035857705658061843553193989478158686246277792872863247809639294764940617870735688957879614027743523520151456219898003243958365746122775099778499408689463828973274504375055553263300547774408360878527555328365016473359465751285607082123403687083033832357071616517584238883061560842617259407034045566198699702698308906379813129534727391258627674359938468971421221690933611808288642466832613372738436783446316703136829652501810120438047287030234289051986531334887618876938607704210638619642191353120365907264847156217804539117438850409172399607791794858388263526278412010079407359339241744278094890053278502381350658412778375566612835913700218505444513645383452551234707143710273769924598657804185517894758892395488469204110959682922626103495206841778228832364810837929661651429433622464070427557821460854637361059853297962279701806648092140865610304562885494351390215746834705266226479301572683676328670475023036913072012987370304760244131256041787369539790704533654282055816013116123594371527487659019325543191168977721086627332519960368228231964804440699990380813961978798228598558805184201673072663639231715899357653363560855549409314590585096368522878065298069241495217508191343443695161576327590419798610450986296753634296895522099887397115873603980069804624312532391190398573539344279178045894168507936213801545267820444898876201733210082643409604441564931498390012438122511047059505218855739858698558884381217152830545231395465098599899613140522385487696714913340305395416597893742024986233746207739651579318035391687218824614455257084415665785162303829592253110136459019130538573579150149179868281927723487479054518401527674995213865104545061260603901168508006423751500137121744249164684100603958310962082698057429128641992813738751877116575001710680718161418265540909826831216197119736288077264959002924386647382320810233528225043817595870130583600905405573174362942616403024965211708709505314241267968824272474373180371311027118353234186834923663792747452744417829020619028634339305860283675069510208775221612623858252700026491084481176188841275573440346320795320656859840095648027969147836199526817018365593794118941935193586164396117987179448614976855680268067400555399850992840501485421429211559121899065317397765297754717318025625982808853241575858150714459495620159320732361159896180721492787743696232024400857915832109901946525586236879224706930728967566813920857248188036254421987470396083728915287232665567337555591939677804437466123695862684181394386859145712082203758104608078211683163380838168578889327064004643603387444401062211151080165336592994454550116679867435203218964570027882386183592520025424235331960579070084835878999342486198377567464487936021671037510633872377404746458648134884693333651096972206994271394458321971897318399420862277641663744064373605737459424678610845009266252500091745382899053699199394834427375750055961378998187465408857905897944532642107682124742625424968178345152540948874616925425289506160734486984466454324404787036585377121909974362631426602806310422547093578468801430122022738534147079574998153123838991640537009672864585218336419456427335250523255931247903854931329894837419811629770612405658938700175516531693209373997903815721107213445737872026526711318622683360211965351922886325259360385782807768344356819627043134389305846400915945670810636789031787423391132943326123944838289598219700981867968706509020936422964374583149808755912847284265221410484238847221550840038704390139980329364005327492385874905272441631310766997776537733771287796094420612348953791315753234437647066211801088063882113744243588542454701703841169225121720530682951367862426086800200393081740241323814039227838646455789789134151674814894215031168317875435876312402236123730430073271784569992335057157818032773440334571556762942881691447493030275454026254626234302296510973059054828936886254378018299087748426307528556030363651804290356503726768958432616008254806366999838625258558601910720738441843703307836161531492000232491529799341631540575359848614971446628301278098105904448944667292819156576537877252387617739368591961955487804077148924716787732749858188323848915307101956733197864449848238639136579037020723428802644958532136777959353405492537900701443362840022626312805069419020721006596325514420031774042969317425007174019474653724019570838910705909104502756955127219425505824930867474927929191116784537159899372075357699514833890673890019135966586479815775377243269284669532406059586670312353056126041596612008028499861450688898353249184456788836444952622755099831179986833095550388236189294969473883903684576997335895053091478362247297160061382878297974803988964797504738366259991543932687318886343524950980114343944904797377242958949896993448027677248759364313883294938910887534822140346812923723159901774875944165475844853023768839539421318335408553102456384506261424812637477345767511953904984309015825750512820965671618956609783379920114574785147576766918085553173615951466308490898431277598011425119653249075552212877126558669652765316112701228966914259485666595170242615586296931394884733010062909855926272032391383161519076686677797882716421513671138820249797254898094745303006097751209688473771492663686168452586591714211207005908003732523671911341823786561041287706884770978674527240360909934340271368085925286837502591106215541849773235328770441421228897646479003964964260184365826881769861041684173072541871826092703489668982011773389170307330941305035473635037226616987532236830220192184132293254259521690816180042803869599752886406952830161245055907904012626685367977851937689501065234731400549808071760740476957549612984695564781867925787084094141984498125619556672780794424329336874746623348686169943446250769609351290448787806152674564686718922534542566421143955044404674814811026091062553721718904993398965395224599528097024885604164821018306076072700319684255206075942078214540812436974479158238213472722090816099539172999044290407871573122176499159926875515467793759489164453295774280907016484387821556517742411009419043481716730209229919668725104284742659906113766971280587790549253091574725313766102882293236412934684143726452672633466454625375559456594778027402313527525735420881444704542072719381372470052987505114193808785967895981139712428722779859402992456552755108896449460843773913913097434779163292278823074188320993180125397937175869171336403380223817331044575627845276961087912300835571821408704629191054687400786091976152815424723411155629502993833452607675016189243400747530818596161015818355796113590723680294874408699423775208602554736492816061763569949664302024007877946704015473005700288218026621028167276454777153905693494953452573249467569054607592012599344375098734606057664958363693908799760349992579215312449843625491948779152770907009578429462385155076404499690021607670879393994366536927040192950332743554237440794702218159095261216005707576922523898180834833179929105132024432007281575371905901043851595228786826060288585229662549195043377216206815385887025286663748352276264933096319756131444325452577352957352271770958806554016585569026613494679615791226010227390827400297211543758133451059568588713014973823332364086858382117144691043492787400786733741026313152229331471183846875517912081822244240522552735550806671876552807811022189666000040311079809812758408682104833735130438035367793847842503594988094630321973237732085571466909791062946313989249714068925406517208674758439982123579261291912748455346176789555868537837678416042228692448753966376276806707531540923948935479813485407089916575371655655026647006798947811785575996751291274782152230821114051296743639485804820619577484283320616866010126338407641949103990211159865538345902374047502992710162871469529906717998264135803694937946176198491045036504057315630262403428763371871503061625674818443488631825408226473809262638511581767016662905649340313274135888396499525724295622634322997800468443312657662626051323289488333771129908074054904160284279753360874353982527359012515610692556815224549636556679998691430961773701797249818476425382830352972074576460973837627615591387289505988339555119212407066536918470056498434953865692975074847535271685910097657571716766469019237202131874374438871521443072816674366348670794449941986995010761686258103537672143746691330921746153941529815750183034448260044360413180370798689134745504209976565690625303626855592556053836217082231176987977048218091913353071214898378112871455852459053696039445984547541938412524851638359874597755468972913531050301370718062605651497943134063925479364152190028618441939391242080512106513887510301600428728971204478235702486919242752402523497645158570258079652047095715646593874924099427285267040547917057965070916858898661620997619107383925432093960946330032248258471014716955812501936278933147398906627907425084488476499212373731473245824397159359573125437261631398917383263941589723016981594440546910583055005239574229728999650593061454149880645657606855299032874141460814504304539680035965964491695664754349449024868571739786301952810540864540066130625616971373451304392911946093533197212119237252385108684017864201779364494535347872244025167378453302763942842301418296309811358484711086728966479889956660993884010228213339796182913073285722885327798650715587102071300071988345665359272784830965583634442085677950747240968990811022192352667055747894840573234796442591182999191069734721661845165265153980622588230859797241436886271717084897839224432650976748636048200212038986247961614948874160795707320144714773069571972953447598729093591267144965141164953563876626348263625431958999490618176250921008956052823271140732647212885733023165644029841155093283859649350345655397424533499568601516190898681948864908642182687899257361519029279118938152952511752327791785638724817214263824524261781652445656978555744428635257950868382859897430727491594303730761633848139798392693535080226409580087753018944698100303400738050714691141668654724167326144203856682766220730244114929176553581086013853252853683325890519544574153845462314288135601390151152714265296847544340938380933639117236079963914266243545515110724168477504316892334641836898557699598096268373802539343962367729889458493837176754913329938430805629514126406829417131444654630582619602883079369994237092848399540835920684562261057597717237792610807657951904286865040477393884328809937884685990849595956882688881014003730631876493835969726468642712447684030542096654962945842662622940575285982921687900597590681478532167129313499080256335270497495989971232184114688172320891993192589253081426487779813443279653429755446150948944203582951867985397711021459808830626872403940573281970499656226068871507838141092782483629029707600410799355253528621891912772415615094743664599857823308378828918022996151301095000155257992113954502670206062826996217462957300275799817972490452944940203797912477272093058338640323195627680202496415347977461370454883594094929951947648500901318526350341019348156804502109379913383066992176659363754233125393615681243452342345198681693925572908277293076975583767541593011367961108015760367662839397000275641915336435970362809315389582736601240657573244059819629901856797931760682577116596480353622471322742312988824181981362863201994868321888745889971414421164932374208165591414390852204203049352109141733971598036742794727263365867686101104782291494440055349908242616333590045615991597613927452846834733171510475839619051800620824350941577846440308628219288958775325154346745142060693084344467514940768056736901728355088993229137154810110904581752107771337480086202766815626608515623349860990376547270686389108888299516106023793814921888681805664630539711272909532553523772781236888368062317423627606701329944012349306185174034284118586097220917300915014903181074518462146287439415751095634256966486595287509653182340804442517752996342088788280142638822462738078910421025139390834362564155034792025025600731948593777434874392514913804585255972278321854037669201190643811639756149310516628347480959095819651327693184847059338714991796297051241127780336900848625544921327975850524233741114730161231130592136748873909595355087515125644239691863851504549381181823390007797435114758018188037400225084845684134226799952382902428812307416346481715118307651778948947851871322425412593775332625953928118380357715915113244443028523932975644112066978081572547101614003872062259515796202756379908671236536115384837736124725414441562417099088838320833949352443348497591234378511064487825954851545496691250982770441382215177061370230534162081359041018068642849522991190688747907057745237856394239406473543476276690989271629301639662564818563879143587080639838636286993372060307423888186332907130571401601874580740824095245632219455059937088281228821521896693966951115077051093522427021502299001442344531034416870054090206442371453675557158953038433694538873514407218833803765039885610986421334512763002788415144582928847738495652307664102934577916278923242436216592562581387397153300213167151549613914180328013635683607694338860812003918031332707952212975249155441429906175372152192372903608288920018375460074806637207735604056359203136543102888605307195747883322245676403834191358306972609098491478492361198170593089630393197438655014036984620772869551505674904896983201355349478502115006509066192101790986691114525513553787700221571411819554919682357326108871058437252256816971274594562988282997139585546179024832849400641042116519701419527100308205780500139569434064776467582018590777819405221672747726980656719921861278118430693982171305839411381288286181160123365728643021424858779601577821418115557550429786383255104017989543440127620679217774931886464003269273553845847183141530860785422502631854917457476961699148713746431331969894698868452476070349385450587062609741648294145548740552581206455368863866533519347805214595101496099513188422953394227101337680068853347485564767371810535362045814293909788752169616771583604325649260931373345653616505447709277891805120644242963290220914534763650860865391075692601070116380187531604510540635538838664093488848901922860031525606041046439960784459165708394756681919320190746565553992109735574591768713147261118220305503895986063402177832184788443487499991270053378230451300558140867965095083837170187509072825921076024896715816915816679944361078068204036949325938581409347724666157099509998892454366235921504405571560606003619702895634583002404746553224377128349234587213965410523713465022421018466532038363517635221249476150340426010178654773552260326353525173013061188014177205800191955070286767489834193647918374650730329889139168096799019938120649835261426542596246612142478361122792078533195855732626296237572181400876748851851654846998384406138650620524894447245480001646258847166698141290174722299888313211975134716759785287133185642208641003714221811428503882034652738011411352892800263339085795208750365353819220956042173886121549046195765664992787153745768437878766925908586121508475525785286440165048603485265545392860131367509094604777989235066514787213492563765328363961974317171392195417084588808060366159038024302095428300957077973520493878258498491371336586218329079723838034036470277678128781499061573460711803474096225187851266339281580349469016237131511638209669284431011751579040744468265056452050846358565048314217646072968745188171587218866942695341275190136917488346424047224261366440967803193986509988521521501158952479268912837147027369984075009227029181928874457851745268798760420162586416085573651598425029107723465169828083547857965720361355220771127193834088294723955844768981276804111347937786068592402812648208481922842564928995275578179962776748834131392922835273567584047902673162762988054393057469402509365232594341720345934698417339647939120899566116992529667083696597991343399072733072077045799563380038834493029363684961777888088321363645928482613796081329433355105217312656582779252105211340184410240227955898168504933479220038987578762153695923574616989396469121973614612692575529793279860626003687550958730996802964989650325848437124018523684825339598650107186841468829247810548751573064269256697765443737924488611834678330661136741790051885572363983901437529881223519078179300135105028725850190136634616918950323732967395063964662865054904347364363008220941653608086124424814684237684949003032701483955146614925051958260759306489082302349650116200658689338046979806075235812073549881011831851236605000034364176143018630973118766022294931428430733394041408385983091375417083322179583995567049887604800593702053109583485723740839145495074389833020970618048918917429521108017728430946570990701988335532903125579702739843671032591221819618219686151263681571449348587364398332483367825377406151818024698029746936597857703873934288367084021043579957417078697244213272097596356111961174215754284077793839615463439203868865142724367081192381217674726912047901365327972584866225111190663980791449840490019462453130541300408954399255053779406259602945662516501795467722588373153629173910098427648134134916435902915818437383606416621912093507421682277754585565461187261810544461566059471608048420570681622140340135822784106699488877551478398899641324528915674539572334045669298467135470491755530289540709554883998432391299453921714402072063322731070250414250512057069876816199014505310907679399084116196576159974293935823523204187071372100381079144060195337233836798172613538550525236171724611967732638068271023517647199502798906787860353758153273411834070663615607881731160378034272931843527273130031379730084515039895822608602811241857226536107564442737968386062896934811858397113366834181571511367348375098550533444388653001828790605599879807504139348758770930269543387330652123633052150655609201656018393238681415517643686849401578792778165215381694607741143401810530556645562284966162939732047358035694000395581024777726571446632927326151911786335356021057020566915323232741401463532012921308338388442127206144335855620161448378930635319216351569519970604960869763448046200195156299497906844540533952235721424244276780041250122745260973803678884637642593119222574826219003780976542405747256702215266871307720392291224286275316667383688324044986848671340574804542361976547199303920474583214282947339697827182986848932994377223985849596762331481181490600144317034250567519034438271313115724749995819114613234293198487471948911057860430982244342411140058287531755138050354570492759877286054062194371056406819804633496067070717678498377067800443131513462369306326109477619905417080779898821813639492993785161729560393832511682633088551302047419051092037465425756738175034585827249725016874654449784121368676487018770873486682491120171750868780879425879829518346547996820400503268553721800084786199965613074776848277344765009720722826591117319220185240247084026011125852218385567628470142099215837030321677777291790887306952437726789123281885319310686916164578707838852985241569278268536664587183473390875482424890005842319158371822711903502039068337259002743112516973258985312313466652289899901211134069579240034754155716967097869318046424136080887614773520412449196629145915309966447380719827001806106963376425705583959821526419083223370024511749797999324563041181432749631508126540173222762297455390898391871440076336125487132830906927427370973494960656821648994563897582957447661468530364637527436845015946925766356013096969438224782658976638322770707581756561568843567370243844103369365282197691085068851677104743329426736247384708044316130145562558746083075026658042808349604968446042982163369080936901803420610236818722277049649057091616584601027252691017050396563509805841901103057997265079099550519062780344401087798662507634162069896650934908034593621039698722914386522229964511652539923407414722204356322820551131204426419510448718755754811290315646524272292288312236637560169668716824529998222847192634030786817563562649037885352618295337541100441279068542800595692489757508091670099638991509793571392422326624035551475886215176124219244987563232512770348531856066263518807207611751138453284722305041959039266221144537496650226888051455350009859682544114195483873901283293493995753664117713595676636539983479398770858369547167854304000377703791796150817253943615936348027158046239862366897281576721024711046388779504887665127140045775289838085042783937583492564723653460241327970450951419232662454210045239037588147450791157520368602318040858015294757720353027134404850831972305663599759926395880591838457482863111309426749172319358526616174475384071289944379980435810687575414578373650747262886198349694330436372273933024684053284512557237097883306573030523368298896835558477118624213124768645936028077912196843374420757313923379324243069077723606384612561133371663223502796808427002276810138579685798072934271889977748800884552110994405218860395070017624843017936109595992771556596537757330669685310670713024789520580416016959673717355927403584579159895841196194683980231568741300988798910845371849362518538670531013534029242645883649962701436178712865062460994466987436215555297137015406497963820221442670914687057204619168786106947097553591580624016662200808939230397572272571011187527794498674637850076244894099424042764424197538163894321263457808339670772723309146312686496183931150033210864139492990255967328799226202397790077161724833487246189446931678446912535740865279377298273540233449484941450647407358494545583599155003870291958498528562420919788100379521638541013582255327404876328400111186888962977984455681165202756582148579590082116686704295021473351376296318625443945305023246954159874333897116941442553510003346100971388706839740156598788535996807170489465297358962867899977235658970822913822213749564134062638314862008137786442438775410813173921315101326190715028349071734162384138909240134188570923337633738122823427367321302123104907559875877112017113366368267517660321426343563912309545904396558208292711208659469544303446786266306101050016653612569681711923930724112804678757325036120590794843003775122074654851157076571147548584774902522651766877154597639218714075731612930943658521709095450893913651218627140232187773387858923040509380842109735532551491950805103834803302525101466239256182213671585890375801032702454255372857911537007881054882434429161107875718540164469712599910106752636608698798668897727679910766471448650988113685503683686669350313804860034888158377945753889667025689624964808470745862369555705677956211038858757998152783672966686346111598220221908235322733011717991473931698384306337255070760897688736791444790223127380265362607733808483672178702491214879218260710346349750640340787220928248351683931834288288767477026610439299600117635392476921931742633877229195492016480843358694704647715019978542137676075855862652016887171177947551441539162894499616871964795603706982397564908939348968280784422366848107961104488687095062464428216604620046188928643702029471822326996530712486828940429295720588933322634666677031928162086874058909811599193363219750212563183488754812647706365981515364709043520849029168706852929190185318610163818231869390189745749678665745418673138648891165040566629628796005227489267432512944847597489863026676778452810747864333143942496532848228964510809721978886860961957555304332985189496785739880103236762851777986127797012762194712137948307813452988197210714929347211122160845713609226479628666668036867637149119685251827054436346277851730218269751458512798618816815536910519538812572355633990927801469236380792902830786969757111338018363475440743509495239592491842353018191160069157375070420656624999719767688402357938751876103838359886399759560203250010902602734478835480019191206498387213165282929967292026769754611022029345544515204230079808097621967332467834936347671954530137255112925438285153645924279734190457887650294430078674011498437060451531400622774992530341547943781873824697456645834135211217867298927905905928989407483340840578978896911742041349673490805242231070290731611927684413969689833849937637754614054291631738009648006527267868288411950167804318769982595145664147563231684068852149795118915956650244016050804183269906353975349117636879466436712613437114194048530202974723631109834620835376471229748316996371418188501601200751977041089082041180049212459146790149275404881542088029083233606583648966076108934623205125549958587467819057953941973873211695503912834474065262670916694064798973244128120213905161162949486503282205452274681438771159688952401162175479620924410775846204982055612509572400481273273235817986665937457997158716253543857996224200610530508506366605226307824532040835029332311320512553953154060379585023264754889992680830616251997926535067388628712593525940545922313150863982167599429676048860899596509619452728453378059718815619179983271728175248058336709989631833042748014639799970803956349432057022031959327523814930464481079699060774217033252311988331733213752447072153585295716433635740281338086068299146922882849458773530451628835716383252988024668081144726090454429236873066303732976118415340503702038921635601156120681144377798066083152678779395886048832550498385716496544672044424657068722556063100258607290204261345676134311216942354301937372443542769510557031663373240172055962153712210246918483382425048530322107287382077244381309603069480618100280117947081577519317052986774436503718131039916746471540001860451462404637867345316980441724921880935838817500355083059598250170180504839373291978741654764855021637490460816436239553705188000103712710922966375767280850449429540590337755224635878275855120171545830355663930426561703120400410730299290960005181898336533455431363318683187926874711206407734441936846887597534901327828086540415210327275155922678641024232543220917384176126076368073654410981056209944353875611180221625309428348588257501343517107227346627075788010179241356019942858725862660702521818643860053211662578787228978003150553954603248137848311843582263009387098241735538725657168684380336014009924200057298655264712786385671700519107298680876766166752143750406060962879604199304674033008438288128148905085510532956701878168946110162404067956481514785837077658817109819896924688010497072972187740646636726329321971201246968647598490860180457611471517593011788498834970054083712410092296589219107277027057381870237059390681144023048123549391802566161342809197244024470584650279856278976217064461243981422125587396793613431433599795825541690819658927024940214437178696078888537120470227000272034284649310380645503917356721394171787718668041789952052931275477205161143805117338996415503335932119352425697916275600722852855720222893943649756024041283686232258481050969721174577892154614886446094841802767789559897482627096231262697300031180289322585061090131447179765125401952564431164881625426324608000862348260839312330491951502625308862408505575378602050893083024203188474590956449712059681166239854872120921606578484336081572570801688319147835751238031840076573427633950360454727373397102893969029625854317842283784515047692531191438620802239509206223792550168419736572479365895823166761676226634359586064023856876893236985392629229258276368466273177248485537680694876233611364635928892121766138882089430843619587202313293458988707210302545890117784907886044665666532227183168380802317849391879659312399794999251252480654523341090698527101485574379516528760880505891611179335544620191352538912902122631181902910188652113116374904392672983532411629234511981726543922351240564939612167015593307822573431880241744053769431978617632301458778113476664715915970516849300313013049016180991729728463180709561302719765442113807748955614833070827556990932752300475020716955136000941576852937897355693404802245639172591025691663308929351371759782220340456564323917171585588698855232365508366658101625573224248064872739854862066031300030967813007038536309161578745199226834737308215591486519986311856208445650589573558218278053065200409456906268588380108652306380979204061821056379230376100781974996680257774471915462822840400110554172853410763115227877690582378759498421686440881737026823515488357805702077563243059224180553877247359460260966219906106543130942528901044857830114206507486169190403492641601775532223155748861105500222312767824432980411917285773383076599672071994188219463123236801537280769672614980020489066557629107017457530346174393847803979405880692250983437352225708350306795643907148236930231258031189254010111824059525184315205616370307591635271129999659628757397831785015870049412117689565697383792400327581516246881862572977924684469129443668533941291741106306378911320685812606213380197138421027663889294808173813128251964592482696239857713656183476149244500089273586129590803410383538493447643337707169561844210064323873638720171246548218176060308336436888383716219119377129831138082485402408712729233707961960714517989365684668369490855179143808363368607069877592943867800376856055017990727350679424490638148580694082262837301877326289756214423740934471671276903116006495412641400890000023982976588586590287570854738466733378787599787571169202366855299388517644968684996138114334608023659547873275745159379023436256925686054331325448829329848614080565085997651010078697671407107306636404909055081104570544567280610555272380462651772358491768330967203004048609838805408067539241163758665382330221850350320083707731009968066107533646764876867827355291720575677300941454482814207228403942159393258311135356787808615148063435160460245647164861363522092615008003815082311608990684257165427046596417252120802765384310325233004476193799288355465223249764565035386178218776371338563429497120966437968820590315803584375762604669913128601176376255360020607244105610771019073249238542035490966681429856734529654735392837353486602629983544368998529577666938532063124005296900567198970426573444254235413916958313424909396277959779886305244150707753611922692162680475736539373492464605332040027628305493200701672605281343222587050795763106826653468863761862611142217301358784114974192503529011838788895830916862804135481116520154607741648320927033342477844679555216960503258478478448890989980089038981108901346608591195212003853596980708314678535139568176889925365582544216916608087329033754086786920457622834998216935065066021537359530775118968257975343826911645053020218324869753565941977834493463123931901666522315067555836551739355269647510141512359415645257646241448195660363950027138435882187396026874354982821705260303809382180390958931530809320657269712799272639702362581868496079233463768554331210783948653455689114625274811117137449874855935082404060973597611924236185666159296879364532959277063438748852159887825460969167174339678038552693057270463974371240333680883516679590932022166966735163786473565269961539290338361591669521146223335029693539296236178613219325472255238300064396516121258010637801342319775796291007972603518556925358476784925008223608253219988301654971802971504327894885221935593996269219294713065773958497190229057130426376412333054281521908143716718458786758462187260159975011391152597760492300824596712837651651107260194725660254329936437914567550708930099977497401329122885527056621255791946638608457306233148955320361324795879519747439145537888363757372270328448787226979466786628731363490559530394586914482265337974880483483006871988960641387629661544128644748156637750077115655339399152933038008420919283763973390462209414665537270909132954081329943807857136104944163258877339525178912619876427337681321759848161122487280289473652647293101302908158335972664766566556778972953927747945781336267104190895359731235777387881560751592821824730737370378334184498848185663092500921845036034428512972682655070103949457409937094196640980791667122086954025848871443346751940120063837624541517871040317758410665915166398393570335814980539993098691769982965092496421298240149967679103306531237100936001068840338694555372949282494850550985039046663336191934051332766873752607054172999607060544901527321170232423695076049087270350177423142179213126229245451674301523087965389774667926037031363227804992234927462698901720466269431828573185924489361795115617714170510973531131746368361380535136961686558709959410478663035259047652637250152558262329853411585240189821875477782512427828374542398588740221386409599387293290007414420593253417713818238576043811878264630428662583137364584744046352053833392273409801858781027269164445131357217599452347269650893538680758411489832075367542499285189953665862867425265260931972441247061884533289703415781920889416269752149176622927988457572827594624994162424503760160567899846035303460031108071884113049213371593006288744441328010034436112161216841090846193733485940011231586924507580068260473865112655000126134722848642081939927506743317136036668935936967182835273145825236824648022809823111214392596204136194347564162852591705110954218312980752211657975513216057545708825995699248713430484805389456839139913874372579066915028114608574480639841847575706692503573354257827175987624366560445496715635886447036615370694339912296717999822533283871245473730539769214039844956677320963920414574402418088946416187940095890045085733678165497839010009135090214891340925767977164666111777550468157122084341653734326068615921512556936205701407799206970161366533122300824434578330238732673624351845199136687134239399766534025347653835260748841496402493905614193772405858924486498497485759174045546819808079113220244147874655338136749889514100777089897296358638178387830055296022850996503085491799561682018829246629633461738547715068217954976966231285783215900549362106248026254898626157570718772770331793018484705599922600989338300514624180262194155260533325764145899397513948088995144674193747808776257270236378866853572277753790142451320278279148284151501468239726179654509300038361693599630002533628310151701813926190560020506258814889756221185237681386689793029877323525942251579894904073947265668041050987218294309991218176853924550147295540542062877231077030449980325439194633082670611729382105990322288216986266615679927558590369236599161955864699942993884669134028985978777501213053903844870029506524640111175866339853193439171811675771605745381302349722383457334213910043792317657436677081369782912317616456921957364217574387721645448187823642285207803147486322535419999681303545005401891240798332132968762642771715437744450792880149719284243071806977787191295724755392070957508222198384487221105599293475926328768262665844596829895716681568048445176518168896931204386670283403336341520634463802581153262763349383009638352278845297908870552757704829525122933850702968186330364469297941763250613737018871680161194723309889208117679216147943463431141212315119367986586167985999192850090437588709421370564998590596913312880155638305019190864392967954202498760800742896756356504513293993949522015143885105810866101709266231803794399569916455354247692221208033663046077917339730722372228834133998604743706464279116602238203332284842853460445025863805754903596502918613786698385867150974809409364824324767991046942418727848404686544617212759291601831757875010399386951239316327008007434991722861106682944396043099222075151844586658002027744159641665054942023235874719427213921322233646275770680973994326831540795996823939077622496738261689932213177264821062959687867240859655827914286542850662902099076256947962884131187198628781679088192941431712000212989884423130974206721031979287751184314926018269188808547434092827603869796898580878620695051402804257795508728101594453666412307441433598809044240480681581268504792836232832878231998558354144376048038894373435955218466711520744298517988704845445918297821133328848973007106028994865889801210182164328948755896924007000761430071336440108492731531972228405980043318167776319489246643435326577320303942607424688293872108806199997613291009767854209172841151712891305290731402745857981306813902882833474861425689050533646677026557167295127215489206979840999597607636267372279072575967589189664012935751681930684404701625784666265510349468751214170715703563021190677076643244576578561529967543096805502503797666545999738800537500421765714282526811641378746760016503497220788990665709228828687068135578668448906387101808752009729604467319555591516211352773903452096394372901216156521170922113031127668626175862713715386903341068852125988648346051612604563863945846230883305123766215245273001921492367192129209143810396530799156466130792098446700054566128654159616110805502885272365990905510273079039665984772658201494579536062717975340289072221252543342344014199765131158969577899094575068205947667353806010232731940603786485225808886202451310277811084494522268662568408140587972624258517285820529490380663750404165336066845749244942192664534970298263024677391306860766335626600716141281122267369064637587705984477351954143008360813162251480880149238851861459205163947110826191969591619119014280172504917966975114658982045271186100048855527485174622124544303076933953029310670917584020326777547455620402680225182405976832218493153342217108843704896694686313368798746621953525550060387967724452585877702907749845693175384811267969635607056970142091886095230776667572476158732776291650591876747298677523209074899340863637036807432321096548216411865318203707055230289855783143301984344812936186447183470943858787228053388493069650955684145533098798162842076530613448093044915352578515250617553938700127605728410295491676378204692532748952429372795389777255769800579188056568991486401293162991784546502581711062539882065827886591109230786266241973460390637845638680790171471254961780105721635546658700817799737066937648099750928807862515054486625980854854827072600119527182032981086761180024566262389159923607013020213274107080920104118882752245165659452681787267294865549454350025283502622998254134050909939290941044142239847381481849746751044705837928747030655751655628185352941473205551471800153327122970857149358408158566895373978394163968976793432207970145980694288570360883845126568151735868792661288046349159930753292399700178084932463600698957954184885302578248490237175873951934787026350700443167902999243547703202563022366314533987982084864105441564736937453345657464056379831345085384707092216872227965443983481320909129845594293294629128071493005955903450272852937091120713564606505799685415462914810444572198556318044291635981091417415377430794963885992013031647804205636160555927765881304892869477893468649529596558321314306505883728188417894719149396258450661313028549050395644607809508065792283039878053357069094472593538132362969516170718566483171670774784015937836849034542194225407436591721632534412123985450259343566485859020732961122394639171652744959037614751282022028380898129093556925668244762510553417916542225708026492144423544638599556296483089033610445759948523409775901182850962222746085442805973510113911574736814670505149009096617312111317894064761234901530387583109943384292395123864935090599551683778023638438777565292607365165831711766534175559139154123030204815214908375626419310680343907303541387839893759198367497745343333865336608220786374998644219701460419488435208973205397166527481075772774308599195729585436325294008359925487173875846791197202289952285843136015704389283237502844329960272289889872693560248583622816982966977754558039652939603960924324416934205297038552662334801154634308670477597068637700915279761818452850148316228151385153070913421693982203800988788028480415657966086784796246202263627786810120160354453713300658730198242642817400309128529343583934601112193159403851203018781992033633944095531439666812387619774450249776975295403124975296015695763450427262233467715970791458131209058071948561967446623370989222957138483830989924565881489282871112661818079275875342423582527768826735596268420218199965477005585405122315408088493898672906027246688888325717765479336441457037822422040754550546185071082773631893695438448216877312056357625772184881670460084403037917190368666526069975889333552386748604732628511370590256108148324202906959386285831154820144162521156685118484127529324517934084665900884297238575658149343541401071535828772385774276228134252519110004810343035208355197827665306405138643654156667442495787184697937525719770145942658167783901366264790464471741188185417616273216897113113601018034821973846375702504494853161378417081305668428404469123891361229661507421274213923455162803310252353580542943487676898826703807773799103364880839773151282164569006244289719574779285042362575772812879736329089250469641373047834235766965682579738558426198425927856607682994626059185262756889829255571901962481100832215520110360958808775641322937987511952152363944227279197401940298920383763909165622104806215058120755392554079216943637275063911857248099838836060625909060980305030143875038884214968472270469131587353749427620246018414574348670708571709910811902692276958829398603740972280608029812865387004037765752368021601793076007901763991677159150031155629423971599630069005909147158389613862328572365021551549703790777872406543628566678097707418744394610307287840399773296037497607608884700727142076589669592268202464796992164533907880890104358290659058910408915728010798920173938592868524340626850783959234478819803005608740140596502566297407478477432415256057138617546191504263432371994124203957237243374510201779454196873867036665480765507514933311023426943677786368298438541026184426644743734545852083236996087559426065828783819679492177351482479835193126571715026523720360306949133281279604452113148861960031845076447137730802282605536713651638294916571600914441958035554275394270700347766881237810713546644590006797932676378195568804488862821054636846619627680034973722442345631923768410156638555729396474315681552568997456109578917226508000579744322961296091184329545195663140558545374550319816177040555664924075427973325016042632248539457699798996278716875225691322847218052290227812941644151514201033213223602232670383845528312722251370786453607522686000795842989827242715967164884961808857648845133997184698934453198939238850114027183372321118529961927308683136710579226153858608946133805465593712845085004353202729120550512441070709217590073931017485614886437984588403503031030770487925373655381718558200760216095506818253349146072202966549238993646728735737945495810780965051158481161884753440121808955989448476434656946365724438853688420855197603147641386088382427012825890484744391560499419863320532470896335177796126871099841429020553315422841674102982247474456257668044800147883229320371435092251119280622063680942251603732431338379138301855286191114533111576709572027568248342358819545291936597940213522072378991721910615686225372592809521437074571664551709485045587987645786353998326112306547371365305780011068417513356874031648351270679954127936254108810207036622512498979578730043956477391590494617621675749330435660353745725403689066751431177524768483634332868887131987708827738853748939896747854203247780628160724715395928594546009471726757549715273551223853004471540794075071624579520065941398712994810746051460847334766239002334809529643751841081514830951892126449234693893525594258568652754595436123241813467317916310045115114583594366383508416282647577140995956636984639614543062067786516660822178879330003205333798840185060001386715136196461274919617173162660393478149034678888029320083678545236483223840578847050572113050718480816491103496497903493894606222874835388433507408253725335954562393867880617818636313323388852575341100238418615616489332405129275315790173863409688323516391229137664663104028680264556009432463505847333978106153036344854027397111421865359001987523413344009564718523041840426770538439863068780900754172393228684604612561938190718924301480184423139371234922832008216424685690288609344818852176248670241447961358219339569320093729580831508954531527682728678140554099664739575493204756622009819016531959768450557231302109142810397259508863058256224606275024235870213233121630739732301224311634313046604921521484121253493672633227316649636161288542583366721466187037071948664313668630960892672693199015159729382721801531738229641550619496698097479584729967888126067861140808364161067986433958258051268323732023876853280669743461116602980364526101543610994826369358698560498711810651864835027917550023649667107384157278939184692010770908103889375991854366596951468037221005305393357277203647390745708778115307960411596368624433167408899515866818283693668869240540439609082395996050636942754273355615633971058096816493528147680201241143970911163367337950955517475093547685882816421288859112744353312652215590672827119889864095345898929723808589886930083552626196833578278901979170676389923871302521432068813718812033330605703661802492724983793208608234401421087635633464185897103568112297360138771644846612627001710284972832862553669866051100084607899248577408485008280566896683901338320792208759705862207634385515860745675596641392949644225718078413989386872351945972903689316810820633060511690839520354155591962877602330681319825775261433083128582715080270534774039482406286424977881322135052783404219820804197234313729613885148265312211284565465838988390337756209484303212267139420624997277335551508563980756741880247138966741751107126734125248462808917132438384618560648358567609412466776172899880617117835150914269245225960926093094492909457667182462068245128872313318829959036114629910469162689925692240626081539146973078467139154147125817750460431997753408159156086949079058340576481732132133793899100764978518720615032910487390292949597286245015651467612925285756973876368431809832927962631619450840267854614962124931757724874666975102250753086558447724765068517645981082257273863501378385044274162101306734856325880251437002704784010555989479933659054400729349066993605786526669854420527309402129577642249507780461843590301495392562333262181147703517693460235654981985077660830456921689330778601137897894489276695361484656979945721719301094072004137445391274763349035984424662609801890723696273546684069533770933771693774579777265339256147017726398238283113123394874757923872055504299407976800915784726867995250692121077818853417495073354676406702420486852462465165884955009757452812501586530770137041008344400821142373335052912480647142226362582874921473129083704956613323511430367421458016491703070151509750609362956317518212762316345516006722429039931422520884123663931425764636010299019115911788913154810593713715762262612743600132529552747568609515787770185621017307391523889244484951539130172259250031152643510527948545748785738706371195974782515213038570037258012815578200748142092007158203591354310409701718976466714630637522567698768483900990042578283758147550549019478686268413398171868005559379750124390293554865594863744135717651472484369772208483465531804593478436587646813629694406680239170984939625486825900554564046993383966098345601844662359636211746128200834830233117423081340084189144492288147986580335133742277638682627475101476515339236945209859031518435014633747210911823665780433297578805716983347035837226141812421714536716764915064459325462227037461631167930945970332802306901553653188694342657588915446945741572343117557169781587271444506169549372169071515099885140639051828431362658535834733549168362971566414216479075919856056298963683284470564776924648673069390559835093391308479843430726117645239615404860705235644848831543739295953745844019216259950684429119059759606001611996420442438776569554023985748621496658465889910246266709008815321273096696452278591351088384764047448624784272480638148372801055288273844053939231649740023980764371808770878738847845105301423678752531416568457570727426408742139705079111593645061975558027422591356523053242275950516197335700509785407182190140327863730950120434019710235817957551109999694389555810922907451897684095513222105822707105204997079687789827898491726403191789095919615587404383845108496231843062886574636936932756143431236431144161358196687405052440770204305996472199743165977273607408627571701367687976518528648199804793852681925888709320951877901842135557399858979679106350270844336218150773461527709056146546849843183416297321794906197481787232444327016979770866306856117537387508642775668311222013939616264816058026866269873340716501312120734815486780210659485504821048157456695567584799376917672020439435018214082814553531034679429794962932390121854916618458480979803081922162433777241906607496132512263617865100794287664845250208133712315558496405567407080297757221180067198302861435561206858011384763296982395048406111822313163122418217008305731185280660340535081259379077307209938018123159482894706315352891160198381259098950130105773032151239471629384546347143161824718640104076155928897281534298781044109001251305473456050353244204104643260018448363075437504641910122313881571986443039919278693363899962084978672059920023924132961641175878741655354004852576487328904464194882023396026451918979265226802320144012695063759444474489994513465177917400107230961164608334881210474386057235193595848856116798761639081124640437668056976308662739374232222635328455356229422629325117985701679321883347220280239610925090527150650901990779010958529756381470960195102165334367306216542662929781720178964931008384430998051998507227432489963759263128628983879532874522061330454953577858350914357973028456578839216622823099091316828319669604178452913774443109401401744476358316639651273776257931429718090008756549126959192828213403160550593910658087428363374494748885923113592873712160180481237315229586457653383089116924722859536267023417212598298428711822330998391145410979826941464438089625644431626658764134539219170018443934433557185039731679937714342534788653472163517388298245491208414231943477566083474311017824148958431755656030575861826407632820500801292774198935463654766664416066237884433141849077881751391338367587878392582221977611127773523261299494599140955162271840088223001578550681920835074289769309700745280114991712361451707649863134557400557824684099355554752807003586614941183370571845311825628754533276800347402979291206052999763124975444254876844638414970986792941368968090223586120314749717587716046185403275275744706190497090501452264658396234940461825590359131605831066211381527675484812725256872016036176762903512039812140730602669130044538321218818650942591798110631546529474118311127537705435778696153759330411356452020295419483254302828928073701217389156940685687743174597680451220083837154638910857251436401052838933342700716849108622695315009689228620777084888184341046578357839562486802650747130520474629390289827155009142456607653156491091502158119899036510381516272724135944562703610290184758847270611553701813002935630692863755965614353833756014229213032850225517824073014210537423868945941344000808571991157724878596494514755846557793872214097751205283706993716671485758162951727339543064776324322933337357694362428357637366132890808285622693718399095342027891595483687701773583618474665161386168513353709663318587290589939312473180179405489703767318822875656446443247293110429326799837004030116498950072406780854037492150811598642236795251888327473521937406482416746707418789265861077006562363135782507958131406228597492084469016045737921949242700646848054551521424798405895960585930667777356288388106274629413184330137859618887859458313017393178545347721222963486837065874517535243894056062248196158527859583424901139531650120328325225803417723970708695417006898355801628315449932153918981465385503619987558473411852027294210443216332727123540902397040544587355743899380215419172175494503592340946180564871467463903114048948428713582289905607149679741079529681364637378278905374378632604582167597251121402867754294440096633354103139711572521165240614985279113607225357838964914685992881507874655025469944465763430206635494929726000263462231101264681930263613569120657529759290129417015517058959950918439667855997199609439830897925006646291296150894021118360813398714306419049405806705789872209784892626116067067814946666633667946226764529922702825004658155459011303834511502485525331791556768868241322478163473458542734862240579395371118331302775320523674374660047575944625423034993844407333484560688818376711076594725095711834118195531290226215307133942086602304231922675910875636749714521044775842443277274449835065858822669993461062610736039837972507299337222211477064388497642306381685687469252847964269712627329926874936395907501601054837229302337371604227689310262938024355476058370708536977690280502615918065041345989459265167165176042530775804529686338112006358295708187480704701127361422162960113233572101884452584228221707259959345854842843173346234747193313287471033553723444690325482279977558307719973956478295557655178390411205434078702496376563413723786615501601780844782418054726274954600326844314353924265733304263752731267319594955017313687864464078205546535792197422844154270997463617990243311968697423512421039016798224301981397660538140786316070473523604656702055769490990002948946429471209817463689316221668884440404660143876323640401824701542756358386747268623092806008963975444029198468982077786934260077250921520354700624385466797208943262195067442658042372029705344750423864127768521385088592906205721890753370016144741036315004783197915901768301016592522218111898156645407853110134439840963406563581472564227025465302046652550906738959672964008125864224665351563284482267684403408807653108038519111275598119139492579537364036212749518553097180095314979282060304745760739883241526467717192716534238721006408689236147017462243961236699739880631685553871568732733152748906837852413173178575550878689464048760247933733705401791472668703888957319220235189480098496874279570661874291119365875371841656205538044929148712069592471128099854455554385713611865758797334190092447781278778537055510638766115774919292522613842035668680665939886092910013193591158817067468105462668341770203404751536753436609965291311160571328521493724770044256949342707858866646962171827960750917028865400202359761391659764930649944913151224476026516042526677107545070881359015583209606844554113101822182167450344237233053636038285387393413946086649293111896659058742504896674157084811369665146007993388282983589179308555842261885793479380358040146518824885310317038262867557272086793052522629416583775028692850556500317776958042602694158938609308976621059974383035399272499232703492120279579682980693605700435607599495663454816910434086291963885869150371267169635977795475505105868150109221848156388436910149521990042710747707245768835048690274994213298939224915568510005194370122067663445233471219715150733307498510287297988504318711441862122526712808122906011264933250237647503993887607409149358750825028161801038455628565004704246205527340530972375347402543652758181325065952985728359457925868157388743966831607801624548365479680855694439242560546018647636740573857528343892482783774775831225825023797401438710512087213824947435594895779265784479434400338850491513487943101693727503603320671664652796227523206228047729074991479372011432532079138582143473294919861905664443749174974414957782982776594192204229869215956659422908313831848323235920342073213230949185887712992105748119896526237005860761417534736763467307326389149659910734466927893671284173997312239048605837732609695496401359496064837902012514358876831338283767306428091123094942046928943920827783976914202055559859679935600772186694878103548453857007252635749784039598715941573733334436902329340600931177495131684703211226421210466933149814247027428750338491439007713932163633182121579020104289576684385375747289157084350087871187679276599601790465035496702284752063199283262849792968159211173491685604773499642510593329809539030197262327155014449887024003966999066454100888727038478294502595551904067995710483741685456676713512466708665305965807832081414239737689611518901706741452934360049563797666154373548692393435897140008817944629014165555740228949824786057862187354573126698020825550817204373589743442053266482415337026577999785945809638272939353367489598760570756474607964821852184873742880479435535302168058029971178127699344877351239620795602375475039909164027282168724347078328310205777620254813799164856345386797907616205538619317478178592151984848736798081822987918324521645555981620533977596465269313571694030269234035607984238723230658106928287011810047361900700542223301191845593364807192385137259956888195067092239164296359780218750912811518121854129862353156870854101289442840113623738132944314077753440465858926220784808478265114831668447421793986922826634720584987943731834203916726690991523721625972253377188711160362977702489050563254416372980651718587976508139425545153874772240645684954657775649310184700271633727962981315637421752259961101358286708748943420890592374712033404181974956696230850671288938704556540623057855697936600270464122062035177110241000162327864985966768860200975937192136709313378415537117598451181013169076163132923888437885215481353786595529782381422110138265063116085011043086302260201461601128742565430424691427855918866345667759511683790873161484972306103450866223095616877482686619429650062200423774988339459723610358532723173578718578860100462787274637623611033542209491038137187576735150648956160061943375971564423279103446094330079151133892409029887682765850835193044799943458800716908843826465352369676370274760931749762527677337482212930099268189487524700639542316747301741003706839220591541428320489613236718241471356796342163739241749884508703442571868556707585508917489943864671664654274078503594982984846689764171340506083735511358791027976052033580969681545006156073473739066124326825705184787310629913227833180703176582557532531996456464259888087385334536102047231458947773630363636931425369193551017521549922246053857969955685804930338274650984162800665848879211012154493887792809852883357584865934278722468554331989327681632518623402511955905841888959378441965100217722644903625210137679532472365300513739687323847731886685656299727622233371802729439412227887733737254786256622179351334358482439437043540911297829060442652424569449378694677567501034715391769095283006061383027800628612999781492483665506317492947932205245805526503388285971909830327337025248106123107072182422676427570088744453462611600587161287746909543144104619456440152737652628928684989074705575332391850881504045893497050176591667718252876282128584149004105675863588105671041457238753985817429080905299724880537771467338125595843348282826469114075216114461686823490168545253736983309178729303085109557619685786718146688989156753714677237697860565454161493646687109800023365486190874664217466426527292794466477000621735399958252228229671148228266535797594233059415851433681594934648945266626297625310103009052293746820207764835713092643864536989603109011281355645123338889311947081226609712380763627544814755091724065842805379701331929112983443829158973707731728741371941790693761521096082599714570415055364973510644790220305006440655142123609686638376749480617313565934481823206389880955920988006567228883704131534935429489795371911733773957090663338889189293721399402354470357265445959236221126495560870371203414696043712442473103281703890745703542096312216971076058785087172708341087796749835896340711580353209010182942234966965127875553282802781966400350900017684647949291791271023053739428952997156021036205535958944739744913168712953201450140327612375327611277645597695268017391029708573686134227949238934324952521056249424669727073731996059106775606988320245185532847297897760707063513970956414557395642874734128484294966704734854819912608171835148023805401409529304036203588203613546524812231669982912878455908240778491842375133745184453270753105962145863628168651303297342272855571066548761993419207603854271411820804130401526287028846327968770987472843124614317542133332226119719106833932551327877342215707242997946071011536046448166061003200450583004416987322910760502327236025570520225506626061848767886670999675669027483048020346084456931169824402462453380548551812637785843842804439559519582072388823680742521010829636777245292541471723076814254546507609248959078152625937095175586947719648424711770387138386935900066595154272608829763512467874401627317832734216009524423541679820174384246661174386414567462491984849063411851745773014081062055255521547546167279367588024418806391641155291961733733820770161744163815760670063340509217877788424979559275192164908015339448039143522171695591234077967758304198321976503510482065918524943319819720857966898141548202393321494242915228718984305075751067104754197446402502119912143191370286237193386099986044503432315979810871423051823994361334959181385664324421263396327877564299461854143820476582327143254881535822674035722628656654837537353173942201537566660681149241802641145802531844813333773846743436541317336651698257244790033610356946275540218747144830844460785993295864122008376863032425551066495590763810562988232609516288295955150487685789242999282397818381112137623013180135500694359949092967508499860252833617419782615824015214257039589661143341651966125733722471317925135495395655229439401689726906377677049886219628721521377595177939521269030010951714248229884915077540165416208158966389385818636949047055357507241781879555673512106207760348043980764337125200961641278285520171770341679747665441439209575719271066160936247838994281229394482501146215739361042533698169604255011201462982281660770959383027611626421069456234594055146751444466809534317979669052435924531265315970395796159375168299782734139157199155688288866974908435714968423517281443343603133643337161004574084379775372158018832690308436128679473590066943773539771945384945538432241990644616771845288697721262438150000992846391847935387669755975843808424974520814459148205067050463187952107362816830013091899407615440350998852494653888218869360666806419778878932707005597165609708380721065320725755494424199486427209900679915168806949435696090706978101388350960371423982779011988617129648365917511414972915505078497469621109922271628629003261297299170366318115166207463832616068226930391077418692441820324053019606040399501587987287978001106517904349999451675581519636095469366316531774648767825734278491375821681248224144974492543493682845634657083959091279632399669183544292372625997465360852530583092859572591910118377662024569708886330112036883909531308342788982102384976454211299424731876854000388561689645003755577402747909167756016204313004738348151224046676070161720577565088196032489035473042636310070899962883535088882266576268803587650378307531713327773944553286339896107689173471524507553069641816568665923542825768851497308382719001816546215156085805843186389866790912479547437838550020374078721748213540380201573706232216480907562358717713946415618826461086509722711817210676764496376349902072123180229124323345702962835347553193519816206309925332523741065082645384175530529292210347545390666879343468384155071200486566619152813128585644289894142327205103095664874337765827256098959675689543064239166565880521626988322693394753444590484127279697763794285772466158697638541872194392736889335236871760969148533731886300901362105396108071853112727855262826521934509508857398989530985580138721248185197932411517367589377127781826715594507155644434876582667057228056147575056801882970024609040268024938019465182197114833443824862131343335083776428083967146213471934940188346661505015300579796489704799626072167393125382332723255110769320769483365985297489879910887813279318905509947346508830824893027124545844586491286421721635238660735641780345301664109588180449432825568333706240429200865329564846664150562667303647957460707767362023712333855554131276928184302984376392242075122003627923377210926500880677301804155080466623152651342511298030742474293440634133764936049100764746151434612128119191430447839656335139644554810266625852015644201938320582074021933949996510474369424815496489644517599989832847185498965937184292724639856913090644625110179271031482331268456500428468741598643509041066018590310321383755294703661032403275196388231266904643878453623369442932638862070072480002743736891939551446050709280713966144630689545323685272799439189309799304120746614869962482689569112514188958894593257787341171557522883265764122846258594954540873131674601884350268863736455877035410561878586629895247387646627420860020170398914018371343289396640437768736019301272643891088829440876306203617234619165690248790965493449705630280428946840726096052695158813767305728105624985811911546610923416429385394644762245806773742226359623351876692634464423863965824749302045938537760804846945897973291572525703252552427889316366338661580469786112157089162653125026112028579129485711928254807759619848952059296585599524371724823596565798446715509353865095757738058047388415015580358075983665005885400023028160697647152329433435801733770254652869211898800414052525751796263056925839345628432918643050353345696995294052161620625143838712290549588583507525382401004618323178752905136791241068085001377120968680402641024750419594256468505564749774707726432427769379024804864354704396802883048745396182526599799618530224546199889986347075068111127245715578928309216539423338345285545923904654033955655796410489984468108084669054771385217675602797541632900540355875482271388713397026602301303828470091097323597256035356230525365539713999949531539062179622362697217950362772902329936501429596503456435308465371269229724352291425438548983072352936157582905463963450680224946705618044540693318697453485735032127922654969330173477612493568417821869070611720364461979323395727774115060110160461738819862528840963785336498749457962424614299656587901445892936018090638362228619613385459328036380417605358146096165985730816686604759642078035137165985219526437242145599940366754472892502301994115180810124886576412655014901162988035568731012335795585329201162488571445062798943021018068251494708366741240839688800509868057192453480956244744991874601571281910019810696978178908503147804099139208178705020921940759001089396629986810303976698255162920795695364339927511753497917656409229302217512377867211455546370362496284207608992691443790778016893801493593235517617469730347134484068891122105805222705121619991760623541897256450832045296819688573576270671653217064132613333270213285653495658958241184806099365793352951209535029193519742020773376367647471428211938481059738310005330845221042632876238119591480592361721986805495614394643543156062257955988555392827006197224064896527144123955472772086042559290074806846047171516979672566948859889061691108575456620832535962883284314892477813068784386129878619745022449588437708886163232278120377952179475807961320081877256412892656752159413533302217949262195866685910235634393449956592850879477545677562943774826882991561122253031502002113110517681453032386513335409527619140800444761856093339020576410226133830813751489329901255999622034701448707382383754825497340826575108521802038840796053232356675864077349111105146934343397913651707751710866110884978556354017726397530770348561838225443961468658033292754592597108755329137167563798642960370344545816060467030760192445570481037521191271272213073408406435804241703219321402766180717386488872957196767487705216180140116532356361674333248447005032367722592367457212003683065605169714564112196495196209677713049085321689536527995013155794702855954450261776374287535846033417235223731119612183019271490665773509918899858669056080136779410222424836900203650515760244602228964266191770956905423502517859911745671132420613186955580640371146511900949849539309233270656596333472798061993821557652493530947986344621421391148751188917753424235645987538362026348585222031282338146646838908614325890427653497622118808804913754099897912220334133359367039762201700114647666111450926191105772416556335961685395219293710408521204036016857202868219619422334250809505364490713419258165234259645077281005139121627186239975749337452455138447252272224933385314516035401654523727978139759988695760727430896964658835592671942464414075338536020091921140547569249020551718591492157232390979891505538046997063931861617642373826083510422570640273907313267485894014480327584316731667789734082855368802740359854213990723377079792415736138746086614009523436363647305611208142396870783320414158555268835165150176183876623911795645693873402820368367443500254817521859730784571395371922315316653108685964207363412242259519294344075394004434749556900790510211734528010997207537439146824745369995342214724276749499137703095669804945416400377011600116837963613571763094133398216646322992124144275317083323808817419902514975106736761939266457544011659040446512904862157722323187252124204404606191690741383418557019690645067462735398000802166631507296243081077646316382277280212078051574644348781846529225391982635570062508299601017862259682976233840635418107472624731830820229960017194827968137181216104137368667498873340165792178939657723957627297390573936497388473351282314722482219367694639916597332901824521200115017981494635740115975217618963382422762245187898495593030129734943423607620067730473680792846121047106279775109082976510116473826391725443831014711813892985173081493162701293498999698740572231334545477321805155004997628955457995284810665767169075180596239475470806192108061344998484759955281758627427239951973159641543144604851355986091929359140690836770049949894681498644435993561605144525766037385890466751404338847438973282141657432174027552049871019476953752255791517142421683787943286550505900987024402861577652721754067930081925814039703324462078664918812179935049988733783226339612944465354967990469507341402467511648018999931887297886756567241188366750919848767641642093577601373056678918429739883592952841953344909663504253391048831375032743293212044838039543961809405745883027091442055669672485609513323932927227453157626564432803148869995022556838850578595773535215570481672096276295252456214569083609498480058139938834793984220127480065068534085485239279947581960677629661320376890828796759790269871553880947765443336249241074519449570074650089612539596648088868481853161945830191093858085977119205570193635355940684285992864931784725825441843191159622848635763620354731526206149679408596509743599023773840601864262203065468720496262765738023112062170227251092227771718024363928990858133213462926829887336829666069385220126514453271196982443844858979314451756874021649193192184768371643174467140911535616761163707052861384597055776708892350752617113563732212202504184042923046065470863249540706722621299190571765106839357591059942831408287776797341199619082127678590469025694894749658310663887934701975043729687545474528413783235201575810472034379324053844112160622998046717610625661558568658404605113731052579070805296372541369124764476862672028893195940182320006373247710837537267004991552168064391148990379529173796972661433378255820165237805043545225376120850945511322532787104886255291159259231760015875089371146937840196514432025073120087491582720717879398925792319123299755478985332982074746755231609361244056497234292704554651822284025080461229689520689588298071790571812582740988286891155376180255096137848894004424858938215412361946457089795384862704881279460606120203820657221330719476366927033701731641161910873790884241276584333699129678621226653561766850154882137455311528230670502360667127837220762523975953634555361752847194115878510222138760086888039430135133658033206375947056191445927723746465856291957534845154706591385070668525735150697519119199716241586220808072407173696995588534116461677460500143067088083619568277154672391295795561786716166394084640237031773514506548478708320307307212301864755159032499880492002697467304250479692259521089281068264942046160363235997846431659364865512930560102005202875345619358979196559315050720033152346843324119799881699941819442013088137700545039921583017582185995327817754987722801213784295334718178933448347299114657786406708155304797147589108452002368795578387036072350178138726076303900299147254613075769920834543280370891735545824376275035864245785859598236499952165075961562786754566207186428137279557666669829557127069033496802784896390816475089636467384548618978058425885218093145269077292623346374386247840624471624654253327587430288079693625748386556481025887096151922480760455968319261354262000269180616795249611185485598899029924612726182282021395926553261844797692276597326119867812095434114327450320866369050552109421929781070295642365484265693960319203032798156992969760706503981989877388709629774647445361550639305965770982756654110887634039578077967168445215252608242578132743707337335213277443076366058571304355305011871250493940512278842029268387406693740392223037083059278433776687596829594541403747847849533103897217343642885717625548354949102987621693942094632288662808342020831030493514543196827236135021631514640171536772481811386051152723369000675823921449707937215428460885656278227039018579657656515790587200122337745583397072087290395777539900641846708292392061714004111159888090094598357060199312902943408974164079603161859930467834137374889858407647801334290200276313005456488080359341786661352832963706388869655595694604452075773185112662690219814658951140328612325024222450633700030660152922060680451173565316657762537523763352226088047173351549798233065034962444788201230177509961632956017709563946284509329309678973556427208160631257957117156794395762322175360697802993841188457998871440241658106482241896152373561347920875281497851360618641046976782274661980666549750056947198971203087236034457143995413710877491999850868701372536490903119446139323515179171858782597093197195045286422145518679593251793443962231349843255517592728372512722799562686778328997822140749191620990745318725010865522596653241427430802630523247756361064887065190420995775018055495042959286404489994277324097172886647113478950149660884829123623102859360347831593646026432481794222386680795317010241638248129597188958994048950527746481041573186652793916597359920207599193593525931532673941487957615044812021594257514606084635653197825912412322664297990685142310581906608360844456502090792146543095122013144850473105084604664248837750416488526078345230302562455786634819851707577895826902706706294778140046764539198187526108225270159572362810497640682732526042866696121207242205810754654408234271157023509312955522260742777974275554680026538697436364427025974405466035732403279432890222511897610904613608933231303634855850073675241093655705317866392323137345878964225725070981058299423984094034052062388219375691729790962204450594118581074038407771253312256751929490943361079199437632394698093795591690458174846651754783139271073852212058354969527534233106603101598470206352665675740380770104988487079981554710795230718219651432698843999834626207519172130091718213935542641833042730604977581308193550557434491063097649605495893174207161019801444449532772077994618884699037336872433762114244741680515453783996936274361652157600218047161812667787424798654166512685370656578541610950436151453954596026129969755351345930872613144066414884818509097852029447551315894212103539033938155946034084260321861472132831106799747011394915482311434376199539771689889070944750467519634648100713882879161547463378163012701740366797940672231023503928660561155738512087669097781527452408037761874349840220599389040677356309296588058823994861117787584352491964716163658020768046163390140134002952422639419079605371407236828969060172094579081930405402552166227205087992409792635015317264276612499644149542853884907611071296944995395677134036450422220489471523886320340238163498268892104697754911756548034148168552306035279089994558218932062013981904089543119651827912566292311509073240863042648319547241234268824437882287712900629824047855245082528477584141748918458464262306337976860004193998364577672429869399000025697130770783599222431575864932989154994244775397687912671392616700084673210284659098218202085173529987244792712160396064446865375610069801908360374080771207560844874247219236471888849931021277607646643423380692973931804249656496001039329350187218902529853664362574180341435666907226275248308858705209270271563382300034850331411703778125435650173813885871021676356438336680540492470493435043130920453750626473154048999380922965950655926888050395180706554002275776606197034990765047219325195359462050302589653307481736589850946916451677588682683431403962368576113502532440404751062803001119198573459025087279730381766710775229048624526848233093795497381842806843888350462941393217046947182874725677186068065321876659856930708768495935114840449702606745984422371241833536170732471988512837703703182462390140432723215440200783568114947776275032386620932908803177097642688546020163365452822389584043960691052157318604609193711298533118514553752596942890519727519481463658276304847347498470839169203549806971058143161222348271700701557669641892341103287186722645297881794210428448008698955275189643557975625668704746286424101799557245824693985371915521737427753398830003827817532783786432670310606246362430221535400236929990011034508608459515305917902162854002521085517000214463631248523454460336257264610986650542742846857933743111914925398622238007192507872016250291624851635237984425707565211500044707043145597432622526409240854166444840866679422786225213206573991216963479483782251125688957871568223326570963343935053178270133775203318000260847772849608975245201687143352140316163327770904610864345800115237718394909963550805074451477071691668952356472298762267742453675900568491797906689348713471046494865644785691932354481217199501047048471463289575774971217820514804488494261894547922797667711393714030374420180388931776720351331164105383621060667488469414141499157477285806476412111315518106283300878612314945173054655009465006246644154178895708729371999879199527216756299586774675833210884293947781276002403586767108970061286410974819971622860802429524850739292486006114482729085572723361781654412221236062757206024899169977951689416578166970472635209198354570891704721167950751486387160557769115978906523114040332466498244453868573359119115309206494424729856526865589177168572811802874555543056602814526699261962678901800924827366522318800521232202294854896839068639488594883983870122279460705773951706048702169509087738644846815025467048271907409657353572306478369889238630182072401539583621230003619221206890760526121704825125589722975798290889516102233271316490994282946715800775264199806583882960789546430523408395460669099109360283120761283028550597917748279226870425351367333789019032745560778221776828761654909050087241103706402185543842961566689820838439139912196001454651591981306358251128628351577567559268292298420893543432345149487997824927735514412388408951539605150097479906080965578851777538385325471632638561732643781007083606858626895860567387985002573614410189767979930770247234508414999336218710391343017173097018774172023244035715570018568043982973671903883338073676467642378792942406577824128946378117935098843799505992843359546605023020262944715550393065465548322282288126156232161833885972482012917381842896797351199998403295046736874511666641868666812585714343642184953654710313551375536633432918021190676033772288002544615931573784432740081956242476125772610794565463863275900744469884199414293791900774408932609385615877629793231954384804799263287502741915304901069375758360529112533688500342749259082698255679991741909390542818023047758592032934607970397620823288412569475029783465549271217337062502117449261068069763566335832267412250674877604651960964569672272243968547691619645135836748902335873472177566019489294730314580032205634718538655085426818338156836269286095990057319346018284295998119119825170545135501205737544520208654797360442474688535621007848850213804355146177420091101212927400478536395571314076511773261022075465569675797518398602438397544417507536779525837359351724136135235507504962476813317145688502597783377521287602718691183175094001358161954043343675475331891055472491942665066783016856403847145674151633547077557423308024305583396905276836600343464817618256383149388670747302708814934394369216113671013455606342585764227887748578138849840103612139038486450715444845661049143206765552470716864268693617639196315078348617339350883264099124653202008334533930220932546344854448120072820952957724911540460131170815419332773748872788906340652191096352045945850433970046869692382169415255732897175109593555018167436247904619867573344217495410801859444863746648547204041505520267681369896398952708970617971801417708174867676427459670931706971771077262659980000184545327899564788831060946825610870593367605214243722379417243676260458298757308602349363088128791195658183138890194817176805301422189494291486482447925806454088030791472071347276985584064837091834445065346192671699851277169599965319649843421403925688779840709260477734105678958700078331347235881661801630671370463833154413755887345516348806754159815926409041381494632384313687384554414755353037567333431215346462121063396291549081992475317342500077420263590360568606132618241659208731108299586152213605899524981193996268741181091704192392372486521295717181501201797125629082475862245680087607164035880407814846889643254567955198136244322378186476541934624902621148085353342637481351879236950280670988786601931852623591070691087682577085692029026580189820785423822142182484784153726976130687479761174870627807822545474928915957433486132559587050498216899833687379892360880618114122427260803416448438849399629055299763555731943654071379773693083705946945734715231464826682470763820146479321358840133894870142658245765779408564438238998939683277769642281672695886201426389762849725386420568782950621335255590837446444186176203797495241200445283685091926769266213982187920584865215156028435892117211006320699835363061441004784733570782184463199049703500020435917126656763918545101094091563970466766735850184779863485017138560278077152288222637009313949757631437724835314717254346422005346369791827282386777495187150580765148854883938415265507713404776813755974045441594162974438937133203067584644809838227535396052125620690462433100226384685495260920039370235802032975685058071772175046586176543787121980238547030752874316094789061834645885215712695593491056119592423781454018796445208605392700335735865825357350188780643142893452172541783139387516148464919234763297274113568003952067870848721476093415342492142925301310752684668330863927096618920456122009569565318261629106295103503084828219134180258343406476368165648116531336408374985210242361601887811962090086752557240169795476348703900940300083007675435692279946519419987685241597394180430356487084698351094595330719050770306835476318630096177778631869589893149041853369425669802063182689646339684441759217020176266189631930510172248232568051618550612556021500230600632205287111700110929817393390836492941255468941218465983255359672182930306834297484613508237685742383093463655088088273165049471267382838720061144117096986396891389477839852414981412850132512492189262445161370597001597763498061262433305327889044267547675076809902317514227014885365486868467485660831863184752448330758282744354542582574569480199788324367040666175290196830549769687149429005800501764140030746463356855098935884522089628209074529361431298425273988741850875686535838078561923368905751969660605647572905946811387577987822112049102076117477254342100612486774688693488160883592146641486844475708423337972751587240134087789015492810850392090173950413835268858946303868001637152111591506498208542566986973306910493142362565702156639334234639661269360761026553346368936341418841600789209234233852675312546806937173881222018444767981066197483710849445038136436164227274123578547355842415339621842313022334397506752715063175415082280499208226251309517979394518248860388577874948692221207666341896456197839344741617902156868462734780359914921976632332919982820813555667297355066179620959657474077607588114304005779046774600395860218327268171414710298566035909775139123223526500416254167593409658856976039856354039161842139561638003959892874238603470386542556181738403280580050476988648199096639125726334257139203870255308430919191063048725056861252761299055464362632086082537865374493604624383947872343303940367904619172356157372539766347824321570509336533920104024408264771873486042379350254426560751497936140015984893397310202188102819093639607810816417617305473789929406831900928913880317166577377897927925324111898406533309655189124497010583316310588589905454882786966283431937476145047511767437203614525435395869998961059069832795383430852975086479251252435676254376759269635086565703603373639512585859290056660958490155278031632099757610162010841270136740771789935603974697479064069780964464499166667605100548630085149200600570778165598863211245508728780555706555848388153745282453977552171580964188052562576590887171530956314722175579838428138152741277316864499780904399572597305520003195592700450989983180922202433145803670444597342453217244389770949186594741276362187997041714059946016777254600559413392180971341301264124926132039929449560958498445797147749827874399375474198169950534148003011789054015195567491394588389409684344999146760754861963377100606383470548000474497670732044244177933705479500306356763212857507832399294219546280910573753360033495480134517922735564978992620004368485032956367671052576627367155099054785299394379045766141051462503884632663614830077099935598968601596502444324062283718089753324033462516618487584636639866443079353394068633138333197542801391241917283308537399759179172518878976107935231997177659030799419338690399820901873401862544675108653977017317058567674110867868440316605644848898894408187268948690244254154167019595363350714484305436188940188832532379851906430104324128195013377775777169126812778304334323180615030100353209266753992383253999158425400889035993917951996292599837459719652588332299214788854613911566866481847035208360201669620795386710965305178778491099701892200900998652114751398948940824883132094933290570266054068168325360420714672250727270138886294349649332079262833492570851751518974714812843069022995679762718130415365745663718127642245110020341440178054105643882248770706206334403448999709349092826966129288316915158608654073551539752465719618780431857496090833229881167078487559202527973650825367857567860594100409666683834317810908702951564048898487226409532188546343791476148682918093818118770503428857843372668822871811761100370792206702031482056526885567991040872591552134590921019003011349897754301408008637901137166830266482701531848876663774601311630678440116150728466975150131832528856824247140852809489809204305609419964064330729779220008669045769431675939624544849697749150892245449606387403967268753070551339349882296675283441213910419197081599902486812243337621722868578451720988753169376136307493005241126670446046253912655939566292524108512745933214978240477098066917985249230984772567254979705561882985526538906605030474930512699639492432014169476363418163212138433568993145655250424818712083193879390189449235471291697879153634809299873511114696008558312562897055086422829429620491298515910246703353506178119509937919476404625269781007010519530325496142029620534097184917140636086103221491078084718840845945390488336465701630413268807666270713254115288026301175417950488476628909838256673242515361866804104906681681726310312368769832987805075649182856395551348460326022662041550767420289993810109472159634054154472447459157252650952215936183261548917986717171525290191680666286158924356699737122285033082181956234151140606159456900859477841864545542052562076975552326644075234064284797741335519748758218892636919235493623595797942142703965664691358537738551862225132185930125337057422427654076905329105230610385449033191846560763017390317152303738021663703308916115810714343399009394492940308278263160893011932059569156603987571605228770025447348040480138057097244130136014066318768271764606773752252351642387125042514132845052600402274047569060752492372227344756576006849746645370448720599588734802229483376112679171403542453514522614299226699644508183700744913470415645389341697704439867992624013027047508067765128944385245245317558798787810086615978054146801839374065081242265274348246684451858772511718930912636579882268111768287295718197846616201539814009826867415010224617353464242213330201559775323705098490793445605420326709527026493014340818790159889729657375373382765219570259221730857917362402546886837313977958314696342557926156785348340826982500251671032653002297488484119055755677341223113367814005510929009134445488673346660436006278637209463415568347252262591603050008568717412984176314949775778109783400897614244656338818421149488734200025627457580708191270120381982999957135804436572176609917837632469398319999179874794572419171767383387892985524595164142113668769492483325377169376140979445613311248691816150662122825441331472479776085727599954148710158019296603907769857314881424634635246981934922054523617210252095639922982336530348144172612073440319408777130999384844442164340900767194219040354597756150343101185850148187347576828767090592152666601825439929882111386615684098530100570575540977475455044403880820892861262320903472888264598753697538310494304509033680185844714468004809102564366760971237078969183943702170972638846400354749916958144738088201433462338986254954502096233636310600896108994129792127592178358177595319849800957117748331449077416782717527735111676212778064551406578429218200829935263025529605757632204413959866588202817167313817468218070029479613686319299361316309960102998796440566821072459919225779968728523790160151409902063798939671883466216233260947534423755676079157100966793569739072761194399839809654627945757348623951272344177124216336557651597864547427643591421510563612794924143425895074588718043467177336413722326763078407299420194962664305973525752943004466962949218138073370290053389190029670326451058663095647006171254599367768063063057000384928910916402920381327953551436016498578218294787852542365167644658694522862316390196105790508821894241786684597307859228055058267249684992680551788569184153357987599762965968226113835207524923557091534941068444204750209128891131635282812822406676421602307616150572932811790339396683559502353694860524678204590594860767370220841991958653527667735529545220726401947440302354691876375719298068874507768803141813749556521943379290755975987013886766304657644648073861715394897829083089070142168387426498191348963509145085033161692297411244620616701031512452138672570248674972599057160216996787515309266077104160794911033791283146105106393329364528412595874166460900970306436103638618631743319202048643274983602658690335599948876543816203008920316146119661911566854322722484320712654529394050157140674414870666277259220046964481106386214750788628639539420029860582518662745473064077348453283615624755317641668926472639364181912531606246248631660920452650757321330667915738734232592892655359920049682623091321243688800802518043921943632760822130464516451881434466816500749496589558376320337498105876772678335237911567153391925440345385569432761644880921742350045751294226585961974903368596916226474640274461778249772493420747400455403848867344670970388702642194368284594346690817568581045973283659266699881080561556267729559400261317758204522237087888342359515424142163062555300529679852368659014379631868985385690899141798361711572701404800653955023479227711587114908450798304183715918563152613803284697401576282154382600919788761225325904505058003423255381776773058286675931362515937053016192326865654902337424652337154943627525148000746769895065284502500557564651053297523041786095742617007354490930654173834974730188890663681721257230607036926224409992876795331118281793345926059115814409609522168376529574575385266634804670899118262181888916955704863536597515333888752210893752212164573438426896598075313586976523934513427931841110301552637080956436449426691842043069728648610167365589355162755055841427316342412835151158397973289097350678686366222703342362495733052658418261850735445324963273793540506093553937005912791810973134325677188271849794368928729532871895924595807951904419252610399334882435437015621736501664157223678108391606810037615162345704925064917123969842823731581380910655642455581018010826177215734777219403691610530862624125410370559490253407961641903931876927012987500929738013005929992360623927780178409943686244633642215853246957078656872265629896177605018791523640814083991717060992633969955949853736378544047716983345925213030515294432924233988093268833457677888102705695731877939811763899472827317016201162797777809531882425629417972652472461325849683706125502114009194876291941316459395946531223880308718729115048581908549808823911101363212841104268731110814772760607976260352848878176136074710062046504099701419135848615647499692304046281843291481111884760510409463655056477165871869284472992240739568446981338566839365554435667123198837974074254843336646441992718641133576650830270335227760821253815379633552462586754290313647784779435194595329911205431399132630863204999088857184586669175029271891910169796276107540165036376222526951320200910683632916647840654521203148652631716869054539269001874007552110748299270308420097691604369645660877562920292905027941534185267045385308449838295211420509582770029361884363968021474279294169468873514709715080938296500456352617501550678732635525245034604862179489271962089716838350954797136153438835257348347360315777050901659807218328832245377609138397887979465772108005144286915472618131917323088258613341713500409056755971315083471850020030569089294494421865346630631411980571631632710899823671208722297069172079688392343044851741586719620210152906222959245325205280769609388339214161516287130984680946622672257626516394162891354257705271335772347967825107061105348729395839813154107643691934813183769648536478959280317023152938987917544861244290926937896264702195972741447346084030833700816799706042598583323776721757810233778857772653699323576415852603825959255456798609696005900573037864217940233535311293411832368982086077955436783892274498034436781384629968389722363025623760078150609131400314448250972861328139550709421237355433737316845861874053678365229822978347946310911502572991173393488671258350330764345508483517792855740732620732099557581252551313221670851291885382722273838899479277807759659701824383341511924404593630224206883639659933208673132286575948980725130256637764217291516220947031186054149519818589781826703179437144049834406852569798700099854134622876926519695953770516335655854562310652778790552194271720104525988646106815986214397519355795975364254434841993924805147818581432928392153698033914289763141541329763041031780310806075853057774351214960849363882346694301069305297605053874079692335590423845528964851871991727613262773997810821732228159609495614502713218604213696405784346703208184117500375361338387988507113830185517494987075005524833546139521220396687061603941658999904371254809735279026224801940339935060713687175270827750982545742249376380357111153269492378032791466863484481100297757916096476196739497172856231142807571552859944274264861551316864630839981439973139980869389989438774898551821111021215755728908489000200671979997385478833400529221236413890846338802615574611413598843261239165089667730789025111910762303044967827440427963090837306239070703177187997643250392371237717338156895267084041257589300387465691807782958520372020616979595386269943520636432987884653963015700352151837379757155697721496632768806975960126970311013502613145067992338627173245064507259648989828096648741681504582711849695636340902369746248728323216066524852948698427956651326846541005248309875995804249371629342544816349982178749318592529413506637661019942311554795239872871240901979692082245097629967300690059169470623171856841434560292089451578776461537557447538801223698593340574658340635359370677475426321834254776972410587215795610272576675925213295316432553669584975840119342803108267537160044530444226745470823851632516955349385989010143216906656736104486935561533257786651082676376511917604912761330439199115794169625579540857981645499655813064897796430631038947947410858711414868027754627036724714047143734420700598196049737472648799888159916772882088454112377955804821045686047204393416688386536172753578186209364877161168424733458899695026679641663114791553070212235451527415016714244998215752324656784302727998669307850902031318756803660852628742154892018699400872514216449368896763297280524035687674828289149646489308855878009309790955203150760751185989527168327726201669204252463589877119600069187438642581536104447903876495656739412646212246058745089869941365744397451638815932604318601213007660366129163954659917006766904189123516240167990093902405992247003789440422019758304060398881206985234830285637782473659114515804761788206746672413880902822100681535999660180576702173283333141116734162920391304336895135696649683920035911283185078953576169518859542094423578200622745501049806584505470640683377541050201175550136129514199375752618218872666517042708836968878626684683836375080945694267755329047239017916512276349471922824584105172760860828240378183704414693542900840623477692098066349460027988034758198818630193299610709679556343599673560442909767522025204536034269947459598502879856195266609075978107523838709403657386640143186424118812740068061465128352032445694718015874255174429444097905366908096590222154123021977948588034897011068363950217692274904112626352674413617119930958451531278576668832295554390269946449744231903069661509022346559113578174488192854091289708306867932909490471818338339118678817384582395308491141542449031224901394424452717285916459516814689168405625974930670011003027174064081868304917359020431455646379621277391432328336991815315566625084261908377709736225117578315722909494322664876523656154310089230747729190871806130043100453215480984667642370815786579224450722014860391933074901870469250076608280215805654134606465405695395113159999794326816215870652109289731007046681571291543545049868688556492636267936912804828953774194242164868764212667271708439003368906993820881832528075170426250641327776590324286426897551267099052766248185704486712593917954262230257498483024507479932525015076451661452673496146188251789550816519622033894195170205199231615149161480186101614059305615819895459106396197410639028860815586506973772948986479790636597117429125479754647643570676947849754111449602120871439944537657522645097193473898493564410877173885601176173729089771584086084563557740109036865859763978496872873264595973084894493879944804201755197665094516493531442459922592129093876915535566832814491948747120680210588991115127931023789429882451857607932653487359801738280375009175822592531757489373500220936657246942734891031447998040307874700868720388002810463756043205983253256427440286427273593565810111541964022920259536865086283000348612394801890962014439160628558940036247079490038801160134320740136047583324823950895715377572043316798860520432258597056503905925588046755181571654058943611968807166812258491987288319129864061908895830357371083429331064316001661289402030038463905471700561088628012251316178730939799921688724046974731199165623469653188268789421124867090238586896535763834469651812667823709822910996287391327652849185057646776125675149845697854010666139620953886852624942819583406808499894463721404322749646238924335075901544796285794970796334476315821565571854701711897740496899526845470198166686267506299952822285180554219437352072759294520533796578565133370321334357640017353507507247790223410458130991668116804524397382786165792341286931071961252096930578408285678575451894226621617460933740180600301217136765742572564321260001231667045236329576849806750497791490368120860947419098918202933079334695127124386539605411224517808972551644799802684957281704012662518715301617636627387491313995403472901666356227088939325978382408877738154021944368608485041045733200810149678107833367808851899577516183463117085872452122777966806989132230127776002348782507413527652165348101307378758396393417907617333169878608915672980769086317305586797539974958587274933033913922501908298197165754218251967806989326392789413081504009495028365642810036588043508621579272157318680536630696152407133386115703614100557172590204554704944671321226600707509758088470149698979246283839308338609459195909537372935956187100577013750519014397228838161094516437887937575097765412942246028280078540975323362045586063559075743465047671652691131093062669456927001676284035117772946314812131590096798247641897074827880548645907061377173955358399714285369698281743364004799763457656787135551018509434019339579733751506414083019833514850629782215978175840714217057841445448928926225929118513871851447380319127525021289484161258511221530206771957347020726222634903105245180947155403774124748992271910519155983900052930186242868707425825711860286446396348161075233956482568958296023761966921270572275773996202499760435996614748281651069455871045906909567656639109319910438361136440466690343501132647037810270583565993147871500246583760057140305638176476997891940743465575750219495161840679634948587379036890160772406846965761527583904408110177387379417825305230265874443620726149558953024685795053177022916203556299844528640744142392364009346428439679292104676759241530876675064162630050102226702733944381323329910847581908081477327669204514400665496931725387418785012316167016887618827432822452129815891629314954264517820692877482996688246825791434130364630038911037520455746985161720202044085441198232108688896892779805957115316146213760671485526610183819419009200067826441186663505525447292058439501705140788236878970767534584136303534678602901378959873048889389115439449598745610887690702800133242429921943546559337794104500450328278192355578672391539283968283620258119209085094498146646571194009383107276309199006800062138720975849017796339043481704479681121425268438190807892065448493324054139194590297747904539667020970342589319789280492868092625507002716392320150634995156014791595335371170317386679229692650058358333029840033715456133595610229257655302517683479669050113447433879841979295680109119316791486028067617857195283324342282504689010875620678920011626646811251959033708508005407345690592109379055309124052335555833218080328005921539268755597176411045093885595975159855211839695994087164382355252113365373210200440347362643237680462391420624425345771490242356377784975796874268910881669299573047025435937620829151287176866330953266231178382689994148605099868981832445485564309944796551401660213288672645347289746730228649211390268071866156688185279821260204382449898960111736684850799115415432030854249714591478756834755713312420974345024920008098666152862945843183554793258020434928378612777104589089824504309309064988661169945925112511736774722205564556028608028980385845863161619747675768022887806375335687906993446099191910934128982895137818872141029623918793337950383825054792319435474855929664380002289429698963028050047557956625309382920083002570515793302505968262997388112807238354389427302060103593300083118048387494143378665445278193613155242324285455489248122914874714548020577207307482658624142546237724456961132319184329510692328754879794580342205645610800408047061706685839756010115716152299960858533698330391484815719831850290582882073766809676099011437881067659087197535008064164318479141243241723787702248309476243752875003746433976655641950579997646198661624488966341505592108642877927781708763708627805372812952144947523131969879357259106782223468971120737106113737475521581049353201232116494367692073510815189712897240865635187144822210951170011143897682910260033793755633430420390591880525453104512365551291076099947997673721078045565371505874885802725218134725910016864285856365285259545346601935122669070402456373613434982282664818185865181361304135385940981481293027500405233012848961648091642619387566120324558501316436576628535792746459041605223252253975487641441599866628171361971325433111205565583936637189853574562169200105629897334272362635720321982929103942099241677225077583946435880366376095811182185775228983753144373656538816919030496488900166825402717759359796843850192747059849964460640157434760151786515850591965139960566766617155321680998173718413788876932760381686705372869503707384993073135700784131552659663262542651615373191994923140678306109803822367412875548172401298002100913712047070335111222556100530514819680480107567749421288332598448154039543882447544546078032710589261636482989113592412219260510360156137635547244955056349562675969257301388354514959675887975376967882073472413680535441593577428257817790186450677483511059876560877924253481641594045048773444895445822438272722018693103371772018583814299827878514642077281161189898938598899734058842462026787556597048512077739387477265264001675862353918005891590732102183590712649579072181260497857841916618433403255380046993862539711557281989549944510024055115109822997135466802760953296871225502721178069246413818793064903972177673641950919998061063467101014782410920431929677478315270675211345012591029805510672731707101974694313491737963968305287469988092059157211632924706012484141269053340151700177394346532957927118048621509356243171599246140989495299641319797162362414239353465936224085755648632420195211742687326885224604220869018474906694893261057014944158520543496210910227890988810157063097242121042988248488371846519993734077977636495080318907936975525134523100312898075745526560147370873138958870846736527141763508946277433868539474439458791602715529066764925522852841856746817259561836201092623158149364875808476666299946595289002438805786185655678192898923690806923441445655685334226109604936017333086482968543743494960093000651192431616377809158732456293789716768396584154490693005119947847251540973904006991490954064134706916465008803251110647251617618914714908200928682361498579607933052793165756678378019208379515610030794578826837543130705352012121137359224173870613097830366915759207643925502582012525832091979169740688874033442714299536195128940204741579003729228040965062438192098352036904844580715382798824696789878629805690320509722223232139463368583265012487106553531856158663715328770950191247161530726740581952277344969088447368395320672580327402130237888205651029348705069276065177288555903478673634859856861693017978843649035806807958213788957916846353382392216258862611243641081923967197508742681616029734669421158471367910566464043404888097169967162257688535540693037297081861561714878858858464838515492456984263366730438073509546045667694608602907976719392364296754833253987296769987979023293885092281143793709535599655612732569905895275093654879974418653414940466038113971555714859797555623841289705149149051198326686394855048049653296113162947561784526075136914736811270068786896409001410002301832235521145377527642012042503843851945853593686509196680879008582855505039642992610152260104471189437910168471617544447731139992755506475778052467507168433903292649331186973513475293433995026112566657594821827479076792171584834022046668048060149991294651602283901981065872106741679363821951030738004674992708214724043842190160228953981186725559101952398806095416263608171846492381077419328598645516658050883864585358886604526034220472919635628255340859000082089387941676224030008797151791557337155375568062375637434762797293139513840692960061559667509077050055819287229451603666549443507125156603054679625574331192238642442935526839076406302534041295111923724861801658258961154621300509260605195733326759764711285948007104908921943429494619280544706072245209441881823275028570533739612035258760615302122707144919076166043210125066205640320876876103959389592024153286546873917411549421192516224792590002297962600103843141970581602671695156877710676415234811324423137732444423231640246259356684715508428730155777625541914038803647855819126914668882095093707263138242503608817544334163136012301615011802548827848591241023460008581893511560835720814988116983668217283925764653418320734025186280830657175894908806019062660421356209258449375728209076879933658206874425068374375365907662710026543681465516500623640351759736602772167049182121791914981256659390382196741434280450895047178867706731169007931045358247516991334990478947053721218099430414130131664213505403161709165132492784130446928096186582420096461566872796714264012219907915210650804056425532650010823130937471415901651510839078313592102421669065262226935413487884790576509607542088205444469585018050040856100045028865730112527491149115369533126694850722240330743810413202423184577327626174752104762637685977693088720180537031801338017646134188732742866512846716906591534297636018332431127211780905120413372872546876929067785918374809379068829820283848929144046144275895059225035764683314951166560560147570276189672847934061834644635363271370468819692053358609913673306516916564610166714531135242712691081580889749037884865771299455276118919227636290316375363591335425981657691394840202243570830450216929220325449588870987080516208156746608662071016302073778667853900639044013547834888722249792497397969915456484946273963702867640593155278834797681479046051805793964403669856580818675480336756533242401181152684681057825868128692811565664300496928145552941938298846577238590609662780081020849380274008305746007767951537979711675281055416519253040654943203908847126946572689363782598468087198370270934266807179249333217579154144075382017565889435841119893621684474426733352900525573865993284784616856839314183504464241401946951029887573273525687110865824546847535736714561692462599689106279115816579617206095856690007289489252908548452367440397372913131766547934862821959725472463390387152599109401760404305478386217269660582764228968378722362534930880408231194741642133624960169622994869853120929929604338968504614973863425484713336622234506510097267539671487920878125074669659612537573674160693534239226427822346455258163358869076298137508324553749156497558143914863001588720333504197918658715661572773181444597534148999651267899466610761264134702616671203810182927847446220568657004224742432558432865980427673594945952123753571257167910629770900226947747968559634360387073033684500200729416524996492032366122265911404549461347213894146809215337669700338278865719959313787742292771321266511495310592897218646285245396409529157872016866351935688750297154313333617943202924467468133781709639889490861560602387770047391204713334991228559194928600869448360814635420636742030507102366649935779148822750658444508245238470528996306225257847751019421685922316683871540846782951351795956557982272359046294648427315076002379057301944935713022841312462355339602825190279421497163762391713866187614937270009478749435370893871582043498226225041572190691879469761629770617512271156729140864352560143351014427779705297617528926129462569050685472222388814438064645358488561045302299963396900236586082661841651171333610099347635216658772699371489098708019374849516326904168693781337953404587514193796477257596503474227594454645977699556686733084993737823834078614114412257480713320353031809501280878484298075638887799929539690548969344296708429850092318932831205110552201402634061804744651420613111863829521178351067825586365438778551870341327718509509639202866618535482265394401475933136959754137655841328184353955341879510540660258945472465187074105484692991047607855314016614697267433521592816005327463864303680989414561332606849179811846584902381132906739568042369346345978814150771084364650864408351208986122824097758450419379732857468542150362427317689566843798328833412689787163910719833714712194308570733854401534910921267078578671649567361121082181322696981226092397315620506669849702626483026933829649850146989860054186798207512544285019257069632959085740897455328216434417735466662569557034834745296554950902562796865600946403013396491617482406478417916795667340950478775837306987760624838586590756576019631532788168228145161653097102984483151384085195767092484208830928984768177064489675606544775956046312515039900315149461382078712749430624181044800100115485147652073992687705272664916031534770730654345669840141213277004334846385706695609066225635174207398302378980052887934714831874151372660453128790098877336988333446738412172731000099842564299391182797050236428174359387314459793860190438650655895318923766751359937043901061489745473613993560125603384024119841565339600627809924907970011041490977056553058767792846224802769388650006002626521364091020608079935609713192379948021354547372893653230214134319770933553045512862059769059767439842569745433773078563924132370001011052935091315079007600158091135828525004462465895806703693965816495038968489721436818831666058948004268331336709254087060295818262918899370187273553086451682325140380895175006295524262156102350966884205807732855677121467826094613149741102906702012930940882994978956227624267150558355120134729748176063628773838294929730342954029102723902161061912224285316999578360679145788878349045976223501675545829089931002926675846986343182794824412215589112573238456476905202696834393089938922021781044819436976503915412258302054211944127987065164928498563741672477211474446094725941742435889874180865142021091169209825462935465212873281705022923096051376578569274429612557171889133580022267898547392824271282447668790538050398133331273068939541452673401441388277984765093388409043267903237916642414048947571056640905156720844717187140558830711856285464598065596011940899129101927018394831527646817739457885620893762546449835571917322463129004448600319371665189346337861199037790266676139438908420900646847828953757110325335758289404401293163531604542162337078844068217474448890855483126332360278670175425175462873402722551578955370694106579449150763273814081115144776525736691444797457140857153945251985892596705798304854226833107778687519842420958794236998887982401020278592963142739202223469793400421379689618570474779293343096012721883428070588933977804719361560334302331487095054824445269606791704777276418318858681635180426701719240877093375566407111174750944190164577325960907374099916728375306597199737956411750502260750804044004010746342691170659815991867893321701855713821870733900304618395776664342625988389261823837993177251965423980219874317005399565116875660088259243933959652554701864657698509391470960381647862227509319994501177078286777065370489359048491081221292431803544470103637819227409706541536924435777131041581830231403942759416305103880212733491059070465822190397953820232350514945972007305848974820399999529030195059716413181994495251348766872411731786984998381475600146310932342061636048344634149112489800100330713177537092010225758690686823521905816666899949185860495878255914565077830953283548257682145223401396882963676512595701201741919161618964643455464292386633805033233587173976735808498811351537122718092059855808916912912559221510819645474635202154726453946226262795147730403835837929687749640466383513463755583444576662148563083302752391003985272576536749525090284401816871478167934647076485925678104470403648989969520621932716027888958813153179549451421983263955635538803466340313418280390727089878461791923898280821209352043877888660299721611148941238102387726284393188645349349886359218698504212134166090690828466467338135130968890508422937007600634611327999470849533676367357151712886355538433894036806424256245520805447468920525018028879102973966084882880476880137783325323802681416233622120710036384465486738611002643211420870290827964480549631674091696509950415522466911462054567600089922232399860746711982748106517723328018168832132174143138373687969133195683980954352303014965080472835630179710137859353218308620523751178862753193731472922621431189497377401334582175793066002055351495991761678867264886427898733367846320479781770133536818563804137120788689885665086673928599616110912688060784310062018957341183894788430018780755735025014323560483001275952759657590617297986977081135917124082422634364014382077465954477806984239377015163383829421650610765546304563708124529786230460288106203153968796245209624344724293970499247685732299292370411925509757047564020090561043627190788578817558043325167296602144078907225327237213272735428044175044134391426011093823615243112781833519850139632017400530217771834226360687999386496000144151315524347295295952290615918369451643528892433976369423705759534143139217913355415813322328494649566926927924107424078437254101800698726134391533055981554372990005036034716756636145436776350468941943022299387063928596623594359974151791042421264870126410620216690177636832716660569273093934276233254956317435641519184492667204737870626257365607430256396730982921758358087343484344213121023689062756030206270304609944705782651012384167069797448573016663945334243240652145156616815873138156057712125913334185020996384107459476635193971002547390073996720804345695810464847735850758554746035259716410736130811776714280523761831643494819780078708627654201546542187436924368525496844787819869179971118866943807453740114650118218002673138869324315495063842886010572576046492548622835643006588243132150460042860684434902345906968686304121965887644474835000303888673639484392942219293257018660735496066791726767866573753951608371578595505661880461752065278161538890194945281319587844291260446737345133110908474767140104897064332225526462485096264266712786950104643191331591231839387021915346718846127058867989121769985394619633683437359272286191563598569647763116477633362644743930843044338114515054589569284328105756647607520032913169515395378128368915814808787602227836053950881280448880540287096294838680835837228207336126915378453749051605924943291427959771945096639588791114038942049866034494701771010474956935337249873268896028848104711495043515485862026671662975028376010922195115728385019821880547997201761261250021488391270542388359921631597753387892157274972888668381126002004401079611847781395013761747029359404003114707776034482436191429471487181733372160404324573936264963698775650004278658333691465003578342349686371667183978233552683845615581633754772769631284782765903589112896955388756719090428708209906889441979546005138033806958837465081403574946082827506140765805759928342183767844105295388830477942074658409368353730547112502371818755806570829562052849454892824081853729034364296603993113925081927512291706571769442110164909725405529349272790636245281862770113061083192666773253771200612024692205586128733357369102744877081094715740754941272026680381080454139787041971031538176462176314162719359123315889443794685220387905400218890852746308842658278370177279716216769479193749236101794545811213572093038436398273276550420225079473125496616656427348582403100000918796461807607136416136699240981183574472105598503717813271668155310678344041663524101425128911898442356880430158534632671479204943166030084631714119055422709722137044219218944439679455091283530682418807166892130088438626361890067981449543756694054615920453000737022509473634826848007369312933423768141062713964430144414685550614946110996868762575951893678825374645902742688968869441221399031144180594871908915105805533495550214152489928426826928894411287699795490291872451865241314092226820010416599780822100749465965532395477676236478146914174519927823738987713542791326092835370019891083376518825828636966901493886491515845547727572017662333020543817045869674044328607876954426786302569026239372937968774624313807632513910149040813277660096085990831897556347039697556190122696785246534921366033030972405930285260947934863539196039601228279639387220408870473765398679598148526419490817040194557354815699208501262954155151958858180018741937080135185624158863990635809245116518557500449123164631155767617973359690892904104287305378058767244178907147866744603065593619581530761988522415409584672809591064325547371281361599195790172441449839030945772107853056915753898479092674703458381342707810920192869954673147458984331413554075164260122180145834969460931522518810152604373975151759956377592651018370666492656603645910879501482395061205141042430158002772099937139244118290785284831484070816995115625541909203773730394748768314168690440293926057893892719749515643077653939519522066902116379590269888626472428483028308637944657049125667334243246922205698571154869568894414286525775563656190053565842773708021329355100722362648725273520259784278050735590527151448532747309416584919173324515526561723994517492051892943584263117193296580549480711425409379040524491373735994209710044037945573820526452698875079878612515704112864056506450512816686071802145638333521209451794457339584075385250117042479259570467816877404347748954466673133435994711382019825852096219282946565858074103590321472722180852764373196819943870552314267191859755087372494100505346363966054290067533334222736661287272867518615841910380765914897544936684582584406756080239484519389671023551378986194565684733632396981090434487569845359015642799503030008616326149193646893646357489249975010419628970912159068091834051245222437589615487130419931728167435678056178493390010408092659475340105212445837293950788532275711083842982788186711316974723245827077557455295929631180468435752746258398502547544723456349551449188350333033708932512466395122143161431159234645635184128181046252538553016349595340647228031196546679449643492922880130572850740693768488013511747141442608175258533679696764610906655566510479532260893991107276526276637010375759302787548915599013310972915388011516526839889771774757638294180230337702896965431138056140219045682719967692140622275911709866374732491123712963389633461170586440522989825742198992722827436281693761274789344166090565081494080343864822854538809865370703117611424296101084619511946049965721488189116068572614943854035979809488623781828413693413619431266901058238661133029305245085187146830335619807302185647136583162198851715984210477765938336655711375732969783381890770333464822970342926190658373772704344229671640260106958709094111380975833883233801514517984985357349225210110401789329233226341416878465741104140581178718647256413920268994769617361734089541476091557430225446941754659884904228404852614381137592008344208022930800085957943443137201500817672796454196158756483413765486121720740050429993707953011418932768511811707374274732477519684164581736656249643208035550602341228859873429934929424133293205090723908552964135524426323955215776509139740907953911302528663285896408697288332331818055582186967075705636748348742542596602457867636249035154136200287714880278381944453396272765022293527427209183602833128179272697711108598938871466767032669278673119240701060812200404723001846516626417283291270895470014959676364100000926522834949440131430254349182402223110335021831345153119605627950286826572133898023084185774431745526431481126225521778827629793979018737354085975376134162180239621060847904636352274800908277222006745333551424028122196458171742045077915788267312975356914208015332291054544325071387174942518497376352975210754688484835476929548794141317002768775543455475287581821422114325553086758632100561190202461387683474303699898416524482233577217161740886695915507352335556167083493346974885608960996574046398305904713454331289721185075665102123149338178065620699901077916207894355416502832836278289431003886222203571099284717398296761533892535554036346993863902313533444112310517774129391601569120772070688374668030063833202886157652005942761835517843387996731763837887311576310035193115901059084919210191907385600884786426563828876436925977919400785733398940953250275445068519783689636661891020977938353984465944823244288387757311504364022027594235840057358027418505982472255258276274436156645274187346780230683894101894977626137678318806361910136607172342560865195723080039762878330452948688039017034038417416038582929093554310145566460260095844249160710246669173752085720651824635096394003749175008700577047340748685672384799877410035573921955569094094471878455724532384126810425537973068660227490772366653427048443789202827262120770104687258912223582333389359607073339229971799811872108906195913259635646744050906740192393822221902080100486165277210051755138140327083946262676120933378293442667629044705643509017260027700643656149268686337606156288323137084902761074759877173524905736598116362928213413761192506435969421508692991563582551098904416016233370140538945291555673074184535115799664133509214198581475110519891251162619082559077821168130767183664004892409880124810562874808949483962492227218550790311260733693464996115185760715796419158538046998310274459638922540434877252079739381949430476708504507295527345062570224293575096910671491747381701230012292584873978736281622590604018132911696075419798919006823187469539880468016115176446494856858778393963068194116356764793003288870078440594253357580293984353097152924054460002410189413345044121441637878070522560359047832835302131331794534988084384374170878757399634277826653111521354397973431719387148006780784537819652628871941222151513158136599964809156567437672463970470160423492523605657812270762227975251842492884719487080962734871564208901447330014280810409813569615971902000438798237323260154060369905562906339867542953946664868273073622139817902184476587186473435372190642143265965118608818193089071682151774688431489508885575538974604321860703907033792322566472732201986908577476300113512765478921576899515456999389793139683555172844784053933958292399249087339240164607717708983007222327653115906433106783325208842281978707758784052170797783912904694092395532789460592112518119311294695424044813735230068406676407730614543634294614956721837111585041826483871800907829975223435349993373540935851937420534540145698405744375094698688541946582352860637258869133923867310032611212497710606366190091405323106350381720541268565981831529210886390605268953705265507708125807632192296658959711481883618680302189696469439333937573497343663406847796153162766567314295701057988669930047531120415147587879202057007461477036622657997765343475379233704889754110901780939448613207987582258069695864568832875102728617569325965568926024203059029056338844306409928914387678356173251111617443989224262414622041868802340366721343265492663036517617567847448211291387561785567805077960725616301900534907209520817520926235633666376760318835051963115303233091730404611956246706574250975661536998846424791516339946848124593354980150341957638047004465344347952428408903584050042897824377676019403706772709810664443952569812425287282402280801724291339950099932651304651953516583750444182263181129698341270610181808396543260145764650275789772310699848657833860642567637800221297192759469752074026636127408692435477294832643475974619001617133727075339566734325654541191035967890474365691097520706552397281357812124119461952139674038833518518279130281332565132826865266401415253436052850869217649963586316200754429438215557234867145686795604092005933679958000238028674412776601950587754615664385837240820579554100579402124159290271853947331714256021051440756711717957052187729334655496119154612869567777733189972718734805637500401707488306632319905732206529498026546562845130953404012405469493159685265769139667890952535529766477087373348495470661272536595659562046296257841227634108851427907476428732289124726859034570248912695066956239200174584743558942867382665396102301272440410406163978767496691004263936562117737277765272679928570929705208801476156241310460767424816837455415096630018730328803415671136235434619619084985455061407158371284724818888384129288652748804708476160279757054406955818043371034164932407213280872494506742436602488847876208243437746076716786210050174102860663673665906193190976111087311884609481513267088156389660042239848804025218346345928223763535961961053222504718826343310890435005337035183923713153026812338523576012737402403950435817588370519338144244207267482869275695013218243813335046976809721935257884967893441024435924552769984887517162915523662111595859289212358547401211737026916583586457892077057065690257707877661149249239478701822715722174699234076777121823409387566950949979009971643634367943493373269522789090199241490654511338778179647743836168989990024246410141688772104224044535460389397476208540469491419338271122463091859106835139905967058616360492162544976094775500592148704072537560290796037269097942696300561816486360261596417863075105382557048074291340232777777797282325753563068947169967926645316579639649287074660893531099764307177880388741799166775179959589539275766103539731305612914275646976973871085150476018513998995035406185890044858636410260683996519448144071695337421728480386442071450748031632012356349542919862158651816583938278254001374062261892007674976320775153288096389482807525575799132423197026780616391853315269728143628787797689748302765662439150509236059966821714968528469121288250812020755286131385927417786062744446902907979786986818812045165768066674344774995111315636841779609646817292965955421885025544664547312124405943141004031607632690225253903234722877300739554103146503607733018053729840218916218295968164743508863375471869411151341990566126754183967119377904957603111770290127371144994934495761345921872149546481729951284571226147104667163889681050477523384236354604712829111128051282181263845977211857191328598627167639881989681193003696302136784955226044438075764448578092453989456791173558020715832802782037780812640872781078263710081274138720958252994604162047536032429354414630902273413954151340320417641330537544059703714300861894217657409230740285155919425267107236297452793105431759640885824524832597274848510994687681781569259287233521490712676122186084997569560622786716169753347114729394030798273399529224176663385185527644144486857188391999316878015805159102020988926071971177654587499576136341819448272035316131465897272979021201233172811975048911355504910954641022120526013641777744196915241315201880634463148157043072557036660879800798331200401693788872319398543042795609111032105736699342207528569438094580318033206582912295852957053643111367865781446571484598899096055703115654618308358362686568355394269464927445557364277585959800879560041958173070032226754725477471146337056407109174053770278610318703513244183040514963881985475122744553831548197328874896408566195089637998215493562791809303431806306194960107260240263352925738258706142897032369823908296783375225159785446175021601059243460213254066806184572507205678415357666829139933908664990013719591945077230590960866403284407370376967730449073677276012538018306252524278658230756948020017705395318151224545316684472948528351993371237256718786762312035041775556629061535818393256390293852338773360771458360687003375186727645797160812210027809004228968311452349805256330444275281390516353906401587303868099862420398701302474247386819908970773799588300582616650921326239812374833960497829509799121086346948350683674603403607207297335597861039647814856774671410882363271871164696068946486722922876379866803388734278742591815491615587856300725568421305796097026145695612900609720380435032266062189578829404772285426652095562190635559536389331195957152678937607731387275418686768878120803631201518097311011273338381443635875359567954384904157600813600925828229026748042621599236678849412733982903663356684962833474229809187522036535750385998138024604084049100692054657731065160036703030759580102504835247673853251471311084142347720294936544919344009373138847644289619623433874512214737457085469343704410426128203729252369255229255359972935489610876946838243700664440499509076990248592578654341341328380126344230123013898148318209690857920286848807880984842759222456116798952238137950108502427765454393474728068405227333005905898047598432199068345494325250449513961781457334200884808588485795968222723699181407114860034406128018424177774792696606689057952294403069462589973477997633903617110694796939437602161704088115811840746330540051064568202540213844347761267198774750145056744236758064283527588932699697822350970072724611415219869076192587795185064276150463589153108345301803550132360284772592229077172369303488382687779551335221210310578494397564052400161062905060294649042752299259352561982806078233495044933321518450881555101262198111886559585022535466850314662990056721458596368747541598179228185718563773280231574114001436924417860939906686124370102594002000206867583009389587397970001189403914130542273796279695137686823330437810729694586993896683595754827446601444045480943793438231870201709111292101787661523020965255120186582502494213323453560506088692197583056752180095951455304539861783566229214576932637423970087797699928774341828835268173911941190745475085986421039059472400843845200208779099703979437075497536181827803420954680991141749147783969366921358010174236071181575623797669384952150639195932019228584655942890037321970949833695957822826744411491978495775390622964483732132825456475892367104822882901231539975838630254617840403340406159137608069680270064954126253792090676784159670752015317400257373079009580822780003028128345504062408823112194181985318193076308192934077528168196354356884841467522199855017899821758664319704819991745201101235034527560330945357857927941005545487351464387684335994467398547822931521851116523484877866180164889796410622864249058184550487734399581041141133707591542957323008456457726860067125329240948326924005271339972569123317330601996048539483857909569380740100164104323163159229340601358083361246103874776445320276285665878716752153669229789929644518183797402181500051034504803854673288403616299238063456626184288478615999799477080320580368279942696314655062461706513355966869193417225592697986221429343211975885957955220382441642679223969603483771027968699023895749910437673327410056018559816580532197599004104048108601807879809444632048578416102630254780096890433478965955770284864093721639162250262824141926305666148532711526209209105980902541810673109811397215231098423140746826655067493669821380590163247312596227693377901321365110098149469587315667050178674806775772060825398954039445379615208958623774732669685991884757000837770253393511562458412407656558246265117577432126299343725097453791276177544842834171930472941189381340567796443450827552372258550070827399391255865826778248241799391132964296490421863026457177851925952361746107712129369790592128012042641423029095947905492652321832856740550092710773880525792686590758476924724889790804426637401394289280191494523084710858793356077980216197870135278788261266507529567865748148683818411893437527664803989181058040862499899075885513277369361554174898296590281335887798093466344486428526240022170913484968154133711073132483232410996915257167917466233949212100685688987143731868900710832536224474513222029764370270941677720014715028932792217180241296446549993739347158947049748098343210568621274365913180796884825287348348195420633260644812412088824442541332922023899471468738652175085045119163593844347362223466793245859762223062142582727973482681696321387743358648978800009554549740158947664638001945980364905137430652040943876629284112467236892341972208289796116399700092866213541153508752430853696230003661647515940955279614272722923934836144693853029576327371039398006115155891833929318370942908722958693016233859645018290100164862917535012378132880683104976091719016409186856356111121498025043997752194163781515496985140007663056022398189641406128831338919691752401424919779485786681889632920987649825745477539761686587415668836512849351742057908793746646911213249831960024872177884188705187911926051533270910361843055810879419453128857784205842771566447678586918205929027502525620783836138737411493116843548740322027410443800082918356053867589513461997217887700691913202368562171622724060535627270805852174144987545649312794355119622173748952167803698740315687807229395457464314465297777944355177355237886016538715650343180848848572967057933658454833161963739804561924967451346895369991501605990224479593144276014599367342549589452089371135877744006751570829402852491841788508987077338161841102020774418560195475973316791320455652336867514166934206442371357554617750431620495146977667463377757408222591141223206136795125281193571160362108721246626802819863818941411007557611588628372247532429208413052567169000754977712930940692212991791354885409481343117767007054972944737342529982788260933740946688216580225676175372849750774300904907320969317042470538381661489518023674085584624757604479094957406671688960178296616827387625516006967368831493434556410978683826789627997409508263991178051397234026476219269338537589384937248661243206899649680117774519757597237785358990751848689353200060298479449447311668926248416840390058029321896114188868466569323560008082086134591338918613626149408876230081940974390734613109543551693780206858743552800273062830452259314641745862188445336605624994283593216895458108719607093200891360978528258088905826185000059368932670994311656715939428573236349020354635628710494847843081171810635810541046521340426517137625697999447641828144988058173672350769983823445223924862946209456553402763445854655582779419612994450320062662309825719771400783796823467989962755683986868732079769621309962998828857343452826752211829916047388697325399468587754533140726236919786748628222337040351145318432049390344725056531242401862517704963309596852316607759855695868354041095375816148588839375110455309835128828262803549741800256467572049121874026745158979284429287936625084972301861085216376332835557042395245366922986775413194570288658450169113753419601854483931036069637697050311723491919946562359401488621491764835943209199627124785828769925802020837893835903563834945427591522842038594522830419397882599754012480252642399116835736245654687430081644054927329852574593618137476965156424098552454417338807127357490844399461289559918280815197718814359338108209855909657651850298985193489128740060525192976226023136496365580754340477383584634940163840493355320741069268348710000327299368486594819189583019378666272490813896147727566558431625248818713611830590699135377292809924462117955831800554462494234941040502766627993503349000769285178102120576247750933737709105036635365973238387931679458952649932109246628919988712829094150214117337137021287673942854689781318498539534762389610252528420583963542681446569295380965968429507666688254549233310117440668763128374021384488727848635193707045515240197363350388137873516647430787020065506002637228663643099022855017253695264664357465805474230953083595177069082467028909585571854389671262027696261613790146834615166519159294939222062605173523023586140682462230360254968438898889041463280042931992687352423882505410797354728363161907515721392964344330844249813065129368678194631528005294431831125140802768488114147823348514885154224443166409731783584842694932527562630262225669738683011485515140697038321499090202740457922205336330684632410508729760925632538100024902386973266801195198411287047601218165915869482824841587468619685142664011658259871760955038927771648383499900908881181934537325068433232431558377736148315721363353149731905706218903958487481338064120266439883052443439630932080556131882858529632572931172634026634305639808808405869715818368658363384825381092842870016750824624524741145327725692721026148577273596090539747797178869393659805980883372417657077822894050771201506484616127010913953696770509748855365829445943153031850440247761282181017578205438697863709931552352783156134334082366152125692355761611784721879412553358223868423548023350288449446843895031479867009141082790171587536609270826338182120922386480149163353521556598496546314757915356291731078542424894726964724088634465763038376624201463169752249946444549614822100199153944698147654861689577724825851143403195074145772658285900419251877854834282859321394045665012949137346753867167281357559410212432033634447644439269980805116123185633644639692588746710670272716216434380300608544845664306144599439497772213412970029523947910947117934922622915911424623817022299815221234175655249894268190395053306749200664333113903639647853012564320532390678989203497967750322538773944387577139607049738979800641121989861343956621651247546943389729851448732747782082352166113635854238621113319963866132334915566194157432366754759147908149519283299360333330358914915642513943033050820031928555148785070888387135620085585659719937942780853063180571730542852558435687883290080325625494492855407807248605285480384141786761982667193409014955877022609616254026714315318617796021928744576577929745924590875752860453055109128268888848141685852190767425327909043999256343428194130209203481160351186196988929404762948907163249927332659541592226560802461095875661804606885473693612490297490336187354993976312049930105446034287012692735338915847486910287426229350697384558397581924635088365627887553452668862175659304857686272733758772590786431853086523886653234059402969142588239332440402103246620826147352895459777540797082696431063419748070337823827889405186605019524612765329123272721988205666352683961455284551837603282366237741516556454799710527610140690112778354466915001537049872385407004306171663812992916250708614192269897255774136893748900862040984541751197271152741580408972588846315653782248374117951334908925356815666066641990413510181397337089047032670037274399740264817518875452431690146850381579855926015478251397184128232614831279625106712163751972469563426991713802792141134495314179160777546929137901390564286009370363551071936200627499439899733937167255554562812578584377536367099287517518837119769844043445103750892962049782896662458628449941445686980241250798671043624663610734922319146103140202410875384668381278271679965653023772650575636824657035090122726253401509058318393605980980467148934170519064969397638722422729815176901770026063592712219134687580037587519229063109360773207760407010034644786224770153614155279330760488867729333994047378663193433352681932750886651350322022576666110826218763072645672613116602841783822162680409603049748586491837285925946773520340002958437860323926986579896466973717408060303518499400379147864288083881182905851317809524340912648966847143817822425297553198084064976346668208998791988441483180063944252601975375449112328506948453390088781616730154719576043129890993033292914246724447051052529015626605821182695864568584176847531835570250293959392640869248135300464442478517754421362502811526739984507175047990372082424273428869821488837555652662745138882144765517637942659754057966252159684247330360691142618360105367412956146126985803836803941850034725203412612930070725817315403977935500845109789614913205397653502400863505784796398773380813439035036700782621056496844676669470327032171645482688466497646264519388164300302003061789176338148339277538913331869398737832908076529833194576631334036529578958362505352262350858424898950172254015485279307388735742249560427413449971143314829642638176878177590456094997595903515106302095247979630689136009412598357598537187918654905940217779216360927063270802999939055599162814615208335080631510114920015297983540932172806160253243325127414832351315053603301922065122266399334178814642699024412644112808919013761000392264745579852697751087419761256285701648143252083496207016498916860714763517472357815093662336232200503463222299477064420507284878385478500313033034556928392937485649617792413023767516147604475533748740445640514811512914992500666311101227230468385942646133310829590980875725113115466834098966849176430999444207745839688683046901070458913016886119826703568365905327270488417024520397038076132657334270323287115548232967080010838718815463163841667677214467292764966653006264142489083565809539723386097276467320531646068755850884226825005463300701744598566281116214613498050248587850340958369048303442629386347128736183972697397956099950655672342064418080659358133640869726990650743195441528688258836268061700085789176521391407106886131981628651753284670992232554725951716095467050712819277193881770254016679945104108914954094216845001796720017523035202781687383288186138040585733687111937608785237212218714539460769284311435282586417862166256152747438448853016294618983546831249867734606495338385112583058437516555304431620627081371303773072675846051953908396494150248828227736263406606109757592629824948435477575850912232681777665705616338266573695948443321399508517806624114026308080071576636878053403277957187626462930996855584190314415952677251649655845824300090741752927212496064612521969727183363916831368039867839907256828683809391087705356131486982294571433468303630203881902074942293046847304352852204604171290102579525115769519529494439389438562545470759832801622743148878351356907679270528976162071393723793810890386334338475588934759203927930596664717086121125420942913466574374925492788991657324077673829841808603284255563302458270923620010465079693148699744650982929631227600221953545755486034883094387048937759190953979111258517347466041551888433370470183155745157772610182137056729116217088833367999753417180482192217762263368906982720206125248185087127441959238025950558657055770680077179488067056300527397914030647111451810653757009606838936739114331244554255265154521323097006306509502619348764936351198123603818449042756196096753417220947742424515052013944708694924011864222889280106564001278239050623960568008387172161787948852535619955884666428255245306271685658737348230684826317172103059600245180654747245048480968453565874396918586856145233896054679925601540039418847202306902874260051954179458870076287419936936566130008805546727708989018075378344190228634259820781856540731681997985680312109760302753976420620481970235924133146799769017368129017237240908719549344046819062227650450490572688565402744908695590471497952668890283922960133970850386399095954419231538089089349396620859690509065017286893281295570460743374095703763478865364433585076889306191427885017686602341092192293454587217707510256918976787761660674611723014947990199193731676004059264453128520132679136796785669064708025373339821622019613337888502465084669253691654702087577079037288158327795605282337264510274638055625059295663795378205964544930731330450610899564492049778913381180742350915707530455945895658241513564494738780290666899447247594443816677727170135854492925600949146700281067413128464835591553159349861611315870395195401231980931158548927138379327072028002084489273116255921737551913192883885911009289490591298847294595112977533510609907521118033836955242575507710677549328317892463508962407546918028077048029496968011237779640526763421233630484413953056546714718640376092492536532171092959340837413621715648136882260100534132082530818326110309108659136374259669381117440174090983476017290285059818764512239832807600922224162478199296160563040481839060814787410589375682224213679176387848772674998413291822959330843114360008230787096010774155366173368512791908768145648854991246083306383817541482603669607558581402525987772401308928353480796965180784124072005826730586454906688765786723289744980400800684792195322952858574787834954391334803151289469197705934809903395455116594450492186257305184785087278163412101992168931511413291546139670097661822464189083557413544934373105732295922527331847356950537254498685824291693624798773929728486398202952016831545768645102681944000741160717386152396843430730872233755876691044984515630881527660789788358081613625242905304031458907624877137576363052709363544344639064916939280992690118958909139835644505924557071782857476426866464766671757038149139134790813594516686487407067327151497839068172091465807007559156005415375255787347999357018969856985324082321355480030438755716326574199704707131621783430489128148578178622589816527149515640478756403538542966241877977567003451636523674237894636518274522118516050665340106120127894712862191490779126788838990362246457643961297215687447690162943330520888163711983377567892858083223829949569214133207934800948935593420906035416515123421337618063235899638523219499352150953246849269765917096230479060655186358363080443496506334150893259129800888951928826596516552665582826256382104822903795567923501783674017220043487195944964196793409641433333632280753847443718298490835026676175285727213519191305349246610764582868609298863199189775566788857547716955059070956855518805654181972975420603894765980726356606654845779595745381117277218469637113210253401466485742992287118177543674713298468565414113790368060054372069561357000355440594406882980047812401499724772916374602815759814527467246908595833850437400905156778623705966206600536267182469004191023558287194042933820557096588055481686615716351659879628813999767290200584630572445690303612316063930014437151019532749346445933779907664568066152893888161689324606562854708116548028113946767092415739927316741544476733395299556031626541911900713368762552627773723280644361055668395383791235637126606032145408609091072703468920548904326515575839218704185077441077332021016856400057354508836357319108646311092530339908162479852774781761497132120544131359986887837168200556004552794129864560903890778299481726764155993162904267085271824985877115670719718713841336268552955551137859865761972289258997607793734643921847742439530403564713197262291738200190603661058576067449555071982259606786710146674670013380601749467081540512940223209285636783785171116976617996172415360939729210976612565332305190296802841998189454017823043448112646304422930451656958076798021453043802767516233569979264515498427377778272659255866383124770951893737794785824853033952576285806272933583662455984245555718536518222068866241018439095058867709809628805956367111245826844063596661062075656209598783919160782135040881886693481271953668348288443592126490388708665805028398044498140459567525095134578591059149427003214480416609908507777509757506784151835352852931948900233522311005451694107585213843186019783168458653059865267206731520968291363263620050958242434003221844892620863412494884340670315062741155476162434396941635502782527634925096520784554693610223078158747068386319555139894939348676436015159541194132248240608530065776041693275221793096906603418235734103884126093787234540700515448046570230132054800373629645240551959766395832592549417028975514070703476121523140676554694317921919523850742710374669425352770822455387540885092551710219247445855051683597934509635546505481334300655866407000621389327845134813056591337530233518711159552959698742332861468046304036407413211982213175305446909566962615840831365197746857939593002687670546516757186463525865509407787899387937531403998418318199373469125619945542352762005300845231607321479653276796704351098449912138263883649285301872057123197590831764173205284964119343302662599153849538206251034407174795483340882513614233477206258978317515334350652985225871655407490606555221939871885403658677194141553558592452274389482041507705042109985613088681140478780331453533789266615745249570106516159370745195444843642482622294068794595077434843485692851377770255705150519590234623469131228626854837357456138723889779994027781531232475083391821105794017799569806013137377426149060303520754615099665854084768542803247457644377066458117040797229915853081802671843427462857122770917164378688071821054116967652859058625811758475658998360847746613739719175445445661916320731537862674326147193011889296116862864172596380275919583368351346452619826158257942455038090365235964363140929659321688856280945562730994860438071177091299777665769683646104704444569843939923355678745133857180636137766183671476428007727400480401145883105508635670492113528539774061969128715992714449185634471695574463743077822890233285849077128940193044754653033750554969559093299125693055547738804378059410886104715642924581998184851652141480036344830397799811860574073328785738884724067847333177732826058141545949064075614040288652654008201320054410293864057736818144171170418367455850185195568203710986496722930571845145106200974212663101255901372754952825427395786096846471684551617033886763141369167669510550339943337099922366290658605203743413650927409063696751603579693281157049955350896200272792193020828183731172896639620772892558463998664429859890602948732326257584237420588668599132799557127821590542875353812605087497194987835649303323080973394214939989927216266453480032318617953493386716314690721926716961082614911215676169443119614324676254629099641302121376549720569606198273320243991190659707475306516397769054609168876000948689860642107196354452315810284753784646597968237003307846102677090440651165761480152524585374127720196966831750906464499401138741350140886265375115833584545216859862281393889815022554185087942816866552276241872571622688770416515844664733104855424554269820256172090756316533134661523663286782438167350952123582446205204251746797313605163970272979518423996570421508003007181989610881436152006062139751493057175076765992763479337811025316979238557594443798461138242986605675294544961639892446652391987717502117478921703527333978571811715115552706733930550466477894921614355601372647275425871432177180146673981544515668153016375179931530313074821821814454523632428814702480561607169448258825085377712907043329607720107294928870292484463410757368423295994366233512049695431362448989889042650656006653167598992484598745835214855555465016649165183694168470429301613607905853535806210557550023957424629305662506191786226004581486884692078386864430922357064144763055596444526908578733883545175949833673850821979795884532377724380005140425984441101534405677621990134613440247904530967888137834116674435919638342988892075772632641842159397022646933610810959786274635926007403359099636803425235379273199471608689457384016316344577286048497357721197327554633306314480654439996631051904887878664889765362549757423307909546126152295358196104192225760428792933826676875019604953323546064717669622325918926245472782124082274228822257582669111926424923575778086663856741911352246316563181638850016788665363294873663959284009209692284158719434154722869664124081888117805694029115585133174482301726200556225271441453662960435735373530738360260389572891081451123397344769063550903721624947117712454112767061768631408380251887962327328090905156910673098176319091963749791707789665870424607360604148350917387535539217732116702349920927844788049170511460067578011418110431093424904683004317963147511935353865682414235427401648884519491037955086070002306490810256383562915275452801546601148053119072991968255751437602154179391670798804310254086491811677346248319220388788014038137201983973166852883026388846624722412111068062212187057467124639294792877770755105051739812727322679836898509124843179985462187772308939412388061764696857614562605437301334111489196625882874254502354162482457100370240685680238987733261540989055490251068777588902401595260570051588428517808991730944225055745007270238040755590093966936737673913026060774944281292426008011232871796283437535741243195437403362941228929813650708116082273032382071481052493861599244686455615109916556920088518690606220706656307449929360345868039201486208999687530902786632775121959921428352459406921684261345480468020929153710350692895390617940497004500417762433226619997856797992715069685579968214771213740308306999055289246627637249480865858246233010901478499816904856797041794328779549578371723516963204312844643033373483031112688665323999786063937943562745420174521263365774628957682277984648804812801133544392135269178611089900965128205756019401132929626670414194322394601355156843887832881966300923765035194596426454722727449751202275534910003689404510418766144233909460839004209494478543294911953883512546884375875162124085582142912576412869232491976860772309100509569543726840104587804964731340420229692659902445248251552803810998165626302730506129791722437666870246828032055271857685488636370573743216249485388064184117934270088937978596447381026416668661597397170216264238029919737531141896186510528235288612186354060725860405772536159806689681030354920668572452739329709024476570161168876928883116568299938344963261744537930677847627217705373542724999348536793874670797491945297929409313791966150764898987090713749408212022800337467344559108150781770473179559853145931031998536371865449448099264300344921056638619664924903777141807408106146404757351210367842457832165796361922047447708113344695245899962425568559034677263927659183375126032216535013460888982420507028475153544921681529241096227461804467918942426287662879422309206282205291210411267231114120526325026145458980928488677418773287848851503738999566819921400524099081496053612739779389898777973862579916390937185805207514844789667480222591910494449942203019276079021108652834406544775247176649773268848395501493596060222821240511739172559939823180008397384929288411823607864275731741307058921000097798737065754017028678988590491877461727294755068195518755435987813702858942705415764991760161504479461103905252090317893252408904672088181313291751002200732387582736788520879717182167400931312342376657357799301600226814447404168296240411700234146834517649202586150865415222255208023180250230046553839961337825477763385782673770192608710687867458786942473608305397567255426015144112649368212867333348840903998320478882069529311023736111398121148478040799601334055632082325468968961404782331919304708351630497141331586529943067200229946273526317351087015027554514661478196371866866947469698000177187285462235985552077104183422460120963668227471331198928168428470667639555512051685945852631803112498300601916055316219926799506700819514598019231861943268519703058583305330242453349738107430797218093135513570230458209206815764319094157334032672878458679639306361320284057394859075191517799009486508784590963736122409597985034059984066792260368666195096966910832192827857950294024420345215852410813074526901781092536982126358562087365898724823399727105317854258937511487819089704344577751900249867437439040328673744670769692218928995900244451370536763418570552108737811069517170421907246997665679294486785107025076403328421794431629265067317122100527855167858129234593624106528477738074029745249419861513986359014126103260884808410187741652189109662714138196253300232003126616912631064744926539371035285979867241330968000016098717678664843191585785321362619548791954597063202116904118101462044344365413685970399390927464583235163656187414286431410146166803825147147776057423995160212519984560827667979143640404976833640030627643322515659971794758637285260998359880805272242337810199835637361850341656386465773991418204729746351299927579738641443466746573701132632124141436772965196025119591223705927873972433469723511021816397844092719458005242243177685463165226867833206137975598765889616358003241551561741461805955829790681337720507220307175861648501399800663861760871681969858678350665081579534478247797242693363579362475400181639377134688342360021713329745806063362976104732049768403911598552385820867798857878114896870973891358240748334781654489966463812736617626996069206965926588821893889548846597234528610942061697845222067189934183093116861674826304835527335681024669720409668178798535865955237380636943307387092048217543189776848697391945683974252270195177453970841183839117387162629296339008163088888541431953548981598245776869156270039280507872970276314506088163775015598029102947368625833465260818747043198325683764219227444081287231591053856235259185008440548519010759658636125703399042751445119689983549915963097805323506977104663157109833123840085952651966884262868181482703833733862253953952216488070686304584458679146355568210355449433698465046001395607901241146398826044920450323608666427671665373536919141107118834199227692034408642590246922627852794591349015204051542716602888977438276811020695818769982030197884202783825239919508627771159159879497915052275516451710854980506859995372890827999371711614352317201505753920756782003267866925360419000358999818400649810912368692392697536632980251156665258024989358569307206384131990162783229774912922827395861973295745878010654645185358045810295212500359098808489112140796920378587992374535183498192429135745356227337500872943569986576778030726578522429272380744754119524049840854928199541354799044635492906780582981339777986294047347638575994134454679968876671008096352922879975764139611079379430092154576596932622599158539859692133617472068586636264024249974007569693975841225523678456495295292325614940085468006741190741282480584072668934881994067272176193247509805468757835597889179512855214122162777340379260368828704379265002087761031939003145528336928847543552781877985656347563728641428215181146788787865824651103511491179208639316474211297390567240148045720789337861919631272261681379011436271550561284253794303942077432733928694408086657583292626181527122091031397860788429760966706239151363299167070022174808112520882907274387004828910843738802662153350356639802479043006120724628931426091771466909174049601965369690197280119274282843642927732475430134715599815969189373475461754378727739549109648720836227874203759866697982736542071371424935268278235859578546507632823788437522244547066462650276841861852458267656098637196688925054387263273854480467302710087546695824555506506964842357315225112148819804680281692838351054288230941054249518218679777834291571940513159773400580214008166746726071752510649249153459168051059538005007225073278861611819654843738670172533811110044964750966608636539382977147101371723210053955532732045528138079525402769605596015310429810515095934425188870452839176248964171413149772837101861739499243009906497742700741218283125370615658077401853614884236985998843090356323100744039056088941967638583958047314103947381109789792773660264168066207837249864183311276904499113838088150451252728361034087629211663557064829541443216334005157540141412624772830888407637827837580567148206020573311277065237609482650800452485310076472690188795907879803130858786532897802338439261718739702281156407349150762511846558864294140077493258390628233495587513509042237563319732635180633479951654739929864727573804316946357359769785215061435561267329617198698707408238685247723776783319223838600769283102603879504790515540906045181100819956046037830946298987238100657093020502340370104292143298010710166606164681131287586339631233491592548628846607667205853582411068366710130740515831217235882626245942351180601909115162029810094165840379836363762928175850791736543244474946985812987727532629972692965708343731218522420545842681147615238045332959148826552063151009278354447064493609528386013548662268052752826155064129981214522425614347208490199815320026739067700140658949000420678289155873702361938754194217461866514596928700236383254310879354560525592109589118725225594160243476424922084498416310855862549158537919361453551138664148147905275135481953516176117672835089607633950658035669766728068197270199952518683950207622003810870960266352281165342862958001297725711873247180070549428866856646411586254527322357746438805086035661232928309719998280362762314716723987633843132410064552234848174569987486792899828875443432323452116223967235969346012482363952173086003327433720570675695578926940536812402488606196489837403579796420220334624149692287661538108044801510464745532667952407557712014843306415560887963911716289213544893192082666451966722858092648673051751824619062797941949799902758118142117318988198590271530283047252453707632505286562881265351458097680685577193782853661710406614787706702191855050212049166616597698016189515793540490869612552529188581690057428328223388255336157245503103660049097407364150850719846885822769985515248109520572442733456268854773984821362832802975735741040575669950086173218225894566075852744377361392020366396910787312626220226273567625702768637112540317537714709866442099206313749361736096656072073218353950406526961843665621084292196308490625556299021461397015586371694628384759130239400920523505093565726005283304522902144330103120158096032139218513622037778925100615168464341266337367717454774935080300113171215344160666546572537813098496501318056541940030364372001524341819553462446518482064758456752241862455146318042829719475779522731067953630434919142855286766775806427992434861816051759691281975627284355470404469802112306173715282369879373969194393244438810170631830616683657239736134087042057804904961995523695030673841647081967160724444325394312969715063076471368343992882678752809772375763269952860790107377717483199837860040705066783130915570057071428144979966658253618179944194148684376918873437711538084924653410175756012398038077229740023047842941143482766001854295090901162887399703376318983859410586244219922343961594206749652182571273784127927589659371936618109054737881249999994719917778525883795772134499473310477926579186434849038518669992666061026910410499447426701105233736773135340621843968215666344170420551303476747146718745715224817289782872762413950571947332853111432889210801560281996701010202206275110301619181776492928803190147130059483084353062070158963683251889084914749931692218516733823935662151697519012496103979497419238347447902333077714888862200875361260733769567223767990981582449627885666735880917106812144592452721039417984915940103611799761899242969809235139263546521297365506346208753725471923750645926455991284149211155305021982999543640037431523379259414189058880336888178104732077881812699267644609453620749958692180996069870059976554663960500636859209479504413023723967818699993772064894004660663597619986545002310865724058004794390783455242474941493457151443357452700382795984626566510683776776633759599032582140525649311608353096956722495241982722569108774364677212302230236805817436631352344689082063147488305776581273010309980152948363616257028068414144107401586336403687621689643004328576064793897075680620578902547090292518437538958297746244788402383117427187583102516554957888093943780845045162573309953606816716020066046080479482867421428596365173203153253819835972689231757163848765993273276522034433977211736071018497833990256523732859406791703763918461847873404783606811946041870515882732749747685153246307664023378624034923235512436931369111481505444258076380818663720897528095733116008785092594205781579996419524413335028839891263352891521156275788845961382193022945942920963299796703206863303950492950243978249910113307482481453174222921011849725624379896504886394557471259132240000244075529439475174640962476137711454162036113337473572783006726539345146109055151486859696618434647762874737836147237173990638831048914616057911800212567840036707362761862548494591515505111544146277412011229219800445391719137418174048151802397001270748158358878147252728910277689146194596122376957314630178622636449295758809283847839281950762816530491104185731241375360590298811956835287641730674738504770433948423999541759779672546243355520106877524635781229424475464022336983429462829161976964790820514646676479085913899357894839373131906622674369406338845808005149645026526565408150553653052169246366538425549359701361820670009817950457589908716661352609867944806722555567226319959124999537172178973826946731348657890169483514965787500372430711269535689232278112803998142547030223688661476844484978611296747804656715453362406551992214491042188988661508447201949309287759663271120073569158929473777165735122843243591233915575679806702710254087939481830967954142553972583330866258978283911369262060487001518723863835953201849504868314290711411153570751133336389329686409649085047447987879612064898913674547388598099235508793155907708492092717863583007041855519880757372656692208072688077087326992657696995951061210460417930178654610947686037262399033595701373394662002051562260583327801852742751009644840488548250384254606615696669032785093025398448907190137847444730007100574299821024161290761132131185363540599105675743593851097132492916513213898667720462252944138230633333852809392115925736527371726975926855254528436208660580799193881926960792786463022405526202153568406548985513628414268744031741304840921746481136640193949871810340404802335833542695232029137615368577086575470017588430046551668769509632985856007334060961358708527571397524598128718449985842091746191622927748622916205368119952846565452866322008976630178712674486631314682528780999424574928761505420553841645197374948665618621304097433677291842028578169691440613268358035406301136742536025393436565308646577827400214264260213807916125607715894829748681798804038525192377871669336469860055277421416770715331375583231721165142749671039873757491350196646130280543218139588276712994369261090330665306962279732513767376384201230372021134747900789960970926628503094690965184561557370224526457544890836929382810008819826701550146135406572781787772401403657912845417188246342445977640590435221355661700003260962810822494594666503163848016551281513366599971394250890929794766168206395993859123975634673417524989037307172034358222809276041811321823749040086403243038123331555574634356028593714398588638820020132102124159255114073746291683290164338983563824355145221374673335240396525546473725130020239347875138496610421229325318325168161322822533653033560640157763874658499390979975758993268536048389012605386531163910096171604627272145871581671330542101222375268504249660036889919126471980154205751265130324974995602023982305197527464038139819987624014270274321802570181252314914602464738732305151882966428100074529727702691933816531842721400558050922388424806954918889902583562752169698190382563643222146239685495435433037719752993456114754279128222583865696771673097873474938559257636987928965605912648472022467770734439172114070815227655297425360376887705828744970236311094683361908675071758690223964274683020605685053568862473323573063469291053001558620262781309407975489726539706056379488409615274391462068291722752602448815165804903109405615559151055352191115821337558469213759130515399372388917312061672180547142044208447597996756477831932161722772376371708162202655736573503681504697906503067713614666274424958963268196351029488437995216968267655732212847297312790218341219666600945058280518307407103149176187039014340384403134920927784117241312013635247777523585834219222591495608278148862036997604134719879326599200390841481079783614632518142528025270897207609751519281404775031250492772476410945479198261488449508941942531779199068229094012584402124913072607276362594796613970075114180629981162638828122558810810343393511590324442950789262173520552417295198898427432600247341465165532657814201314188535642668900750593221612807886122383571034289215916074844427116885234139411624725358729570269659054980844490455650425903694596495825437276287453760874970138457780598955672723398960051021584317425922705627557517351125506587870715134209504204373921075496568674597525716316564513342282699689289888280972838035448558221746595404774322563541315278450689396432187816953697639171786773060381785948579565367154621029652875780255873216173929092267188385038772757404497108889796187012771063558384743351194714557009988574181789119550868293209028565340198793335981312759817346192768239062304797490833356873351255112903486886485767312274493370581448558988193921827684793294597977150439806880650336921246218727048467958411769232886265338908752329330611217158889132957886736047570436258004893503000411571580955415598658972326257309838386251219681405928894484502541911913621230623453237251504233319347679304601942849744514352230802764195469569703682758094652452389312766360098663116877651920169804254467582046392198265463241518734337540087406461114179366774732669450546286933808220159494965070853124694598511629192515706877191221680240310953472562413555860778259605972049038279287973369705679995130795640417994250961477310472163250668233326201677732074257428195645223208142598948012858203613566115906038812397664088057972910145206697637669163109854095467598306946350611337069790855905042753907468982898473712270811444256820936685985782839602384458163588973571570351103435274818036258139096907391791407097943750982401263158940317846790190897662994067791254000630402944965619621395443806979394234049283556595773598232297498029222653067962537962425766423993717778987407751391770408638497696602926664044120049866645818370829976459181804536800558426294214911466882630924126820485760426572597457005670991944471642619881185054330758706641979970038950140855342773123561166477524316846932214250132620566558510177011941083662932852722770170969087518797812134725339579840444055150768497175337480263572456440676642069825290328389279040201985749794629639363086869141452329092614363506556780804214930340647049815949856988320977936777625506726391939153635235217148677898364097333175266275634295759563441718447230771594425005160103756240603983051195516373728322627833215614104241090592248246645515101568959529561265969055911859932440342582014047279758177115899972476155009493607876939585600468623256473972377299642817874316718839738803321911942556119624679254455760650705489108529875550468650881902260383708832648735753381605439371137790421734693699117586279259312820820831097217385854786242371029704716220020011456281849196296785023180432274749297431515002217557051506078705179135129167165308822579705170397171455432979681557221973462513860265242734816864991527829098147055046377379135183738020899464985010516972821695500096790801540654564083816896449371789290140640987756169863601443813467068537141647768660046265664537674124825521559134419260745409688194899594637034510505559504625259540620770318104907179322149357186605032674047628532170248581035964819511220394360057364609730294314367233662056496802194382528990488049893228454784272883115583271538133548482815782188570493375067591839924190141910764782795956658504542565949395845249110897032421545204149057869127354637049473889912221159274364075472104659650999576085315533930406528563706038286021857737400769740361047286775094189681950511467890289813417271414670838367261577513866356919022172960073725427505881841878873904128063627903234302316595541835197222088389459234044635952278767977581188192417399499065967418236055471534945599308378064769000612364054834754227592401460714444427672612072621615622219990215541763929112235438399638863831330579756202509530242124428678180680365565646234947249562272504082383060417904234345393171837413409180058732006681811560839717247544075173748681703449149058871096573312148818694988201291057867379755722694038437736863236782443398225088759724563392792821083014353535620600127920679670038644522729353445104618809290835021774324997590017850727474718876954905058212630331703737808128067042765050927643901886297821349782996108626315459940240973099690701328587295983064761091986401952992811674722545462892597345428267139252058846319961699695021490569581013140757211967512824473006636935860685957557277955911263896801454385572450699316601751905456855720013891560632662168597996860340554649796968859288251279010092769267315229451270822250796073273798957814819795430752703452459840054940948325874928823649410121320393244152398813505360749342919217098069806651050640889355893750799015600906578372228115173643192594406421558355533513076813980995145420779449450271722072966271637964501506133829314518499022572192308772537158486244408044910074346943574960987082835802598787737231678542115737800505664917866146833938761751641102857340923730883963779572375140680400734057944386104665442401614810790677264516815445964180390165456900940942596146478747987283390305110945316008896070033992902818743255475673687620501418135802026462093026708399661979957884830449272721197528812831857851350634281207833399011736126833961026635062438024364318463425708795402317537928845021380146381532496922230344249400044645364704518679217107733279489692633471978705476974243599974829759330860426147219292932448902424693441503148256864861549637741917692109180365934294248668538161700707047933731050589712025646562793383420070587682805182857634202635648185866742699777115319614339536646356516614566149835383258867112762699864058644505939540150019910861690343439010172306957203284434416711835039569656672776685772989052054260263503080611287610046270171032361093039770225905386547720476376319221487868829527236526067853354348370361157252090556230456056639832049456119014279426959869524755239981309284185735090922300872868057566499946630147447538218763340841878117061051963716534322424164210945676122733844104045480512487110413538665570646486033946045414623802042177374186010177225767791740763909785179629287580728442417980028615442394080273325827835514900978648411809591530472324934979069460666766514958830229503447369153197167524579783845365861793114799467920453704395956349290080106629058379301997979293792572789811365793416813334248657822540002901114493111449929205438431761196084388249535799408545044396631972075716829250282605692514018487475153678677872697065906871944436985904168875639438504255513162572093684542096898768087663149550660413451630586061227167877650776863840738790147000050405113967663235790143437369320044937634981849725076915389797557739775468584091741998319751806371506675656240975652533452201747854002247672645735441061795997307725036985841389889076557750370252348540433595933839424990203233308879743385215107586785328559785854764298873726912777004616924744840086087181113077150317528203275899327972977547485569070012000557720765295946205270967587108976717952559476728331612647860741321260247179177072249259460190725593100580888500990279157761694105417516209187219751647151712443962019251774752373032200063294945149173046939825801425206955798456261446493812444085568649357632517932704612595692723004167863674730503170046083679701118795738848565714156443117667174111495445319340997457227299772220366729302071451894402496982858683843698654732142404924851790295750138095306409593243146893696334909166115440809474205504143926592225475766712486989812297399143328636592276729373769548589638724512419308324425734100878693768230439765991664954011336845677088251567242561891993680815309035213929324870068581895199471120741457025194046489379924006140749635120754155587874093553658234422326903537626087734209774992029336542820137161370588702139714070669588216138004483765534751352723342728029464370243848710990841041013162863603375648022583128574649954647825254765446680441986041248011208470970862069737276486586945547339427995653727233614990746378986737249541740734527505889596820662710754544974395013242798352293395786515816400602135867454548253457833186029893507674036600485247098203003957593487535119742678498981584136177449387583068010265887559138457833103257801954338595345054348682045448100662597657285920915671506965164595166047001014764041982184152766544029676623828329338787023247818862006994840561132070034119417692514242790759143008012933407327297061614845354632698021712459543201774507257375240264712781017206065008372842294855453821268160262111222303532998022948795820095666477835075328277051146634835956573043943784706273577868906034267737827537353163502941157416570562772579230283782432197761960043123515358098893601396159928221494221280300787319662376856458657698316015588726001820505359993778884682548964559894572212206071582236181003443591429004855503477442907040031540228942195681871117586376216732614234412800319807570821821989086149629392040520091931976501166636772327056514737987615262526051318819399336091442257932278063307375057547318198901963115109605050180226718342729637492598165860251172732078792365650435398054051044638232226097535237965571786564909376954280598514857721543484311918017168196404550943390507991763344315411292796346548926106402122805277416466949849708702950726579870391438043333743037172432213321208698104701594109782794859261497704156757776090099531584851173322230369497303833052884276591768648909595314163909350008055931556660994354971500283212204006135916832101143362953219159470168845722999280658710853864839670443357856718229120096842657994772142399265536546385935189999544681508264027822563361333516894663631918889650093335084664433703143439786570953338216884933252783657681864837549738051400340253790435151158341613160134892788589911416842804341881953397449651390469552119619077567888682992103576201405485345190249924829217603695458743991330762974435598542188356587476685980924990280722371424228140908277710070917316318692201635667720479642853908728013453921001242967875609679385764564349226671237149515097476579591922163025617265073029961410704622605701891074732238719707014692279062639407482830659529951625593867914132554001272602091824976976803743769337175543232086265152441186448865801809119382428053023198445742328728741912463734503778365584665610801750335595140471418257008813443512564898274457778874665869363993462876977961879595942366330532113747097623287009270506180014870485153829979902379117450026767717577867577293441369069476150120832768035214495562978883916458673974643360016822833087170952555459711406943859619910378144145886256462782844199679292755032188600264702980928970670729321800548974151655229794407738529671214776848926783829065281092541737823442364078659082018421388116002629927011092824409290266199746182397737619055796531686898215176017670670054823952553155571937589165549005305475461187813160499533315014314946685873837651775278392316362185405913924414274495000782417248979829600792133656434975109760411826273688645314419066854743118385643969117295082412634083911823935878250949211993673189551362855751470394775297063894095393181222934874977372535536123953302070996207719413469137594921919107781015952844324680964006132145022598587455522962859921616713496080029841199433102641990994230830327521422185952135354156254384263589163376385428015698101471336062845299189465283291018284740422455695601237972111643610034699209291717836378813695616435188562250814078673110799856046263456117023164718831033077786195902511734289957486819247077867388267845871211962558741341201801950074045760435021400361492037578717672780710360128381463390856004966208973437452653439694637129394244753203539733879587293964437454768018854557798951243450969883369244141090729876934045737690872221492420427045215326903374905803201633722344077372166340141164780274792613380974332566941875394860778586331593479370348849715181049433536461915284666005818876001476094139978512208899648811746611167636407437637042765721865351739975170787370107536697408778735653501574765256620288370443991417642082491333216591780795828228717671942171661569154904091475711311430466773207203527019984818460057279760600375782678280372939906026893108626574678656435990596500112329144883361850306163414765583010033104446583305870457040089557836078216487988679171765755769686328644698150518378256708260727159196906744196546387748073338672547866511180978669061411599501751766287791929499133641682100370635617201625707687456349483588153009254412891004279833247143392735047739372381813697987959453167053371586850502831902094231633076395236164671009971622596304155115301662186148845417341976111507425387209667447090351746318242909711212287273762161006287965144374674434780954654734084611774609433915259783328601850262015619158368102766055716151516784068313928875762234206037609616400090564850140086903588911203235327168852969044460362461801820412658109036341889282552976127068494698359045504656356239741813529388992066092945652346502254006854677282066525539857429711029526199306027758527386112736467468013556755760830433252116579227392971368015289256127578957515185984619532136172785767030515777390545697095076980384763104623868161508332347037200040353519854984698184098397883432253508372831704642985919558873097676339493981620709624370296640162688872375743618542647669329903493758049884029544415171726938954673873613697488926759232083383731962562273195237043481555237570874520451453007658184333951841270711587467804698057563320994973656183425997474398027332315963303524389571342088056335517395842545884632805455048759587208382018342216068455232983953628742857169739796830434564779168133360736133346193522646615983834696375562426088941882229479228046496562049382383928266420916770647266193578074638776859104157443737668824104457273006648487273215061655368969556928479927104112945524989322632226057824853287762163751768301536340743972112523559638580075371109945557900163728613883155317036640002594576239726047666728010035259022762199502076531951322076896310275266078868208916740403605537704959605026603213460455104196933883822847829309918568065545176467197521091251587389013388808188424184701560067888301540652759836618173360422942356815559834043105997800022017908072391659763948131254147117247796601931734765226566741220835519798647675335206963818107026974985815923685618923491885241125753116980237708255622163714541039073460454049389070111714917864852716723912840631468083104136579278013986080845783219849972723268835416900842821212641826270104616959604795092228542391882330988050034392356942421034493399587163591203581085261373105632046741159680656961920085093557992801427475504012520419792055000074140315338909474370536902513565163574522070977085346791922147174175707631603159795745513873773567925082906555652667984966189068263510228409902753178872253957504714960284052020308048382988458127059584798315141409985034767331892906590448702084811402856617481096652574744797713469245202187513246517374543495046778050657373412291229571992693155966539063437331133678321515947311064647889195032348098148842235864113047641087408014125565579754827964796767393773270356230211023507708106831702315454608310161723898025714143874991321432377231244336587817661852723613165878386785171555381648448502949994436278128129254194479023072858214145286711894413821081527258552810324441145196744547125577652468321015938703728191355390404172512273964283167978418563376254924451749586435411482817971625979654844047082692659661571383045760649068973326967088269603196802736311477151764349141486703616867351926289972210974487442219743691503844370993202556604616668888371073348358740654438036450340895189472580988359646509152780949426366613284167765523450348419828403861741997363676404175053472051055311485889746246700575002484503066493960981620958475747600254714184021552804887887758865219183798149431124459169602031244814965598530763261121446909706756407895296963327632611028135170101022019520211864341689399661422554355634905276908341678336211599291716069883729525541836385230978102695295593644647402671177064649482411621959564865374677724261830476138024360667080613283852698329950214884648679149058529679404705280231343457030783396142145694333508851759301582401169570220591243801208700950350123768864725454055765151718177178689729821027766394322057512905663671842194544824940694043728962585547299251899299437452876448075544763293128503449735492812235370128747746049420264302990355219541928220547971584883431339452403857092085798033381500862550144815156448993945063398726869198634938659969668840007689736117011221831154261335673046341451053331096056774557612235760872400323569055066903132735269640167412446725392339092233860818468803734107541996046741692975247587633298887125778314766790006742867774513542615406036165149776942950970165542966242032530501676163834694321538001926640841576186845163122879306336307420854204832229153469708257278043420093663117863887198019546252370967652753569841366325533037174283381537110441851357532539943656184721773020028580730588000874896879907676175755157680898449668530195025489305137805282326787074608124063412315002849908194242425437670517641031813073584693049520462693102261549331882745346064193243610658029018806354614759581184015087785745546077348680103680616926024877333882955280366852791620227050833674409801678923562282123750720336104444268966182290029543624660601608568906567016952012040282896884679392785813267322573300543605909944333289024350195577847940820293995310246649700658628349733547434160634619489737117091370584139947167534144071509458810483813411356101628123399869876542656203979412824990275544795813199676393258805836637976940993504300969148595313913173577813944996394736671404596031446086521634754518963855558433307048036180792194707386656672405773525731677411578518677139998434035384698650164064388758963671778915793851361718923832318503378172251665171477845765728453488054911674354182842501217563161512397883078221296217780786011664805643004907049323081360161392016618044655627163794482966271087239055308245752725561537431075650626294571975602935616754084214607052917477392117053343070690020216468480621911900810610528193412678200486376163699605030911546322731836913943903102350570976409154350955760468646218544495365189232190328380485301039054304441217582550087000485069100301937202870919755374721070382653476604683177476982671566910387312524747377915337696476059985396645117615022172197566584992319987016377330465321509558560229065224660900669016497200838810040180661656134448969230868608049226034000124719541926054545095968601982000066679364178037090655394763949512500925051902439445877399637264697088229345287588580109469016115902875933092922049954348341283267945803303692082239576456397470069806298414809471579303776088762385008413889331556713795497436898867511193458057821283205362970204509330229946905249354150077003508874320512451579452802061748473915802826129274219482119840265736757540285446599324129496517259180714587680325634634690995802170372587088912389056425228805387041565008131866261042708961073369605119924174842680357538708768715660618570002862005722444735010346577652352077757485848699974583443701066294977954924798219418933527438416814048502872880406310912186115501634444820476636581341783046918525422775827732782952055419079813599614225125748828511674707917568327802172271610394376816809123097068424112380250638265775614416053437781757786629643926074493389167487916850111947729541884454694345578633056654646157929782199735134405307771617225147645242013266127496135242724577845912928616120007118862994388226667674123302374402768211863833708382203743887872830614594444063336751129140994069543466966396824595958215280506878682699229583248191359038002898327511670050757604299668795561000649816971261574178129463973324486441154257341765967679584621834188702044385412925838040089057324622775874601625214626149032435378189941899277960419741801051669825441121146199373492166994398896930841113619854968780781499833487876227613651562170895143072025449823261333344862028636010725631109101059233207715760145861145391272033110119990711081702055860925588216253999276673679482378625697866067476560046497167142248527819105262885291965594240576681771137566358205914710431320164694264597631894673390086695891333588978005419849787382834779798442454150708839139111889128083061324942162508384649300274635887746698572094919180748036371654223549007165514336740042826104095183755329723385212905779600558044302438428431659094821835103472994862780901329628440873826381936811064564579484538261953922700057436649379893457916360655987604995515458426323152462706398278919140522394778605490384255868022902530319975860179189733109368966555566138033209591113536750137990059804379566543455878934723494839500890681557960650360284072317532023163950136075364138105373254383864975867740945811845967929492384698177641831688993401127197829386772832704778885725190706569042848112016880488599666266684891298720504469487796894577814482459059207959187382259204334409259586072596432337931268268789261935510215684212195169441331782319108022498340021103677339585959885864792600576097004889131595916246635378584624071854651989713019556848256314106260080709143867636096735455606532092869171048540941565591227208745901980989167081054097638335667346917359058071601796527108643022862402059584490679003445078265281441580098403399099588565893454767417095123068099385741567512251296232086720819813463683022224038075723629922606943019976183082084056443950930107760958551585478603364962935430980458001589988942960426660881391114345313129864305256969234134560888586056902688616003331840992611482852013551319750226368781995584868450740095098898776084932547093322329333025475822848834227037854098043209855365209110513602174868133021430131774851191091983892994436579844718747680011969343617788755198344821511750777648577688206467201889368412651953553441450127071817943417091003316036689820789678333954773651797811689451239567781058858138429825274583027458224228029378532565381386935842177782309375903330567982793624046620524126465944834399416189853394019073982201719390886870200452471670851154074803246914677409932845908020995491703361549804458845745089516096666702890554496156153320504993730179095654868664170540986737382738034700242713830397105012160142254160012789194803650888606786589460233294566550294560782573792758817209772742014667092888141804186477590108956830127402201823361843251757595531794195388302230669814899071443285433360534320926845823990858723765190215707121744769646480212556397499229267622237953092707537265088899710221191508450439949737116568688178445423751354461209392610767960069499683765827924029774731009778687773945952522284526921154682301223381960348967604309762379595652694886409397631824387936709376295363013050883763336085255099198069421240077185408132282371395355692514021176794182440868677130516788478936177835027430014803794183309207340867647941006357795715041854382122714913578162208925435144855338460342241079523575134876510202103301688959909632066359496245594954979887681352075584851449098164884049015809728552092760700007756605548914497795765208332208617583538743467981262677435570091110971032040820563519689543087103672173147659230147556593315068997455718568803005431198686128307350192166077114357681609489235288277681135540140568428676729151675815732424788063277483220739003942639128052345527359994730461049334428750210018583159325922152292197041961335963247206332360343607916237558855097191203145560723441083301079684535790956022667241885907252762239387180695062805882616482791063141867440510712024125105799408589587622493567629903891080081956227749181470528685285203197506550131546163824264886112169842558082261715317780773045824869234774129195804506642728876923779894317030101211427305546785630089300216102413030585275091587983884378463845438216416581398180941711998869292363778878652953181276027951220036429881745198071964364153303372667585715403371400897488711433871364281509532034575606716697091265211064392612941387187668718659689485694102548173171005343270006632592821772333569647511788228768269676386959168914779869831475543406849265217759374026209106936246331387298069905491952466676452979565586883727549088101904263188058536703775992580909391931153253560086836535908469143836072705035911607322990386405832921961725415987078431837252687874598700098149109917627502614756300573277834277678008091320628785519812876775952860080968182727628981556047419049539885246336191255361819115544292912739811386186410542837994958463357388117826983955464185776667203756234584727163499442521005035966757059466473835937536256889108495805534665959264204047248885628334804049463384127359408047198221608623043000384831188103523067631957416717121347415106912940978544528486181762747417444876556556267322204639388865703577501377434442941521129951485481512629421593951492767756948100231857117837327611373682329431590238396281074504944822064543960362595541402661557607587436156044169076298004837715951352807750587883214857856395832456874923407459078844619826862960616024186901902997116177364143714070818735298606564456866281015096156243108476097850825934724936347982218299982603746924254660902824323874458857827760668399751613743824695814985618506219349214682091753636622437773254734641269860800747517344128693863379759389807840191127302519549435954289746938771251119998040231959992879707963506863352161679131320789263736907477066053160312851863243952854138898565632248290979190926759234604053643477082922469896232000589277867901913082302448578240352556125571241625497705026833926000422358568102886795328937267488971679612304587163850353248989055129561025273221686407935148976606750052076645810205836298953070808638344449456359087019918425839984590994579544107423320059854965610039018400002593511071442810219767168784481298709891471846757412471653645851777045197499939849348413024990718168272275781885898048175898851752597379158682959393728032108604223315366431242961780481407534703327696525592083456673129997730835807215773492344743100613550143821885256604007761105392205159040750210671658924293671168744955382278798600059766308146925215603082389990119273802890295533379616085700656534322334792408167790247676617269777969938422144652180298655482905554042102131883010755492392010896172519426655316637467082438784763238787661425661426575135270380661016495733413855292020527109200001191354951859731004313629735767505614363625093423155835388984001419688873079998066216057710162551400861867429338432924314413920661950430876900178428637255830986346209495616011268555167531213015612531945623918398593170442731486463813168760315469760573445867395868278121789563467609722319014309688553890766809500445726476921861312209482663591745328805174425099735766212014901640056371509767715459313013517876213160701271444885422272843109401422389298596399365205665058526405762833445056552518367330131075790738650634781767602920375252436445725797488656853771438947782042975704434514141062647672357415363175420224606857586642401435784788517538566983977060828167827472226533398469042096601953180524870090014518404088768461755357737108754246289454050636892060828196364694086866710886987715197782290252716748067090815489340774057784841726286329015419269012585596712275174919740749850497481611471164713543792290607432358241008102060770528103493289293615268873298333924085394478342950286119632842280478471996121486514045662127110757874963252908383688667061423933197894496370591249686555703049869379703798480743500810478977785491673917126937715687154965418661501165953283612870496094938702079254492861033309760293183324495911872474407659007238172263086057812096383712468118506364069136726581309372930212601022567441116038836953487023131061050421374489573966415662569790317143993468369512597405137836699705172285158433194697224422304573910521994500044331687416813352545966799194158254408497290239863352800257919732168336991918684889452204650657130027513165044081647532113521041942995827782075536733844643636051578379946477324382988644844111188755005048327045894571765733329564055948664139654417930415002914040909833085402015092450101859218314867430630914905645872513910176882244435390355269213572574064592423553131908335886827629411701206929481187471315452076451561974179625017853369538656753764653527825254651683103148116213728310451959455749667086209619523930816920403517039670131118665418919652219469631857956202524526763904742287829663464963600837380089681874636611513268130414080687857641634995558379943669161760328209095128480786567442106130529380150274466296453240815800764453211925441977974684507204710359041774292280331056156542740402481866602207425575369421387574174721307126194774076251807831287380521456672411477973262034219730405353264263270670768587887865603836641984925715793691424713401164728900852396828524241252704946361561994297843483653710647564526728439372871870327723896534551894443819290750366088100433071861747300945996877522852714662881348663736241557043347477986892594525130560026871892384761065128707773449504312157105807927305271621334216793347419090001651415808285002265416129019652673043547176437914878519852406293045784742468431413964442260035955998412332936370976267338496279312996865923428909339336372691288312477550958619700794357908639870352809357014011446674628213006520335481220782543218003466265150682778121621837690758571840640260385554815909932045124399890805456710630958450753069938416215136119829962090480488796005334928376874687078960266156722311140362651092766928221647036613901618985045381786243922531639935287577241659844170121764562813342085806583789887115582927193984192014553586318913658843548247191024622431667918963179553971832831134539032763260118380667579631037872351821918853557114527609840344351145720277625083787111906502722679573293580010730308450769786914502875071586865853348993775099475227793758055604355522782945087792417386973608822865591753260526721040397360165996148032453146790811490385709727089375514447186013153767674255013132449285866436531797253163858742811222422140110405083521256203493679725453978989781165451744448355553573183836390753756762053769525249166455199182025407262380495559855706162339570202369614301447074048525352580462221569003754661801236303847378192683089412273392350455751591754749456991551476297743430840350287303252490261312656517481091804391299017647924544432758784772688761753481668426685769669299262745066444546225122105565103682876782821432117722521324635550397475082485884155223075982438519542808931347201094396408927032135176433769508014370581588847667983514771321152509463326063055836706684906471862037893452282912760390904132092730079022665068006144268135003755584726381157053413949493299417778355134886975461530215272999132793637957462545344700474769832567861020303855881616418962809589314671305300952771035347514224209620682890829627633897421963367072629466436418507951083356920801372685609461366983865184130839659897894475160677225571401621896878155146159612863342771625429180891542411722982211305120107674981336220791308643369138378136519976574320748671909909024732908856786657080119716961155513681105767182919476920792167219282088930581023018679583811804495895125949104514902318829034662599456405051329619517471232616998758107567217282925488362073282735032916327551871888867782406793161139128200687929778657889740430533588148168626890649679685784116831139340850306206729522064130297641009452542398480875533560178211274388619826476746085092377617001760313140437539602622231943272334207489405241273063612608221081603083751460994117436065482265388947749821944776096462212249520007061999846172623311733816325457178128301208107412687341148953232334786874576826754151680331185849671805101172265951044159169079976193512072632699073257653177282675596000707612892310052016079028851885325102284998223590431855689037430850144335250276772215273241223424441751141687608634860602294439456336979052556370079035813214754669985176364322665636838249692008485945658784605241191746846271107944959475670100105572574840889959781536208648100211803108799382695917967090889616498057252673672440775859876367276742476711791685106112475347212187395337981349558983905006913603009389488248724894171745680960568238435300602000125716767759485596194623086290899902732860605505251126978916543049273162456845337488874140121562753512835112169140191605518957825187208555967371378646715402878317343278321613407851732990212392623142928173060737866556691149921660881761142938988705015370962215799871101531453307591571202057520912476320520605396513214153386732754774064301971109990137324994065521819053367828021188055873516280258803414809070568431117131876893203465404184120234442112101532482190453277707138166015164697345925926602019812840090526652364728666592245627396432745589953997548711976968261703948162260957298289159079499863450773222784235001389013707916386953627353575994318331867988755737219151705318339505738209668730314201902080570040175290915425315886789307923628896420167153799102072346847545774155146910767300441484966692482063490034191601151842002889894509451874051765164611112510880396073511704159867313473632865100299278736131813621704371541939513941292571357618236838813696820868305711783740036545190113830894605272213144165288658700886600038726255189094671632846781055886257261031548559151247698156584443367896731504761265668902382654475143614876008179312443112365906568226831812283707365767042522194072392059751120169854278787441128988546482556971524929703480870582447019807352973084666155212032756425944469276826693051394469742700282671951007053903456102130395651733258281575503819303159393523507007517873575682606471324155639961681235530573785944622192420282423864318756955818258878949945293562384656599241122638107502217496205529353306255427661276050054085973817028420240356134446864755500630904247308830983345188374185404031152243276322630034854940709598568901090815139199849656502234537894790156777286122083127682964798345192094718542163882333554217084546571404018567718086101923833976831732472723380453520351886311138127357172037749684224030366560087864583541655109344180807794241187242030342689473943230778875863202838756737706405229345654399507252160283431158571740012739455693928451400578225425465805749975448376191035522450920205305326613144818725929628692456498914937566192554519008873303721952353893148472000047805218907698159209939000301711139367255540198701285911190549600599340128496757079504778978237004499868622884144814429393964485718515598027972161781740589819223591855384774242791187070092976861793308160196932266874368189195122347548782354135462505758042941806275207229824430616292731893042681276205033564103507346528940982877680046459828639653733357226115477528364232594799779048447404187090645931512594735717836216151175129975003541968068515741727537117362168503089704553081019839876701329208653072082484944122518227293850490857509373119014043177540285863911259719028795615491791402790001245234193214703661924916561668225867356829903712125837489677170468128626361235018189115964731420562873766681867435448626279778879005931177344737433143767520167320648265398298466211595367469538661850573461470035110200277488915365683905230684740462394335117642275183553003225602043612543237469776255462139359732107902921897012796336398784997665806490461566574191563119867457567465056883653129126815194466454512258309625052979087881662416766935442351137660287753949510099477439736730415819991516001979612564937614644988720595241796770260745522293845373814963901119134328826893242893384145419708156877621006376400182095016284666367287172185700716085006834343917687702772254549195815082718746253714533041361327731699073664260715086537320952257422717438833148461470867741160300607130552612897991226845978340518333152090381599827610164671536959871583377591851303013116593442912177071822971888044293499639256861353045970949457629807579305481485602744509111622363861943384488489841839772412342626094325712615889607967171125886772122595148294419420937292185757496107429823669181955579299202736429150806843181301793782531472545085470694123994286201638222649139502063317078867564461560123117951453511645135452088317329143557391141249755970624281907306659868369011203211636052797498172185062133320023375882584643851333089802841090775515341867202013804338083906886424810758558614318566740061997527644697597055040094890396274985793209155461499559830474037850082878992941380014412418926719056965141960791196615170306667646244571254750162506790960643465306359207019358855735651166442675399316987671579605669224303340554552119294648539034811542220183904302272401125413433092077710751906898123615939021799350993103766894732656747272909583360201379053554094229287294017054661436709062323882971106919402866904576513955577783503001278304410049284869360235450227891633446164440579048776555326690439386058710182569166716519559669264299304039026604924299138068057003281031816563904924816852854711708837990222788045265537653103467185540192636987417393702593011054204424987985994163890246232175948400396152842120767272730633405818920634468344178591844692216408872214628111463590162540908132891719190947336107666376750970603133544977173009004061699566807905179898617044860676228035342817395377866606723212748690028365845102572355940697831370443284292974357327135250819624172536651160017969916194022737199579454503538154268618272822170572641205577091980391872448385003824155350575522524270236118266486927395869148318958729901420019181334434854263143562612128380223172520215593559852783547477618513394546622483686587667169402878825306231828975133918777654920829305836602827945051022982251956558950839566875145735080005759754725408757615722350811545580553443849379235793110602510593442149190655741340279839040151823982101294587025806333619417577882445082740507602873540747725889701582065904446763216060957944129415288715516571176174481968348709035453421792646752781182840893125729873853063540411032075610136799148317214052888112538789601450479182728500339047061620227834225983870906218244645323410451517262444703031882883874934872611022677546795889529366954533802512633698679700620658084256971637014215690664030822111886805782060933511469198754725465033276394362461221238086518201796000289528017437949175692047097759983369219589881252567303899250282093131429827064831038158583442346018232373396322154961446004588038542714432275979294050151928173036546631617752799730836558111462371775477529080944857056569625257811267976463407087222754514699079618078307374325782819849920955166364437952263491239558501357819179393122507617057754653754419657344777346655683176756286935299778423768510937319283309849979291181052485729386475031788912905698030314184218772813842226667503622351804385902125680172950723107518635758632862325421014827491461137889145537928943707264103273575039233052204427867092653441906504064933109601715736562536368125753029480488846590798116977284257139728741378239159163304260845716138379690548919325095195059241273323311580269356537373455637456054276168364087052393943151024927031020441222274557487435179909147431844021086522315908404296399587291313948028590247929538177573435409380108918514391164581805462151340193588425921828522223325368514073281488872481226270273301072061283018944371885148234746072616834042440035344021419938039441087767412607889730642873919360084878386642369149805939433792621169294206115344191750978254623135627652247556138014742935755189309376307528884700505469885809077924773039139201054492058198564641202373720751521402415172014236944212896865371840450173599452141170191303783808078926472343970549808663689051574118117456949714528730763136946436517960202741626475912943032152758964518182819525045684123176059711451190758084645804960181608987389270921215887971943092454794310046477270818629758594675359374056750958698043897401555222713116252780444865193588451113936645044567283362184295426623123828681450806743883530870708281926950530374540288305468769244092126149834741881117858664144964718098433007664388043165134019763956094606910078706781967799512513328829052191894327632017428118014818315877228665703495364955413446288060491952205754310846920227401115485217158833943544013917893148137337923978509682713331245237771153927564731558935330509194238871937997318235781233845071413010571199901661749764266472023876468503023329775571653022458658981850159629197552754237423280279259347044018900944599966729415709206496111872847827408889712647602369652109701237074014922062703701327638453075512071065648109967888552814555715995514011268266326286662705557621559340900216597988961809138252194967196045280505232200664990937683329018988864808327620555635433313777005856791237771551549431760381679870111170129439884281937876995735763733301303917407863895812648607681534408105166726289196849757263651271922153258357387648561777989327674439885797576596753301789033818582569248396687406647805242551875660850671648023377094115861986734392311440153453249458078676327942443304953036134306251348239473934183947401824132761523299254076793899896841893082948373834534292916911456487186834948082093338576427290093944607349562165127636617528765790819300948396584854076159384465891527107397486645520246165784697752290848360774509950963000006907934185064837228895372399142413976645042838365419341899332782915905539341834257425067114650225002659880695785262010181475973619483106153039655275968868623586662297338693016747725535367050367351469945786145302568852788081949570399344152020708200533745660150856263909117782624779381221326210957010906424554744938072222904008920605031478929471679842799771111793973684596734829487428416464021720780925598444834731309956253470755585469392357297726928606515023606386681144244956429803302216079771492372593214458538630577251418063774167695231753877536594366684871573298039036512042614510852435855625435137807768027608903048469104350937352057077718189716534486401033235842625292589557746500535420776932893849239645372647100427972014124838334086284800672962643282483160939543913066933966635708113400807837627372481959529273320916082117316496687329164775833092024329631658250130837125359168586172369937195222479861046695387477105496125718137233963397097088349958071379274102893571143288992046370478774181399150012486016754916007059634724491150169889751564561514761501501913743167076335943271172222446497693320579246123038836175283101735705788242729648109545020623150174195520123225198094849338553398305408503017509195466764185964016997018971544443259127541146628232954811542096870605282037816170714248260281982055194365799100808747614723809038855033494338131024412141134656521200212944675164444316923046236408151233858581182549711630503046730213848505628997440357434675688148794750873081962809022789417035897178728022791220730737523878594353134033033540215562020548595804113359781578099789497565301125981634832933955195768657241836430104764360676803379624512784929060020596652573064666009233649977596737369704026202207673904320365672797177346825596616740414058331688208527646748807954879093571798305435749935151368996701180088986217827628221787427834234614949720503535962019557193138805402487271417006152376119843921335696482256251688875580786864611636782635775498107316627528925879849143898320339811600119159021418560234802397758340133328533117264758321119562204838614381339403875900086675512935579153591546835142279301191500135166172722792998434833121540099715919947494976065571860684323578388957783628643476898714518772195986528924931633112671420463905823375643645293306060284497445214615959494734099045934803016719973895353658656149046253357838173116051256316312152119237292864456458522730308797678285338947457363304041447616660972753343392487596705009902146598794032560586686062416417265436405131765727030656603495001200433979592521563272616385645437548389712374045904144485573737665370962687785541320647874879821798949136761655684867278618609091940337691426685702601709943072352097079717396750673945046097451740323498117510467722659844716644537103675511643799477367419735983171261684577124006071824841711979131339207712032320391738870317407447831035402846836760820530356691019361178542690472727746864367397932761374065374306778731531985644964897524616956302001715377196888645802729148724663095778224929947020994098693085513601761912856401534434983303445501332742014255011426764266233809635751186449955234439131791772178411069231499557210717527873058091726286588040565608227579363229636565620838031977104474218784414230588886833290381221254797405368506731530380853240115838689912145205109259673285753241035136169349202789522697351657080541860464280890985949576606577790134783775754003311759047438410674238921303143674778418112057233040673753863283403419518502893037775332146410876551646333580081852557252874012024843474310012112958704319592494171999406884310735484639153174185688188394816818468128699264479778668242074669889782507194856479208794983004172525340397270345153330566749194283274539298723828184264356397680736922602404297685710573602306906449193210002875300966681250367611463675660021492285632741658076196565600191237443600384853514539574023069916752786847279822141874829490933080469085439972697670471629208096323121825230466232525063724427994613149993700248183550521571226869661414187016704712496563505316429746632004695427638299714780002927141013011115537835619374226138842371199518685541315503557088006624991053726923939017340051954901921033168103153252173084982624940955601915600108530449430196294852310069818868287970081843005733134141747619286394625786383789594445215400311505509474353236367564469358268087298375396593795897566758149056948898110220083001880038738417969351366025103562905460374642980965457542690039508268826000656999174991511988459799025587992562214973686296230071039215145024846097022903875730990092221643594185259709634724595314894158941814249683355929276923185077848898039692065502714556254411799966443832206196475433939678546745703675688386386262349418759469681398770414994703649721645389622783340347736695871346350035217266637767807735545968649966346667893269695687172468041298487407636460656828186498706844939514310834125248496735549319254333359885676147705685203714208097050475875412912763685776174471097522655739246615990239239556566627081447024957393815236970281708250544047359951762010135492202540017454661154309178346531452305737357153416055310820803264824181075316316833801132283749807762954718936903697391495851633987453544162242564991574512982783811747432146181669523181404931327847920089103607936536233082292967811575419099029316337399630978453662845836456220505526310878248920572341862952966614044145373660013149175319648611696529460479271356564070671619970063050986414171724411216631167898841043729205628429494929700431700747117601941144529170202184031598193222420234658576395219470493502748283164565952196716140436669645163894722458346624937833949137371821731057537798881780689443924417684328911809458857652381978792142808654022815605691503402809415585252397468411952914152048768624746126877003126615732019760590865605453713782012075900580966912192539275231733741807565452283105927248892871875566574466095872732309331001285240852364118429773703866010695799107651197149639368343496342918866692331824226953333515291518794505699117430115114778082545653485749610721034161288007546440445016229567831665793795360101392553817078790348414114896425387375273743272874607886188463573954323054947198968822715381663035192278285816288818052714874639790386461430457760140083765837772168044579623166836506942303707698663330121771926841985331976732809322170111980518664960499362097339385355253150736131812322894233798907266008617317433220248605139091888063347816367299454114252349787218081889532960214805348353081091243679663930996125387133904057788271148859182439751126756835974444357003994225423875434786338602533536206115439304604390609764727606517019924383002639183381937137273278989197813164461422349895513455807871894147261427953766616441091736791344588115217918648585306691253103458261291905752274626655767565287768184547696709932502565210225773449686183691949534375029192508318933688065540614407353352766271071345359193677739220996520097551867468646105702704457597430412901927036207878189766150354438648137930020320375370212183367489670542614632720208952638560917309542028270128728692006062784014523714721317556419770028585972021799858284988948181825690312576151930437031462528474087367368846512294409458057932293919234403188711399159354794262266299858201718544322162577405076040429087988852714041752979366658012383319595516658183965898094025960396892198000423453829168504325750944607751807497529004788179071877474603244998859189192441011001249476576391473561432138154420205676113088444021360388738433307805337733882948985937280098979670486845465281173473563653094903282246317304876953509528257094322695538886205981131651660933278406869364649437550094300537799083408815903758300966874855717043467950074579665428994891549680900808766572900466658183905323494261675629574388460989861327841223959071852909629009640916584753616349372693414378915441800080430699820759206488528412501020800771723981347678905923282518238851187032701002414608660364799488056305803532242835052079302006643444779818139388401571164623557060180414689540875055391015290277214758107678445604367096946040044194105285831044428261400889168635424801748975075168973924234810519852500266956108645096498275626927893454420695141331261412380957502928800012679025095574294704810705667008761791237002260882870073478793756595361083787435415272828026961735942846279836586643037337936377312122701530844678018607501268797609542321672025625702305368768324376591164843781800772477842232420981865137439904836881142161385929851268269469401627750113521657144445183172529919657646001694317971923012734375933741776521475578300916257390782035332974999799834608098981776057979377829670351814854294886264096896177570386590786895242814862325315061897911234386096985563426769224924956802119644188421384681980702394595630934104283541633034928520405396116230855467325210826392225784465182601068011408183189573727506471575438089149854700397644132270610782121438926203265836965256112711610991949187814231996335501051358640922929407255075246783527293303176159089602675360086684383193951239927850627498591527166177684462326114355762290567558296950534563735793670687077047062558882055719236725237785324400914873008604153662003402592436005517066764563910591989780273936212248908184669713133017303666046085130329572152274754805913064430484908970539430985731374430931340053216192623263973995123785117235529279287380044386728006725033367220738315413502371204620376434162989126842207376048167833041330098760721648275386525383666886513071594577776517557930549313662436001734858809961988253013377999193693092309950342778204090916368734091716460548005211480720708243745025319994663168398243403501045038034197856711279364230437939171107236193297755294174768206078639635554338944721463766313979714970617217201795639236642647051450681843372085357780875404709661919718345518270301954826174087318369683846750999539049506626787001090506901025562907803143828387474332828519009204046212864490885754265959399950400502931355432932031254508975658463185198390395404511727966130357000895543269538312157715987454026783188302721620412956137190191282945545142108863625295455847871040641083675724332370343448751989503503003992797686764393348367134699168032264768793876314316841479855856151928631285957067953617739556950118146948471792786353624709039623369689144256677805305851635106010426745277123900192604925087462480842267436668658610995083402600225805616136633058541919597469593823486958981655974246966554758835625820699073374651806182485484316536350705107425732231199278144938212722594969175471601043328403912383203170613690143738103282047809310800415686986904950258174778374321258251584451222373105254105539951431781371015555496715502226054464104363259559147803634988867114129634912298858929414143317089144787341335457546357417667087872769356657480577607002836226808321564995726776490256452934135414758648609522786593812847527510535670639828427264130496354048637612066751526673077486282596378558285724033894491186051034273379020664728578942762950463535995682529740288356721544861746305224516762291399035748974262205326443449030681350952762822809931473259517805896480065888381156355496684400216274108617013643260427531722893328664298849690260819111669665288692733233015861392676472784780377591517344441636129133890286647779835858220189950877915601308255080858234858697171041171964699106150363003580994346574478810268428991625154711232972658785450460030612908075432599780655283805217700578003958494350953072932198386416477580179249331905390638786511187589012278444009462244631128323276680790945049911445814610366273246032449932272639131996040628385701546246567213262506281977197764651809670283177546016792004202973329500261058790363636650572941223526081606743596790078341672028044277210301535919824443564735157908499281759298651683558811406227062063849260799747795733873710663723412334301254035534845249809599843179393309211297260102386342312077431879162411490164033918550311104586148336612581024508428051458602365565202132335924363290859033774196158958478514269860138676041101067012831844072515732471144085704721140052760458205765490137161421386161900693900323188832095731984148691555041331835283010421547624283569638412169742165150358414592831096927633976266499655602793630349639013803417851834990121685113873226705348060967119504808870473306038402286790388181679709933556972390836359358739407226803742046926920210885702654435624698941184871486585317441670166464566845416946003962384561920738777327603316647614042856872762955865246020426863070847092075103179193482331670690831932726774956653485622117842385707850476427335094676452340850069270531593771043645704398383920937578956858054608825852664497467130761800924882504794965712973711069048620189094996476684522828276765679360874341626863155676893362237819902911595351652990049024222269295792087231154929020748337571521257437737615682374462916839849265010863899135335229408215313570954160546797837615454153287782315271677049394108483944872599256570098582505760043689467083491830844488059650043743298090331909477435645811654448163217795333864701989034545043606649916107967116757099732880394175873423609932115328155369647772091590754929919768405281164387061876065203840587482411167095874575792431158092618718657963550486375254804880059819340800286616789864716379783735628354264491934420696765051142463429604706466638463758415604034870416809081128623033327798407855727490504148800470213705203744891013533348364940658393214951990193266546615534274510376519331105325884134214941353887023628486362045673647980548285121015126637275405695249237297627762517907782839086377055152717220846197979516334315565302060651099127479945154857365468350329884036141157541515368606552387806760664141554134054897783959812811185576166066085634604073355741155107383109607216483045503089370278659711220028212425321034498448668575598960254356956914319937438063017457009568308256642560736092442678690276557547896095548633952586883997835991449040565299941437332421591769417907698294460290571252907001608946600812351341035534548034517298371615539197024729440377041860773773203353867735457304438350139740142511698886891722851002539008481157410080068861193542623851769671648300792267909538861794493725412261290420687713201450067303312268620065941780584574660229470282623850882937849662018695099234841274958165720811724610530368726307764433754559562899532138018215344111743076177141937565630689270005501400501705795243615188194760953951451022545280492217625959313247157983596570617860672868193253626504782191148016468860475779566813672189551128322391953442266156875397218829370895506973206252357587243925085744709046808875260670747757534324143695105281765978948361045680269967807406045418710200203485514301934922640681937982501208247178405521809494978910030549710485221830641195681498557879032781751662850167819104200127136084311007177110258978034689847667893168381568229863540266324615118649618720246820072286419160638802693009643038010566609255231384902576141380480075074546444382260335735569003699424067538929500809904060656608392385445443762439215002107572022646546044244426398360922617258059770390189227639385475662337899990671900771869880167814791972711452325184248885510043046975837447111490812050658088187236672981389073821113502684868472197318674281427604338717512756316713338933237168355354783211126626720796951359865252583803389834630046628016298732915648899153932516347925546866467124502792965967937495470055563217829683011956031844264782627747639285538594678067926666421057368170470723500187735884148574058327101566078849456057206916136711638896627910294282966826932394362974468796564305135179147237608189305165635938117808817555404502949318913275098263874167216358187285781283539297659949202609480877394873562388091593646155653087448360049607824435592473772831143730368930071581007308367968033075941824502609994648206744425261287261620542947773475364404722708222133187097671267604882370392205838308234410775985486075774417181780779013716362299775282486248527003821397853956480802403909914412231193395309022206694312079187086238118350929450979712490474896776369428010832861059358769139179188467024144662354257684944723022618009305302901305683557468116940705302398254843618756945416249145502866148921767293077570907699671309391357127556781414029943235302825570345423568312720945201050786185643159928680183935145037432609788428478871941742781668338571321782397151370803761180697538194150948023407240791770271696542678024981573399142505782522541371069472901462992513767723941941423052228625675747355288566081027889850812376227854408325930083920453880432681577527860606877303122027087493810475103473297824427444639856759970069501002620393880203685894025850162891871367355631840953760160153605112608814146716612883225125312416859268331814753989838202124418570990961896995310868301059730747918496894866720636686413899902122417362402505750759605930035431903546100222333907511371944011042686356565003854132369307911796523396174075279051429770280029527474374712643124166771885877771634938071392062877427749653177610535071058106998658416302352984854501182009481535115539666730661994628608335342261114699913412695908452074141791587125537593891227411338626270161855875668155291109121426836325744060427112920991734956820890516433424011827134192361770075411724546200281606463408275467645914787115451061683825122942038619191711058123786041024510009574296352278167616731948351048660585337659908283866646830160908701666896668575773232656420804092462420621553756339769036820343060971709243574418880057007645004894570950211423105518881557288292290245370165761814381325033676552490228412823577556200147151333149810041431688424263782286394763376636770207501832704318751189003805306300044450799557255179120125334765712632483069027043132226270430511761914784404842733461500150646937526538303002862547629364042102897944885327284950456988608328792670810137206447825475768350224833825174606220894390494718416024171488972463687358329991815741926869984256445238226702870223083768214262880926474547191701735702777740657632555448903802012939297845913118961470079143927900921389604243027532838448823690390784947719781349706392508013455615656670087339073163235539162649277366633448730882963769773827649551823482292878915726053516100784934263288866489311698707893312381047795377152550383049949472048758513683463094815652199906205389596334789994442505345980482099354577687878796802677864602660261335743053975908914640218008873934494950154973023628417131115080812960363365066573326763050980492192108404108184852897691688437148489840788302341405985943762940551568007824226169014516427939996689371082580116662691678487257720161757604788094626081540001573060302130053700758396299555816609778100410651869067224218893517970972622908571788735011824992992078331766885034596966778757984965861120388217303356003833888012788938424858346793565657608606612386864836195927541024730273346387443640050007972296396804434895293032743391731220740237601584362540974330030756022767452153115152914879347216413587877556895915020120014816881267428028355250010895021682045214582162785448316225976867612759968829318584846491498925592524510033741141036708512303569818753503677742433920597099042727902300006289935067665828865275174232243840848840664059299395768246384106084530023842962146427603824673686283817699655996888080373783229243877550632138145881971634363265683374449156277208143932069907577224999822136868237537049201198381223013743215903930171801773913458799409543170171615183132333095511469161412359051604856177462877232803937293029769943041508590047254381364405205228227281250101009814998801092577388966185258207258495092914915455728443327198647718889586265918446360323811943095744958682213038102678113360750647685434219644914819260759688714689852412901090845941346633541422171516763442069266852758202612914064835992824592727508114609360465045209185221792577686349702473936715381828141267914952747149236996376285238057107173468772972913140893088866119772374803593795069872073225426200944736358557232311059956911806544499576884991666800532516364594797164701077034948034821744344932356228170342340550377742255592968534492340609929773347274290463291068024788546173965775582067809370355930153604144324399943230334332645848759581144941932367450238606973681816730911608605409338881441731715158882151871090752084085134701544819787815202227630454456703226679233311225561179574260175472975719406605343167255537976554695321869876267857670001169641741591712621491718104586839470930294194218437631028765057448492476383636221187272329266451783312011833481604342073214234031972789360177927601920130208808442910752175860303529841304729923286580124836310075950829480804814330815081780772520527398091867799484217707269765835327733928227041711523330241878830632028981480589903149384080989679799354669814542588553405354457274460918073188381785283573551767743089096071881562037499824648637186623377750693471781024671658360875339770939525409960025568393854673838285398139448555293468339632043927790780253814088738975382526701994017539378123514856933138006405226448543286507869126559656302439916506079144426917283500606830555605361515915332070947209918920862664671291448786670080941889971406675762871028851874553908926277742316232409169488267770355450583887019406726358351342746369130042857009133419258160594468627280630268099569135296265308222768317640007114725797178132668425889056081412415909625065565626443295710934138006699055431567917100074121579667543892659295012456186447578797399708770649507798958228989724148038242860184127560914564072632096985465868514198193312042569168740683909504794549389909723674362328422733222336283484103362172265610942143347061962332807465595686769703082071415038931339075543056603128347473797273249464895022050922818464590451549741294659488854629503253629938550101658534439866407151911939697554755677131135199025630379751629649412048881000605148216388727258107459401368261611340380994245881982258743838929199186150304349152274202031217875407817210092486660852994786909818631795542003808759550060897757602272501780610027822589585657775062303321121026126448506885129996969596855096177147467351250086824689764892550690645820897422964951333737994233180591248684901194233624882466107562179022569875808981361738580092069291193752309406804447830472913399995452241627482206735430123510846294089558403828314123384798661725448592853723506705981084087329471180298966179586569470989962802706097500405746564957792383898849838236865024944013262017986800817147900824616651604816374017604956260309766564748761063181518685595003148471824746551443379574827093910420003875268827395611535187817650379164114724727288984088607065972704818887809615761630013336249896144557019733166512579176998780015630143922667081179619505086473709749632379337613446083345002004981121997140790224606425128914778199971965417487717801295193611916390845874394451329064437315437548938709261037378529912367313689736855101931909881775998788800676948949025119845354700786615245121237017589437099161159168353983445187392836335069826158198138692189064334497532015226048540841472151084809819185700837234782413005851504748047969428277330008593399243812798821641029296240606085169355058961366823306575003171601931793241567549757109385656846656137621614028206260894771064445753458271580510713600246602791726763489550407771280751477131226854678322919053310953006784283614395459134230963718076135041130523469754736064868902106907064789267351736625349068664737246377836684755539686932467421445632999346291197858165794004127898720186828598283274888115394138283641379115917362680034091100123507227339312410890426563810525299759835021061084425971792081005452199199807760817846864551637587514477504666890769148113922593017560285115885218185367902625159700133661298218972803907460210405129426371793061069727213555094262225686719119209730638585103247304306979926236156506446272272664124433490179873826069623575713811187502824947897097507472424930035928040835424750671318151683716065379525981867263496080606087206065492895889016004875635077918114814593799603324371587289627608678564466316457873745228697109793207159362650118020434067149790703805712839380662278008401455582579987871407424177339305461866912652559700631107402497951297262159169551594839925726192422704163505528703828633063235128419212761931171148428005463368623940010076076645392433184952388867426211822444394855478422827326859889653305222479648022662795136523732306397773691028723908755422732749990845395563759570496376414831769538687382781320227716627393894761251187285535307344342550801148742023348444009431093715114932822113102946191752631849934008115146159505980116613395055935624236522325485673775032114818911037571294134325868844739151191628933587181031165896891898426729353298887538379189399163603961282603320047572752921359151269691007708027702576761347528286367598393366019198387915406935898844762382016137192298188329228490298108614642082428194129732026061485712527354916183887943994520261258676409198677377104626017617260293324538561462870586068810008860317365505691064268472067512567427479400687822447593227916668512367997111067515504591132345490539567270700688727902138306854492836810295325734408017559711614598688830949378215502657525219136851419945017806808248881459274136672433279960220516561419436279560338597107357652236948983889353688487113070720266192068741935565592995537724721476243145580026964631190822799646623664883459520697371657751863280529569759618309391363900557189173371555867597065726028696673834478468674496677875533282090083572995004501792906173493948715526628015899905408507135877938610832217192099700246852793272670484551711214538661517444513322235555639770553909867841520964372258987860585451647018961469867438991436959425402674499432586087703298439184607138945716733429108377790548456064406757072989186245909329047928524839200458602756330570984284036340926616320307516948225514944411971086147915849240726037239492773892433388766818518534238697159061200049673740835302099010790328083666107258911768019292921403803724986201028308318115296567895817372708538835154454728064580839354791964412390346718062155738719006168730493628732016293430570528092271947349522188023024133435195216310367645822773068971669268840420220828323975328143611377814567934405381430597547156431134670566728186448104336266219118205112746604294193906424768822005724851690801435511348116545353229326033518858750494038519477606499715906764140845541917394141786552390339725231764616468779293396049005215252558368992382168984879818148603862252787800517066697471085559911807041835336536738942684322796486098520767599498333925887645981744479985724567579970151320502768147998744392516039260729711669142981662480888750658122215455198660172360659148443607130592296992485938421975584099163909395903619954760900731590764372895536387667652965639234292253910474496473382158075149046585574107023637881463337419533223744852355175592323138244660841930786762803583545688450824304067981563104672085236311945655374766557659558455839943577976483385791169532892604770163679002994812594764726202282147276155730343690314526624843566157385188468363204989913444725492145964210358504937427347983500171324461927520579221131409152283651932591702854425442428741442048320590719061755588276073378264215782587445642088687180814240701077290085117236708877752533431106935687801055099916030600076050958614851859087500427617420612237645569673574220075081040902984726544207101368617891577506921075500231252563165418389456585036805527683898683941438684790153828006927392219058417668727352955412443754527958790153139795237503247648503813197368466514230353725196904872981635085934955921517651193220770038112130519002290894762728053677435393546861607514521753157060564897115638645833092489195297779718580066795703157569002075946823524420039353783067994607041976220325500023547831074342150872042023543521099570167076453305240684696456466760065324124069663851208405309868198057026196899666048316983956142431738045888239338462910523166804338055593918692121549939465889570591280997439165732182704618128761557267449164347174087488552971840721739325886464264168343907973975901982230394047773368238108286670396358452164924219438503993471441244684746044039874552440025561724418368211414848320167283008245414070369499914300983705517203580344687275843685639966513534351778018986162263091584269674400558979785406546723386983489339540053920913068252967167513738778436101459893142421632120020213695819415689469117713745631168481046439871234162019388991644507867667032650265275247813208996156396136241079830484844822930511326438819575517632673967374961313224359650646628640853537317971426755495561835248283298373837825691660855556557524218497617947543665684797131453381113443587640531121810708966541678481914498831216227870221778536594366732393637819730027109969911237212696913651012287239759285185376290528852303679418619482780602108540096352519073712478070850900558452062027190438974277832082271293898155307965546423411158983371191404610494793185301868055801930750643667969494262045645779963771694217090119076941850175577768289673365906948005439856206070071523323264769414355922157555318383805029763375718898022703908131775286112385527736708864412283273135761042687042561259354925298680666255689250624903217354390601822613837645979171761984867399884387183007298731855797107196638743099063266984392122249314350377006253564665264399632345318433823659117595445785205864603403055290763168475021554014030529414007626535537453186720431598922707956051365443535763086516248742015581532898425266055807413733184033831685771728377640109554204997882355750237513742615937198393774972259906787458760634782392964192172665637285170619318792270792521249345964526292845371209125709792806269610174464558114522959052592185880398322295912675132942345239628294062752498538718064220307160087430612672893620175628667561215686010681799494944148569454989439865474425493191990763340715136493586199537764355266089582761759253863143487018763622156152291394368084917115019855408568105235043840315573634494915545391551514816846174660361768180296947968172701057675880000144694528049749578505812414554826463972456161524520634487789582446697550962097490965066716358910581343199916901469127515900268985773733799774458274879997590262040751869100406598390477286955609783457774571676870282562290178898062590814885765171328009847019555964166538346110705411121733606932591466544185623241037133421679384800628027897888256774239880223426371095216231343630767236256266955662983814055229895504596999563794220973908245326640383852993053186060926967251360683632958747111159071406221795678301592144752936742481044522956800595160877470906639434791331088869650789063116139365060858410047097923654997568341700119150850201664820136095258473277695895219425327589421656615279298125797422167506098824434801733361823322306152820126429727279875826200248957273441964993844156353168429107576366091775902430254033982061478511505869945255303497989563267753604420342464222945749035096734643109007189492221936706772670270407300436750857950635429864518660716253481094194042649428652127502680270779438659335123802483554678045654240321639540571931554430689917853536264751478143381637141506746577184548734804353378636834374005337539089455188428159709227106252056157753964319008106903359252019032347685803688671845155821511933669953822040403412584576276146741835687666256655432176579140916304203546895865465200270488745953912380944524025451930861578685926131992705690314098082251710457724198319402039686267469433250269379199286961285811162140711636097567220200333995430204126187638853208654707954210171251937319105331517435159302165800347315868308948399616025140189917390132335754974108573735531714471804421787007781131529115273731754789153688168415867061438332422075781409219850928805829117602683965129218408554466484681790954963738083044806075421803767903503919916638443378544423073219947284371067392886556473613976070372190165342607273233320301971443437991113177056667974660083537990785292289239654801071725245239919598761036571133303868800386424167683888101525688574435417037320032726456502728258862356533685538502291882704862978827406127819266894568369839994624769664498857106932821311488643271443618670697803234303909307500215412621416579494226258995777480956556348191679556097310438494501315948428285389917749916013937870887304809124084079949390999700520160427626055721896231239291618185776777019400611803368071620608861833966412206346018069405339534435426538736400568524597524710784156592798778536188089454717785302050699551735619371004397300275853872589335467039440212954989690656784008394750898537171879516457797490962602871736831707227959108168260270709710457565380809072644402971307531714890357879987801726603169020557515745831466975480327164053306462479887378728699831859930709271032318879129303676559622842856802176885339385760893814153094578869474535614700379859288289545544534961605537606916496062339169582792045235329283615456033092151446308632121242218992517939718156440377851807396398685196327569496423885303813654610716573508015905263168656746435569539493706840933556151934599766872342737185943590346392175455858028019107503533540400600909228488464383797910814899044869748114386748671836407063086398274233481293500920959106110088684247508104919899712697397889546060041188055676823383789500218637372040992584096132454262784208164736541830292087317462134415552496791407991725102468528744118827928874905329672616014241641701347612256910606865937215378771396059695546662886654072262772285446037622978898242765388800846280948463249813578787048664877292929984103394017365436363221317441370481262317523049548975203033738325728215445471713551696207640266847438115128991666262019248322038235942281374161889368884582125071950262184660649747215958649821916410586712579145503570712823009889119068664257797465957444090646548877288056946946529321503323966358382462816779289763372565968520030540876195352052540421977182803257709797394598896675943819664035738704737695468919648168280803196320380781101110941320987565343544970869753025532885023138167058540478111491791474043613291472511640234146487228073082790842902444572070743105298305093710853135570488302397761801363987427366490547959447233632879336673944419625857771349505788661691580099162727524280692902905474321002512221938589827896297431703713637299206554916347834491239764353979047519284361059929176315057321918351822012064577060423599660579671027588212528721230624762999028161358740810420099042252997673246903573648754615681584860872238834959385187578573958672272770346474180440733833898313001943031982700318588208411345806902125607193720968981511839041073438564204317443225498851480484228710886221933659636414569300438809325818858111420217551672490771136072438663145908290926276203313770985680118235443434003573291386495788088668663128995573006731368132585489381757233590877754082546313333754374264847181699497188037202264545639215874189139420922519038129190719465266342901342892530627642270772322617889890199766189560795851194551459363514231051397794414599709712935695684941361605652005310170141095913890831085556674856091454514593948089446278897131367700766978683300144834794644921329482975716794881772106477338802249050948576102639724962434733496629215944737894258610278815516148623692213761001369079725701244720789524771960276024062500129845780460122610749109536865712296379955335592271569336442989829042605360195688784243866363582611226775753928913446026973580803190377209444108987767907029369733713984487816593103683141197624402236538005146515675936026630540056037605402717217678865258606986052050672956252026951112254427457482328305380747623843047067821337915251332172089076628114823321561898504594151805385662615412030633923769490583405631949612203687710077377090374030496648407874468504220311026064048358091419986671647200921447253743330785340277357053643993428234097940572431858308465901956723616051009763502461108441907300223045593708085384924987993943967028243896466892890239284545725917746163415201373961353001609198569664637277834530933871096865385294974959667967831843796557100444333744201362736353466674639514346492621087386676279047945649761777934627901764776220688547869493465283354888622961505610109975722190910313943827307420060652388948119323762968778917166896364577329183717582352134254672484988504347335239841887759497855696976021596020661319000849904907084713770678972312455706163073458205117280575883463426988663666371449749793923778382611215014831389002881071523073870081877707104852797985829352997759753310420021620916080360062259269529182540213478634111574456153283651473933269116827014163023100662579002529025321595485580919076827532867446961711636440093693609125664576375565793331673760431568426502444998334992835210588185427951086381481397814842014025639907465931347155905925025597861005452757341921872654834835013041827240766906313976266454964629983791490171232533217972613133422069969384705066273225157481993639005466205609867505241342666208603844089436874777267759344487128433185084532707623626659014714427868546970265575938720567240267150484925208001065170445314634580496655420628840710114855216099206277666530802870889338707793576649626188972596548871495528718568552224925986654509027687489584770174470458649328101980253406644745170205087014935616989312791978638903022145938364674585274609689839320479157696615148827524994077822133442856248390978304914735007095383327952608444990157472545146435251930708866323013679027683160977508322063836220408524117711482175158739286686296650189099469318315270076020841488520710200387488336770633378186822291988108623163351553480723149470287337974756200059705476922716637690232792819443372118608522380131708361661964073083397308314405072953474933254462299669887796231719830806816055782501294914457676767577823206980738980857566829060820855207508931972463806870014594439520079515546256296564660019770584544919450462614470249234883274724433865274604337334909791046515910738667552904785225283465138697123456608081418076748603947154525033863161607673738084730708963049269279203036272366586941308492175071936868390184940639037198844100417447974857190561814772495314052234770638902082091301002562628822709199653347571022479578599184559050090125827155617525446147441263700964357002680800810461135498321827760104373448951863310782735403620872013783470916873571584407884741193772497513965463743098837829414571689940528438862321341815766491505473681932813562776397351763862273698020963205829518991899800056654310644504580278739829984869871648252333712477024712099278188257961279165467440027922223136546589710083601577482217694540835290597078087236640713663269600869625689569569697916630927571088257753447488985446924237468827806591698375139937461853042582086407994987990661612091040487690805325973673478825166315496495430249232620252505265478340445027300600798444533043135226681427407741550379811347703871796838708371098651866528970990209248901201013071305798609514027817561624893482364760470128178377967010919258998547471980315550999985548103593237424140431817565617706934065023827465250947347755953750347879726470790444078863035762364117626377209256276592836035507103226388981437876972783156596352442720795083575576736887088193881916724293596910375445063046098477171286807763367255686914113791132350528530315748739964233349205778139219106051399490717911647517920653118618028323538770899918721681441756957623455410696293791202023979484299892566186482902169281018224651023404216552032007188445082933380062515068822879215626609124409572796840804996485628004047733631658454347623128975034993105936601705643337528681201420675696240350523895028744279034479977663330693285308675501604057095153013118238276719912203262640332941269902412252449387370649238759524116894976645730945727615181510435431224685559912656040234940252556361723349063667014220905267417755318539020532837479190925734990384471846833072926137284132287350428704700905169457657662943536322160678119945400162823788878844151603903018188483627174273364261686855376310891517355659442994385453806584380021143921538999496256424585738145027907447619470531998640658994570188058012631911112302597041241383055454260616968779669581532223267003403201901324688788745635463276206556599507676920408885532848115482990577960500661217437573219632471597201845563230492979940294578553588504416811395948147043172456348937750723998607176627983993962104113789269254599087497714644255296238763961104197469293489268169054769510006542953164592993750092563286973488816501662125661491895999869080714843847149785683874996998323663766350206127746908164468412476990845524509872200333379202496851727028780933714402195675670055397785284791064817160743132521576126399789698056491337490159578941456126734701428807730311161078034182903379733682058422900331515063630549726211938783810644791562328810919538718201560482530744410884846625229587020321658304887093489913362325143304767644991861944261881430011764387020353243463036932376793933057273779504028282084630324281917818354731197413905379041064745582627965943630051142615450959743755963085301943792706021772452973418400650678314406654392819992089218129075107487252455262350384728467779153303930647987827620089029568624676470528837671811204002188069952605621894354641382909176754106238897007902253779029520598135262298517868566989628934615450919515268351131395344132549005799051242434681693714843957490170675045525006143647920282885873623129697109114354328686204345064495911885381463780397133283105205794471574141599857057654972655431021585397323246146147483670716326191006223681845729527086629642470764029807944144739294220853866103858289293013926793168184842337317297766047760033313548170775542448482845605921987923089442264233049993345766531195064317875939541486277779822695288599645957556479255699472717970942861523592399431442751620889548636157268546698060559168006921592964242450355904071405379719692379206895703498202019998624061941347455829924523711964280813575152646690744113981267784635827968564797541142453621332902498768671065265179956239727025373981632820400584792772620138468666619370025677407473086599560510593645464699655297954799593090630586371598930764942994096409249159803241592601802554142036203820401486374399941348213537468061861695129334393563076284868649074913825994405646409030334518404076482297489576124255386783360441146756403219010958759149891730189189466015640567105191573923527289301869591271786948675398049282611972422732978833979986704228231575295301427185747896282672118892055191839296774244217736391291924843409808768736194614778411261712978759587253181892680808471892903888678085566777766480135910403191359911805847259838894827736304432220687266020405372426669806124277010956716706885656603353032887240028459740380516135548117821879814122297918440711595561859691684329137694196959807044948768271254302844599937140304236118491876379727244118665992497482186473874765338555920717884688628755744055643615826525375619730634484374926801579550645128896005237178846821999427074741054594222715249165199170839290580137010533823773793930721325571333314979614287686463507009903339785405769707464313737011661367789067774241288035583705666152621620360086509112583532073912487036457854750767817938514104028684813824168236541462553127186164947273967103029864205188237304253452826574303645319269642651550935767092498388942741657988219216102464616380364062439015498779651779442292678282242520419586562209798703938773456584985211355287170383891107773735218028487062604920148668648168783278045634790519950049629798473013188829997941110709781999536549889944191107444529420717984572036216391801331932430373403102058169173637716022989318005843854816566849543272645285367970867501506373335148900450504202398949161655810711849369168728530064456680349470804780487508185243992325536994846368054485403198443118714786799201170370751547547215816789523066682020409719423311434583813491586969155766276561436879814999413957145078350793137776739732129093512854055600786270659427859205090524813315176778385511035566636626087983768446557694742170237540121691191913563751484201860353116242808938749813119471123764646985844183773442419073475695088897906194022049881073629102192064285933417461601978545595977708563420495341782943503016276596813098224430235850265075517696333259235178510501490551951684227374128125017500152180050083986037827514049514797607873632096697987925349175428922728703240182207902002284775540527029384070950867024095057629922777126697692341721481269208163618129701368428681556946285810214014175475781732272605795734445938848711613632547494218841642728586990990209170218420808516025216307758547285760593310508902294476551031410943713695998986721722137281885383380410191479486422660648613309624729625795821523176721916558232308303358746397524267634442067691091876490566120008179207957304781464221880334080926959942265705122092452182457146900802626507017193275758562720600694919840657046441534754397765257932431693400477025864392286792400592498782294602507434297990243907616644236295538350374109588583931696079395520912965835849088953937199002731913550685157476363147666589349951869302068083821348941353984870265525845847243323469644982499348713281404020861124292849952541920810258084122169407576711366884505418564820866533882277852267202525684557576403249474395159825724904121844641011338780716954499458746906553600034943088407492849930876585470829645621196268580236018784977117723592317018711216026814917971824707326988069606591512001623682900152974815467773629633560389862269280486500265105065376529217768417613307351176600225006429066257557893645398754654072116709849076132397640959732406242024161563068189294185856141973384719914736454858753197579814001969803479136056793741086573458903970767626954815855610930098461372220219271261906246785881059707340903875709210671025543895223616432691149157375251961815973190520792542619865631479043685164234535735823062789246956356277592994233329796781555524240820816048634778940317055938655750917062321338684521434329146610016371208862791935204573722332884880839950676043861620189271116615844091751533583182797650278674626570175805797411679853823055520445312033378073128002327429600288366268710219943953395470460060142899542588438223738598230508917361131236863516134653219791706172712073062736242357151859669733691170806797871410416200101305466868543518021260916460353350403044089407229605133476452469346475412704874419974893670853190278146283852990843536190835701856394525480142020834808382437578031387884119677889119666722451389610532614110636857986102462370023428109783363326872856921562127925584349246637144758397881683846110819193092234476251822505702307119858977226144495869031632943520927465695531084682561432343467651915283077092838467294312133215499550036259279940445892760088863480699391794306466355818274450313704125440331996550322345334970553430899592802441450806497497786841814412254193752534883204927637517416992179726955519791305834273573267504057884582958530480718650550664736691460333257317757292453397503705958882228749046710563304343998378784264051644789534515129959206105842588014356637093975547373081828439087408926580361919351763496903531522193063560363127158016159268728641835432967650572627237027528645369865635881684555054459465812950618952075609223936803690646600522825337538868410102960222967427636012669534053623658678949654510333268123734907136965228383280026933768795286761361578181538016848636329637805523896951225816009527346022461542541997760990000040463357840140126359268078816797873137210240855723064447077913261143550949156184583537784986721113150877735273881842460894395750595214415087982519847402133997283010211359339613215792968599989844257492114238190360835320173764927588480160794913567417422875543866970868344098206123472545672983088274095245463406012486644609653200329569620071574670382906272744100604854072884046313478857715993064217737804288750563204529252341511698515757823687438994027410112918482290545186324849311234422916663233831264785316126674205218791065691010928813656294858841470296052494146795277619994831104292055368572781516061158676862875055354453264014376977883245203206860888870196135078136464564029286347128108746931754584871384000070937685972360675783245978437781769309024231355817755935964587336943286150510321273660091005565519312956288929206774788815776959830991789405031346160219315991855652352911911280481670535301499507770146596911095685898017450105910813609835449039302452490955920066011845834653282471207618252349710424444231000366078892501578813818664592403119214827317146713581139058178651679332659102215180985365702484360659029383900901176308137414347986797123724380181316275971293862418035870648849055009404091458882286761506844134289359679862696392514600476305333325881644081846740414446143861226047858394201908285656476855321405437791479083572592026193241203722941572197819693443253867018858275387728105566975996292400143945109638125330784741634695499365697894693407046604623406980179025283343369663262372723276396862109270293070642713182379901513939844426178315079372349652966674460193431880772015786687036892136992430247733853065935495260688436983372104467040667940034736033086133462785182433182395926342406986485976538667954931870373056395608923117075137153789440480608730611118612030524114839490388239756664981430511810520853842473534165690853009331467333094704235955918589573253960287756998021931990344250365963492491817295865955467858999442699169159541083993118132448149508534769071980238960305340586092069352780753737440417670193496619974495947061227947330568155429860501800563122956114001929353930733946155854532335891754180016039971113087868902850565524377549424894448105649553001467773883220799995168000587431743125895624553601713828676215825483088082827349578011963474430078236099496029452702022520182036237446960659357598166506832276626644019987210728127877482825173215153960834075577294655620862511223308039936994143811849199371919419878128508640689666468828706087478757929876105901680960199796260451444029488595937016445879691891532195488263707488351042796048144292851705385654273575001336683899698141588524332099463441862444989765256963492810755116155495783143731449094859173560387750952895401829353063586453113256464331007119492663025463624211311368769130146284272219848591091560867304277750893607555089118896686071828179437441696136793392138641420115008980084551721330369688879654905887728045920282114551836539421397300548548414457032664052155312851419597749770060942521412386497993593692744052803374125198735162988372359327817422688294148404031512741749595966080269062787084148659089523909135784016704279556104209361203960197152928851478192508839162406858079024670432720815029759881907222288760885377248241917814522179233757042927955771008516365347411655882588291274296586089917260849413014193273699840859202995594519468688610375508518910914800265546888320716198229592245540850159481215013659256421755545672089499420566906292939277830586698002043298523366158204955636660677731998915948769216086172112826680178773948721385914731053692712409387802359753878535027276708414087187200663751766827770528060583280798131324386311546966401334240348021656168510417896136094678220806889993061463327722880800664059388087576546027385647093963202645558181856536600366960026557426884351813090111707353841361860031124773263045862543609402963471418392207539210298564891698583309402258553247576481643271520297647031212460080154079569615367474025298376195239680270926547851928286181450283677660561331115555073332467221725314404746491612305353636874353864965179479186686037890728449635915471213786720686466731461943702423950490587943329300264309171901289234926663248991413430819646655767701680547146941415162823308320841988105302930862536276426167137271881323889506003928714787040255088829831109812710116160164342534179624055228615231093984071960773840302164386607146575520422459326762837654121640904328423434950705560448232816179850130526099441990728115924452949918678038765012623176150706651603312339901802040681642501226581590260990488730932878282752833469169637797876733258084486205097297209760404246920003394778912749704736419952003063288418632769133120896113010196784938285201929453188154733798145981831411226442436182674560494656227808470738640959171830817082336718084596072531015488131091874498700274310601756950757074311023555636540225867308056726572846489204161246258262206947570536722383479944652355418680833785933367473739267005103356105584629996059558827907283194339658667590945068378995872324986623697720341490030877733637656952884733001681147042785297515893416370903907234089434862329863372969341165411782541341955136970067963651451105802352510870942230453646596234970965195796346932061524563164983426824566943119043405075460262775840853054206644111390244387675606334035916703585331520251222999011481658209941520430072614441952232625628026742221655302338411522888511678157016923590158797397791868529205503469660659226282836505282345827095708579923772056704828014255228476766881784736266403435358257545841274729140999626924519218779635613963401692992315391423800487113754242786860732990678755922120710855923698840365892265761389098541754728430300312168880267672702612335260392332921512325023298091726495611256930030315106745337006740797964803174375960526494888447912335397020818109555062600324492135578959437618693625427525699365987436742267402265778653579894870400935977367973574316386922702991121948507844727476507208386599556390677114927153933299132240924277758481315862336625079455035440875701055709170666397475882466329341098248878480075744135091314327783923705343499423242647925116037929373625760063377213614011848560054160934727814497892946970429285547416482168171007786004313797853822700958427838399339109096863056868431229447797581401571946565775545248027286867421259131160758174976797414666507993014397274155999730580389806404088862242267475900517608763315686412764072289264117806379437873212262851820296875879874099168029062617996659051449901989879240053693466309983345549144389189295255731061358675761191235148740084216070006906617827013163758971649307117438589752928978366104542150679267551681971113248250299329116878347854258310985408515811532238233398563080762790218873737801499553747255626297005044041086875094779464341702082990867902823622461958629276447001902734593698988753432964088509881009352257193009408960404193160265876895584434689816867104644873984892094279459714195134005876635791061338958458556288740701981104450794336135182433043193694471566875094359752524715308491030153159498231663991858170820623492994647113906100747974443885587972567971820187976486863194858159017341688048575625422414339438628944281809738191682262693476214778420596649890326512118294363241422230928302729802790312433353265828036448537663442968454156229833981472489183374839224662967435857804251871605906194653141030563684175962003109653961438346130687615110446163212872196843588236191074260374639948728746260480226525640924393959416702663389373016395339507270846767226645802741526572914369026582999501066032514682844162581551075435463083170462953750266687880505510169925954361083713396180991135255463970498431009843909652306814599723507765524469995549060940740119208218580305042439605378231341058940182686685042883176416179468069296175832862295823701532306421859162702277299801171768049362774677134340811565921933064920264011639762280391397759801655929130919132812870649621140388113251164147522822322932183300877693959258006651521330125306902150841031581125714678539404899555651994366898168809408916626928946991142053791179663781578372474255523557193546081872423182756290114259083403914636725693301308106671651013624131846519421053865373350721948867540557649204537630393741194998893127041840375383852558970198171022079663249905975057719098801224851581913526207462325628968072217429401273236959527828578498387318792355849928986120275546989206431776268732086324314987920998819940378293645397632497082718734129071385401128866859772036316698604780946979453406118454059915102094929771713192974561646156848898178263198949070129976261636775021591120402352095199861590654377749707407784116967302619434780423268355055945046715470173307538394758868836444395702872998160293449253138177942411957461903514503334936968774713395378069399949123867122900065135311993625889917793699615441897901505752101807466225195095787116587169338029554332038058390591201136163210315919256665839663659278273941554394106322880777817694894545899206891313731819517687596241234072674842097365924649739402265767340271908544896445566222758994200436036745573516853429557899602412893468476124319725910092773851932379975871534120820205688886352812300327987508135143670592359298465319639906700112867161089100241905376374617475382987422055648558569659585513706286208917316414267576716657934499394753065802018644805167889645234556996300718090871979444210935139193236386623536810717803268671422390972278046388091525497226347930187417856421120127731364546636829436455036079475127952469249348331001284917159158401033825814969488931030724373992848470197042720568105952118468231202771960961798629926553280375177695249628167627274469768466018068305118115766451954906510579246826030178788942124253181263180508032857827467799053074487834559956854026720283234731477050036520300359074013765317955040551473179512630483881617502664620612836825224454783671282129515982958006669201921195425113201633743381080474178226492387964994761298606031888779949496453080927094844209427493521119219734820734289864622891555637815192108816586239188812263946106752688010002994686092106107982003079454725433899401858554623575576883709688358991390545615923671398743478348763150984928862756638015289658074943166983186493063644301231628205127671776910957516981727100110584707898328680965148807850103483248490583660596856464266877602775542607331149055811694235450688039130353066199718748596819562635821055711628791420471552964398655404382718460404044129361661213354695493622863391801854188639348886774123977713083553432434009625403695239761553885311628757131154449894414222621134802477527159820280425454355923590349972621115439094617319879592622392712434590514033881757712763006505269084991184849508522740945536554317064169208946995450535098762189837319885560133200754979668151954820589854121962424628534365987975144284055703923770054592294582063656375204375617378571398925215716428218374345317973783838128968234156399113567125327407906298724393152346873480670701637242588743226702465201044480987021940582703033536960368548776639656125914201386417558445704368154165868493001747749260492428954061603794623618784895797531128424176341497621475271980646094067780945962236490322662251902473099969530908889739664891406012636133086301499219739054404859658618144502958168304978187506019931701021567950121409442725030272005406802056265390818320197638522419477698598574757979833407735852685417962380041752582915734742179841502382081273678485487154203309420441030402958714865558009685314083161391214140586484279672648409137567520741841111818495081912721032816452828037618547315311886013034455190073486430921664109542118609455645294889482049151365215111422891057924401585520694716271388368466343114065111520905946904511891565708054162395181160264664795269675683474171798092126501114794385895268553556658000548588878575472263553469786381703869804758412392023320179608689128589149463651529206968430230308832668850707068759482485658504682825895595126865688561311655540834519290157649747990552176517391153076535913263488597548511940954256265884096497305432760455146012602898054189516951231803373973068607484687165177816746004680975120740198613185882005226870573646143519351890979275053167421249862659086876012640681637051392063925725173456163017936455555262480414962648434944920312306992282286263080675255444262080594197568807978093831493595237641880975190646981278998775937383493480074495782546132122326330447938577919416030768164807745584554885573240980108531019597341318820175052440627300086979432743927645352631147938956822968090814163424810938850862636656864440121828250591721047286609137919105420077541386685316017753452695139038234375583618124091812778430342988122824503616855398522178036616979551842150110851792421258726034256041602799295406830476099418403835445313633811775387864232703087183947715627917214104139625537907472124885383577373154716211431572983373417637154963077091136312965163280805856516925554862425253584683107781446367514001651885143555919996268087665096874690053228679994617389533051480396168812862814678893663047374616499913446596856227093617424702962317549626501351695653730643156433381971720131438124421501476365313006985958872669843401170963595250879240306530481551380859944361807014769766398048495124109673666570565978408614257003988403142072838314622161881597705475404368695285154712456438825246266378021910309100356200012174977930629910259323618053898961568961982427731483315792325487966495682099973172261503889019251044424384166159888506862937883719130842811728951391748129876083924443905750446409400005253547023973454263137652831823637948296489493127327428148120115945243718062264704498759109272703890306255292254580990936242946766777528084653756715456276885412135136846993407264992056915858194500027979097790130961297739480263117449833049529244301853833621817569700892628819820132423371984596948723481933104641820494857848886400174943351513459915297594233028432486099079325010371885139700320276045766021255318775785036447272350427668405005408979936257587199484324706606639461137155659249097720150191871499057777935374547616412949166620763063752019980134976077953103392557194124673168361866854812295782675777785817177773933459267349441643528807852304076305401068862217659994014282764292716919744867341597965973325626942087329819372779459835762718667820988380891959987372568291155363207028445926433043023704566373318507018465253356880660320289977278274377908471956147899046979034934844217787912063787133561467730007830617832003789485629921977233076978430793023974622334950546357818640133508840983948585630081053057605102935640732535922676045328827674598253895161164094425684136150419362841176975436331664730850030478348654694403761475135957741568857343300725021976553538348070469827421494327931301647244860738515786689031040279077812415598515862360687162863831390834400824288639261975590174578843564388283012302947949521353216747658454346423909953595685073929666042593581799688484616771131468808718562307715911701165435532917333146323364517917824584778091660482821222520915638075874334315552958794724917134558667632482998772365299679563128266199858983802021634100787114547042121850887564828623682017918168999839544248553329979965005434647608978991560302130840873307175622339097999723237136933986432786591216091971175506165953191648062303081257842112284968514167020285207851633692997580249008543311988321521331608380924796882178909175667024476296373795393426913393147264381922830433643791902023262058063580168375948938740607146384697060465634556716361613701306370465072228900788147667052075444673620893656526762339216488287525974275965031301471852378054229005049170619731090008920208880517301913927642679532074571349175247909596384016525466871073246421949431467328770988602622863605812813478013205269824999075810592166204833671207372814343145917814601078894742099237592933705376786998542462860420113479000555749948878134521540465540907560697945319859437752574377472895736668699366336328089178706058153983619479700226966935321196819098989151936762830357268835282503020226022369419436221414103931905071299808630019114133766352081440807698522115256387584282210899415748494816165898407255726821811727550208931728158680912384920367785385154553259093163334941220784534761761338284620551688404618235465202770649926541692398684250989266794545564461021544718756352328829460645419296238759727133790014978623636205381553401953104984024538098373518146090897752524798971040594050480628005717762459536140230303084309522014189898621737535973903826733120289339661411611120677142764688929317520268800485168435797899764513702412448695757391532482228158457578274474459536732592427343240199582675208846964867301621841070255620399237015320380467923031303407345693304590497215998736097950637045382259104463765022104064462239658218778417746832312203353199513547090930581081442283987174143801029575508135108579313263246792090073073646321118139436215830506636879752483435719721862677443038766939026107486652020365565416881204963179712926935674388526171891328573189793945153577884337766202167111294294530282577268074236303249414509166390301141087371840599348017846956774909667977565869551842407306302353864331839085563990614677975793110817249232831471036469925529034554760598423111853658622296242939824361757933019307789190922257897462255492831346851552029042612142939027959982271472764034575084693707074782493646462008503025275200471043605479595264392509120291454375737793898872380734448190842929145500663400278928644499781927229418742987503338591091886481476676649815859685214679501165818050893231174838495728881778059943955963160066571550723519084979632333238623796488897140509347181467974673833588625663141384560542088209891395334879488619359432555043018500785137810844255553168814860459161843296059834299432827568621096387519007411476064278830408618892877663020963825905699046635388001963217947593133749518210144140840512086464452342838086485906363359390677393576538750774634175027031896208972196609753559332972333017762356760581359263506050892895944608859595659440119958164980633788693246898244209193537486015607257660779067762026191619217005444042312971209681976810692092532697835536113643416598757757955062295962512237516046750480205543196243387119977112000081834911344988065476303128446489734089870486383111060123897502198421307697316272630664698318655842400937804700580293924404331043927540758856376370043577643867931491707751321897219005102940011276072578922811879258545194210661245715146816262896721495667080013852926758677951855207427310229631028173447613876102144440380200901801528689227431843784127703872431363830244753040685427999810545165665369641231699554112674945803816545144171023704074100421428862848171267245381805762088987285497883031072798479587973983626610864478439202869890456853825574309026822018097514986407030794664082071681939341604297051941261882754398477452977059438954853790964814333292664192264465359706233447837271863033066005114421609817400898221810408339487523045331814433756078084248269253911367165665008201045965535575126353218912465962878412012478148862450068755060534638195536714226732686598809107468710636139792297512780880326924641366499512349541708978757621653788602897850496441883180721548153235391368155457979604092762165054890020824237120156590461982907667138169181206365464524852455245246880534195390046388780715234045927370687964870532368974367271939531477107088793987548474402148993508288306407091778590502821704975468079709358151305657923491934908380937234174000028673599745474287594932461376053231962866248925064941740891204123892002784162076283543120739381864594600578057744677669073563805110292470608157718311799166762303190203860769475190290362281711551796741056305487526403055659462015302811236450024378344443942832283037925035197371113720563263989638284395177440497321093066803806984810700788124761445451286948069267785159000636868559911981348272720921703818916818382474011652349899695423091462742768221262393947423507578553429948779324561882273958329906654192266769387712519269665576643044042434486150835063763740514246755662311782133033224004146128431431156991000568189559984175462770701220089576271557098081671649328367425522472568852190007743722951743604810177874607281198276309307656731349163760526505894386998775468698060084881921738295048500876713175806502764298961469632460554342166996305058584635595394531833513933352110360419523674302868078026651774667982929625654714344764311581820645404181382901072777110733220622547118929791173184558653036440216277571039295922966107154341644758791617213408173136857186304457971166645294602670871088738539067087542382345177964044392134689325026126380325814907209854083944284964894931333596776505979655918084462638798116593663725632742643305432674786009673792928160300466302881025263896728129643855756807665938825936756332431515826152732127068542477598759377297470268310763109488130878334204154640392033756193813321106130648041484013262831597424658771588328356933248187708944697531655906707917408889295292292925938258172838311249494824865567105139073796804292822912527680722784418959542620992442284895262359371394242439674947743536217497355751113893312900316119020037649183194121504236729548076584847911398190583883227148105610174132659272405093023506665341518039235764936163626446392470281873674532611015016597365779628914762317775359317121286790390628678390434964128598789301315949525085142531235991823858559629987633586639366907137905673318180656064491079824188232781269146257208913214422114211675341029297685273790969117052157073847231004235352582562824413593377683289415861417832702722139522596788412304482222333548904458864025163963621020481483262358303915721530516518648940721959635337887631488480460712789513034561870060793108586788380144565700032810162991300156487786448588877289287316629724175818567860109729612712598999469789324437915676837751157970424555898249418305588087201415829209992879058110860924911931825430147008329533538512704847047698602726939476467845615866708493111014593342978127530786272095710524005315370344706498858460132852213255468871625988207375693225287593696240059371046157276126112739595321502054171768995614133483729871345924369143669635221930450635162403259898226124117984386133571099119057871238976818573855232717670207941138952943755673961128815647426761673849019146519020119335405919801941181075068273710546288802043617441339931520820519403845153537328943606057288841158242554436709994489875408770995747773628664061890574717446229818536105066753141982060487216523040549849396696114307937897468370715913077403064081203013992850522130799011011861788108719468672570443942659317775395501333411515603814711927781402714706234330613414998043992950781827613757223659397582114071713475258191828355406262676223141106965414379051605199868175651594679501651655386231261701310591414234875521724416246383937275123911012355404716559311438108832126117021708966306274916038548237198313978065690582871906640791780218267462168496767268464082951360059969061972130135324924339035318005189638432754511785434131584597921844727433818405453294651008837442300752430797892598945844723521656830459533867123411611518987398048696295595579898625124868595871703673056445903917516023268446858123472212384982690736589093969316834078469687200700275883335478646600604543325488712920857507769253324633185772259542779534327382097609723929335367533145996733556757074213078989408630534561604319005619475742135973012724168622130743883841258227541632009758583866246427237332878918379817395762862019693528819042492376287703495201725242934550198655038745939320966679668393738760331052187597912276582031027243892235368483335451521732188122157372658039019322658304670869873107399208291625551764801686359038657533692017217316671051042825210310730480708540871942209882974240687697194772357639999364856461939670750091134175592702567419403969678443953202589102185607552366310064761397770134074271662059463668686152945158390788668351207614377624426800028625269212058335912984831756586693822171763968615287023425926816267251045725526361763390389942831213902289284903586367150474500982483146232972766138940125482783902922444030786983768468733974156774593391825750765242270234732734258938302577654095016426109897874038526530121594048378166492504431188234270778586823303574598186753740002881491365762704817769378743340035430761800506531159455344242558339253657142760851177129906585657373795447522838698297434289937903138454149713376121470319072509203662198493957744740339963629607844125172772127706015658586859909402349763517591984673917707277438781255559501719953559158181318985749208251808896135511174486695538959068462589895304920664737187868545678383519974648008703254419545650627384737946570451208173460257529670690583891944052852093703486816877899895061556808081434257143147017736914766447010475282264651445705950772510428547378240394851436438859854592568966609207027599096274092729523555106642496397785073395674054188327814527675841716945667821373794635388966770345684330576821784387436386227138565964855447989135412886023989556667545326279294647554053406860194960950789076846945149184526541519644268373630546149689335048003910606618615771718628999459655799703272757935550450129866993132539404371492802280481503512647759369084610361852547473011658139699509309800889059836131327342446204010112354002875908818603899149397214168509503914957577944373998106511746254182007802024376756352851914997115035258142720628501282051542863442655509873750088488565402511723528628376069604332379701272240770126880322786396347572854695932948126697662696865402533620297697696576952472980805361109863366691885147078727973203558046424221832519113388176395687359522437202563969876022543253466582123214526389532823020033098787548282326332276238452266971529320903426730383554666992847492680126769945109849778330837040227775586358777823635354255634155251674816049905201008491941800690945572726257357367001062601599060356625108625556508629848056485871330626115154538382412408774271770373510721252175166940782927919560318627800473754460299194730693817678245246417327340000233314589993605757269836255376892252238345494251513757393771391810604523947561757978698228349618607442049196249215778071836955979323026248623720292620499476160742369599028887947619127911899358043853089185063739648423165980531020778989908340721723075755115894324786895776125851362078703050404892924100296614083314720940940596418866123950661584167862721856259201977392848648714140311648546267160705356602369186279786124741148491933351012182950496625782543260221881153871735967037430498108139338728996181375637411521864274818712181907600859725899749333237305469210883695863463169988703033127714627075108568053621251333634307052890112164076179602661925265823790427800868399453280073036612500802439831168397919595782456206801811868733380956653464226089587473458307417719783429599374372842408974062399466332934530516507353568210829070300791076467859262867937717026515235973038581578920809994109714298522697531429967697413892042666043129294407775521397571856484929405014197117065538012402767155091427312183430145810338908569263750191238431331859959297539671104263227743556075521562360076714388039111332203772148055344098970993673663661180310287059168219610034511039693791260428623092784888563757965278069725439041378228843455532440903156110666499217385005570416976349334760057490393174532505488953739234263865537579343921374640030655270410865442230791465469254944130066059927003584220601751452491686648221655199212098055844416823413148790316843985550982113963120678351259266554163336258337676728756408075457010116723311683129146326565254065773518903991976557338479150274503192111489212036794041540276464613899699308238023757893550872334009334216365015356415283350253599787805829463386920704543234968469966603991007851874348359919260544101179456592461643238049152000172976407719502788288107440276508326126031476177277087266498886699157512423860678714251285395941663763936255775934955517052064165624354282160829303186173894614156472867039346538558782336921600405023735465409748687786471598228332729105840587867373371688877034051637059275771768623008267830191152433855349276663440020019607198906841227918038658622412345776641890096726167059551373240268614645081500558449211400343011865862350873614457163761703392941669552505620461295222876375879814426545305347625110046300312913561407943406035548143181892991368791090894577983371302501521679105651602237195750562521905151821596513055349622623325144209600576443993746983445599503339901497835664060068375092781917130285623893773134635962706766205869498087497945854188976392779049951008944347632415218268592783584620654363055224926456866417543841553474914300312366909919767211551486612791616453258261762918556716045649135807776457793957797656387311683481619925104589323010486820657086580032297448583952183619686250282453602632437595217231080308346352044414256161387435737107386754582213505878190165862646226992386323562824191923270064915130129156299337070314977940315515843724552954627366823675701262411203508337638520639485854610951526037218390314578777358768086357132863206776110395119705000166235354242966629087625007220231919102454678592665113841245191953468243931452042273825716891958525415590661885084031305347859013311016465897102099738810314556600138978404505960917245316307564791628438019270566702557940563766548006307635069800287684594357513540622036323659280932077026984948730033214391168140120333185624354431606101801380479182948092416490285295829369362015178915759165829782369718303481942679641844506532685798075368402374272017334754002992592084751018326028098950341656632701907838802616792871463693550871351828571187094290677784101030144011104468117888895363815133314917561888927810330319596913601266510513427914114486892858924016814850552291586974512262991538093924880953754699979238735537074443971310474848936176458154846116756868275892100146688106100386150566163687122476869024378994963955764735727832692206564804896310680895687991383926147486710590408417398978803336496616830542631888415882966029917363411557318210740483653742960116942687890114690645809784572255595135009367246187075635928193727977976810600851155945880644904340376005564699302781820017786547677451332095084910841049510414411210270275458553293282297264690755050659861039427881740153364581764896965269227252342674853818210440585249521083667026368547160883685959387046467696357098332014374034409417757453058300446793403060680587132148351049321749981622973864551346307965489244291073047903501324212350304425044439639137244442886278919730310316151287449243867341879425582420781139731774501883987123817598557277658044536093149291516249603183528281011176035687972843165692899830694592571785350005611778954468857146415041873831997349097287411426262860219540024484715476857396880750366075527446490402432419577057261045128576987246249252049188265210696297381997996474313443807339186847916343251167134362290352714296138995389358962179974710847679516496453542989779444151757587515902135868123793813792976208785059897727398700612038315880430369624214280697654786609875928099491214995771574490718395986984297223726833213012142329207453660451733255687695581400261741654184158615114399855532542349382383122762383254019007418755615280893976666381808635435814080844049036067398324808038642102624822090346256702743857419575001767151049459052791197966509354097325428786512414595810763628530814648020610247717866407356502946966486285137355864697670291822283470204710082450218042391709834391920042129074217002959924854848887777366931508096624445565988903083262785300049154560407641724302712514442256469009079781616499549532880005178956598310234856754756074568865893261357627590884468272436116719104877405144573754168023908231280391194616053211742145183782239143525130693133000485328424148425998697731339526647187479498653502805715986532404603037526847967108459513917666517695374416139229388374927416887550922239643674176644439589189124300995230453493118471558470704716173716405993894998441518851183344169282351678738781711865854320227172017211941758670122875137186301421630752211898702066539013577456123174908497773346484233650429994681765164054683289615633839692342694033775250793409786846044870799777532862145450318092342549474580072919186821896356742050742833801987449731667780791434169403745848435784435157906270322512811373232281564893392464447258929909061361201670861933991005046597799831315753985348548682699813297491873311527740312869627480237197597389914731005568922165869298301774045430346841114299234833351645221228300469077771409413835190695708116284571812062680326420383284143060309916402700998505740682737116864371614883768951840833608142810361301696821625194942217706718455354528971708415148037426351186075649461823754836842337674976859520295097517018529904089835393619119273776149947485301093509330651869595381214680659473906147112587769758238836358941646151300619828105038086436586395531053254320419951756480524358330708196880796175855209600832458345518308087493549576057556129981151937770136668431446029792920044433296054099727596057529385660833560844774504377933748901078510727634348718036671236179696828472618917569557670643199723181927466235269614685466249558347609936431304181062782595486680778091874301757506744189108218349609701053748001510162347453924456978518601192787659097855522199149718976332365611189218562809656754420344314840882993931594223160705960705248592805768908391841852506493484339393485153077977706830921560269831560312523916556999612477349704901366821156847420386188358088619696701743313415349700789687130841104074490900467303550982332179118267400421990914711420799134578901116019111027335184890124271717671312193794319462295279125059847060932466378597907044630606071811665269997111717551927552893481036919420864901857211296530151166756179812544556253113873880214973657938649774940972790195619593587437730159211362796608438291839022357533847196517605125825019371214460655126505080683028612328338391472568464880048391172039083184105265170098536777955037182043044191958584809920551098528365650966705343888592455484584404729855458261210699563938123332242963567676220299724327414890431839201176083526826942352538175155084009237087143614453182410970908720847905631835018246922618577206389538917642662286472878357432044798778109749718139501296713566808163800909278364127238541486626074253238817889786649570200912361769155605867511923505980491792135595105030185731552635352332828175266022254066097292462829673705837285747719971684716467938955907964212854636981599880156651880176432532750944854906113113226072590106413872725701207141887093241553803065726671392593623372867000609385515384447855835779259071712257122281561219935689128256723138413041798288877240170429994774497286441250491869382741153981028171559428648147214577056201190203598441078136191894016887800844849498968861806331826008730579648389449237354034752523291335209808824933100420012571663932701425783654795202861450684206234717245597854930713776540732380863353289004886489797037268652579736966928178072863724201558862306816732285709171968080097572817511637061822467705935080039425037227187148052920249996437126285069924468588574968031920595640667755126324345336759760072334365151216693745489971553280249985369709251813045837815189767606713282869757020851881536638013662517703582768363978941381790593113058728698292960546554994167143190495604864468186179129264080416832498213112620871261025508885045812308732613712321441875851433952867139531522917256046713260748590195435335734545598453824179539739894025221653855210872921574975783700032898725735508454349413898718765894067463785428729478652266381737873218488093642604513754649837274756628462868186144901216317755920483056349769696988024361702042938460884868703224488767683229543937543625076887809957880804343640877007609966504670239027720180796212052418434235562108927736438653696001999939981594624493692476701839837321148848049488243190564942252606838162574630580482086905489459940772158223407066512618324793830977141488592288281280655440829983423393487166189156048728606829306885026230634901758907388231066068221267186764048224849887327472993038428193122798180223992076050998732517070783076409795832676323012745565584879015398070188079721679964060750899430515017032603815077985073686887615627105797665408927693432411230650833813306236613096293858526593880100994877958867340096591346075933929151070129619605289017582804197741601681530401171862788824978726511399547442960217724439002842692796429961383172007410937151811078070332889833992082393830278408892444203348805351393432827919865809851148264029262510858690315945014970132842137466870224788848556752993178222383920678612308972853472086805467282725435599755783236198262079842198636252350584983537741739951058603116197940761826875148133535446406237185957949996345814056838408176689492416256546117053132598822775866130815231809122095184198489527033730454140142847955800969780085506851120828819540639817645348796994481758557253443364267901747532575034225893049192150464445642780016185001900467902746637949532590815089045663024335974307218650046450550784602315266285079701171628540498224138563305009731239390060890908660223654661981577581458319199812308753136846181590483904453574492976289081376464255488258476883907319743822285713847499296127802325997840942036475599649694496627760063157378773214077874131552280614902567551841549571532739732337827687501757089404122070262506033950635367426968690398712952397667451265768522566986782605688058012591023807322540602538021656197725299753005209091394777393675735180663447704293085804888560409211779832513390448613987683914137130313534431862287305466714299322802472190029583192539836958858365223208547310928174792850155952952221685015516254345242145319510883631531145405989427691247591992744820483959615022314040346757493045100522948270302625596063927773847897862157685365178749930466291236959726457650965071040223508293119027967802952538674957114145736076741888540972375145178446298604438176768272222807700323993658428270236789123804093803076366428405191681401318376420823544248225635327387199744068086645567168668929226399557296180881947647225091294068909522802746403144773627116414497962846164409033185303156807740433506292940329091111895363566138763653274558292212359994732108688966797705026499234443786278513522473345830052181089774641633536770253509939824938858209057831202825187204772922985840974150425348745117748416175828848619571502079945718489230925712065028331220063660207242546516276128045152537839013606514857460553793743681122602051738964639530411970196616642465994315502095466711706027815561556132188252325406467188068891882585087997010234794073481332165906274916780342905066430067657898951793985694853993486927520643553061420575440564612244933256657673660644005380287572200022307864606948593313707156702375391369656440141479758492700698809432207239895899189545681707891658894660886337846315625138751544655519656600244223090902930332899459587697185761094617589555837305468394280360448522316370584352948640992768302841145469690705981727146188092694448438009371329781822995272695194320743901068383531063964887147221889500801360890448856389203222606205064963846537280821620822841651970289499498158142675439247957791377457430233718358798245406039810444433355505882718572266938281644116377925191069118328334205129448058333764844108156462137610554743507972449995808942649427543399803747712972681865430620483262586870086659490623444430248240910753221084029561080570757536108778965231003853109759192910224287960840170846851970740862163168965208905684835298003969858511450036729820921348820858278949280399199901385172923130193685611158163271786649983428941335644684354475433633997565677146425433593172515472091166486125861937455834689674753491115679373395030786899384646419050352539755916203124440643982194735865193943998729043355417891515064085576771000998088882167236373303398537503871764213238450830775200230359526751882161540409162600245578228092806711398178913128906972985244716869261414273130515531528767341513388518782246787524218636826127231000413140122187649517848658997049178789901825917224848338720056811414600238528902933770190236791673102498153890606825954372462772306844884666258130537648349544784392447799243785515147103167438230080472568671282014056651854162441364334438087687351659597907758536473381179389087374531709743602092340876124103587305779220735754585316378606237616458604474444724377344884789371727350600631995656012822218311948375449224995368265498309448505197626485543957378799490892114857239483864773236526838724363684609722847724223933134984044008700217175072838758644233336454156833009041247073226062943442552633589954454878139256169553578356756015637994688325985062480338658634142519165062890431967191173669073508013994654949926580486820182632559665270806836634271335955069654641726180557849693287945842344892085731125870790553294813415093789795274317059770089266669504453189729995575692913975235155968284472758002092249307986241433750577289810183939376690642097672395803579923311107238861944512643403023704615777899951093733181521852865845701494245341653345006700492499400808969053667803269035120968313296196752468833249342765127201726501747278212226176964331750228526508356715564862487357572863288518738120925631342354231513748213706268955858928026622083534438847657418077980448086231304563172687828448930725254400041601011377619270583495511865926270419767335134401731879973627181688170357922387030704054526645539615337362275952447020319648632553824714665765998224704040790977462047202572009335362720329554869482982517274052805677049425042041771091430869027297025450425432364243408740096810565337115796910942744138226561535925161585564618730123995662794656111970130597696632953947830508452922663729056608779477422972462206724939611873135993987437872579787322770553070778807342090873490501194905497046861501998262018316815311685373319679211705661309517479867179224895737685307707407313305552898849726705509633912416383388283421051303506032579205423709971145798944274470423743352734600982171470336868877370447999438620339393537799244326960470994847194750650458980701409583724398824153298146204773288343870509041927634031593083775927020039028369647221628946562358811803126423145197774143208995764608457545982756471172574834061079660263670224099196143979800110939867848564880034763343679528913342783847865182215079562635378731522398149293804526562523129799974891391420063364631306271888114864287235135294630892452399715230434430463335057710441857427319820108791540807254572124060610894844537925603257096124076331526539926181647702663989715137195812812051251522242894370724873382864685284299398769552860515761842025879949535873401556375530512584257401226898742552944584249279071952015320807312567534002987548287421899220830424515427450402333392233172763622183117597737383935369303156599424972123778862406070877158093181387796210159573460163844910331182443482914554036563505729173160878329452841409768395365120946642505729035652602979122460415100561480434652554607422609393232451968177205177019691050021844485502897684231630759370285531958587556873620904510982611465707842240864681165288591169754101871730227212572039318517113846047231253386095259052250213844778681077986287070421324554537535958501792698794302074971777479567410812946481917748187261757635675428670098086346535814439313416421729950333597645920402637157706336438198765843708137754985473520184179240321085701175930828686004595829674569943654077765785059091957844374074937712589282258459511222226421004666048538697119354266944641324488006421160771807494002359220795571318562454014726851470309278445829318793116145783940378016314455592308664010997448212853453099952321488719213401260420887212346937442158043792507886619906309970152159981545107535778920161462432593017100995838244852954955578690186632318725314536638866312592563961250055865561189836120602508686355083595926702672866630742261602181872441778171047175279115678104592936236779614929301171698327193516953078161366868547170316588955637145328331621969652495226791476092717903000494957024922644816910631777178820203865939394566282068372350108867261970818412389814061557967172634608878261429172627637880531279560928553459681993825825569957594142637432098641973095015935897837978947596628998654031657407955390949749396842784274876493568490664024183653865238481990222138178150071653526120882620877419788030914348438225072299544333494857861054467627381194757380732540324058852976936870264293569539828013638448003037869716252213898417949590241707950804239736398336411549660011049859069357928703202202761840982126538536136335380096586807645900200461504266679783809181968855817264278727286038543778992854014681570524979508060120547141394452287503157726129999945298340848089242250234423164215036467465050154713589503965178787803474007685993898660868112517224657055401115958385248447582650138151836340215277875679567091857730564602014443964700208125304026786330239186843367704866298862409817287823119297328688806542644997646937350752972160972651527227161788865935952197027807870134176049675177410126292970005798587918615228405490447687401385253696926996881486015624089286909615265371676833841209318413038204432521129971801403697018029208744362035145041138912181129221488522075603227250446511310435235812384532795776934890640639710873666368515812226601232424080356753986116482801386849369208388003880629203184306590524754714505116718644647834349401854137227995764194181719862882607527040403712264854248450383414795758017510972697754011770672661982770111915368056943343144154220524139861566816829013500172718513392849642419163793985060918865276840160405992415474519583798941282317837692915331225750692093789998493179753601371355104681947714444423290253273032142519015688986381819346099462099575444863947466579855816129167250840920000180177037762895036931697133233699049198634131627773324595512925209350942589306378555852825710039833494501118030462650277536908835103267776796026179308740530124454970158384611009334354938656674480586571066297611022210727619386764798283887925796105659995896144259630623830076879609094426890389266515754062616902800832738734413313232698538810502256694232372361945389494460072529070874124650210250987006442923072871729762089018560916139042939938942204575712445838754859029500897592270711472652510621383207004584387451941800291725159123867531556224637784803638251188721483515968129704526212211911951812223037359976067799755435354523432018549153022846661401736843866707960225242485495759676940935034674053254784220176504585597559874473509104585162574621586403800056538051676281585893681263229201082250605177503355261753382922451762192308168598302631169692586407808367699909402419126838475102335030022895478985968820707588840879493825094428957723204641112089731213532575206776200983915596301799210430284654034695325764079859056504092364387429204091750155371866842057088604938034541526684600862082970858135512501853619218931374218283987651279235168996659963869935984228203488582375640811880206328517838321530177596991603996115499696987569768978679477502185651238184039585500457774812910532937090248357030747192509860408292594859157734644743767869616871565280696047079071063426248191845183439725247339135489235296831923741479350413260175944817513725944894005845377735955887286532816140611664174989934560124416614442782535328175118871041260071981208015781573397401473331215259617531703445623252668283527428273221049147309478459067256288575968430298601976630998525804961551349004601421791708194625558155507189238170063818706842822151800320874239266569429481270023288325463972663567013568529228619283485801848295489459133715584879895646736637565125936429190168599719390130822715140279461396542705075829070337849676948529763385458500346349751175742224951874555796792274688064120217218562995942442249383191457649706758129931850699454988806526841916501880885940598571532532309950903170812379271878695003401465787179280063120263394050589138558562821821230440945186212622935800618320067903928127921226012254603580405638608512099306921308259913309675802708375709523989829840969368237994927396187100898547167009369612993118885112200196648280527285516794555203685839832178529388541605236954466079891383570564628966808390900736307654775565280259608139979624312330960943338796597622268181600075108063967289321891242239385023510929500384634636899976563127163261361982995606692550322270157146541909687428709597795865668326305334792932620270841775441854927599361024320784301274367370153790871722762215197112522688793650290899689093912682624889458102462525216458297059410064568423728325009871868688356466890301964806059506765138204211384364081793013105316937677560754617723396393390552337546252617894462761762701282129942985792596131233956319513683730819842906799400801253931970427476845575906202974042570510659984940703637626813612087101068010581077678750705266427990097508660280064356293301549274960728014426318790073874814215210015828169802947633709485274659263700455532321149386249276102176245946688400264285434645359593340285733400158199757078002456477130656184657859704764607202092362071695125052891165909182955625490295017110871997971995011923599267817785563546897995072980936469263909941736724067115931648746529153554471465800152055002084336190792487529273813765742929405302828573798218463665147193016652187669981582001187999879394738986110496562700406898059002281460518453108366239681380347024536269597570994263377981627146322479820032363446231557292471957433092209461419267499188509740848773785515830094783058906960684646880050714372396662614330638867372539214553746204867227300779145799391341213229858533523309988550074422854506005084386093248268197132742785937840645393367402682645437052040011543895810822739577594332234731641853386130262036640343444158383475395173907495328808331911939458704833504257309305254211129486430604735321502041388974120665773881098161495482128292098482997172978995112892457840793096962617036686158936443767308029069269152257270674426725124884113289441310652422268024880168094456112425535153561179133072794502361849484424889928588865451669130866046718196759325506172323515240861856664975891368275968111490732497115564168488697096487197806169534444759573024111461880054550026536145509109694611914232884358060383832292032022630142620023766516687318082329615225420391827615790566527476595784118842976485118727888555376231544999916321515676189164019894503109180894339501493571150029214558579568910180148624612165146520839135687784195219799429634808830396767005943129580668224800128576686279272550465807535567212944507715314745752743841467631293965186197460174311802831472632644964635048009736755861675428889069697091564036409156851335901212303525579774346591808626131827065785618091431483517901393797468359674555186763013781360111403956419658069629775930191362845278849882825504224203205186956059106154741354298553277468735806712261517193690713756028451780691413292181008070271733295591547225783184846838973158917701707405241650587340648642644091235463382506995550395519686784344625402974183124341170747540424098580944115239803203003204838818562185318520578184381380356663912182119602750240042461133736828855904442253345456999026114550585772345474025543306786651372020276296831288101196318926765671836646903334708364736621201018350331679282603209312291744316243354366006884013184079005260671824970090386201771237491731678062847466638582214198147078289402586376309077523503558494919325827666887280107885438790220044934481180691059698555892994408115835048241536946858387372667403294396573861927052121291868692440065881996304145516726835428559477098510207132707675026367214826016039319299716166748814162911993089464373975945747836143161139606835158888266703236712369093001198679371845217639272270310248048451801093180090524027244622366060038688565201874152600974051651177099948204210183423481013086480913716196716642056812952904511773608973024281030416732006661420957577640220806264282404863422152814158801708434548367159660458406630923982437564085960478040727823827545741344405314980901750556631482766002201863132644628783728434282960531395216527697945672883077974225692804753066211379791025515465749424615850313976303800536673562947835621242335107274242776188089690246075119740304679148036520210438899051420450670683237405503686062326775156365983179436279137405889585777148906016110955449645265051305045205158287571525850754730817886429322011846231147977233410426641547567457452893884455936474149529563436690990844681934084754806790635073356211909167452320352841949680794233171232078292032395444916565019006805027824908031707592346895356771004478274770037950432921709085609390998188019095136103120345917856366465933266716827018076600981619978606844767482512876423205293343136358724749008184410132344925225241780554591189337871777988341552447079601543055296371394854438602662795855492701315445829643577938733795628651559272668874842932989330580505517716546470251519094759824346521935094696171161052055111870028160114486834996327713133054866091188226636259926772610402621245732195296928580874763897510000413601502672621813334123394770594543393183471203511173365898253535216288175203815381701519439875450123354476170248165781471211675171144016774934286878416871036155672232899038929126605757504861812402190145148178392840539761449038466355422686286266055037800061787153975315285910718910350980457742171726231423898758126339179916330562042881560614524619224893408427895320670254396835864770934436809349800765518063121796528475090198369633731759069759760600602718754870423284257094824083228592476582916032986233518455799480931211519513942706107746700594066944018489255619450979676028713296402810158155823656211008612818706739213042699590413768281696116153399072833389370724900377753204098294239388643692581600724291399101512811147136649514840977241169319245754987762924163399835041847549875842473404961124589244113305977041080127858386563729497307865969395177571632923412726616411070591901020128608365947746850284830587689543063811961154856939688829516327102973186919248582864242131652676693398734536535389622978006700290409198978867407603196947576734152785965903417642375482153756301334342200182106093064609794491941404702055466133396866307141745136657946321757303969236247277585862463891190974221300565686833755710055913564457413353612580597061317117681284544395032972360522631656998528474329625592445807625051874257252670895983169685651667088333549768257848405571807265105314231688044756062159663273437574019606326902769982264196943796593335664498004305064454488213395145972741803393796234256303328170817053761838762360636512634410464210984185291411748849956966136786188089498268679462329969698545299319613458888194080875927715947773189067494334798082242821997139021756211377623852428809750172640464721975026702945734031372522035821324571664758800736465595662526682752680313993458087785450433835995211269403936218539110885911211756711914924451278025377464902685803351964678909915201495089402773586119992549521825718834290204682345986592585099825289584409678489148928367560346086078324728880829569856841765785219079871723014248890168485891913845227677128539987540326012581240405255791707934162004004348003512848738343061248648189642042883238056417184349353864444196527339833670917746530690615725374955116620855362782305109733954654731262275135446622218006457096444986117595704335856357099178941896211219229967458365962884008493605993744794109682604783266292472010941805039836357172036559884066674736965064710829113787323757805963494229389357543768739899523531468390643447681349759821895563635936567288558834899007121358414280251824175672034341788583071598336288677140919269728471362439551152738406429788802699723042100621957574335028899997662014391831449121286641708588057979643902992192203623618198805621500050646821770590881211427855979214949820680733484089658062512753054580706382469605264791150435925740672109226534683470800576357860051521798967868356217999348875001061120947182999347926987065694729231743979609597653669042171005887154205879140394546599100772230487454332658996664843143291058180512551388501862031450656175256544176063300264712481650743999808563862436687620331962940461530962952138408365162809207918339609741156274841577047010249807984457898825851437361350942678205711424625763844723174060290364736745595128473082463415360468632267033380018083235634819420248885206557824162150169587133378274794503490605862408626603664420751573174432335625295614340280026513285344802985867484066118932302901265891636033653947712189880257098820763104366331446482449443331434598253211797438958224635034717103661864436994790774753254865688610896637195150387449874577587985376033454496169788170778372566727961588514868053723553473625361766147568784445126914482831043332819766362725807016338128942073468819424344196529621130729269997409548670973094618876077791989645605427554113172998301197219624647196220473709060524381484184851268662794641378784059453678451352495387928468651258213516097015739070809381082207308673530739410239843464461331720905723629747962462154654244915264960305495133405678083536651047765406787714297318194474737205791451493114356940675003886628647219540402882365133000511955907262486223323562739276865498590232672525951205704074916242618427856474022786739476501841335353678018058949551816720033651808074982516574554329796671354162259674400843323975958566296096362884982566131780450013955814429200290072290702737920811555503192856422298786048024857198640799646538905802166591913995470524616292427321728735559752615009018486791358227976611085724463572312560019138508367429638557524283027650596525718239193999377152014653801542883014553362686103499718345524650445426695749012307572855291070123123749686287605011345012627851744434224609151043169890081951478800774998033042514565440298493597056259665187064532874822272477929576970493461413653042639632212351931751036754264114020092367421594348100076213312892850894541302790646038294160556194607821297907268093419192392885457753969386604715995576301691153748771571448747483477669951106824374659971305613399521627396790725392903581681234110903289722752840218428975519311249027119808057469314158366235824137017999461616147290070606504958863506422931407073607132810083576176555811813527031761470079271788441811371769591984014379655000789569618415397976999376611228965664820230480343723111313088086159146946412956966501260883646443426088573540820588456714879732417248409370347047701032525897376287895102223075569621612501020249678881772680566251067681032594827133133570510312547214591265969371229115075181418917404600221134864782542590149080678624196174231254613970340562614272562305233037136461972846959740863720462249005792617927573883652848888101626186790733305205932056301423180477631363246659447694207471214310397804603321327057765747036259100350246379642010412599738913037475630404239537802411026393446900181253722506015548403600253723217720031550050656170070094913139130818280162675626095495289977140538336002993299868363170546443033266575583876368981616734456690565411259333712578694169723285285282933576602582814894498501162190305182918617337298549982445266030884453346691423820170264180231442367219770821501482161949521665957736625124576326145295978724539468103209542017680136366340880551210149392880229856829280825503997808731691791715450374213104848925036008388735707543750687550980599114357031796074264142182449141913950948841585003788891964579941443418720700955885044782410087707443058834347512628790714415331312458996600767163500103914101461471472518481604181807089867967803409846233750946943148225117248515994076840120399490108047033059077314432987876927554772608192576155037188547907724860324018294556193390344866213201965084710589387600485365602273503061011063222339897797801070061536362104291630020661703556654238310564685647893907180171950743206830200738179919503168755470976858369760379880853339735360200892107522007844487916804522146971056044162087292116929817360222874640503701426272832503553064768570908058220998019046637286749665652030988511523819776546044693761946595475184583105598916626509151484272570808198779559295711351554436811652191405916890002339790931384636751765265870493817381965448289944899812403768755158163531304678606996999166567978188425328378097016119134901752925170334632298733136459129018619393071925641453235955152004134482467668366010985421987656031599245091787085414284537877581233619508966133401793769970026657461640129829267316879748910204252823161485281655867884632225776436519388506287527034121091509117603727018436189169675016035699268533337227979316902593772969744127174899515180012814164346672666509649109922871916979135151477427113424999479659515189812083496188005343395402677902614779517522134988275437054770197998864265571783191803183951999515841569396174927572871383762655851277400085556217141697866240399387676531993696582615868819568682410111848760053879763204117846936098072454431362698605384953356887189100382973674518269534176103695017933921663658722824610169045575232305072500756690095850443666236374900698788141826113654468451222555252775376136676353707414642793782861850440517443531317371624981925413612810597579903449685229278795517428837736818029299543430289060997645136664601666273368089964823793938603184124057708700838716584433036761810796409001050508522442459253519220639434278924192717690599048788952918336056629518083362072404623756597826618757697779755902252242674701878604065121618345089375548270048903856268529252465843007042739455454554420172689706596272350909633634752802406054567896889793618533615304630745553885744851940602519617952039849124750012939424308272349062623037189480831941415277097371672065858694044489569146643385718028144395854825886010519756659359111522926077411894487067733148660938123975199652433129790882213547212440324880180592783596952055725556949863662776947022419812886118917053638905956852818570612597205156611666506756858297203655542350491977647969995883219640666559527277645577263889338667923165064916730314161772821304017859902858615556318543645771493203042462270903068988831090021741584398478373282286960508026389550956525945511540687646806831694749766518458303633293141698048540260523063614847328698627152245554545415323603747352933474853524604525257989348466888154320547665784206344195930632717242936904818084124811575161163396079407538721446151509824705467333021259330331298239268038449121064133259335018183585023688799651144644160686935643323570178137267059188507877947085892619555255378763394594029992620264872861404657838238557462999023818503348564345788794550848389028439887743215825231015875890450572417470134652002578410995980209129677482510577698214232483363885527208056202439316947394809105370039389405374646766790122052481373142845610639967242892712596144548435879469677834294707733963510128117829840730903248272099735062360938037304955932393919215981667957290591027875194598783310698410838384797346349131337315764655652662357851476467227895914484472412852196982630721211856001792477611896763878237356624261180805654652003020370204055990880060015480828595004852154858520937217120307762135832880642156271778575158674803991010055720794661760745510700911292403668572068686257752505330021944687616377483677216779797462691035989586886076047498303922362586667466273675234753138194595375936681755873250639932871911003525480540687783204505318239606674247819368155699527636864390924153326843064999327536193510550982407163518069556785425850240217468320283097671685820188946255365305154266632635360127575040026955243788368515659775277043200120117696241043681899122184591323072663739529932794119197542249698394397231755173539407430870795608143796593130510693398173894244153243262749138328941033132991847184277077514710034411093235152618532140150983742763153693963128061908342686377623147885752539446088728424896758509682472953592749724646134008219416999679262825826866781141409554299948147356678038275024651759868892406153770008884805600790066265367575265975611900314111392143917745765606610337761407214140713401959921642708962802396318432907790826110786783534598892531963209240384290697996652807082810071690951140210451225080700582733938426823295283146090205890776586987658352451060976682550801063970814564050663565429829416465720698017015007367495672544403069638395544985498509439647588283088448938696300744590005110107864978867778575164129501909445566646573258754057372786035887542274757106278486492755797449712383708326364952825176597830258665055181282360727614761796881286603527380561062541345780783940769880510103077664064385677176214236094250544358584918913069326316947134747898002780316690951651875056437443410351237697266207816605277861315646314892182110846028536400417824288032818919522455829162083678214800106234522189653171486005710690274625527071037331626980146701660402264830896097230812775689146479642273748110725454442652521481109205401466990464623738491895675391363505525141800888454383130745669364131154481333607389533693524262896356114549625662567245327135538074440188940543378069469092381520025458599664977771031923733848949567660492720496908682752301014932585971333365325482628341377747647668189332408039874328938925083966644879689714401806583398443930184994741836232320045896848062499012592017936688868019916022441906521882922371984788355400920373840663956230894916757541320429248988156880805169533468361496292565388494861638741600882991161228802179340627411397383637895662465788496572300417415716312846813264394998176095074265099186433361370836816423615023794701576553009576747429756209454162514064887284020039416115613219436919959504644728925226805244354782968533245057789995238557287622224808426564742947607244426266676209644253278714328222711853692586511592004331115541698136570152292628955112306348176296110597768289464508043063888261116855035031107586114019137516201673832863711635219625218728795215939070021678776102226292042150789873269043654364042484736742013164858979790881603984457577771570729106796529544386345122207244066993325705993515846505208452347892313122684318615375379081419568445648927498391764750986945658651952809267191270866239853294933987151024644937669517598370562773149067585894390822775457543436433027721236759547329208150510669604856251530668338035250706970623085165766861877400362841543774094456098418729550277673727457568233713599475093289762944622233949009718624319869769850527128461759028589553208586560380921972325129817243631920994505579700314559545443544708232851416373831721150027774082833875280182835685098225908006637006596843346119621684055424875860957159967273637747898072281726307394391439083853753534094911302199633777826170132013103732397227978233203556087618797554787458974126586493435356291072887123311075079833436249933693967734764113988946285116269180338875446267402404685486911591788805168535593606850442621360944306512812758931087952439244279444515789156405102801735545227042944555472141112083913037507054390907339437993812031555541251100783204088178531593554027901246918518741680753785179974316419042972385125760529637604710622792290535661320325826369829116927584179984848863874170095803847002868693061235562466809616082655876739682802331955895328369990010307139936105530768452668465581133011434571678578445147838981382837460920254424735860592327645855944676355969478681553167365018535410094556907065031106413739249890223602978056873970865447833184371618562612848210270799720319793648924289960523398202510326148849003332660044988202394186244154066033376322703376031071294678050093755437088997268392357936861576459943956365419289290001485697343759016186321313023717570186226388114210501853364151848468397783394416451354176660798795727536590614214761133174062646890908935043129834923977655022544279055098221499925589934466184843621651873633987685091124519339442265239886278525264201787223287149489808582727224195919169917011415264065672891684938195142811014272119566296232980860962868520619370259494626308286647760409942120749444099628062330081543942558980284077097570969684287019665364415643288677667851766810521622541896250944914615647715559112192932210304862184153380129901916577874077987687468064386834858999207979241548291976016366831210543821744740305730370012383197402869095635542416708570149529981103064661223733145798550635187433300933492004167436426734673456814196724709125436867894738385770998687287182405155395267794000735588071622661537881800804699455658559108520739779847268704981026664340571521498728871825413804866239905699997579937097204117421342135526272326571606768112955674991439641482427120651498296623326080765895231770735627772832741632348060356075093133585574963322707230193795363778088792098745682849700570108018424165785722709425233257598549026123165923140203773357516263852818584877778344866297702172773992115411301437524112288281793653412833265076470979909914418357895741508444685578353707408230607321604885961869741587193236477395534577720343903618500825378648229341615737084810105821200193055313298716533931392045624255819137445727456703733152247914486273898061015499377226518179585768418440113415889316832140508202591560610844705543658752772578623426444676095235863451418636982620787629554135193671013963045143174492481958048646106836140769198726298075350446395028570464933058523664084353557234928683437323293048513422274422581161967718242340567377512601041572976342663908432457201820524451313435616697772729996074639932797246771945907409408533324285745809933699019739496579940733654301035439157698467632190211247118135302001586558497545171662584750068051174265260159946678438234509404102707937582162890504742798303745575808453768644910169019969726742721880259448365344167661073081956759073175041873463069860581837309984780541179752060721057732840452230120380773447979934610881456548883060275685759858851928010529441277250265400939886122616932889426345953531174177232332843931610457593757301733533563145487254772314441286926582498034760181585432636903295038783432143376129960472617272561512042029272472907256107902373942773938318387682193140690282369524506147799807329970945333739123553747901430463014502115238370903170690869932914815254309481954148537092071137765132996440066203621189852367534325052208278128291942806891323416217226302121247275320583216111213346197313358306509580212089872074576398927411342031887339893601516545030302534704579464511471304324745738305277366071292236474521586645424394754459433601246651710872989965900231538355900202644726167799593076948303072209258324277556910267260427901918547523845113648115243817276785551412231624846834028805860904237884571681715226508117777479006806471606759942401743262173442390344781299391540674437762523642889610306972110862724562280331129058148651396801846242190147447012579660501205798817716742376994727371917612453427481854809921903772322766319960497417825543917554760477499544267255251509472896362985680860495279671548533997711115876594671989469157445222262115787321403005751780171335286790233709035649661609482165991220795286625245300048357994370303850826847065877245439860641246216564738680791651800457507373435433328149250224611496537993718215640225830201467916010980895492706341869092768225877148382230653275209680666343904219911063690374273802705956855802053568731784687265674732527693528238635270140324503953055454390052350191744657495295290144976256934299885827396657241286854231596762050664799014587974408598185260798232245588561785102612035047597251395486481372531812679363729665643266439940488508329538936035105528824772859973177412260683748725159778774749798069321586677169093140598821537472087981417474446100166458409857268369949938240555070006028437906424252897984326415242095828651292044967577046847941579379204726096550157442907990974452877174398977852721168629063499726278649196998597492652692565124121208240032567162247103071104042233220461514398314783443596104459314184196586023848773327600420840732458994642688125213357550355606607878093797378321873087863356750350141269183605950265149977193898157094491331395342538686803772545954079558229973321740262809049243234636901284210319076147045738689084592415197174236267559880195425307275708708750256325406018749614772807884937470485073025102692075841595277544146039853536273221449147134687360084920964949868531272730536448732390181768761596953626228732106825693995632292330011519521373584801498449882995501982752275529542180180551564505335568651560714436257136481981223220033549659023453987925287397693303285015204636684820030457055306406751734219475065254793170929819969946729148015460277774551028723769195640704728268617470181615365749166462842338939121560677451221506690529384715903650891601115038205756061580588449374565634481117411817527616299880095370254162193424307269399920575828222601614703145673799714227750005430847499060549104234414874917850921288033734260287197801440671496305747615078251415001692476280133512659051139559260964411660835340624226961206731984204400121524854217186268635719282853128719328930044127298550511835549469597983815312005542759448311968657607970619749714492292960641695864815426176745826805225325407988113128682024244227407220320864315074243093552078899380609314444973200790592196518659851046244560806969497336346002008064677082288330370398917739364235212852438223102947454585362409633781669970802068155876737161916265877596149361231918154767300500467791068792955420223973302689838486905374073510580606097394760776575583931993869830305762007405844211674346523710423573275111482534048986907300401537648743657961882263347419841416351127989426051712046227129553756149329336530638026488116028823624919312342123679480993725797583149267673480551149544657648382539849072860956252529402658000803998691739806558927147154822665006706289618439088675512711783783936432796860931907997567080886684295314385718571773461569486177261998107336708316747934976098078662045982880462573854664817252659238418357144762733954666784142263644989207333555005922470811143598951181643207201143745585654460124473019707989518380641414431746354129281158403014998474488064436628589318552056709351340865350467826558337442189867813355534027107786051364162040527511109376276958663583516750550294509313836309825322801225779412027639262673773063893768411525825154365076608432004140503073034900778695726211947393235122893725785787291538452544754567032416316886496591808548423633990147796392786481089594300064120850139446711110465782018435722354916490345589310067261795486159232312201898896753821604470666109693296636485991760683709217747465994911622814100216968397001465757723805403646523352281351517386335929031794955758428247066964513404903659334934255003296335964658279282090751434819533358149947346915880690382364241291665777511532289186298549925098501377908131481861725180584240086368438736688790144517663023762351706573702868507225525953768839618489169021909620477745425746866123026940028080332247087807092779865419999732974632301668224757818437165516557172951261381409316059771524014637732182130134145683754455716267489309396916398410774962467196582865218397863490975873084853073038652952801624801507847902147913664717655920745614423629639813496031537090811957078451196240077644280621752797680909631350669463404912549672638959058557429752626780299473609643776759318563896801176106908420030755100947267438156237153244412290510410398453705157047175993444031343830628037755082488262543264769174591184971681392974592240988583011080385977921159731316836821541396315388779732717410179235876403671420440926118931800241294690748159927130156371790865812825552458489023742291898767088295193765377664247076783202325166398141430312456069484693344057364489433854798222729920909119196556637174071273744258759521715348651608842232062033611946285948048575558524688334361225172777378827291494981861260914177836848795077854923489109894013850064213821589230215678893621057109421050172361614094380096409048384080528064946991524692043072661649782385015783772585805021148115131167094136208748018001855823709916244241781042036593969737058226931276883264434007473419016743420823511542980115590846736519681154543786945359047729906409529211223921426350824776486609289354185828896345806632038274719219454373366000566221680024548465206200419998064965462357701875397612471779687179965721041270725807518282484688092372987339843039555126357725984368454855768797771051878019994542249827429971806454427797485484442259465149852543841789806028001154416569373321715795173840285604167014115835461973340975579061021785558301471864672625394113855858221939983699309704441662658185835675233671734871057739956463920357701962394880942514392609192428522789283571581024118955146927821091900916570361390081787942659269114503690823845305865323522732990897182624927196560127950668871852050681133881144342199726316395807571714158702259226078927278391410112215178415407729759417139178955061034120108306524021077013508452310471590703734261669018458410278941194114175271055196086578807214213230640531329613726233403732685052645478728171985822347198861486637047233189450720988750855590398320142106212348445623610000519686892620330422978685955500425079532562593718977842548366700635704008844040837373869252259632588535784101507704041514340347785686879494967405848275658583067148613214420948585591157275408923631194452277886052011437067268228192263780840406355361390608125372694752067254858961371377433409421645944891400515358044626333663346401549939005550623887282999341135001150337806266190626598216647142023623434854382553691176786805878370577549862208967177089932099260702303856849217553098147860715475066710856114015737031572222426916216604324137274875036641975472025826951592965262734491701716612524045407521581708902849360134834619966794522590951692291616058894893759111699761709405027781302814094287405088899923357480655762401599139440414600318396026243387390511434944162760612493206762594233131174630002971223247459475565533079100925416045693523917443541211836159022778957501488869344528998292704593472216760848627998164161043472598527365082610723989787407969462809555903114429483564665206916955423014534686176910487347438720155749578207298962952601707710220701110661292717620729304550812535610687302053880027156716758779283129699022509188629954100529084577201742756131364399433859021306377869747642920497944766809495037803543866891221197505398832851832867241032557843000740714328540085699454670543297853661548257619086111947102859395598108059039524500356566113119140771674319507264236216096045351328353884795925517488057669364348777176744467548607043299806214914537750732704696889045953630027330116392169399581817613121406750352486629254793477920124446413253462442041620952259666685718381483867288329703903110099075913378898830758330405256951729395986682134156246302587594935473612070437060093458031113826443057261282397077934121475838337729048988008142305649892643592422356807145814278025771945595211506357385855675889388606875556925713315587917594253993556986576573188321078610123663664459196832870021427897797313839906540499426830709934660387926852572994076609688282966166006947579592222222004501231606046319823856314587000680931390279748578948085413007928534255323352337125876971262787813216156795963888857180326448138112339917172428030618888059015017245878820946596037338198702809506872802207496105752536335719408269769667209456485089870089592858219622802500824653486160153852854755369980226027104300054530412166419739373912720073974315523136995879236625726748621281465793901411996376906123215545971794216217563854989479973624712363201331331915681874421356815388001369291216792960266935297686865814017192031537206934605795416273987345003773755514206370194024762268142387131852722752540020712493869298059190010709321537933849179909897339099833236752554494312166518959733105974164816601074714323046938128002065485513645249972935350693178355138604767682702660620484405746079094643518977257595055059341588259103898707332118881011024025221057906356209775441244821521041050664508040993746038697772258851864804002734796503970553824820819774157400670039960593571978336804686971728405651443520028833799347786384966166578423675140414632432966471055119278483776641446521070100107948627062516431867203490972480825592484547909870959001031423705107333921907661907450480340568249750652890949568184719975513335695755805513876742202190070445659326225407095349190670675978412022480514294206662749097231206021860731733327692636795739537185563433851332480417004612818862827312769566825954017759764567298553801746902306092216453710083808813454653360700719407013692651795946390806409829504799119738589141716956816155774893944746152766378955320062971299744083475451210509169515162762922369675143220723574737774745850356517256679078113244743523441451908569185340159536900702191923076675551055027160092663616375990820463832772145912118505100021452183573380227696979293959710724827114977462778480178635797034062043681171744358248648263160977999207053775949311752739517868621891569418539761260534807812564604099464082609355224228038352794883095966220700976661772573589664240815577359725673168480260436150160769914227073099976211561246616183726131712346822995319638845530750904165233861180181755284144103196736454128649171492530352662922378654995098490455561978657341656914937344445769086860912529396033488560543424887163999203805649024257026512119723253588433404075792126184488582957540343909627547761484481791202451094296355857455956056355849619525515764793833381413942247574458027974791556513435860673831259605111828074669637363605918545159357681415963027278364139784321069807886587406621728621010925199600459769243709067308978533979255263821971381470566031699787942405028330906509619185827731850842408351377154329814137521404050684174438660494777062356665935948865175513770333380202856679437193050953971869295040549952772237858605602719262792716528741147523143945910891768563751713033150292312460755882035568896389076520623514826298278440267199209406605007687900216103744266419874524122634842818959651241181296358898387971710121434233201541128140166741822137283025256971087651861935349312832334196152091960424627359783555906302425813497849531093873944055145880473431825874560882322699796703604059831877711508604899844916866519260934988416843364908990809377046484476345566573895710365343218708300433075485855505217629378313336596667913152752146726143102986955699718488926008618035369550886689747242346813956480052463153264550772483022817695685138786755232047178000304151272650778535589425935820318453377104304197213553783814525080698055783493248383727301821620305181642187271534017440961953541411745077964204389722781361021098174681315740735364610117486501986799769373528297595689226536055088137543702872210905210121386755801383262728161772920385009069280527384034036230322086121226797330331479733624053443948791702116582506044197927041510164015405466414832057583148768582375109520491841186596838619606619378850748854932356131062508723065495604498388075706502774715496571363091824198275163290988809043788479692479008072224609228003857939007232831980716534610209849471713424415063717895145444454296876844786412048632937008017662621682118465986920367565862399539163226848473272108120988210652106830020324943160381337047188678492882747141222430014777245416735507825480807214599006391786360873671659175871701797573207946459935195836396341567885521515627846237947608376097193556424827388772338474188761146159907074507244926015846341979316965174122658249129841388286718211610485897881695380226086733986291055636494991912962148483966411930424351179105324014955541134170414101513690494883558533753631537868972425307120791997199765392030554785355177739764024729088779936970057335270274643880529335621717854273621587185785868519072140123120227997875084136156153601060276521921021559906164981183600987177677688763883119502283475125893863433528182956470387344822511782268216818876404543481864714067009829065074534493990481755923839413200518521932402472151835252557066459541318500131978568131165298567469895696711632599685232953659469050747727749487207312815962225501503244625530301990685500964356217055035805635580279660047703033606156975996560859275199170510729488438950454050747572832195982571517876047701629286125331395767404625493199233597179919832890573567985873827544209439658571761150717702511156170499959957241220398154746387210142024366425391343723215968748361620169810872375502379523450591848781705577879933510890942962606080754848279141568689160259238982113081152398212180711005034054267049292315993477921801860816330067910692563281006049055812037667924358462648834104431596231035593208409895123792056722892904087652436575503470194724430805432761244977381975529096675319797926941943861570357397257635463860889373890357585487296975292942139688448180271324502551219261429634977236678565226980796379526748718286882866147338222181406424103036449386582672835910991297478833783168533203850698128801718620893767310590019441006726592861314749618940412640911660978605279415503698181857898498796480770963532389874576491612887472766598626311702903115122964406954210489747869341569319228370905455558621330717614943769319486299491730349206317104868667406696455944928395591307691873973854878109317518047992770432254793253975605782891409943924734027459719977786153572457635855979222121501290484555517663022866407561665190323523991246899403477666719705581017108582027496490515701591098780971374739892100644949835243312547463669713202239646141266252972910128969319091939870301046302597987911733321239505141434691116509685329875484559425519993645725763638719443995124039769560868643601435500830819099596021476475995384576797985779470800043280789772564337735661977867053511760227458856944158044562001148972850629449858098200408618955526845453591935542392398618505789706560692970405595452287285555765100081695230261152599388283692912707135968821386224380723421366663527725147872057000365664907996123493913404414017414748210874623825629539344572683493360178342924549300371686876519847848827160074017538944422971859539865793999085834012294594699472137452162539460849469536255434680166685268650667549024345182941553800746639458675833316880117728146578726228190359054044463238234545045498712136979832400451922250318178773654804838109462345586222168485153884977157108203653614177361523320274495299606422143573310459513785683150324139160798684044641354798050481909298905157627476597077763883129432360210356587089564466549399011716369375753070856257348103269413827141333541889471421224380113745777281555122988093740626643713666957459085998756454756702368645328609795690448163798050786324196445734701597821605665209224192744723493197019114482803199688489925096671838055009858074013112112388146579997380416873371712874848578196209747829118043216931139771007813673065186369300262791763997936223754614011653394927514186729662543641381403795652467839636917444466134468210854555924625238897724972339802337763420502826355294627429450146232678087050365638239441674012565901861339550465347214740233146319168931538583439758658722705870618361975946475119992843351536317812028053926948757954642695024557998455544095457248635774748733398908324860559708056649289498645425133725138083687741336957381317497451433000962141090585175357865057913759040307907587216523394509017359476482414672717230061247063544684786407412040061498777578159105038054737632664408344197964934326273525845993121562396460655269399466768117271307232312065234728503667289162980027541081474175554882755706142852081706105746392718937386233375972033423416957315404198347022571741113362287549888253924315680742151756058701306196792064081523510966511993106635067419643810059215161246314257215241509089556264214209729344671033577724899903262497266224267077872980725675382599334309631877362126645770752390098322258465522182809784972422100476402824464176579177891732011856872483548041924645559506160208736792131841025294940409911057606994786034158163128465504575552274226462166961882706551930045383176058808415696363759114344888090094270345849192219269192580077225096203088840643247417541324457132041906632797146219844617059574430708242356824242050413016298980768752207272570122624094873795701544942368007284645932622147173595758476646228417601512348017425678500248854023528337920442366839272894572962799477888208105601762897520887844939364782934312851351500945950407359099251072204938030848831361373052693957509621131014429192538002577402060941654843737692766953738474268188184636019405236453656118144579862569767329343118812288719339596960803963308107125682703579154310067401796213123516312363195445945624532949615179883757131531694093236890078576837134754527107987353109935616229087747213169361315682011379048122458546498173335119973835755690655695317244570242929456062069102229720313428095079563507021678273960473831388637781002958767829667233718612478662739509442842082738647629885898424166005293911725076507104843445557785897137352849449632357826745995494841139379833092996719450182307986687540884484706442075149931343590674833903546359125287018600014048587801952479007851140538458024600997948562791190276284832343505979892483224793204571839490406563901117643275568589605157741175896432980438865681105441962284624167846113634419380060162634425562966119007724744479757476169091631444791570580621310799857391787882495314604371361147979235592090829337027550790827173616829175386947589129299411310720311595670317011765678401457693836092946761249830709156329176022186645377010564707709776139926406920776847377527362900552726172261759160557213733421854505709277774854628511709360636072471911057166599976817090195532530499802146059327128846557764123628099521767733352552285593492428365582952949920253714234997110047559857865999847513954301719970613183276959662936663733573728312186598070234302991998904691170842879936164983462484155228238991735587621134519547086740363686225541443161172342282564062183052236797997220592509811392271665170519296003241556970492302751343362712952813480399488235640829565481945701474056194540951744883533968130046472387107494871823280481316657870250516236417780552654936515562375177932485494733382204451115898702214736265650397689463308352096034173620740785942704422300047510518026580929854282026913896974253995058042163125484310941651075895586747562106302602049074448343443359876339179766921093480894654313637494534870508691144752850911060551708298743862460006015758025481871087715774998024614853416221426228185784451483268274405695075631148307419369651007011365069773758312068675186205340082224558788719459558219585746454480945542278680814271953241144731124323593595596678247148296264163884222958570955701426080128943535845591721797804156010066179779877400166054506484654762787789902339684213430078390194427813801931122078544104681555255489941864134798795402170089784678354961907938875205328675223842700231645036130458668482994456472337059445672139369100296508028741113108459923920506893682734218670228438019763456340865929736572894088216590866896951995260780343327501086116411555717775027718538272486295287553656858020738707681326805409158347829113347699874888976014469141540609517452274785744745483649846783024597196181961971791884076914169428279892281079976367770168702303163652588525610836454609585421485143408367595417777430314174109931264868776603242352038781339442741256521931730645626543221575482285752964596959742060738884446279686610016981513275027303291617822327155933622592847055408783956388353434970452262890304426179087369079338079364101188117389487933723127902411963467566335690937787110365020346787821384531700169719435777146893291084297716107317286328654183193873600952089811019755225498791799509256031502479335497917219870996172151993142071811800607454432908798042000128349446869784008862413670882219960182089956907931691962544598087811618593335576864679949555627179637470764110066526086186945663306409810211265560396016073126514460072231741745270375759955762708703861888807064035441916486924940790034667769598909211607261874307916020280924523253060842727648293911591747997607278896717543480088950179728615400885837464495034659686500553485668706219962554668861517577996773482155402846907635266483221431832826935660962012779430529244014079289845073436918199900437088405076108085568210572682929776099490923132371086150254959117127948705029375159722704797885185700280856291407696803879379177790777244478208299364387109922001876154926472333592245476546882271869538492271580246301601029431386786140509309188431089537515273984082521025696706810757696517708938157261267747552419097994035109703115142900438723523070893154632411120422255268167946477563886991629814485085197124089717841334600419710407228628314659639267484149577501286502516064156561513860750789820217119837683325391864825829029146290622931942952653182722678307464218616813364957382228676289979612028027595929996494477269368668550195109017621260720164360752025021804695892624454517917849221268738393948244994169540557189305520712992501177952246647692370451121913523825274655964460442115929130062281131065480855108714095471833061293106695996014257964974281426487879343363822610418407296287685373419099564704614593858306510163880246351722452367363530354429283536277337430504420288055445952324095856744577290001982960774793524705998345701059254777205308184268954704369258682744792512170179558800200930113925601677570965820323599600389703253601154672408709278937251257704025488105434780657066537538700858408235000744814323815423461828932690767447381303955617967414930686923603884522993183986594667631940694727975229855667934078464511230003841027672564699598262933672799599611392503865391755954384065706884866517948441519864080433351425743784796032470850487307784797709940315037105845026956091417371680110810705027153707370796997874275395665890352096393308973729581267241795594686251254179058005219947316977216941880886182769352622784340666742435870325141663929925968694120001386773715318184767384139226319682044046850324928330816248883740216577532213715866005087120122463527736163320161252073887403678627311246976458035941462598630837443417360296217982963738980745161036583782015778056754572570272862862327729849774467358387748196725882901259578629328995673271477817461179365984892977031183659219665532140345160554373780625248899655870062957765358936657052368234508499276330833665438549961981581867776818096224570494191079563056711267537955712899064622143710569923505601012296851767767356914971837019851854377183714927903860204761986179968280964749982107600310265817275476911716449304530705962936664006097142420271714020213760727481247977276998993626370192843061265960055542296921384967629138585775457315967678955770085462588951164927505707413700801993349470118345982004274206611853248678494505865539545837265291748848670990332468484021546830889139982670480269046927940071260833071694779417333112029219694145456364309289979976270612074036892540172210483615080815516147764709452401731779741032974221639526650584746796723294725195810694879300418941038444910045379254400675727343281610640232570085962275284175320473359726729880586005856310821780606779289243917502047527106797517943716388601237132973254787743758394424827058788756343485074734015016516510596726249705460649321343683007196551780119280960234259786692758141463936849983692137373431805394216886469560144120531360075461029037703247707876344461905817038381837976801145941048672163899560080117507018548185208127520593772074733095427192274601534413794283721759679175359747176962691309645253330178362281012918570761280273550093981130518413180246989019992107237965328114780643689331829204059756834598454440761511203572897403375836183681460115011459177416616726397582337802192800197565916002405245526572778386956376028515892297156768388177286582131817342268344327494542305315828214784166189742939212874951297202676679205708235557968744391253709836658990931695506202828581887525895826386119045628524682822620109932384018514661666794940615438426016867631145730638010781542510167877015999699056787319055426174729383406511919797115403918818170640959865532683136182388831060032930940092033758871847967124051414966764407735359237115258281055821298538179251661071628702775836375577748922668865064716364685604028165907933847545000908827265132802633002343903552521363481311146105437311808815641709300157410646332622824985096733824311550572130346466427696910571191877971826182679550978765352704721349424221210289482227406478748492937042666524011812608434574972945820964808393999860081255252756487324181187965199870219133951083189999832234597076886366321906214359834857911103705786891127172472665559585152737210587097595998488809392918377546634748476617466393612044946873922805373355227775473651536953893160465802933029810383115701452687098330814279794484565023940572456791320797448241944560115398457231214945900969056161755695859715916661700655440095973911844166137810952205285062344869869227112155610237877889576163497445844714777938531658390220063242525092229341924259974694222963199740905354603204787078029618322842393158396239129903233257778046821315171514726231871598116247783384055105845778394285501519378736647036843661020671509310518330797052017027063961526861892501725870044922611373252182171040698567248416224739958271561771896149393073230323821776745655452493585069062806405970042271359295303509483241468882579455808731816726754975151983456111781818746768905253960265292044135612737048854168507367413450870402342192085039730211734099579797459417642376451654273474731364606892377105712084587210750850051529253976548573754732128262076566939777328804157828572464319615348507007506333904969778225187546891525820619810791295252901587221828641125004008407917671247112924904609756408021552180031351086199947215719870760466286948589072397258819900135623827889183404758857740147270184627290063206751317339136608553090725150349629321415067564297184805201917354220245147453232069966855714248471049455321289487336961775527470202910125111975469055227685216985558849751718644399623289952899197680677483195008232216171222323607634533946290856121305099219076931294399244884387521159020905625165052681870724056996354770866274239106566783016991260722786275731319093171424161052376081748809171957922551191105654714628881161329120497392645429580942755124041121193219229243286276148195960615186077411444589818094379548204334359853250996531048544738420819177448065299928422948604754919130035275574108932981870010665678518449448406969536513658002557006802169256485394335057524505539309928702053248456737005736217495624029479548377962851193477402674745659396016344813706828768907895814844101742751959080875045186213502468950212320087126217797854611400254458312311778342490213935291871371728126584894276230618287217615048515473720701594867498608237590955517350903321416592097186706783338875454608165445180569442700706485846354113499232220460708913028332912295238323685633875412042075697105424693515954884522846646905378584890064664225839449336025180413532072221524625466850439198025647463158252295427715436163360861292284552440603748173329590913225653347353914028247528141883918054027796551382366518811288629061003853253221609100610824038154124188784886741213189562297889742019502457294199455563550599801892770803835344491646961440429554492521387409338554737122138328315187104384732295483812127798928477976694018687772039889445198888296319879232626209334537564481512532451672321262506932452392097346112228701587106696790427498645297739321842134042985358603564017092247639448062482813449981878703734704501955915544861092231590705705547457522956015894627401386486439752427314435320204589029099974043311802544816165735396554818790859395467930172547476304135581178630873115128550486968650969272613663923757593725574471040805824994810733792121148659670659465820313218302155260511624127881335280652241343279262471681903441595519446295538044525124153349781182084121150155613144279622538542154135647670088063643064099787531021597159412495055994948750735333714847535154918257872239000772105871273321085465693995569072721574833357753513642116327142095763512394621197587621640397719261213474640736515262555613325297142341700560061296157387620462506998996093127001344948847893254077644175851663771298267847914339925504134745220891274986224969844144527436146132784727214222802763789620864501615666481830521359137901763354162555610729699843846878162534661388637413086826338493896761894342727819440020812511566253441830007858888951478976456504900195336787153516272059028835177214884201114590917171256645051546865420500007994584002651536725956693281413301443514795382528266774208112944265598764999800917558120768258541237313312257821739182047174263719700410102265420713833582388497780608832349841990618166879673125509872217163912967609119640206658530263017498378518245432340689544374497681245982923301368444295207229033125843513142087749738360842781871004852132944545727008110974593852311097119249003143075564184317671981991972048458468543164945914329650675078951937220191549271176428899721908998562071650590782627978091656744555454508822169016330549072003658342168288334855582454721306927514269524711289386587230390516322003732943580532674266566762763228150096330659300182187207294762437079433090901388864548498995334653360224613688926743068357232473928343576501653813792632854345370919732293379594553410925689253324905404959739787451098988793823377216108027772496371518905645770068269831405617147217202795596312975125542821018889766448640669316698301152987267721755772487442245842799554976971923759964083477819721055026501360100776448055492953539625913338126087598947125737366519772752460720217317978125294751932952916139878391018935177871709260743926142171473249010567335056350284407771560449667524081121332255363130327373670090709558350797147364165081007657262663835949276936178496279836658198421102648981659424317605455680997490468015426465080824487352715103863062444083591352665585245767458074145767656785918691960475270470352057268086155207509495504256953754872273187259501494903252329765589312113762663720180216074274619145062454650785564666373858753066112456268475825205767942127421215554081491049550627435057899396885221589606850604069332019092647648810960425684457400288214705564727043676557002274725423155890513185446431880848545148727634096254011087273548719477111834971704397099054164392156845820231421862067966575449659819823875447566583809311323164248080256159777618552049469863858128315253233326494989690354653815637581160815295215469551191873252940174387305559498958259888451754155816599354783366199775478837535203760537254580024323190023674785306574934988440678728444708858418163827754161812131151137290216699915855566339721507231523541933735608278925491994720099773668439912487222430567922884018619914696193634064458918557529031552880058962397433708237522679612298585426089053594102235928945494592529444423192549708785825493014333182187622831021123636582011839792124791590657989783940681400784866204879601535117698656341941194449958599436646220363296292081634121983881681629494354629902505212641038558501980995788332597112743051306245647991283161843730276355221500646271093252589367774789122495335019049249166171810355863362341783108851396827303426033852786619168614401123047967037760209097025801909760930685232254346768959298012341911542544345068542009247564266793727809431476737223557226627860391792516533840773523577970913247467259608838902853876816901278705803216074855444988091918456085276867164550055006544495431939681002641366628951721095841520661777184836171981417933731662018722420819221594699051296818795158596140083429878868956777814584142420731702490852960080795788893125345271992956371352015783931436058986486669525585662232729774857161618116255310353347509798294464536778171898358346050750580636118474551919746536749618843532226772266675949480770785375840958809791233292029725378008041324004205614761825302818038243813745457156119973567715340237288544649638848161307516123725917892700649290041773003255194539424682238003932196466515246086156065031960642823753177589276015439023200376352031607770454664686458266718130088916282970481078079819691238392584765282555562067884547920480930820813492148124080997075817573375611108709080864180316022403601571709855693872286553540761311482797347543606736741651395784043695239729836070593285309525261439374951633104293010951825008677981277110006125053190522278218341216053334083256256853120503632209899114744576276483506326316295000079327196261024643526874344167056395834782036131169264612702609377165271816611054941764146019645469466793144223280849462776738628742574379931781642724138851788171414682027576137832833080945818659547116871266100625535899722762689915028058046834693354344744894648898518848171896928170802825535761255529671857106615033582799945406129562690498386203529157177832518869126917847292093996701235524877104295594704428462365226778459725176864426222657578628416769536095016640573821914956050097095304232110082667952959292297084653503447622807674389851345237837103064681136249450384838501232904851000386302993483211632021075878405913993477673502452059393293738043630847438211836745376510610710459268470193575908524050979513759455181261796560453501005981893102646266571491848558650768937828111293934432794999366960560304345027864521115159579756468554551862243944794034905812304913335231584308122833743021038590118859607803990980775337235004252953763725370357604509001285179871751778732000534526065727928751654447886863102793140079636515884201899302617025223163454629753094963968819584703175637000063501965101126821792246450854441114724634286445338648133885306173042378133915945090478047456810320349522882732361627047190819281390609803872711287933846553913191336476670686661449526657383334093091476923373999972938423883411343526988600457702584004840336563844624273992661199942674254900490416461837872956273938201017080067433077847203713340045610502761198567283829933004251468261870919134705103372312239749465893916732424082543681835866473600654721457544708797451018777740656442482521311075661533712717873905767499565432928628961690696829386921084132938330142526399043060109759588946108939955083264740147044345432855038438364734186460796377091552357968619569745882480926636874524305997764689703558817604605229671157564027034109573372294874734974734573841986108331846001973888867120126239599082982629379348472678802402524641011096326885039969868366901622290651679141974917923415345526876032534553609630273785286091170189779441943213580043334170573274292106719154771574909933595810394688922678645084761623593205246898823173371725088236877531285970741861300867609219505366927500520792373880282294203912380623019183088972162140376018666761143642504449617234094559524725330595402633761632960031479860681134764536799453420123800593839931523881583039350499814248805583194569915027667241935090435229946521377889048105448971516078649225670411965059716285955943082060738030494450063853189966789603395060409575082997651975546883386530610550962349519463315306669478436722886117566149864700474097435992749097306318667256995461167256838485399017118862023490696566801090498245036734660966003628071402629427438656422637832681160166655302677330358154391662163348735020195211925643130482743110731285477877272582738270037989539043611747513752747513177402331924147147763719881647337880943677772422900137733515624245014128838155495378158335620846923730304144601931614456637102120900824007546653131387334054265713564805110354618195236998228972639764326322174490835136781408229811300568935763741867542037871836965284886689620627665558971144989454760086312374952696615795565848849133179462671271986621407325422666992984939069888893141491250034464110325714274503442362727492794952119961785527351245037859861362077655473263471109486381105509341994868968562407849276696606944072029103099537825213609227975253071340193747096018141863276242392365076077140600149537829063445358093648883653974125200187128049432060436941056223573977188712291135478331313804458558395282081475962700753832497702150499111219406930926397720881851439886658367007811251114794870415016829866516684707247456631499817670252299038423127674750096652800252245850631920848824599078834806520875334264132191174955255453644644270588149748810158187010133372751141902553421379980538111381849269015703471300279634060557842872150159620861274765120250054626320941919827985422386308600139450154647024449379191373031151909374489378843364568975007523893372731867330004964586768668025201843256494383370136051951867963139101125130076037211226794431984162738170447742949892269297037806001714266566683718874447744001178114613800280273507933816439708737898881832862640051550401136891664910621394856034388791854297746336688746836607709340777328836735474139877807378915892153025898479047446742389173293368748744703090195555458830221112184921887394058396136322769753427072576013437951063579787637265350150300869863278980373648905198423750746068590598847396018435413725048450287910410350169969002217890683894151942613379328324952367763272985093036109906174802647295167025703666040737745378873440377889525848995016672725447678164516598690598204078931700982430582895379073315485792093618554620248996276554162397728900050817747551388405380656502130944298267032590636858356938787850934140186191699994067779372170461543457117912179714320039203109722240039486420532235220976382554398766071460603051255242316922889610759475846302415614221766138538573819100489254017328922483888229694774388877743946758177397292773203022899948841625722103759559173283258931918231708531382534134483260756626075324602778257447237543148391488387564443909310071405778433602816934796303090018012233094492856895391536649678427965121021230942445330911303175826095936478637567473742520652748347662423759369020730312157242653708968353600132102535811218492160988850406248576781031231616387148800163404818816013091987442526340888430459940323503317117156546332437247024464781328058619140301574831523071048527975361545687322640431548730805787084291481246188456267748129092417586718544013544316684472079456136372743449819820502553099446281366184963362801845293432186100977725819847529669048808358919892553264041626278957639669793548345999808696932084684505491616511190727100983532894623184146214163828879747385707038731625608190633992824441608527859103908192988442251691705739421073696470091943631581116323913410095473247953148415314744828791702349162086692559479582051272049554271366185775775089282433184098414544787543631177023287265575286955083147188133879432392950974210925294459286375686834068274624747394794381161662004619482167845493556056096539704217811615206499739744500508814280023532989763903242266750670840161275614854456236029584727169470889419954092385880981707045687429495395726495672110570801689105492653773262780060704114229462905134675627275352218582358279826029749817290842035837713353522108391800756227281502981913257234106919317272598832573275982209029292578891167701401024430505122109322492343374415256944369226421488163888871646610514251197059916731589321327130975823966820236949793665492729296631444369210959157616646827251149544817595467405255724711507205635938878189229100537866810897603168988235698056993489925433953664145920864334583748947098939197911970624296763189172023487594222099854676261115461147295999383308083779694168706520114577443448474314476401657786056817964990562835059316613981877014821806832010656079500435753278981576323404322457181551045910333414123665322164781766532157800747957493270971194227891840350741534209652531262025702124944048837051812457730570761245385990255520042678177205143076155109610476343091735638702414374475825595410169457575444116905905511431891563160487429499283845413562213288816316310006095553782064663305614903411228277194265691445515955262823063878632722570291884968081793520324002942914388997368511186905359500226589769800502184589295076186240219531002635302731446555456207390645851081324831576936078217873915716116353079002176458400847147353372131866194061837951413704688471751283724887532743440115574225447822188121047606363157471317873108282021424033693789340980300158560702505502539422270520596695871974818018272009112237894221181768827418233364246175759517615789913910484818068176097633308712943571951880126083457131998482661637104512031719067488534563356783776896615047338491284519782357400883563206560804201251041654564069091365068984315687033199623756827770637868610265680330267848503049688086533467016581689766671610666663158739242046484209646854434105041308741588814747189991271521517216362760149397425276267523100195386098267316145303959883119702899722972451152382136495549791130461511606155476032028665074099319250221347780978842512419432944641462912652133864364230522627491641546092025643641301832794373854029225686120905075054753395878300510695778611929226066534258256700776141665281834335892528571234278312189056703270610018471370714760601385960106143395846917825689797278726786149606396226626848802541853978042995900962305305996140374629396475101137623193508783136809489826205167225963242940377072771028514847307454394874972374218052877704951780277527620651727281624277372780991021102248539890954564316254210648451741740384522580982813804002045766778869349388073146021911410140451829072591686916854857992351747797113239055858461676440372040125851103606669103409924968217164461564837022670013902576003488625084553223370899806388320459571823942743448287387293513685322893279263099281125936146725991132196486331062446065509463351630464528528919017276330351414477200594445800957238168500819795418091668480929835230642935554006688117825590374660691993441867743240833070467569928350885929615243875117751584970025205413537733280832773273160299538901533510216163363142350967797606787597741636516906686038531883209307450417295465047141652298748679787176720772095523108089914018166407712537022329077209718310376623071968210660458825393523822058624464163517000613655549667989698543469545591838906402689033911628196166242282757778018500061410985922311936526963802781821423794786429841409597278141140919513459638331963462612160623638371603239645466896946065255419623640319234319605469631222325205596274954175428216014496086484503287964308377016680232884509575414605257113579274749146227987028237189746667783201478453907239275838493601195000914940316385322395413943503350593892613952999287353319202038943977269393794891185924029642558378007953509714835104406910521047825597784841485776021578927118349202506413091193678970995729388465678546965032973797651105807687686115452637677981738813296695338191023511747766081799584210066359714526138830170229497849633405102008328036344295123886777769607569313802919235941478919454763836117401013264462350280755580232514895335800456273999419934140431853303864275264345847496677801939912583630263384528321523294850076496454951003544464923614987596294107674787452962044310818193657544431338748410028227578814620976465006391643499896375536504000628875762669075889546319479769695647380199874616875420403118301395708768152598615683787928747656169816399114897187091098601078281828825521615552640928294692800368090235212063149646704051876769921294667909736615030372751050231373593927144185392556358337259416003085938168173507083493302520583305297251989568894513587985559587531492091700282678387713151156127827685618815572726795359977837496069044284367278585362465593321235003331874089474116210826183756907171860479577999756044003946930402781853278423104260206732877517786568144795933952277008887070959950236691253741081086721798705619654399274294539590714072605344632223464894695967004030093577223069497120121758312510298909518842070777741987800034994466796989869249126412650520101735958655432386556971052663966110044874168355404069945163007202608281039042045530969780216686514570418001363455370844007664017924488367267170082785885008350056870353275134168962935066757291631320626673214368997769998615184388612426496757532507517914374451181113567064209060163491863966715394157159978079458027209573095338384639111088872485976017886465867461687882147176976468758105151578624367166113570159571062554090963755870553036320628465086175861276544614758470413381588661720032734849532489356755645530900214867477330771929415922063685363588130391657680856668177604231218781221236635259833831576328608486671700260990734574739544367066560015452265598786827979141064904626077389576725527294340649821335147959341957186171718564793446852595857907383790263199826678917905131937429294902147711533937873591718174478821602858593037841948247301403563107855661757739144115405200258686825507380484407461551155601555819059167405248260625139382858010145895751435087542670427171918070118999024466067698815055236320741492385446799980851482046080533906044516719260992263148046574380380615568766301849246848389700634011226829309123156284433638970352333525858290049169742036548238769989436740871242560791656868712524996903282590773959241308310975207019196919026786528654099382319942425720217845643445260407862068377761021622483692207649374449102568780725363019571815320858060827799171988417769153182901338913038825276591355969759514952885692434507544765511425516616489807130494082422420633736673668461649611989076870230895979366208254448653944002336824293224408783629491885397208969430898558880100276136159472249143370788134613522372064164481953661858884000791557229140078510578345589224386700207099763848609741478593419002953434697333506919062744210054755936988107043651758533057550123083037523143647413765506867553082238296192703572895245583405963081233825280469624162476562983959006293004115178126581738514757552901805092329631732690795632927591853846519125862726954521052072960610333614091745820667140674617692115857825311887062566062968493226061937668058920671890558007399314906088415318809962720267604528607491292693257521848195529018633631666430793100418745463253689460723168180351706141476074241194234245500675977530185476821613381635959742973937292026520717423901974002355359817625814828653949890610149145364545376263364042157268981095681174533467529255028056138506063165951898136925239941959950907790505368481005591708552712249497926175028357631748653507378864477691529713740388907623747272528147552097533080551381748018810287778534667387158248726760316545177627818607798618097955094041496952819495459607879795837210607576951698490747820446422868530148479676146260730350091273639461999589112836672671464282728500947398669066529707914187876237787896525771781451543221916915279991925885131178895295629883091690334539701607508809738355998570861081240984338015226690537479368842473053520612133575659177678563437893051583981693891936979903796382563695400138374616144029128201039992746079658345243902877362257652147698344573717365557633218993555534167355383051305022780231284554084035373048376108954409843485135080435373521250718105447494197659387933280332622287268807162543559036340707523467012666139412134012016514951197653396724829181862628012330409849605278429334623675086287237102077683783856987286438017471708828101137430453370196170556085959458579004894023895278998267762704026420545247487370426644470505736336193773645879793701921542916226692233907424010536533984264495861038119346904624695614396613730403678319813436263999753405633473380194228889431849064633318289109870886333269120964683725222219865193147676054159683660390478089567590573550019949179783127854796483836144705481568354391748383147011461505372594764395643286440834551540897912429923999229149726059302642208496840242529717694075072953724754521632275972361585658101599482094002382413577466039104542904497723401754072228839745092768006505008531953428022541273506145993607069391062238377154404042412129959195932605017335983566304769369646397253711416204653710455710594092429700051589120957324283175015511393509080480554773789343908753170837918990658565773972234264362033954992955388326552620220400007955153809050661199724544819438584932717755710075817446743836872042473137194968658761268392161869236827870196267401853876917504038511986537939116183147611004172365035567734037496030550052166898494199427825338094711206089005513944877822415316868460461011041933963818872147545451103430190013480738557717547951260122456416626395432564473007413477259977533864828724255654222470550968361246169258604000354599748614699885149040125639655594031549034208088483735970851054199715279039058132169653351848770582995215536814290971115261636989450753297631683241880092809249398310820839256417252680331544763944167678243842607026293178852543331974549182661027060417727539087161071154803166422246791516131534069682190001392975616700831659664771703232012053667300731660281401699493784740646923310942221387685624709636390712267229580871831858013079565819587135078583164105974514306833504872119429933837937094100538136841914088738395665942880875504216163841394639455968307884590173493905594124133509649275845610396103823813916395244065163183415235592137272495416655631811258614773342896663589401210701734260327242358495921992760139416378578404968033637316944892183429071741787515001438884884454755431659372465775876377719292971093712629179623820649350603425017768058964972634596150328240343850895836462099598637700973336806132877413860763340251418610851535011435315794360380182875117277614728664808009162623790978635180216283484899088802155638915338123691488521865859911183521055148001711205436243593782648735521260457961334307937568820570436198186419908309068111684268123747663010650802049569092527500976309132958467302962448426075259408529489141627402762026053913675957576088358816658944422348581530205269558893773743238507247150692229342076333131861676944735387114474219544646431741534792477929709044320567151978546713933743035614618347509855319500381515983243683331862304833531376426660960405868266726499963590218828337615110627361374571231399138214964427597941108321037976397729028014767734171820590487582046279220384126426292277470146891939997745808566473706508814431946555637811964869473496654718001149809731872173476935977820915964389292290319273233579978910760991993634790127326357650903546263089118742459171070637244783893131304425777390728928507308530145065613244739354212029310144440942825347765490380412741588787656047920701935519400380417324978697045088029804835078372872476432936309871902675321111717286989683628998344948556404538131454915763612782592012283507240951849238184589763962757868350042487598025106475546198601789810839528345867836796394811955542600037402523248263940903067894426913208083816268524315462319221856967197547680634490486116317190128511197535406021412438625298655314487410891649822631864363841185872797418883782789508130429450876369856516800942836277526077718075340143736918141398360767966611524420571663897482620038903090776470971839340539996675931874287777746278037909610804118221814697473869227133496294930445662055964241125754237991793340515289068857095825095752302392375437757259183934423861263418031783529410165235261620721276038696469948500433090521321324743704085619830823780252355957330290012529627692722472250699254772984929337945156193648433205527140349791551244076044065067784041997192329179357591111504273358181368950139465131734393585928122300010758185320036222358243650196261767590458115812658651254867248355694039042820897507692711459428054682807953057083292558565243262956027297716476821134893874365762232200493491343544192474287243295628932827083070269414670741034391883576487140873447379122939414020957939823096496049672520990331949969492323420171556058875970713025137194988100453910481283814054552658124557968398101621320590840491852696124534965089179290688017359446616960864126115515023330814786364933521417575241706960016125452017584942473710290383712069576713005240261843653006208335422349502503687852143118589923195701887763870928783036859428347563550478904263016319268235013723636037961340474595745899551994698825563611293651757038413367618732451441659681985177648927058848766966781160243048548344884903797538392007986521539173732222948656052426137526364872560283283695157812799167663709533973561967502541507587693988547031651816067557601837939476983449796290665740020405839670354069359102952493689661644196356916368698592590347079793101042514749722671419195313518774057657956704657201719960913834824333609287891339544165041403094246086795934617419212440208161194965468961520728413670909863836014100671793816643640394236562570210641856571505246096156617621250817510081850514205752472880019404088192553476249863512687585863669327830611379688626874008927041122541042071720052428697144693641844625476933600830364268016016889406733606770660606739001300560848239714525373948731974221894724324114687402429127368288768035996680099972173817879599488503990943444165322835118864307238841342254328326060375635549414244671829248353468624674309819269910224578325675611375523027146741201293897135328442424435829660303326614628800632848559626475464062864285326004255889236742171587407235639222871716186764764255944991154958703894666126409211520026354889048971506294507584433842590005209597968055034904061697262779491947746073050038511216491794837804635149727930491699584871637624170565359819694931620028604028594459994942275805779501071910410944850369640147913672525368588170225493261218075258145572392902728324922910228403331415384218482809197965744834857812398689778213237827380326425091350885151713197296858679721427449587789187242135565087673651968975664338363103802732397126372288496708389473982885131892798511577625432792800121631950989520107462216708305162856790890939641118520143907958216441854867532920354153984506102041394496239687593857496124229919838152718923531058067653237020292374982192714971460411280395553843853386503189706173649322234907291761329473204140497134051213622907685818873166615905230834238214118643252639585025071086013045048235172170843956198816746349087927103799145151769721209199121182122723049034874151683772003861621080380808307511982541584925473963454546251236934584846179008958138079393181693381071146442345843155735750839156421042541942001584786016204901430763561200720149962398973152484289140670834344037677520884159562951820710003816209566534916098193617823287228629013631456514728554058549976266792426200734807945768010763470053070219073511558570852043797381023067838872856299447277364299692370709403601592044162095166329663194267518758648922287943657187521830144938544932288798681597677482968854739593388304066883298585721579788307463371205199385468075154039702553921205687993882250031559461697751671514416105300718826821299054705116642258905944717426216327666317670561848358128650670267869687995189949220247076434727603646823658988327813454531438151925565092070710899472056091908595433052792501725313293608238557683810667304262126638096062251331200019495450504627016189097145971816582739762443934883214225097026923987536200831181381123527978846851038376635257644819530857771028365422229465928835416440293739410401717252108191689279517077147303445641876814457731009979725410379189384485018837585889130671100378729801829520445688452116643000591588258861878551549220492264864785716528415052120822899008327893041370800464231524328110857895540653490190304105500634169162886470477080066244526477017982339599591062326492080071754668252386042547799545099665285284513276250423329177035099842557132582960896226735037022363202453387018713433965383413915108982820998908405030805876073096012594142023629230405684354146169166635606219622562128895876330300670486275708439749949151748904761263228308643151861589736032105865909111835895425998602880045649476597006055290736179984741928305077952874122786510931976674078947887088803029189163710073234515784793500089987997272128909214094890789536889753943797624345771065287670592505092436663819296806006637588909256633660862042506672516578103672104008036751161192486911691895978521447713575988845569117784001199134690438359406565720650718973047127832398243523120543273509427604518912836801037860216350399836135387005779951854310208497292344768582168172139581956074115408933978374385334166937280433893123234033157847715547956133666021428188323324131516188360119875733811197045135648736370248682563392076017661805669410190073696653792591019341670056282939496850022538013399347422505415434698352595973828729046853312136541414207572117829252892064838986262784062716464026142102452352926073505263503431557295493577949677216384053203118477461136584182919797253236813156019396785491286004015989547562537740823649844060425409414421949853148009254171695954794364968665103871445620387296474286569520753371511111259681135033511877728226186579286629270048885840118727272863399045981288330976193216991159747760879761302071090769402538011106690377114058381110695286677353554060732845451144779538452583885399089315293303822068152232476902057857269003451866773413470696359658232316551563249930027529114832426735501749794655681859429907763908386650906014535843716928605172026467025530882663359788013507441459415408275194738788394077910387867287301555098360958137809707476944241021475968610650260859791587079900104710325083349692747980012765886427089831983019041017850811825227777354689183971388398230299247537294392239043052106025042556212950977480524394334463375824923791227095547746717088339134738036025843075523642016712251601651946950629910486358850741827686951819021141347819280168376057519001153388664662248865697070611543226449855323272316600621434709450965704888222749074940858177305141381117909982597538641039608332870229802961199316839077521621212116238753761970098643045129805783422945236517224656443945691974496246102288826220790776179293542947420719772806378279346724858127363251127331192737929676463510470653700331419600470052384737034960626717673433286724336752162740595840025079138263238153921514303814244606198875270658544884133837749703300196897642723592908116273933928455985299620323367355696118289065487321362357311354400405140542115669358967818653005734710413640337405014138006172377740397100857302922879117175363633195835713743571527813498758608582927155821788606808565323236707300729453358407570015277933360643435392999271300831750439096932831172172857554913321568636602889509497652066439560392853310256592252953497089957839241870522369569071105575833005048328478604700300718070094285654512221670406209559589254825562602650375057010663172268324615271835031142505404332016419683647355214217324088182867591949961148305790638557437328014062981531673265737198195862361164594867343931813024962065258825335194131176378416265965821901620793403577248659782415668188589384993989246541708033173945172194786587020804876412850588932922330066588081527706302255147482010033418414262276255425377704945739866037193759236505221952084658301478509322850072421066419806096029686664738495924865366763993242925335080388948202811881946394924369903495224945029586994952096986519642005865714269852482914788201162915308112948525809139657095513839204750146801580728630492940062020931296221392379331328913299394611716676618252051071690471611290323441890939969786194541550064646076601186410581147335731460286055666802265183909952608918584176933100053836338281834841465629801067258048997817119253551245808807128122313991870612070759971185340644046606946363556807776720758239497425826873972270044756780364698147080960036485871582564442670365536200528127393049881626573370898009171380137017123356565543175494328781502674967720791398957062019492385314964697367631235003373641242718824152723482230904383803689058554097683020034198065069968280596569262940981084122231384455123575047773337629352919208480852324173036996044829552655527540633420358147906457561295412059695908883806219243315107440628095159899842046674191127269213465246750439746058617474952445815981059119875046880466418082565979665404331411865348945076693295065505169585951544281485018828045064488651487871796889233239651729450090441578849185193663168053563081784221849413749067103795852749913800974503677770244445876788088129968125652651721578370838385864701614242761744893095220218834356758910843513470338488448476058550922958641703096697914395349883092598685392687720964638760107520646952601151974814290830710519221967746655367815759137738101686158943263464027490651773025079024693019499422817944457668109996883470182103674051287154880259049314696089418525369811333648727323915167791262217331489384755295043283455048362086419812882402249418481324162418525993311493014436497695000842033167656098692667042233657788584067695591237908985080873506536760348888714934319276839245465941599057139943098365052747675063211238461143351742955971056218110411146541168702569420356098960099645450876788240219554452127716780846552339405459834033724859284035364346588685716110209384112881492825044107442601966545541913574252351289994487252144089900387973951202469785725556244103598521936043069630994127544676387476001931149351214064583406366122115185052880617387230977701550062217792515867189934798108554983999016619062209547385750306379029779862880464300065283903177457897913523646250308067377622501714277637703178743810723871987263802455982433621769225605345224190600643072640855251146655555281142197412569307056742138105828618550776997033966486653025917632565236673849788936080195517925780576912747477819852813469803925747042563045503550899330067113171483387595837123508517638232903129904114875929148865839764814688004335128536039489474934068831151173864312064136514739000879486817293047945477276323219127857460624752285715161901795683451712878844954888864909707460871811779072907833910155996805119149090798982469400778228177759344218138124034250556452062642904202130689480922770460912949225668530353336277845069218035217845277104566773842344422808166003030474693122281032797686262968565098781467986523472925244821111046993815688517222703486297226615747748621226873331911933458777871082494670225498559818577741977090591855753337506051579596595232225081059267800279222972194211299235974003881759571773210499191430146346873519578159771829487643265984928444065562369706685804162168741757217493813831740386821343921084545079444284473834766763106205288661816450165876084314019912871104009132884439555506760575003448553536083699990405131642501447206811821771225669061979548617017022263390214684933823540925984771109343043374559239298581499190403766211453623207143797795665340294788540346609303894484823179071172115551107147453581838973681602831789919362646737689755389234507104588884515600393525429659546784564827831485018242458375207130258860167709407592601322118904426585630621804815540768251505613296917378436088117760233352938509022226371736142779310238118430052564755314564503008260941885200603155397723395825968463791811103539811738498406584919563250454580671067099909848837901797823830035144102417604378836694555322658194847179766517145289109440725253652682643052469047892454005428583003041579275141817314635466800230887995333570071983701436821431301563443311362521849970541032294915681599734408684780130127639790134343405148887174598263211210680079865994912343410517872111654799273847626271601348764935463992193261089835515128656946163922697196300310067314654191000068929665581930788606686434041051492113279152818999954597993360808843590944251969824591012144758534501569797331263588056306801168625351141607854838869774096528311797389100283631692907903630877530490130201398597506081391940944620986032712668472088196329233801686468460783172769705545027822119999315998748185870194291632901406758387081995107056239936936072529388112056101606402627833145712224733936194685046787497968596317649838311106420010237667893452601847905011745880802836390965925139722888795427420934279608384212668363732097596289630355491389448140437301771276629805706498374800542657984230701799885320754001370898480356325541383781957277513196027787534246126900987876702898259928821420828426356567201371367427889412612658816528567764114552141552349779454092318720415272300894176933668886488170784392057233735144235818432106125794973319987489783564499471671806224982748923879911060711776296764258697534075386944682570172471383636411039825165208382673111921449373027227798609683303459151681756183990958341269778623169392602154678281414853270124340370867236467770933905778639841294826335865294766783344808713373571662767814100633911912685160599367319813283976373704690172511656809314302315079547009346063468802628615289684191115928289217688616941294074863715464132888005151960701090722742204976951746394783497736882545104754406344475306261541886198904665856317706553823623830317136394986806038921349506084933183643175689638241840322694727208815682970613459423707599834816008569736893273791769459913147801245090222800844825913611763479871198074253047754507101437366572906995302769250216608651435566426081002521672438798372670922601047483805536371233895838103041701412743761774930148666640019111100865741635631427833513040141044249413019982525320906886949375086308927770918583171657077000407247969051334378664236852503640354733584315576120691810682566340913678596171153048701592084637482983388436407764522548394247949898769953194409866658038342331548919022401922025840841855716023442715654227097099438489997297868067417450006200643184223065692302442714659179140394521222035546455953465775440921923652050222512403281994652409888426447902686755030321723954491982886986682553264422515208060658308505343158243482990276306527758732944885270876127939631968564730959001053405071265707169527156673499284965884218544802706974371085249990596319278446492388340239250090196498584712715833737673385097132766853690049350806893192888541014198775554264657988961727082311554987248793807772362114980073350722981401690594208140904509650778591724102510426129929093015999634878159454317261977597014834659835337059534595413987604512846991800259550849951732162071293780725859328166518135076655199861738280552924438658860188348633694770358668679229914921084974241140800581887986750012184773807801422787661009227850338953024231600766360730317908822965368666944987650309445561548582238051455088640234410183598027500488231701583876698474376660710132686461391173532227163243568249388536172461986692749998755423035738130785492208744852228015596682481685708420440131088449010379875637566260220531174319241710030384022758957868693999498125411947258374352193003938379779239796007428328884945220107013621560235264500512130044247187717691109962348186637167989850728057632486871291975214868032928740997895528952460425924164479144763526801615381881889570951997495189118748814754218838570186835404403800446205441678520804234183144717752555076281992885828969262989895276984724715296329346432222295628839902426982199611509711307065451824301004968990076587953576070516418311980048376550048209651322558683483138334226934752403019540353858995923223708965179588982332413982926589071090302334175895567265633037692839384828070474104992961216842323443409875117364317249042813916939598893964169804366783224672359441427915436573407543291534247609768491134164189342950158567552020807780255603015025585116014485435430428121853118302189883213490014081240468862696010861801510434518947147154100869509543568203114255201440827086535901072860877228631144418766175185359422539620160879024672662356302879499061536107774771002994628419650297200609506376246200615340775828593232779662719501203916785623818328538113767928810661419955641629765154886529506427255199868827004419280321049470353640959028896741649005718072508511891647516677745781954796885239498281176612600344835918409397138211951001282095658149991340682765453359562936614283835326625121893888623777594212943992121710716402897942967002488449756155299359454184597778791265412403961655451714701976936477213375340266252932672170376618118907471614608360065511374194706737202053212205929808440272985722920417404704058281604325204420582618616978223921282031262431990877752950056103158764810669729947114747149968934642981121132480724892586965000939178500458188524076444209169997848368885843510803688962674692733941390640421668570110967697656446076694016901700551544672971055284173256083033546469303054516752126823773425895969297617725941558389469137221987491966035787877508748521415002690593249515756647513409233124951959358322949204882006943821677173698810783101181046929169568289067446002556729008043128184976921738995521581254635263030128399039146725347594611208850772148449392955906112461668895272597842499931190203006405835161231320569430191033036469543565610698225110031104994606836091292432931979315738888754991759333837753217797946289267654466313600333258519288225274965330600849371668602695328740444130143590650862009089646796575407415723283005619077893308292487488902764053848951654173703494821399387068008657399544867017699502298901437760523166162892923835034507423451360676410697656087208148988128638787394553576848130487453921781752778645672771506674239622327776404335483508076978857353624151059048847993220992063251941717793624245344256377606046085229574327181787637049170256532073745108448793962168553988884351328674898316177894852090559043876752124387634906882225153059570270631760427764967320311584369742681006912643180073743144229422826725688083317722391374749399267824057346275757863124678042106062083583140432430200252265335834454666076925549146798417263239665577493541242846540517123612082925468990315180333683808565683200819899346776618131298058811534815079619182693385066271798040987433702650516428392324993980766002859024886984277560302330491943770701341170190998886014832825043962445998127112515589072016055571120473999961348207012947099948115303780378916123207983797316820705710860354895699086341285236671375564379618405822549169509150761573327602153103029440542514914794797577867713596080466142286782309169016511648108394350906315856875517560844541428776926029318784139715514727208621608617790966826815133745703761709870554199601833701546718965110155391601641488410298398673440489762035253607172277696259006417216466406085392561262216075145698716947429723405601616131411846706846931706450251723520007388782435596756920108149568523621257267747737352056799151835301324295823917679244075964565708715415789757736907073294279069238825774908613248587242373193864947377509666648051333563324281553963475504614758640844297805228108601042157225355860435917730721776614149684047368180399591566325095384739034009109748086912202477820747397061082564902743113320725415607986393293137239446623539640924836220981093589445474920439026426529448310232678798149633156984242654367968550756536957381872875409603876068196845651726155532640709062839094431940742204917309961287591270809928470431659483056741905147617966286005502928355664093357652504307007156313397122646920401325721954069672851011231280264083930633192445624795721876960302887189268583201258912146999008079703220085280254797895646977514401346786381809825588540186378383115525050330840101603523053412038592475079218014398542867004184198654918334311911299750906015247003603240426887949825555928930417255040016094360054568958644131158293715762280388282088769551021777539132643517212381624178670600892801457253941400256161216394811117965959777953095055069006230970619859508506832554886148091746712622620553052321243608581099161080848610770570985155956094101127555215863875682161240339233633894654451979335954863180058378717259400846425292173731134431009879025368680765277454507931735248889691569286620715081572930998144800046286533752232673636758889014137814822933603371165247234197114659952084964862999707060421734779959951768909108266549953948450186876922014292070396922475282262356522320683506389669909717236980016471563253257609623294257046345932830931322085581389196005945651584400421868945149592837248299063681548429942815214443789550000094263723657412459108964625517617914644951558832704708289352877615293689266068431209990220671502496151185106198478889301155155202338057287668416192560628813969270762686296071838048302474866995857880446519946086617228463533440524796800049340125966300811989668901945579861332052269162997896269276025024700344633880262374889680604682146599351581775335845839608982097202931428034110421354973876626021580749050262006549585505287261160405584563015679423625111982113237840749250486871971638789080636966593096849068975744956933807051938676490897775213864106125728821385541242640338055966825539457912109204417941053055199656469752104858290551117092913053210506428943965446131705684933423676347026247381902821080608479008135645221687916702954695998711802036120215995182981806014223526134181202988345486355256167189518661705856772465893479552674897878279338767562640502454182706713819803497940700759795605171378363173929509923119219376933693781762926216986948416910361947671324260476441088914701182060995991352226847129065849082707288847936409112942936200394420903840366962398848742222983351615648061047382100443183725676427798391249948136279594175121580534691569796641773783621044058354957203806105693069161474917089893281337757259110684454835597641401920638962558025105610599603928613149276805198254687355162730472055662302205207649613972028562193630337349570719213219694146161609066235012751336746652722697161544661439123869849014628249449523140123414711797186164556651735999326588892330673952505410721922022321999953970873007613211982135498364797591698266910938555595371386109208380878209903816117274778012892321077272861963139137755952782284941803275394727929742096039681350257965953069040542570433859318268643631703873053238962485813465988438394899982652226800548863162028423212944143636134663852411103765269840855364658385665656131980902151881140399837460855878834223437978679684566000681454973421568737903069163248955880872596977160325046927383724803594409187773356150454691733171914540748158872964805992205500324111487031104274894965138982719045456364597133352769448560983672028234261706306502413054819045007736707747950934031551838341371969721558231898012869565683779811474910892457205380429212766356608297226251217162146315296184462133249089160123344105919376148993291047942717429406398311196193238256834714486855510772205766983097060356194657012581901451570302587488066718638099397620997555162167290573775850071205492511003155130859731292955741484043486474664437743611771690540646243622511796713919908652289666276997329315697619573499129736461416649394839340364765107041807704626861153756825853163845076121966793017668097204191571958113307749272819738236493909944086644631776308191486588356987102837014600682118634954316311381832450813472020309313433911512566718140124432268429188950441543841510569847348119017721410215020714372410614513383327013279852929870784132029706268318573316589301716384455268003013157411608675737227752250207955770172791811185373222851708912893816093257674586698633266384874940958676566644800169253119067661167648893585470049887851670790959798298906129174158493117084629929642295706259858146655799664049932980478377817342583622359298654976136514632680774081883590182701729493189728208273950550609062238832002316744998007017643444726369834493972135325039802942773733338388403364691031288987168970283710142733458774212794427679170686476873890416456002729850204981002208594224406304447303541618185099549780678961480925249287444319266123274615936713078134830647662397020787446059759992201932557130956427421085429512168653923087393554691820358868204145454618379721224653124501001451827118977330924344405685241059719725387213915382970097307739687754032577843444398955189845854782659586316583162174324427073529389730279225603264648735524683805440592995304040330398914977248499379750808794911289843124943496177918768575848071244486661796549922885416229923147235315390600851520251757077482351010398711066643740492340290125679411303959617289598980501753353885270612450356769241136744830036309255134952478134948037789802902947300243703399024907541093209042943365420642608405539601162809503431178129624531633096165856316580102996730426646005583933214859592442461214689263444594592017443117019670607979100280957015412561592786202037906868592751033454381958372078112104326387446433213711376532966144982342378337584826122625166744953154796070319622985575811911585243115743230930220815710899826984743610578004675384262158884121427992383361554926987207627859535573506321833489689575016910774061009910981296041005462234549124408890773857607127655473979515649072020729673634168358048450566840761256676411251892422059289320484462211790969504711728842407067512461896310284358786365027800173081881760502566733987802873193749205156153324268000593147870058477060300769498564047639268521466292849249137530248031668352771422419092363401805975263578493628374900656633051797118854938363336875578476679373716594706476492258425838314806668925874876509354431667433577301715608968251037493024184444767519433987836780423964128271822421360136686420910110670114687401522013498952816332135521259780311215032737474111051799734234286161006913803025160976236712143050562551513203085221622212073549642200785428686689930638472453131826497520227374151181937254563054176394303707097442886146194734985570469071097458648207523863370264419725898685479226264276275813156372246943604624884940076138675095822956357585817533966132184418905193274912784999651297736518189912554235571931049165314638988711356530276708858076347347867665982458980696531679832016375838521908723068755297123733763150553598562747259659680344105999059884632709856145047094035970870394383304025079434884970114492777711372077010814817245654560890791658875213624108508195913881472984779861907207936629652672018812285355801660367824991117624919843004716403666328312663223931831330608690277679223397533148830461882747096379907577568885510299295721470864773149496761170815877128893010376216319451052348689270901466115429946029256811782748537176645503868809026644783964210865185159128321346206996178934565695090107234532450918457221734198010044104652572110530662982021990200052858856037337403450065787877878011978974108006236807142938044402008958441744904063244592959721164553433285689073781958339116651167970168910960911797931889399268548353192339031650288889849308548785528787368847447457429550247723068752245413677867289255229741815091116226742448011868670236996846422000425125878019099471200009185370830176435822225385423907547107819121023114630791669250643578368862012646082984951442683977674769974205609839513513283292806065833581288271292075023350390695533183519639438693887344817821732652181823553373386867354231040010950171880095612152414899214935229260267187829485682755809629317567929361551223225643275114564554704056589208255160538059101591273829703144114481156388824395189416804552321835946910623876746285414667366462790520871168146980339285034027201021696166535241190898646141599356602016873900286208238803088460023325536266198326137053335886570946718975090973169480884118366876302642848553317786681098898179441923986324941128957248237308601566137077066760719176328612213005720216588909934044602458866623390076517836128000767317345540475317954081944223811236805257885550804559828423058675145675862430747517527791395221982155958336727621312175183928699088618401256464944758418038801514298415984172193920758874027896260655339007589207678717952735822372109614815858064077349524601949220895556061419138482220365035833210445976633312381837511141218545609920417880960725901095147770603667503592185142792378382442090813817050765801885468248563883367429943624709390718076215086515949382593037445837309437760000151424200722803936959821594649816969882069371792062468511205870078881938637088113925428065714772683618210242980954878258683620760492239674362015608061947829402939858942470281440769863136293180952197084490868573331614513325104133331659840600865462511027868084187615958055259821510868844203025697181298749508384827448471819405207419633621696526363615796611586643654785282461573872388162926585852996956029363769408321838777777113637334909470091332719428361971694623900028299217075200382518598465810970496848068386298005429017341670756968144864602000997170905405219880167288073819977292944224844248953057723563997755661576949935041434705571378168300470669925709844307862778052924406104439841243907733032267148878363630005154471439773797254832150406826300497576999152356328146468283246360845119421306680955279759953311900042261443540436626880633067831183953575429552625804177609247677228143872851495252276102796234828626537001150932279702289921260524866189196654181114211361925942871450410348881257833102456448157804746849857220936817155399706953651951433484280125268218641224732698233839115864923259839275168804035852567867250261558311310413473721095085323043250008379213491038911009834159497285729796301484918954922761506731319992705856181797670197019107111997619641272268141143308012728586503567698207179487243365691006679217337436714294345249459856422559100471476356273548561900831306580809519448536432521550003139499202138224463422843979315891462066568632953174098645605004416526594558206631179309463252350744837308108308124926741346191777729446874809336378249424623346457741817332671773814649282921308620112434755752116968624383704378860890997886700392968000965305020538020323441267180858722836119988148039698619510226398330876283374590207570663927687474190663935271446200118520889046379816568211789614349196543284885553844391270954821743148518743368246884249192626391014326275234856672526457019425289958186864305016278614728188125630156283334581313057343563539972331234082692950384589052477610581569637641582059041996318288317737502320057731839971912423903895641307128947981905963397831228971332647031093105064228138386605785921414837178400378161743001200231267045361742660031163506852013414175310281196935772065443176390164234150256964976984283349701457688523599729291313073488499864032591892413145867354800157410389685146944149462440743248420061787186445654705173457406500274441969735130609510485507083190151119066907894231968033625257905558450816893914726267156542801242401659499747036710181028605744722621999853772617012672683574951836513238842641355372743199717171976180125706595295708965449509787340776410655158234406759577048501431788977703969297553962193271654295668343297997585418494005194399011163229656064853024064672232420822136233724302905093826593019618860973679955077838203569115444158157579956466242546252960890545452914011996333703332687590737432270516595533554783522335546397491760156336728301020912884082226406905002047701020904555860150213027755231677865880552341612380305983182341334818145966347922204048164553131641577620696581466007604653901792129564702577426201093468160454038294633282695678679950486881078882948485784983550729319806620177977289273887792962445833754507869582731583621876015955648381476978633759810684810163406972884955323961540783830491844142183774028418559317818801902766031836504198894642897985227697463884582669109875368972576551574078422648563384364826469983620975042340553365454704115934073326829844499707775724758868478981609942324734379648338812555499070445286500649419012574355515321351918933027055763394172313832888783398284809199252717793894169865950290876862623946966192129247442982632621036341989625405260964707594168116229236250345240722106301880519189239454828430030962108471282368749784979004764863604842779101955459323123280193668155896804227090624199881119541605681144502539060357252416175471016402836931142308139076826799715611774331173136304002768303050464986155553988261112536310415960841790227020721888240199639672352637820075589484918206594188865325614136768123087147317516477983511756454779240080326418458024915468884322136893388503041521504501522680493325849788298647212855927113786449521096076132375652167270182714002034924837497788734064187834135640288328672713726229941809759689415779766189824492458892862439119940322450105561499899324255314367702714603239910839643962993487288344078164920059582550736805043341648640250881534601411990040097047171024555225714188495878740169114420494860612802940353482268176198295885810335345996961539373105917959056555227455319667907502232560074396582511703593250215693273844329136420475970082639033517627319636962515465473090837118033661525181526902991888494789722192064630094083071182492765195929704032333642805291882779515753081747585459308338276143638030994625876901191275023150253663152688397791597407445122761551466988864818372765550609512249160799761339790027279002372856409094365941863420771663402267881799229454165167195791636557157259152752085492932135510811139530714362453027348599456683383383655584619930309610556914211000702585935461338013163502923672268695168276083630597747335836958744769391237753792966100218598627899482947038624324916488232853769720467611881427808566071010698824561383469757623098531706459512490446381220558779835226605401748693282193802646416852056777564434880024104216422251223062467309981002008404296347061506626489064110603315582680190661722146655346320154398989113290235903348876133047363044463337692603229371698424978402574769475932450650985829165552646556142557611251119474682392945779592445451901093293974729917381107284760951723403414889806649334916688144520420588688291345510086925276252312794937042330982141013211370355066681042422828350556164682327447923982024093627936871854710821096222322663169472674896034511222279142754635167616685547874419840795218208281537166640683725183353830216441897738509165007539744131811700808068018176309112208722563771495114672184824351268018117962885899977611498823247172256343717062690606788045354393494229584252978234404853006406100303029069120960297285484621260150983625333973542716388692834409310480178405175729267672993551828116938025066234602621174717200089554969308475973608587436784862129692763400532875142569226658797822457519714102123541778431281388459012380616361636213661997834675691909509252544222877599185204611707766959532271168230681387887941279739270878159588784583788859657366896380983968099113216722841657463465473568009684825797046238405169182486196017019660689867267757436204053120121719134653657787350119079636480729186674530569050960531226268503142927951624612666544414205172419539944313761569311266795691173114840272140445343439991896078536816315446250027962384341595600071081943473004759068936959904173650364834657129197867852520131205697912368467087099326385485375963599708160669433015349401222915145719004339245274639721640287524586090660198707763712397886235276212536265869140761428320695861247366105019870490317334768145941297993298144754349759377919316581217313381683039667059280530395841375904767023156898503924542813212508829805165132484997275300964942447081833362790534662095041744896414654054589328265467274093076131475333160993350825543482299126742537207256761017895882752728541690299519488855493635369415324840877985500379413024037827481868822108334846383643520315469353931437371764535454009744260561940774590196061353874582869238473824890589956586704371646676097672920379038529694283796624809532853622476299202082021147270111838315724851114631374051638478189402163505680935985329461563685163588238827099813995337570124156094477709350486489009532138074848102883747069319269520618443662289990366648613959971414643786436844213197468949042989636004160998367195976739035401531520579401705974306971025366209443121111731524609165877674050251639140265130142881619666593549258465404465245399248513047758836919589717154625493122521274996710617345223893859021551841378429802836039083411964746831799397415392135670982387618410109621340560162444317732186427677159635913686625058027476797965049350769414715482601933715644276485788662285677632855811917546326581289358673730481129965549997437263767728388695233230873289141232341036548216664946356247620093150929298380324568097620734224372030071803064013604802590172710393571808820399239603368658370434986987553181115301540856821866483772040430839127236528824459311961258280739527381939203224643903755957551326860977072818554569320533519473920600686304867170836258438292005774187640636165258860044304096946440080326363409231843884588078902125912162825716480288840854385855844632955961993560550965438086892165773013290442636004548942810470252147539121491628297410597666137726392786250665543419916606337196526033479797067651355567940219475886014702449889435613503322680617520049957194439874841391461120869656436254770224096507146755303390100718537629316291239367318353364065822928197512314600314479004338730236763864851144143637616378527952271477862062836349150858461133135523762569421933630710478012756025602280413482964796874472840291296775993979963699139015254341397804000110469914033185547114240516831615307488126068898041983253553136221098262673369542694049530413845192710320384227114922073572693168038677305789320748052946721027191982965086422983617941160227408727983163338024566257787542632388042490879693197520461411524781119886420530963290461383599430445741837375585648104478583300059279013826362348812363588669097863463088879354776132024840741464739147464234118141551866310002625270173349937853115139050644887049550369953714444234939730298138030058152281651886296165269712963326635798760622067668871704223906301372688595405968763248988255705524805184299208555722689025110302759037435033819825773864801398272178061201692314252801266765265228005251201291247780410181739133140687303086145947580679987858185993682896202811896326989908440485227660865886388749753600429021483086832819015068975128849440435897668562191544523409619117268453516094771241821585744763460770396266297347763191689358980221786336566005181057071446980083047404782617654910285445619790404923258829851819257879807432406206085061182572417262927739633178505520192815397843838784137237058391694797830447555653501557596792140408832510008583519960593562359130173041340310736952553328109554338071469036934662405505391760134924291769738719693295656374707127284499915635673222883160132962631777932700548774177835718126695739436714401346016005614202068037236849375018040466008700470797292891222230787935380030236228152081030586017712478417231589268670953847569966013806155816977517011960225069381932679630673245318505419627469505015477478683770940931275499561063691104909996891491978445147412502170120536183723244283494589707435644955519423342767949478149677677497208321869925750746237013321249256213432925412273835420003296125100822516243459811418953197056166855767822246097960833703603338852656676923298349307205227369796391466479554018440140696788565127131384104045395452827497642797819809539406403698655174717669821412174091089615206860281211569834183142459592135897938155476743627832141838635065742366643339404170362633321666916366421446685483287811565245948809731208268863945289575329564603213103016102475041977231871817410371899525001119189667984016699017933744956135374110071488644063923960069292667005118264969027670435005054870140332702882281579918915966111309955131443214576319838474900269187331798952759435327926547312716208931771318336411104713470496889050344966413897318969322422830201925741767712307893023642787745401784885829395423551513480992715628636927490574670474060824590472870966021292921895018699333587950607527662590130036505348214846299768529934339732988620471015095839960473845816925074252690889961560870906311481183301439398710625735680227899597782155027607388556499366106234481955332003401265673065076406933230773565006520166879928603703626261011276139211119179390931527861014483403243831267231697855137959479849104554041912857844735024449234311445380894151705974546450367915252054109121867463349554851843388931509522602516322247273526627926698685736764638848999443059370887601699988729963842598853022796967426493046841587798615903776072847491085715234681034935007258786571494968382670786048574527500741565205628534279685945943940403972847307507920361165557678130350470833251980531395674840052084841390594523235106373087407637119740645276636877786025364561998044271030405723006823997555758390134756690374980056768430752376353918711056245860774710404998997527118089856074199688927417421797437110331547679518195959055249437665552759412914072536462927218179703012585282697312144669301757920668177180423859323181301649601747102231530771964907859858385341198151233720419526010507685361744093103025517795524281149247952572244681050507779918151264278073940577575856061286278336629484806145792064716440349944775587705879448347756105172815550503837896335016436309810109295734791273934129291880576642088577108197062152650777948725379711557156397977156579648299541375697477035498324842031684554329410325148482003920824578634941832162438341994386122643140617194835787617770457807510198500830717470506607247407943724669417350293089377229113316015365358518631689581100156781574972137224664340586281421581292847828200980727884666184595219631194885642888738337444258037926526739147309503300225285042111424851802010703174249666328668737637907136070620071430300719724586988018849050298849085932497367675130415961755532131921982372378354502497242094900876998945123306301860663217124301068098443978364652290994314972002045299057581536388345610199698282057110141705808181371290422936849265007518902463876462656377579253219793066214367293463634479219778578938767856768717793962639972688478893031951782985578405047980167660003908024212117757903992193825684789491445943126586181327404607940897392243946990018155498778514097153259091856143226203998884686207266936590355496823727081500484533529155448938436231503583821433310874545144103031244530138318670617931521502614565672641479122464748449098661896005893536852772973720129642946211000430269207389894535335521238486361334302640551155973255118558217534349084572517876469011965321787280816375089485168529932439406387868033015053423181505849019483919097884740991224642493578817520310469709852983880304975392675702766147239435385214901326673189585481324630651021768537975421530652305065415918026965076321183944975176801484035868857706964221905302672378050617078258911397905439081412305692248275038420834267463539760415192789990636349427224290946026451470162141063504987324310721471745585394632431137023107892209011067209682307796963018314790521619133452009890623916060363971568528421625495268483981790373477747872804310326123232937793912166056320380501711540112873666159199687700953469692958094995576421748354868237992585886719311926179707104442052469358851213434957572354386232939825919932543719489193227616761478831632309758229098560063520955849448819691919128757955501660045384307839070415021249538212991577727166778394431581677331326763254248119418738036715858623077465964500783098855917022625859861424893835302134649142108275489535524262551806868163658702015231407632311737513447178192095443643515457878383811821274278897968635445855481791914410019559820118123606030769104808859688102407230056341073413842521217759205563039552394667318005884230808259374059918480501279997344600887144736898364976215534660693609039793653679066101171805731580563202672981998043929439339840870453432387026184239839185681789658475793316197804304755130350375906724224668487755711826842053271858845904761112556348855269917707766797201647184074556050310059993098912019790417614827717061294520090109683449703812564865083724424999984771421371126948730632657579780049030981291448544781966467603632099445366723971480543625877644549753464288585475112047506222281986542118767838704502555974701446669482999301968646551918177622368185660160557871779685361215437748239485017193315134621720066222583773943220887695306195506762177594353656368361596932246036512198449854787333517134787548958957964753296895360759159214902538805448037671243709660511844151855635104069809735907238555876973299348202298042605903058794568570872958620171858044298069550099046837874259818450546541466073311390108256214282338471796649526930041605974818391576094428354569185246765045766772671457663858633249403037676361690812218701171227456373171640495367582576621943237817881092877491316395027215084417763725026473422033140469871027638087675863380497858327962978407408320196301498138520371697901731846450101797964972749856087579691508335598580307480339281721690919333131443609204961971491080930599426609577515062461348882520144641843871754968456313881259140440415706448591662692463474452677381840466250363127242129866166592803322485055572169988387503035917568516332228682713691757594255133953647884985930571564045189889038521750147062751779799814820204712982391348706021275222098787929566998388387663983207482443395552561766409739526124027308206952945024701143587415023320654484461074680901528630131454193542921722829734098406933626675998627227680383966022668204187972125385270098357459768470589888059651831296800007370319004364846520611120113015450066536963697266279823567534180323242794721905221274258270115408556393618951387182062547905656629540029498121201144883426750285514859113517803380927976019296310394947047042316055076180881411342100392089015100101713000886708524510528199222220435070584553662652202144221787520238187514893896557171735885452088853807627181506656317759581061634987400991614121260565484674185718217017509267682318420507168541215276216065177174287222592572713985808588478322819595312121274480270712113135133818206678279468264652390079123364688710196709929675231688226359713200938266932846381952034549022354934886549138170284038552633441565639584007108990896722681151429651570563418623009574993930048416351030956330142014453669991780885047174178385204612361120622154111839810252673151023190418389057952040830065683172214883682161294039695528363989560675751608297320665420229058486474001203421872991573705676558817385784985985241152735484023455135479492039665720164303596147222695398423679302934763550773342672694625124309591880012218050690146839810565999295930204681540972608143931720824359297088660727111710732314155342808394863253208623921297544509269075482426010212479059025709835191865776428304309544969227006549605378840552169749086362993179706357272918210974584095249206758819398706112581710435988469620225416728456257402661467513255023714011979632943521616428324419717251916200465531171102362579328408750689269759138823958250203761196713110694578681692255931735494439466940535290650008662293707619864244552235397013759442581859089637531181988930298209308975366142943924694027421236128822821638955000255394702789469538511625831319749691180949601524545418755262902851750063830853885776444251060410833059141542291263916520131182668978794683669889083857820392071780529000636096775311647692405128479283293006623011780346343908607441120388477542834925539694377556505688603984861399033064393343855165934649306271517299421766230662434777123201386584829324976334844170151097262244681087853856996370006993498736477855743128434697570051723512514496568668429561492489434407162948427846565143097811240565351870798242651432267144645663888340689455509712524357188812999215720793976616094111411902254793422223141045298402533776123700029213699847150053147971814959441945588883798002026944527925050131123129587126899201907538766852385639424131855001830739286529228612087026391555499401217375416172412217180236874557560675176070819342735392841986272228638706594461734885786476599187002823379375774407843734655160930374781738052022023078175921054242764460313508903287357386415594160564265075530532739488823701610671918448996030814401468131041738658012107384767576016400503441903877975863617780617427826026121453996342943642891211754790176894813722875733176368978607883582377597550341156209591198677993080816726582481425005965381715979789869776745181963482148860775759127840249059525405968189469472036031483950659784389972722991400265244771146094480656845257937589668866611682382851353566179495071328584757203001740497919729588740063390071298202660044185508825921904525949623233606452899205816597217877661337271506531065778078610149251767997251707825578845010316532532978418070317605696861760881280058001871746978385324310432907246938355216093436547107952895746969380463602782393365280252198956576213274375625793942340561097565758727391586406782124451882244251150622072768479562257802017048432858533728266977447287171194167727416867143878520190598167800885839343726896770186189674808083332523416072276392319069732587265684369967834662161509329458363863138468756781207622444289365942270355694265886563323041959531951846558086015375895795364968840028684218152941607184636402758265801420960158012262177227227997454049850746850351978503927572759820178959189732619806549918999338045104289681303980458121034384350179271765514886331974067483568573533432696826062912058427324603912300958381282265463386048546467325136542858060193814545012793864160344401678418369184773656593377514146658556503427054783236026527675584865611332066131437615456848152377132594760351344401930844326568033526430052772910565483213399035126896748195147012744864691488340426510810127726644378263471576183416272722542887621456804699365148395999157732346924670422476936612446861627962622133275303469875402153771764075959469687724661432045660478034223661233836197590722330895208085353010174803787683087696328162772389041863802165954442867580481376748665522944538656861533876958542669054463564816364446438676715147053428299795136998495189775029701124816978337228513391281686592198933302037347718575332903121228330088841385967607118481613179733406366698668791574404838909635074807908720971896607654078848803843801611213307428677016529794929309875058986584492810202704242238484858823659339971389826004825868668407778582679619866298873942720836596102662567202938502045693439405717906839069861321109128202753667347708454217751339442686111449240124015996330780697725220852141867293596150328868219705536670881182339164880926271418946500358261298523714035287263109027081581476112698450687036390566322334442201869236781813918831263816213399582158576096945295389823851534064283624818487000890195954198222170008842311767405616497272573847745159749485728617250000561196931971970082696352159312743866215205818411369558503317409428720252163287866536563921214118891453799695034263248078205875624830043398186286683842876359391321687144684787671101788221529216025042508655660502658125335844690721077114485629495697512424382041679207223876687579164712122745381831483323052890369669251571034116475698723473827273710296751161830598477617239604025644027235569540240029804026693218500555445401219737832381977941452328872948139649024997972882603611246879321614980938401642948948672568021351179930050463233203060606930192094723078750894756478632510407812496214903264526844715827363707786928580296672186066431536264123392744924211331961931092464372914097124473003422789861787666021004256516124973958394111406937150622366193144823808490275391465016865707235417953845875587251881151955786330997587751685861325019462117974716945553702037738614669384820962275221115112498744229780791805971376120204674384747189924435630966693473264141427287424073366158629204678696377920425447015543601182314078154181501224215229587554557583214294996627908036337445984081155488798410148813040638650191221884132960870059560833205059630564935185045045132034245027794852226639841383092984255985476311497802329359970803751206494563613993460042215408302241283967343280307292470946280590555970856984722374570903620369706172552774177982879008640536237837982744927348425187502370244505591932181184170762254151134847617259480186941191176373566701582476503371404112328639833710610159395205003204200546775123590971969608712913707188481147844309654077703218520167284992680977644481158955075563338197429520050528219224519522624963222854400193271059521734412556576391419324240181613905632866275860848474319200410733218326904160755186252814618621113363322318846996254699108972617691322862627937014619015191510202728151055343696431100654948840391321904580793681270952898158721759169457763800148099645534245768706605576706752140509686334244174300473722514814954620575308229271184499199711392557889009155205720674285884996445479626218596642398838984318706451517381451204285231360689502638699183787006707951577300160352486334436473345178565490638429147748188987652117233736914291252213296653216945999719346219912942979732634765870325897870863834704874889569153311283326177428520790377800689271502207482087551190916346716484306826149944146630326669334206637670701914555256752763587496513435063077032720827771636073211974450919385505740312324801792362465022707912341755293385319533521922233289390207424480521189365565691668687568363762502154507092830509079640780600492793448834775439694550534988797866215964323135375167793507603868854533061314206945969299024991435423699789363729552976563473271945708581482043403255945342632227324413768796428353150665116456225268751582893702660544266843236349784575751589396324568852475016196222731757885801684458546339601255633953348567491699734915035707450811581390671656809113555133531167147265604037431342113978488393653510329858102352993918136446083820047792860571391492440938623007228198902671197711598965653257772450327965444648262084678199089179819676168552740760297384803540237810371401565418277008462888520188192719291592962800351512815190129452144322350765185649582534016743231193765291651332974379301586216852174645649557627053288881095519868471692700874316760680403422391222894319351733631231153000994865074226344752146635087255589523793342679366132965343014418640497676965002511335877275513346839597910034487768840056837551336706161253294179108364033182154867127132177145544719111420616279865769459322867553634605070124259179081414383214129506725097269187054428219205432657695708799140619164511011893795917635737822358283819567738436330979375080227726636496762629915301405571027063085733528244449874443245549822842865592145539335730172635529647476209360685202431658821074953528546687122200983155062813099147499285867666026026870189348893271365601293126938398401750252211688356353055124991943292512429808209323414249554767468172214801487550564451472235894809180716416773432271085863117346665733477974557831514744335120664621451096705710984641451411903208421147358145238598987881352744255973578807168523477896580988523142207896403741914963248136887765021834946854948107392706414956426678939295032588110995640814474062083748483288032171938111181940260506922634566846716381901848682267598668242296627413351853709856385137857236900478427053109083962972794397294651183960853608745648822241713944581374773482481911246947229888922669640912286300548194320341312890177494852906945813680431621249973406188290760540551772691217425850481621420608372931371947953485084517848536986018808887472107484477312766685678071513520219583624048886204751724026446714271487759325104194595549887826602471339798130145902744106551754543612130610574851356464146287105996602353839596062972835218841038507113632666994338450971795596625139007852182717373090268619905596925842817729743653767672108215940868553780922356623336420863573215368387608394731192127724719687579955206875643835918744823276540687977107308730831718383428127451746375799480733367365352594641472949460136586738193478430096844396975521950907944037745108889556349336344339426559799499860777417543218137932765931609840230545723100711467475727370508403119854774276742321138767303512394662492225254016754832571205636347979490924324720375822741221991296641303348780088305981177607925241331838685616304471712999176936922102913848187328251945475816734859094249182606211449459507839068495891018092570408752086332774982466240398576012761703897304886981257499958374669661944497519558660499133083998811441102753935190526673177798850718456775039289082579313692387949771811017625123803241935175032030944863050189744816484577593452298316286487080718165970737733920371285033168894898305175175841182098871335733429993143253391978715124020685703446202125427098048386159352531667570621367176602955151786609889802358470533186903573789653734001565398008646817867073807367648702005994093376257164926510745179462368987456277029988169241364873509155197190248539589556783005242708688964196935817763597479474411567753777442797986707339397055807595880270465240734525547673309571229422736362082753604858793276635552251596275350244467336699211307595150698540729384781685624710170000299050334960601905894746753132991648755273657171399599830672960118674483078865322792784711874826468209100602368411948378102568632269247441863015974329679401351031412074725929148215133202052409034693124012941599374297586273270546252391581362278543845976896158254176372201187747007980261386816034508393849589235953796752868841684473614085783885158539566565184761657604839692705258871964505131659575082561136231577248946091986832117444700840986024369837260357914069682279628664072637291013995739770703696223405664108227314140149401724022888521131851006707361170062119524161802643640928480198794920611159342528161881514508991470534973068143441678272253411617916836076555017168244383436058698666237792094244892148443924345897958465779608916206685735710178945948953631970736077039738512587378086405805960152364721523431610847675025275879323578090111059939834657981739546883225116989013440791511434248485121056772483538682471519176777129467249084227930426822596249702231962188220215776417528211653810822536198022087026248187051872717170665521894215278927763904990918073872641221353206445516485766098413511032784579939532072065232193920473199940510756908107360371825138353299869703840595922496921900272987641162431338220498448317884422670713457535864865922834894837794139550413958559455653423483896623633773986708289692435271895793281118962940945334639269893571196106568493702172416197431423658774584386759887479342911522720679462124604156220014663461549550217507677721421081656702090343735084315858941740602948951145199225812884607611796186254569895117911453108450922830641453048887635090262972711118202672531761766163851245452184593635084194665486672588063981417512657948947295444012395883342409207246979734681967652472050516328966994377823890229454909064605723124560776480037192900298394929713742967109254576232876451235250025524993386570845092110848139549220030753252715545134456102927927786270497924449010864136103451158539365600356378637431683425938401560297408443191934596604116650296118279123532343794531329013329476132016417702710951773885134419429082998135558763640334382807270196872618981845828725953587966131582585811213909756040599859931998409693430348140799049185272081938583642971219276886392350900590690316721744519951228130281583057139203935749917853212669501601780896922611008696268031713543725296952514369326179289910093442363075924749399325767465166403855696069538722202447875088522589860204376671201970222457120771371663614885372430661121145896927313400859771417156418364710025449329800518593865952029654043291835773245702806454403091605777666348737703918062399111232765855467575923816441585597411706510933021779536468942604351441764933694902387179231666107336245251899770780944648382190840076214813855140889886847978882129634342873619877503978676709737638608711834150195835400860084644773288175065418130587598920983118375901530278530493814835290205326412390461720277963084425238847047549440119839536930182876090293087267966358453506762977552936897251869047075984005345861908614381269604939311693994046419609657633343793461548296075237810565873757526621398026912579183119648795348593317508811795449849667012598473469101055072700011403247697211789474852944392615622424493255705057146374323200144897597236347405068830805223860612999528518209728411021773961431553749646467189249737858779015767175644242096324127801458353687464852907252239783345501583424155468387564518634113473294161702602658435180925262805081525032714382119143767218207666330086457315707347364606079887109254326103838984583162638235288798314831285207093340381576046840581572427458563793522907486325846531174547048526635235026553050119621895291261155935264334912528235610774837508025269536161563521422624774880327561752002280648795782084181674876592574613218144017954601669010664343888065295161920549919370611661289413365730084889292689210334983985524460959481828094733951000692467078171926767045490036903727978283490956526950835443732914658859007995122500637790372876704102949087080455827726389579543784785432533763152716907855215493798190173215873364181280804033937311064289660650248654424021955634121682989358924403787822213695377083570713743059269149630970610002799450179896906084780081272625223214929642375357786938446132828100743265706482955934231384314432818421457920034947996904074392622234082555527258476370732817533398769840078168679556532784004876461458277841852354192658664594061843277158215991749728198403222779120613736341047076637436376840049745815326295434774500990631964930617568808372336492012509276018497824438065021493423579821701992419830783326645803397819276407197441106846673065349685608057620564125445188734455645441021574612545531843418776953588425652262388550503292158583891799147278459554638114143198563714424613815943325666873441322770555111078652257793350121786597871624175497668401895399536340614863948044227984026765677217647605763425250157195355513061826115855993588303917692120161597347931853748275100166665182319304486928643254780423896505715491269277603249979655700388140592269202502773516952854919739506277244039550828283682688857313197719756217907929510970621960593149864769764550101949274803077977704427684771247748091234635571465630049223303990330360120500682807904571729034949013552034570966238975349975179814140878635692259453276422868330888760620388167959357289139663601295869740071930444373029087404723863725729060806212035139094797743809173989687282907129887386511082289346165499610985054996282839217631762484494676269434590395922711395487237575784118008882805334435847153790964713501054992176730259856768682579380710001823714235943723729396985705665435443940787978332655188468149869807102196978875672164371550990217501137646586728986029414899946383013222913232631139985805796413860541577080531199278944055966447624379923532610467563230963455714937839330984895304196163614264206943168114313189517269467694015295345109318112254353494853770394241232686001822326906365651492536901098327575244731334300179584588746265978210437568267970882462255143473740649794251196617792108044889127567503127771589202575929966856305621290435259993847256808579816222910032170201666663605107328274420025924871591763960217902764538314888999602120552015408612244742027607583691989509650125975306767335676450233040613142959139938693351498590199097361883882548681174262713682042164530037985917300760474083182179371829545596573569168933712112371253557859935666987397814565636089297194131741922530886544390466761544308556249643478298230105299275039126165988275896564976728345229675811965248696057301155881073950269990986897743014461516123548562857334461915211171937341303356275856887053914444735134676701909826136342228906159379460483913219198612032239989823500454267786298412746211791579039140356397318203766906285606075667430587613597938302464418447158835397552505148014426356718091157703608289821009549598068530948005955835021391856539597696185690172907180737825495686414881784069010937630888308589599731025218494084051109209924048674068133207643508255025858592943801947472194483731826796347992436237076166404405500285032532747888991598479037430058763578394412423058707958107965745890358370499541259121888833888397422564711852465052445468804536271513204105069084001350823537774355648748968875929279456925115955726854449254827313112153345794542803149827311178320722236068574166477477119956991386592201699887046012840020728573825508126769050244451629822615148438898310320546428112669519457860974603316556094918233568012926104556237897680451197235459934063692319601114215759277394987174091431154108736206165646242631915693357145497896584223521819086008225514045773527001043863841606187758473000129074371948318182830919678882061070021121820646468703401839999167932836316549748424230114762358816573618356271824814083765538717879499814254237181349019185700092901239576106969621054888519896231461669381966979700186578040468912350017380204765156231411852183922647451116208196544080883094053946155494860300349261784305207711026385823190202809608780102613864914247963457409023150670877066233050890866947313973226406115648494010067775768971773254494881120613284102715255249477125475316671436376338882583215333722809022773813623881903172799373975109439918195801398201462390003700058334127549046742576300888091518077043225576355746735193254724712401554190551375437529798276587471968769481954268597791477412865218435357542317290239639159672180765830491571348744249817779297959861471105443273954209086613766995384244742095521264979067366901486692365911876355573018132433415008692833060483605223646885454668525088260654779165985095264097201738872807794305924856887756658913727125854504168812247946752143389008991127640588165796186777909510267727255728552744421904026870901377065267346013439816992018431591203093285245593505753483570431511050129609514700294046086877004278020707953997994615573919982812521726512332505905267413544691377875947209126065252435765711421393695215762684365042843649985780359549574409746776682780490510636662633235706348645772173532016507649079934715561139942521921018400026640171170373798976343450121065232629163550244629775752481177848336121402506698324837285161782003638254591156555032275318747848689599020577060116244429408318394039394288392400495819098716683326610389106918399851643341966144613390737862412086285737150706393131587227355922916099566742636604879861103085279289907984193070062928902528896988321735189289317919994004998161086959870981977855445806429699496030081450956411764478937885375212739268527918564415857357212990923301725454615724724259875574275425221062795374314084645349237621666497528838910702031663743267961460779312246950218495421983108898575751247427283435970560634964301949685003916308124837294150586054039006247627977459330851414216523255879483857254388867872702093570612669507086915187706887902911004342446950304711665242492018597073451151889418432102525515288404158728951339161850768274772815241081422201319263320940165142074550499836307622544592425922420400489364562356853348403539105112326755401708544539513507115059239383283835543860115210025631433343314277929345168767001894937197723834463065527767728078139418970084055611227137870601336231976446347276835105908470910873964980630889972096864471556479681525684470987240616460567070791670884914025816954356252019284286072498865545124581884566506018102813853549751945327545552206978868032457114937368184183995507891262585698629326989671565221725695974442683295951781293057508199237019652800463797159963087867602478593502096570703113474153537466812027759982058757308816746986119325917676338727070705232991838780736546734941691881265919909019977541872219298615955047575503336324483488545972585997202835452657670518348184150018799362551988604391373248818267715944098288377599690523492430245373041697513422418754574706737927130285902349535230453778654059596557824809344066768365487845690581291902546355091042828103795558198652667289406448951896046290668115896152371935400173391392384690401668804336523487542507171988992860862115847760155826206701596392494337177773345182393527295825464072480460558342492776862845717482733137710585575000295123602157983969456700495647646365022231871933356132866331475946790179242563965289079020078914570361027622106392884741191522733239049763165181832132996335074325867799079499228618351592099168781839748962867880889901390952522196725346014868229491180615215584347023724740739553908700004888152860382121493531316047957910240860327491703010574950645712454154303484589016865227970818009856702514965370987552781917131130072551794341105919236864803153401796046821109205372922185745157381841396796897182078039292674823261205150602988125727106499054184377644821893672743638976711544113647520261457517993124347999535175665647044376498502883066652945559452039610789687358096817087629121130152033651139673587583208450427389494932173048862178783545611890138289662692816861529878454267613380037724898331243630797161332129944757388934794810303844651590387108430717817216039757189055760096504884557154271648998942992514689757851644101104585069579686039405787718005025343952174754659340250397435094193367745933413110633873663029211166020346464173356167115118750755250947035473282189896509641835586040398061082785443499352962184876135550615761733549379985532670812386542649983377388493509937468132294246915414593195890789306315616366759952290540661635720133796951489329810556506315680793497817963502199367067288894132807933041274513343055120164801831650373418424361826965616685570896245979250202208653096064159492320659132798798996001815029168743163374144178758488335215296408348250586516982803155058156564287266424942222068693864443016819460114935944249195510180981299276460875653179658153570300620810534229369483241920474980241616893003891423257528114984085369557080985743366590575556620876725309277892508022878859652986883170427423706511097894191850834018997170359597633633338326595790025753316924419883045779937041287933270539432013804033254627716941362476183661922190194767461709446227689232504284119057759168465067412931391986192583828980930414909800332142318169929083699487071324636710642989062010197748632894666457892267458351692744522875963131941492634690021407650445585430189399565969321384725013054283165350233140769919281231493871857436711705139675236372463915667264262165414683211968844772251785193915308894046789338881849029259964650087945040374748758240609905805332015447448424785127996536080930483941320286462293613838343131852286731555913729120183930056754922271519275059639977870675459686815406123306615778565166879376376177013833605709312371442613461091737728547779981941336873062039579340703627864679422399582985847946747570473752768198790135375666290686976897851979978713511514678409534337711959165423614348006254391280192421063071078220667454016574590077421312996033104394215746132722450010225255813570241916817143850966533462939846851699573722389353320387811746625024119556126354638217214984439814493950617568444530255440571625534708471246998883015350259400385508095942418088662447669561685277445362664273477702888167942895561316898084137097056302628177037636315469206121544712552419496198959193237422632484600337289982733786790971213778379032958361551625894803581980716965081224625995088770259037614643648657558896926286384615561140004089121740824879768093181886464641612351038315709417208938661549954793936994677970998213933051236798232837324349151421623468512674733254509342343024515685428198105436279904924223857612977806886504630600331297285477305863333923310446362279408319984764957094136125623796738512531800042671491886127747394791132649666953374997382814408035137964307607511352616222640924733424087854249238938722450458277810856172124765185941070579611073037100299893836241009564268910662635070723993430251945456524670169485833095360734326716716099938929679418407376632163771875744283691471825323500147410834705016136032042708897076988303912540754727123654528339068273781853404413261487840246397898616036993116375036860059861230867194142322950444893644308204794564325635983555391132815430997318764469762644726005905560924598766040033759561372591135795605796200872890319276697240543413208094877223423099942761859922116025684918698796519115502803991122163764055206037456426797263773264904995388851739642821285851814355502644978975866675109939928459505401931449108039253850262518905093827516471131104836784347215823759184436176525889094134582880543156588578718874645258094153698742886674105736121543019745373540885404352684133724070746459124754558367729508096561949290656216110791081913826005032143489221530220586462456299046414497160248882538664397329395873920705093199407650755572669825717502055527165390300410528749718074314118119929719234209726744668900252127193038995072165095011753788480985769540607445241590687233506663625179667339782116207348282467382014338038505536739618679008945117132648083792539082133969081773443057846645061023076645993556441517939983122389237657485827954951560232163733837594793874434319690183565965338610042143330719997111745398381177931898081778245586916750472647569702613888435615404465554903538651350872792976926392438776631998280553365867118888090661162170375548651673239517665286372323263908454667008606371913225840108462383215490475165315991180222319175686745850985744198737362947356852843325768813235758596643979853952382668006041740148530742132203448564108804070303689961697235594182516739974939578536550921235254908752392175101156463727074464972725323248397351442112486742068605847892745169413957219592098632298770204867367142468680762431990697014324392668160369583824806120347826855686997390104338428629423103786125128816688711363605487427141513418394664405557691399074304947160031488571997552498976687311542720911355509521657541104651428114191327452491192266024146454253743277279377464528179794337042180695958104276388045793773151376363577201879248811523709900874127558568370292185115835729461693178968624809523668195024610068477176410165287472262212858568615514858993560424443644287036913526927575376002078064472126746799023340820743854704702268264238109836653281158378513060733159410632820293561465616504899552936506640632653818868253898050782832935769714483611173957331855217133918627698372936820867515306354495949328084737468539475120382748708454707212044785509164574787768973442216114064117786086669198773087186903408945620934472240507079667925408072724662555107549960698412070306621189452872224796811074744673769139954301895270827629192103127451177385498447860575081875488919596532868612806694628613584651111016293707943241213388791747136074573729146868060679698057350387759944199709409225650156538630779661120377844432834186122073844063900802150211511137907703436825534022099961773095572318370336931808820476974256888905150681034003975921818308560058356274581130300490013133282158839425293581095487569061720426633668798692293644224231310709530744695227601524205351800297288183003935016421862524061623146149104962318397556955042434036565749479645411659295179905651635863441042457227571935535094568399815382809606902615952439185585493386827447017911624814435637170385506233205296552157540561085535748589561376776772625888528807593875842197095323249914750478342907835321148061086977438482250731971515756156463002415966148014986395881351919496802711968560386706370021502227057166459120406419047961399249195588617199456627444622260549605346507340989801339201041180277231243416820688060825942725066917447093776026147501443188762968097792248426386989919488574530122144696866701166316729661800732854478625910595041931475593495583884921854507003353012231526525810256804042525169751821165095682680370053356638837809426417984158224188855793051014189554790988032954428436418651381747451877760884727206590244341499720199393938017773169903612842088877375998587492389934603524201470723203330219833317417850502523310628984707382763144428180214637566277021701573314249069876220054064924303959842977567593829683185452445509787450371942601468358189202183055967703309916153668470695214732129522629268715084483273049198647862847208441785269530802427744504091758500435775840927919264280858705769470951821202406909078100380093167541903275278823730906776680889350903235701491637008800487760784556371277320880486495235057186046337022102917037796882200300725766301017509914700321884127097980467511969005882831650944448020571578189950094177397323513682901918631840824367914789197380491236412699699856623359639990202655820794564622874116020785323866647669558431696562770246753649851784125736883308022323573628251062664824652220968352909037384756865165491472527527091208964688863470432653672102904906066833209429511635717163456660153166335690125589617824057035537878223613288752522711119685652047909633921374823722331222816478756355508044191860632598429631163472035392519846806058000587025529386668053098136856194068963456245863328291559050841520945679868041216271358945836507043492227833567112307066455832910757810529657225833533940327660192697812147538674947523977730209881644431685513366913479425800591656971807383455623320496533560044499447460900102295042856460439971506491829004501825567536207786420617284880672650167009950382626480807856514197857949836226802793297497440650826043213996686357194648233596590417762946939454169467877027790781030639158059972688197268223088627662294155233512808048802913041442820359624247784455326645135986770176217568653890447384243585748116393485392934965157047609899149990693245162286878794540954432295342841413959861824720028503349663114488076674490634300331149075037785508049169334720849171436377439106394597414981517720562520341030751269347509211013955891694240409344360331906364001673280363645872639215140599035011444148440122553417945276732775455251603019095328356756131796556904024837244022052661445914187926836964508582619633296713368094578248824121853848175269822535856019808403002318001681799326126683866434043624865852952104848846108482195333859951787573813581279451648510113818965537032082891678272268570916474679709200444894939473738374843649348679278597395557946571645967476122869948881169031647251568713028764444782520656186056559181726051320662899852468694874433369326793236151016585806682600506155675988355882909062982005708182819762780302650397422656547778699031043152127102284835707575574232494177126467607232013675850426849404813542092094926794919275542110609155558243538275231897886380443359756269117332877955810643227503130013818305052402346671102023014035171836107001732204099333608417949394128634234089506685526296834577289958320096125836932457861829378153173798137625463660640345184315309521673415604240885425938358781672690104588167321898576974332551570459681860318299623120838546407143185464749583084305572966959415358069020568860398027236412855033618532375593159041004935918225606254259906131779566458052274511733069212771418442949186645875837453195887158395187497404588284278247252504514318717952992422888274651719830234560543512330967391520629627494058876763341096222373760155892457606043757652691390657495026903569188701457818325489212400693963096944815133120240561366010436332565291367788383763403885365951037209198456819064735058778305860529327304469177902299502749989676384782013156133508623219187559173496954931969252271154676584953638282708915443991977881959210697314632060850497483158744422711856748426879230460366973232728935485749448766664036605719517412341990750620842471815789626682684754782607542412598752039795056394519142939627704074681365363805829366246434365984899560405547255366938538319710372438050605290819934666094457045658121753589340696416690166802885979741180081988243466672779124370885643370378656645771555015588530488917675977832255363170831387388818573869274035099970474785280296320539183494211599851460814818738062236597029678897926616755130998716464193659883230879389352208635261829908901011321162744841023138776140753336475189689194770651459625253204178213926080221600697636145682464993400954786076072657856880000508442591223456887268878770179999302503063317107729038473466091823338061691221751040162568296389831206770363464276133840738399566241073687793876617400154347716145012482020912223915478173948742230950407964825850364887388583732197461800047597018233464184448366861245823139635769850419911827044932393390088282128321196272344573048284972770383439166301812755939959171418512384893072680985035635281725914905875089596819524318438733994650384247368704652022714966776341314230288209732660266416325287801745432783246801115709939232749692773116928176895908147811311694098191990749473245762039414552618835070688973340518218464949398214757940492485027549776305201610853098707887516433536583715348516437626655682795621629679794761007458932946180031038675170959629341235871996261495335175200037488998314566509031338493039168911233669053358965133275993316155813010545196022896018927496199751638593700076452172014785587344439435558829904150037822305464437750148516421654635192815008524326528273005301286453187932126901574847777496964567025826546521861874894032674860888886549433301963024979408660200010490085950199160180961160071231498625794401976667453688802723295895636372179552492305540583106079359665482511113200268276164907403430786942101595303702034475975173673918877993779408177896948570517270734997883218721625975204377729601048765495117833119969040802326063961080084906771270858107557377930564893369924737616193347384276460270559298849314814302730675953002804837810687565116440265746381142587280696793911772516381622871436580797112758116272301464872547033906384747212403648997014187102348984591031263062824568548761903409564221891744058841401446416193963969845492291607137876721306477757635956573101580105472086295313648614266258844176266468213446825654402307935646398660177792922651691258066775804354227213475837051019387573358311488524103334759981192483627609941412558396154800994511919322921605394413686554970484850085645735175647288648940962064550801729397004881527264805137983649666128329616375227851754018933519384076285824122448407106149425961641187392914998345088438921109624372401787556709583824212300136437332843972779808849034615383589110468542869402331822722935955963598416916010006656251503105919743257915709287848720346120187039224212765018359208524556908644504262517553020625029975462511896320714388479461617429795995222106457980145496400674722705773978944289419206480711914264502756846302310598954528426834600828556507328780984329341957709709308160857109271349843965432751331154165858528050300565024000598175408702984673066001150075168630334947621228980438626931612777071130459431066333552025952578529882078844898929572488292203639749428399323484603930555403697044486961289456536117036614721235706075423458100627505326382902123217892651393505980671356872210320911572229254277117857383641931872406039923834904339593206431003098344526646931336882536312890372296566951845346106746838771662620355086676879966073476913528038393370625326384252981854364384681456359357218267852339597169052327504449647354192908563922445131534547682948298006285865165585353047563374402923257700332452730818735500109859724926987347014938852332188784448161709135342477130097354222580941406870133860850658561356254802469167731051834406265994127988767829203172026666768556093932045633539870789150111676122765069578322067145343827143989117510255183931837111171631996271803828402396393440282911145259334493799519040377248598310374997580661754834455221787810527526584262678255720764078649506230447821910789070645557958997465800836815565059175789086645949741119362468404018630743853105446302744281280012521684543953628441009223954997963031963684676918457477163430103671842082342226312724262730714013484550253516770307400129348430010808812249098287099082227062678279865154299904491664461290227143088072026806933927670918652013545920145248343623639981260204666119671820031352907625279596547768165928613817883890299273667824203396206475135916363156178540085775479633828185930013567350521670263476389931887718855149050508079351299103805074887510928078246488053771293621801310234856000672971126522964973845894837075543594156947250612415871363776838385402822625367839021161434596678711243254003575732284768299532719404864328504833664327102626680020349188866686133249393675231332897846268992541671352790193848412816864777035919343010183764449191862278929597329064057225286633854918228505040644429104335988456228830531129555345488429302571882904388259608208141617350735878056460910123165647551469114959020705091470637775875666954693226161148124207988261755047074229262358327426806995650882920223394004106221445642934410372670086942766392181079245478110823740680652824836703257728485531621610558766430708943486774298771751139194787527490590707274142391057747741613082772286401007553918942620268735653621459083334133934673527652082103085543317268201520535214612117159718994357811294966356939936393057811922912636098212799398851490564025630686006849071195971434106906845271833532093504962517431394676997624439457597868499951902886315398779304461156122903740265847483307263110545428351973986651740429400520538354471014756898243322610209413760298502695519135948840507810988409173305282241132550784408789889588377100112028818952329693634267512831436697427888245515754524710831853546492546479500508209191798969657252320536203976267564751272172108416664691671085377819442345354030810578468274482046165012872493266526183509046559952720198776603644874017048137876620204549917723595511351423619710192605067263363826084729203966147159952059731384362231920986994783954805391357778738607145512059089934002659553362653638673531238775253822078165894642109838461374928261132120454000314342891092575420251249229869522216708260588431167622922787116967708935984916669482470549332243632844960556893696891737889813253662735845274091090250810224947513567042286330134505809541039018131472357193514169201448189254387986016845095740580298068557914157741291809186294213217339648354265064461257921752370999262020672875967560701856134888580250690789389538202149210245854588747978438049384545598429486253340698995658905184040831943768825979549685860869130660996042893024920032794659950929707836653033576592698397461250382824276695644463758528809474982584273871532112807327541674969775131411258773872818419861250296231458290914704476893124921462493979587844750563272900321897181262467017082620180477403534079812061306346623253118171285085992392430035961939034352732303937105623627726889068473313575096116606187888521099470680982985032764689835701917644016064569287680267424192377869478338883457450012156889400817472294095425422014725040443635226856483479690204026435389437871586326125774524857587274770711699437328521818476584609291755536047930448533716484365980193805942104110600108656583429523654644102096671597411024990799650222712435466915621423814212853122031194594626953737568313164302593377161233792171282439227620577854400696603880454650124462961949267075361553657007703933248374123877958923227205129620161096338283938199106131418642758275953821440476752245126656150611414873815218869608673587625824311374003428880873050927256529699382297548062723134516309478951844675123925385872872893569770355470360873005959044079753403730784460068025646580928923490498768275265687533980500072911832263266409980983700219593617672158224343413605155117215549931942896632772377455099018034973618350879960682369364269858551634479968403499383316927536311268491344708146813581981074888400493305921389032067933037306174372846898363573291179089470365509194674900798836123671527202236906328712931426661811378792073206163294618279714496562723494459428106311182583899031558754185459718620590351858168028241187822609719187729595659361983906763188553484326152499280491457102052679368979497720659531297867928933023286503319124064967225192957166761696397101554457563998649874235907964680271565581930148339647534181025892307783117335220482011550538057813789080742209839580433393174270195713109440351049237802309569043093974478166784472807341851305006049336786007212999337266859153622949092224106055943459326075124370899120761322279039823980011056675007612969115591499074751181449973845496720676788209591573809585252298160025117568224515415742822704556895301716325670003970057834632267546137811938677051311037979588640987928954806954749836334114108063757999012386492709856593721762143486472402558889080223826310127167501447970390179349283517379684224008043653627749432974507646216298341012634744053440832704597111906264483519329354424158809052017065295969240905575451319553134955096705118933687729993224213387202057151885846317019547460739069338380971924156648033877304836771004867830351472042975057683343224352976540657464531278050255026621885038405495631565420875835042296087189486656897356831430550202316498353746555936520906829168573360402998138294838856753065459268371254763581284239915434241366458227025935096795996933074948884307131641010537198317113538901233276340307533549239706385206743732851850491627993127622272580962308119089609779726875022826994119464756784077096342993481664190919988467799594782175673632108805163640130252885193987021029435234080713620128702578313559642671001963453793427431988396579689312756845241154206354804907668819104649040038387461759888493199877134809906369771125367058267073378492849659521252851486645730292253345679805083020325671079246765645399898671285737509435269754816745438498679717852522280437916904200153357209574610319091162112936126621884240331408333965114408278938258699956403709282529032665609836922884615142842122992224914586472201772600201364320838991568067473195322808644010116457277818727070618192185699879022165460791416854347818746554673298072164628288492962125181669393063561405333066942685765185071061393922222985815868395752181248090759891575532312328841711837301935001554299436541482138211253833127935509100754695887340276239793745479317752786741591368408904853840701497055377387887303750751306134117577487410108598034543077454742635146794189155217436161731058001829337517042747888446582136957732446717119648013834837073662821445211687459713406426285471514604419491052345881072812340907196280058617811888558087530413957047574379536801172165914280936665071188856375562430720321136088424636843275461686897999439843786316586404319324206659767952032227643723632372608090695569362346563737994931076794381323038800945853258061602551279847578820244942477566010369037675608431551272062241273875940005531090683357161643090820593883703144677636239900894372860048207711968356483060325390986282017463149010190727281063526479586614640612403501073417704016791353790070269646546694784404562081542402928086437289108868595402324842301314515086957540246679091695406274891682996813481142496095576598101539803989114434714628286418429109609560069566440380955092527088990295217624541626544506404385647982225825483928533048517320061894086810795109413055840639146800500923759430521536847465463423831257015484430603311573230553891105164810837883317939973964931385184104881410252178463796792087292080729950903512735099628774798808983009592084687608772176486544297065978405531588623973592280112153156410760632458326475411340775099151698453311286158487807204018108682931624987440676411869698805566809030727384730124772158912689503709746346119711708275717024975537488950727971379370997236011829792800063135701519175668700780773736330149349685041840510376257498835102498915842342786683680442908211128341330234707509254143612449798528423427734421877227252527968265816090751776868949329116641058723997328801707977061787425411725942032258164081701677701155666982567234980274417577540651110397197454864093955660624327393892199757058020831229475205066280848232982193098000706317032982470146073886349982867557185315821099449347280714621833572836103459860059726999301596224169991059690214253281163431250328009658057437918686782199075121215337846365071257794463227793460506926305541145898293752137361775195498662029315391633164426892607747747335783516099511373203640366564136282212717394345075092852433424309501850536798500093004230219558569815903107551842028286716041679872861165952040801847453258167498966915303958681703080293496846372439149606385268552006867330073178666958778220283048851736537786727466290261600245175601497995174200682028932846583652823209546451759197201025428932132354014559526980018546453031825295471048299369465836044822378191130958156053635378032393123973517995309259243196960980717804549307156364505238268641021507723715568206487357298362055341641734196763955356908902567051989668770486581790159385234242058463642666540943107895756843755416211610416083310933528035378535887143442772431680762781533204949379995481756748333685054062076418696821807287121478243648029210183193095508417442162338488266434348926586439487038515528477207982202891348114317594608610073479715854618267943862110067631694831119831717089806717420719733290186796488211971571017415796929406944848252067729170521478099327015522790217770303622985345160752976302104060886198698350901164925260647742251946871731658820738974739646586267300426817876110376621370192483855766867596450570801704061756805894080047695382035402175925136062840157114106386576610716880573848412565142002608775952911763615058610475500403136836207450172700197045771757354057735715798916843340960598227489407360871187377681573854656563655489665618180379926050564473987095646869582774326592358779759836161609851627131841002436448098228753290572245165170234533545824802414001751967192917270835646165710641200296878721440315965952547286823241755070199028492517445242264482560620259349849095255381449012386303547927454217577114126143192347772704130409162115756752881313291181669962811985459446465772349513603882946946226153405019214776841697534457760708777477044828178226535934457581849187631957630853772625181232769556849283380448461722696668391708799641625237113602621010007963403704360196412776691773677807827664267469808886916569310582435842397789253796316622192417851211295595432321212789227006872995748513819104315552367322830561525741326351180534772901957371620956390537811074122671900744524906519309990869278612300399694755594459533458273790721452399664939178671627349090467539648122584863439718799722181640746240689734997485164936605906087535145851187970229712226540313000041339544919451461213876461404712200789980538919427691176040824526421421564317752626393372136130182776618378796773484785308963878533467450147021807031082937837057875249854922536431768930400780531056834157904177076868849762104393338381530576118629760786869300670869015072078572923025776773404435473267459544418134879689656922930505256346437220937050582195180140071564263792509729090537701524113364222540402840385874392128793652469667921249187018218312095325137928523180491369818419106244707685371725437637100685954159697793081821460012960154765903348591393482909524187268639211144122471057206868636807890463453427121068576876939100516849972873907268804864376875793117035312704687345572063472839644429526281489201894278058589976014579178407812234963201709396393456259621018961961184244936566459501997222077347992232575227856043729636187038892281260601930352852101788048535673382325741413699624916972776941151078930240499862482806452838334586818863055628585794735267502298612442273744474879206553602654616861002136747978773918820418719424484200944881843700677155661403148432204071416072876840133962946405853637589331531401343743841815565681165586882294953527380440708974148203246977550927717661296133093219267164707754948370758048270686510747409269768959162388609870940949350661196538488679791514087882340673198384464724926946498387282639713807896275436073784683820518707774899076191062764143535453970768097868284288068179262934872197320408740429760012027677199938502673658999077165781168629704234677391085793516978218755050651794159244162454773618140908855010736088382051681704834499583007047764323618007104957618105656457404486188082681661525977561741812792210878351777544430110196611810304627646404209167443839289065621764531377798531920258859067088545178442550896870236629544425799767360579315789510048056997926254796700123074787139824982597068557056126600075181143047551208989668780081195294972160177434721659780657830993497317881874538443682668596948537899292328670760813525749872992001689530781462160444059970577740598239762392024497472969883063890691372471694407544953431442142752958361447640903705359110153436640426053368796213506463991802440843483643734876174071260179522633189863006109611083670644792276512243630258143165390342552717533399437463225854577823279031064836007248937623697887825321977174260480645518876199785302006537502319779196853896538659903136671757003856111513574808118687427881787963620389608697839274630567451999896589872644533958689431802891278402167958207821471072263663974025792066441257252227482177119435780637005767620323696543394692293731913213459514101149843084625577774362793002766496208826929912033389709989765274970077598652782463512348938396276691087094087133283131029060118678205988890821283187487471527139807983876116193015960187809655718923944003230759833868844618266006400162985303715605715271489509064806456391408963755326780446109075373801936297489840902914041239101621044009117530524735925440375476267691852429618463402848118466562389826473738274825610078378859877836318824475648300544733645352259881840787680811899881846227360970265538450801983562079555516419252105939669475758710798996525163291469363231491195901691586365858343010130421120885807183084062936977488240263503350873293515775503701753197208671180642696693704441010812973837178099735861295486255487285475961444581196014458143678384391156894012141594772298005291529676872813326635951054729764855058648110995514127873077950925742512057695002013526781850227012984709658873465684273206969395101589786348955630995605982948380159544814707438099517465691818938205367488343160370553629756628234632185751333025486068868710189137402324020544474686380263478397071919661188231798207943360557425541143202961242660386843333388533904226279912760924132308860925517347322643429596138809639948870701497101171486437423864440713499456713008880797861066533398367739365963850294037251393856899728008842483673039514275754189526444216291322166125244695092041296289982098826968078317635178401771738787845867527065650055049638172028234556577039453979334882845716057865374370837532362555241529747933417402576686445028209310369879664949228081151219846344754161535808967994775897593197211981087676828143984548311009126711732069150800095905534227004307504927572258109765250489506420132597236049547087497105693109988837852920271721466122874728884892813346111945193915537533811960733223411187837631650075071830880329573363911567632673537776204172606410370473608155722440723648028877099463361131123547766386815447728265236684007243372105995514105986370051703662789045670792986234115274123543352352775652710822759970312969995218143699845913349428832773590044843286444477850407593120546020383566460479728109377172899673041324141097960629509311246120968181968206599609959460547742304728319410657196175146803213044586563082833019121694488635493371844070387073413126623347787776413531121809527442202977537242083098221115851346139873625204212273799660911406416072249458294190950118121184520929781152927778699638817830035452397386886915922241801445470227321825576991954112238787801039744427534105754237337487182938392013796844348847490007235554635415589440038811455978626192159746679200443827732424510237562311359845941431497515246251702902085404105540788014160215188257136719381765916152223514120594721035968141846639113338391206291569889421038871861862073658676002285477423098516990476115862805638832928586653172234098426829029329041718515963256423486210153643973713569773642416786381944114065752519392942201655596712998706720283699895133030300729972072861432208205609706345487322328576566244771093026948787042789855132553506474528609117868146434300232581557345149432285533818085560448141787359266002678677908794141731897349448564923947449165506222376707433240647493748909514026622092595910262616509369295829742421682380263785363643376431394798984254114005726520690004043450234497635900966586766910486188645440521642553098198075888295870486339234377601502757649261795399003951912371815324082499553431006561501748304034865815747791632608409998749574489731029745210038695535233739995683366208301771295898314824547181880380529931157349782484945969937407389613956158677041552291328782172263086399627829450512723144332667879990582828090945840031252320846870808667412371633653479949439504144028733828328019392261149260154005577682936901488453359674778739623855343012638210929019013335022674941461767389820712204235516930161484647818923744204550228407285180107093496642993774474418707340906459416194921000596287525513537024216017362291527725576164379800333983164310396908197612116235173646514726998695948614560829879145288661986373921927846553760516266195200551815481946415583989898076559486757080387863051127172431201662403613454078858556995048112854799288763050607906678050406539935364511055663201675639957387043459124880014859562581408678084393033714082190027381749930767384053938124442689145729760267853576992816243175357425274761947579323133991369807575125496390333589226094904162729245784598040924293753032011604712450520728476932601324789679537611298157659526470292181255804401670712765256119471979478479876642721719643105891965950629733284075172360302879703075745030759450792350118963599103693205799378572614431487912326750283904407284010513765854091381897948770804201012913135460019338466205660541616194529785567684492651505636427586763876031826056894534566926993580681275985130473007003949851402249640227127773187013749170815106833338931407015057108851916875761096678489356159226109556619039517393104987464309658133631786276583110238140205828719582053439983962536898203131714265297747278381229406161427400884640318661932961671497353615972393881912814591417857668827674311478607376255861863204116732356224355305738440548562489565284071782353076348097274703086563750880452333166791169944422882223316970692905427515510487737610723201649946287447318337340392430827729500655461080408564679885649515021666437501699750319425803736851039375779220081674711528575436891934103377631368472031805489710082569528072483022757699235256516105847499506612134684845106237560918772050286927790141452982088833321942379162298993895659475633518137994609160446723871665515609318677557993825036901349738250347516807996731549246481239029137452679976230080373073627118685282714287262171829967530109434455534923575575422967479798785458770895070744828416405488513040603497854876283644259422793975675436266231138275255272994614406036228792034012569960382934717015652916569283328509472012370746706300674034901651152354208592435538144307188450341748798748337685284727005320385089815170842578745357567002686435841797820466315919894132971419776641905722308142253151809981776157543014694364229620229446530380262968179625514962770011732239308883339541977668488673947831888158543963932723621075142194353262549660611412405519532888455278552629094456095481081063501127665177138350897790314332470402608879483531488580644590012774471845364903306522159871062057054274482110589736883123221165540434763675187705298973498010522401289264701241795288906011707040458484993713523567974100472107040103463869021333023044610081051981927674331565603126487293147632915834913591962223476940398895427074580209022382121252054423750362956404211958497784658745462151512455442932015411266687222989046761812523063165428470125212893963745556634609666125939054957475389913495212505160279421729979577628080272285125610077635098314778989777666139152567473371844913812561547117938901928059917569771499464945293432395574849721040711283175339715606438618714901449982827146440297192886095191752090529063373493056764070533713923487381136157458726983044191001930915458691152401206041131031569854710736154699230444398705359100635935266473271921005060442626690180472007096781874148704291429376662090786936643710719601226903539096188854098085170099693256184287546131361923077295061519744719163154141356787029038903575352125761659153704670066406203888601518150427390314119503453839342816197929585310730465195281098979639312876386719280825845908282076011499082794398387535415244027537579383449668774125023922884434451197089532583018191178060679596973614692623328759498279540389906644628678433737237637809976425052468410150958507826509776863133720193043321949484122641063737497161701401590311260200379093842905504362711854291933814229434617659804166903490004059339975431801164655814228949773231269006184346177353751834677503116651084032309216585923197325030399876741525969766644571571041420073870306891561832642528545738222026865490352683086010818734247171827486127430992222370882284726476786212539688620841755646536242890690427821155352590471631895057028509531625490749001916722986132464293189821133701941196294423811227784237478443356859638007733935539042234701400792632857929156656576829578739901256390945224245423157452567208901723125755713647318778141429748669433327386281581378716632543095152884379091205183632990115077094566809778610830625967674676271498971117319973561993651144382094009744562365781760028351583187613188316448434225530643590250719123902079151022886985313656565126196491728291534286032835987354123290291141294259432404379966177994626510192474871865900430414214570875248314605429097869327557712954084766516024434777716652817901078681333760556951079559063618076348223722554901517960879393197862464711241738429027236234406186926042875368929299718117904714689875102429369458266032171559732353188557970086321158804487186255534604647569404359608818818834876116386692688421858875372410058278610843324555713417293730123571488900530902944539277240831992472606376477465557535531804824297529087706690214247952817757435435064366898332034923395622069321314198757694810794334393619125108910740605987523647784352325155273901024694144477426040114206706559475816375056484035826822691324612405463547318886932829661009162147359636211475681879264478735056759096533247511584811542018764381122252738578899387260073333916812167848762974085881376685469797790155040401880140849157501402025838950982192709076553854783228112527272299395324404911834181325672508163716157969421342862627897386567966590677802124631635610574642184792990904413381131626827845345529729766092717752189595191307581758929062042855392897620265953928865351181782895036629069060790498058932456762208232312509852452103972249635706599734314669882337882775493464344007726707631867007479649485583656430808612216373912948937922182253475442262340041498830054409717382779877565276138876719135829955153543255711967389728573614279576073785902179147815308742406271469961004742343945630056370600247017055881963818680309218088091144152302177660740230393347057156181291134297597741181670850336653552146173369409066784019534012289530474160885281900681422063699281789280617167442951533715651016056082676005525830428170069414371138770050910310573211495209590773897257810462498895027298273950637052819523706589857292202824967228462562159088948781214482827569170555299764332752298034394251184571445054672436718990722132418402406303830594409130519577068342202557596433733563545517430100490095821284383894934422199097062914652412970768802371339707268082543533471585049147256283532323255485960780891925283741587514440857430523812061614797215095059611116100519326745771849671673800578681198004694857118646998466086058688955170900573092584786496439476527859792005023560167945121422850313344754418487189125819491377206351251299777753454892452115232267515206070128104204437568814089818673150097544373346987038376201801305004009294374266285685689554241026236444654910554481392569417816457319469522527727498392681099172750726405023410767341261918018941869525407516854607356969481121318274479067374904806909099474538985752646545384511087926313743784657414860318762533748761539705667619000875857954314723309219252101274007754030356996505631912283213043345312593535514856903840796886832048701045012183513421177687137154897275959363796022462038406975741066916337504781517344101613843099162265501277401066573649779092417783847083275058066658748943866813047160141995093284377337799966755883375626801573745002268665103091428699936943048626499953595028201342386848560399146011416705158445489524008470542636269267335071461327048464379250980979357059848755588690171676450763670466760142158345238720824529947462708674890602610956654633173741423974203287585326287506862671227751940113697781139755738585123558112426088113174850222259510646989229793306402372119789201499434686476103907629110366206948848467737081482635508600877722978002530169377361334234942510393190202282273899087631315090509112870253172696547522619936591773800139005879359795634514728562593617911586730838947488765451258496621515249963321359696719813565910548229351672714546220248792070089167418830168729408099924190877930851286074938830585392960677142941861463154005551069099302939956051086217292408621793930273695284480450288886229473452902706210707131346390898891739778173539372942909767532507166099318375675923788548013149575211112224090400258970254292866382223651880506664662225847039301630411283846015728828196198143872583483203831828853979426741874005691238005147532936539764473958043077532354396408457207542619496938815270722023053463637137963160079472890276489605115433136609738482008715209005685506931324370250312998917188710998299084121895393352070129221365422893792215220842326000215389818249111050693501328854653340303891134578051417959395878216751811566966210521795860411390076259316799569434776241019258836044501949504433107698705362249649668368881060357550531366941681581909382384065999481129633674822911178415904992337142221848201894990927842723408780748298671375702741684439845378411060016235129495151231106320816015909446326295284437110073542311138670354410165573979679379279530750730728997397900713941583354233659077284197580665366950907765064554978098220084508870365262255166633970692952960153288091608690273295491869397686295281429181447511533965904820607671138417817029541083979082944207570835478918544077015117709858523923257998348861807625102537354620007714235062208745241813226092618708585567459382524855366708188228139766169507901939451236275571631136726459550370287973067137765246452538721240215455814605356593109206302235080109615523459488655116188088699505614013004327188182312766522455387860268681703472787899984568580387666418745935245734175714349421150203278363026557711190076699181547109718069442464090905450067935508422180213159973249429752872895756389710581668210844397994975713594406776906208109890552354499422356029002982605668861325265934608403636982443453162551067485132156826031205874621802548161629509072640284395831806283520952398435297123166969629437516290796332991577426340292519160191058275532543215059384323988473345921995076158142187800182555995501153591345746617311434348524396820279935485737439592817085086630503743919152154065748310936305955188107438213945045385192828539910787142888389527318664454248222527748492354554722375510167346892235640357900666028578970549308484996471386323365243105444720191031169173328095556944278376486863278129583072104140254154816221952632863928261292080591276529421724290210587076389595173751550096103127321411941095486500611135751314166245011519427128171383120549133349159349520908299262958089174021583016265440928057803796468799305300921983393122816408181444610579181189543937188858277104871427336587703198813207557408256019169684904025020154055446359600047572245621294941534704939257522741017473394048289014228035741274767517091334376949141826352512170171978758150667155004912969531271618024215448071180245974010928246703819114195527597492405453602280189781935893285559198486453070100657724073574501013297164834992849650306515749119830345793794656656405493268553442371261474947689069498866034780546690128180961429933994988147092279420457939227200757721003429451991136739454812915258062959319042405307064343915853643868275667151365094648454465544591674094575371360190801310628325424293339140130719469549957257657628038953639748835075204126258589469302703513225231802050213440681269450469573006620356593279615975930647193041849386740778365433693654779271090879872156515638214502834710864980139739119036162542538546696180903085951887268688356601036800004042902517738276134416743320623642842686859605041615724202828462718101952553525603257757157534875225405816687065342593718686657271711347523926251545152872815647245579713300383607365115940579866577149525729298844380591097744220837436327638994046901589161788759642879697362132620666156949028315820549324248899834125690366669249463353073889567133485306229263273550181521526239273813400752618662283491577109628144735882148625176975071847421146815161158229350936241402456779604142116556187551932558417928419949207152037539970689165666273639212224430588335113417012234600619165203538099651919433789046114164351125323275251024535981275137830459735976119123486247386262798296429190088137500085352105715320640715646241674131410585443627926926653520841984973994622256463156283632257176305700153266555904533935673978280336012718418684415357881183560606284327873136174530257626017571183728836967294455653915817214946605384337979281345571900422318438932733285584511306417991429686416853565420701409957802198361357945949120589552855416461279501183777459802095890767079963163609263564923132234816810030490119610945047849823333625226471549393083452013016427071473562719040996792654144120749459661137609570732051283574239225341106264385152449122108465602449915178344546278692060591121807050750309168099144053786818834405584202033872469319632050489603868381370795719684630865380310434690820184784856270263004598572145067460836082854187898758439647409614934709735639991160768773906449611261658700950417860643228077212228640094163237750990784191287986880706282919645892124870163313927226167812362495020918105382030423181433300860970425264719724632144449612065073540098999265183894243249864498988321530205490422872488350812401492887440774308272048890793828598582596538729398903317640097314639762192699422775090886302675294563792891937171556607924078414455392882550374579600870813325536642376153055943253533957286911899877321829405557146154191744037883544501867117712833090940944098818034671157275480812255606457259768454182073106074638331572403926582240393450295664223669498094733884985591019350354157058929617643516457641140055850601298379729377490799174560176062555501637354869431115963505122572180140139287045512543178681916330291547008169821212499204822413341087506119259742639738410400196772698598645279094529028934232261507923117660768905570003299442966814748376254549741408413793469516511317858209250207596542742407489072965698112064311741337947670653944919294614934906905320451026061667150033635891050871777458464022770858411939761776109711141766531452130464725378821584357727915518408462547658279622278777412382299203702574054369914297810831169792288473226727002707919101236674672290825171826103264100953159832231452608171156800048636635967567977033435973997884935074952198573820022330838023271218437872281670986077357115990198574636824457752430635921470136796931110098947862101155873019918572279470324606278138602437276659751674937283602994373643453923179173024921371815850680197588641838776189359803949383008206170377601999378007922610846450542620552636835178650990989766690360544283581657930426891619691511310214196686973452534736162550938021690631800787268001869264718335486754821491011861583037520093285186947096584247989683786317115065383425057175087568404058370337431641135280571139787260816414190786816883424579354944200311129968646202773843013570520333128513879503096822715747924195621681985773995217184231733468131791382449561522079310526520696259042293393487019651793197614717689776220799254680032828930270406633658743993232996033179334110378841461173678060120989596016025836741324738053176698868280036712223110570063982750803483258056394245512418038351300072193128170464120563498122838457157597943468871884260055950798312555275405635929072634216691577445982333902127671408707662274374964062470419589702283247470857521958647932375751888970633803434652850970601493892859006056718335281592274099256393986086184835940570756155662201492545107195889709429087733952206191508963893059187181720160745468845925985257642178528377624029913363427501944289011589676281274834142180167432527519984126948642364860389699901020302661732135065030700257295008639461718910324486969176362827713151771989998770949701011171615003938924558043417740763720131168947807700746081338664187877390464397226336156683574839840711804496430951487797182006762083645650703983108147985407672620015050008943320045729111526646931967478202941544437693113046665208554298081769883211750414069131565812799665708647454716781778249209773135543656895083636692538273655256635944863137539775221856866620041304102148033414385137420780379496661019180109627970913478417413373608562403563235891210881931945506445886325542881828377622447418027270835080007014316358122524184244680221193978615150367361107995214510669311851370467427513409338633118542653884901057892631555271817015689359967510180725478055705683717273086761640400785004085777479558304450960030296021480608895420260112009971541143172229423399318691319081829726033910634840059173755596481090735485512976751009890719067972913188590509698249587597403332736064439149371677399730420161968650745373529705612294336764256057260266903003344228400951510573237604440734156823928386592920950818845293454468564357412312643886835051219552706850426614071158230090033225928267589277995228678654276818303500592640740409473515515934721134738867132104928223291147169623748134946934916178010280497762381383708917854628821673895331818762562985077082903968205900786768739080265651368869399967112818018607008685077611410186188856141060098488267707980235115662397481778282740771595918489858114483045235662052984847055413497100500510415426436167346209072576420814471951799079379078270474688903487646119108217543129702976896418218924131699422094314855793947885503535168473428773837871177864539868832709643109679960321307440068697486246852121115604745697356587340844490462004268363219047447961112411961793682057009159889106680439674549041222499460539959439474183118642920195461414067096185860964574341613491000848100616226935346679384753356185959611045189195094410694494139874379701063200523923107408041937819260758139318156825238413241630295206119410963434500688322507699191302675000282995491607808161549314376430675184726248449907877090136539804314451337274689560716579160288243676244757628189096113431017074512713736449605011717919297315864039558359743061204031341266225317003303586235681443949502497733318411883672016917055136427351895790814307235899470349290065356692409723875037016578373235957150287952910724201855527271281746458136400933495290858056830533431777109667709425351394615234723224350433832143916151007073465042044221533335746793883898844180842836385752493374219851993679861017723205772651501346034244786197639873273483800245707961255492209157791505242230304839788497093458282043131811342065114685952172119938694744882067465741769791328203574771608421731041565909206521352243200591323787345440779348270045729155945344310635165344384648732477284161690585487505744951539583238810722223741239053166312998384783946437821307266484052744287620397520639143856124136895104059483294603358568484752163941831060770693207781163299097934517108290710909266366087171457275142432756734711386647883334504630856156871617135236740405061991749124176474607785825574325416407435584483353685062697814964126092760237263108810468442719207306006047467503553224456077374617562991259641332967054946164399315379272893173341709035544602373683106111506437686721884650211222638936661523421995590647254447369306798935206981121600277654363594189363747625481708762287025203452410555081841362504731649146696602771293842405545262789081958614585967555602423655026666673206145646045746694530739518670322951338552422070352413664372444988409101875673012833941927223115005239589708835014643598665300924910431386625032155676848042972467188115482731107983832343771524261545231690696029807461681167449149423883628899587399727875898429743377955641346739917080097810344546181645158785440132769890405089415684777568290359504540804636517030482280123191342841624699827548235908711432332675239077250430373011698618866124902202587809571962161459860848831675021749940840217690474109644712485202201003509260537992078725217269578297954993324828009861194648314176625138465658818769688574381323838388659725184030136074576355123032464673547289848426058642643163261883947759524781828976648008213426291673538330261607995222034063011596356757402605144668160006551725122422524032610530692619999478528060013259085748477981128816168947072741112068449591134313706742624073595102191382960334012221059910129981393129467105672142792590490625495155943586977703507933383542674150781442680565991335954255224711315672597975297548243972910642780752731483918702523578578393233354097613769246912209612684129423092635209172731658137184655709169233667935369294832019934381261233591077251555801229737648124942321838928446494706452739320939262872882917465655002559997862044759144967893374122268502746157776473814796896392436902056535962635210694844092170717627455347982649203578685872512569760893799120819145619642593690402709814536535437432939240265113795023961933624294652656085252883410536844605849676806268348302006508225915865775168789890077435655673062328466322824216251949953317954505390878293842883218477653789998390529041657999805845594322728252691309758137064182056848514679515787574663769669151191443577221424772351610922910853777805849745836264335228345717688979169796134360305557165132934043377467541040286726095480535090150746453807231768756292301704739157241994591825219817826918840551823308168610971110104998926841968139986127531830985052452164209688225381869394196014431195188074286020911562120481016886738864845011227465377075727941823120573784210544540831267268481705007080859292605375539316651567048490616040910193529020621513151076190750777131080408141564995245621652358962467726747571817985119693581495276846194002736879986411479375927463825123630951613205474187865798931663588176934142480830430704220331732259272361884072547853676947752171098065140405601508592068712763645602095275665917834147426021075892382080365569198615547471981523366015669571220992791942719925409472778238670288378226226751723121847092338707436936448946444885669863903841515341204364972161854854232774564710020213099831130900803223051619611222812218551155537308995746902577383871875910083889452435847309939372102841601655350758250768206356209448034639379314240306051298499695976759836869398650491284095888205480373428560201183795392892303665411263128232245718609975976556032816024998153151785459379969589086966393016281438080906889704264483716684025387982264787672923430458350247162646456877075787269025094192837477751814961089077413501501095880031940358759430157120199256878404089425019712518102934416102475947339461928385858948639613996557215206834800379189087032657895154686511078378570983606405374678992209173330022221831022944099611643336320934300179083381000378791140484699634968562039981937770197353760403030086895181107051579238801196624777594965369169095645598307926591292276277600012843964632055225018833599293918954151086136759601405369176785163962594492941847272142225203138675496291927109637205624881929490957630591408320259054879455297658360254171699272786841599424596909986927294847079295082445785256036387495250679549528509871496836966038644717720278856227895103735019549945463455940511825972481658874177415754506930343183740154082268758441404063145045805258907803019967535538844724671620559162458813153476350876312185644006793460936735521545817314116397729571485420678535335275496927473938368938339647501299698925086061746284871970036463709254193323165191850947044123022687108625884881088781517552095183566255912023415597972474441168425351826278308147301643656344298850706621931814594667953811523471052847151794634288951862878276536048300387129134573899116800812373483549998231951249233424815326317615910699127299001832529088804138175314365826672188565417736257340312354994434008163139659812346570217348877405048303190655810893412009252799661602018229141486532683461865423478353227381519149470732359123743539184774103772188351683562330083851760120957197390725454097342465983785817146414679535239493737798613339819287642922469142308143242529311931099894942170556148782317087577481887823417902721890184294155541132696744876962201605243063180314212732071756666934295165504140655704242512668542595703275184777633671315116879025152509802085202961092365800810956753150091474644232599996942525853790664437489592981528287385573362506544953703709968252524078011540936672139003265131919352393780109292664656190555953332177567272199033580771134948922640151397931045468343907302658016037577634862297007658903662470261182042528392152571187008905224911692812289659006029821993139623356582134168244505348106309307836339716054736144027709970588830318097938019362708469546575238020678534154472841754352148737948796379309288047394727358042511219932732457455801541978771736281915653668067236567511043333558106118164604934120415272839192535159366240858212920472827382427263963091547641191409948941650806150871376449846470708176572020171117226797306567395879016982781229270625619194129858440180879468480654249018189444417878986576916074306082986911426312127825991436550111361308405925785611118753967489898700319571455516192657392461431762185766696472425297509440114953406827053922632381832684314439916669769491903671398544592907601895535737332285713085903834952678503158841667195793683904428101760447435647301746933279352375734026917384144437517651003803212121550684228904513602942323737439059573387855328740514352284325922759468511575743243993083309056404814627687062638887059795793438505908230331097469854302257683369313774210814157862090380235795348697726590661819769122586785917114313882234907012964655197684948962924197079829708270206387076428047016448064090593001806041610184072512733556263366871562648972015945557852554235898300417784437866716432239119211204844634087325892427570546464172130615161877906905948095155630465187933076713229118330490237064514793054601139891244701159609405815411210855903180574165524432177350859067467073632415374427179921425414778623287237039014440443298353698877204432369215528566268896671886002265796660739960000802318079776149053493745891911405167531728850165993999651524544591889200774538741120847308732608407563728734477457203277907378020189454414253347510197294907248668890612305389458068522089179497269363976841302952086103166678399469602768040882417023559067936395595063561086901805360282877204489632330339118305329842682497430034582601714884225608220603106695677052830432484030927595985703799000736217113369576004525947722025339899488850451237497711529123600271024848860526738731774378386270015302498325705210192941471166402719767769966539357703917466443792194996571533090733687450850551603955267908315556784759062130584323308916101100337544190323117598459211493624934170716899812450508899900824168196634507351631098579237557889911094648090376481967527019341724325145976395522062599956468469966579170190649297298126527050957050101017732510390306741380640143431496101215541920165696961013738801517608538601326502582932539178679739772385308820144056603598913377503913927529757729956303020339706266613251344906547323450032848761044931148846778467543287579676972587970828918514464325745877564570282090752476006764950016221332721525675654926264693913910463012387987821064791162778351128282431739938198295266425582800998646072382576874862726744505553650746109327007964906607933519668440688415618141887023958341179167959421048408595976079567598293205189311169604425031675567457227959154706094551022247589624154048916120136065357018234326909095458527785106358931198971711125559825293943477832802070921786146171908315152913867382506671886185156257744174211762549238173110664162175634883955862359308620066994121083757248324165199597816431441576417338840294672987487528703821407902706825162957503529862238665395091787227474684892526203071786299526669618369941247562588336315355650593511430135288863371800277867965357022389532473274815015817353749122903665457455863617852226269182372540274886693872149882762178262563183244573179333332393789612188494977089058231474073417622135254828705951424224359184704078293455346741164635141841167589000768729473081325983359409384420967415878180752741915714879282918112672137920535892620548321266410224169690901104324256822355116916499035523776230343094709982485093009283945132476754874302600622555482597592407120995427576380197992654289018527555121783185919019811133119559460063335357625149820498242810898184835085524555744103221824351734304749235320180658723639754491933633637887025565519805790860421266139845138130659183156430721093936560989199409796829475972668344985378947693051062539707564112911856922536118594108509727643684281204543280601773857171376108259266118730410520410982884422432084346828494409989389392800781324189059445967220371092076200648767947977911877752202747265059487534424362082515059185565797109709088923345805743659370936636752609868148160638643018932849572016954972144921588783261891482003410545346613844626113337212462588380332839859051157903240365547187206484853529368616364670132013282260442559423563119878660407255717773614560243366713856266135280313672545718037100806817265296169915308079024755338822275286644138595185348216201547251203978930551651995922400364076258798774961908624434435664715011278076302896697542015051494082577498594367483596199625621739563241937929521140972064546161955068039306356987497474116377162417032521121747010585605378608181995155443739489250007143245194790478945601374136123064789402222838706286725520506380243135797027073777368315228438757676209533291449072425630860795435917378915823698578696105243478286049616859214114983877757426543305987885074150804673315151818408942255407304725256162766237881130174010242252218457528816890594800981687905083412120638668570534290760135492889618827931626012663919600536637205886868758037414031230015173998620967179961082253881846241775674391891402685453499024618724650596842455477156263117298223409553189850119631498323104001489220861709932121367447602178071822739754524471465958561484763826462039188268625495550147053842919618706045557118540030761623949783314665859041067906008385706572900861705675366311762331538353862369715316938398036421394213168623515263428337582427225420224135146531572745139257208654239245190404932328243767767858867792691313411625574181824059044535044481442041909292036614409394022158442309230900795154911153726689690311377679096231848352328357084585910412226210012543379020853555935996776302657857958403143552613940694165228172795810288355244676662060309602003806565647806408334175914660183307808802187759655605190494797785415097253591610474730762559446740247415794138362812027581296304511668567391485255811659224621343524273967708616293959640908801861320600223523630709719729944364143532203883910094527084625055506874039549095377948221250829543016691699340581918161008256875016861493724905855198525432110363046283951263037765292926474112979612479157368021919165097049035680905676349071997593050313794321465378741483306148425569672205800558790037062939773746531561695906498733859560615561031782193509377933712197616925687187973286566178654395245093338978821446592113472534323126658753918924585627941849324670750151346074495453659471031090818217075630867642549896560086760867303839631752287810863201085569250555358232206282789174645777639025484516810621717094731824982360525567458855961538630061840245290146680787963744369725016930190086805068974426205166463198362018131482161302735699278796415632335383184962228902254128933438473256353963547952071806061179473865323801660991166916891366581368263062586282600338695263655296299704640648356984547490011923601203296901849243555496177959197100620221442934087734266700897446036295447855820510045690944255765863031598089410443438439742157699299085120466662393391186401765762916938786480498808246861625590526714743842476497152932386302979240412511721572228836615019703378389849453174791279767511398075164786403771793778257469194034200500391608658383009056616106256078799157268429133776845349354721270867959090930684516242737191067837443382698591204671956716348722588404545228364176334278651688314252198423183695267537658518987625709748219701885028604004997827758983825220924925268878259061265156858777747039298320850184052366818418239585198802692823568826353690394400468014392211524414451553503704196418796787179686166553064471148859078540871021480041966253998904376649562113021974166974409833956763396851682873174120572895237094303891319035037985035485014317320757868848114350382532919650654296268672421267660985535968873835298703712851302590924577441831095014931918863059281778559488727796365385186146753665015986664093388808286172275284732001268883664891140066116945246889522242508619138832730438543162359001304901047076852836633673553945871140555941967587928352085426327605268244686719207013732234448012340509958672296984112079328195276979338121148034010051885919341163333679258299071141733434379409476044982104952831819327231654140687673842097568342419966014742136956861188855355747589692185119676311104065314566220773372531575852304087735574374341250312302513012649958579865838355865508492961919438821334159509424702690634817787564634451648092901070385478010353277201625081434787509398435578464099453646985075841593834896256311209855111853553595431290861550227131580292380567230600348691843566547511268154732828208098450739841820236542601854099006386082810959624273959917500090480900714040735678257430908062617058871466558818478455788512324206518084396441172855737194450669094688272545123429701878606802558591680333687071417736532187641160459238857938744062989152395714930962657926851258754586518803790490933898907457815930307063999470947382359228403820088420980405727239141811437377755952653096962298370747586764740522768094766466008336196502135146261662506533672300253435779291410847336285892946380172606504189382819805784057086937044156399105352673819322240790055099013328824212159684397321869390252182826179325270176770996924727422933937239876901812416846728643442194075849271276480203573650440004317730059586266723861121169418676925270292593495666758119637176035056523804725067399740955301734566147335263962608728647321887559177144347729102062442772220823896180644653380522930263459345540502169812050625481087254171444175783106984605695188539769090090935162462423592466311657384236021089170548627187258489205050433842820534685108040255610371993013841387340900219922991337784753329688727250480218804957655566067271959040987946901452469506208448197542688820551708335601153515230170306316371578730070137632423343380116440680012183895189816901968199424453594403377088494585809722230927633879764833748743952327026521055769024054495952537994936126643821799948214100884751060609325063138769174260319232664226988500651101162328614497516998713310438485627739342548387677257974047133003868642228692919690749465603214731549233507687333513472222102931834499074074223979001153964714112796700235297001423508657022356060872421963993637160986133608144252811240675303792484831191351561507929048964939596319737793302308900948078493149937965270326467628532770277267022045219817825360004128140041477581056426414725286846531305629832627469205311168031380956678251451171404072621627862280329200888627276999602293470369539830930807024721265828623120115713089914552863661377658333088575909127016447358227914654736318358900094435227569225161751720705939320882027548281160329907221750402200828496053033231132966803312638322473658440878788262486729890104848288857509034408658447592239564147418567248914199806913503149175875804306366953312482805893298221601605782312692779434847172672028593396786878866506132430154928873893839361013533899981076193153405914769171667652894867304657442572364474067486436171644271667611929805233187861795514373067317456570532751989266008965358153398637361038713785874681007281184579379733636155253150016431264079564994664482044638061150538493551965163470106248582057558791929824701469944895353136656969595687640672571016238106303476756789992381159216253995790936452959466074214219401441611078847035435482526584278748787888441502790338969837731684854601763742378423755499505671775808522831308076756256914583641516943738572260339154700361861248956981427424727915927519314534165281914709399298164287550057435161056031101680157679152049207541415423037494402149545538890138236259641825431674550107354516344428794248235833176600908940104265649520077774456230622707851575840804718515268560402788669965785552239725614816336449488960381423135128508452129981600762583478325524396301564613119190987760149788730826395648163310612184182788407653385891340037741452229765401098190779468930960698109974884931293105241671925726021097583303938712669148852509225117752874924641852133586075274391650667393190785647968003866854221078751588589354644586791727756422415676245004102440622174086806332110525276493361051378668988655727414099613614110568059654522184562874533067490762915284535641208485464082462439876563946926575738962018263382840755422886487669227457062861185417951088196671093308437495838990095312684815534092018403243158166171556632800859151486059648061528206923925767656877629526204946313555807316801722694011003644177517884810267336002190853422739201104171301458629883839360794341923333614302209971046344647216917742937665881747323860958462023380644251472750088191825610819339338701378595569846941431635718352588716121428776883830336011499004284784033829246328310489685921283710071737422870617948788687193283858550439004248734720201432226331687427360477536216723295457327908981261089811126874382024636361116077910994577970125406506398241086219387086548835326668218252815245896440125252230948643439408255607718931704908576178289896316064949026777622401589051570286447603937177311735583040499530481463764786776108616257522568876661651743405120935276132050099474341693990906903139620513923456893651249839217116755385268006961355226529304179382867487062951485708451539951986264835157740024695392295391465978470095243045504205188683783494880311623487821458459470406735204921316841759193484639129983925500417142522816309905023723277061640340810080931605672754982766010557976253929838395104949366042200884720111631336884614444018263113329186086132700132945667695516142447565915246593521002833774963858804764489411008256736558629703961491771560183583666076336217075806068428136513180331288538444182276610379454873931862562147717386130686065311151652522338739868519568729809139765512980351615818306486946951028240830989511928659051303801221616972496356325776927622246889330793546345850611135484706190129852286984428818433364752745441337631299030348393924061048858570116353914162774928445398833202373638707667011194481131556304978367666160565251812490264794491838064946805201895458562265548726249339246702585258362326405225972545434285933194979741818100689404000980508852995245594829195760533556405398308760970920333927911740317320721191388390269416389091630097711528582210068809756440989391196051145045537357811812601102213707719378314857261698900951378416594573478738720777155658790288883626483630622345106341464581916701513452122119006368993784526839513594060570631467471807872551073045864768194966796202046879112006828068529918568049801890616995840113482244666306911267744569571143978606065823403379291339445118327159999551738426657153276365522912859451543172995644221870006864722693951814484586762282161688088192692375667962184837801530580726637257354002182608457139882056031216354518795594712217873022873993836341222484686896944399657259283440660156062832420149553069006010081059127960452643604142953982185657849811504139866203357249977126202511591028183420495276013123792773125055767994982858021384596499924549001572309630240380930134152455649826253008372119054408837318518741618586107291343307192492036135659126380929355048835134857539158934663583116944391472845899819814813439986602757689544478247446610559227707695274189095425873248773830998785441699330215520334740745578451636328330615512443744301308844755755090191915936531753499512802307353116527915416248237665631936192277900525550699031686891978365540947675838208047138046876885293305388605069794931826915017886770690933166556786457891960640615638653799683082798399825788763092860543041036998231580348238514724801065221416298276427249591006637228651615285626075148163263290397686094073226180847073982821072964391515317292051438657412775786953734666759839674945545540383752246646414297606067661883809472186585783033612149696469624657966823198332187423576990575350049527888524905639076296264053371064723281404373180840580846122335829565421013111120307832959776139651729904626884615631662622012509719954806111545058908088044083840818202081668349911957656216619295672200313438988646791797834377886562060203621902835982345312657622105281626101604388675338578900235921107233704692711726707314108828456482493343828036043267772556208038855631053153594683211026282452983527671005689362830543506347989169579983149847291256172134888086828721557145212507351611129552998033522908623985547570451226933857510396408494921622609146408840554981751250963016173412185311196426924087411210609180385090751801571914726355471248304742758839017366491379736116232640236385341323048109590973123675577496664938390271810194726368111295693665296869476929469530783162438633496851181276520792024911643971171099461042600194226647641321995993994355171917743755279012973873062226132547315488468161559616124189545060385741575211361065174583175206932899577423483251687649906489499290785705715448539520417384878412563848877755934941043839135697694906920433493295510569339121188110343120619274276190431312252314137267310124524603257694814335467521750405674474269714561434977995852697198104984735900711232988743621152370557801224491946647355280377201732345107977202128247134548171613097551858660034850317484975488225207564869220964209054794549169477363766198788744294273080296218232042294416452796588494996943750409299876478428243756788677534494424001946305175173854566162843740003838028422863715420268814684335282504619667910747185091996697441833562040133870080390371893127806009312119337225820323909862119057253053664460802854967244271800373755380991773856731004782617464719631222319788081566335975006083640582931163711238687415797493188058368108718149235794862810446687480548039321478153890413846892863305440380831757920693639952412213565014752166352300926760722290942843154703340811059529950813243662705798086547208477061611640007755810104282937290041184252364785946802140158644067598541124429359916610724178806812686005365464555524893646227639767744838620925783205228513513405724887883063282039929049715208242840300415129226194129784118084386624338019991415959818754838350264552568979802981660387292582682221136214424803829369659045923128508788869072259515619918149612017357462967572528829620967040524546771800703644198217936152586134957961834097465206253748056658443235321945758531196781388930633335752850539571299662545225509852703402560239013327413084329272183012544761055217282497614551505444649018908312409611402994991560398075485266381869958954271407235274206275519811236018779167180151065029940311212517491930173483895034374752762253409470509456904569104276060001709860677954779033196988183437153075737317375898276627396444928612226568759557648526527748718628854137251280923534362647373270593834858607375353801729497579380751550555018642184063329059583594656472369414563259125737625116501570478495376285490367536034602525698259491851183752255388407574605037447113716764317477146763722184323628906922461348561412352915024157308100725883385658326250739269787265348526048825929463726164873231059675401456408590680123445498740086797448454938450719693845219239910659629271319954050847464505330206268260030237589681880865672239635739983015117185160022505855689490597117585702265977484844335294532424105558930305075649811717880863304303966847377045056909987717010716028620795693650534092017823281597198586072626188496235150441546082035989504191336646369222417895547920566749646570161170029418776474376683664067567342557164548174863291470059798666492736297160201223817710713287537532460310748932268062941886981959262035251846877981230244906252142292398462103359229780842370359001261546084246547117838058658991795367254863749381874642822727381200397684894248603690181237463505318633069527472731693389592319145398299576363215825910719635459639173721411608001568811603802230301863617592058095046761136746570290686692396558751593836608808211475758755390651769936188586264320711291809581043434547485866217688361590361811808114441127612209886499109982188996925503440217637608911915444189343454895264115511471459022991384911966782734307124065405578531129527460333689766325010638097036811542043609136984037190163630363876720454939908698153778114926987135944644613019261365679059238843637752415157436971484966231684271562554336516958551100199984190750223398559385870900189335975124411310370146620503677387590498261583593057848329248465266908547051426869690793926209971214907900477745543326882872039169720616317832935165284576720487898732406893122600945176687187227504481090253584773818307906991163316874215300879290962780359967498569402277994978514856770933727206322610558944407581800292468506052993644258752648764347140025776476955271910949326264121324141734751463216754349800047568015555865942701488471302362190605732588445683590123563056460867137559814029209314325843614456884213120944311180198116197176418486922386942773578616241494888668842531962150214860428479242099318618342933643591549044311700341111946764951369679378608226662402728724243690227194177521202863839165293402847736071594329361388835560181235928139152166729870879224252004353618632576768669496249113134098468900349324208695828294410892575135758125321562231127542952732480289630755760813384048323308879732531302904657015399684193458928285418424399631803689450991824224283690245671446153676334638861092433838678951873121079980743699642225121537135319253874183574869355496064998784181759632891501218600390145419230155031689872587680653313731638339824551458861329945459889217930677740435851514367218496433873547396122847539807284229269928645724078119966027502633846608237115366237243028541915895223341750831746758357228436736796533343282111193849862828624322950921421913263572561732893641126745513964527263941451896428088255355214711130059709357358292104435462363782959368035278318551363387498414382943200127549142691664718776620694296159376698146115605674205040242136329688086003053491914726452426693658419024801310420329211619818626025973904655747975331990203685721600850604564366042725800268075650600898134208681876256249555163072131166140331899508332554984267732537994718211485710869677119167505474869427146427480145733371436158917988992300537174122366516306366750381612455060884779625662647100758600191057294550399892845806916884264046092082136017892028041394413356577753263328232225321346681108273960887349258781841318620062456063612733625230461352568160076505939226975445361227866149654121162981177754900789977357428265038620435109505609561182821991720799671957471227786867591443308227811454924284098505283823095479130987119639507576396092813148425210819705633809632930993515755479121049945508932113044342841470352642483195473960615065452393249160025021463970473477118878326501219370575449326991010017494932939320446108801335093202504060920942473894717018403763811071579004397978663852199943603300521225252461659941035644429909275558405664124437946954576409251163938162242326211688582306414712788406433270148717858429987723629197053787175365955886794082396554603411159559711529671440110717822591026927127749905743826504646392471295545594199317833538310750831429400851597720596364811872786371004176266116565326293920598692048599990103011108967272618212603694768726639983488209066361504020183548206272538377748334734362160813180350110793249143765435951088724031937101265700934445434194372304065717738766014931837908920314589705041424064327788702046261398624937126204192798098896517583602942124161730770334179293623362381848318593363760806403679047966345714132121129951518523179859375085171153308631989730712761949474887672071924073735374379631194902223724652196840067850090916728787037301798555240974503138385028656481084383813195200565582108010227140991038415280469498287119734821131259883617820008250386314830111004441432107039034354402184934731285048998881669671880607959875892477029090784810427702851591801694836874217640197255971214570206196095232788653274538690544131367229307831594493075078415807426436310885197648716129058682116917937600932162561724551894177430118629520167893884997296065297866175070490027089968355043768919644545679225898332745098171311172572437556471414296818611601330280177974344973537088843990979817184075119240250115204470901414414454560947412771030489629775108327995050865317842874518524883241814011362934459358635869829277561214055118345912024965735455901862015364267920139251398613286681699392948518149712337859993144777110490919917416668163114155462708066458559219179904246629396299699532411024364515800329558189749509416968504561367840787378395771905367038935246021162608406947866564138855644243981864722551871416967444067235372773271589681166804660616819765130194781340118129646318919018556564628210556898895519500176601302628516524763270159905694639023738157873589255670151839262084577234317562571891169368987401911634987869585018145606043346913602554468272384753102487203183724246686684194681200888337173546538356190522409256649745066657545974442942566104550965114560503973503258072754474164513586739335335772305203406294985538328085921868176498370424546519063397639296905653610673438061003318422345603963302043922300039931079616622901921691513763625587423848214967032408608002088457286801924723183683467880857434259656228175912242707203479179641075753273582841890430034280668405434295190759563577975349865661202895587928575753374062947454682748373482318660694708187483492325789352349347184308317925475075828504680266832347629217071712586519457294129816429938729449070409009586362206437775862340990869004459150659741208697652086339298000002116225008005323524328098217133217729663688851579938135028287750596052569960274489493935647669340740976323919389583101928282297815692127557469416513405730115152993016890389750311654110643497797922995008664059068853157244822060435851860615584664685219982677287222585609897367797728614552716576284319857592243080453659359575180151911867006543690546427425997181560176111796823396601931839565027635993536062638634588390505341210782876253067784658343000070536147361624536311021004525396195235088481974856152304754331966570816160422859423471827992646986141275863628137531178013364129964479235851154140476959344161834004019327283433587793493757431430561427462562875060041060841320198464242939117012861138982895593247515469815464850655868609240589562516267331397783279160811848243830676883373638784570611734697912183490244267469021838913661861840554544638755794104622210514501698531420191177180369891562734605167652747203690408398849563164536607627983695789593049176711967377815333453829480207255744094108913078115291247456679624348554212586596424189582236893047689239137450253435598793076913069564829325821322665530686208863903129205582007084127400195013786067595395135433313096992761160573163265403566244669129592801974556338220195020412407269240375685632408100419176256763499976262644619367109597170808304587380595523724107436585755339440298398872147718933696789694601227358873471368179035341262113772130111052342134755690700292120634967180508333802333321625231750131740004565861520452757347111915635997509562366437214039783798099853270088504342720339288825579072415035381649178742075687178111556083677012146602240803266126365455234853408810603973823491615965286244543501262875921279893397234166733034102593354730109708643970445842672135766774539914563741524916862032252695947813882736099789233596769535000816489762588371476816037930821706490446447253776463680955324122088080158885685730772638588954621172120691619926476067505439179989797075694571316221684493184200752772839851860922600640043940187834353051996671067936898965482821496841712395435323694609305868041469002308407525228321660282513864979473345230191276421915082151982556951156515245610941693025214415488440308903497897534829194107964842348367788048361844456065425349499402648729488933876174587988547317886328078160478549615291037739263677468099519713510663213148591145146223164351848307054743745665765799384033347114770619171069128315953268181252660009654704232066472666117202799922411706359505029021433234129651796185079964243263499921528139586963689203725017060455678666618087189433441561835756589040270147006668046080590377029618849706475188112171585909397948979086799693449769993180824204743614627873977621773124500783852947040155292632170007700901365927652515290307461928563609266447850401137295024288952809222415865074042378818438992504120594173843648619117462971395427093844146223428718056503204865592524399930883300599209232082578655217544945069527180685030257662377007697014773842071487200195538734917448388509004457788645953044697558727399978656015973085232134110841789813876248151085853960917064930424624071182596775679084022474016002922650190585802110690973041310355394461894174035513884366046562706713492875016869423693224423486288442431920939210140345575981112198171976352812733199284045992195337743543580665736095778438117476841797865990204189127661723356760742399133555816394332106312059298139227015758284892681266595667397810291403264987481104401058174055795077401819557513878509525785845662082219901182155439721999532757140227087663574853763307521940499162929292641534048514788012306611189627309477328030093683404271504777190324863773635999921474175252878594192988876835894265139633762800066585025915723824272098867534529722625790160379916328071388344012593549732899840838678787451979667268942573081599014064787523139379355847535002533409622512321584221983569641179052309614191637956726498693239786680790402224552916973406477234264632839369074191377727539251875643238291966078253102785323579337675343638533173658218307055291434530502850180157133662434103298731341601536997670161695921061499927289050838046545382044464831847295340920333257941259911547885443491433714006696975396919651983648846146851157575743350209799322431723068293610822804724864828692408682558647316138692048013651528477511486808134548193498057799212694024849989980886574405507992852221774940484221512165904814738467907294330519039076318925432436980437291115556618498891432493618959308275873402064104695890866840197019954910892226451725863064451843371161926531470194597321285731084958344281238563459049492140723792722678677362429004554237880562509257716520010116818087889245238162739902341310259952257107536809598525552156984814755088921429259543177868870282174054036900731838763356539151382668917768427494579948349721196326681725912516782772085193452081094352834637930700612414242593858398256797433177718360016364784304676893434681661074166928057473332975836350770594324184051683050126702869669963409146348893723829907772529442898315978229887671791723998537743669479206506035886154061272499703110359279763966247356000778987797342782350290820966628391296923015228958039968727063550259968511104933588099237499473435610643280585643388739493770847632146318663508539460857285486770533801709407317839155766005424367578194302994189660141694688955439015473262562443901156336628117030479359145093073997588965338916554365909172179527806660723069937643603360742967349507854009145151346416236465206107368596041573787330850571417780733708831593495916983791034070400213677920220532157189195373165242284981458465330089173779146171898425778426235011829210314119728946833773904303014180901230946959250143505694307201533339901572323320757753838479745229232017851902029096983088281213013142702647991822134316309428342792678564931104991662273404970625701268007034289321404088888474982323201130499780846744915912250311655507432678335732791975175159654759822969745366191980243122634426824620851244308845391320346261390401056113062240930117592807119970886781981042059052547908432668298169450417548187683869620509947824531818037069528296371787877137446085366631216026859664177726252244198465771652378710429196830096486922748176258887488284077565585828344923290728795989740894331834813697117754329827675422375166488404493306082301192021940482017011268425422446642470922705146371247858636959388223605089680220945138057847645445888383644371253858571758654420946905950143834504504034941806320860547066977782635525131115536830151479969831808978229641984744730121141238470766023152871526477362793111407431740289887470348923118027683863707151662269311193732025580134208654913274669209050598960075145880199825023047776877318631751400457544005231976082591471660914582239353607326919068551209769818778573151851830687971121371974796871988044868644242442532100607502529060598360824532603907693595989920479374147630567341579371770708331280856597460579767315310935808746655535034291234484583223419175720893576857868475455044341101348031549377447295298946344463836995134035644543911297422022874839719767414038398347608688560570822622799437801261488565099719182434808980832807924495373290095811684177557741692436632780499876828626512180690606141037103025915195036881476160261631449339958418497442617587252448255559347612549395097683028256891671785167379161209890383255763416052826234015426831970685793226006188913498158227110178354837550230262824677061719106549699557534894044101208131448005959436566434048885626775315841224443444978089932079333483568034818679945569740808475220184676087585018655868028615835163627337475834911382096593501633673115813362800104660438895949701768260168002671439118839119227258763833481671392598050568006617735350572530226461204810101246533976619522081995814950618322720864636939970609341943818480593446673496489602581354233849903591621745385093516511640566448198362827117371725254938985332205920246594267414183168575058021762515473578829200707616543336743277867416472891884346940261241312081729932461426331192734858355659333243079743948203973853386493197279042045369247228319064218236756126840949537593535113080939501725711607425460944789375404168238673850256474779570434238900010304520298165346232592608685408731853247565980386009802717755069937841301372727601308918590225220985760759825913765063011152060412098190008617913200015348148218783382667455847021639021601400348494594007750624729812744190431263269404997276756265721809475054661141042154743875616225037492447811602573314365603207233671571044914731503344869389631506340770408620140376612475156220819276295589080637930514181996709285697201488548672615009697920992495973484617406563368041098002905908965829693439098201784726032377351123594438022104618958117602957821812099253141918423737634302492113815199771291419865232559003089086807821427373040022689677892664101012534517410109647463436637054768056650384698490468552030194745739716667126044327509917539550189460444148572714530537634828101928498802422664223622105737013849236226754292274809189451355433681116542349397774638558230556324795940106662000503583987335799811099009684218708844458284074302753804408933577667282123948565487766763972192144882345280181519312854415590130985985178273911177836836853593616174358221660019344346197706279692601378539666418245972669778846605648612682466169402723433689864649430202461000268327353298126666827530414097278552157644976433659326896999725044237306421793604141900782241781138466776420715894561162464891436880636239434935418518752094923912426426872084315603735801217754434571917341954237240690510913900038239870582156114300913934464123932222653340477263210156762249222466546862061626161722388247678164747553459901436291319608316170336447553951919946719993536505253078521212402634021249383269353685768442576937704013406741717282999010624920620378681949136104184364854691381128369469330527094063540192177773283852760851294966748916577757868063000828979499527474060993060769654937463449564198593501390492638531717715826274683717667171430973690044736545546984461906609995001123586338704534944054144620695572251858410808376803441747919795961492963760243225746809339515593292465060746530575329256681694606088324425117014511655158838863638307589227907928546387300295340003640173017773541475236068015162892439622842794001952754151333255101966563971429522729900310616329220093466278766682348767192109670296961538134873153093982582931927563567903128020691223279710788234963450625747493781485151364322382712175573634572013005704736226968862772774317005990013816304854980643417341286323263504412160502292183658589606789572620578457027561804490463755896935825162487226603786861464844431267309919243827232616959170330810779031464956689141705455597769722211874285217589416244053284239342017561501577617140856621095347206830581281496058734527902506063701954898989373510692584200383223541867987238072347241719738118321630229606785483401145389005439349418678064361840734291279210135796278484212636785723206751765691613244771020232645830683596048043660490113800223603168451843430220331442030891113293401546100672399594334138589393431567744574030729792950388295576656840171364697968884866500468300338584002950879320035726016187205444833985413250341366557673747348759339716938421317638519538370072659472898651445973887791463414253292897279876398873999140239901560713489648957995101407332219353427082896009767990810752659725518137472288271388144323746694261845603162729215416794126133379501846550820200879092831177915719228837079014894473862139685526245551114319248238614568100253920662926930310211774586384470961438725202735648604197782916255669461973412153988426428388611222324903288235002889789373768750928431052946534689442933703378533058761971237477508860825553236260713097667366842485233198982296516463196574825125590995057110960029241652986830484228237015033298446576309073859995172962728706176235377168249053990376349972746258453064927974136035705337419624795590519405171281436177396420560873374748554638619856565031193838295490167120172904714045445092540153638660331179498487288283851030264522864099621386867112036758945066225024749369477491843906880392563838499009124324130688221454089313418365955021057971534209769293601058829259449052667677255496893303281391401174774201824667353343493198829266340112322137298748789046047916985881527319194632716959960944487620183444906928668511798614450257347566573460963770956029343948114580571258464661479638853358858028601862729764958515429619492729591860800022259016480380046583675959519118801458363947141131575200289853648476209605832895466422011918055664668544658591621619042339030653895444146355954484016644645976706213402463853922631956367710204070161660357065501260787636411206191714046301640593570295940265707765546532685594156208279333909637109182672305344328986422640884143407975967702525551352250702112626028415127494615496054189010124822950441356980016174477795158077620704879932882484180562304951842549215475593401416156561236276655861181620809409461469056218345037232735583006016570956896861190982976953614117320001772147839967492252784865265072066182210445433620401204182934362636832236492322225885829485086410365491501846554932797043291030171645795915508545945444964621939068715888512851149449277055014594736303496292555019522251858767346701082553981736883787273944784015535740444092459082373030431965196289487955295604460904751121702488259844368849822006928284743592432029814174347818223225012140835674611590259700786352653190263859441390652925609640835139396568290223888832807162025420664407437521946184232436246533398036920309113139622633673183239955173525023438059930335363858804315571691294759150849549030450507891646522890450999445009523969268651276247841750406572351815695974166812510349040012815524727815715260567846917881929556131054729246594158335121462838189316671975688683436046451019908064991584317566763594346432643994831217508544716709891918674157297184082165322076478254095844751608603476366091970951086365263515954135562111664520844120268580445595550195832800695036814881037260271772659172174749870359323353023289416317385084528634685754561707275807705040110098103653032494186677007163443835944338528001782028546868664908313859618554474107741153371213281457757717006960991986183434063887461836270143456624887812671733478067069947859757695619812755320990201213845639792051961541423369610360184593290488123791193004571695621016506269355363153443886684189389550153746585858281153651338781710845757837368398870798220534351830127623432793936761414691645743904604089935797987064285716472590862385858147885617898390502828683719711586819960522912371494729365396064613287147853470983261271479746134281511059610844093775607819452092967881831389408620426555984728566460093519909286669610499017280334647837701635492725527400422615633338555971908600342918142553269804893074662958251135593342954207496556351505838190593917471715798283864293816813049368373222456205115055504507635631087239562449855210022701172646067127511031115401577517848222470259939857880997064484596450253194778184725240398403227084496602216928227094515341123206157371890160557543050083378369567298063840959930032016328366628155810539914990074149417851284843432356598851385851940110747305246609808910682369113702313524864876447991072280060454491383081097131523786002513100467726760800396514039490760381831749401406477839490419866400523635427370694900421378966275681235138160368367253485390813114820104292776315289782499241229182799915029947268043326396093247069410447847678360838459158471892698095942093192252016688462248809700408537579580076429059361105849488707988547138985669841360523871840919489348108398857241469858677815602992793618077063549075956687728719839215694003468301411286802719435787365741903410677225370305190817011653352674448929857573434042263033247017992205085929038549996858916633552039781525724428717710757453778642997022931368375779824910225024589945233112082137608871840779610269215312699932492982743705760624653568246985263694327332467435687003091729124458095026552599023294359212673079534215020396019482028250028525452798258025430486364944604071851566425099021574665403325535703986967734544169739444699806906201016717475378612029915352718423117303805497658704197411740768378822437596524349750594185922426668348875944472898794749805698471727217508561768102051849380887628167669191506646487216494360071024249286483590955944882368223420034563353338522436045492929814875779790656162771025701653951358737405594758611207969286246414607634968359656294459000691062665453767175338206303801272006541575688130994470470653304965591450901604738086044616431935991293488253882910654750124367496624674570654494739755049378974310482044405931334594664726622813352630363500225214192158190207086959638729310184449895533600054247970017962220746250582545648388533934812518749155522460478734635276631581892203666857568047681915028626192285654032039539901915660614111681154774685542645183021367531993582558218540862478343928411580778949223005288918392224824191834961839636408364351514585652768812491076959934878968178571923752605190708203124968699885036917638333962074344432331564149677162070529050510193646490435196159931877516527318378191996769513250814342450112538453149362345110487874569153210749923453669119320459267335878432626037282555874066269563977959194475809903998766426177200773783451841759130545798885096855667036369640490199898854115017483551568406987179339600175865182770614844034038433376706211383164503092640828627600538169228440302852162061538371237922270300871312482162246616208754495987298267841936668298461419231401044066345808631213743105906589995061911586671112063569218890384084525202140650742140969802045762456036729579190461733647865492354725651229677807226643039500908436611701919932990327841542661161877605226654871409104027897894710791005308808605039771884724703313037568814981072811381335513449390005917433871999511384476903551093177015222365633647205782289989212447823298006590985252740968875398898239200308330191639070992789348190439217402449553935865355076932233418197799699329035749341150179385239527122382297283591709262110086727653568319078780346773450454711407910704552100544855966449308770417727470260154294819700485569167033011247491587909211383902309872783941703467958706953013996368423180221745260280158405820597508598270397078155826158664451697227284542890334700907224626556171168280956935495048173091101264360807439660117560252496692358463997464791207930652442256140450662711650317268766778049046241054920439359207418651389732155919611043405907529075995107742190008452298125042928663734731989689335461868318423429321135879183894910314863517620171811399939901467222240331680440494438578129999033432943400433382100873786136243533358908452225784088367388482968507512406881438889435516594288567961962139596119699761751375812347785756441258426711974803367228944419156269502479941039120431766110027154403777604594173321159535174387376876234711225599504368648538314864383691864337691589515847408169392015915523174374949255285148518595431789505910577592096393584616751841350067717654835509592149096990323773376162194003936843215476787913413028954223727615661545962308381035497371657596557145482948940450477491545458121834968419090803246134789172667089058533922005395781210437045522524893718955848287294823184245896927151367913673977494082541229722581369017259358570790667297344382642563872017903867068635790122564781406864812717769038384438167928309079537129082185482619490050686462198125026512322571745707088193940980202492072897762121889916762165595081552870099581537319618838496234219246722964293627034671535124663405497103731064617022174481824266217520753451960537046273262149308265011995195458606863548754425282643895649006491214515727963068855930389685554376596810578373236558662549567335299235122664290743214097554504231919372647346717638044367719657790399382749578932855467015414646142902822944416034705221257147538387079657616958550442157299349311235888581633164908435458233376388134638119757249965837171962377528698399047464618885387521376100624430701303504060602681301256053068865326219763057374086079303828988615178283607431752006953644521527674372672543059182366782552049368869240713105149319127845445388750519505495533511378573551651083822664283817904927642341001004533832998262529913188618993703208738443305318679686965212171495726222003100124726965053958376846943149438213876611232959593704336358716835985531728858696054606056391251455920790436063648361098940111503754467090255086409512878923510016671082846525760009390455739899765147248494306600719223616034019919862744429156091458268773834880768856681978082689933634409757496604327636998826346860497468377872567171885179953674763476556125973186774573612916344510363075174571392474752948273668042625422234853618256491678884402349380163375918287375132209522105488407525151292557688913599099397056033732098952039898210653686077377860108088643639491585144842226683812563857389890448845667110128666170210513141392534572886519071066088607213946732454700397932521667932534845136108665721043599272700919174131413872746816082521950785850025765448488643956477724023071837652442326656211693739020069084385177614330166784998499370221769389747092027457925867315006195361716563095112322102068158659070654842549195044708677424510192211514961579234415567746063946548055964024100539395998896005433964926960785766282612902601642937724161451169011530782900127237758277561308939909420645311315477043974418534941913915707089845890672648417796915918134470916845822138786865419278959539322053032240787641059525221793332131862207220851091012583978478865560418083652217252339934937889359207442630693954765341171058930357699348686662693252445276853288653485872529710241835980146276312226801025153460036948675014711239750336221408035222413941910542627571624809510668219653917400191367623237974967725764744300864574304636088864116182048336863893865607832603419674626074050740376120368923847099909008626832938853734973792377217270822673741207612230029260265995380221541973226698190430643025143573592263501975105896303928026460436251379711791353707508968710061842750720922684438995913237472702928022243796098806958421242907437844661783322951360953021822569867444694556436543866436041381696548657832785631091948774356403564874824807025308529280432802574020969068639346541954313246952083799456266580260500455016171169139003678441117879901669257999363288236104017676768367668469627327085169079471389949602436335497168925961816253737479986515620430161220242238874779009702078378237738915938374436595163783825219252810752256356609079487394402293223952237074120819057053226732970421389281518739239601471469896996811577378868673366637398945174847288616008192752829190744937645757986925482444343028991596696993871922376767230956086685624467413170258104958668392735737788034562905884460844882435499409857971162915239157836567201143486672090334670069546589280065401797174839201771128008853481463031525608901373881038171718195603705327585489215570483488477631894874406558516363833790517853648893015573243203337863404160250494116646282307005491996861433195477220020510359609258175484723296529675399086945474027790222030223854343114317314417128329059641837406368558135322963264345859678249709361308149703185304283230517203258270274609681763602473719346172424120352121478377008606646355571311047904304748340813581189920920476827936550333599053116030949057621087283596179461690525505255330008442407867698530188287855288810096686508166577520171674604117130467136479486536031172137722593828495238130751951964472680165242850910751135720494796346097742570520451805042194628747539716317573801182465010648817836236512083970638608666892128194925721547614394861691307988887467273194371813108673647019054945757748580165497028681430238343350568990285337211122150952828218171787037719345037883556713306719813883770032189293512972805341702259325405952904709938055982152544164234248043944534867086050704292708270120243365696914463910103383477219562111021504291226744521134688721322203786105588233614852639028376199167521089024545964225836874183879422220019027970801503469181560867850093535425479489406422980068323987581454630447404607560896516215793039143295998816072081993164429702586388941352081597088990050790631978874280016296618875303055113445589171545124506569433657342014405410606273778532964696898977697054331729175776794036177046947112047420322908676515680672911464631801641914019910184587714393730559757923011776745987557169645407904526271574046779324522401330266823889545422114424996026184053637766451837695938442667063586530809680913757334927744113383811063722080454982010534938271007132864878019994668844700573026074442658051874913526316380533839498876777302371977046065880852503054717144146569175244926871331504537426038441258049443998166432315811261998743123822080410766206789866349122234949146137111247302559941683462556899071464505762106541571575469746862059946558270732724966860166160068610871386221809257002147717430793438831174170674445653466109014610417954681642951068079020215845485604816336744398743530450655390071359359251300469745610382601817523025159877718777897317642435745425735581977917123340114099315975324783750570116042736816698601506206834401154814411054769125086579749227323499544653300187674092246560363204283503299773441551635122626478749436791845247458811660944204745040721087084227045845444021044449267033334835801115978319961192531568691114052356465897500857543684789433772168295207753388526715268211775710830644106231960314189723625265618001920806840576878811818921901971747563344541688999150108615364035122499230252889054343319141091831586117892422033180680077017037701033283768316512367099855975632147506670605869821701657655841813111910624766803522999218643805987692908727601706268905082483007558337085742448610225887103150534040229836139014963284953474794282851941003329268307614902952362925792737224377072215419530460331740943604024255000138405116268410756009385156547619412550256117721603385989543474544984041686414394483836319289003101463897177130273716635936222234931919473567481191837296345165687902531985318326001214807770127645922656800842589570255006441122849241133663683116131142628514190617867484593097936000216576626546858521790414844272883362102678709245424614831463777838820513397079620179761786421205442561753993152158784210514300732609942674729680457197681056592975114684435647342531055641114930484724293233930258663154648514039095770281503522108430302803961791333813282851197734238951732199087329398160761857316305948952687640360869950097568010233443585291067327813516994586332204628582739383090207257466219009016071974080182791857157621452027412523617431658465720635905845362326188549312178932575780330705954716191818171818252282857767123333446186461833398253657192052090928244338942189897089653311602588244891150113731893965142517469711589648842517920174216420117542282177190424733855324455689660903536288355708340827223452242770158436779005208523789192711895759090906527500045100843742160413863972341117520450992259781169111306866732073090543619682688761698878211617859635773534172286947819684343317071411294449703431231495379746307667551865187331636235044316237107006230232776400383097225234539202903901216156529017707954231483527428624667847767348922212644931996762219788248676065010042619740934984028115804709587794529104133832463940578733910472208144431918794633089306467452828835300781384653636843054665063599460109373845160070141574962425775690090417612498259044269445649262320840851382649398583397023082020598878194718031337368809683080179154131452057178289201920821063407058016249268724901506124103581434712614002708549217464983841534313833399908081242976279893475672833167119825852140709868197658029251393677044813318973438473619796301762867337745619971076659719710499860955361814094394277846441200711533505483478750285795270492989204063692889224029883430130447802448141675599736058604025749322818977609822324354897071614848267576421268136234737431478516897143484540085160669242994024373238551088070853219201901096604762705761754722576848155694580221094381144111351318612504846596476412590028945434060902276824154360352053828912435981731506234592177019662899212246318485572613998224710388231929935979431480107520107482614414816480999007358868038743866280065424777446885174169984101270784821323693955842253769426234722221444751460442412350955994951374711401681273338800181025928903993108228202289372443580723847110781635799631953578080183488360888548165329232605813761906919549918477747883586523409143292724840382372619929412261344878641752569688504985952460201721391711833685117021396680159170099244597723671527115779601660313007937089424228619394129221198818738578169633573548209629878223321848274502133888163705045801964167591599461626191010072427515414886368890432659048708359208886717522913089931840516825312823054866290380627529360381275954054301515871583895216665716319954818589748189697646557824857529436460675794312458807052663968367049524711314542616973857790871105212086715960303217131155807604698998133659452550267326315153541916691185375145905467521282936614166716354231821029855600240051142821737405948414691259325975851546219657139598572872623500036023558223463261647675889329137873752335733156918620119958094443282078740499557926296171700771224888714204304522043693492526814411072035862645219517948976838324381567080594551959097160292724364493143100413864772768863502212278584110076755197428226422622275182967137657066619222443792474102966713634618523101951165099979957361699549018349675339048624612734914187184963844497512649047027476433845906170855743926850561184281642476162107867255686373822404215725394711244054400646677412532809466295646347849809643682505465284908434202983830985314507860216632048586072800540842455723554594328111340733624397470652967708834130025848870335326346968014892442975573458534276327093645825151543015285503389923704193972189253640551583188784719729072232910068359339523091501721217198989249021261019221209474259630571561877062748596042479553924277026241193733235953157044561854470262295221356358488073216313438069573429850011368103684378772524015422263741686659934472814566094390823786968549826113852817575040999288678655931237509484078858139149178360895572974071510530494931491003447955233796502244998698613742135253412373340144988177824740795229659827191260219491422483933540569572254904632917902395973975715595987172799725418763601704075031116642046335546411185613098203570251297733679632732792171255180925880982049921849766038023575567004253138637352597287974984662872692191260171649117406747363089432294669443412603069711587444266425713102917709295781955171717768773313738340773265886674526627201313763280971846584564093735336009097334404970883031185480702285989988455379031451186555956578276938852021319955558584934587055027902189890818439819263013981816430352483430548274744931027130916125386543074476224610232204869609799112754334992450793228051925917004518630426681154752938565944213445748049605077452138590160205073495292495219986184633779584885243027566952222238498620591122343643777268563784001530305009749158521095406433998566350462725705280372708319490206803713693963425216665701658873606068647485295922044281157802900727223437212016355889109775374976306645885104287273931540031527966380973906618549241769514515123187406023473366937304653572535336240489772482303313348405899436731711186039466458091394179013476778078920807651236820929294361483453870197471155065051919868523515368947252378045795566690674848987018096619847085521114489840204233348208837054767166805784477939465286162444829248346543766866954866496393435518741833357243957322747375829648537613652523529380302844146603444348160911645758124528654921430249766516860624059906512138028470017572806696993607665452643713473349332225425310809392488163621905540257478929064015937986497497593900847443231498874950623144550464788410258338913329584001170974828531801829519507758038109604605084736908673843484841834756920730006057078005486537347262430648823201449733973890084584056807540367760562759543007070924027139167895494953402124005183342925043601362485683588933533791834832191671698255014554976158156355139236996792164412683101453447044407342954454029505868374595677637506406248503832190139550093658874342383069044586027447679637236469900472378449291067681629429010050712547680701492771498505460779125406449835410022425682502614601340071938959319420618203774208389390642681789002640580608111912822012485274884763982103463362850550842590937697043226479921535246848884292820706217564808136443848135737143852121076330389234064500165692873463454314551792695524262935474283662061521650101058767717401484881047061836799040821242447745053952925320279088613331897055644124701710471435950713209348119107919829413276286418465882857492124848215336084833265029386366272195687384836366216456515546482702827525426328675365593195055792284031576251515367290652656683879441192475818649124022531887756235842470239055588810082338056784049791169557641424431592591709382407506312389847706567261583793095831860868080772945980827482544895896393427783751531348198869135983423964003848534657044263041740723517113135400455466813341323040812183347441823638198712246153001191874413697762799704385047236325779992964732285355720920006257545617640600983951017756647020119157393707862155946703044739501008414916842456616686245631925367369740265351264511665453103729455302088662979150675993933935978663150014982774607724827960341106372751074311895396825592521039768061384419334912267014290990146801973961864819557256190193089794404480061357727586499577031356767017487623175772031722955606084093815015504321571659359634692085182280438817628808483714680812573704549242423398075659479229237993882472213912099802189276001735392309138946451324357869993115550890363083881140316776894255180450356485530637784293815818638215162053409605422016843728315004552722016869188597048193642878912735601670113637778656600521451415208283713153780926581976868101316280939878372059575001297662908594611907028552912509988370113782719972130821101700679862073312048196701940457215611145385897012760796477968625278676938119850949892727704434485323839129126843077818664344117723840129803433633018382822404084425832754017811489420683210368490430831752335506098846998047074838536486876863742025679849446902669221760211432493707416007392138879163541371564199193292392203255556000093148027169275648897457156024743740715556441955151740917203681030193854033444171731593751619785840457940714107952864773975982287145435023560335998868759581123205922235408559058521671015050579081309324176767372677972670123912341533303443386302866094737555416670093271642647006185369081315343530191047619752189557559693540940767377959645854869553452108980040426173717522051606385424783447095774991586638356475420339196486250372259370653876500657935091850283079568885660083435196207867145368689257479169758912927753911909927095670558827218718111608533519501974308585059168601483874162268447449309855827893017089283920566655935631551083055905149619584205015828980208643907717851076290963680399685180543027135151345114077275011519407784133573248728793121889622275673057081976027334332631060528986177772939583155442390686291242734166309666865358200158481078128978023790890020281796653814351033858741943471224977949262087223523167314736653110116172805865493107285481339317925159312345480278029136718600877370306936469288383294245891816129754698978985415245203291891500904469409930994292868124051447151597525362398192082577593743799609934605044467381058428322495683770845509400645786030702155998321298710484174217317841813862566155010513443765568971980673978474393602411675421800566269928952725092500987672427701580217023586617683660091168373301006206793340454274139835643058306770861023410878122811790082960005201428423569015732762687318440290123698545673456551164417342580957832656209901323589610131057599015362019839558866834006992488590692779678727504981395518286155845809679779114170172877133576471372637158968131633064932316365228788218552951504867231156472691553359697404470509857034358756560086185795157732954928961512818636272854930319445142938017076595929680666984324799396619985899156639859963728359068848323222788598469497633752452473094662694199957713519756620849545877092847093143348863715420925009247010880222108470828264496770733686119967355161839719878493460452056595833562814932622716225352457465399045574837771768184813720342495803606322678780055483905226022017671721103081225958704027456822397217427302473484831373491257364718501142428528789694276510454256855642194045052213625715206547216229753426814566324982725853751710472430391996248121441617954690130082072761521127789266152393664207378750842880424110134628761227658818025931439582742606590466318805578318594177605859284259486954732797788067517916239782836284512503385070063705432186516671856500054188920192465214086598187975227000038014645982783548402910113099932839314827133363107794981878868598319291859867047903226812045477976040813447058035508151762409701697055458376626924150872215551425097089750603773069414335513546065249819588195997866397810608581473296666253909052414505233277703038425590729463571593636962349549263182342958223736594629849359044382639671920676388656534456327270030729395576613690624753692356880183697127334554651971258245766026465567128506294351405444234617512960546225887284473075636964313766695597575681535202585194665942967432104182987930484470856616750800835103473360992023828793782497321166904974533972690114733570655666046139594599227215217217965029311397563519461526133523696778109201628981501010701411809622072894634691420686924109776480893680514475348507731560644140973213507693431026649643006463932547253592608108823555710024071866665826630963967520793773253820669452587200244768616999602600902973788062003577957135756013207560651912219787517616905378529630829161026618791600268671989591246788684490954122544638368867259111304175543414348085650281683873539377257788867794715997488559572829433369267866994525237591200137990905519392437913113498320381203068826987452185019992039245089095747624411668049313050294771483720516345057132545702350376615912048081784845103282525384718737467888665806534511745695986987326110342367835590510293719996950701049201136391876187645125423229721767126941985162774511750913801106964300953822146929016776205806474589686135859184797350093659223573484205762794018598806414303954937048700365650979810761314388228271273270219820344406523904114926460994814561863875934970887172974493300010563814173288821310386630751219224664749796875144611431133342431354202827407409725101500615578598250502564208974489158783741924534626749506070380369944426428779328185334901836717459294490044385621981144988796758131346600075814011902416375271976278416446951256346908197655573320960137239101662943576484802079192248216277800727435085590799087289106147685684850570036257187262094141374611121030630405048606273589573011891641401277137403328638274222827288294997722558838114250579178570744346616475824566753644736664603177095301818666306641481051059810662318878644902905048448142719426008992344135798090797243370167636853233424039955541788305809276188002551903545950314330460992768122342151022247288442483564063138154836333202934762302716610339673920448417191517719778048056893016266582173381454196837490005225674476154439539235740531735723368684011080633909094429912867583845649679397407671770204898713090812166732797478438465089294037359229510460227851393497317065564267532230110096512090143428875502308383338829001224175742008613780711205511482403004192262925422891227025464168762341145538506592945723476135904144865526311167097503596761866272642080882645761706401084931944081245454537989698252174179435451390280665249766586619244158577042009557258726619453306967820825907626454533090357821765333666806441991431311139608449685583636567199460820780243145752568231835898287418842072551633990962854978767963040857814094968847970206730637133313635407909536438330341811405955420497673519358252462794826247792990019021802115418364358626978210138332216220098871181173068668706862895271572782416615157333913355478155068580036502269038899405946370443575659964778344406430412025544663737397481058552184056655990960996444525114789912037632313817963735920846604805027014112616919744046709325050042502669859868098767110375519834402843511697277448582929535016150656068234519480389496091678932414625605559394168823062414446856705904158610627002079259144234945136356170886648604093783696580059724546423402719775616816032738521928513509040741804317924779045615849464098638931694863523951422414107931456049816558009536370160679284346385022334866879279899288863203743715168405779131779506972410406858784494319402729014205061237692664788913147240477699407626690203064972090357604738765552112576072032876009078670415755435510622512036796261235652707672297429995456923729601174880161933975437090819236715171148306296823353659609431847396910577043250271459227689404255143528494565983546432697060914895629988978447665225048338912065564875410285026856986456300393416853801655923288284938720639175411345691073017765426838225916518716448895824075568661503896937512808164801402015667175794702852383575558955595438915473032431227965536426738005372396243170008351761679336878762034917514301467979006558325117452052973976542850367807069433628806303296703592402544196478942839368630530378551494175386003254961225465634368695578411600668599053105286236839195457016462896767064585047838616858467636763015441547562574073112939887858648470289753007313341721181494732933968886986346653274444245789699768841179693074582454742159421977156479256978954314213856900044715087140737572486480446709456677211453367133475957237637832312622516144991891822139585703916978650038785466016693792813692938465435283960007394331684280261844309871390339853840944397325814404653198295740224505860274960870495875717393980563109768367225692207724924739402499142886820395839456528896117087940594788046420083602096413657844959163790508361744901172849845028744672208800508718955343688402716266116574659150425591682162415212893026625664035753087037798805860340051023858709759753245007321186700628843009792812549208337653173294703158701451115051032034807957628923886391447902618404021908986391327031383672386805705438612581449088601408507752336062879020771000039631192554226267409729341759229852501326809169631068978530683243506249582740355426736779892330901358101701211116711209518782956658040311984469858453030678652654553722044480772571186398341804101037613918479538686583458754936650974333715389212426087997224309714768529821993715429639096218349676616783366140408454574963066579977157417481579481496523914910151257377019723187930225726859842269734640870994000687536270148388578120144466780802245861559674257678361545975802524552162190494890140029046600519179657679567680790932052135462780657340866351592359761156878354050398619176909425096007392666237021233583926366418143994678098776378835216503054235543475879903200869937622291307451406848193045307209529695331187954938376656630856638341468216544894349596660530083166735363332040350659957022011045330452625446628982027411880702801616822324373765861116498373768996705453023819149790500011409172532656122134755112603413991951757079741386288327933638355251168012260957016214445424771908024181798862406270292624584557386427104860007654524839774361278373828562177272978389733678510756180402726860433156093246289828488629916586280245874903449628298903487913172686022644890483356153823582131330999860473020432920297525680488740487694589374958350030056326366076776331738930638422454858903073826930012486625854791894813773177228888697409008220178022015169032560135479078734398338289637375706912352485192908731890105775491739125599171580956359036401629124721336629842074529229025126028265857248278448219772341306784155426401155810161784502128322617288305187869111483321680249480897074550221022948062907821806006333575487385966129918940641779961566707654084801892470074871562435866986185683844321517191898718713711542620005719421349446293051041068678830707945433080836036002357729321302666245681140399380219328428093240709034962097420208731403590908036026334869727770415649794138279193616728206018597437658897046520544373920171611070671239696796112569737393534693553313717582381642703625486889549246907524499868313045468434040446945423682601913206451867133965002926489525954570578443251063299719253331942305435767152147655268923359114649696779738954256025375663828884517587570364620537229116388849426284312537529295141035864727251548120343094542643431704140195297762404872165987017576610527061735864577252827189944807644335980948747687372782034653542630489428640759838333843513626857767622208470183771161786834429131924770489447139857896057245837478287351166204325241133229686847348156000949526333703248997207853082481664672176362964023708542400181794482695600895628616475351873033275110267399564923276629150687851612068315287203575774419798471706777904103816350221148637008116408274410808737750722496457939882082558139859320999046166107345385197915581321706930168387019964218550168278647022234303709563194253103913256081628439511134258007478236384185324554219758204558914031928594685258726603348073618065278845799961719840570568146966435233203715407868708622462982141690017105525646220106570091023251046940757614274909278878359303057618432633711526887175249431080449092268934645842197730088542642545495966694761507397274624476494324352488226306337776501463092425643148630607757816691880572962066461094346762659996995074320588017218797233030901121802621567810586474142464792445544134785550549420305261052652493003077080492933196143151448105221359820509953367245892330714672533285935503565454982040558324878873590120717464308074605185897707516302342911971399063068348630890964825114413107934892716991806385863526832159024426380283904141149772190279981047139927535483090322511573384497384646905031701088291269870717228977044762772421083377245963052200171691016541923813876223425681132116515513247233192449130348324753572627588955899229004145353352703891391304025861426803258038895880713076517995279516215354423644141202086966352813947519480705031907194752092145822473665564643104253122389151203860986175887094609806369968832040877477179753709449277644917209049342554444486456836234375870842305317761155205336323831758171833223767241254503690872236461976803236947411101425674832567228255982818165954448855738168423667026830622690029731174228315448039997601645793951584354579862672167199914967714258160759084222483539492119498632507256199813419841764888309377386766711575852581056289162088032931134982525064749329092700512616293699921149395373752420457537972814563309562669563216162044954545390962821725786715529830140527477324865604113867068975592728672755191551332087668599632688909420894832315422942043647151006791523707467289862526477942298948234426484287705339226887524792034641348923587075371411441922472577232771622349340608795563864899174052827867948233680763428960397346181029273080727967818411937309861267040161616334371277173062398578078280031324131584585271967139433615094702503038701791601363646365400994428941235796554452747337485537907231855057439068385077781756052965810242351658112049765767529046633766055381226933058491109673092409455799306887794950418311879122552498206662403369974751270558266372079334247487151601416400712530494778172975471725042446517610437568928362816533164943940489325434688122124597419866843940516496940365107546763420971899682679642668112434998988938911338652195272172133142199082253396253268680284219421839498678935225098088208796405199478620119758649998333824161434035531853455355949551614181612151996416822659365738888193122870768643435993185750583236405297477114018740313576088926206698505199867460050355410451602516362364972773927587618649745384728301603614751048853624299788977106314301717085818497213323462098708990138054678335563633268307041982983038034485595953155033633585976426981562359383295416312977367360761007391149699338644375304721208815061519757242557845494542936786275880460858107360294578937852556044548679950417640336450959060669975578146273040743548249293204783670914801424486279169609097256999218028966933974240164132535019191275374625145579436236523713885481321388937173385268904847609539745369696673531736989500999617717306778482290346942747522710489186037501711423245923488458428381182281623486020351424966137986804204202195025446361303059097381763231513715544915264466712758208268174166794818422562627484421374655622549043242496915605183495954226149910453070225686310412456726626811721882450733638440783995770185049012862193550253904891806143568748156867294792531134663654124309208488603505765101192402122241765620373386745096023736962204376851496945098988769684065118303063844759893853645848026482179180803211879615040471779130926053120966357187063241711094587707170350602696494145436938961839423146488119743846582630330990532371179446035772676539673060213719175863687288310912826114279141508072235977168601790465481271626364915081082983518115862007245728402493476322951454431811306525540453103649487109563406903700713468179703024473740238754787706820234300773188639569151138502369897170804553495295439511023684155126997986397359805446638079490812496058527611309169695821922901896882372650758762109028469351231663292403279777033721728423054631060164150217506528898060718676644377859481545120694353638234617111001692941694851073453138813755617638539244757094102450430876965901197138486818485430399670885859004705167008282601847180943150018318441089645765339182326408911511980457956346193577508828606671960054597289359801503448552775180452684389948002248545725493243343033600599182309074000351121392968044131827473712140933315030041096413275909132443736912121922874564921503987919920290836537451750067723365320022160683835529585699432999963164753360144357787921256016791608011598653906850468482731739636748965583107498254860970502266272943085392998063384545171563969618925900341200143029455948202026571778287121239115371446573320313640283111803465690784914798752442029841210409043988397258705820778724245431506466374421721176568258149639350910055250272095065463251858412243354540534568753566853521406829908096153826787509940841747397017696214394691682085142591434241144891126346781153317191134327559850872835366702111961746405331363960829325522555821483419499608551253900989335244554462400327988844913192597943880579213513638372499188030152641421803285040216839002571527474237686569205346616507614336955082036362356967433710034512776608268444604943778495355086554876706520621329938274003063498884985921681572499104025816459834240250090685018022707599134038289248721669447400400551596403937905458096950660498336883360599104504943068147314421192194773196752916024074588909405379307064363304910594712097490579325428515111570351537505113009247276307304192374593965982934319327945594869333462060750442411571484723731543910836300020338558243348122476685047041294111128825770597980444934848631638576239093208262415946256143038031971254773876166925173192978408499867324100414226488817483929854389724795218797340689098339233682419229019986266976468750402759136404449766109303374502105050342598893285592729309693497363781554943038196538152201653440833845000181238791408348037088704006516097172349069274831106007953308623862821618792667345596137417566789203810080011137035498633390532350605644327891695567320671434679926465523330541918604275727605757375496001620416507389221630845360496254215527138721587350660616986883712024355292186209588178292097448536354802761790298678098407418989118788045006539195990357095422404012419485080812661657356500732059606384014057598147669118863286329228214921366597479931851267541026947320578377814622139971088600863067409487098036669203154582624614678536094647802772999690988599484990970479724379182327992045986619299246421297186821341837341963229150030992944924575104448314599540482866946436888125416476278913500588248665378957558015410004641063498742564307433690091769331661264372708592632867354954273503300308927308613416760933035533068814862916421035861216011717185280082865115812602991391082411167436821661641242729829926260220533232845983978848110809371272303886932815331390125378634867853348856089147250732681247785992003335891249312105160847237465718199320984588410550174789521896171587453807346207024174796020463538426301263887987087811235242768470732801721905307366400102611401294035996587889583694963566076394872916344927015483257506309326793533968052798881737970334388984594420559122760448039571941419079597537512878234473373595965022377157677422608802450926329831262550877246508567357707031612913345969077367989319554189322028234016965288120465814623147782327997539830895879678932856559855055668632008797649949860829292249409494307723322363733675271414814645552339795738490618987175047055331791882059369565392548000826786897296994246332419856227856213557729277739321935556709739849659056498524815312943811430923111452518712440756094731428837497333531105997847182157885739648914931516736665970512362597600153935428182130323957882375276098714878158956331595355977183095868763441392240547969692937417412990570520397996943699328654002938304139749144781965976463137242816853545379084723679721765431376982297412684655031245213471473411002692008625698960628596050041417082378853330235520885992148736015619339359565477917198733694777190687525946698032432129848332087569258382183729817452205068985601874223279664168042618892530281731659151002754848873743426953175552525546349909012673859236020156973666100730026591531586653512915635909346694732540676969301656900552887398888527719254335934472207117852190178252459526621805281773113396037168801142474030001810177323475321551918804978843828947532267575460865138336016781306170379345041679198068682389536194747078347543013826549407653405739342076517298277857246147855717059722914403715046002603523506724283191981741470334645524612860048295679641997664875116896640940802811859449909138485036136348302322704232733805757764785758719656540210982080881174315284796040165598750305320317451396428126500125180865040855423449912949216413567941182568070675815733619598501557142571413282231995816931652103840728617257449751710405865042704222030262941686623405803781626988656917952797740717041681393200806159818539364878916074640096611173769355335532029691339969457117813796715130128604663097152513487057200722544634074045346524027994869360926590103176891121466142583445756349890400218607650431218460570632676761603834841068052414889582967613624879921359023831360945382899946265399217954940653267334189118539407375724343805015895712541725352199714294821332946334457089047581619003817247597188805118981883803722828079899347947064107164718118479020174906750265281612522111396861061465711799929024199989776369811000267432249653234311658640175547878517039310642295128354405779033534021111308546900680160213515743512383672055195998173928051041189971231450925095682035767028705714445816194322234877205303473638004229395666078132057087784736859796750805990225049516866542639833161048611168121232493889546938742689305117882070536544529732072040764184564241062732898532602742955993935971322549349414392880887646180589338100812527129964133460611305507508186023867011105613788805140643238235700411947393540568509719981444962944720640853086870016244909340780406428006611859842873105804606207439563445990871973077166070476664550842454365522433814596044140261653801637570100045529718881902548790124928797253368043549773170812725965336109247459987148505060080779634620710499017813783932669837205457753898969734239742710619704135309082691333066283173099775989384440555502935931670551203370752741181905869156326510015110381099169864867258952366133417793955446075135645273059505111209885178789559489348900989405164202520614098608722839141469313404587732787802256055832960009266064129175879893515836659171907037873021663493447864056211489629020884161422770684512139957429229992586436075835591637485206275915248893807476505257378805996946225706407792444398213135979594758085570265041934372223181911042926465750893139933504598790569264512466363781150373606470997979062987228534023406353404036303287917273007787565581268502772243918272522126336820674242519868139438389661948439291489943792767163637818158657231373373134529064472532514480670203289528167985360686975528784311408355019277247959269592543908179988828306442553889935139940932088404706962468669841820006121756019783676820179509520608954325620013606166197951702300039299009707873912477282373096796548195382031318038123442252963196164650273095511630336730253207281134676692078267183903784672516575466185093374298651869452997460800416234945029658956357787005408837822722414875021174872098442149428740752374539113850256529453238281457878996674795014124705603335096538931180036897759946583623813797338670909716685007551905743825417626261204787538616641448473662863922080982998172846394299127182592279435336690442823655757877659685875354952103726221991437007978399551400102420255185371617250364497342879645346017981591464250465373622575377076466826629494996897558033852873990219379837948192378154655393312940177734390721370647729742756097234088380768159968435484939280250262752654413342911889115500800833627855463712853560487610588225943422706986341318980502414015589480240192047582740707301734350348455489272538217780864210382559271045260137303901924926100261433503039139025156076588245869242286002834348585651190110815756768553782472531984842039023488162302806253268635169126839338051265513396304738943821295106761147197777293383863775629694432794806788092258304335430601181856310779463445446766791577506498581079212153917223542879393398987756184776805436439540013129569013083142930694966719178784056324220808956848711022919149240361453774431706627747945607859446723360563602342122839798590155235580283437450559208289143848799742225510672720832683468180260744100850642111609709755296445322484921894512342714060035270921341644026982494363629575142784872770147248267441620594028947925930559945906093752727935198463819488851822615901406363220783937682309593497327694509819741548190547401809329753290879123036522600325354068760342214679857652514997095418691108282029108724374334258408142807702937996924577533808408867177413419809528225154714873048028372543229730585713756719407998553432020401971800660738650335434044079970264602487039048546042298560625650247624724332308568984079300583093526931076148374856123418774377972991152589921804444937604910508546460918428680387727909154372709936073587491466137462003205833784883104329133957712519438238985228243474093475534344052610624760747811107924925905410376926856749329321542055871980553032309976420515298170218945757406475833401334716117749556426240903214996592066034684300002824432790954983514318865060610919329708395451185854379003845218978963261040138683914730535230492525579369291236766140104120693785668132772987188891435670249436791001220374307381310550645505586181685563831849452110328207043601412739143941720868734325375605068384414327525447525540220926124016500110137875206186343088903151430274493262660419937528230667505760167920791673091591340385829313788305464278482419115139244763193942932271025959634056075374150245227020150291003296724464209044475016841569912307023990380536800816290840116199651681061141728065768570394980744115082941370537667903210329987004034948049550477935898573827973125162002220835527844848767280590915740684088174231836430655240573287906620042308463232731546906746260555905506158459082048662345456642026283554917896280268648724190673687893991664016644941060228341036504356592231636728809673328681312006632016882001480195361982916823195467961072495389302517881443598313934873935911225950866409270092837712018284199904117552449056246636729776272826516476577374869772769964833259921240276101533135429988792680743232840884732802407750705619329323245670006796427043184998872619681257526135706097241215520138860231802090368908357861545066257965489181331037021825135967496038962819870310010016525063973276898294403150866757611356406606444269472356316127810466809871505406650981666465121318029592578769708694419736428574350049156630215116452926346115638361533892726383401609589813796215300238279975028739976270143112808343244533878091863186437196190161603593941383532047620092711355642376426541277405715737763065828250128642220787680701991240835391186081230940983679735271394655625963597281632814360724704241124181785683569533611732161431822532961538796358810846169819739785592167466771830424010304653039526617346474157287597693539265309493283886356687284471512762313289646514724923799882440811656784319051431551670025540190661673474947605512585259209782676196562221768560068809487014002073802236617879323093435093180011470833971995779366505438351584588921891544951320556218891708237993897907804380524687674022682529359345666955802696097128010049482112929775468622650128123032008312309176187199494656143124395658165702220175153518493774131849754450488662089992792162020525391559114019116394334440907360287265830737601198861877295286917419171671347725269556634877330385068934180535139817186777630326312643006375859276089890892498278371522409105963230799870308636092109433009109237915254014633066823117541512779444700473952057967274984490442971517372633721783200546298851506399527010253279984118762522046171442990707543885401986487477087009613944003432338302096444301224743416275679839859455943938440883161699742438868796556447255998419803574582150967435763607785842787211013763690602828390913371379270155404919542165912832892712768812138180517129451779032513906165954414910434814932646112453520263457456667166753045764164588597265797807841070218098013168698536980582482981365644793075253779176610625853052387720365185570562702472303974761498928502606287722436049497762032322280496408237319572257104565612073993953649497210267709964166887989766139987064212119280418325069511291239257994814888417698478441324693631236213612259985025324755382676750879342417050375807797562134539971547753788687744889802581262403801274493483157771050921413570199095322889961876717246071757583818411748034163483178575787447876150060307122656887055294135636334188316824713636234025818788838983711854652838886575564915375783271736595705147538288121156864003914840204897260291165961458648878967395410001079274417439573076622639836260586059246656598208919745287886223142295812004151745793236576110371490200431052460056591746779632450666926930842152061023901920945015428069684110543088682086030477377848917951009306163927634999417609684367100618063312605524066907331716809597435689648442878019411536052810438607224031973904440870045832518292205056594784559989343239466724865687018022765224874092978873355726631921300709053414508641658346853682487620543798614006571448290117357813654074034325260668075041691385141206912092830381163350330193269760431538142901652407472404741272323665014307173446101699841047066575879316844033560616803666018058762489736725808545666628254198892312860396861897537202580808627248811300524834141843559243905114063629939315688624803878829747579598318406403289021359445204130710978743071266200800832286127733336365675667235971454502735821375080193823095240514099184594556685009001068515489202082099676867027821434540600064776226043098158764105074950197549915255708340132426330885279199278385061243673855356953084025930039891856838380519236801956353124081959276537284986050763215442624859273725119953026767331306762189759885651865722727441794583471363523317866366754586464433903112869843388205244139917393144769716252962314434670283871286570176237175444240585481811226493045424247106366991664356541615968800246746983933128870673156257304671557149728899995569478513135450808522962393423594566897444174344081361309789450641301126599516890938192966504362827065812649835622369410691695142584060405721024841382322183315661285472492456795900188478943286389424672257311087954093300756635254560577348907851587715614173643812566380947596640657948539431291577983812574949508272324151194499626107947171062222304304444267022746741732124257766415717646714888974237132553898993143784242247489100731233273074455299875327784609933399515174398780747640303206651863350160027370160613865733267933063311028616220252653226690289786506157132821721930154770307596756331824367866285423084519966202992125025413644887298361194730446311094961343028323296794448025989202676815153488617320791915670200991198132131752884329246742653097024126938529223308938301462486151458854171079229023966229930053108068975735234078618749314867824570245794730042564917988943119596632469593010296937938735153727724415650267602251753039925326166220204683973440389056445708634031880573181414236258841763606874042912227590833050135471970020655066953512112825434474064668586247749745893129549772464176293485119731083145159694227180559391959856416800837257533042687884767263437477409226990490312831336255018834103719805919262942560318888487875620261385194631143897783836701457899948219978106203179941227421288096922545544304773015428557916062661203407655199121935119968539459754224457506672194258415554444159944540846305329931354436340643748410174848852234401957549856945369900751556617106953334913458619123582220958287986198000148523718265020370845029729456643740453120664382841878868997971538515876565758241002259945672967163897919729939915533788492182354630688908812335722007459904802919442183301995682945063517942428159366868771752119127890952336688226092691168709495341542913914718919910956180653660202616231175910743720080540587899085076730190094083567635394960064967817891319268936245678133527231541769112691747619324475671226690330096414271935279722783782208117531314171987046533803504674096978595159689046775387194273009170603706842260770065119073694129857799838041615643119193910196939865022412016696187594581150697652255046069107123827846430229623108457836593396063356642863525317265987312534925665061343766311428531590388971215381515226532882070127251629870325239909159410110849919310674496721307589759766299949901871984319068229533723143362633414422553986783149130760374556590285060130325983708153784279810559795599028624242799430107762646543037152817300540126385875859012420380873519335628300162283221503620231699847943407740353988591875826116426770022310787135808296824282530456762667634491449214838209153136180261519979882760183796515965044947556810486320559528842777068792097260901611769275352897668972630959617063652525456773908266304370192162509534278913660718532871766232145836752214761462819174299404921249552789474361296766896584388344077531870042053336780894262285884396509722641954467323489434694726059245174297430100040471555611348899936648052741939856577203417163750777698275818921282265351757489255046655620248006129035745116152499359508318802273213551310322572508334720181460364269898402361253851230759290207391577011351695471086218315724076859399590101086233422345176620415593392774484389978091034967609918184954738100324584858598083781424647769073963352347178218992791769829391821369042875843257432206464571138689414583612157013437410458120562289737135032825973669309999601838542077779741842184944815031743794743237659040445325227717742168196622909152609964792464850167883722067786461200713870610514836823127606577005833153611869623945514367760331898475725384682389748789478289411090861050265962731706853586359650885029500343265386601804594194872817157521308836599797254490318210411326551580891315833260638205136697214128901566743445421762936629330698562356416796247524819954253098518917553531750470804406968709173836102309312442057381631624623632403014856027196379512045405273000722596222953480153343121198842016475058415979469391244441116363629802796891785502992328613240254369904793618465726535578059185461416424754450867706320532453001832447018678359176406854723482084547553744911085532175853721625780045969060536855749855963917055590272884053823824135578201855435556535498970719433927345576240813164950202806669461261990043057874602094396575719360410363800171697564972689936025485316326972748342592517987098151676960123475114275324893792038962823741944676233904937602024758815130344418077798422154890212130621254932128862211659920581185668464939128959758566265405651510933097042335431643673764837879125370908963652549673988041219312975209899198808067221834122908980648911095902776625848191672372514050521256137699332753209848990290965904950740489262184962576369473540419353225328272891520914980873587236280782327788002230675564477041229973664677754658904124952952342198167027270650797937115565767919118754007997596366879570855982998590921957434906002666034372565668740515108441933524991671391498814710675467041193090878366118687879190914424687627821551942531824634533643286846510063069267719450851718348727706122429465081964592006030204525993213749795969535755996807670026326908125215279536175811062498995612800204592773280300244848407353919146070974561828343868085189797427606834819884057999357609512754242337081486202521640904599057430441112803460739930460621382981273580174665346739195199049599337188479836258763430079206958230761806073002845942574843686704349741828428860538314882023300219578912202628620593168244148347150887326178176130173616006562527034392267366403307583554082354953233567878864152177792361495492386508408614365875103756904881905638308471789198517719573982375483732668695154501324777215965209549141595782311882585434942671481854784358651715596674764239617029934685307584658134087380249197429593809276526769849702871382337797403893205948815084516583233681639197240819889440090087907992690787143383701862995740124237379318275143117605667055316655523970060543608039729665479962128197333868653185940648275462015858250046640159810409228645633987126183885947139282671096683568866180556809254783163810919236006066440135089528593258323173412812977983055250832413895420920687218609279169162262397607782355172731313635338442085936515464869915275089056242315332866044871878167511812774277272690159336169649030625227535173391433350311937580808841266416459564199550617329468668111700159842296811065758519860962219744491846915340428276858144620795742230860225627264105142538969015583888972362162389702705740052027839378259301556590019140254090477147491342805564119719533840043784773583028094345102960421865166255536028130078946153316198585289943154440015016759239319443237635488162883738498895037867613448526491235043128168392918622583065814758420470036414809243687344905029304927511425828037432266168288193238220169928677580090240629314557182109839892562446979252824691953874727226465508886155615294729769318414391510294732260186957185350974973347803638596456010882525645568325304008005622917173868826092051372763989472024963763546734223889383293121198616656241045484594514403197229803569951265814167559999868559283525576381107981230887870122210763005531353239886361152808901065040840355612894219462069179673688664238804468970091033666023366929151722967643986354845582343474723711234021456022164291345504276121129336677323990093219920621180065343643900409523100115080192373099303863267133826834226130257319297435298315162306014336169730585147592492471381488388797372473950678723200645543097835911871863742558751054186805497338643882979790437928099145824604052904393464814050051537643473462530801186694076282871614500070565084126893716814965744189176532365949451615951592901403273881599581083028048791280565853449439205740562040796274299366849963290154212244984972101921857489137952314927011877670448814101364841315345311514804995708348471508878636463704336832602471608602735432584859168128966377261880905022586230793881255769161376919607068211023053343596429849228001752781426460096437483408382270083623204794876813878007912264277293492116931522748618703019035458643556046133201762643839126238807198138872865559829840732501175170055240841076866496940248664698165801732033221200310829051080042913738121138845441949767290190666980696714238618459250568987582655032902810222785408231427908653914308682132666583776464468364373485636685230705587964998873580311993862165713274919899693475216624747294048264491021275636237100282413928043169685848459160599376977280039919070988109225270072633910356474654091373975125700198533466816294481908939051795359290709482926961733355059132646585996266856508473655312629256260893693485891041675772714611526988024996737114229826517838321073739346265576594558451211967700004440464263910149342783143383584613178804008488266666865838178690362473996725719330634909167509490492172389065201724885068747786186809226435999187795584377210787451220108622186869726225081218764600794902309023855352675940144021210769481838968277854621253698438779787559434581491929755839771250235999669633556636413928591683237554053788864469964282520737916259416283529319419812303360271633194933345162233377841443778590527639983437543135551805557733045561657438383974046152564701011523075072387199657910214321270490470353749696208082730232418314925808920480509700986121739026958128532252375290070788819443991888568302013322265117767067973437557939794365273234963808569230096655437524228685640397655263447078784102366244734003448433052711679065241069161899596711801280292960923052135228562681413042454503210375607430604675057424808485661969840815429610793817934397855549168630127620377862255682899583106318755395286097721869636382103790778989290713390284064736301157391608837165321952536949575606832635906899362839975556510282868423838585201860922392511448055057249703752897644611676865447968921688213990905106169115120819218781780495037944216827409736123459557540296304054476250954859906748753610880951637678601633958781538712804730164877170879696710085822486782451045169019386819630208046226179596358355531040676799362115888366074634207839748729194091479673101616494715375545957346448106395374185934770357067161279517690706385657614606162065549257577636480709346026384177360819604634198402066666120909003281909316866089434425816567808554360956925994927968353152649821085585618162068479745333361276725531745395962074667209081498147232796301272075686841292034059682024667878473867035004767622635109550380843287554565323120467799137911621107422736482050338970350111421205616686346587191941501789002006874020163131547684031337059013706454873654226412025570855406655045156228747320746964907269578034662309385421402424290882800048116931700754535003136424405909289530783460377114481257322807532038906820914601895126206512726683165878812056087319232318684629118510238617770719375459415631351987495453807299140126054393278813262065176565994120653297456210829715694160951765400795777318659741991001151601767761926769636554962474153366412940397879670485626008141765847601236323446215291254573512748865383006503507020567852228320272724457343262809789961531562913764887049174024815878423280273949198440238376578209869868629117672036778204764139705658270244529000998442736346602052062282158558772386459744362976648860142110366955297846344512992550613423107958629773622438076175979032557164384936333739799154103235194505568153388708759988112766911271027223205448577656836475561061917762470398394131182264614291145587855774282388140035134587739458430540061625439693050512502604337542810270880284422836363756342590797490857771441045297614276579998779270604410353614275740456027900369371558203237804626911276416972085752751755041923552141229680260968549575272111060613555626368109308094278937205698535969289514654591753605645575392314835302638632656314344205968998498474227169180898218160668932435021562769302327979954697475743950943271628160577886091783157337604557877613558808462283856675135043182833200020126095822005482584736080381234387779622901751931367472295121574156346421740044046988402156283379155596298514586522073786743279795638763657129183345788730463606953299005262972364061406892243707432440246456384436739080558451686704209459373326232178937614757316889535036091336798371666305738652984146024035932611550104912429917714493112927177713886690630714271658593633793742072215076370545568757243071320074541152267393005614349764627826775431967087583280010471248136605950164959729294934215815225995522404252552836737150875355193275003820722763184447823054422677335317041888704038483452294334354191930389577984937548003207760405413669404353227494184719089957560829261445729563045890608532511092852212765280000951816512243959549083015720331820908083801051015210607718266326393236036232295947035257110805730679288019445354758161274364700830136941318672053072814658924085812814573190792928286017850537843147281637370164277697548206700006549191627879353146640804320492741988672488651725179817051979432847788036118779529451222126496399023118488115371826221141036031271169605459355512015791596811657983086154663402076172356385954307087315308917064696055941712852816219407337140979446487078110419703697674503741609585371225398212897900633182635845849447744189500203757671110416577803605302910132932399804150664479509548189246845193372240953389525456844071950359081015419938209326646062553500170617939046420889846709260499406700692056382184555491564043227272951351337975986502041952994266969810192557405437533844629258956555355301245743758822758226241936488419086220801990093104809005263092826368199716481054635783062470920184458541270926479982607158410659122325001257082221679977618423153059550809895276486773612110144000266099354368552694578722491630089714768295720395272737948039547966374930090765161010340197416060898382133219824375584167016115557902123298646025953391253296549567025536371902201310647481752742844986322093234810614209503787713643248360874924172375905463065548947232538102234504678238926437321957083304469137027408003238779265997358531209159027574737539223121258525954900540084293503826251972618895944471127673806459677472938468330534733523678952426626574978898161561932830964864410126616715182110133836157931772142548952098717360388702919961993425306451453317829900602598314798181527816779945901108889945792682380296095658103435344811699058089760175343256416321823672334025255001261276465188494789992828149800410005570434893176880747666577275104651782299446704907529863691660192202752394011557205467597309634311939796520275766193467438552693556302013824225117542374585712603478704667051390282395703245852478060936696015297195966937268748604839594687188235356803876569139113089664519149937590112798077539761257614069790890165134407082616784140418361283021674106845107617699627669325442178755649111971265513680623729666784849054723417922728898502485972122402837460686545976411259039817815521409178713826540363099551804240757925105714885762167353731900101210601264445006511227556222285777813251557706124252856437262483276594823870688369352517020759583497345698397402871886474976561947332182775636189221301803181299220639785624307441693200024899777160991315628228241238143371924812330121153757636058401273382597107830833778343035755902202139594884085579742628614816734691555327477937716300478494120142486414913749231515829800778993827351026487648459886534573371961981801788880369810884340619239466981472233131214218870269949193060498520984829088586906082155266374923758240814289188127193468839359365679284315138014178090560215878698206957153066715377572773396563733814002518858871946328975212907328874966043774559189850931874539948972609188952463873410378974317302123277119489671493237769569965362280655221615952125869699290812342745929246090116957749668496880957663349359088656510652845210344138670166505115892298918702426857641606145414516929544673614353795309870999274111138907559077229863005210009802689196100929695617257209948057915276666188978104685200230018332377602182938432666541077665538872563757799267782879591962692935567146486435903039735602027125449797031224658898645662458304504460473879365101517449297835062286531819641371942561616529788466081370851972049272542228592926561705178434677569619455201295754742867852897067377984091258512505035552493034759162736519841098851575442218001756299527627981536609252094414900625697159511117264015178400626574781858568003605206425962970239865339593721988213107075071639504909760274067914212078558740252473353689381721064349449911632558114590165453622010796084224073488874920608937417004215213098089350626209867888346532015441331045171397391723869963443693658943046646285319911611554662012563547169476053826333981591494984927853139625520391609325043672209040786651698459304285480181442889559405213517931239233451762972965491964330169041237941643202705762156689812091395222782099553045957223276002288406097973685097667043595948264708078260367735425161633968957361263568634142241397540133632238711326356770597678259707731632697311876505068836360025722155778059484540352760914871044954194879279215282866284214623008527775666659436601118498266254539573025259551869205327677789086272186018514073067291659675914854425908576876292013370691647009846223546757254672788091083444690604974468750826550175393246097626163649952357049424596934024571358576564592805810184592238659366562893505947792927504196640900352417350088369735118521757065545681349950606541592827762741523008859121146799386695379599544007937070787076079570554361611169539289601992520354288643700539954489152584470844353638142150498039021795692631087054563419247092001925746444710406456180489804213481031765088781448342684540004918876157201312228909572537518793187073561722712522078881772632986265768357136685806415470883539009581119160872474334115140032107313221014557704877652001753587415795718616368296433208808257321920586772740630312063086258453094668698496666563262253867301468343836168803675375148278981928508604054714727537518908606766719388285161005005779998717824504200862188080123380142403704051483161306224002797966999778159692975940152626527411828376434517128077496835597950231340185296108867619951106207831201749391329400366370384937958247115958866855578918297828057018294805753391649843588011243931564771223479248566102134959629586785167451106735331368374304337519409415177013148903895806888701106566999862837141912420117455233985524757761735252623754799890648730686251557035197634871071698499051890403150886680079939910322707225393534837903397083637689891086663614385272191061337951621125218521935673276262682421702027806342007828415836585349115803041883027721669010983372353219719814621938386106372674600383251263093745556033736852139837220199189345397295430429414994586010359739678456855223095637494510168474203337071584919655117524472483831288872085500507664549924565883610247976515511141684393145365657283970471409288009502430310140668213426925527137750135609180237378284143582928799413720751124235396646550938595771828770368145581107834506360518379508537753336967011483636143103016942747248407621983530525523514189520010627988018901270381689987335324487198386032768467855510967986993950139986034643052408799746045345977884896101863489522647219962964397307313141631361912667352195772737804175796976690968087876989043516629799613854976192628049480449912100993320911262663460657303924175829088921194277677495419722164704972543813451595978863710825724854546602936027928855186649829737266783944560223120487255045433685717695075805125390561039417247953873421915433344000692497138946802413995777824869105680146227766949146741826508958135330881783399753466937874000002912454424801396392921714301843325991789010882244392778663991639242346741468471375700506025007779865747560291861011049047130529115216801231102956320699611151659208989457526227358972413454646999146782069925170501282883397515593272119797505388278170903586719638124913526778857481281235197907513191519226452947355148143432157263902422638864230847284338500587817786257955486287719137649638395398907773837869600827327557771958466197128616930778168515151632720537234110941751644983770748460328633521943298413021086695337569184792392531664026571978540330372222208063979733835171993996367986607242166924544439861651704037484975225695250097815528423584518291690791714034152797186927951403979381470616852736038562245955985611604928399366002393258181117402443569373893403440130087072531813179212234841344034540576655613491142899339067803570216919256575051928111363577900317205412299301418235709977380391624318628355684009504521870120990333203718654095150244259567558811592770902852894636087671299798668504740546994260533443652818235070603810104733677659747091837385823465836873302988371339667632893051177769215163084534708475179238606266799662495867627121292764435571946662656886964996209622459251530097900811542776526105134940512172881649368957829987373226496849745353094849851459794604567669064683043310029135403185401295768351787298719286987493463484495276239024278974753400424157047071977470120002464899097306185040071281228199636977123144286941964299865811993885397370054663972120580503748113867571527800774514299520955797043703011965271669982276370733119919693245509799611271336799170399940431693844391006528345284034754257407623505002909730860342515418912005922617615886976398808368674470101666049981629703570728027207010870193011677769854147016340949185524027042547042494138539476569402293943221735359447994125327920212020113218998835505655030396588742811005086902767472838969130055281678702192890428365736762974749319287038370897489574355065832980123850672969662498656224144083294412584831661258913048744034861853184385398955700517468299764484314146340593952968095162090310144223052129155548143491071600661726845707999826021271163430461312768441015800263508941937462500536948194935507467879160066914504400870092206866175085374289928508959688933071798859027391702681208738690587388758683311921694220277227437348773970538083306182801638726493068011414846158907846837022625777953820726698409084958621845142605335610039799603775995516573742216004478077554531926913718833846511323458350073860141432764652252192416524605930575854355535983911096024228251751089795783608299603867365202828764504182077795227996974970730382082314940224884744992298604469467176864328042298347476615069336918486384933855705023196183389105230745042076446701459468107193635952054156407160743511704309474188326004970143741337703049867499804860766266062783316697445345500075597385284043787812809950607843224446563805191183365546359187574947666269587120669158760299307896012845779224461564249972631948453332365798746515911808027702350241161884625400242574875061583976535862200254426869147965503469000014651708313135308203347791017408992867506129251336601357082296554806977320020358771522450969619144993096739524706474194374575554677243602361731738216425598749218503077405421756101228716855744431768291193269329734277727244165353857818122383745985719389106044881601406037133674579109928655166446910379366495017289415946894831665589053482429970111296466978975813187308967632492077902796740302353501317204406082514612659345565063690066550816306337566905031999279402357058326276324008367573968443399291764343599838654171177316545628976636189896468066646714221564379841701013478667287856795176726265752294226366668964696365001376331198456969367440970463520842983125097556937486164829168531681210232033013682908790681848187802556098310354700705875603977762275550343440547713051600313873473146133450215362914172479290094215135122728677499774993592642575658438901421992096149436047161881180111320605368590818020055285012243049640125467969898238942599596376248801331593977736167478351526112902706972445558578897155300041796722458274569663106571625093236029581347075888713002370500639612595037355063993776496259222724353835145596255576226729653309399379062181321660730356936307476191042180666786312963389414440771210265804777082716152171360238318869208392213943100682115522143594416583066414773131215376322630819988452454364926708619236451440603403231268032924707976246580914807863419908657075158617370034595682856760807276423827702288112566214565089241199429685168406839018385747859265663386961540071576650957257609317925404128529718596391403090049864848891142898765719581490525295423656120149190311377358982424782795788394756442276054762934322025074295726818004694685754718402958939637363255011408115983635340174360643356759566752342128605076659085315862017014616138739070751599400897655537082309934662903335724771248416743986267828173497481254107231447916474186445647535189847577894566151526900218742232764924151741730751971224094997875042206084126029219782246562662033000752656068524614682677923760180856141936346646036764015087838822123973116330401345331488601672276537291605900761244607520348035351653072443357124993407375327220407709391820532057985704729152416087730894582184754664967344090772026402439950971922867370070706972339783214885961357003166942789896633740422893674344117909117034781450847951632659248774208138015282674887723409670961202413838856020945452181438669673603916939974137771684420185474755306349990383086955584405524691925633912851096001355512905267173370756769477885369921663547150184583694887208976692364457982804159428712846165781996989028064708745630506246061667722214143465063011403628633392531066680707364009766087411242491974352674980318057362293695431334698956732158962164075887918204691021188327793493398109879304656912063466883463654298520072356907234513821578548868424976890048520446416589824122680869416994695133549164820290505029095557263028998940915339073250755097346671413315874962288473819207857399054663573554779818156487383662086626975528431228251556328115443832539262243565317600170951630416902033560847435102425529547736870824161042147848994680216678385888709603150437489979588963675865139302572232697192063648080114043701155413901378521918103044487571676148614511707372281733178269382251981603508133190358286414410430644118794802069187118041295102193081012356674555654276418864336601002886271945151711844234791420563280514177120866650445378988705523506687545678041544758516759438494368367772135492026150970735051043983009417421361656465523293179816380271011240891603987069918214138077078432116514040485299635833065779798048826485818709499288656643484671326471115038719106995796908767663712757274720273877533202770058648926329471476146137024567633798525334900075400089361828130095296126361628339015560077327833680755652922382494364014177866459323657333232313340854233152547339603153299105337937186375065843123125362428253765591181441596174428510370408375117783066634846323708993476754418932271598309407636419045701847655043640644746857080250163798551865148296834395389001021626144663502567561193642837656630861738954135627057945815809286985716357659996816768193429811407972726711920460807856513282813561565394528542980324433405855958119253989681888789087943123275680002958146177933211835282343766371524581170309698952343689672179228534755854940991570786392918644897500225399976774982317717009547233094605541737010742334757853765687396893616808121732719240752174048218730313840902194007123484169653872872911701162956586527576974882917538906444225909064177388084146837109911690660685883775658585031945794647935330201901799135107348610066796094514539208636636261692366359099890097358844682042154296058755695832611078719548689756569154645913031145499715106747579273175043607463848459330629278962987838640139772474904233347103318899447297818098843819505554774914461984438906744165802335763868708656947085053373719249214758504399767025705345182016165319900634490872414425881369854231333711343714086515080447692158189329224709699564492357628323954254680224009890632387124417225255150619455289784349162987931560407847663377257089722114049379651895772200367286458380524090716691093014055768424867030269594923115617231902466820139784210042708213515789810041039682652056363563117563853476558273482912577600063582645539302934148559293067986202855343011350814275229156158347119542124107891200393024211763514816186930801269720570934302902197417861648500917948201228824506357722339024077247364634393601275293031351281440865073953139536548523778694533150793492554266779292262644020124607947969585133248056804014746763156642191654851480944176249508113837570643753145800500108770186954729012724435809366448649627227404312127060942157131457659368984060316877857359324281679810991043563430941317378136644216494452236518992984865851598677192778496314234027672046662645220884184294978769701276937798952761076815521310839554197524174057896506871587508868726476975798642762428612452185062613178677652349510553606485443227222053351602526845902534425603016188897660307471410626746139801694534750983097772682489029953627429949479762486328524407470826795244938973313052503604063243267574624021895991942533437964559236120671408292683623475322043148118503024056676631471506777689770557201264391588443517785575011585688401281830865062387290628948112911162682589745271523629630962200362831752625545547331845696723438071199637238704134199004695811480484806460439051676655429852435376562697409391554999221783626286470315909595582187347621853672597598379398893406379633325785869160976763486605878684378705665293082124202770153436803266022077032652072320275667144768552705864161829605186726961157285997371440406302431508684980302093568730813004546479461195923031059043929422322775508793154113862669007619598087612418731634025629371137836246292971846237816483134570419319836411481698786583027701105966912598655907668211633713917405002729277557812157264447111368214044527293118714303837989566448647030930878388857021708800738632166251909248572997287956110764943043194548100898576157021887733826702783931065825965199354431581999053358085639611494119515568028193447406710933965109683000458824179138333756454973574322614908892788515309608506127813289716078077726906592046326875844807554666139434845601622656918894488661261220574927795152867474715534142067536984209136531606429147483889514396394995674726102323023905707081510000258398510070840224138575711237154817605691691445151204606095577333754162239382474180779533966078488638043033137606946750960910236428837760702557835770099029868586899494751771714516988080695059551052313635201024607167283564399148467522145569509579212887378556759367780518434280734978099178043520172729407843055955705027622643091607164872259111547751489778386658511921433284192782964548373158853356148949846063075307411077557905819820757922983403576523762989651396038526529038336897508951698118168541795502980805087093126980943971832972677792342928649815399681363980222715292293825702911762707389475764997619444831937733810244279539635530378204495825192012202888836171723996766050615381780138059308210304567627540603735024933882582756080320346685734142098151588962285806123539730744540005240004356509518589088586531587852718135865195098136316103539499210334852846880094641823574474946782812895116324676068356011096693275728540874050902960076047307450464821889057941934754038251995913384055626755271700720198090079162678915126797043712118950095023300020718185645614293652840198704564532580568898516555864435425158500037453857434981454352904243739323404894807727413798468107374012745345882825354791077906720098627456201091245098570882462391324798086436175501219149033591994288104409799216834234642183711454208367113626406694740313028892627345421367300760335978530394500399917685119974917798509027204691309919155597934987543140945288815501539423449826903452104298473455667777749453567705247624016561956333771304883103814505285400390670418628804560600517299478264853901542619105224389956847231159109672144606495392448411987554388313206730197791104700929631881758603033678023710860503386637654477735686731473422622943183771810707787777334134560478312485193829248837158028302506543381521310358213588425787759672839609286758829103159229525175601527545973564717563642999357655382594592364094347543672755568727559412915040230810416261671348687362920411820541479154236276140432023547313517745349601308252054935276281115731599971188634158069759829489959214317152037928675679546205363328552510920391310843994402101861201886730918509670498630465375409582464430091081368902978090144406334353449243949538482753604820490701475731395130381749978307283859395033240445617037000983874957770723619574379193625171192581143781538214054070720258936966358077111024893705491878682910612867035693870008415997090994237897539387116707148595510683968794501314734290257651945267128780105871371241078578216681249401411308819515612277011773916526173993127844579794365950662126699281009005086512880283049846542577667321711896870425706869516704705559054017571962790859421031575239508614993176912827394914791380435410925257296912086579946215834710182509928253258705324823499685226133473768228818692737500459320211054137634789984138506150398812644636486772090205452089217796997661680295764067713970126685403049634078717752353472103654620923456223948265510972334039378223376050926800574316294690987321839722368733689442415782682607762840269526924259366743761271682626241180031314928898139026634035558201160275877623465067505737909956177522671703237790167073349530799603554304460834565485962967720160231691545438965755682018549741613358799659032814567733312010006159562646281126541681148344769995731246349046185374047708007454013507878915956176026059396636385600668766330009323833949424816953655638327978292751001176750021085699140056867070120230126486431367990187003744187776639376008280828988151055232610854927741019674146495516766544930139468766137388274972453381906446661528723414076993066133381805500922546799131876669254354227542875079754364015856630660816071699876399271254786821645673445726720736302280154275253290574204346281437276365863705857890088221138023604058686395224660226660187710481837857984728771909567027169128001610905069003821078020621517790525025527459079392069438708692996276599673545363354147310171139892622756741092516529998110409835887903712467008300831555533949488128274150193479223179021980452217217236376334784229434368505255916568151453809458462513892842382576863160983873576183685786380174730112967307736316353848152760473475239022106572686706288907780990841189295708871000010448326016960063571178459037252433862593329173934401367243302386448272370461030464297271308842735011948594144596313000650713090702748647690253186436947935376574178423095495419387595776909202967120422578596163638466113451907041279825813153505404048337040893318772235844579888943841891892769598696269374739919812651528683976094210574364846780331030005442041551581240002253544038589171633988951502487285818064290957034438578150816907524906480750685639476546569120155476601169313610133233667989295071717139542068628744038989816051516534318138235057358254002321466510456906462656781459004228544196127642133415325748380320891166972035535354601596254061358343430955172465064657921847520165877132758894980760287703830614766021953019812420372988613855663216461311007262677101013631852550091833536012553338881816709546522492970039214841777202317710874718963400578019270582308330363117791357783097975456370249208630432049963051629883257334597364569670618850698490869511936444083871303991301090972399994437315762566339565291929203855014534252487674446255169740754777461590223935741255558421888598725444401236273992750064950426292117022763405063034356986211919921532627332738244949320206638048473395702182994794804041506677004862770650161086647577911362518143581546025623563997094849270167365186545441418512723924732456022250651323397120155825791179512563462726287015350492111932914326782511290819443560844635959736788570284876223399405352806021907458549329269818635740435193828244159050193791654926229453801265060315104475099532035056166003040658312219088539163577405278027090586568872822767022768233828054213787786505614929862877321404160526870667134526889679342486536016052084564065948806079699068526308282041707321172900955241065768382354383918506941607197545030414426728079527554875031522996925137168413661426767298404168463046338291894626970608423067345845470707920524969906576735767881819676251287247349524094474601745988550087117857391511003586187290148831754807902643621846980704926752537455482095772376521982585058566776473965703273575251659633954461610451242797369305633856476942004144422538821909511377080524088078425591995102102378332720728505607604669398655200216127795357665842192603201496609108072129087139854994908799553872831739050300794515697023538477558206696347541623854682872110288575208086872879395198347855360296190413118781977335177585369614107438484083463182978540590354665347089944330619068247574371500102204542083077784633789762997860455372445195145445814069251252195830781008028828276295083742363043374459895814078169170435563563009754973919268773787566744383240157922601704403932380740830462907621052372831638848114319911836185350010085737016642834380311754614780940665150317283837008243659067801533323591245046364181194172272440237507195722677388840640446479569982700527542915643693407408208561249401739836062377569417876106095145635512273991327861174813104665883750199739924045332225393561437052617650963489011771779275648373237960603614809330033452387369356593479753492122447168374613827324514277231554099704156269985578222447137177589059424871288539682174331273727205654613002513305207346390636316133411438432546100691766940826513518544106915855990888963693742206851397898004776666160783637238835055663851803105232629727899559434562711401535543114323555122608227035900030123708991340498106371288482935601766021010921890216462208525591622201680976266278995251964342482532850142314618918071481517751541693033473573534941135642499469686750390827409495584040938490832653829865421106511910171881960533575107985899267592075618915606940444085759849835698060746544540880047735284121687058090385036458086781666415544738294355693660558839641169210699359510702327948717005768057377956896558843712254488987411333596493766851219521592017921014268719074232190271093549807022938352839811692107294322783558923016379575721293481835239477245874289575959565924236965884499988218762869989990842257458177724165041804726150443139095286889941630087306294991356722145415255163713515059235660130370999232139611131104491304600601196855209869712522139839538060003471482832247167360393092299298311050977161932371092075963562272618034875802156194127181296135508400272339618175180802099752152799863423031178411741507828352065466808302352057921994460206757563312604694511966829648717834878652270698316559709545134418430541843855705927744532767095285255795455800825233297803781868860820550303048171606984891297270685441863746391789491450636428215921100717532671607702279070593348070239583739461810583604128287969988717162886818866784305520523651875522330995777173109307782403268461465967698938153309645936610488092842146436669182806038426069827297602733405639635400664778787691695467823487374389691936109896399317946443825448288584627741907086123317433028929076368256126619935154907574900693044691811106721239395983722656508665480296477172430665971197920375876603526295590799979457100093939421326602395058982075088801672130978442446153898883802117180286275766931050959300458192041792376622684502168023992520431705982782230823284071225103434384284621782598988700836435043162399062193816831552169498545018651874665365561516393416925279528972470970881050281972826415574672477225183081891444663476197839106844780689368199060029885826370101106096527564994148920374784384158369614145861744376146518387654479532595128523936521784690592707978921158044053478526910338868810114461981915472054430969133168242256566833765833878876968384400750429618707622064628103047065867183039992432366440887449817471986505132050722262261544115747000817076144846581951142771893739264360923122787124113329980869845084953361534537369201183318825494842338543913005628856253069699299827639810379597206968670315094609662713611653282940022441551924415413320255476883479892524706553699755347329419663807083571806763792346019481877417992662751457408407799950546248110639007623253667416258638417270254751705503733098260729204072287891248114459885585703798220479492817952798729668692905478671627649591983532204538755328265750953980986567849431230883348828747166807880577147887447290998564860395361989648703797912455454825865150348715737957846085275698146209916185003070250588374150290028964075679508527145166473990586851038467517305774047471270835144463822462160490804755265479223266332634143605695157394840680493614052616582915060990912112567374045999799093785267755325145856845768242878706048890815947830078256262027108439332434456803462130931988401241851619948503451947653493434409659059980220797274066866716229192876411149480655856943766076291292581731115119417615160779785493131109540204615528171126057251379641562850170131532523143971892265011988070633070233511750852047567139751212670373212065240603846747406166192162523993132564047528347528992657300625884918548811406194800120105430618113932119978108423708680415919725240902418914580240568473797807980959837921920975784901732868097574822163056453335954382404534924657216813341905251228164053926981132180477744051072549495967253679283330481323758117244998697132185217350781270799940759150820550186625500438685826028670754907664908672522638040761054032843871328727731354760263421928992313993488624415348273342374727712606725441878947053708318479457781041541605653000919903380943032545647500924646600845901972863284489265316250127883499351323847851971181935822677573298398755890838914199260499490488060650997036560968494076775690234050587498629432274867644160372329700334032711900617600534174906395484913076927931953011860339279513644195711640681646141145269113318568600709247307915602934313647063807759033399294347490577383494509631703317524300159235785489333841017943190092399350775570650359008461523539510763076197620878344397617652197815900895270279927380164408688278056125903844109451084143254511852197134559654636569205668665821301063488495548485571550846278697207905059343149271151301804976070946660114294564505820575934199278312960037324836052976664638708208892169255373103836955060339578529709116903431140097532989140172680094183407177211719108640463927138267563130513804170077421292070929276577175647519022687492349940205370342350155157566024886309341101948439786363723163141850560438541043557217243641384969718762894999835158005391299479567791028413101282941574146476495096489711322231045304824253773189892307495456886176280092196529682741331220406111545982013153904468692618480387692406183042999141093893500913095574020478447934184692078163906412281769990573240467163429520835747128755230245458578876789760292160999267005695842488316894923767709525749569629364176391617582138582101432181845745793969427250364261349610429359497870907415688276165462533958951712279057259097266868718341132449718683387299705589290672218306431451050251250952504725355790465984630461775634624697782651473832984905735692415180506428862874646376037534638153339461416752212253070989828793429526179930885044199953389996950600726557772699376348676822472999179627172334536271708853265542119271544357707989370782043769865349123456354166102179323922913166949545319024854039443337629171297277617925457023686310466064383627469654623383127850148052592740194542597540068479701871347845979688060895794089277856326334027917738481874138701080138068803739972898143821092043788429288545147058124236599781939271558749304890796878351803111389764124332079574710564234550080265388501418757720242253827671417343669873459632522569867379872145615977885568714185982348454112834303162606839912353645308973587444759967482686966755628667501765172722082254816148960094346465560594476184873816658014971785074183037172253635365654472075047664694461327911500566013658552646178061241311347814081278062107296219878478423708651008824332751984789455755504366826105008495977663343470106452281938399267865026532121488823859951360474201830058598461228959080707969369217151006499249599076815994870753684830864837557097657200842191227508953967417527979232394932831446522963860047807629594531961356626259144902044054068402814064944111714440297410962548069554085175376560862656352126798817997155215194323824930685741215825287020876340720901339118365929800427623284562921752162410808337203473637387849436401315216340677388103567700833999178218665278747290290987996660418924548121177065850142545565479618392462066843680207539674331253130805864600267948759038003363710322510923057611405424757200068584466000465945048237359422638079303041660832047392356368794644275096125313250098263191759510107093737600245963922769448488143062903065371222714470169102464652885221771467640434722137143304173304752643160502719684756949997772199036713333597104081264560947265395369845411034056830905633929619264744388325031883267569526613203709665376965869675720617876647510857086147879305058176069454286215484572036986802039562266880818942982785839223597952987577130766149857176351417886709514736303133915218621622631728746098583696874048078607379224550739835429113338570759004741395843353409862467478408682589399596730512705728237697009212288566912063671148649502788673569355399524521437905513718381155372985721214712200603338047639819884710789635602727312516159254954630801284073926591625039037731951585992661842677078022457575663787823888744334856212799978569523426839842585490611933132434364138934085038642977797234567591350990492720292331786893187523413805319543983723561169514660758561588784495707919147639584931516302941964016827770913352288029153946669341619226357241955149184860286671022922966097852642158562413020133042001757310242302752126365626033798484099247140646990270392257636979532168946851903944586650383820714736952035820756104610870250317576178943165148015921491617557890881605819815220799831755712115955779116020183949518206569754744166960779523822639332901464592787353745102340878238055407296067153877625088895907737746934181629248055632437852134823613611823598113477507284561473203706035364561895854440708554933423897986878093040517234740639646449827648255530957285724198385514731066498124602357008260456896144239580946018916985005401417228769577707331489397161433663426524843487993315517574849234427923935713232470158167374790536432617029330308601859054482371047966351096484816434310610817456435888448983568620125812012540016424607687972573937782160857756284500558765508387557767838692255748001580082623050712318309738695290659457801338232064903338343898858689774538010062788156069894926244372951445957089606605268082077018486760274724703671955915809626739098217116931286827220258829316631363147113107521326074826426943020121023601181923789401312523654364787985160697373179033070715549490837166207515048951965693873518402560713377453854230872226766492365811395737038458283271600817351338510486646041735756953202169657758679956191891467642489317897042507191820048284446810737559915382726132929041937519081242379018643788333404012671206912511745901703413993200828072239345492441790957597491216864864231439689850129631281545699463209868544883984564167351427040847823659734974718256451827123524419778600629200234821814830273675508347235222221234108659606395591424602176148178578972147615570835079975886192714497416844246823318829194183092305855452295953476683115538099527212822788101718050799536196524912105313133119104003385294181242983437052288495687510224828680370001275060310350364173000890351421040187427745100354055962946689122787144354040336943005092182637781122813999348876331879303484183870918707090012224818937625345852939949503030636386369177228767131295582634672378371907392717122946130342279499918801596948145119589811860321263645253177309719436250464877069341476460560743249251454423462206139858174122424321637646350184124929990428399271789978916165590903534638490861072188739764396917970985457326249375535573532385480063696583764605996204070195879182813389092437793215272701781761890479206742997375577721391749356361495709535071229567706909789965875805994323950296039020281412090422771347867473961102345400987394801040532609141457039909418327648310356607860784294276929279642569725310770024449587903813837138041363124774244985895280303888451427216767467732237464415538680925300865345832812940089879525254756605905002802971546478011845409572193174253979616245369893497200253539774300476773026237266635954979120745890327147626473797871973462268309891684109688337615133554627886957595311838522255401167899589154033239663457842101014993544960381872940329937752244921231679875659762346209663006522666045028411270803905258078042165944985859509041186183738007980801551952077977094196110059801368451926096126715292983767292676736313687522334585386445634035932693361077825526192028951309619836656912649152289059394899734769597842211540435459552341522106026544296132694729601213434634831189039471667058484995492087799319091592536842378119554880144970121009273613414864762015289794558312172941861879371350965687829083019876919298773601880271444999839542996032363067258822559486832468629970427143448012959465471747279319819261350844715497889506602363472887807730085356794130194628823307005839358646243982997506717676662639433293992347503651136422006238853941750550178495373249568996563731223856934323111309456374181931605521660786016477843261417463236691239107941582240385482678905620543873350789697177788672878899713377062135732709885493927974246134463082678057935302853313001694448891934660071318276527679895115800651675742483034018661385051056803381523942253172480274691231314019866810228000411739128678575569260898498627327942256778441880023977357486969657132735289297415881615344829416188736152050506185580408081289708962212635354348422357161089607650428606009490211344045276017935642893313323872425567175113319779590202539158660200769047027373062083662100752851313551442526829982145325637633498143282681421616942065057981337046608889687602518815945175351012418014584148209822369894375001455743730544453859917132175394652621772929809642842599620162146446985932650560487614384482388577464168830299769793765323752834902756607691784134287533022702115587418415003363617749446132330767714492446792544525268289298763289889142834880847258314740002493534407730987597971331029786903938285271185000563454267907385066171825389524108689006568679214675127429427159227729502644402302088442413873286178261868729419128886165976503830077647252781220651640629894746011551323655812233388979569431144536400310127140875142153797486616760844041764150466771051711179249398896285039993844043813929157138300950948536752814225947819595785559800380701554169811399133890568927930859510793917224002788238519025775149610134705982889161560721543466967394941856941936304554167592101465177419623721330570989634289394938276018727879686589664944943744820774496139429356840595535348473778720093050862389926275662118160415892475211432312600332195067760733517807629561801138593829239489691155093479011968631801228894176973129600387569601246792266360105660192977392332540896746870220774146338034112912110770938434599524057570669056266025530501052023915062400865060470807802826772064351057568266548385863224126545808976512221183148378574802919154255730536465204868893094460101216267243128378268924705600350910687590447835179371409827554055928823750548551369511885275144778451823734514671208459131937468088994041904866716812398990159239138572395966051285281468158534336397492339295402816833086557627976039290788581292994080554433074299745003891358449045718406462261170487227019722007234645476031960139393016384641406230629320455009608223070528024621334910683238201079793779820874150945027140383165097569981651312503500758256055521926433245329645138289669761804479126326245551248779472925258229000939803198325169538472599665932748849721998412336038057763297892272719486777526589839178261617425901667248963205772487359333746895003298380492385233294064160100485047577512150781223288550767418394239494576437090259748807011108881878352828541146125433593049531183852095825220939377438464361457211492381870456428228250351547215549672520915476408431087496001692816539861889992767241784966276755600241672630398764184187504327298660724614014530127721649988184039687441197413016214470603073024706978206294727236453638007280029623197307302588367521472940442901463739184415611963435210440271946655531631155282848742618151855630116405363106167782912748373919581597349717297235198321720268734598253291908083711638002881117608514319168647496616194099188305217921605345042241533636764843523429869355351637284571616215930775951790984071819467530180353793244116173947833896233468530617690341913714052921578514225832771926518622256332042005900426193041957631888710721030314386002783417128336132436827804484905172242147911810231141926636731602352745793183344950015141667571845828624298835098192390648852902851727974523486886779955988222409851676353058829962115617240148970846517837798317899876823420000961156074240840522848192519326628865173774222223880294605708561213873501604588180838307006072219942875672012453870433732079382330936853773271267146486013313716646307146962439573241825848137359152776460610539226931679221653657035354160779297149674154839279911056527424158220181109134074342582736465695379198884800118875575432238165396409081329746398471897228111229448802023097935314251386493953315196667844548326708634546812935435053753876605522596719023900976575321296278323772270325378713533931066738595504590611678658442366723315938561614418710986037715170786299232484167660233096706882908875431570440611698668652489009485258893904143043375197255307231693416441749743613771089328159691222799508116732537670512482025771439572764576085192475698717126647706581981715643528629510696242649930905051128623065482638268139761746935346944795260141130136828445083222854370854278960524665884441017285109804114854983712495974438153767285420056079057017261394189757516394910655255018652758545247006948279501279625355121139578756558724853743067722578395032896494018415694312783440379863542758268454017259188653578415185663114392695431264340038665361786454588989034821631211637671705968848133605781546529560169750614828991125879143113799198688832272402383880953385182159151647032081196844916010040437878948514538201710117711493115650150570662324021164656210510231093808226210822490916605469578899337605950822605316193744205347242604089626355550616340211802991955162690068311218114344701988007159174596086944393545646059235211006828053627372624349060241826796987081755595488711684506258674426234289033157851959700294459725788583689492825095553749601578235123365527225021400568532675324484528325920218981960553807955925767281400935811052337301077433821417672037482098860787159839712251704544367067977567766933154723934924905347716259181929212006762216700753777422996869933533115604434274899712073201682009386589410170206552972499770216492072350942208476205437814679386346967155222196257101502799975667015130127302471853949738161074741332262701946167871971394116774213147326943411001530765102647994572794185404305078520397595357618813302503418808429524760800258694073073440370824362135225385395905914496441139126858135482648368780352854578439210290315900940182880219947497244455075533765099890040002391946210120426808300878413083184932739109322807225976294987880553447590079994395201700005118723510841375370247864832228901328691046845664340953692995294045248278444516370812024530834352630684381754326532259260509296807345408779607490122066837139108587863499606977161447430752719159514438011254599741466414323717491817028629440330908621806076047997194434566415662616443037387771878843175534736870854173034677867321175429897310375402544799974528016161609317700787306488543549670024868573406290126682562719263479737506600777582255407767357878288452622194001655887153473954941033400803847683158890922777231878213269591155892875960296420365264594041037251834346105414343954210092753715059464555152295321773751189701553874007572953926499268453549487126808966166168477952231964470929752088655546806964484284427771022830962078720365121651287511644525136538184537031908143760655033128882980445209967020053584526038358011305435109217149536415046166832595392501445935736786117493605382789740257774375579818914859827763033043505718520462993101919296776489056571666059289602632892779362640648992191203609081498745995589934338713240117298799058699273942826723440183374813198171781688307518046642819427481993202611805425459913112213216421626511046239551373568827387005629819971694357991930381492186777981960280835200294783074230852166806760182504910750719847068776660933838428631654205650409980010531126357604212632637962399802779255065702613136088381659343811951847603911140202717790976168207460016582564708495984414204068743118161714381730008226013209055557765586151897605001695511230095550103988052871998059132994321200312638380639916447809869672219624260151944529309647614673111833702618069612983755405642381227870359138831391512457648008218214815806720478979450068276486975774522837053820171850345032976719806353796069226026920449511813925328952043554157259335997965311074448002098459378379486635439382841308707188072999967218122502085112061727641497564511533817322082483439318295403280848874182431241614950815048234560363014086481920236979179734829524436242630602649306505782156467844222928431838895967821230035899309892552706870008634704450155255534306281472125579840887125140193042407254050727509942866989402402444839629183246406930166796637357559313955800682489084810915230890640671584575974661503744255446866754053585997731098291252098916378519701098423472217801845103125063089764110575482603134424854166385077235123119369327935622193375374739306545184025522427826794392688197507049077736152816618337574691794444630202762988561163852937241535660569698140411292216252610831684137798289135016470296230356522168536824548874593267973945052885234091060902446586203141520405775384753536946074065911819424807892683877166976850783750296830240894040570966860282293301582545363951509096979607002393996014560965817254297093071007364019002754004054430868489912609405173026230202297116260717207093030105039909723155053756565400392891363119495445635058976478662983568624603311334452611642556143938576072893455785572730326655242027949296326672606923394515222403622469336150716855423676535704700991722489379390932531559329870889561388416226643533938944679859356720261843599660881608019459547343857979111534898134492792898859568208681636316515688429039412746850777380992455796613810217191839739750261948814889353505349419986687716740533418615455028180576558339186082260173376378893709854017205428325456190006905564664635186117504467695138662935288675806784085626023077298122844066919457052711133496650919398147354875888814728993778962848548735593041633091144072399158563576608594316374017797224015831822756964240749865807626769072837513513158122095023988189562166344612995887926600714115909073014855436712866208852663634517369399906118507653894353189878228963687074872560498970287968254764719586846100879810783042899462224012869873748393755808058193695167245528107806925095187967524853876653250772401321374408214738631954079983860114108496819889173543021906889311196407806357730194014580785750115946041095806664296765849803276056957672075979892100735717220553869999316518160222846024030956362058311945798930194912516837092667050479756699867636744851992740203528777235504375001067528593880987947878836630810393077501902840961112466847308979951401378339140480407720401077841641757454526808670091065038779389014267474841502278490612932629594858044509611954495055643131500582897506888448203299055821285936389753146382965197720092022169727997028773188876707222003646773967438309706708564101457704300689136338432120326948328847680596364573678377536620336250712672681549907832941760302614184361178048961247372749805494311102720847786123895825474288719658121520873921260190317403382635585361396501531015230473118580228180747776113920697623292992754002238180950130205949572693150464073747319286865665668321298062832895696391774080046361188915443064509064307043612765802884418363932688678470428874666372081147586022929692071922657044777783766360475582673024111695607843263083392057587128869694359690182728426103385522005128252202226380759373080067892372299453434371801669883889159625445703871011717535120728713161513480493983858313134364653880757165333766095402285219303350662562460942735576771803527265654733445963417648605275876320326352375242985490798049837285792927944010361886452175685611577036149877373777380444107437175709107608735557180279138820753732008489450796519320418460938632577346547272661057597927631745397448118903470771906113229452306605107765052352514606651419685757464941419698821610076756248449367569580080196604872807563366535229953029516269891880315820817055945953470062239125891149171183127474693559230929776284792051490016430157100833115890140728906447274875905588997244086345041239865355083787859794861170083241971463621781398863504842921628276245404642993377958409954723533734583414937250779810851319178620655571458578201571593665760623178601807721780954500317678465487963145273936239835882020163429680841301280227370238868301572876173158108724149136053627176318091442875747056106423463796006182888129827457805093926775008751965273373810269357034088278590909415988529963855856454097256176799930597287782853544700298789512846249028746105113173846367052970639129317959352907118054852635017211398822048586947818073827841137935227563703351184932649162051474214912075833553115732118137109323370727293054481401919346574771789105656996723212519483992814212320748802667142121405926462717309699828750443900585041122113305379993520038633969248015310304586268449854946267426969037140251528363627456881792959338402706137629450159540247060625594514029700587231107957445167518862259712544690212154862375248984134429332988989957179451826607872233520547020460037083943969792316612639788119523585252021007896279551380081396287936971669617769284249275463592318245765911368051084706480843832617611136964621173016809385336677858093265625285103247621343827458546836351045074196437857541746239351369979822830888115803333710342876036438013809139359826991501155501140751160979071819813981545071510695915141048565215256435546749672416420023896317824246566519757290887391028510454689673838007366224051629219031725465611776487859563716769196265378335349368924440485960838529735310950713641811936132840964879872908969843057237705986122233326336539478128905618059565383819807964528737292859685866627348756733382010337375029406261851330788945528057985025087773245748002721701428016529303708311579817895072161864029597057514914780167642582228348136376907099262369546217765297657884515832587663341526199308102650888294420987588656381633782616012436010575623808270269432453619247900947636087207667969582019134323928919665898867236730632618386639202239005068427763583382169758311582481025919919875323675112081300576987804506627152884041677888003696232952124824087758948151628021592487735845830189362577668236725473615926186308562858167170675523518216262549485217881896263620378951136451425979794771281925457759192972290074132443836606174822724630678569282576981784243296751613466205773075773528099345970399559649017598723802254892775059720540762505837967695287286500337207343840043443809459315696189487230355869967735381181359133257695701988582418148539410570370412718600135663961513952407649555311324972744281146889565155979233454132591219898681687141159376233216176142542216993688254758065178049955111939902487507825792157657575625219670830770613428753054240555880817734425346486585842156030299623402449828284475832678676263281377750452792096164935573921233865965323569079186064461970098348646193822117616980579513516196591285218959923692770409250359544377639770417080712052845720145684687766652435706009171032342774193165316934886602090855665674798815492664981745616882444361567492370962809692747343682901444314219367556823827164176488708014878079296947092056975049728484624613805154939803118317077008719436082552243725683928608956585450073244166527771019049943567444796948349201506785727670353431835641587974039749653056210627579154164068334385057710402605054803150078038621227307035062582985828019696213878896981825750306371613644888718871527654348829713524495134818364124952800207969030896088112588962091597949617331501284098482252886584909376681498053120993730016841512026055162064721926132992912961680482399557915107111154411680261967845108282136766701008340961945008134006268336155810429606306059750194005850730827969365157551013019824647068037380718582483044880820910158953559524367713630269105644413043634429053669758880164565443248859646670747988422151431779165372994660684025803162892768620709969397818501375436960153449191600929763495766352264130143362627553416225022631832070112679905038100019199520492360158020246531958690288474738629812303733344141699578000459726404886623826413096658341835681020555181722380514489089590806568271839505636166565434160625682103144595178665000398444483012017783663682665772444959684432721182779254217432203374246568343000600762170852631678310346311656448876665351933627891137698225965080962922213307332858004471612290800389941647867027794763265201359317843987078295013414368915371647492669784693178471318932110096575560399877040185275945367895989642503913467769582654232058969218477549583530241164009408258814869583227899879779871658391849412529253971451849872085334635102027209046054985515659106975589669090153623243544591290386997036693638101471243620236079890402609700255550404215793764852105981184859234305964652782460815962750245506889100814813207339831205234945081374903978976178135624385952174223196320710820208083731892261352708536565738072885459779446545995662438642433543870327194811489356061106236573373269994955143744122745296504061984127825145527807578114634516957343095887066838528248459324950589646239429250125977902294637703255598579361582495071485353125666434023838946326672907554627005320507169373143411862396381651918232425596214310105385937146637413837084353384748333872674695453064490053733365774259522892186310331908058788256396416220577920338206579149049745628299244981274725627139052163173027519005814949013711612786817445150061263367723418805925160498477342067361262958628230667110084897851227928642791447282545264288182749723679575577824798988956819139686293176914851301881141353595189441517150420367402751803579780676662485704857654508916341601300410803699477435440798763640619495166417467812388751033092033536060784654938676957553671911520237990128167590407019984198872471271800668343978854137694758534533372261693236179019158757206718356217042002074989718509808970342305905553593236736363795576507998104206612531099333756177077358147086652356081075494949830930651283466618997304974499800286744552695162748791391929346151282858437245556846869529979948475905674255735450127058960069182558339774664421213461510980526076686346941074626691162162380373632314497398476490617958007307045062627729285840942643172251268677893792940216757928897757732166812516841505704074449487158102566354893889227941729344830599553798742131211975020021563084542520958024934999683630439316659353369889209386983615324780990856819748213774986734385746215667855675978587504940856988693307185498148359015041335520141529256802238740840508567756439178094887665141918202936393039671014465626217185106047061232215299452664436317192482394758755454001574455611487885667817510415047855022898631699309285656892492688746205206112761223627827114454860853293731628205797304261076389022176541446450036569793025385279780342737405684585909403530087061530575811429097388032632825460713332672963354932939742293062441351293843509510154885363017321953196513022915116512225853531911697793597453203440364185234710637798987770429291765338501871521287500253608401118731677274403974373995830219263839969872947570160509609324035818429956613824961227002383030059650167108715017931419157973263444712635710776274993562746205727115506852482024745049942078358361719439626359771896515966533906218805818889167745554520306118452201249861057237445385066551390603270185865810319898311067981415601934280195782036839789695450157109120642744856196791044736021812457183973350301050379152205411744997367466334548798864808598552947632050694977479059557628842516131932422907463248128578451275608987211907862637205130108088487980739721283218263773269838047248851626021251571243715379705116594673183834067538997017427725637421423269490371315523156926198106363251269006028378309850406489289463923723829180859945217549343655351581495645275042026831050656598229588932697908885622291374226034150823957438011535028201429627815319043453073123237854600353686457334758723819565629709631273684656126664838354892604322352342407053499205156434190600969489228383274502359841165755704603061307560562227335932038580318125159522549656007148070628692231500557511141186358826955072335315213425020286552497223260384951367957951380297677070750201162208347803442458630283489932330523079864936580303515633892388547074177949355311934564933369715258557253627159473491003909626171993445431873349345973434711564827933316493162805115735292818246181979795925311055174822934080445813349937805283140126537227012037073404208028684829579688292379879403078169383010738245244855693309559491780901649155097031640300069121617542851663394841136222033713832835983302032226366533152468153862450715627429713930768989777187479714031255385566587582044532754995229521784391636447382737055342674529687346843242176820304382956555330792089629235761956334526777129469542855061694973848431722365451290176297881424392012300950912017510789700754759215057771281757722592402572790084227783629630944487340815660479169246774176979018948850004241863083038561190893336181892815597697421922215594721089200326279075257245668485198863911271589867918938781651458274701865585038017757960419185431317425069552148446276858494551828479687963505021567576191631023424259295383809032251480978428715524169980337644739694603429134390511256077962563153132160135362715025916505852589716796234971880126721115163360374215496398938151382738919609642446885279894199605255691587197742483936995896008639182571971933317851535928985695813673618700898709879814177123517028049099600743461614666354531064085700393929336161032854295664556013565915094022101359102734337536754378238393106945547434986779696111644773038422407866753597488276269985185849527935902970796689225526462794018149955742353366819122691125540019962642321529521513499966298977870775218487409662793061175144369964026503522937877292549882444923226301966595432023743020741057614112761606961477052657922915049425134316390114927756280112379210208010024956144065874024983043036265333909898283020821916526671619058141065312986672146653140729437222301489964978569009762733869097166352358909691092513052356635889756595527632250166468397202218507036620208071149502250639336299909138256146454118167233850826247095305829202559443263647076919643067497599536041548664103633664611609464002410209339341133696931994385487683704852380168010399259099609202974201612857087554252950418930544712424240409873803763998860133907795601750185324301864645615368799460532271892205484370410376234642745422823858255687266136832996344581608348672884343831976841046209049525213205386036641536014764827877418096923614320730358600993487619872726755786212051112333499411174876465391564126899794108427099097492406150005912978923045625953385453791268059988654587494868802655259425176332734944382547695592796237343380338049604184773222912908068402571355882786197102338120581885962438797849509195848969125536005004074279973575651232266763166416118571319530069101568841672761035473166428501437385550509437094609711732666914746313879868650729437342706148592118945324022953697210926230241114848605946408895421958832153534252630328141522090559841549837259706723896102593371253696141129054679494862533179475761519405816429094432528885981756106550127851395723190144973864393118909655226974729061942381376487392485134195589523512327572541377790496351262160089481701395233717263652099508567664080371337770281391869209627763352884896424209993583126837268910561644827731879945163652569838380230021634077518368052839758176059741132175536786472750194337427921667705771357874734613603615500441969422623863528543345034056957481644143260332648290187475885115487653938386872858576090204589570807486339545860289508655463950577492314078414120700873662965654411441817562870565541028234385680285180522761633553831937640390618186566750581408166201392464867259833083348608526625073892296001963010911528426803345252708432802959532653962740785825732822393637174903942565417993032384929208820295347396781187908922702772294710431948042940683971538826339456609050986041663318956304147991645119331251924715654386559289997348918378643184134607995979110087935677973644056066003271028459133863097203939557135852655693307230951145882153403946559997236009711298938815971245994039685305017356619060287036883820350628906225946765347055327103218221249194036610580956971550526521127163762763172790132216026220990644062223462946991243494089851556721331270402030419576110359502104097448175118636198341303871199324581150787162903982661715564158357290100110841753177373863084055408221880533544771127379383235376427492796511341981398293260072098349917220177462545410843077150410184663130710930781470496139045838545691912491577615440693742672104090228888361184189349963993015730475690027889818638569078058667153771179167169213067700416884929964109404256422063692531727427868080494917962819039611200415389969634559430141041918158576157444904154403099722334966500393494771177117964142066495528961815131885452817910718931083231515121075221231449419711922332655695110420339685838420899776473631403021180236097023287947285965080328592939149493336069720730889987408477684454331866665943725634862701990886405149787116692303998300256332511369578395671450525691333795201659576813330082725592358115331246398700721779685413905345909965467733126234583367968543028868137374873522998621158743705563060084976618214077596043592394075665726098555597053307741608979825178027748016494468755231256778762413804384719619472240341941704024833149198424468889472190239203427841899910407804580454411849891781316751362858730076536766594764326156433467659279128737919345229477013045291512630992454110950796818842186184236717402069115197248223684548945500210903440698965548905272974018014942573118484197077762821135738803988929034980806611769960307718716750279783471679942600046282750848179583677233545091709073274267521982701118829876517980229336871070526600128482787991395054181506494081882512539071931246868720576163130872724484325289886337003847372379049150235486283009522325348739192762286911529868577289063456108582798501250989178326391936668569085176049938947783777209181951847670934277830757951986315990352971394687921453284670734107361979912536254279157021774784693828541258856985755057913878940896619100471703182270562551737550779593161321032031188949700949218757561757559824231657199289098791186129204704123283119388121594173931850374601568835572811920961770070465237737210024539207069463615891687902880695869924023153437703277634824583131584997547836134485367628006723041678092181204080134316527351258536175674505350847863875299317278436851837534308568361208125397135634908659692329122942695356927251623338721260334735704378289133928883602760278418459255229950356868104680351319530504980890369862032620031848892145404050499289692601286050895832649427637844067749689572227868783868040871610489594431728102538558309718207543675613772572281250402038584969663455909866827556613744108757451894543527383476756406681324772608401846360726091174178250460292241307261483115632128275787371272888095845296729130599797642779047211445530826126548054726242589798556953360076022969358406779616716288916811844783860890471830129147928550474266694647192045744338482203188109921468822501684675028263827335592768665864915811112826238278640352148479080885546658427759833816877522827799884348143512629544209151703128052882939813901886335772733994867515131360296128548567464287582228184003581699279433906987516322850942283950562117389959122828989574034876962845323743484860664922630204404312436709279561202561048228424186707617469388668733252176276365667871373483331693569077083396180025041753878926636586622796738726952340682159151520526540788078002172282461551179360847196888308336063026028622959244467220037732736613565744769137498209314425275887815150258707779777971945616809528354901687512856124876691591188813035490476182469091610123778204824493946647381095444976340181060508427510399161133646031316110786938844412607781885676394725870103625698464762113489043706201666504508209090684915633221052388788912658983423223792578488890974713975251422278396131721775224124619824290717678825943014907221645702033452259050410917123446929563289729084908011937954483646445311514295625853979106505624812426537021876965690718925324430895789433017535074099649470861749987386331593489116854691617601204065978769500818365573928176244597712276311636596401387479838885053828148099645978476669234486383276417480734497087267283295178394214801829584102350385816393879465044268747904240833027962236599020075032278762905755866519901125281908957444072375799673205535953148111991874766131323757095100429324493438529089659139666859919773644772305291846408141543442180227300474862701461284175368810428957557313958832229265127762070969609920810908180554632475146442186155897309120092133757820468056471385469423509593672827669684503705950288186721958269280823036093576953009258287755567667846432522091320905955744162099868488268131506389262049507491453056901872060821444164412141114006731842259560301385244477789228208300230808773053099542343859672831460541111876212425156538576140826619362957634947225417025820906004804302874988459041804530474069247247036770369555323763918199869476263328264546555415151494940178072183737190990257676007835571203034348973223203567359138534314420305954599686715652709623155692162714489756021401883363758447264267760950389283854868520555107399931316890377985585590554890837365748191408151025115229829888116150429709530917507190244564188795078936484032595994757620409828353031025810989228567948521930734331973544105348760733772828866136516958498116801159605424400660313304858085225613611768403565926755141219773703080548961204179080498698969558736269156634783040168968999780099165425910352663963581848725895777710809534667183559842327189862749307461088838943065725980067143550132846466846199422692419338834324519909487109480381371896496502165822870745584736339942831354181380289422391244123349616111021329935865975838422877039288104949818407796229903497628799676450582149838870561645228510115877074921458013329978324112521503343521173520788954269072341829200756288636089015424689857732717133905359694431979994424599884593506682114514067336283183779927001268224475240692280626838084199593253544474655633956556843775233796664640395698147665362689164741067040225156010074360198963782575284276062491149583661135819796627610009785336631158433931595630415975723748625533402898617931510353908124263480107958397025804278935443983814790927805811731111297343119023833993498121360705335033068097076323230250998419425529165373112662787456044840225661180678235746050423932553717737188870540804745685704689805791524345557153170710629390700744567327469134058097836253441575802928790350008876917638459520679627315978072220497958062696402664856000884942341918591092920497296938518878765534577403167771565134990170323452522730283437428077589160400014539587707393525840999072187785623076969394529096734833097340931716190493253429223066712172838518146921376183194075433210549286823256132277620589766166348696922551990290466898417512429657530368854483476430310411844594862063900055586629114977508018716923068250783887955189400944388689384915605459136410366823831901195668314085493761580346732691286465233992080430525269671361458588893654564721171714673733314607221783867687295187641075136978368981445896886795329483711551944322826084814493743107886729912988700322311957204328106896933419242446596450055520553036114881316600594246817782424240516588212621235411570484830904636665319989361225402226632771420614419044574872062120064492378455924436842428036600461404700111729999125707947957880148793457852598639582411110419683000328218787664844546891218201446020069858405037570722329359813829138652966012920302734789967338653197190001012918965438672483003168689263319710439660334298011800545096459240534721759429253459225505182094970706434533676686452222611955410510667585577110901460915144303108094483372101179065995707130018016042098433041301387660250599346389989474406842708178121876123216596513140878615556035469904623770393763927944946817318075351138708647607116153855888296090530139294327478138504667341163748988066946654934376324039493340346792053648081271411155593415075462783476580797826648186699409892046621992960752009092770844222777646636901679088441399400587659835200252097838197660923072801226039065414022184122453745377557128446524342839950058095191004961654592897862147792788070833628954789986000039183499365473089337698885700548571950071686304626194723885648888293235663838358893060737225494543953088263788809517445331087440030906611307744465407424025547464201662461372160527553642228149206148143782604297661143057067716730727053830339199698993811349901027275983685565044212500646407260215625619501241975879227839417668289340264452285315923160028818530067573289605142427252515447222031584883214336982994438967576415657655215070081736740564466066453012601901900460567538539714022228717106985561398240983458574529435083971311782394949500379531130963562737666934537750319984293933723266990591237380973059007118678311404192909401176001793546337699461428210939043742897635631926252986218301130094581451495528388634890147092944604402010253832332494645988405999335969636267107427701037635473576316153554610278928944701694269392462903841973933707832312183182201779141369467542952011900364961652986715446439720148650244444885383134078929850697340009240383289828711050593825035190721693310117391234434695651627981856949024290447916524841562171404142646814715127267497682303432413339609530131263546718796339332927415281353059158539951976557130262037129975875705184934019214846650281177649950759929076306941185034847089894884141239361078515804340008537302434010014713719820016035264373128057997716224841864639927790416060351971833803814029766498527176143541936718680656348796350701667220554073970342511852204442368259051924256108141158425431331643558306080382086968069931868599323324917300721125298152220544045144902460535659749111435884416023937198986065040255704194302485993667090485620431745262299402960947831532429639361781816144358063597019567394876343923140227295255525482486636508502934976408051335478743538814980184420435069008303450766109932835095446681266900971785258240764360974595650003856645015191076883502388923780362915992643806475970569231681144794787614195590381202331974211007477815869795324190755091043851998215972531137190477771071728391472447252491418384705342943327668354471988739481790638296876212395281230505967167650553957487312287316730907639679679379143164685097946352257595153746395499300373507291335515150414170999000012410607515148661780058711203613809084504257463568556852285391674465476320843212882488461466702536420561585729248894731630226361858770859887672238138919852322128831674313783019768947355853028969017187426591129765061898842242932764617105251767333042579713491597695366251764037598492216974204311400626505667134233060257611784502172117451383291830510354522394419128639226046772017420325964339035099209975070406518599501238948393603041048654431073612975832766858048368912932740135258672407665008375852870679960113343545541131828149474782480332156356968143246440310835610529845588449147803276237754398967107398806647662153385215736746375205628436687646136483854785500168965157239927296964985327340054669474636270873024589095853154460324559134360473846730982394757967910648271327288030304723731239684147191196269939324844981480372230611984424867021683306769242657810261238043790193809035282568972504676125021889348770551638847124524442024289815370975336203867280029806634634451788946857199626403455635607540036244456648239739707206867320224160064348332477696533197888893006316736452180215243674159748354608697002060233928836618410563336702612695410247801077503062528784847086369023812227453933900061456862872234553372141181249664054269754396143315914061591344035182266503819586692725887074165853397073099011556526595941324807588728366282316669989523961698539773994528457894522494022618447263538746930078239131219434699394148682581086980482218945561018398200766998695428169820927179305144132151943583953128804444739387315686345534406081424448395132417172783684457432534453189699908257146410460390525260794447874332997457267175632992184152650246071981736744357085642701151021097500283327549672310522234963095183939689815870422605836448150410497791036031933424680901924793521044511057742458495399896314962027257535337508777057731524679311507895628246783049341052753871014871330486025819539119690046264006654445530211355183094337077672726893350331781621958417102284517916323498979701983116335893466697566838495636533540787273633353214544436127767837732441530657858553361126617031035445149558299172926036983006458695040285409209858132993488113534794827768348783106932839823355150785962208924041613579655930362059490291076827272754471849194805605798769248522165619201436034741779139058432538064011507844699950543156611087256440127259196764779510305728706863785960425982364231200287697724168487175187357887919544278340658096127379680777848031261220086595439426148536369084016943667293964715872879569681919127286893008211796810331439155368144190826803814049095150174894149564023864176037497780533642328548288060287237283732636458192285735824964856375856820660790797884228082746680994336642743003309142053079433886840752933021064196575467779044215807756319962355169664742268981572137600716849370623273105600697588155681219501979152441990620796571398222518162790754751420387946842304940997016955061123728509206612446600335221825332718519835726229470931905125899348911925386459098436524112265809768156130448565987928655684972463981863003862164015844142167567513153601142189600176726174163700008385313147117512330402738818006926470042056146844726481430120663652952461949529712453031579365446467815478524221891831694495006023471121984746407101121089459811902763089075527954298957735324110741152145814157248494017770403013859100029411359007877271481877217861995864213287391065065021042527362299371978263769680677127811632947427712226472711205925307898355540702331782014100464495093336201894007068215415651635102209253196022130915018042347515887882941349605374740231771266334916524671564208737407144731795183355230825311251443421133135353068266570630284534626090299327364624670109757868304937849357096687310878510624544643780547891599248142059017527894405850907065291527910420902396254190802577661581528236620483230314461247656261997565457359810151983540898711353734179604335768084706162662240702843875132788412378733961210832377772838510672255296390158395518801389614783119664932324118766944933935797655669283767259793348073607867309686574041959549228633060263562694629922844601482236139037858501340530509302130859374686683734803793434941864844459368158330534064629467376270674357554038697173799374746264543530507548517770594184150875152682127911537852056421901569798903440636037078603171165473789860203444283024877673574976165133906481867847384924277621789975009134716496180207502506513761174289138187555443682050957062646846633052344385168878896995293967009611013724225654445784562686925331026695716999119072451914684639367805107594198738608673389017484359126939048202294711226877354728462351880485141491125588926685226292209707516511963280228626991192764431775513974334642692066865753189910864373944798564100780200454984354302875259011043010065280782027089227042073257422477950782045341249683883840338862480447159770732417620203285124022256760294573367129917743184417557411564806459887193447237174361771874566918743645655145729013342635591776227425030530224328959342610577123744231533808193561385370131225695575535015586056354510358544638051921667700768674481433985065124887958448290461200947880324383985539598035903042643086451473855979678613857827112930007103056413470213169953252525550349341641851166944166113534240012941655113656942463893176667848173203830486651098511084722797371682472566706523702643172180675997537203547646015125009000767124561062998675818890713963971042575832398782871886606548879809815514849353292561909831336315296780180714073500202994486664135199007999578059070432217631671246290004900256695726288966323213816903002936448113506096425377441327575263332110412269404546067759391590325978539111483380707160786063833269177482850736899798197685987971687834393150852187761889531279409469409230292651841146419876457629251515913801971053045106740749907204540140628926854072662349858175777042709718312904205196908504432010481630843375569375157173583905608836911962348685132500984850287857081322366696443524848211557953480696652675462803812047212541490601628305797163921463168907954288010539049255515639358007557794574367192656063065331165497494777135530330075591661352722653812634227508448046566931952788117561134336213117108174750598762102953998644899373204629638578828895434462457931577504596137567288180242523660073648943237973098551348512451471898831954174445703069483876535573574581354108064174400583971729471365825696555926018604871181643969832782546074374352167232679834894900637355827304915120659225974909442330580459953360983110776618803413709202361936538419514157499917050075955113296296466447541247768566039139395276489122372659295534317087912669443685239158857300657607681637932973989144982247847024277394056530876450859735086418911458889265545301962563458078398073223379998961845036991806243224553310814277473277313375929477094274640044310060901526643790899088782255613317767786477981463422275436323786492896378624219505617443917326858607107703075660360278574832979715469117661447184262875216977008269692627660613843352098504831195484601702322849797905277673820401070894607791574354245012461658037048668925188922665265949192837183778703446758959090208524825974259747427311542502599109611143498358976807587626331894256909944652954985557549011663737726503957389310908128395702616714694355580443669130254648541446910623512615190340936123178380458896955761542356930313760726400554886443784718008818304972362984514417469825981218353245540755418323162968491416939830166741084387188917826605702671316870961522489013477018113265417669267492507977083031020401608959456297053513314742528909718278515213507155864138868966934857283784993349301732626918409303735772414581796000574248524951088868468251991434109135932660715077766857350073359578622626048060936898820569361891772410776878245472607240778628143304193899550072606192302445962349477268504222959460350593537046918445917964773357562236300594001670174969473261549209494633227529104967916219139651114622471316121040007178808137003257415821972526579582772553179829545322081804952970047496987223555008049037859597251602857613967519826673758482755410884386810856841891744578061252406456954219289434867232390362005228807787687683192854191986720439835444718572999436714832121012769810695144336372205834776166976708223128924756455153548399775472950524524890705684708888802825613139700693222734787813597340039467382283542650487534182805951442948098466939653776631177335401364837290856413268921037234615973242344029080974819214322891989481768183549524870275858577362462730520419011859397040428541304985011617090646568798167594451091006327233163642678374970991174632153188260223896421688237973813813855877593930412388709730796091534565958624651097869278135694475647950760443316635608633907053295310399709024054828139097458643781774193357095123278542660448643431220695118455783449081433034891557272362029234629060106102140616289241443127064408960902962646853221302807386130425433305204409673616677414269955044838188857756872907837824505931151662951136047386975209576881749033816815948821704366136711652386569379122497003567136206937960477547079177239174628393884828946168388290854748995672528955721209111143444134454447690580257647386838834274483502243941873088806750218634475870251804345234527777462407491010959623448806776236979087536093105508551694870411764456891262034698867584017274947139584247984581571120337235604824954703113980494879526565113066903173296162852588860072848919898442062673025037129763633697447270763378747353658972968914318862185854757417714676945683498006706764891817108637535465526737910953633244915743276400623305943544716995805068218006285756178134404955678640701781552797016794346388975149803231432749627538063949003014248912297528974331676421287071458165433642697260369206219338253136933879547954199804619234415580671515338718459423404280975511735596428911662397353778274580770887303465724110148417737662482057728128336479510284660724942306126240690261309180323915389728609955781834963797424832530372072557456947867298858347347515325286378814423039017396730578924940511285866842564182486179559532208721375754678210469434625943023537846293632116981165424684211153973913186379976752018231907411464523634236625562437151120861419242367802849682518588518407424032006399629736600927054323328406515951844381700635048525523924423905397718873633881460173892508015247728485973363118332089240810923745324914291574199225059823148405549562333608492406214597932572084629031549802336078752721017764394609903715561856803058656332730230336859153060555777449927666375869243709886347406461988424302193026976814146559571658919921713465375009039947351121233780645511021344825188441299193435874502114536550778268185308038987498375028003867439533715346254400012626587642978287247600360507753313754368372627356066654528691458926409248159991013037605825878848830879341536404303445307652037494443802745651916522751295887394402884506049999545630884382983464750273082378504519322088513270019476136275082026107020473783829194552709319497014308914070245387855335825922091313943984534637232521822954328503906488285848951088490072582607539917329648624523884486841124871272195946586920626948751467385005089350261011725017452967324572819799281913950143093630294625381286981539571644735789625568977242584187748619701031975809976229976319208477810383930978333956213812146840307993233941182683783835549449053733790927386630786415345612606934245481394429181756234120122126531074607443334089818306057887096344744897247293630105314243841708479520875310855602361407744827448289046283794752383641698557889200879535449275915204615362937969165711537234715716191835794733310805624888701763805481863596917038429465197691079766056159477848138033615520554159792926816885263483537556794664197340768021368731695230616269394589614329590956387355855141361732998686123097462278439728596763855701187199563088188787307737935508981383029801223430986223401913757189511221714823329150972807571422796916573872593268822677769875257214605569548992721760368003895742914252497956600490879718273754189351677528492749552812973033070303012194975720999453078726027196976475768044231381118877797421777887120379242218077791669093909602833757523784451274031721414693769789967210959694783412813175201539297850423249578050403599580199255278227558535796144102748050698638243916926527516584891553228507756787994552451040193668576067469428818676478849339886062422532072251601229376502332544849589394369870611369460656757127053886187291310511189547503446875431538451837793297166404817928952951019838237498005221641565363075390333217639563862428078150676849413755591097231823461730375397095027578177130765754208569861962838425619557938439598522015127916960146487024688065144739219100553055318191639246599287672503477739514505749663106535591240042999667143736266843424406484063202717536190918802236134801187179644331168210849665885267387875855984099704886893687126201632560565517304854553436638856044771540225894685439426258213832823840722062184820645143350338678671973107162958026410299726785094194665165989723638469559698032685747721245727491137701452871617465015685969303413344500138083766345407808583209996299072626692963391684876509833152288257839651946102991002408182667851440107335444061159906290100887451282902944369721004413114828660232419169554452072355392516457978451200505103061754992706540930363544684056385658807930590724313955034298353751682803088387050729076903643504780675333555035548020233267219951565516815130919731380008232887866672443377022763767480438680091110567991144190541805060515669854044597629702047539109847259588136483420523445398894063510576769862207907051092721596082048470168173841543918915432515989320489508969892883782688807906705890461162375993090903894536523475585148316841260466784865952483883740586397732918778265824558890493884059846804228571624865509623258353092353990360875910093710449749426567715434893682313319960022032521948521220650936915959530184919276178303032596944065039029326351445016303293972129405226908961913364759149258265153571062568221425652898791177395133731120403055997299518281414785897446384721152085658921835899469187606212896003417640472352369940194002640627526480609787043337548997333704169974539537875350507507102970789550851299150394348442752120186221713799099552915624889749330959294483078359507684333314929398582798161944436509640151753800774812331818466199336901539385632377593837030105608374128821152039551292548099248098699878443570214866977354115518542718646136513421954909097411787979913520820151792631714619387940458514003886383952565468877015417722279380354967274243924692853070587841280584152589107337473472778301700769244649815038287612747494813993512834544124238582356021502847418426641885488433224399776383749133746166736395231870235947176131827642515161416267525661648804357717933959670341114994232233339787412114800286679689244580066003422293560861199851350640307270495659637439143802336734098646870025736128331723480985438221644296267866993324940529986890059487476590964863343586919778489050855914445275724208301875417149756976203339028816925664079056746880800682458672896294356358993747674460909518890510009201774861916408842993467020822388507066958865444431385981892528744201786788765637827819361206288569415443731826656635977000306568792633300866030297299777909764647010051172998319482806003040370346866591711667407966995352783620054908301045941068070904579312420859904931461046070819967485722348891886789371603691432934913563253597327388285524311576605208543371805444595720965632546955402824527995772253567857598880011845253474267609525550229843588544043734594964898736855449450649833449006472498511478224425563267153308257785171720464517660365103584953437536436552105540515103225451343420107179418771116672279026278735528526665119122830207660080765338060033114377209564664689059872696611016460065216696413031399041079988976129962925544177631452717570515388828291702515436300828413147634468330883366185532109167890978143932273732756387714715277742907945072475259624761727373237732606757492299834814928944245787594453956935986356525517518295901024000067024675168554659028860044218418208658093844715971684791684628518319126588578298682001598013940882510701061884266782342380461908758288735894287007657091015517432959873478949788927062735894640469088487577899743860886130099695386868807544465230872416906682826308048663563777733719271343498858956586501804260316558365488380389048827578405700163292219002259815156534015432014391321480504755099652627152178350813116268715475819952963116797415887688926246447737617266384891785081170848671680248008857877025850281417261994162824429595979116839961074694271815417851388675089624110110882248442612358587808814519191625756198845349104061412314184608119856205397019867880211118237802251836682319503984433151368866330619387999204523833932710851066285015884899544306045849000882380507789141756084620048473088948744622099482444483687216499251198692009673490686782928017127312778591092100602216900377437021167913706610810287284019323018425224176807669868059605942787704105082850955136777895461392124976081350843677648558430032304499873948893141414712072514533122889935626231552403017257219726715240331337207119495427940756359589636174509930961872310448621376527453723547128989471822157845703228145807248591466281613270945489085939418223626002238131384379583209255628399430661505098206856616759903924902054050705845469075279113126356381302738303267581133815180446609629072660576677391506470370632436021223133577608850342444918250048342145251566486012266850678018570350117657545269918275805089929809775728722372847053967538438979071185207580418978499907796555542207204700227041704537248926279244486718887932354322813216994788335412391349881439771134606488043309264552019555649060500462459997085610997711075806712527379620412085461919992944470509884708330034130322628798643247064933880623879542854366793211585603863256412882230068238713893782605160789148462642694975474287737770653495720608625248836009377979562646992052248282986769812892311945968630463832417303897299992867362924465641283498584482615469734740715491794140886248581382717681001177605713166637339527664405708572055105121086302341681744844498450952957826780331284989317931576574240691892407111889854224757260366032016641981355406957283003714932594778446659725720113217156766259743569839968234506873935613016683372533351961673102575117850978585883678907739580179887169239505822304148860730531021865672783417173720166372007629679251303635468621532989677674701093923978153410980303604027541623599329977382981488479480628819115527095648255097602888879666421055938905827805086445015084694603553568201147564683683775152060191428276700434226803584818799181084203336747210026981067312975501208364944122332108106143128498612254535419740479515985852602115353581364610021655501188756484895467760046175695907204505813391507227590617859788804666325380487919146068741625776442671990425385410493266354112830578723970453654180360159685382655394111096110264071576474752144459912023756140166618279629433584537372444747427630844235516413607084506851844646157175498043924956419470807234441953183659214458761180394201598000949780134978211828346082720685229714026985150979968933340482441263426233867882978465025013542300472543047033198224181585653124745125197479690551654440842265581337526090586435697648926571418177106574571669334519362844821940377132407011592415371729603359162924553545625778989033426327593775870672380923212688568907470797813982521568055409814800390112578516029321094137165513675727840847261805332135425826093870406698221539532019048666439450039263727400665093757410370311484258555420790139707152928603123623305705670753664980802359687596891327249715076362908067815308661372156638739039940077104550020294488575600235217285782984327192489805510100508730147793166931095682152343323328038219448687763105150362937492937899293423426622442452748605319905686934022985101269153896918719091614183682448823774428467048088567951980678804702044858672534187094630200711798054982693428144511748909227840176433629529713632287165846953429692719806512105480082950601246217582459993509853834631126990700984602267996309510884157155597418783761330604446613073000316435715443145361133639044335981230490009996074601401928808488779952758679202221719624275887917962479271680806122514613393936282065186804094263124724157877992235533721275625988236248025495306894822033499727697547094861834301949935667693086494341586325173308075966633590683709191314694537595139079233905428023560520850820707088514728325959365748544238921295916608089491147641243507670031752613311768262349802367596146628500551443577257084558680947078326492228315212683059315629977369136589756279507878278722015584365163620477821432800854270935981065486579841651070355292901847507295460156892049709252725631812462239766083898841377432018817050155099568350361406301878081330992425704120265884345934625642852607000829450941128779328425740126324920533162275825321960685324228909187325238307699010000984499490075762040815129865822000795161410145190890068774653989935339017664208324875479393241593365222591216753514630877818671718748939606792606227441207493750529826750287765866918466441764184345489228902077866035342128861559241710746005574790969959100715491564012411860096405106298829514319629870890765219210822740334789493461962162680447020136189444364318918591805767374438993333015684754982415944323995434019794816915055458691160665007803529344359060358138900036464007845026730791599908901153401653228809013250388550227152150177470530623944906250424807156111710072736653583960504931859949916694930311785119471411548798297193701917852748399493312455121166196725386763368440128319341844308388962768598386795145684556729237028222784402032833517948837448308986276399787141180412457042986779999275617516537139329036762899600812867422584337960176348264051190628783859449366007165297377495058115431415392855013753191655351492504833449681708538326240918016622916005937689128298893532622512021218119346731206424422704576399940150347462039351468051152461579294742116856436846678876809325471999258188777159397791341028894910027893224282548655223315031214538033282529918537639822046208269876747962457148093172271737961951445919337071892199946317456854875981590688034226000002572470620198609781347757098228761505603092071612650563203990564053380029047158627385782293473232916317879127095724731475790315009325080113586436300084423606276190029725163795195957192475428979125461903429821551117329473466143244931127990958607316911683193635573885247672000950882238557452337728696849303564861345149736492508423927352917477943664947546720519317423577124980533966928594249945913824372608662884350167490039819516014723816942235529625748937046129416805062374834355221362282357158303640424696046751738453958008396009316908340155190268315608589030281765393909413672736848094366775566967428265254012497537857708335761055477910546093871979229351159200299662144784990273380067543056704786914110251055205731027866815812899676579642924950575995411696374965865358930264435732157959739717547629921076368146263369691443895121903624638279935840891491811676692435998073695231227392044922651215995467259457277081154044535566121935871418394238367956653630965738585285197055835077873573621216417431327403648828420331067004747979263936587517526628719870969078766373644157812328019767734149212479272664210778262073815440253898426058465323821516833903604015003502783903397182604211580308564691297532741622606886080512309101837594388715132196995396809820120445909013705212486412979050558395215695950392074540890230399735207226911751892142441375279919186834185625544040416386528955450684700958827342815153686854511395221237089994640004864538481435888401108681094393034250766726352347827688999752526267475024111551607509308178828219438547007963186305157573608544380146395933192759156409580667353520524026130921608717882671008989058854191506841834895085317249744963662296640377022393039936543893174461721523331803205484866068395161390544767785464412153586300757876763698641146540563119500462964821800126493337255179375078608187224691210274352026831457687283294970022973248084300799787590580928707814912736370916670084667272315550175824795485780410267130107231223235111239851177493276223469532295540436713562989790585786917443865781546634415920431379063625637854954029652076008980151163311004030833062930683432829933407449897846338955723258921335398736132331632703234176029322956944873044139819094908623630725370895263777519800349253713079925902105310131281404739793652884262576118517175649904116858066842686581148662820488037436924850104123790181855327907872511244361960106839567513709592134961045659919802343315509831363020725614078093181982692214208020893934289706208078565535512115349656542320899780441722040448489447415321352001987706505104632302331196601678811699087254088652684511397996615966630166768392517673562897139929416304374439903467267997367082297393498063096322001025102156411734626507206309070999504800348046217983640900469123227384455155012748068293463104673475413983971262227953199358585577080454071416191057203780444911379447315920791374632402144951539450918928166171342369313855016998722570669524760133709368600675484056940038226289134094779946290345299943467052992133746216562737718763772637469650617051630361411276979422674872783510225000459975131124833861217522343891358299001782968896651732366489872710802789380945384730759420758263094088550939280765920616972015012933275475198484245945494220869243270376381626343426057698643170367745062897304186496846947581909047274012781044570631019579982577374199688162795278051647363024811375383661186437280903099473412203459609203737275937138016921137090926177508690135065654898847005216768054931759645581391493530748777014899073057309668044651459623263508951873865337220452409290877321382371182886229025723671184163985906307447424591121365913638667878023600927624301031161664032885704956224934529678488405994355525733258693951151536807800272494895888914819391440798789937820688973688766659838021707639191009820066290680620742553963496972445205095409896673906556297228979824256400309913145548218525681429387046612991176899061277673585049821413354658619592894793377100294108535007349718136645779143464854085059392333201917638065969129492027452910679816070526816626139084077656755499387941920535016666759167742311296972899752589580914286649909969935129169121354726062776322405345924578013074469113667421159659335288019853768600298685657149166663371254991631179712093443998370543463382988102264558088914631165356497288107874913982947314925233938963010816941519159689223890785167596018753753060968294645769417601893613550403581746135198268138190457392201760359290413740174486385882325576421702634512805588466775421827236037813402355480005628000009767557237102688592433839649918487031049510740450335814338334939195997827567448953225380560327373122820356989467750115411776981809743857851193601060192308934831410011435463236030736499179845452124838471721187231718053108438379018081806399552181841499313368254166216844009541983818483298855553675784335324947783695302368281807013869513764228469093993541775787230505002081916591249433032452700699897663996610025553504059755998282815717227505347707773696666533460092400132163286662159745139809879456232333331269288389764780890166692442270385034519402795716401556667085722008519822598520894329733553005838977643063739946198223785081976817965247453180764884504634626133814724987318047399566008588008226416839055424371396815521996245749693156947914774347183578562464537290513625127754922140173407931761615569912129212792627711066523079383128659335393815611603771374470618316113247555857398325642312864444003576670954553697517889105717922968488839257288456268321070210995604270893942028187782283488747010116135328904598298950449468220816549933841199898920613097416832860082713593030346633375206838089385622978442314187204065301926416141224284782793446816606313568646756413260722602482188743607698119948763685782386621447020973085781947946127015062441353113887081424182479250443795533431366339542046597240004652471557109155240156838797341838352142169923096789219371691441117902573627586792869823384008951532230457364266305846134767396653316514485488887849246993730140469578242014603498782794924328551378649668022817935385761673481661788848543264667004721581969473308540307105151221922128065912417613437359706102095808302416045914004147343576683409418527071984430054470366973526808460887290784848877728095069520439218623546738093211325399497146050930765205644797582168281671422339145798189656529981093852870547393605718893546906814851010332731672820253163469962442004283678954618578370738330903139621297648274605718833699698417598990822323214779904044977108858992238288395203709593187389627980762892800018096800314082328792805208400940723785418046329601185681437186934948385097952103393707981012876021861657854867754790913190952798344399180420370739362126469923865695568973611021419381052690077475833503936297973576027483716644555130590829933081560195172368978366304663726854917335882358011908403319811561028204034765970245288905492805307618442552687343909415134993919585822081268921688889375815860280133401410247535182109583633876521780045614074649352078309192610710833374176279633439255850661565578817621954091971632083046148982047952054819292574418263847881431895945376413353834536504445466235373205385548526603611568784800964829658941184013598154760275799027229761279994877299819736270410061284460690643132068710903489064577286957224813110502306527393509181107570971788314921198364858543871246208953503312824632169215476305577283843953158458092058294074246355695097900020064468404930360859624074232053378433540639145513849184900685470568993995729758465385135975492917990720758378088301582877905590679070235580346734368068576581647042424656422522148385066131070230313301798575248001877931512688348858584430858304525947520017868160576479500686180777111078372933371753277245978751796485922084108349238766989758364446523871006098328274297314052175067855214561060235633538005896696325447732382197073950184233951582929472792768154000223579630545911198951885022931409336766529464019484103727196758476834574325811917488308019731386425603285860961966269903297467184681831871430538153706731230996501384643939549486088005192438619985349578649485946037497186467422184151825305895644287346162224441573558216276022727872910401696839038439577579441773503563606172568799011868473941700082150826284559185155585889024919696827732987294582637184728898567162641504945960011573284142638259311201982738944314727611218880172728960192740076831125780316219640790057596686125735646786419645443704899842199275563642434377025163371387253224244868264903940902798313148790606415745264377680798860604120576412035329741249470367235569821329668106866655806367551625480914741994509129842571346738428972613864364088945561493899769167616995561329619297406443577052777828090293745599777511645708552937712716264909540110229532747799129339648744422789816012462571622185952860026981506163518436842364605578773755673008025840391197452850345684188182586