5.ルート7 100万桁

2.6457513110645905905016157536392604257102591830824501803683344592010688232302836277603928864745436106150645783384974630957435298886272147844273905558801077227171507297283238922996895948650872607009780542037238280237159411003419391160015785255963059457410351523968027164073737990740415815199044034743194536713997305970050513996922375456160971190273781549916332882877040006575706746519634977520837938181146130908764737865956243305799479812816323070548365010771561794636119155345453647749482059309049484983403398900210478616673327950369392462257170537164925787548322907324926713469802989499080377482511092278955688979198088148340908316852513353582953917221177071441497457690708198944444145897228474140030350235320371948707382629318519364090832280596462783761021959794197089096354695861341181793067816213608491016778353212556334634900218981460422559295036695624186927373277150220875230996646981320321281894547856802095063596244662855007619050413935044743712348852233277362510045059621080672334698120004300514490251206257311759115423194459672604978334043446837256361782550481608794062055114863978330550163694700763877737451951165809522047420206498210244405600199659090410028553406911010226116680720077483070332613842826296809502470794656496344336830519708820348050486447262317930876957224893775211197883760078456039036588094215992925010577536823560017200740652369247320996741977800253570854061779444288668158973118493810163816207301564264701629841099690071341323798188477647769954391111945967670336972452475367740100245826515930775281630054793397175080178995205652844477961943045125028904329706105087460449296689754225713338063324703450888823427540980621451143955380339319070539273814520604335238180389333294731479058055670704161068722878104529957696633035133295047042455025105007896455025522718579233709218219918439325377813867856501437908941300209904086018660522813132982173525171641963361785308017902287340033710952725736428650922035916343820273976336550966714177816292894279884853951076819102168116996771767808637934106678975092170504215586443706876529348993224422402736497929066684207030578225711053794421579001328030407849457943151812046630928415259240468365282802722458530778415894238973955590959563491357495109757674781975590533726939365214312682229095709865061371794527216771982554422880460523074554883108133250414993278346818206658344738336686245445616949725177427025468859174623194230935506038899235355634465872922507362228284298215287903623847595555861643755472027361518008261449816911747946106318456523076256913444108685519999828516339607457179708297277649564514265565820512624030596163386833874613423746352643129659452701021372172174899143552932049575097114259427207988929665230498875939525378121455723193310306908401949421187085152057341162141057754169172458049623695129329266475838571933431255061609750900395751206348757597954929549922472663407401881563494053105296044658755646209433389479417623956283563497138016947322200667916212934359736711005876086473715758816841229695008629370886954181276957657062186475937058907462271776743159898679349554231903877422244461369930608887563956528433912743992323879688329062070715981239181401975323766238742188337107032853227711421862644792384439312303178700218021562639987338474531033459936068998376332459006908167588988273557213047885113271446872415203531113385922886513458748195530412643222136785838554235906386184527004872318321366842655547536671657604257449598236086405428904471433744135272165759733667275647203574573214029310643803504313237884247315145493849036224268497681228083525748661635466460106201757860529930483782103871911176747183168402671434748393543908767926738620851226366741992551086776823369959497676641306154617472195606274893307365375322020567986498800016718636180419553093960287572837098883180045857692835635720973270499880248186222541144451882118123960568091024532837296904367389519436379970793419747881688851394282153281134235557159967323757395291372688079847472922454668705309367225148962714178699805009860029769643998742402367491293368888623320002918809969622719499865109246948676878939354610972681914765375839895074471134904148174551718692538594595914066921580392591502002512338417715323353777714411335626234857443700579366748826863577442698173924460752715752541452144532696729771967083177542485173763330449499035021390781411120892711842021229895194509841078229596553149807056368584211640470969655598495996502196066443891274626549137951452506962164902795860610677537082772745829001377166105892039160877761327357720180077620084672561139726955446321298050262462437559674883284498421624407167625698962963037657072616795024600789791978417738625962995312220675633164839733184898522653981652123760516482754122962418252435716490986291578723875643202296451130947369760377422589606651707138582060859459044393027580647200760772420850268750850540980455220641303927190513077516019500661771133352202948579810334162756570933980395161240427173515133326301775746417394268022049361083326438447021505252502800006313758218552267933266069272000780669750969812412126838845369690223553801205653987552904416228983038785045892531332072131139979118202364152229651638861169947094939577913394792762185507562162162096976451774283318762489454679531789039920081939594032103107906535408156072176560026286510668583348169058363925180248603128473296265472716837265941167209546823573228140313809177494549086004201668793752473485338580566770585414080421249164152317175701060621605469998107297672251211830673150050346859955167019680513175597536223516012973331639923819182798933729569432662217549136367279404967937613587776756284163906017724310363206057121653312322295709424380138127231072405172884110137376161353809558089322477235697300505341240898600632374212202628445380316560176990023178611488630539992068601428536932861976906062039599061451852739428086419183964740358257958064305719848456521109200584556817819146750850962100037352206754393186750130948372575358134764101726383352248569944600688402979466696383997087408107972613853024607863582309311705470745034087417975942839730532279651654628720062554604738880914729041391145902102098453750525410634854729500594111299009083181542937374303449162855418753019367182739043950397833623649807240272638373325330318984800923247632857692046261579881595623626547977546128341091545711058922706319214179920123445054794823902159368022091909123671448893347154250460637176466494203336794546818142860962750789017263948389176764108535231353376231346666570827177883319410888111512900340889505968067272321738552518167914776636029200839322660786743083715983267677586516230475518155710392343449896623265988647120760990200066217549541394780081576293153321231705344545017560890692970730211177815243190394143238729193851353264002441413015327577187083731386288370775573775501510985762384412349290668686329767292882000267072698037610851449564813707064037482761139746282415907605842703017378984915932637902122344648202289993018336773855901000842466709798307388592983909755759601184860785159265115305194500377170069207665659696250455823301172945347955403119907218618295858275323929297173971393688037862896047392784301030403822362075074933654816120632242670652518459717852975084730874291186982826192623340475775050166715689833614539135420906197036289277683955705370568270592211780132792128127472917486693902880725171362217515516243491816427405168997916803442434845291080521226566370903470590375787604106562299945775332694897101728669831888371566221728867521862460012666621367688302141068995074411683025472145501093000789708043615421749332323511650891095780290013236433554088677938777415297653062889600036526414995448696448272814598639718288239076047126398533513052649612975892921554615859822361962103349063577041141566783344105849778447821579773033272887694140121194995685220794472274317681288935486097974678912778306633821971629947558834021261434084385445784856149860947345974361124941333155622962738504639405143663260906071936847814574625923079137641535865683335565243772912585938965278712700505516010244355248842774999400145876536133224687009006643177178605345587191722797401084965904167096572424055732113182637786107300798891954619119299175971209259696486763699980021710754840657968519847683616979086196770071358345658524402995744209351752873280046093148999031787596581886100489711173171060483666014871744807528979987825533811043048176958045820277747704891500851043770752572271235480072377120865854015845708786971129500924046682807250067945315122065943170130912524351356800765002527084957984274217839331807230414634323491001189313730116413279309320138688174707758363731697269518682704350515766922816185264247671105030249317042867601317957384644557961158713174282739358031038431193879100768318400702528638940730599948779416599184711442412780864562738789255661563507643948295762605379296805523726453937281981881258619375896272446126719536036178761669768125025094750090151006298433989628357146212968511527156992796208974559490142512284492095806479832165646505917132715482055309436286335318945009227677633623662540938814746731709872013741865324875770916915811779654940587040386899647009848686812589264551137189208727661191164663906926793583623280282870503184997273792364557283971783508200814308263390743411872861446584817188783854521944523752996826721419206965418090900743875740133253742350226372876666456827067889313335930083366989557087564666451121149895791872847679568643553107898445560044984761047721045465112180015096654037121238720519862191432710280036142604364974126652511534546210844652095471329542966985449564327082180692432509462286143709860810415004631538604476222081815755011010059672192993776657066604255098782449730744448279756183316869383510168649184433852768074692150876006128293029257219165233561884898219198890863625442383063129981284304098515312360040603786881941199095489097627227447386410636861206276618498416503443690590484509641066724411360077213276585522980597287558479847320502319498319573891497782717028291655187601026781290556206281821168688110364702124210512604683637037735565518637547187574314820873809434509464909828904798844004488679380402904328715763434499347360871267728045448178170163653704239341965746167074290899655224370157288474951479336399279819948972440218050875919724827417131092945808225876265252150099016809001460025821892759602040543459962020699797413894474680999683008135568154491369725984002573106683363368359463179452839632367748643066296789005636543334683385187201796129637319170538055954850272798572807180812652776095368408679121677914523322869273901713760367914320869501307577268837475995320429859793670059547265069116448336071874880613129149755035550873537501974508709219668736226653521019715810182399553330966760680356576093252187990482593601145509715130061531489018940054984319456568157243066867307913900833519733175285396617259619150237137539523243569616587652466841066495283125372478392111692773129155992595869850109626322765087291032763331189827691653341928598615261087897684539792525100206317453380045094483424679358329134836990102500232171055178825197638083637712005814203260636174476043459577487573300295775921730717138377718263117453034745383937518544665635295893210403107671748915417704314472224508335007123688828276404144598574151190423484044789173450515864283495313169712039002185739431586525522518109389903202013953135809198910112437434783308966022998745623368154500695617317166103763995573065679409299786943592683170158996117563954114354366435891064322832374754282540197024694456943593702699293794172568002526990834881896037948606046928840429594196333593714105808086591923287867175136278267322712103271174155729946758092592756156106052718129240099415854764663942629095213905657130863051201667482008486079236516561645243730463416356022806835168984283407453905060598275653298316503898352570647313829605242768482777473617269260803118022533553837754651671217600319996118362032698695055946042766348424513610045634961250992112719650354982670014359103509145026236845646893948232267700056364820967767161849604812683783088434628413967016157955567802378890039263639793843636401173980286107675948282698832772720842248170357797729356363230423280449202769550172896953136107786540936650633227093240870784662642589767713619959247850917129307420283647581563412951874197128126529374121183244585063477347238007784229925298933107300598823802474833109984539539217908001169072677275058240107719863460321273502832526790485904211231322569189481491904968220163049848670793620099898430930450029745866999858780468177885672288520891813285173845740256207351797170289635777043123170310482678749179845475430708790018204484125663996482348624496458016722375818291036699513003639071766927056831353085358870324773982070075580387074945782617673181804952508032943831843510003919966510692518288979491973005373762364645717605163522333846491402748868668174953245876590730538995550689016800651687072512201803516094367512187135770499651716531235658215599990018549206769370828382112524696282747972732049360279544001537523395341431914997865452375743103578320368221652724131145299221846032808556294850600210487916924681396532479362035238693314674038851157161919296739090283278505132463952563794383792843257646655008706612956491776781441763991549673479449905626022225197212374058258944216110906955860582316726010106469783798588132781695492733187523406008677045200049347829369370396489680463036269391610448933928898365175049258914633622429647940169244951497100128094444578230446414264620715739309285959714262308769507479323398214905543003286542748092767995307045797877628798396562417244245259101383553185575670396907808110781424113311927632555450609688068388369159130915894456143015363460823619386049261101881970242063320400182297080435820169393043063175849876125681082906805903971880579859549969128286652762226395697269402871191346121933569523131071639136410836140433331192762312077519249019615063972074571142537873591126948390470539329919618302876745352222338179935527206087315478987833930125939880409680845220001080928051265759399177647096974041098075921756953892214339334454208210311487405891598945306113961018396600532618571817468633841542246374042125944705204223008390422347828792374909471620404592165404258269476267660201983441383419732825724716804900794725311852338684459216122210821804742766205481120992114932414115417850490939836904765195292307173619268256179930361762239703731270839329960220533664241643518395775626843061351534503461293765744316863314068276178771093271283759908563940217900365836054413078687489533268805344509402710446921223794003623852908234713831165734450590200773693715376208138363751333367254744741639932799160516704950905467953501724098296509113609045363193141739202101891355294625686819539798203965784736590628786347776085767782085701460956635420683660694442300200064694954015400641092352473118302065951790519438085927626074477297055687547050950323432178006884608561014411427644624913115332110043619010368955354488188427128546021055600106029811010818216973944430442762234463449676444345695117872621223511670291758310577265184087609267666773219847191582076378562411725699937670276188207555787385542643882020287940920752318170795178454369662679337425591578833212577600514076619984012917999207764407881141053384753262862169840185191385100278928337733807623714795239317685508615508894706508622635970199093425261725407559466496903961569071098482860647689629079203080312447141618851777344089033786021044501369640171092045380304830174659195688065851931022346492423223313167411386552689337309157185703578059397001047128003365279940320588718589939978194482589371920204210790224133503577407208566857650671673354782853533612566783147096132166824707795958252230804105902059554174654588552787730582206512026238524193423684388839327521543912612916692597848328221652877755132982155694754699214463700841231622813307122372267625178053670779675379516462837773741011739648810488522009726897279320235770108341774429621687710215351570534077546567138416002422989647707014707249546368068363100714406229687515529782758908248135829336811486614198178097389272591847431983146222593271579361907753961826887293567754365073763482709780766898132209014878721539848546425631922389040980886564553624091331189763621839820959180995797631927260776593940717301027050704079705720207252737459976014946185698990524607673861684318256086913231545916774468285066342022843841915941637540557280145517252245277713943346859258533297242775126726784643729159565558296490831596297313669922222690787280231984404034394989830804668282127394428732310088483394331428361725878022036898769729624382992916102458185183062062531473097106485908269043879342255036672387510445824337752051672949329861481149511463896194087559246810395881946073887153696252543496462691251537474532394808531101956410783811566520014862200259685842321568838619287473703269182724738677828629159079263023083607887641205647884335569571619052322899093485214371451801427110613436336041519602080307211935822407541072218757795837012660270572622013698865476719607778345322887064100701992665014933172404187621829489263639396014442739891892326516609879048285155906409570888209673326403924818628269062201662680144604369124140095586038041354605618638145156044596807301111827690881605411794026816472807945703975332172424354574158995375139614530900371925310039713470101493413642121100604246079063883593794902348761775578386191997676008232273053170694022758659930221051010905497021149900373496387232864612455263037481439978894703532420017264986155758659529095053551790253351246390224128450309470825708083768707603105255630771648136317494064901852846415378562024584364762298956223925447398966794045927449135105958678865126640660421351751038325600726409409850094253007374363326312793626406558828529854736896949205600315551881355840052062417466860633645445295895621332796402962093924976140960081272957243622860176893644257951381115961561428222231578602553756218468481766181256294637368053439081322006553613250264878787408652012195169424190508721619629456503190642631278675277296842395511615343677434342389702282122731934608781516427763359317946335727751821580773964029081277418506348649663909429541360391440733520797609759225316669263581186254382998949571904186874429911763857100440857077542903294955204882058684248296643173793724758569287944727595427048581112366458872771663863556577719740630917615315879174052515395456678940928538771922204707590490299321910660705838033343602256629896553106651791891059678929712706720836892302657038958879334205345464312710837937484903033763495362854651644706649093902530050388326700548760385403461323740998059542876262879274731376809275631977016286029568295774812764255580145047298060640760360479470341125415507101452008460396956308399250142441079175312730176908166353133045371777811058193688033406522940147173090389455537880538754572089526865587651875309675352203176373182064863249492390296430399375286658207485650024280174502077537888550814591607467425492324541083105595587855435145948928077622274547958357861824079991211332768058401576817795789850938083990582338832782275266568121051683218223209828621473445940137496235687484724393043098292113581030063188663615042340507318001995451759644866820291561858581441331339266632959733469272849415002031784747544219082432436220979182856930411892211328272704533411164755378069287562466260261594765529871076342606043678716201648228442876801857386930403633963066091788643201351213748179656976156380145010514620026941858112011060178932520572745857456359693874413687133521314818698848524265912990729124010563717465563480602886071729832985473020086393526694240693332170340677049844283887407380749122228805656520129563732660445134779363187436192218191608182619368354400197206143038332878354784571172653843487681469715865151617442413846204317091752275005003035354933293764701549249419111758290965888321007076854042286996452980018988342681499472405967450279641402767094089397926759942475992050823856278072738661041471374477879647640390727082988491663073716549477898163296229092441567649377410624981129587299997879068970378557522009711878551535562158358292715804463038378112120210073515840036912118426770664192634322311904165170853675754831907749471906227044574354426271208179886224002187760418851715774257502343497024296727575844454474723506150114911699660589331479129824862501679642975391262976911039179924967652843849926962265933280411400422902559100207241891307023585232080258388788096337242990854133022737282714746846266736044695301351584727985148991950487595646519602908415097177826579085107223468961064344124153530372796078825668097192415407134439465787060515093375565222109578379023246610085786472523734634076616564504827017829250448310452511270574397457376214345694844582917369841298435667309659741667683105804697317203605943886631906724051890545234133886744259494539214272367954014688282958970967236529784684273579562543990268452328688805762117097159686188935246693734796239688308430660863362476275246275096281129455214381556697359587906947573032392861403224627954806920533952814889797069954138920110539073553039836395500646448598119868738802074127252918186619805150865024222685181475117458645031964198990032285704769400988574221508432241690040274630462638710009862404155468158106395912141868642182139221775524245470803378854836077514223145969058041700774093469203054144352709569212064258735943939853818892817655765375951543299400994427289399582841889764754091494123395588395242686777197695592471303342874599072777919748727840650912819894649476579248053335696998353816230534194064498949560232900699332072648488346275651500358664335881113020541680066617016228936699731236238220595302524707527442808193204288986231159959009560462497387486603929958956959820914770237600434429220234380969437530894902394269686557772015987750650587286585700385352910297950755165155998382861441526129164034748351428309143243623559774463817584444406950267192817883038913215958877148419629472471441250416451331630804295874484403734586367641354093943642796058205016021364577610836806259358749177373955634545139759033724394209947538417008783896976256031980123885859677817211266795610087979783536518740003707720565755564911097628924475364212065981909252099209204610952594139791612825485893766492155080964419229214985865107465395198432901162723120052592198023224306094900819056414244639730766506304723303460888395601237717087981063980411573761951008445015098665089623944828241009931622326376881502424238438383615827183065220648510375055781462140324840393061257181712873755382955727236842774967292843941939305956570554475219968153488490261794094462411386615678631050324167414778101216835858688349033999876875543093154027300121913984994934167999385487406766401906048000670560449958141136312999408432058930972495793936958916635041940384704379044396552213129206535242401767576895190508514258269919595141632054876011627875558787952310863737341963448830321575539383845463029298708448040036719571192414249116498314433164831659276411202106920319804819308766299258124535740681963294062822961291492854137211452212379729558213511593418344106540969340244477506320479635206280209678448755300267481762616752259273535932530985978179391402684786134596466388462405367306591341185372967057508102983566506395434100305220724269191631579791662376256744944472754218805903658076474119952884715376954755608951513778587101287854231257491950390139010261529658284888344918981795693659077387347854959577084737920717568344823236668972768287892311353057976479742640105863872608834705539691698149313016652601228539933398382747896098750536908523794656914741909718275862498801072422522475079753328758970758436634562076011174090383618609933831128189866422008352797568595220475391215268218563357078295387646581891282576923490624807333364440591083754721454535463160016695313380234856487439523849620853674790263737317558935729154603665685720080762529640374204753837366553028161770370531648461687873205993640216351599742667807276007618162995039966422612499268762450269797683652162176159299404604927277003520128335239966855761181433942959474674825669954696361336536734261742505983566922178013703536519111431025227820714027165162496379349850310555240671344669609124426326633495508757217801102536798195580653762324650448343423384572559821841379539039934676219931322053640279312542419074688676272345002132234346114265467280072973737527800496683030633908673238812555409333361347557768620691190007954101263166137358654488172527697695147399426008140312919448164590127759399797218869863484269589076494785325990038753357663646576341539437728485720546040845376569005033524151152771451224420169821876725169521214362727706697854572159031687047916818666414476412399807704787638503807251542701776919124276826726450863946241766768023962532012847333235840949832511875755742676012081033578844004247981690686094030240950701879318906943800576242237175431881439775971608617768791194085756030483479338902584009300772924321149436698875388865256655257613628107460423942305855907013666794210208868560847459269263843445380781717050521532473059103133386161246499781431214667785870520866327893824703137699585842439939070879112920532757237585555490567716163232041974117018178716548891218512393147392952261142533408638258647905104199386689892679513868160968778629655380213909916130988412346619863906522379789744003138558728167959314398859618359875537290539871133947783869757902911743205427029389137316347291257726796089079653250387057689832795317482695726426827920159127075631396522880062777506203642515432129980452864241706564886120419966226782588724549142728570346932689443772577916610141950577935102383433498846647800631243058327735247931742962412835723535133953230964602841092078571608888967793598913548346576763015413098250273126419147678140621950150824021585358352607680687789215879484625605060546113572588635341951769928938324950125116320291014923670299886640063574374976016503027605932350528383554477383244911318434950529483849153404688748248854259597843440461169580251171956966520817423308216002736730705300882176745620343268289110730020317323963736452803869197973932966212480443636365274618901448962635527258487205730968498968259753651772194461817627013105573414494131534243873765385593345445489231358633157649240337275641419620592310436279736386371501527708624292999561760153604058530729096140773344253537226664105661475997719724140517746743526156875126706319321815547450085268509677918223205501428406249542384349369622303010680009075798558875042346425664971254687035358844220482398110667970427095971677170263602648697721255209423607814700213017291293802304972771932186716852232537114322972497205528092839275502416906263024684177484734144815266717930545820292006639845095329313685481503211886344721816306021971613969159804551013209949876629789108235757625868930746368539775723755402639941491501357811723699447547852884986808050032238975860354466516281523821858042482992169421085678317870838540744427706961055251868533134069071530660332186167809558544620911491734861302833024484035784864414681972535903925493624537972999320747172239314087023041079195996574798934335773630520548557463999897649486332768988914773035100053136064695456732182622486779975706635773052159920796190481666415827726994733107404894253428880308142484704792239327614757132673196930479567644342222514981118063078276778850482713673373304221941853543862305166832709160400145402217281940251139298455741139885604989421213998547744695162433325267266782295582905920652388189829859859420598909678999923611538881749169840109742913478804404207353752067321957213086461765972001756704389746876026202594398442693627350615591690021626989282947482496825877376831562117900000580961724824459925387610502472322340380792872253814554572733528468749589302254234332673077029753268386484671987163039009617779299486234920198325495073327486791807814774449086164346325474825619864830159805891292758327464747413712209236877587363473394825128098509003699756487351931179316229032585146774633168886768861410073209012833898891298141085991033949763387721581154400011555481769800701233859193363330962032140904143039845309835125583604549058410415614589604653565449154693843894429569842986246883580710242105238447668559559406814852902041390118084865967309634181365682823977716725922369757010030285303892974736954836032839372036233307537110237952876889052617651982470515736246099548505118525130746637924187614551777446745255225027559351019691260262029191401130641231256860066083936534420671262895739265461552878327646697713383184324154211550219027113899348914540541266891659125102384447495522096700979371506209536986841828622669090782679870836754357693092706279586454857123942842797144253233943429481875441512976488473174065185745847589599155785526439438595152648939437468893664062009458300813050169317001487548954462305315424681671651681726705475828817857810236749404521619774037560301578388572430747864988788028579425958993090377275792755500717065601993774992018587560980484193298688318113737024146543235498365642070899270897374593170897666096989783575063255286467874603059575483241739884858983228641958407720661566273132666516778447006088659352733653687671356619047831564472420188353606472426326742602550529958832582427892672430952273812208083653254700881350421608250569562444891237982011771004935541768776258858715839284713926661052087728475227957235097662155180004968261119467935385455039627705446837127161693246600660381625936861738576210242968760934270853342872632543935916475246518339905442971860554772354221696649322558886466262277545634897218126288636182008415556139161659844124162910194526639261120869616356954957273041783466190426624523896387820657901192576071426141173952836407369744563117711174424426594102619207526130935247028769395029630396097181160096238220075466015177699851974379418283840574024922989660923239020010252546054521597491092798720126850719547013182035843959581628019186844279024201131833279673896037183945207867285740328540314796447592654334538220736999396960734129141315524713921876446773460943145286975536835162481924405870448370422966299436898875203948460853384930307972642714593650200734174102990416626660512485880079996618036697056614314561459526609569363215663351209437821446063436550427277497958981691032493737028016044452562797407558266144630389288162187634199076410851341846604723702889253970657983459127379585806619321651405035257243389813343389436163976021336128262361249338895544693186166807471057946298169830005691009588054220816310950542866981975443285454835949533220051058983886097512164371276798675172283761233978666405181494925081640222573471044800747955891635389964617564744234153786319988777956522292048906914172264358194780156026836835162534328798824599419957992126847885401976798172351801496396967154749524515877691966225619226634462037960139368188888335324777009535180200702969574649005357527492286395878620808829786471848400554324339248304043319127232842683578212732145907203279602122302632752593348780951585148851917898490503323504731018358857626471779198335548421876260973005350177051295949622667724979551953125553121610588506947369633054346825012787244649249457711938484847112039022098357477467092352607957173638965711260117742712186412018960725975729570556653425626009320645083814791812099223803143314277269998336437124681890059008904540439759554046448648395612081880092224656932429541530643556032392066585114706239391227994165016121398401635756077098342278286245721859308464147064066983685189663184786665124898957882929141245272948424522497269236910844038871827607339918699904327009149747364452266715361987527829188453789301586544985330646999024141846925826156893725650622296824043615358296857208543660127334543900533198839420285699775892778819422483594567913516534268136048727825330080989410758671350289862186603012682089970305247078421624384156301533083255439612459668343598938048800199296033958222908062068655832901098390043381730384362182077267408627612573784367643434017075035121301577423967387374106132574792396808133249275897242497621506225840176069221223535520866567453038470099972902466820844473841366078201317701300063167624586982498701786628088543040791979350912653820919193493859297986360502304881184119359458396089747545500871117121348335311810317199034240264532086759233164721455010215179498931831735923594815912304043639755822933521924336407743245687794815153612062163356229970009536634363684595134437555264078724537584660486879109354746868760422701218496931877931470598640386588562964587632956819151770300232957659954736471172432034046261779229271199925486419203610880978066304097995478076048413316501466348084745101462120770901042871023568742141273620270385693761433012462964167885801592848825817016691741957108611429420574619568909315020134911982544333828170626826553269116130435729632325010744588262268661697096550716307589301832048722892409409771327115170735141941263188195754408935259771741917924332434571537653424915106368514918154182108003907712710674227656035429765987111183999592184194332743322509266756951235348360667588901568070924728307029998140292081738726239385362769313317708529697473695449414716729925399178795155618526935010319328844769861970965388694909768343205827726217666447870374757601662833329581566383958455584799011614746738599350866205921851048222278968415833142752764631442716961778535944348811379630383450978853980140742958978145311635363112987556873844419363333646373843767824906496343272769145975882300454346391625310710336908822161830176192762093180417809996697370930221925734319888984189534481720752470743648213041145710723158797942387654860949064486552715787385536967238117447152492858114924298705569889736558608264740288498843180300148410600717604760709359381240768973292040238687100151635274491580154672001389990997224853293155476853396707228529201707123247149739639880342894219480738645674662892168890061711435079075042384700371181176249355868336547505381491686809498662431144130048416934783179530617288767636665619833861404698749980146838834522883546034186817143823288863688791401714071181232389136683923488991224486766192999029199980035429318868833961607672290549638075320932368981527997533858297144661267223331883068877080272314128965686232949534880834051086496166051543302409161552125793923708982068961341662032633088345233004012476473936689751648629377815478571721077661551530056264566768024090544098494129889605866587947709739817850665324846837091636332349519707281798946542580839199487509580910826364257974314076756526676799134597335899235369133076064297153722427387723965815664467341990766706722940154784409353318739877718964717670890083693739352597113373476639554778712089910610288908408764475811951553493730563741186856403945941211384868725094406344991288033800049723609283782704492697482214528829298619082342359683981274607977680304340481834500195697444668200947297974066406946960433679586456626110638646032274455755850127151649152049299742697096924945686956617186928230502982393341877896803325802715928729809898747344258616471782763285875267201832246834409267194722055547829755688449047417832558503189683343484330822705987524153205291454613225024719737071451317338794686421657070135018988198484945344393816439344803722732382367193954433519598428406703272047953994217250996409642060212438038922108715642806869270749371437406783663965491440795327688611349688110317666460213954486878075442053896307843004540116670270582085147077293557979849772744118469091525253476590576296723798491063943647718074515209985099799101947132747286050442725710006138620184909296991465833237308688263327979001883427019617890537694600049714065974268978036041077081741669319574398087283041247009376377610098864619654884583328964770691948371284392778112496932092256337451488755874865039197109819986470013459772315057403915919343740383330423277824133860266346390609075466414761142042501398828875125747382524296413251246669003691441760628317361593308054872987323047090728562986666001722159573574661606310590474781371017426552658546444147962881822783770994063476349018016333777864772673463553841699308150820698859808045157357266195984139693249498583636424404920649566940205862262488091496165391078507551525720461405967546260548447429963508802309764665715327149863259928334703383725342271416329283586102610566536608893056943486275868883634395396007566653878634243651039628022085295272792513463518889415672466297877742382992941647877239986720986725517059635092942728764583780407114483658887662111560274833816536304643751168094677370182339071702684511432884958968446495339648714783777149863182954406292057634803626925182376398325328112962084145503540825860837545867641773829713214980778515473184930609941184182370581128886381180197165148823739730321651684508537624854382108653563703598111181669441722190215779521073843299324688467168000557137957396769777529604183078131394872510544848051049754321552324962536645876221278333874638608351115219484476321345540152802498378457208887787400099747977707692636387443404410352697183422242902583161176525454458901664619337098114839698049022053522667898876867235127033741432885929830213375039469307601154744054788298454150097432166190260240804225172636888150270368866119014568150611675509226468645903613596186935021415376365656842739886770963966590600077775759906485278681699966583997737702823815602963206492377597635987803051636089725190302761916387181298687536379809682595207504142515789832331388778485151848945265599295935463386039816662605832795671868627596724958094857310550066811591545266409289020630395967408693776722092051677081444436156242532381222457938738653474228603677482852726476856100382500202327615966421876383497207103753442050597453860073068838934010076292666418863748840164031734411071076286239186103361551849082282177169242182009170444371240883223213529737974144189880053005814334997681254179632270360952501289042462484045201406912186402095213586101064500047662547131682102489237439934908879540443762444272153856706005622378293415623194792414489906597463707549162467902495840754235901872414316828586306576285508252544680231914228296150446389762466788814898811320522033096341149240147491342994186730133627037248524190496151531233105759220063602071922064216463996674201400497587840685415305297816300158028606392990089871851687101760767246431189665853885682221494342893680033738706713587765500370969288277364813257949886643500114078459853776014507163336624285782756539472463148240022347163515074971688069897204605065461793714788728844803533567926783467777423307295641042170949014378972766904616526234102645301167967125451905740518101330701191416071458547344663094228232990863191898250106079863031985619213600332912025764467990108396168469496167929736998999050493356224102880713456866761364736973334164881405382250479627655103453271671108240490848083192398494031996357791359990501556546171074470297848795434950507105521802202563430851772486633012821582667862511720567647277942908290423138485170793805169434219237055941369990661471476123193363820437232046110382003881176174882726686947263093138813122969201111239239616188508511461650280287572118743588157805837074051637271104152641180332019922016239927625821171067251703446963433476456251951149499074794751464196538613493522767155901429159033874503633432686910732038100540563242890032848879082919936221651818321916694987769839916000580088444222561101282800645537292934220231363285604129850900983120025842763448448904031849931481662333512415807562584693748721373029391658437187906955591421428042016173759406962916150145035346958335667019062782626042688660388766165829754499837079760279862886886026046699147191676176059204979732695694924374875426039813706256857023827515440782711835714942261429744104785116624682868983165993738849262339243875752135313880659312336330893300054195034477461359036412666921495134303142447979679508996191044536604129865454325560515876537843498929606148132540936755077455217498201753998776861338866287846815583087815603604613247925928487143068065750326422165944490036022022083225396661497582299505774806518499847902573705110307767108320265798896234498172076077167307043371201266315986576510710550681710389200205152341750514242619213699896653009014928418715941606253242921346326895150044415653531283633462855394208923484478691206092605069279688598976863909787653083067581008471867389285427819133087814580321565714150931099145565542501149800791826505827590707131111859565265850856772354118042093341819196696618123180464168799516944071785226304189948670494366429268265460822541078470658122124679458361364963799578878016669362824085730551860739456164666762616727804003932653821816132517892964811310443460407334756837909052043607064852740588712904591568671708052311497680756764864455154379058178275393284648417775694439569460279790784431017655131537924350798298328023093491053809282578052940194778822528476703788214817330174749786201773638528186031831906138692787109472828749019539621400107551840974288033030822917934241337928185409479707338168408485530543194445114081260258808378271090306117068084230688498625415940692818118595825281569447712284059153579524314627381885308083962037077618193163121882645510109845170184494651880412781592682265538798359388183696145126078742989638997632200635910634035543184809935931595565490331819759259355568264525440438336462710304116259395019155433349614910264424711896907746084007922855181307562685586553526209305778489335275470937815880788362115617256184411403519041349395231870373177097308203137055660917803388412446256576951855182035428534146008867916405374265849340150466212486738134257677535218647964217561087018239021779574156153268660400374131961004462126426464298540335061136389335388256462281788577717459162089278066565522865900488679474976133798484743629548588045475521823538272228232716216494426911073932036219766414362322679625844743605187863884598583634691626056848640424615847360420774838986795070512420829825389481410514388752855952996564345992043207645877295054764738377496171376721265003393943915624060708246814323407221117712336748270512317138305883645162236871389478328925422288004714420101383919272860842345773934869475993532568991679410956791233361572855540354174595648270305083651258743099225751623761321796415684765816754540050386059236784838256033639372947914910638163072960359207571841567133411776640352775777353805242876453114122588621928274542814829607432207385164747243236082968169963091116445304937059071507211272151854527749111133746076494121854737119319240573806554591512704663643039280341372948213518670278470180431742698356740008947529956191112272274500883695389478153178363625764134105541469355628802305837688021165776957686622930897172705092682457673430254786838242139574400235425106245485507510109759481846767158865204970414406538434712904690554603589245314330650535496714509737762249812728883990373633792962786906506727417227014146326590203702637515940961757517621557266387522780931932987933634742818976388608020783507959977277116562510534545327620229782438943697294911638391298103022050265820298250391069085651355643375333417736345718294993045266727965149301945785552210969543508091794408651695687728793810251868618429333106333252057938217255506195743103063100723169312453887120505733609412898704547476930039204272878235691151904953583773392071026721970919796501154921330862741928045596602980479532554839585105456610387440665173026709203418985224347955224136543462711446198907239058938009103740616560463911567474144859818918781538485005682020630584272003261620153573494338065473962145877762161709769255034914179442841303022583194328837696333624680478966585738933215430541306471849103038211304646526076304422667659734565966763264652658268580732375258865087025750221413797160174606097444436772102857681162684036734274160850967345612899756926352650356611352610310882884677247565745317428894169321244488086335705617154948273618495101090652470109269611574182938119709629443595990834551832175515442545917493574492179427578797533791156822538854350123163287901088049257084121758601929289046707278476357245037800317339711783029918747912210311353237090065731659816051070142064397296695294643454535568495421346534934747642634846996212457530740553930494673748831706182239822987601563176709500871801413106751230111247693193443573096749662459311082995922062698426162716370419458222704287107632468543004898874540353409035111539421079045782203452479616341230997324936578993152129680813644713231578313757069946026129731296563210670747409600117318812220395321384881713727973069387886432687948191399974891448253700398703125384715588068891790314339620387219250353852350922633967250298213149073162818558436356380297870015310275011801631060435650278207889680815998830337386349505186263925318483152065850658844634342313478628059079557492816439002279823465511443185503516941554118591922224767967352186952813055817534447470458322884773414735367566317163506776129756505496571087402507818774354569362541944775164592900864117670357693199243564380182874305889017942254374169679105736241481990562537597469319081867083827954047605224627312564089897887273504326242960639848068050284554450987010008502781171993280367008818055406573990696564151354871068834478729157707507683292047909515222455855677496228366323987822063453866689321329404968668704597367439863936125715877703079383949898028578514546175826738454610413325358827175650747447735895873395908635187232129720448658766161389060959947287853539708581654064631632691466325423985436415386821291472401005954890744597877611601686932390970259961865292940366326862481791040742525773137413559111918359007949329475082752758461320517299784734665578640619107558349275311903464845144473264836371985036470120528909404321750778398458562187568824735983059624823040547205198117755428813700184079221721277180052014154453972498312778424190880429076351801536411859121986124152006756542822765378217482046876266762474396638413582394919916090307461654093913508515097910653642351929877084263955996290105694034466913351901821969168052852714581967407787028204513692758117060696326719955421813444645879376698347145238349314367802844024993556716624973546854372180837427551557469002324946252340875039964904851222230817862503005678664606601989296125802351079204274951563993030153659453923567296420991149492519148237057101144321697433844198411833453372305730672349072518068255128716236864494769650916109442422962059309791741987724001842017635847516284965641470350197244147086350376756510730254791869323657908052043036836212704314626863781348339147106266206202173676018641453365009172970963334681659677911563025286062104680746114542237793616891731262082348545736263097469419344861949772706957272553016286953411244765991778330536195172060147126499453284588982352293159623635157288198011887546561604105466895018106115447004412814056215804369695405780610908505373407021414000435793363356129961395897839439455325251338156380707623871795863204185224152108437168823795256461939751329764709067763505707963181859640585376098492778597484546177045409922070737209346841480165104942485022489590890174748057541468822623245173871869690752619836034855394428238370067050663145588183491492482708987816318095955153235096355878438727059013711002099789983971228467047512865620736770187328577280454422192301937698023850391403179981612326590998641075153042475265751945371668601705500059789189371620438022013710756854924433762176468595358476016599685164410427179853492268279515882284017750382526666423895911380670669935185351290787302333869528152205373290485529212627761369092505883529851845547454344869644580921443731786686572087208621696115020669727710451499382885865255946065360512432981510171586343774968275716776514098883357671721342359548939871263910549878722576934636306716248319628875947579193068977764314684977387490877431479233446125826783046487145331778166866483472248919000301759688441907168846589047880341685410268221704996562075936043628042213777743988918069123331726995472690665997945043936471977082937791943979284915962740255130982421213691870822215178672511744414606963150036404600862331183180650290463258853115858047719074292963295624627941008710873059119311655373390719381384734271331031528464941075004562218845717418882752282542962665300540217139391058484938833682980281389114622770230673931054540114233490208301092000688072422810167377002554547468673737239085569837117172206049997073006620926429806360739951779803667000925327993568662798345099977716263345122646588975531485123984164768743328281810248959885499956423277500315373696942448184384511881107369246887221179850818380656900761156043544567664063047795218864800444028068936609187330007667045924761268784739295913263125191065438736150475956281524825295798577705049961739632494709062911456257389706124010336302504768618866524742500921387389147325138397238903989003211514828941634518262882720609763865267167431680020809991939573281548127236369778025491461964819699224536246737186748231282681510185524189017677124431005951977610532789758810170510456763361381610718368923707050664894986182947364881820740346736068969111336307321890863890180494141661783211781590318062205939599431834867457147457445613214031505821551134246807486332737696549201092787488393158531538706455640975087670670909259648414702006111664465280986891985943413885418152217173370256400772465377296298959892673357209219561754652512141610694252807014816233570590910332589735655771076244592910098657561309346904645248378303618628590508072078190415616881411961462886424562315866156643855324951313115166099687343819309300586115554365826534088614126800651276587767705846576956448774424040915692625528103117318070924584102433344271716950079636484868162810041514465517996191723063260384515376886858947242513268975022129123427267752776233466772399345839178984557316417772530251812492564627266167008228870580434988092268402717832973187331231196142642588447712413333117226880116815515758476972863771366601093446092780325422041514740005485199582931683185287016079887676728109125133300702848271126650598769215419743556305552632606100512366005874329072117905937002576558894045822797901358311501780422016756668617095472479420928583185223880071188548300676772444946789214978036845871824714158846378538086864800826042109734517468511771219930001183966897352581146551743711457182176907331954116123676557210716814923381072737707881947198325647032959849235460116223172624292607107183629318557452061314398744092916942739897029595966944676162216200728386795396626712463080529670397763194029921911560590118381029747900187624683335563486588017960305985616641451458914217426870893098088792037088354852479584920479790188792901184684887604878531402886247149966387234159350216740237947861545538812132912447457948051420387335828001398235252980682777269320166376821262873384857400277480482501966264638895574353895653936203004733014982375875963981044070475529317545956765487362176761679291061002830748305004266460114060706686283923783615844813847482531435392755853269254882012537986714242862406630027823222386992687761291260190242161673418654363770981407845342798433561222542028540584283293597332594870330883726983023986854548083949322164538073132966434129482342730165271644231359928774539789583474100542231133699742975865513521859417514159706400095460830447787767188756728987757734483138965559283118938365371172034791535621212318366347078686297640442481957075852331498253234895443957083113407562573978317484440994166487530005662483321023618359581674522445791317519630640658013612436440538718486777741176358134144642493868412784194825874077658026894606280353072803031815503404967002513877004957535159558904603598619324733511686552177736392307063651700568783269190945721515104486499792193708158149033832254320990878568314276891943582228216014871613348803173021497383372738684144880761389329499125045269233838976235818878691487229590791732876910585989237927526002348281792424955209378228781978428535042260278146793065275959177058005942479700265172231161000838086197402806327713265534087594494837484939968222542884862153810037370507186095562275645580036287455855281258210068891512363189518798499385933971271020846653898807320358376666379812980515499419739001765171682014150914031408904632394535166558378563977610211277734384335687613675395866086444640680324056904123220188577711445921591397821716771938329826962905304892275200317105395128761852461460432776715575908565383028280818483439558449591090076295703027188536822206013420494159062972847381610069073612008616066353939788118894147963738947710828252607733144662866355419979695748603982379589070957682997336371190415281350787532025395486384830142504417729004632786981044310738902469521144773783867639584912372448505363851096791985066049705378036445734946522333423379989093674802484424328886618886695850405175953832305297419180768032807244150152759937682579860110449021636085875682755050979795093691290176557077465838604338609031243208935103672553821411563440698206997377118529107259991408358199577824744708237058923911105218958409793310682431379101320282912129545970549507164289555465429052541126820924279246258438601513022468688958522743156518519585662019071449727895410250726424194138444181586734699160026858642255334129382412349892957753636156715527616790684477497592277585000128541561027984249040156619630275645091307029161346226833557135096899494187752149130935356055554759396265841226264120482140978666155526289613330120814358429387066580357228004953430901651640699708466713393887471841918833844878680196086071483402728326162105186497036571240394169351766712928222116314238160934328368366161778109292689027700633755944012385783818515464077086732533462507569932215781273453152851393090972679254421744101337092626887006852795323853013479684041288273320027536515723568132697037432382812249547393659528854547031816176774897915261013601033834174065089396154933433361784309274050840442164573508957430679461539180667576569240925518574957994412784109595706637782984421515177367415837029152183167906150067443703757462113717080371918334705694150734879777297460226113710532306691647937006395276502950126670758882400823645462227072924457000634630169034035850541334440034954921937155082349077181136297099408025200591781511971884473639801059555533972255605963541915392948992044657097814353883977520639295460121413254490064043576485074544105588187511233806604285031935958593537998193743716366483062804366996130645076837401154447571885418921675783270499104822176067545439444174022579468590343008306223919693103499073345092691796832599770164860285256880846190582736798466687323224527893232333034179456773020985131955328662176227448468046271949615911856180755041486293799460403881890299617342237591438604315507686425763942410873660537978198732897501784724162080027496988137585411896843809766511934467750757382588126577439501641611669085541202043188289557937180726576111959461725278004544577952728618367178460426878652758860078069640676658849010763983525157170484818679286600253248502453861875904260546821177281337534914990666842666997576772395301584284185487207780054263204249540448538395366071110961042674255553945384961383276127533318895158818847941285920805738500916130200424540265085309908501676898867978697652193273619015868224590902335211268405895206241854396070981777266568586306740233669808295177253666674020267702346127340726601305722798295975412846886692475592285186852072348971687043097310801341046572944895229335081248052714123008361460659150874846190856815718316413019449931209070619414407530584458349590098577891601480075447189180059103776989880650257120207846057751398719978513961127072815812992160299652886956184245261585986568510547435754927900859298250501826949055814544716355696200585034451527415313144768213110451949750878907141950936642361820946077172749611506239499565483659823221503719460694998715171261899527427541375521020920471130543015606490392345354591401941111835626486209590990485537148682462530747751054359950854591811263835117372846441604030010338790933140817070034417504585605326408102234113333823060180332744644239602190011507937668672833087680976057016334358036870861291923206571715327651710778689541754778128671110885503372147158523843161894424058046841299632196902354169435034246737628411479984736100525199793909168572056398074155276419804830075535088145183200179444758471383067931134962017222572959083653978618433014506577413290588888221321959419168063163177777015754981049894144820750836174229021126520896907806576032645087702726367844995127840325151339659346506742408365739316012129243428027184234995632941686813336274967107799778377431506541977078219135198325184248497224756610989903618882770185261219407094732392790071167060118528691729610601304490615232523905165296128778348160045765020041327212830664158001864696756262223957380901777912322009359737036432536087380724051414776436078893123970009000413020915320639354491162840320476080743885558352408353610919671300716470698745290011723458203682685296872777312990209916267347930550002700865300074894978426991926306128379657834333113122722911646857994518287473915628334674281182589356105711142444316977151109487730723856113941359306046750027909682876203086211321249017092299906083475811925474932495925150255741422144957766494169872984585902403107313509194914086456574418960983114080891444583655436024023456845175985342377195192388609754689520688689800385938568930128385358349717271643320557801202175423803397678315405608865322771119054465364475145493593086410341118934516473965186850836808209423603648442789969450642237884131784065380695328779535944592521242052379031913097443927315667218559676076948017448595325137404316189716143701619301384855603982617656158987110167575741459361525682837084767741295855468923047614876735539194750294749875262030796496591197887588741728804644728412888462360701473841482846460347492844595911494836663068414437877296870988260513297886099924340760299475059090037788186320832127470534057460386773893833722871939412112330527533061203572469792168338383057755607552537208932070223686754717339721053489973848762302235921170897850514962417183666300789365841793296356159204424215550500808205787282369468396585770118840702589658757553443063835040766505791032429940362545622041397586241432477706978234877406117073043885538361685869475507063114826497981787769071566839789285444867674857271086753771566577405092006688920100891695779610223984654310120107090324921058621480646610156233464866035872208972264717223472078402798790157017286364869135041676443289882907358828129755843234858896164762331556072630314863884878081249114333881073448246672821125130441847396973743092886434108230382844117824838638653920296827198193000332545037302068907481705776369689973213575912165397144661363049907794997778909126039940835100112772926843942201402074197450133210546293528914395662267633796734217636220613283651602201790071748474013469748676651931007501782936287764446494268446829139494988174867013860345891425095859913138798322120906657076565790587576693547979176811666256710349232649768057049817697368904983825724958799801929971702102470951145002986640981555515576183689221012923278764482819563767626683208231932206520147444935767997616042015292657066904432496911767131875339771500109331604750225172769183276211353651388013717780110558365454739015956978414063573148534254508180927851918958499467444900341612249518827640367545641138429970437662908931159744528406369396745906542899281494200329701569035562773058452535948693221419958736293894302255421355148202958062281142274071500654067218035388460017379476025103128787760494564671429589419965554396450990429956242703895068050358158440261078889034030687259092530633904688742192156347102801277244059925243741745225180273635990551981812025693020713503195576495490341821446911493555321753261578599431245953662133708896522210339599456963616255217636157131798369345409306748034385799671678731552810113309605623882837109638552803879385045927188535476793447968453486854678351817656161529581399592026540062961006880423147202246546698847514510584189778511726402368771113829260180961987568597075288849932299810119405041862031311670445802685669601506639765823787321845632744652835457465664810904815147440645347020342043793001450414993486137018332800371899166724468210995294552376592646743405021266557077415314522851892273569270449146310847626529205198120120655435846194874815380767153989126478971459434197387008978856846348413998707880209351094710837130089946966645841907596406736146983654260702204457258742378891864733325386800883259710873736076204191755866547290515524433691072139718306446787298584418933473192720259791478090805382484288453365583380541219636944737002121615018773678433683979075228773088653582897167599277947480869664356475497424512684826693995307540221808973555711204118601555168872740084306235231197987862288706976945649190772120999100521308463224514403974990085044140487552560310509754417185070661863743619920768586302623794284083733624345291648382218229452185318056095744069480936740464844988378189410798945962649349714577398515762987939540285997816827305821753914354188710179408257874910677018687162762307755061813288775950783060646258152594046549228640337694987070217820245574327874596777884393572378563601715280923095547907875246161217516913101101473020359401887479614530776206871673806292519548904473870845097793353168250006241402493639354968156456937480952590112306998628993081018499899920073989323371208651514141997526964357968369079365525322812167920341069436128001425897873514478866742489419859286237661973561572647729020655419353542316908783319330462778481096315644010438718907254581263928957428399837165419707032201320161637562038032091201652875360293860009816205255153667444456056053438355036765124532488348378275005870966954504887203583317260718037169051033413871740613324440468733701407282426256949064801106647314162019190906385998060326964620965966981830583255962934419038219510072110701674648304511219722245541651869655326251090601118131592856566200588886685144577847657618825357067277537949139338211643806946863167943598131357811209769770804667201395986052283758468582152945345609817243845060560110576598759481009660920531343049975063398807037034509661736807034763346127536791698097254566022242612363002898457547798502060024159867944427997208990572223761312435511384625354582513906211130239142631873450764661548393816073814756955423687330928962961042839164532019851578297633664309105031321864536352220644782828497569632019206272239753211247207554502528547646796491389739902645522692158275533412601653187852760582962393565680654641369210050072971833651923531134920873496552505448154859703545719455246597167063875105119165615726732226097389838777886471499219683561366527684859713918834017692819772372392597980285522057187839446718039696312623189471219446624259146251402321999677434206863760789532849596199215110905201465822939263621347117785081842773486448919215492653806375699399491515516659225986312647211762355255385816723856144634692969703912948375741775815361122948159837420408576701557674779864619745064004306272429440016780973465866693210636038759621737634755032655337671718273888763543057554274345470661770133685029590085574435707764022990595785486932143795076798748634913410053147277025355446895627675302396928335243754326081917240415368055018035169652362096368092241835544159180006426298554934058168825650868854595343601104584619786266635840740771524828345782123917542824536531754615888564332389523239830859553377082301383274178356534886321091756957772829830148316054883659325181048956197949515642056911339635776774314621790422169285866956160342614240908293982008150087244108357580741956757131195008864194932594401364551551344228854297997002531144820773748005919164758408963308542925991872973200512145903443345403908885664991620384032147436962626980566272013874005873264400851176596942421384690246975744025765946658285487019653780619452730018220400801162840731403178840011030889093347259322209934224030109344427571457712731313368898078720458273975687720803255566290968684570818651332984186570029744037984479807093183015275498076656908565076229415543254042483833571099715432774483336478756329366822523618751704423295014041776039656105291718150839796485420153029456465121059167049242609531663776897568885438211335725143601846750919372135370004735912281771746567247503637870556325775382583391844621134002864650262880077298342216660407071341925178584725834891290483915763067723118747601033021937493421781931385535470771322435317182684293986104983768366718071553900059882077311915296108336449592885584816190742150494939630403113912591872371057452052236937714011127123562502296300167225887591129099905064039054066854870163996265565560630849619772323309351378918648955635314822668819589082456392401282275456005239645947294177607849714734140661934060161061244689676788471575796638867267188689684122768327255525663214800381314592013620932065885930146810704877375752519452430168951094464742123108341993066541875188916167874344793296011140936718686059922966952922512630508324152006629717472768900472642608797211884566987253066506467327357459958960827617211838788699887646378168681348563391267973987543747456299684844092607796906011613729407122348916518363910993447748736216107908846714503107660769697879189787418376630878817239739524592613979264481876293767656414476812553253556911826758870052646696043247568074838159534978138159442891502654430731298512397554645234529366176080184601166499749991138867884360264927803286798492713382501725353728295624937171206416900239132902631100910044379852972740563215932711357855373347067983599429485308628090143295713998896862577497940317902695185782257346575654731015727321028331777852080242485233795665256113726631797034813336020167922336187097497273238922066602437224006350496102029688566388073692317033081885215810871172221621045028342597286150868421544489256883172517711070112660177013892547029973124047651645909054324682331022595863052847638409029693501215682884794869213248696959237730490723186945836790413415433042170570884488851434610553630474557348695912069371337859765116872557307189413030310823520528911336972916238210567886837672832068079670214620299938600539144414463653664125609819019632690168993575395980028871756478526014401072325485945261770313603338098218403781768978194996582758141927919489128608008819625509286237450229400675212640847902834245218517153981999566630065520103764123051420137049358548842908076315001103958742215886097323634078857159673857687987492819877267434351692508358059527396750149079663639031789405670860353650849158613691194651259757270372797746118163749186463187046634560278508546000466109530157712324694979161148459270156310955836349841716356191967256538267353036953559632869219015245539164158620085262589081609348098307391320931773437407425753670641718559332397840900167807944096767888683548090721562956177626997361710445859980534245995736330720383855281549230669843070047733836742486439508537805296190043220810029752715786448797788997426074605809745941186636029856492405125222978346257610179948896776774628425309016800553299126384650239541605434571742073649394587733365051791544052490448751996495671454062508713406328339228009995573318780860511288110888296536137407547546617539026268107866362299706309362569459711633337196249561678583053153612986347014323866742599875613753741953556550352327336326580268201924296978049804761193419291570074046734709143652875163180068177302832571745739064341537222273037521646646779558967901458564530238279624432578025029747370788403091030503343992308891278964554470553964131613025219114478632113770211965797556113079506839800387912553384533466252358392173531249749003953388113373927236768583511260609311834392220388356848152067740068138796548846656963751406957123476473038695480586258705761638338552699240941003954303547073119730187514169565390632655880756791639345714455503183109745910185637536380651293072680356915660516518291270594139125950764075416745297426326010734056397360570130411630032586278042734723581874937845566820622864607427462470568495900090941984418404509841140299478709826997202081105557364177045208374694960558747777226458866950014277364857122877354289563905554291076008913549986450758191642323414005070627320208545504861236642352151497618809223079195530881053691343812764266879160749001844009780823063501687136008562908925529720971238125379878519866888175026116403825200352696651147045287143499171759399895552490993332223962213984768546039741367428341296906638113730068223230653770275477904170164919371797762891600294998633209130955638750419840957044390979197614129002884815393118479380285404026945045382171107410338065712206341775819418916660376565326303818186818196075799320352376651303313147610911557361505148480894485677003815643790062447973018773610311060476979694526084959872606856899473188726915942760077038288215140268594816091951160441415856887679324912933875044092708614915761156583104671763400698468789265042343566220767126825767671840766088340093987063216175008812129915025751036632874868696784538989003937495699072205600549226513530594665012034769798263742640967764223682393591865486603016123928828414528120060268258224898298693818681849277698793865256618412880785603794269222393575741693710362407665557763225864096611383609677096596662613638403700109529493075245447508433483813798559217568596295259365591310274117457072603903962277254044976028093679838783104384016287914283395593824962437876915043489809964022558929117431595802591960662848081850617117088680361352293513417268515728645349534433929858841593592290738791729449788244335880613050145656255305827234908036841340934493123642241661925489057944841154435300837266522783578651581471229866235169208807912174538013466633667117789854741246380774166383892282072313582659211734921277572264505872647235198517321683293605666291119923581319709013208175965418075773465872688382823430236000331217702356021290322103499585156280798103427225729676535125991667987269997294810334943320703308448730721432800921703585201630801081642917009081487923237718611268820367532217280514751212922908244512407144901749762754509896107152248274478873664721409217382397762973106081971103577187578000283091546520883564934238649408979315190403638217236834872086116047197848109433192644303651360876092465075066138252552605504982135212005562439454260185612916687331803248680361268959836244899693080373399875260857923853163112320025510822217293185525903884459822180002009026067295669450212926409111911583882225997982957183964212510603425595727996936736261990687798637469618386099388618213237449194751045639660341581737976464790259513310854353528065134926002779080060207155576482707870460787999791514652960710183990774623859046112363405852698142785747135987961671269529459520178837455682653607000371310512714029297138381471215214793069745825460290662146388424665688497207708001972151919571570605364607125781099529452481658498060550605356236056023780500210050793049970867416787958152145429768578125587119679541374991750486046664564839324443073569857531643182464385218041246225996341535806657642443920066352819421114285090042724385506525836997387665882404650635629917100408473814385267549233789005973760411713973038015150441071743820615719519807834547949083015816628229153648451472864911789175187744524741340593208769448529419248995599504766196605505616304725412054890354923558320955069965466300171641542142370965330980498308049978482375516631207789147439050942161505070412831161616350773576320485515614834538434542938983773911672120961178362808435144154956911953726978643213058360507135218971457096283061635119765684777791675273300583220448102658371641211198238958157252985679736416319685239422065170802215592717267755698076579256423129136117720091992656324103911497350667084849260901539228705380219855756219391877018475394877137776735435090902806522383046373933426526433018905022897543507393759552247910002497864510418537862126648931459008503266021390651238257944004070602427611610413215463692652735379003386810818522379487314377662366379160367928569368710215861957603017452324532467537894239498294939676875807851498900739487046772995849059238783914366693017918403375037860146992153840209912787516065164794751031038575537966524497538524065941959168228667501130635940123231588596380923354654049768583246505194897801099372847917038708548007488610336494581938830447215359428863768434868993822103866340806471968164029195772530074045699687297724394443825844833957071322833021750633919784610257851241914898902709585028574623701964238930070052657884878721429998223747816497890883381340255232232758467838514325103773422555822755270930108982462648215683978614241488572122723234917728825233082831184229564559129279577422101493337712893187530057061485129799910418033838795043456483938702522630138361392444880668381982896491186638844137493810800048518665154905172034333242399176460254883759391891431195337303364375357992169735142218706237397064789640231975263091583499053309707501245660999629096669745890064189394545334052022138529582108380281503006511780129664384922182813350036950951910722443275513576580617622127125551664285602924875301155070236090842428938342576777877654006104423338032395072934334428905616183557537579007288742752472017262758357931362865981717466604822133755213564316360549624523488143975588329470645139296562753216259888105213716577392894228431323104435048557104125365962215056015761158712558588986402997031253042376918550080528403823358002037341052471942621501637925483441167263994216394622912803731021606461504988572748486320242826959349417213306061131824153704720622787634116645514419662536707846168320805289378813612750675163072809811285088619324982978109891742745249312316039193564624889566780537609072442444460860858975833729584443216065562256626978150464055820989120189488274836914756036960116192555025980730074596887447262079020679400280413557307042911547739806814956605231336082693779163386576350904231169892115613945944623238716174953112337686784247638019224237584731390651150124275659360899069486044699819251169895867335561664673506344906907149555658676829036085985167541883915431955506885574146090213058004264801573865708741761049587479945457379726561825915129804206939216109164997651197911181589524078117174689980892440034785308506667787044011996662055857790445278124709226891907809055197258266608076171277322686104094155166630672922832446582880698112340393106750171521455678657624579253616707064088195336724810397851003359320662070886793419659455530852023497784120935244027386290963496030062035874091253586745565206365752801698071858261450265451784492435600742488354767586390537479277550123003422178540304642722434359301998618633548736557895408960219031188639583953657776052910960370537982838683426424495655838506019469955735398563227736611931832398865203982369149352896479887228702586858377975621330836417140903607829152124916215606520576227804932449895476434481501063204361927859940801525241898450257198262784029138209760276036916594693076821487737168281515790069920483778879060089202522039915499220538951185292867228424612061364703432293343193463270078315122261057915633619068736190140313466143440338274733334963564244209752781625653080755029311018874827777077955489134243100152252419214222447623256783105711688908068039185314602604315564481575103881984310913251990314358609695127162925771322413502638212825394682496453449207756938257654314395889425807394769063635727550433249589754591939289046449580792101570255347299495598662511013111603580484675914433986413416556814865233299845815299755276061523927359893748456193835541092881364568775820595454204914434133437338076929856359136113896725173951914519175986106074495023497471014486035608224927309834843383561491311368819495219119267980656601763730219208593921076365998860557303512626853566092329044363388819352803409904403047604246214516293605403175062733937545211877283820938058109923635900397036899762678208212843745113953627270798692189325101367745151779267398985139392117769145220233877724564249338930740384616616533315826413898466826406831729850439165715890467335793607391754722930205748937038671169031110932591866958884313962114682899180676094707492657960575841229556651412960043196654873098692702472943543031340042889677291360886916136983384705537753221587914599367279962249613275366171573839967788220254103228626703347984505780148458578174753487914003125478209478237176684253069056412495059567672719905888550769492849482229643687036702814022657798717359913566919033268564231657964341714601961086339264927136015748536447127290693648251958074526763483846854554983502913647784397599482695708714406019654315823608939832363208728516086011080303919618175583708104938464499126070591049657106435854003045668884114210293673120418601327347464380212026224299442115011823062567688148711371861316569599204708109133582142861278247661461903713183193975865757653147849944715187907527795459719277754955053687779816123284131003806064236147632677462631728624987068734814406198490175308110659391324745515067011635594787911316733297132811113902891176532790885417307458130396811747979682044933502214055889474191543001381660110085167226367664981288487569128926968272125556825946092001355516724654789244066092993919141300451759181290540569338748352471534344467192858283364189527587641146477763481507823140907154178956167819609675196621555236884857747596400504748567039259689210853064273506884769347369055139454845597819637802194294589155986158922741591718053652962669689760747262154137527333188461480302076800238660252927276932549159214348714384290637653060058731806827453100676835581597575701731675000235557024368557245645440115130382541431165095975708651498827427637487371191436949799253237639751734072655912471805408054895707184075672429042957675845853839480864625028342850197690082467138378758477088487964978383461162294584068616096211868915908907670072280228373623851945600559893309538290325195002615910844720563484526033690775917556520694459455500637445093201414227266599602213126203357998727422541344643146621754957982394700785957744633153045838069184674388418213842556180722773088566062457720162335574110666991900271684864781762055753160724680265496036876828140321231273475123177690537413119708637326847174458490425004844445913479929956654483014538993244081045572630293446388877817815785864403237635362122214476052961536358889550827765169740088140498177966508517658430258446059157925606103717506813465521504704807647488770631265406161659623358531969849322942893439854444445042280477322012812017052804976237040324769069387788006588217759384807868581994864666643587254816275470183637133597635469366106854582928249871110716818103420979191418998557238596684859535811014232696025264929464973821175206336324642285056040855236883265778820554038627363528656709322449811409660589642144734212559934279723230336383741335991143958937306694705689721390617359865608012715581657553966959737807855651415755298986861552014360182399280831579416345328784481963398598772815495911447463361661772950853914751279329286191929240425727800090147071819435489879803353578164629025141286170034795001336134106510237443023288618231740060608817169449520666085132838094603859909270519681080270428440575266353612179753975120440417423489256620876831814052820900822383410221385663175343897429260235256989323418525435111479736248826617465135059030678786497202356527358721541262132936021625058007764603647320044003876798044879210540550407148860180661871069467807876474368498191461787938503616925554704917974299869923781118897479735941963451777441309695547609347820008471065437300433307331830555926063310249941280344637293713949526923308095790924903967770190627122205834455697613401811921379774068838004111264386213279581185735926624879936299294031036271054323982522875113344389776823502100627974518180070723973773314327534484151738729975304920865890510387971013734497860647955426490219107819523028837577554588762812608876173701672637127876698302682079519889239163360723143736258825444773484618231481564344275315982876154885166894487911721383665474354817894058461099567856216125038330735215407114299696643061291054181534699486372006037957171845328843050120724383866250803255707896991266186598540109078928286824566561355705579341691917752552952645768106735556552822364678555433820787175680027586358431499975262309898574347477372349751539989274812275162606794853551170013845954116463908937031612273180502873535851029496940331878711341457851795083146783495140184507775626127973081405967758028751155627504798627225481243013032219345938744362835525417130555665678017206069091066879304460674568882121490404956589624580257085126124487591229602290403212672932257027987109509458352679096105496660752881934902862304478493743552092209077362781268720413817765208714193737260325155854034523810133375334924910684934433839004784090888369586912438214208244705981687555579842886621501838210350938947078439631031642959025634873849227013474029283428076940932797281833381622552195134193439352003768841902786032706609332014523595165074417336069388029333529491912902033479469214238354427456895417987058457334311317212523629889911152508572863035048093454524727342002288778931771393267550176222489607254973938134479222731708215661575211047814493480254675609932428879531826509760476020538308002220279539522317853200988426072156953855558971958281081310417795763813739041325735395628022658822360586145662715310104773429305013939240222316429893521152543330736434994027577014411228814194115882449987093808809236453919981014870658350209378471412720517491696143850020505584337469679252429772430413456075098330045017840928894213153936867621453170587156495230400341448074917110450479278021905921701394214128819496389989915958799174203328497422615654454391493260836701491976640519029248157070405264551028826003385250102477321017893115316330625305512910823320487620832315017303590048236490969823667867076631416067766848825734265417162268747260252194504441488381665407321926628424640902339328448443595827927929406712064867108440395261921646891674614349108234988149038120349568834948751413181826455610972989879183174697559241990878647628145213935504594066806159625179712681781045287342225338906449263205016501241692641883821929034835216831149959576001232481608836306314522339013313335202329780514424486440309118303341139495877113330327096763239507772305653476919437652628221106531530045114248038950988134878236746913491824435006345469692884027009512854142363198123460677498524770392401277524337550734748071895862001617318911177405558691716931850002992558128144429978388892218661535769686154596958720666902964275384558668408150411670086404691020888404978984881881874298304557926535660193529595798549143889016461376024853252166874275141036071783903227856925814472418352748305404235375139626462702265667715701292057325847490407239152897224731547465915701779865391386394565643409408604271732779968226654801399348795324308369694940497248606072739553867129175971110262493524231021670962668053753518555257510216464078606686199134096617325383327505567825871333343570199640890848466046072833047204045398991939460108239203626728415277244915971629969537166921819266595497845544282616193873054564103775520285986496651232319621009896573061278653614043541257627562032707132844742992051622244168963657452578060455312482352788423281953230568903900002232563329056076062007197203743993390227925249608761752242147860091290972642477700993568896503140212746969023483667774097360165304682891301512902935192799213494279228044866894329491021040859113835801792134293594402194544745612978038619750024115505108066753258180179895100407312056205199040762979125653239031633043649732001151431601606304562823553371151861862690317741165193115878538578976684588403523128525433093906964175937741008242043793912059210100377693141713986412715946629295520031457114926301427073885215844940121110620030675380594199324470373561731053043853426153489403909245526427354415588805998667667425655875007820886873056585764324085400202530578959589516908958403879566031825858769782703478755999485734843412832900588327057930752588038484935381621012433765566902928616813822857681432876546495434196848231907462696700924167646565147401336993785392016453843210576976882428136020239645087956176598016805182499195655613918052111381765007859926742091330655190271209685968837474949203328904664042898269965023061809449680661455882642723340167874742099822964160610642373813630230935686716695824047542706445508423629498839254852294598304956700256758500436255854181693094190471202233847435282012548502253526670692828438017063845889398146627587088705060735232565588893645262830325409658798179221249859054224764992169391645715688799839675398188933236522111137508406828256317844198064777049328438098791105983107642051946305679339851251761280000748491946636926754464049558451927748917923782236232283751557888787010556840659288733437030754193068082280475191270630217953872549970478104100044520711516228969958346958810970475760631634503516428198688488235193416436968603093285538109826718942564090784014015898872613083916313928548809414653082227880114563440380767473503195622041518529307786358422451833925989492438358507142623582747124386621181444733311713316816377759805260693245714879391486494579331789138347308176288591706573558663074835761259883891167183111705711151572497659275838585776092163897806169255052086496692843632060639342790971329431180157435467230788674392621885291174353307139499955852191346649893180154685841042775278470159377536872457685896263234784724077681067890461063074125370194158887783190302141343324168392442813268590813184759971594779244487644557078304055172775050210349343737775271301163174619347197525658090576464854349996832900071956085202669388097605965176376722881330990272731249141706530019178336722214225360633399985787271863017677192422740948496298992125737443508898445219392713019131501644458945867849175741231055444202874969900907768287146147246126270052965203393821608494417604512987302279217104830202299731959616059659292892483437221527791176672854090753503757930512220937912871538143908097361584838667817085986721681427640596482279735211108001076225948410319052252602745343851310257152747783710253028960732349848208767948745543984687520992434028185147242050541570561327861588410378771648121122014848593838015526158174566178891056739372578383185171127472387610825567776940861788677019140334832327883994238772953268664681818732933308573676107778014081814470126745304607359105329960168244891477891580123662282464917553471665194681743114819265865014063654719726349176898917712063907538122694313900002403211254004724396285356316695567944732157982716925317201134049791492009917937070771222252015021489159322337596180138741478756938631343472352829864751068001688864216563423485863649822971463805471091358610189528025316708239270055061550693722971433459814436932013062160525138820299831737706577344699595926729996636225007801029349282810800484742906514711136480332831194168865965245576296847553227407655051529583501267602919189070160697301063288622171075366072946514894769259538377487982452864288755101708397626793520747679926628266916030732439293001600730977844872645282999424243031232151617705884825564075056847795434472469477036454776255889395079227997929129821812155898095363377276645358367802132860793688479043031453696382198395439671518758557526520099109046501439925306868693262294784547596217625974462073841551417634202828678540713333359111308343138976454483975540839548170623088137395246954534239486941581129845668282864806047983831144239199911801201421349197125754050650499410123361702754417510886801135236949124567210661905416660921971342626949661299238907982279585464150595832866481321055856953368501513365891183906440604694911266016812563045030418670156708972903814461953192743640331820907036201210940398241139307070856945925062692657157714174586710112608088086491595040703453419454462382100199828699141032354372302584350459633528774516685341258576048147679656793405508983957359384023048453518610356016675223526898726899861714872386127692723759566262929145476672014106793520818919037631106934645825525689159082405023868480057425481129104565556269837964365344805337918319931651731071759811505045641658392695694589706955296253877934098788498827018518651834048041083901035913676986897767973966628434333252837943940572542122074359476876440636525077968279484479845247586593016555581378813704878702018373501441685727031289873677630097858812282811521693728596318472254366150571029502144527864822153660799838485144285869202927062986057680956622894738653185352901753916597669794527035741366875665422152362956628432730659655845221376544219106228589222549068887548181457069984564927588626377319845682171459611140543305855247178444477861635166094892418027880482427529372388146758253246301946460374355107680512322597468003118705627195445164998844960680822809407087018184459659858842111231782978726546798985962997043559442129853447802283708278868151781096008624702678923632447802975752829206245502167845926378676312367959499237369361587872265842420303661835315763055058831157379694760070473178916034146494931876844337142293519232226221119489882507635678121144400128905219444463246794620383534431567377628035209303948091587375640069333390890034717668489294082363567048086202675265987635508540523540665331424378171616540724630463037318873885106034605372207922421267429043917299087360458826109684125536608932255715387423965209176673819356389957393169941743781451326308111575503694977014576954625119979926815660745740893451876904746136295336514056699801604772533832420904945235184750503672860662013935592010091206471707313520783842614937197453638141319995580673740657889789899420007188005868461138971702726050793678514868742948371433450137238977998146437148717343492043471436262398897458365078574075620706709015117857316624756245468679431542702295601781836248525062373835256594765631175469876057292633315851236795852760236310575550505954598613864039313512585442741827397963495315532431995892377737321662560850570582568640590873412914828536517760718727843662462419309460070564459151492699694187045373206538015303723454213698964503024921012570041641533505157454927721545685324032898065225343830753219169211226839822411546521733117251138689366079656202347205970006663330648138186828860047896476729826148532852740055091943679900924494211889909782142604494871970070237712030045493467358739247896392650588338598331241474908470038089136172770135514045896181137330421085817166579619275173898635297339989019357927384718801171427396370214562078485369294427620595331693606776893873524591628070960123647669321368780100931550778123014617384328277628884367443939892879427278915413616601641948907292636328432840859078058954878602780893437624893520406375417725780383337852215300870743296523613352055952706632597901226474535394189362895253065412489608273821126596695198328456567294444445994432913711200569254019027746192598584124406349692845891878387018165945672755103675271735125008949093654661125507223868116073794569109897691650446345876921054738425181405599401570863735072711964650926620301092426875701137881985196131393514624921687771606228526316881532556672380929174632366190535079640156286832073756023115897770683336081456805305417828131499539132980384786714458487122013649477265495717762362606124366705763948596036950589797696934453848350300907779161685338519044934831025275829614781050554489039586581456718339961557502229115537990692552842466200693037857738713389490779160667691267019795759917934047480889739224794931343910320760898327805076181704485193528424530355775264942431985589041231673035535741419413784408095124381529320054625276017077747729646308865105705786781532877531535538707334033287001057575236358313240623171988797027753154714473255554411260770092449891148012868699425381387776044107968535490268183586547647241035452196805360197273806044636887198963522003809889389398145711100551381238761597444581897618721158880792307652498560338330082479430512291340742940907322126847994089569458637293582650869786630738269045491949712854591374485374784670033265367462069658504824081832110902358054182065674854350255426667794995636280527954149321752102071432708137068687100777602794632966268435937337794731429983438416350282692061207336743937714021885760240605287849259210956213805596021389698926977511998660511821801206041350900300791190005453161739057314187499467247970081066139427429789770907176603582894989038395762663109014305318484017212438734840898468714324889079584541615021599863016774191807253407165281072547161888569696910483558846583699523579713290864943177216869611792255738228084389752059416825523846989568252971241786870000915414339673778888864862382145087322894009351258908305339772340531096084113012713187650435452737349791022193451088588046723749668452626362913010913866936663953024912506381400390754643903075218973582707631319148731874821739702004130993254325190825735401194271335875609713075342397781432296096170387391395974467877366624154977164990285276829214789616922442243276566558487214455334733057984311718493562020234695608363387066504488097035814064683814212977029267917510890999335152957880918339095949855141456037286136169102855228621264593354219030978814667738443759468409212358442130270377596595343248137654116993036087723478594544836805960316363125812336610644356797028329335469720267252784941818917910231683481255080189985652489772495527067094952777856407421382959490884584697588234372501587265811005964792141587988796119882086762118608439076114362312132422123036814140055030978201836778510868581410781803647954124932495541266358341952842916417573646513270379422071163430927242235837487680694983435269508518982456734166286831235049034361049166687040368219192178571101003281963232777989129509606168543029255396176777979022660088074137044061544422822464850883600946420631261661003176550543143904732715407702274641982756122633749611228742558745587400680213857298239932772570709729479984794263940870184330141538570432496136118859170116456512842865754002070551872432318337375867777475033925253265162666589221905500651456298595158058106242782099325833481334423435026791866035520913622207973220641399965108773614596052187747751853136803077011268678243574437708077496795846363513464119812032453696339532445800322274625146163058599746998996004363803351095934658832920463058108961985452572749798569744566513435133977409476037694805016174312163346714535981522723887134718240450825143791832715273181116871696014239969809611475041598468011964610729373759184033461061735863322668872947180378467786134313469474601434978312637202670424142103378887995544544894658827224007487464022108247415033158233969227471511187036025885586938967626333164478188387579949555892098127297994705178332703803678175392746156241582106323003391708019563859536418747594376913219421155547397851169868634226777088841848002475334664939177722100341395129007275036838804568734392461068161226642327090192197066791772833279192060243283870432670959490517599453161180322396764313404451637203683317704897976879722040483034462647956214493206571666365953002589498405703994570877047312295195449348033729949406211367317802089277033382565206596036123831998126859850083140306743260834678702005633594521940309131698796275883692754249169240680655037482284253014220317071126472242585775421872157127459612540775383582049877071978594815216852585156978833580304366752200817560232694640476317725303863556061087061242394228482426209691562385900901843031195871193452668633464491975454509989255351642036732596310560937721958417034240152507653777793307107279603074304170869514107623140615106577907421616043876930865364936925753106250435979864207408356338605341323057799847314251437115434682469932320127579761524170416171759088061969734650862805041263349248289142922116688871447865070839527109047950745664420891843528506374824089396505854789426243761516448067850216982504281510800811995275660494685890228316427659288801909994099753220589056902322601606279116636200230554409928831732855387691233342841386395775724260599459187057133105043142866584464400448890271821441142196963537976960922088815726746757294645658109427456528647341770730605850600127979228067699959834262084271371169408924045071321629339054676365201039367983488897437184371580424841303129554346877679021684830661710625652525782909427104227115886861933802364875768145662311357365512501729387510971545668503915573414644435389640050754685119399315641749726455966829075719677200015993104815774745867810999743054171245201214594171419322552818264278563973061570295878329915758626836119720290503129993323019005947459732288960984639656404416734273863513643078695999223504077844782187972185178664024817945244748156582508155016304456960786464127663094381098409931809180657150537394290628223749174698855837250545893318602171250623412957100402912871094673808023811084167154750918906365481182144479267416930632025949309298038046504360860792463257835172275048417506465482311948183799647840290074858651486255368693692221313398193036077744030969250854191514382899658416325200116387698981365587761991766407140484110466729401956508132083622354822668226385454232753600147623555408645074959047790019446585036431214990257699270815550715529108460641141011848633262499300937723778881986636817722463386085209155231462802867414258744473333739760243185258898015666227472157077899152243199425603716513606015601651024447643768479437699813239843253570776000295493765088779222973666075423148476241105230621975736021003330930328723168403382532101056201429754077709474243018251435108228938921585873903464614399532233913606064057528173807180950187116922614917857241874378558799577655902287099560485150739731100501198797269983387037295676964487261705597370308012196467164028092887476293083842306849910501533714525792715916782087926764537629717724040166676475655702260152670512181449484193415354242250179785288104983795712675633673343290326200280683789893733948351936365070901429751395972422053188496752281878840901684931290872673983789579611254865756634558843493290236737597968127178875694907199864722438999214175407889410847027713580999295666288582231580367110364839233895457929590047226513415985297087189731489272104678257590134120929858841793822246949208869898594307493636686849215390768277565122785729774295593986891153479439479982082136908553579805094263418037998604612104839192397167596425501869586888488671992726641511530958723368678214761968255252219532193855250206708846037268208423799501127227003005742337055672080651398228604689036772282755176842536718740278256876214895226724373072558097599627899143887270172908882705129324887172219041758259444818621438366233015489048290705913540499275592774826859861623556363361692199377194959262212228864565183170760856731733131991689412706421906329367635873680908872797660020990524047487617280268468864132517287615323585682530994868756219914051415908402003892502941741210910563919518465714514401690894639458129856543659817535781424149634856091671701936414237832634291615799143336089031268543092516393016988898290459996166173814563769521806021141633170373324882638598761282578097035685394166914889108622206601994570981923459485043354668851270208542436373176853154340541285848084805007968037743256542370186428047500673979113363506524469819111428978762718729695524046744692383313073327004222565083934653810541319483676444981426275813606314518745777462020274801071630595034192803660431337269140068169138923900470680905865667322969654475660578203712727184688490869531074134292568498718648383571931721097208392216824539323033808088732390543303064395411163797419953128983478441842395637243550432860162743547725541989154166069282698372542270552381060363759203617371030830947509541288274187654497248025672841825035022362313161713084590356463195026747476075564136616366033404130020911239402582104142895775130590076892878185755364635564600008883888455609621703541637233828701828961335353172550732099837267837881660678618567630442944471965130223853130037129980461837183566125670622841167411483864598611143714527795230006193038918759364059280979354921687127908938499021175422518016906741096899212322330741292735964942344329969428343653198127245525729367008630892678110988173412366261815930741631166665200960111505799707473101222638665798674982423936150676970582028378828356628223122569632575472654134719461791959337791575143738402745832651505474718294797231073524738979109010775533155090119998910166720467831950010960428698211282722967416895391023687776994317331680972133607165733662709313060351980947410834922645398217049734066970178415119601341431673319937597863099946909932062312886190704506091112100017588396086946621965610034218963474072528328102250590388879510052015427170875092550658926329362300062363487233590671471537413423752419280875731340848798753983136514878185520721441406450994686665757698382605676343201287736645141357960298840256346024182042347247158674053636884276597801878901638793181731506639716453723261519928472550856329059512942644216652630568934789927280145677035719014336265941002934893827653152393313528521214378725989388347751814847432933620030198819113666718802089608278779493965677153778754433347313488693574544426406046006476362705397795466541153403701017388254924607771779095887512257900311180829938896453582339109429813012149869415299670699728102714248887162600058776815239511443398416695504464911915453398868691200762590230272798648537380414063311648768523331286412822764139238774727527023028571797218194218668289577159525589789494171707561783942446757078256808733702294407771938156411359227073259697624136852269274951839565951895278841843932839673829335808272693550140193776072174722693173933890434884504238283880921615900940139242377379732201959303711126221525111879826238400919886591483060429233979628092572740111910503283772912764456580837405150586197755449236208432329117168041115462752690861519097675237249004579095776974657056496549958902708034935423953024012382939920421396466530939794385726408841037841169129924468001819699010105705135354558693885425915837092574446643938260199045213729137390057910348630248351453682632284390573551598916751660885028684368868469451628817242487483572539872231290603895442755213572940137457343264606712836541640126935874789653253014800628902560243145973811498979255672647213353159915849214539051598239195850840202914024501898380657550281997985048871370670191615164290475745006511814392023439256802719397562999696005228919296148518316365859102956473632983051419791105979549906310931313496459986410253114008646770458888732080002787174829056651652464052940013518770365260981589327927175064811829163571399119666563844694298683214853708788100698752089752012953237109217782611057863382135162911155256225682101104919837989769299289676802253769377928056309234810030135977088631408403289135189985765714389469849902088855456322571077718422245058692905390839995502462754269309274394342001543982554453302892765885993251422985427918665403107791204716589465320558289024581278752733847618490743490850721371254826659660024125054191628092623013901529501320396654531142923737028676322487055321521514803187605846680894673685066833033034588706009755318415345040807499941282353141010385285462632249316477293394939248688221535008994083541096429547292123868575240163504186580601150264532409608351964874198650120623799185125343935120150086032775006301493125587003768551373776381979794703025537190512965801923360223514274323673294188823668328776459018337923895293356754585085890200405400630310320846985803930459462370207008333892012189178164124249235477509730596111299018185903350122827636905238233644429416591535990098802260131625662478539299831865788515691361109774253266209063579979413970998856330830016161159418966935624805181500720081706324669414624457260599387615034287637565441618870827236284220812335449782515164389613112164019884768434305256042317057132334063814204732062916613807130933450242821226055057579474192097961240953485505644590487921689100696701140381832931649319349834922138975634589050543228079901379496104156875109663246134906996007126268303469159762236634740913439933402277870792293642664130574555264099724540720436087798197349726207904039397352477834845914587313007062386846623592264550931319027169248691246563962480538321377505473818856163465861201371583983925058263988899846037121155828079666027494645706130663922466634078519885271497130202847754917990144708652071725999993386576800147828977528030660768936499029742281329078840070878363957501918331562258031131001092693300826666919404255378812300067828732777369221841425534638412722910430563748538226694191604350857651600477448614728057841329114548660801140109506610200758344093115335330513075588578541454931083185703531690790239980977062879662956201842994530093821063868993632785679141872631446509888899026729840206642908249467002502176922861396060930238132186111681126614388922537280603453506253283152001226618418111788084868386828469276647350580959579764842280701946852289395012186535734572481615923415201083377007936384453125248942209481903788737578768574053362064270042992671369164344976830888433047864808761893048218183917411966189443866668398043607573223348950869054486834294292838693788725117927248979187476990921528175515906741401863795358248232022433213108161376178126007890533074391206285332101924119796642582900313562129616800503744590791281802655050304870368518027765064820760317126093890990660466932172076979632026975255901825025133888652328617181853337084749922924608283253007269569139370412072330930960038113144525056489000251740679470993290200648582179987928364965666891818722876647948043898728717275670865389240492408950102305531686204899754351768682374004593247585668929231529552575775603787241866370372210999692238996491428863361324541252443508774049292709161287524558999126034610181698981104992232605483648846219830164939054804517031233195386386559095626153159069897735349209783555081949928951608056500745694430778829558231909603872208252149966278092807396165034397728508288250313364448576455813492091984580924302961195535492913262660353556785975410661908024687273450975185955291211015359900479491394954688026434516044934780374643464259373254545043923755390560390217372300150207334066742250610145979354654184918368106791908819807273824155355179982319929780729768545196010377168653221980905733706567025277231017013314833517939140715002327806222478721468062220587180717609627472918793724291933367451248769346910109359441161642486501564740205272603183257646328136715700594374263229745823119508426738563273764786319237702555392559346360354279238441411703995034926363294784608158225164595522580786065645129738492924939307731399687187325779413410374004943933099957489904830382969313910447135624171788810594333184251358814440401251497249089790486389252868475735542461023036199703818260454926586713360416771499891596122823873751368869667967232160927951358906348509935467507788210909299205878952014878835069370566754058120444337430778911061912969425057334266258530318874467474162491419059579764897500919436313000242756364183265618145991455135524692134792120967878799247176429335814040199217185529991804675389134447628953024693684123886159527426339195879044687181757257478651973977282406115553372394144736784801257164971472907771427276511955766521392203792416101466902297152022133002006683698956275221435363594427407332426292171242120249498469529367334331971709656479051614633770635874294146270721226482902118245740446995484045078232302417033967375686741902993656414516863162660631175712323356011097438385224951948465421774463584180857658051421730947202257013188687153103688096134331651344001089516378104951625568239351722214984899665077582658559305510942442790984065116077087987919274519135780769263416570936639456852291672947776268726372097734348060179320860095679736734914616481999223758676179112517927052360525537491464892785337635536580252056026385176893591103748125813461621034549855581669193439440072087840643222436204850696918699192510741532005408637322737562152423746012276955232413947851663429666060156466083233849985086497597622943818788464787977465734096162907341406015352472810513174919880570605089230917927157360325123192593274106692829097718452952331996854911409989060854004941307722514455864244052217334542562372631576471875596143609720641872743862930140344508028922755333682018170533836022661386077011261371596478561059010440776767739531055175104357462161699574268964395011282555911944380960046799495908576693334291380893764868265948471009148156067932607998787738968853688398746902326279269740947943135431280927862555427746290540730596271969235896819842698899405323540244430103432791055006223344820751271639582536458005451409587546499118030640906053506757889523534302052692905061314619780750644090477714146914047284758244996586062126029767925447370954166618080447820121327970049034791297688165254336134620976301607328718546999001192411937140690829375334840404237381717028451596773916982015269014513222414833370240089223496795078477547522258633586992508063098895570580693623023592089524691613591314432727379410363031059846200209756798112676777818037101630267368780543108453578668971688191597684501822002629012348361603869309889418244466458812110756245012785505331126769220664701426833296086148195624719408809139966017240852558408411202077017283095847779001861689720505558430272045073409727679804970755021606964927117458415529776610347322567683732420203214345532361964135679611458327820429351013257041248410639516344566628552004803541129268628868500590543236541831777718196605494080049249726077644964198140640694688668394903831197127317543389863739412043189580917120815153527513705386087274217010526840885188125423659388063692448416164950261928760253645830218745460150948831050377265028745679431085481305746522005609893388874231958228316219079914611496368166205833894395909767727522991295852434940073530867140389383354768647836551443354695339784660297990809604018225733539866308200647878564527267722073571939709900454719600025818038037186718923727563347071597332348977755898489901978041573848468700935149303919278415124809933328425627792066074618515565069214164279667571489954409319191544906970277336776925184829634131543413983810297557506109454904388044245055347947991057821240818382900542371846220647279169278071308827630935281192774528441827337591738661992900134948653126485675556592580815939027280788758022986953194504289157289126710512817159381962239749623024415526476343335901826048824577034059960690092219487142777024338169182259025191035037911989182303138373869023051119671673041237992360361110999284390279227694919607588708894750707844593696083652780071623368075643772304127900931630524947473612153781151767862235673545794339886400344544843632820392494031086171291380948341095779160854284300602970951769080356813513567227080110973539403562723466970484325497016172322081919833405004285412399236791726935255431805145195249126183326242685517526382346282686999431820410256898645727571010136576722352400769373801045776936060933337302042514142306067382051234179067109453558168434678278026190996876320857484905186433018801950541525642301838641375740724946500421256948045722569482978685517086806508775654225169905148659714627515736359819800638499736676744403095455474771216288987985608930077905949606954478736908896441298388644308866289350523729715918029335377307439909887820152624966695950362607646485655273742989972096681928192115845128138484667519604160319479656235091587293499711384183994093809891933252200684026020956343674687652960315972203271942518242434871913764971650993031172055977212287716803893201199355036116423404361781869376260116863355740804881925858831750831470233863350043210596838989967560518342622477025595837108499430738386995802545795949407697777379945945865908531946666522885023032768087340544709092611372056871779893151163715369339047046281744087203532502056059125184204183183221342796911964698723646714495666693271719252128671151125072043253008692642102467379471008237259694161281529019825145550741368150914413543660947680856167137284756548594426017953202826914786157568411563641187837066159058431847338424668870013266600480465876361878899686920055810796784143250381734962017237735317973057685119926607237015851724540608153589964019762003471211592706434524855598027260567103626810474667075912177683152204143252258437553280701099584522625394610759145264891698628406742717719350427553310105102945319748902164489937446961035979096639729716852369289347379555335538999541853471496306975169195060813958099580654640384516612270477528192479643987239332036248105390737003157575320184204585571898354641037049704744939807409590409103003336244347317869758780084333428763540618914427622156617389108377145465991094467273215476085565924320290455713130178148168446304106824193747201842709958907444251759512036394382687255142699095427600745226585822513040089851904487646340984740964486070417355426222090966864939303207281679009629152075219151844440177780822952691074378470263891568793403799043840353085244424683675599797561420243605955971225269433224914536771498232848129866030567711873306297111140700633517777930694408074885911631985436002589677881090859752512111630554371722802065348606214667509055144277021834804288637602605319128980071231944625578369068561110303200696167369895357108626031130359154476434794274295666206647012857221703504823803586725746201849640865158444245571875469380701539795560905014018892012461424303489230574426254790223627082421966960824544394079397187019868180478895874919502201406278423986535177000084334551381467192032110786487997028325716417360542561657869665882199135206031019124577391653148169122927096357909689111035955611642249400334610620036738837493069622235562570024789092905795526785908213003611821079811931404725846241523430285432970645230060105042563089899131905453368509164811348821046828361524375229682064311218371641793380714017126145547569398855778083020786560453423120333105707820179482382021172893935817378405068976795892790854658785490231984436322122597001217059352784629891437550174144798459846557991985837723980701958332048001498701699756788092008468617493308453228631644927103456675147132142553432018064449523785795859831487425293109574471922989638457714502097007245087368684189727238788534327023983576760971103438144393413699486709544295857179172512773770947380786792292670410606458712437261186300026915073822392387998010037083784949370302263109039486975956809564075165593455697387997994760171824320743003043210719772292334957349281658199737018953376244696916197504147613065073912004407273233630428599025662634941365562258362006135706314258499195751653326586103714518556996725426107859743986326280064760859235537710998148251722955522467130406786270321046179207849705343020223394897835474963677850246300355619630266011617128312487733498705617789952847817867621347203452933339441127557284845560944651740115878355976228518808222543668998915189414453154358257972397823842053777015073924719423475741107252845970843633608114574543464797296548856027400796315008905451891306847059802630908635892995738642848838339518355773353394634460253558993639338417345630935774555763103578314059476081484889364455658345053277467636390430379859585455597148227412414489449757780303070384826897610802531350019695834948274517831941036769554263706741978612411699192279687771613714743336945979473515408135120779243338422260223141610125964676202289296934104836424106034949175307155692445915900868660364095926355275982476977798940357284419154359511480025411867013691737896338433278616667582934726547186198449635279322881374496761723020629502706701705249970670470243703019200156703149519647245181653251057967807617646561143066862530018545549871455190483977809101067158433320263013224785556922626349990973136408698759993988550110506071666714387790070605084528000087848638219300430190755961753389529281829213985873738992066751809392372973861866305045752320000425443973259089132684141570602620962863025920381420696379466273205063236098429499068299654572930398484180740916688337813536048861166774221130051324270958685203799832971668470336348546632300769701944566471785078110218722884222001699352720486193537926798059308679719540220741776870632416266453283783411150375108034056971121776726421922712488616914260495588355171567368729406250346564084986899086741442696194407173959764348666551342018757839999145783920063783430354020093614304729420472450076273202993071823179164020266333300631465894299640445152542386519447824301099565210628478731472140771550801333238026418215436769728720856316941171614421029404415831562142271879927964818308932044810570514856525924235762519492391284661044408176334553609386486811216445386925239868641881707814651792594744549142012093600823771514840985127883085436039035096945699808827701920647674064655120692273356410338270876209938926067645741211800089141925201973672096124369756417668570369401712227031539702073301630928227819847917087942870422575677094708898200859645252360194779521144553133689275253324039491275782249504023550366505638040028704992344621962965290126866776707618826672153000108827509876304627573347660470967583724139928428910420806447579792415830877867438603789813997504555884829162951039007178362123989861334413154636275148634132713504251774740313789354029174364535815641496591485766248904216930060711056340028114947364923965301615040145024485639001734582388324840161815579977147665416377068478088471109568752558036786079089867464497187640872650808225343261145782263122884538675527672614772268263411879567355296811846028207160188038861906362789803645717274693573577054916636611308967773490816698307704097070864129492412641917301075142974083537401481747833139821069233545701593885459965370048272111439289268304621857411587514146588515818478732616671593292756438188212524713967431230265522619626006741950675003912161364482499668065400221980937315629886416830296300267574052947966338000136294860622664793843420393150984334616366988856170010779103812719258305210408567426344444276555372947857810237262951454419905823882732482131410520328706985611510896852379781295256157355694314245382967896777143436708049784822711189270089298406752718035861371787264025228814172161821996787934918191313790108138350631538479882593313616703446344118306631382525213345971542319068872060664898104553534391503958615436204542309767634250575651166876989014282767705802348382832614388612803926148062560539440642482485212190038546740739917303937266120308627882518263356907168628357656337604255744069067853462431873161144509018064020510256578741656576144259895724848239511146490832797175935489971391779757527035819630425556883899467768389536407648290276817850534302462601866979609255623263061740535302086996428990806041518906636707128702874313447275944122447706782624105880554970834002693036641931421249880967423403141675389697289932124957787767739036418009554819646579606556648716088048025070246940625327373125397153916124429385083675690205834121730670989985773432675041682233570741363212207057237346288715252739941029141991015862274111551915023083768265515547865523191219803600631836881005356759158468263937979259866859188591133895652629729441241231113363104351990596569029424384301918361760043318973612648807731140522047004000082049355717980965362331550925698093034982187210896402143354283981838690123794358154673367320101156336828453030458377834490794394253439263321180978011220390463685900975089980709888502804629549953477310535259603389583034898886871284850954159497799608251804274437529337322128763968774299980604624043538761820935185352852816521144036530674234446149213556723483133216703957765429511715637300817693206651514704012151589682372104806549979270328675838732919287692396941120620867986978176518522481162295055855121513652921456684427807522754159481661734669509279708703113944148380151949410790235741211935061680149487421264605812017799558726894562685747790855620923864940540824365378475539402720219552204076514640565980246607842421172399965868414881820904282563302579973702645617023097870933868857257383452392165078770121598662001874502880559720991303720904446536660436163625634116138533442451480676982285037251390784983653030043728494585083684044231610211806668155507676033214372074631828992289319633225916275144893054462359016976301378076013919480997504452026184036744248616862605997524315155611183540894071011621921334763813127209263109786873245872942019771773805976322834868916714885655219913988873517922872420126002622674336742276591390533125861246842058082259673588598941148479119157462394105841025033821270834425493684538541933439648317695289820225034960874740937224878565127543199242461172143464806325859835878262963241587817583978916638769616921044072781885816991214940086374155867957407130582794355355091787286823413076571338158696144964168130439680229847060528263734657395565292049951817537217988039567283420200882829586442259923128595961698532851018436063491210312298330296060754188758274512612432578340822565524493457462631426439682417530421830804422046772871852064777509333518872363910667691756669238022699963207077128260380197302294215593483561703041176872863303819753215377852838347752539053304192986464051104743260006171908255298892007970806135300107819195480447250845059577288491507020451526739357128720512073829988940147869832167504986045905253330404279183174956299288733628485994148296411341821422159489989198184021182697736943940715651577965524019152356779758432138244828537422469892213789377027276679786265649176189372301713839621949045132961341080517449254309914808663349230025495592711970810808629878861405706799098491633485712409568431896244367075625861486574607286291415757250214362453001398371800867852045501550794760438003619100613037613514020763953498524854752859665167340594583810061665677766913943519046207069479703141086999277963516210813568588148018488048550582596740315726221491327025440775838499781565520367010321321817723406900697740975726877468617328643007660563131575321643618512457604466690908841809700530111152451973042861202821849626322702291312431177700906229581956969113674331261048387176652787364386523181845282552303586036702456931683780577142206712235978643662679889378943640087720451009699437612902218130513103818766901042898095083173494089897746952849521480911354116825902979958198429019652644093444754636810328561679278896233153385060273614850614671899840624246657199331623735130708743703969126362196199993251776494262245299465720373348962728519237838211017792544250773029717426944438890505790977151124683480415746907241666837537863421811065234656305889614739178491706760167883300427378141842890527595608294821750794644228648343816324797993515252836823761878062993277293430390210373894344708444166385146595813998568613504989469855290148488668845037862351654015823209428477065725218709325774624741915425517055116123476236011009210883510686354422495011163507212739172240279321649455231446749255808089140066016119945914175001969715884410757148268403626667374025342007815725891839588637192064089488112883777024778534308772092825874334208716477139010585893104657789362340057051609815318587354758994139506539584677356762280292181219073243008827245805085057021258451874025211160696628783527320253286346906171777347300474075548935187033573991418918147937716235086973965870344067176407287950868137172164063922961756348105068804397147101868957272717712528867087140720927548709181432489099301870333879154623027042297944197790884219304712275961418637110760165124071036454604638666981180817191109779076747026627589429435701220977836582790674920410371566294662609900828975242667852348223252004058839047446451444509089011745326496797717498221678381832922092516746482165633056807498907370261942567650149685584557134592389187216742187834617361991791499943382361820106973005581725892955208419164844849778424861694199544902649427438340143674744605200619240608591899860501050621213284248775998232851788601832079795054895595925567674237844353934671296429097014678755255453721872625461385491802285146357242724130003285485953079615126832852039044429327861826277949594358688721059373876618255656413166036627796166193185253041512668799812750506490417428878977154960630984755698149496053625383217303664274218216658497133725485453430104250070511454897553385599627665882775698003736112556473805265093065145352216881619915717985814005070734282256401042222194461188967790754081256076256493143924326417634012959808827645434962089412050131067121790670166666958295608933662396200740149377155704487597411641106410942820496251233670331519334476261322616592624008181975864846768202260796853218688637859786171166862856431437244176954809724252915312577413858221831404793029387470793985675515138260349921974034814671077083231887983542316932779957513955934321220345491810872143762538037429455260048025115788074817461830862394102713291964960795382417032271541650162111824352326562428222003375546993508951382717311614878109130878475685842981267847006586969088869175553951801434480936070121721540648830211803478809540139371262110272350294141224584799508518971908190076933356380230897992661522178818566071228843350097675055766620320748361572748410517089148867020101190296939443712172822212228847870225793741749138255251827646551939688254778276731777135514547274766169060479935774648623063562909132945662042474975566654061524380980954574272892480858992758263209730554597243197076816720163794595412902108567199437739739784994029644719864380971595925882968065972832218025593251560923985027678514044115322776627555043992660063585422767970428907264614903963300828003873045251485029234831951345917001242351586987001551100287682156713794360990433496731845812191012711134378374748917634016662859037131638753639890965587666834712356842745994817658377945205862001169517950117805490034033694789923804757070437014271918318765652828549963206925551964451890295245934552740168834801149031148288511621654882548705487688763740145663639790402305079369549591576577861618785655202262157976720962990400142998168879031259907666615116562283853844478006375311224093071875959747373435155878993874746874441164634946605928665990446494681644906727186382856073309009015412907227559284194847398168435959600060904068315936847301324383182444489330715845899751218518583747349319178797130835093859796075765437360889767173912276000857409385999115061761082384499477900171681632176476115097058262102936085218878299225877088797009086019706823650022945046501972680495232994169115766358268869115222168737473611420337633178029205276584393287329745994282921956845505160985350957150158391629746416183478800851090659933644186543297435731012504629746481631727161111735172464052358417402485259260910534216771011853857486914503175059574656113084821133144777715786956927764939681688776383280061450782288357200964694739095869889996224673552598429478375902093639912265778856168749209431788128006333679539910525066967221077411209455462366819945910431621006270467432385476087663704649461221205612219213578071041963992524746582190574256561849327922114349557058517714363737717134553883222105522470781452508333257024180804389082065877642638552518966200457083822729346451795291227504535949400391737141937294349573951604806348816416663791559526281462398102253373624743819579346707339890225724186075337752029476281935063466134501646415704107284253218381542141961391979479614634451276040018467638133576133877839978737612410896308995452054592589714286108467155833122762024382806527419031942255253074852562902996777280689986011445981202710751632020090052157128134516761567965057218166514281938622026637920682665652412010361280653483624466934334128526128098728180553084015762292153490090951394476472325251911811023335278632623828708673319535057367627886552562615309164123090822343293507022371487910963231918730070748498853672964891766267131537571263282861256796344505841486309462136191067141611686053910035831688878532195362411458676456176708475435975988339905667889312042355091996519921477790452693398250277790505131609163168241889249142312247403998583970145195640506921713857275301320784362473837642483925908397297838460511430463944483403715406279903092490091074166953265115776288507859574608859486576453012337277117516597929155290638983849186058144037181602859572767624778164369064242778891009920172011936812469758622992608964415703137226364482702567594175827212914176458782724496018187411828820143612955249035316088073484243736197799706778175955915299787377518443498045792830822672687177455310391378820356475633733642272618699112944087930846666014769523758090770920053181152713073493517640233512794832604049748293226365100282391780289941385128348236854631432382594937438866582917282711004865378032368386609364976618580989271849789497718905428050782530021607514968691534513469081177134529611576093931482706371901271546645401856955646797524008871398495679859436619748934157080904931388098755938330780800253853043896755775638311523897372128885054795412938533006281832305282581120761837009872664682260037749319892017054015152449084284803605528245242086662850686937739950413349991642461786970133845121265417871113023539981960979549986611814011984910399830077219879514226753846960610110610466356064170296792103335285868259313938653752078050267699691789548794515022960688632127023803151389718029729944369769138853034251266492113527996437142806374003503291342180082174219671048429153472298179217937788692039389857230123735905703275329236245823535644369065107458705027651854098444346753976426667376394407362473089933892246916439789339143088141340625859501215430800106847983760046251417337204027947849846483661649083070102720995560160610950615778522531652043126451966847213230640683183381931999351010534256286718845256809885296654191736423662151238078581477585782529062192286370808724553971279622313528320722484382339537260556636909464760938057675668247362696183901760793250529324078031840011914514598315305623674466273309885261415641761639605068229127323942746863813962752138870056290214359158590083218106991360602345499303784962887482784577718574205145754559231052254455303766144015812746464844675789900223778443829750641428769641720648220210296489973276194187366668146031182100627119720093595674690857124488788208267354492804514860397618650701986922870989280732631446709322456706937302740648047914622090348158827800231921043114232371509618342007792603528075468725543912601812847501271862203061406534815430850013302521787271401808733458384192557552310943152517944623088765804674427923868498445633847391661247836365533483349398397496596103758599597977745526507990393089069516305121372406859795497796035453985149465357766432281924060303927193584486012150892758880897279555722771380500001459316859350709427616673261725946411563529552553153965577741104547277014302035630980285381432483743841828076113264537988805487801834492486039644115958121804311376480430317392978199268883800735050753096963912242575163572936971674104761756301071472075662617948248395054158723078176887608341887967777874014643773691715258016861350591618725971414763017025117663056169567516423233863673019174073228386606082493669287254307134933463049419052457052734010323769831437254236269488568368544099858844638542181631672357343426729054529443990861255992878781438849704792401993837289913659429785232055133274137781150490574237605510291666574335421041246093965862008997702550290150477778497907963246229380178692860779165272386279297243947756988855331358158630435505938882382222083782539132759667128691056350119629279054259356755076967335467942374649269578361574825588590968253074108263056020156518978730972637350440824884176649779982896107930981911613099737860897366914168641340317772148311140366331506885329142964304235096022519001068910258789813242548999355419299890221134674427254226198897950018034917072140946778718354738161370157270880595778279114506731656608115164026598335858811772258276810154415302428500261163028324637598569381848791733195185618210061657275562445134815408141522632731100447350747318421004419224358093560122157062534677933449045026065476083936872034845004048172963641042517800127099527628145366078470842948796078341049863988565296543655102202360342004281664151877177863494492835040723408408336629373373995087647420056890931859445020976845174906357561392982119289643251075522717371551228631953043165141349920753931767454086597456476366918503549568266081591854667208820999002315200454561852908304649608788613413407946832353453719287700310540574682195482328272708849526236853919313097054451512105826929881342127460254320736888601988229126928207285053494497562555939562875822555688180735304043088753201415980318607217764261223294384557317522139796559058191582655220824574330095216670266818044031279891286692789171620861293148820984622922794057814718884961916387510169367049623243198906600251377816585077380306271458817746560523249169982802932499765471911011052046356055152251692356186209520586802643305209597612634928012756068663934954763556656869457162918245530819711540887161900859844789907913486428975188275912825063520751433162140964597707829844067288959265759445192213581155768684882930613639764305866400363223119556017154684812472491933440230390542123574744200501413758372520268582118121012809336826121610152584761017346275677616545280388549697186253351730938499869931501365804486930208068084378008972123928692345202298505271689871204910969708428009510321959858565519112239231167638376398853942743038507251494110762242871292036560888793525008778194655932380828306666628285997618132106724704677146860297004013963714282419520412690414778200474292521299724262563987821800896308386339912776767341851402758047926175524690628228963961257372817697307449669484103359113931206363267389248965049736894729813913280412274730235026883479370894569431759356445797500947565630832601950282142401143154329251565469755719236115446308871815696460497903349774272419324396802109629643905760272676234271149192530602219075251719288895640071986203177095339601272434283673571462477598660534452395015145488943998911803066327326770532454715488667977977523715266111840889606670544827179390826902063238475424257894752860862490807764581825734392667615487291374571332038452669607601708673555929064295478648091499941358203180333427336915639463976595896953384813817927778551110402785548248843447115360792293866124681077656654366027366824081387231805844717479414736319298547328463846468680744261803930687396828261114820835147524732236909057957138079551054200823243266347378568036919729128966266831266581444939678679702046773357780179073916991488865221192068950321390573668484640530783147112451362514301370021656723160807500786602728551771460618869592948542387889750341507848611655761538326590728591324023746267654558304789374271977471315787534394989749222008941515516324038256346218730470641144829004291756544970657232905945495752593299766999053805683092487742824992586530595695956974475563662850234383680818430143630358539569724546610419595525734005529542667309925215245818450739797758290237134353853094128584687947470149540248225080320180301956895599503069952278147303998211296839910144640297949831968714519235186136803036417665264952611858838859164643244961388088505631943754812614745492677734133508602663376184852990006577935714405270367992173707847928494744680420810690932815218625359294674776324163878251240389712401616632039412779633184837193167501885228693075312689362112228413947517526523742016664240808448066646107747478429437591837709085225816521390878784627939192944237513478560100045585927978898068828853707604784528701802122670955760803246566166892170851125930619508207685713171137417939324433650994142607993022375272228395941100299530520436772235971096833735972823274086819734498585350612843021453305485194374485625140728066895304238595427461911989889949120145464030208597442817992021143437814156405902801099119430077685289256206978691964676421032715014971092091667632583812827507996176094362372490754239952795562652136894919777427870424737286047435096512062986163607687504510918489944012555064456665836773608428506499977139507597366146571530954183797405070770528137942066006347874835342292802039130958399231671752638036621626807686160806328249784656686018142651950153893603566238039967775671820711929051365611835164805968889710498656227587246405882557980571187971082235603806951699887479254242484915761157799642319149424414639224252941914162924760458887852652935337031095347124496146112225221398005601455249633266977933226461066677573034488796354670337775207182973966753959271396135017843421717878973243930942760761808464967366861429908639921603439759855807534585459263245604195534573343301707174693028329595809732558519437691869220771276255859058436403883514805894259393238584740013754073118433574212584222591163937461105828819575935804160096622905375936542231368308972899467198226445692828764991210658927408207469512965289212568484160539673149962547585310659130206924154283082996739751765207604820181920928248347504905103058501785226749651413023961588002753950621029781083514668409839966596112090400213022693230021558835513194632888841869384031930722020191024625820888024267553375537717685151201614726424158528221139068096863046127900184581089973600760269429686504891130317319192888779209384544687689879958632712647419037733612059787136598492725260446865844010067519655136462838409395338525949574257933263977496563885868217714538198128385007492194710462678985374648199122963669967251606941041168845108333388754857817672533518456408614965390148257948508733474700770693125128004274460378876310474048830450973450126646830426477178477349248040453629294955528815045441661097624047617277105862525374313530686171946584138089649623435157799005516391167354925292558897789512937697536790842010616084127604378004663273475658441320407287399349406859283647350937563612955715078248094992021016453231457836569029480180660379474757830499537479981397771266250161284580469980203488315041215493640381205022044323213505907121258017823875755329188725460493078905762650006131238024519621247432214772032812730528764360076681543540471852406628630145259113783874024624576926147507028134496412977872265229437602338108157117276837624776288562612954739647047961562092189316759321033111992768766582298250179798893406383219228544338214729584615608053034942547123963644444192286917111500195699474402459488721547115437432232148841854431570547621796172633050927631603276894550083609773666827616617706769125692410805955523709842959980431089986596057206936781373985740902402408612184218948728057323427842983386809622635403428942510822076971541340365243983104088028668585310170217437530712446092531965570079159349777904108831468056094092696670058357670997886069978134602478667811441957194273031272051924902002315088290392050157854257175116472050998841058357477906507382701401828636672074621472590126438566024604621012650943481697517383285468050900442068053350937431134287605333420120835488154288070891121085559483264064225979896703847630219298274438223169722807551320971951137575436701936372936221824701857090025540918796716486363865415078167097798038392936760580498016392650439169279456150127059422382286668630238110024573163703014267254636905057486294240059064491642184094280625393879924873154657081635685315251063999853798655163285818433568348178657813157963412155034623221568572876577295322111498472538584093366605729582460711042705777565016289224859615979939575456897056436237249272871084278974438495851097431526698992933797547733381490523575575318800698137654506142568361335809515255352662537656819666747985362879118013949844161527321134354197809612857038741043277304291986501267181951914354883101322119172055887651773255123829630445956619221937681467409172651354450312056479415043192962502459550041746620602508363933794684437537636643768979551583566193272922452052169417824520797358438062972392385025449434450042763074875147360365762158164436879958879957649761417304974799785476170709160730812883498927720783095000388636884378474803363320543172502665248556461295816229696467369452034538670129734385952976961091487297880360921070384139830938648418290065409164664512253154504090599680811276709393353825595046382420342359769813007051831412694614983923009716308595989527761094980076455770284381403977891401909315257898508280186921812343989713938425006932412988061266788445213899154660368159933902928287387442379552400244926744790495042043021098772816629178444474492507359425010826223640516513654608200217011353069754468123403916327991223079425438724293780876687974530082450799922864061333074299831664993509648091975653963684494761438243740288259025528680016931444750234898314832181153482886505466380294985037192508588223365602033355562941269291763424118048720301845890827166097850847477488816597522161963433208374298358692764117501282949769466441089222438499251511761504541995634327520178609784913452855611657326841862428421422181449450650446570542846311542542961296091222025072250084128889665862494308645887015466811100695526990339374572049099054887919400807383384311124709935893814348745588464725141237064152303875074536349404210877758433287429755939700349079274372356821077622403938504334501930250715001134606876154890842390709276643409533110801489459938836074067197357850314111254697803480529284455738354957936610148533911008963578201633025757086336107191865376937798839696947220980730631932077297536435932971560296142956164208930795957341940802435550848100019544361627613806705394065161800244453209789150701207063174231657231621636631199585686205344272814533370188124812498031597566402138541403393111423061430177494785428376920025554445964816257306280037352691631439781910350233344865446641034972233455386538858718276508094423135463684719349024425825489188687228320602837268216138774814405982308264556021016409129715014915312784597039116893183188309527153352809662807205297289969870515906103426119706519917261453373003181124196807356225658703450820535738929463988927808364989118657700673346282437561877793174055977650386015987030990558263175793499997777427172307044863703306151727787190816150163848738037400199587270769799374837944188937696195508821775458766368644730024115028989248441402868500087939005534750331087826032249523504692803724208438561727799016175827853990154817655764469475115279190047632669060271168924009729598199511721688506789547431551808155167004504941702028043973726053945321498579478017400653400074242505729968843363456675288469356536303672769070715561701586518432040710075006227841625224358639135369925256316659047831397000447437118145839405172642703174799536512845760823285421084476462667733470174784543899010073251829095948656259645850495034061852338459820155150757210550142343333705374447227995263644269971686077089024849240742659394007838038161203670934873170184812564947905928178933706111835731029802615826022863488462218866416794968281671505654067659988989306134656847837687644837718466384935702202549229318995338937681541536910276762541896491482328441178387454834037255939907801914304494705148880685502131634642800237032161883663629281569060936067569291575764922986836659978581275465872867197964752436339385750026705308665788470642594309311179143731075043248746008778115820488833890776823659726006327966002794538667310146428355790796007841011178748307577846796933340695663531898838838228332996642264551536310831602100263921399528362717182917322525485823157630063571999859908895683151371849605528271520369756403239977219980220824266738887763935497554926641316089965998054061456284083991485620314261217478442496408345474903752420792840745133821448746784187790475993572121211904579064952373241411969658595863599795261782605545689880630257740603895020365729803199651701555507139714815758938629333426314973139425261069241258841213622892984823078601253420714737995458200731181510440164789170593282172743326579168870101748297345451775747261369598116582947841637406525388308459784922133781928705951956841540918813002728293433435411930541466230469499438675948218755105019189479877019313526096653006724656801344851423763267457742314945448387062862783679928775893188752106112790382379323153777142734348933530488100843020083050677884242641263622349452200719983147067563185915716422386947177760541682021002005110114886437090462870425266065070410984036552827012686425242043796974184590238146371186713114992009591793346579600323951612668849727820494276915958654637370491053852419380381711577061760078249131697666862700873375181424700922107071932137873876925987226675186855868595256977711928766237567002395256613794324676342382940124750955241253358385405297032575491776782972929523716048220291358265587885363925067767185163026845097692693940510603172232959423588972542291187419424062767766009595589703445139648279939059673117547135553666951970368278166168152965695387816862498149085824443126920376689238380242182650601126596341117767427553774337284282767483815707836137999401332801458681150830893431944650899010186107061239547224310685984037314892973242600626923403848113191998958625903889123064005917357914747415937621116690799035385742578056632173261759027878911914378093779609172771743305724820754489553314909819431103514148466608838413734897570597748873255575277393132316264988645628024384177045036127202314173589161926568130379611505179560566699910191957045678842567408581269850878696148625969746759215574562760941258474934115179247325761254361186658604267057174778048484783236627858093205726789159290916556979671803802672789338934112330726116169580681363282459292517476710513887259332613147261245570406281861643764446952928679445337969051094790444046855271308507671621605026265412046369419197131761915622645520487894180865034461099567327419869600727544227948288237483198251328863904497026880374724346271825663190769058742819583999262276182552624261101535456286905144838128943470518225562542469261386285564395002459855560716922036268129430791828284629853782789322355446414819999389872897062967556727977302736441341664486422681161881679085784336281156384668289269360763183365525876083479858374838542785986917483309608672852581835482811749536988104856945935227261085124536019078976847242139379899900204533300560106472597764464741890887244552223163146590007738253496966309895134114982869927393271859117103049704572801548406880997820561370769007746964556519405537089484825716665527710280226999048067001674568999991696621456829436326000084054418532619433462972115632201164303489687523807377666240954045689822265582074496768917544644892221286293624911529303236278827740110924437216630898906741938370212815538678996656148312382835909708645460259405316048758568978129135132236334695100461978685455424180760358557076910270480193313181053920511672984565057828992487271694576784181121976658624006013974588489617493063277372135856803559012115047677923530031928453160889991574446268846145760612526204613854389547950593658830085680070982606719474391319416244231179055511476107479286889053467987243502072504620030911560548960271650129309128953271104192349816241365289265352327236001868229136367477151115032324784816232060581524601709228153804958251442053701194551066631124221789586357326307942510650170860721603844358643383926799550481131672314685331625390168099946092565058559656112569326617183522923709163590006243065036897094810748337881106114662023533517200821369137260352657054360849357215086721793668504532452509878576196695584289000144752203178667154221734426675199195908629291714393496810357297179450297497089103511061691833047451315051664946046579267301417963022982542912816957935544408373043242632667271744987535340643498355514458122893721239923891506696894263478904092719899206120938791658337103874412157994948460840043380940892913205204572860154638001822051220071499614790811927034559143072932935713176296187261108345131325050172919759697557878186512118144011371150340523644273939030249301163155100705106760019893885949124103675911060569302266139651204999248364003391362003046389121464622955802304605752320657156524552878010154104516918921273050851198289603516650732673530760383843352688757903784018717987361957347767769401132167730495166662319332716922500371054999352996624349124581194022459568516739507559620396795020087357107504475621556894635045150711318172477235596626965723455514114390392161843270768759422930277795773890963125497441600509325946121339495649435577627372305317592419980988708375594254560662274548140302851458774441448390650985636742312662628938104468449065328179097904206480203575430526136056758330023361491807913352750598494863549337434150400808612100613063357109603302686921265305858670151519182106514852246786877683189481810847561619585905796372966739531374101283898464385106420308676323215611312183015499990307183444720260500665014657948235114870725163349054055121106964352035983328903300715429106663210740120594638001332771220318844002993936795309491282314848272050908515831572297873110818163673145537328537959355384429973902185359985347127589670960313418335715094379031211804229501835861477782821485346869657640729228940128844351405012287863276388367985070481299285838056089720130612106244316915716399328605802771341502046507045529601240616528181834442681452044070685229353937006742997376190025917217104253466590901695907549960311815989297540904197633162589387741694332354901161343767220693083634904684563774155838418538984746585782269473640200502433423972815971388903462272405817640516776576559243294720565355477887276658367980187756647216346684577838404350636527082893888620844949980333395675893361912953006678795763351695614322429445477423516690691663321429128630931044443573816366823338294812039163053978064312008985922850973734468682913946318923026888949357794093450471207686202322104520889371089051663545538649238115022617161541000273354307953132645892610756568954857880715267053043055355560616527278243040718632341063073074884551562268217619581707769695173585964096585101917129271292704036410611957724378394067897978519776801143224454203447017837948666425261803703800087987596230263754442713775855688892983564701562826879614523703107465268011176203460662168207479582615036916508003427033617238607620771426998188692134952692560855377175467351985021237841382040467636711966158333171669427042036840253954265569748405861295656033455048234678751356064573328226479721546091991267667887238240629584211766094471971614166879154903145479496581216390892486324764987037104010404596416685242003870016143982902410162400564398406087811729575263774933168902697599574479529268194766398872115905780017867636303850204286812635459467118387748173169209866025457863976653770397547347856163295221064606456702920655333999157046121040046371344753577536469670023354123543433486154042991873430352241633819468114252536635433958603353284271651234660626893682454413258823379344931600557782205193498648243740811869433859883895953547160194346146723636730792398824781847545160051366440575801593627119521113777035025212676852529544641690690665166381039165369756507147823346485012012866759957370779402578764038957667126464269359419525929963695292377968536737347672439669007394591223077031358010159438386120833031532195731483690723968175796047378984920472910761051797274796498668606947050356383212850822192416937647426085083823198852285855839241879674058836915690654941643537010133672157070984982924877254856973443289340770156713237190847266811763560898625819476293496322678164133678901541684096104186204236551906519126549158977816213065187778734956836291285037909585419734970649466613431864673409626738593404161516791639581109412350546834386804871973996033075016648699593564851822927326219780438867388748056705559377603511960609433918038610190639376246085605858073249169771672372538607184938671634084848392096606260555663707808631062392554488965945684342257586350504518422085351044881640951986702236032842206624230343604331116419729738750118376709474683438672161563081073670642129791719340846514074534514410227749463451352559947843264778814053577773627078520070481634031552020519704811302695547268985747785713071207440034535449690537843373646689494730710939422667352610598975370998482896425112298144031935761882753317848449682793457456023259366225869545853779373278917472678726637519740985435604586369494591920771584264749522831583146882485105758903475209927299595785051067823150195879834045869436222897415346536038474124036915537595121917235359788382363056066553392805898806191069293725440303089404115903317248656039825042053023654155376621133783197410741438556250905832208163008789020960669436794648061152031702048645144850610737878593363949482616679753347497185118198115221095365939569645870971998035147162978918936769357548914886719327236633180209853607837006705429233731381696718754683677666994985538581491840209058099754493738508631900744371882865670048066358731163411927119757827792265193570528163341014895128013908285270464726176540295114037332350493111105279720905985783311053074123658602271484595046154692082915436703491290009418920531458497465775480416802092040638102195565894854015813549909418091980246245931908316632779353285121356603192524252847469439592880929046047654783176834575023365322722610665082755554450478991504116651495621587207857265122200771349854766200054271059676913952551157308864772405576597429221794084650018743249189904558672699655868297647270880091542741285724661921041704188783522720553671036320048400862086764905936067017883044342611522766581413703067866316831603218226233691621630091973088134448777355099211830713477424245955003736526469471997798603844531971307964132902500133931589124341842814120004606642498629538639665956843733999038627408353762819497433359874419405780105105136451523441465615733226103247080909886958670571580888154456994643448443815391129747218121510849887842987041424177099746102617128723863341221949725922324836530759638610251117427609157864666748729810202369278599517190474415884805828973550934790162852533819337041707192171419320483463903915572555902226050183143242136313890784528972253840940992257605624913240417817104717991820379987009137232218286489795831519920975855432745734175086655374543002475270557319750700118845707307367532132099875682164140859250639897010118024721005310882666143065244827351714138979177609966433519470143002195617326742891907827812178176907757639306104311489388235477797569605353055811050309220665118415605871043930132466564131371282159827001488278699932201415846791930032700470153062289528197251376191637819081370604626329062885228735946134717958952853887003361975671289248139262281137299720656599442492652222664067571539148084578805425405148220602719422157947845397410973343754729998278897642083555975973795976290018686867161698932896370901695743214924999644744052182814275515337216860034575299471617977985462673837182980025349374541911337354805067415781374665898977983527375966255084877963482341466531697440468103548164485471214631447837364117031457129013147511550737721156903986533093417033780199776881185159248231290624708241898456276965734366083814528668897674926420100381060797859583389944546189052537170316733151328382765722042491674991049396581390534187486931993400065186516074222569076525790138768509671807967468480996117862213075435346409157158005969781006221763079589537499815160110138079566785307764738924034775291589691553840442508553307348065303745163678376261955367179929744674871862713339065573976507928161453238811917380728328623578233324302470483465424356046296671888088515070250370961002420806981555594192296895031496196636914445031281611963902527983146529882070263108904979012308015760241241075981341663301171994603721781237787871948496197104908023234823382163103852329945033643452400099712580820347124100023315753809352379703211537184228417582999722891374884477422682916475593832044861862802571066982197454405387069036574778526927576161830358638581435419993133565161563337926106353764705256154555455691383994308241714370655631877381907421920408284887319126348739074199648731081467808118916176676238573221494224811314235889061645809233503079872207906420954211585597773777686644496059318104149846292403773867863247689952454256986832888605493257757903839801696024012618308793680024713103325628512067023218129594840809500744208187575417485060694878105518005546548616986729256471272698718392035457881287274328362207578811978894153191751993305521827693761319962816667251606299467526232236103477278468808967015583873747199976978776926593486557677170592370636451462945221732683741314231497382901608005407788909804592124716000474018707878417438219450056827755465047161630144484362547333780176534361712389804947833068194481823890574267747989405720350157919641549748032712162291703056591164264193892688536458438616144614551528594487697312151753875042639296159928080442496093208543271372987711124712029749427349845197515125833468873406443455205751497137629424795458714477532103726100556427584380729699906638013806898535692279555855541827888083794124358104695658114957618530111340601955575549331428487340904937026748011909517690362353067875916877940532383086879668924576300596735022470498786335518507874689627691693928485702374166137503528158459186752818217870821521622118164813342899789114800560743073115994719131032377854009365127211670534503184923643795139905836162775704121511932255132466655617235720241717144670853682330398529614582128365705319440213335097146372169388723207454384764671697120918531902894420027150401869909199746890401221676719981878012100932516020489952133251345710099705592788251398210913112828784523400402565333069809673158374840972965928359311979868079250724993682849247290142251913890671878205512508388134480812144290367633937564022114823439218512997585204175172820731669740614241993484949314408214433976904411883208000542636741817950789943101469404993444283346609057920333694017721939130692688204772844451287182344392845775257324751382426552955013538010119861299537140172906979648793085341486751116319427561367063417679351591946489872397614632317757535721379988442426140738984146737467756893810139017209617281281570586639294732114303464092775988817065121579112654084320639245260928880732373888426755950684776578120628746811301675781553779687941986477685710348679398836779798841910225100678167469874444030968887962539065672611106518975232310694504775455687775766457676501660158830917582923285578790719432238443007460221648399251796974554786181202162973326736270307674730535422341346536547626978910065775556276881189830067464460461272244750852711317077851384323046621696553524768075425126542606564560481475266364565529912884866672817463572660181604243728858992337559441907967706677550067129735849813078516488993374142658187025679095964473896018179802987749256824941095355582132592084324802309381357214899705864265778184892123411274331193379817760819228872807346482545186482395975548142812107750178649887594913026139066043247317746715195698408949494003457185165695807989910423692057709635108775191599342486605927904277775331566571609535328189441487504474255327454688291607649047207638950080120100655377391553886601427324845966523292645323962390345496869178638072351461305671466148302047142232646832869784550486396347726393297282847530462827925736076277512026699562563452673503216880147452187535695451825698644056520608680032128010638902717383095977606501107156825254973136301402780932922789611430794890970571394796179376059599566592006301122843323768735265413289872346993757207198499117881561609337346310755768160860073492387295007128469640064619249049683685096925674069808196658342061180922669828428051658043988129385114608100173040988033024479507895338250711012417600850683145146238921245077435982442700766958587339295878872374987037245900460661652975297040530744095146611779229869952562988094731086105842202304752818631158277789429555693114255746632215944116928940403318058313732272849668946020172639613754693223663240351429218458888238987476627421298750588828495509047258188815344469512201653681355460383107577690119616150072636042512676002992550524738193095745663392623979510831847479227288914094511850631668580042526155945011497317772393505592505205809160777574502701735265357654447356391841943372056296929170590258154501069330801737165462333419010677283934087163944715126825695775289305129922876949406185173977047556220578431108022305017191596349640220279427969920315664444212153230905899647767334876858313010985652790358461115967529357627344115412805703345456452488761464921486557262706436867388730039065117830090051833023334744183032162488732490237720550418520877475941378463795534914349461841408787918500472547864204754812581606252538419691412112770658869798209089611717742332170021922179539798975029879443456404609577951462065105729677664379417786176912070616064238742781980746052046691885816164571026801183048540254524555640997448250007601938275179877861386973368751345064229345652195776987117518776723163109047525239898520250834774023798777793835861387841827736463818404096078237155951572077298641482179714138366224908942797332969930939441854369743664813953348597627277276254301601293392968006491911792654080020641028659090871494950032906238429933299652299356421666407711571494986208929145643334884893202231723650637649562093769134257973737022079361159272908277442249796610473017630741028995718133712586734333609201556428731854455560058585796740649687654885441340972743315712387383539864797740365618557045317187216048588245761107031607159900898524281114674439792391172136087482967001151539124732217816087816058495361444322154410251819408811945798657450100120647117179692485467457532102010972354255290746688675659481691518229923718693383482526333248482227347203587839996165217182283833960136302324369029552770205055435644202069259236446074718583562347195909340147308438050584705268979549544778474513363487334234763726936011220531247249658749837433052282050859108079651130022132149039692807054114421290575408363754992706340840350341787742455712766007980646959398035513528880894135229979362116793507548202673014565096505006161363982676430379764351336535672895925195273037028420648404338626029654736762514814934618886836807581244945982829916986960031547814187030741422481788244613856381362004405733560010751301330638981796934746464611247234131262273968348221180440542517701214049477946631590637109872493396758884590770916441117923337104958350634351588372395119857719148028084954095779861426838765146905491145666533468633977471909187980927192632394195990664456598587857381918474965085291870411310368007025365408914992949591434670025124677047032372107167308122859092889592910840882932570874431821073470044463844826775410898183689007279612373332339699287161010924286877710296063432518167203210206762839476661277032125736147554142750744677441811981592829839157627765000250993765167390685487393853023932974521894456154765587345980344098712162864842629741192005901117124031802795091066678925333297109657626729386226178796116064040082859394287381449095536296481463326835904007228624304163323412194519558312143867166258771227618926787043758039074278871207515197777727970752193205695502191582474682320775499713223239502603744699267490415544624674354034433062160345011020155547091291289361485898711095079251055575044751075223937269341735436580976808196527170339051707909857259182869687049731033470630226195454658284893369346761127158071013096682856731630763265540012570628285423292001859515889409336356604588950939922094646656749099011945426011879234800449281837602211477220367319299385493471458798139414379894847470688772652939525123225958408116707198481154122427355606935451122251187958545072084127170236978263365618942340040295282483924470902942719337683494203582466551094607046604464168556149565866378135639828477079251035889681754135948935386662665717481393835957809346269836272510127789656710017307033430750194578400798249612817365472832519463663849112870457187223092730363960139764568493433501951074158432046422017116654014046556962597593621982104162703988870186168896898831401472781092277234496617605187685225573071887431046595086321105054814396770988519809404885198340851617742155153784105107280178101254432071496610074383278562054214071671009926797138203572188269551403085858860852119550412286089139507501625342304833154113677031986679498676428254950934399407855451664105523652820699975402437677853352563127358234158666933257969486251848035847965582989533700595434029970596919465035549211454415999421583475119101672714568433716390525879007185292249382640113305249131109476057609508898114310318000934717481219029206421925949685854573450784774267238074069127908669049786968158376887956602114483186660224047988720910506793191045085515604416490690643712078170141365231260207801605971837902456768796859780794524111349690899149296965802090937024948850392217011546420960452695235128232514299270479848396221582630112249858038700872916009420153819072480204916881583781056553556217775733171255029812483152133672533148184605574761158886567735075938080732502311186188080041792072309016538015132413778471048798885387565772987128660513060963111018795054454083777841451753706490988489605492887547195699855972796442407885839259508148912966802545411421396151078507873642537967765136559322482426883154461664130894654184311365017997606549282247476285561585319962581566071033006821182122863388817861894958211167745402836989324415116151845911870833491983944402941667915572234269811997248629337774052975670346659868985461348017300671835882777788124798594752131970101999316962038937943984366207987156863591214476033344789410248191548691944540792013468862034558198245555129442541383275877539453472277064089802233309625147956465622512367950522493009310871869242372778173335776343061042595892041682424935272987857876932608478595575240360906194713409785707400230686994764681072942935658729846993908977269623347340784035970582390055825524993119981828207281774768180167610144733598298476465235426718579877516702209755868686964001942313377098658691429842077394233954919673589133571398832058257261762037168737729856250592031092161408292877198316931658330507330601431847488727525849442909375972923732502787394540563522823487722973378067897384059153253335278883250050913670109336677265205249777333764350801483999237370487382903554640808546482167808651573098267164462360916117337607774239494489106606113764328188614001608565646929194090737955339622478605887018602988956422224181105467973226563089361681932092467783686168348641676896899771872134191546775759218494758426588021302820678773440586867340614792365082882828601794232660358109452099830702589846547946580728673133276387449614712414656761249286550913963332509547659568490303639613302169860724464424557331766031788074821074130088208945369848794853389288623396185361371683927645774801689606776111541776697113812717094328669848461263463283368169545832976113829107481561078591337515585552563785283298692084273107965050404281649239955098844884402188195851641453120896799252640015971410049556165754370293356936438923904742614307111775252964663020281164082193848567955439267517409484590517695900131692837624670783712176247953867807886455418940933356953623394708449026747135894807541512870271011002833777238989942975535168516108418787046073687830824470188479838818564235835063082588494882660439533694531467273730327300703142626072902301451376331032687799566528836114255214475943263419200773639531313416811973066535672606384457536418728772120209419788605794245165364755546510757168243482502484874872548384060538929486236351617242067065918879936489080936190469905586187977583478628386315810902209005166938111572419138129926532537020270146918937458743396046249864235683041885931236667522874821247753937527365202093981002329078810040029586512957416252692095985596697529511147428926362846024511065455548205247399915771860779319927258816154809778316672955582626910321873384023272707466691298033488178212473061893536800142234802012043240955590672340500959719233480120284177537432857119383533441589385665869171857235543781792943833148331642981578911746331334939175397285205440791607945336344564545313358978753743504425264640127066464154201884228957044993037079327463188091634102349170505036977123640655198865292076900727540160014660565835785018870780289321424943335499759538526293297667969647955749713736555941672212830426738226510981225602191888384060931625557333608976797500172055992625872432603501052333881141470953399012157130209408559219150006078523786249590229888639522814960623392573281685680584681879193619134371501680328916889115921836434923827116297487218719488416010085758193474547748554223362479880161674949646842815845347796757065451452982313329265602709808074474212382423810851324442665235867548757266453302755763847688402991920373025958626622755484991696152661138968409921552591029464740957910644524876642872412357522916080634718317897614161013749260831418884157587299255953439888056465646453479356779418400777474386794035272516443110466421779390572541084839167654709551327185407405954114481015451488508107996436172975131581564512927335514766603861188937782043006722522984523370160452585233252468670251531059723535924162472661729440890593025047649160046581891149282197203233827257075765967683229014591327597573049792012428116258932053829004233406639639430620578132686107279201552183014323865161271255778596162178873431925260097683542415942615005987525618428519079309517482587646968538817118052666396105148548293039569131544043017019760096915945399293714245401775483919455044630719561437573506689025648793537236475261481923096612245895847701000890324573220446263876624328996350788661707458955046260490247718274956221406458136842693358158030959678409183424274054242260239844910703916089833354406090444054549064893888049733269916671156873868200628192752538119167410316450990325823643978816960758715403830168003048223447936023221306329036062180959076300356418217923650016244270749751918598999470495422755282144272820851073387743723198621800421783186753681927819611566883846791446568837117890722345624908621015625570486149482961880238755078560571419821760769635799792884556731233740797429188331045526014450308445175590418294581501047589733919083637702342500150527218545999223745869507726131132383450928799870726963562429795115580084919151392596512349369478028646063215521579590969671686807593709902497467490473392747635090180980617232629898344880342937997588240379919966628667201313211393581635931280958583635504153058735780844022452429374478646562335273953851939186676442037146496347072346702162250189099697117827327064930570434562614760534398991210232970558832194307527708657971595017763320511427840688334637901824999349117820343106306791700484600202789374845999168023133608521019377316743864952962977490301998657727253006159276267211081034793297587430666685449896661653742622389105044015867634537968530267001586751946235297545789286607194852292263900151827158821722134744319907684257991029272515457059832074461526594665943831983978394471339380668294268477615180149098680463391592625487980771972013846021495122584167500593108822582135289691910778504260467569346401937288816783832135389288858136586846838529856238297128098753263767598041486644032722287399806382591921939076639191785563892394461976699492197706441428025862391188470319751826517039775122200499304173688454353173772642448935132267559069299504989380947022899451322054613636861070311808171504628993889406100716172928286601501240231105013726609104619095626174483100107578543634309397480131096349000526292394847811783323646498421373236700819409147764765577273989413149579995260633641568789291963596361462317166782345714466915460765298668712797087979990418880878282773351852667090416188416563227440237241613421203633696989330394443929181199574923278078765303807330761230957152624313208457234857171169997345278773294468132239929763005722152298260193941897351481099546902378605571497994435511221605946970581017998807380365855868636003107670302714626037989097587762694396699763688093167709840208311606646199611482062140995241772921332022802134251453507089056235830315103036132477893332460985384436493514113281124003018623829487967279236765151158408076326978388377640048420704270458023619158153433803047794429759065281848142577386127148241602948501183189820028579158091338503328813219858341087462500719913932166169436780272983495634255347134592686121278518632555038143575420058781173997777579335862312630083334851718373091337514204676176551590851486665892381746704197182198956901225990480897719071291136748270442291489349474990492671186572205887700905514413102851169918949776754294190437517182778933576098541788826702248388027070891587696330007625024227643503800753848343232556140135823291887333443012429314094397806568871824713948390039794750622394901043136366796879507111245267874735715634791045921890079062336436153836918380504845374240161249998314795017963373559766680833717676153379891489836220238113654907683480511666246051207881903640038432851121043471864541900835345134436701767181511010387817742449848257506177859631563024395157052932898609093219169594361787113964974085594552954944642067065325032836903232412955165027148835408401475265339999553839389517673007121499337404023783336629876531538127212706802403147249748519321902170433947934455052540276946687178290171996140296513257148189293148553967558185429068549490088529506626633599943386674180949891412458306467775376994657224646537891425533180077620897553661482982983581286274211438253500834511949220901440676575163873229482647182348558933506255435996224022270208430410856348330248908547802851967309255757117414500548878316199876012902572909906764002782934434940146071798857777251939707538727172003173452211372898088451811995669019270960496488689208825363612557018228047536564159395156158073855647256734517484172628608185124407946915299710237055936719624077680341394053427301870983604256128600827196178137635201479395451362632453535175097042059804495327604465512251549513303398066171534349036325623887875146560249520310779407158136023309377104517558909695975099167834810924623950837838451680786399880933187190173820395570115482464469902022158372434815576299009289533774406366399947863127193729754035124340024149326329093062326961003653000690510165393432352698583746831825637374007047007193833979624643649799559911306552772851187524589991830390339576968921289304988735090552406371091169748365155863710553869705430367976162380589226023990160089204050086936046192869884564711316527687403733186249205097383526457317157466815680839931554708438023956891306225510375987358747467838231573657536452157064614902837644936683639201800250809362130207845117118316223032822275840153768608343387493798631461593825280128402141859444665093758503368985728364756198609222231507055863609692772278613009849826017993437022868452726457650669381391703510723043364534937911177346547641077994033058024230501182498373370801567928368963228269871547324582252655144204824749363761960286300615150500211680557213699792418270505373719379381441169688551640314834988314527192443193424720064562190917236502694990876167939401937715455592323891107668593034116087612397614271753719815647847053660794438787875710835077863086769747726618842708066282309516948410340306113589245733756065219254059377888230398177107334872390098191762594256054505794111588401897728542584702446734732955593528136123435711812206250235252715086575319894420674419683156326348541563472902275791222095615565096022795506339633693771625468790333399492353213099021644215548995868719172205356551182970947438284301007704848957376602123998815805230015486896589754802560992536556271879900347705475908076253412977264438144800127292548992789535641725282316222091303570549297868712347411095865395819780214640031361072707382302163786223327778792149896853058359403798939963559930654817363561732308831083890353171573355683653113889846366179130721765633186182662079114895079189648381693256459250686716316984894396177401173894841191774336477521306767574810779249933487974700422602205844677122108292031454421781321075111228197020629732596238174349156339323869186650774997364715423138110598905703333141837037576903469840293596636742179023093028075183418208119424949732822353449938056141246853876925541634805399959296022409655402875633578584116515854871151033085457524065449828546786084914635742919782987000775728492232171504889946664845549447203523678111076315453539831494952084236970608531132915135324899147408607946030853558211546222322117856607430278205946444045307327415318680367666063594420225253924550578423226927921479265264809261820136848646418806697710707397446011725228847369679341992523305571116014517470486814037163991320825663561950806026378845848523586856744688047560006836804979583624909404613908305618536753488436878215809021431600250258222351425307008718200898144276656475160680510820524981441119838215003915794034973508299923569559817808246924290267277417012986013992508690709097680410289001773813040552309714558273186917680379344833957006347693286243480264393252213779710421646059634260784896390696379941401628898985216420170188054474857707725818859837072535173925300514289963908175248102774707915927294397221276355067244442396607954865753914061157306541565715736674016544375946839784899077612013295290394421864867466660192585146938059864913216130645021141892740333047746531427256152185952347305240438959386118292161436982883845831156518257081455900800526139864978315634370727070710084919863021380472280833353774994089575617569985576169423420725292699852605114926472953777060692440246196633755480344876271453369134840252017596803149991903581678008713685118324066060788299651520011681685721515955913991319589046187334288108977151634408747925553641303756204952608255799546291841597698437655577673733930746708525832573107242001812516066526621952340354258564567424563252475444022959250670423797251388682046286374832213896420296519364802462452192136600218043330751167666941665717782411003398287049424735539420097317386764617324403912236673508193901301297874753397576602147137198322766483801863287269847465912950267372260263549385893926788685447696804084246883486222031858253317866788704857249101380469336781803953609361845497241248054382928798501299734847960280656526102147702118271627642396590381191848811094798595982933628971031416617500673012753394716910368861129944526294917928951549368142842299153610447618257792533833492623779860424049608472502876475042212017315121795336811866267934607175084573433107352053968469603786106880499566287499331589037865621275873143441603000144366313919179204965037783172809532421371785962908851055104874354460991375417001933893222726289889675092870931638545970716995983444728616820665245569286404486824148683103184358040182970681796345072730123794153120111390018705018948147720473567286592412789503241085397375800697018470873534560860004054248216939875680540998121076084846907865797145383916915793248079129419534564163557601420100530672112282365003217908328839658434328201543852366962935855015288447222871044313168192663492379551915471168216525828234212110393622915926877557305451423206479640655353666353827366126937116227597291102565705399943951771072619472669852597242724699383076235376284777850822408445726906653536837521711297454398421941738950084353043916436071624325170622575942844459477252368497682523775184027143969987363243537720692888421532169641235883333500812980512385881691240213036955065057982651662528853442890175896689493055833183135054285254864640815119295894303079054643385165942624373370396519952702314250035610606710803441680463404269169533460928928371378098816436976461362020699772921405574730317102242535741316927529352854554466333317422768800169086639613442868798940305372988144194310490158609873466215176320688939116833594260068835189473721755054440668883182963652803185647224524968488071034894934886944275296353163352972720043326052699436302504950243658869765522725074107459938223789418525497244193237016158205215777193817000283861790214012506733923238017038045976712869091672820404029105857571086303743991380642665115476495291710833818570193711360000526921657757165177590770911160466678419410096656732249541447007433885829032036498535854219517537094281672719266904333393753896935889011212239057629048633827088095064111068372972601767421958231278987930525332349616099028481598759674304888008741132320358564010713512447872790621898870953447526049368006395373422786289563435881871621265179944316346462663046534378759224105423474263471002238778195851487769746121117073314841738771609243901586767306515938477380443677778669916518261577813296996073218627700724618333645526675636323801158467624689499016066877790754486137696032356208538123077810229725945862280557513059990313313220733249242612043253301039763553633316029312302349597727719850802004175203815635578553284978578517401002782101467427299115833820740202280747044836474739987009808773335492932090347786608041207546382175649109778444502999632208508738094513762092541561395811490995518349672717008749816629323903227864095294393050148845928972352104622223457487962611213676020108334758943525105275343083780908203999564030946677938941534396381476272401860327338856054520485704210776799330761179330153226006559638451116320140346039340694441275807457911068773645555092387521319242597352934469018862852215335926352491072831239549489300073631546131954302970919487951643936402471349105703550083999450819801733663497739038639858060813451622718037933326013274379854996940196053016252063311283618996700900103470431910141921204410050935003612011118515691199896240295303595400674986015689018495240961501312496355595906277861847859709663029027184751488356453361006880695258200678565484555611154371538191214717477194260639962390790928865472442665980357786323007539691824731383023423554378296229961281536419073697663942999124987765307208630671273891665099513051294349041873107644691693055999475985880182679490958750116414632561834885821677273340177005243323238012046586302911790590635343515733080959698571550548996903622262843907812267391942143544033396068696562261464287983273893497164290626350233067258301313377054716088059741427837643982224226406546243678001153083674173826310090005473395458794501858749840005842228191793448908156447047578100970293075401874953445084974144380389502843035704259687372579356196049428251945670145759083823653135689181557425952572396241713732180630620488363598580590534356700180403250629147964504824682800859303367322105357526148511164802971340833204854434833332070021191572066017747206645325556945992909568795098766558936501798254781943832165663420089301349060375177517133454266287639067434355698725649092147389487902448250784064242717412133244126852899774418387783437683716819773009637555983657529245679994345230641936384747692986045956230171547394286272549467940214878361380548771866925863540789110885336161714448435774343137073527973649351290612247518084782870594882648591447462060326927646715942874184994893646313483097182886956973780055908325272725692481370486893064455461711227994095364913432451252292084592462615771120536632291226628005650545947483881786207962463075537680156053220677872223307719330464088403684122501409808218717188117221232706589950108873008131558945662444554443881187842596891989898302681700293386901799396259431197804406021198644766271034151601512035867088490421479327678183070245376079982764884876981251355374925945283258848053554634846684159809827570208072495587288728533146467968843181130415611373106290633566290685663820276526212494911274517032039941468204519818632631555878226610769459789240186234390163744577497222901403740976879395748867480399071847966588150380576170514429232487116613438360595041734134480060465911484559931799309278510227928598260776297648793365020190780233728912089246769867917501552091370393998579230192568090135177332776491815818927786161089743238331505124170444595809104951847813571397799984156742763531265096466776094924205148390486022117063044820022368168073156714218880838715957256347375346157183268488836228190037576741102912975111045000331373008106528267958891110696335042581964241835566185495107436029936347441732021528650755359483748517321017476183015389748918933853072377755195957134626644635356873091323732188956277708907444426993293052725803913560584276682817658795958600566146784411297360956794871097263387772821525098597304566013125114342840478196072345274625331176062441308994732375946724595696607905908367318189082910565595107279865390995787576468360430196224374037565455391993495073967239249390045291318019609835159625236308915281724905510067387789446996649819844661069675265296920375284359941667447164964061256897594007262391849790387078479389351666369644152927691949154798102979981523200526385523257811050356587491116361117113354969620704981523449176712289520876373116484114046633267118426882394857081253777616833592034408499244366082624726870773918200184007631189666838952047790466755444586773624995886783549144626411875212354949491421397720984874076232373092203935663407000389099758137859118410792581256879992744729619055468616185393476748548868581599358331719962794847263486517554802207513504059033695785072156279430754363906202650158538881501425289209171395771635948495896524440165324182755474195760432906911637217705121486647011752479456583475067912528048345128791419770059977971929164190281086009843380096487133939662665964119599218974279132668055088042010418800820017894252275314004701439650872016865471439872490578394249371460314308396423960036256134587958631269923151164581890027276960419072074827713412059081472050637622054815459034691246696611844932608375194737931337069721219761605794446627510932978114074798093982452309185045595530936043132964550420464590824547800126545398526983483634838544250008598187488766792891584834689147194377703892256674674000141394532749091495630448768162805300599989047903409029490147166327388055062553473354301900604176455291355013926653801683443803401210750444907157800130197186203961009972414210832602720501416381991613415795867523137543853114942546921489599060531908939255393470203217606940904938283307883110068002263773244495586029629510363812629696046410976502422523841890814754316538997545613520872688092630197592269746888657979770572944054720566874829042592700014178719007759374682524731636871850265277217470704833217406499586541260063650547164170949744117232875624066002658177375982010242416200412936040658423837664469030869861855485813670662223646746035347068492034465161731595865792449496891227314931318708564568377257886666521006100023943096903455905253666881329786194794346835868537184228594041242205460623714252645486408692814744283945309953717192148652795050647533784136727669885018691100822428667488131596654006416505765499534359361575943602555176206333270118520343954511426846772268531375500479427960361346121536682707605459994209976268031209200096719381344947398730187664751973541856611633923549494264260335187162518655100914405604882366887551461309627579481121709992295108915754408154247488480339677265015995363782041610050090797934073377686168786580265204753068778765042434139334726216415774978334976578439875090271311187675161763916852923274428053132986166961045455482366045465648039896552238697474544815730572801012441732605611772742689214601597160307894000894328891621073035799880262193790179693019594631468877480951534120315784164044886512501103408991662203495855724421399768135091600356236725644458911981432072544680186489883849579915707471512375689931293054722583470571216015090056207400017770425139824373422002425515689955190554510128002771201772132348143573484983074391047656535914971552035066977318112230411650200593774057431681113854021430579859756453842502455222986061327454518052369370430488657173253574234198623973104817027431516172590721024762687129781974671391661721162141149804661796863711869500307155090546473867375311343017263223919517405408947716755028761299253796471099409256363448870372002959813872107393891667147349793331696102336568200947967119315267154739496459000934069555350435891151697098580415010427739661525050216401795967445200849366828399828746722229169842369113821480298599755370847948660518298279554053787853791253985795055910168369973873029314386495647418326945128564085780026373733864939439747699155278602964026945670844152274270784907278844379998231791032031383599936953163465960727104197604702803696918470292960822476161498014529817869997595532676782640547713172944064634248994118158585539030840621764160186342169720730212185643403097724441547113978219600165646289093024845280497005582781622631873919610422178617382231168056046849669322898465771136055538018409310034792039710812668540155989949717509424435623149460610971375504380137611428506531566698103552454016213862138454635471588417232079692718166113979443992242935817879127962008954551275542506463734251705211051632306985398223368822192206545251549085033286186960152835067165452367472250131185799020616145577965132547022701485887178817083699238708808719774743315955470939148183166312344529804596519120961102238425334781079953061714834864152602512145890679541295951899724381963701222395769156978241339016545107536126126638013011677982256254139583616949491674191319294638144548584474540366703379920137507153788920859474075142347226679539284063094636876754034604177137137393471583966037355545937622112623582009373359091804172525860743073852646121837252378261067102330976752814978344399872198643949994804367482554892068044176660984134313722361848434094285455905466681014337293346706223558856024411425921809184626440006182863322077910980708588345298040873701446791742382737305286261677001002711651103523251774461844124114384477333625082671523309733797797964561353946292636964344535271185106677413350219163951377825454049931816035649936843246719306850133326359044292023207782804420923581516431503317009275240482615442320250796328602121395038835372633040669272492285554512779944878345455789431113250017102822001102179632997844399203614621294499686279419251916657672001390139305667860073220221341686111588491223868633373891200372269644130259706184530483404171284024310164670385861545153983080201142515126898582972623744191233447756743207415695278033877181670365424379135094557469349792312586591883714536391979606958312823205799500633180612009143315187122762087373998889143807724915087956494864183810824878030175220240135101234917100625100249627313597668173479519413014768426686927968872763840262532573619527786577999966894835088435114104333946055267217801708293589111674408966691171276986774832843691496803954350971201603055776600010414285246026932485779691764233801007804720131584174747861331788844304172980563869653974520675270995386135633335052507507858298721802569023504627140185375686729876115048142479301339556470350366259771772660914833355250743658191737303966103714414364712646895723117618552106688740370097488794434971774238299234389262886601963809280034439277943236393824392019600521771621399575928326057547388812708847478990030745694867007537047008257119977179468077098163049351071448008425882190092900889055236363235659452005075194982608004492025069287563782843082338990096708625289018780628259983887144501940097269462252998146103953078855753541399675186256707219218432874574616808655053848577150600925900533137987933106106644899309635591422186273592658034238813112894232300207092196545337036456508827714104963407927132289543466868813076204710667328488148680996724002560624514552366062204819795488524350020402723606913402396658876757515887960974275570716772798236958349619756675221206646786842759402646493502264463679763370311754041732205858456026885429082171422208445153894903191435374694977403838987953846016984188259306258557206518061469154109030937762748748874695783898871803007556034687169451620505806649492991300887449286500994247708443529542078311408802110602644530588299274255629412277194960693658784974628521558429978146783696930218297795068923154220303302682683978202498518073784910061733528725789396267576277026417019112391377961036343040348728634288957206715575241039195674425297484417947379760180396408187711829380759363896280164860405173108161229833867057212119866987389054214576458269668393386181477700838067166817692912146388601323202514605362287788009908335838944689059270172426537680723624158356238201897686199092654298239190479573518924278436582389703400798872857549246035524999697617461400599818538666823000429803904917559072338694689049204997459195809230717254087814153135111154498874437110516467849821990366050806485058293221016330818681093730652085387495524299836441356456688968365965148715492625153626732237521429629870051435974014557331643177378199968908802180706839408858929466822750617823224304418000155813254505021666442615000570857793113121281503676733434902662887457789073217466442010618382169144770142226954957234728475895573419388199462785218914225939971484991659556581141257984665743961759250921820919231338074708859460969314102491509383993168630537156855248129915141294777086953306848358029011175623310593248300526066029533502459818197771220790672634532016673747431783889216167948302052415481738784980977996958355124692781769523271540071259508259810889862801198286678475676221969085364800193782688441470755880363535936125081658585919690537784787122133388354054923430037219464728953223409387469679426418416249859618275082018592639687869379539237480550516349462920701291401846422811969569645180039150023056547670814631505223409920609677066125790982301655185347848227284789550894359299249577795833385982568867382774717415923668876282636397491907351578608794057533796196969501919284620439306778974719979800939020781606144397155126509822794821122946072407389787560844439798408722430023891287154256677515320811566627565954854149521899058433282418792219501007358831609543085287619710944922897739479210203096142128434719697834210764946886087322799575045192562198227006416807299739643762424713489893426890227857282396227966362727122995088492833316861017170857044919931320545831180360891319298425373953765097715324806987502295889737453954402234447129311123309584593532198347130584130493809043410431692180912777851729151072469356893651465439153032995220705294458675374255579680620823208535251336846416065365452528576909195891984325690597808371278829317416993687617988804633873229769040749270417130330701336013043410268504103338291949516789883013459549334142245260902656269614532727164992243213899781438939628919227995325314726694405602496671130551496471748266025590794170156971305491574181944754685383350887962758559449242291837387582936439840680598725528874295543667120375170082612627821171496414433187118575182334502973299206207846772642742749536624122340382793137186640151609779161517218021070596189866127726708958832600698274511738572646352889446260364281364678730645350640290456918178652287492641987221533967273144315482690784241605336655781789291936183654722488794615783953969805798037918657650412213409733458537558149858769206973570367814617317036917736006636297794795700114249404683727306722693537780591871148817306204780527010516146320295564535378716409631745005765604220056554192798289764443628730044890231264848792306044653997736320363015942826845394089004364082954655414993996534349430045986527218509516339317367095900815563200668413055079567418537549866598865354913176466077141769605822052785119619068404331279585623253558095269636869447095517826196224395525234509188323186878994102689799637051239354870573343661726410600234080850656243518469000515058599968723273562740044771629689894274713467519459127244467073537384959849212328675343426272635258722697484238687501266735771025046480209679385350214870273912710819261085208507672216372326874755114220601710538494606929130597268338365587581348497669650828937562813435605314916109757839049611336111024703016656405094758059187152898062545291172482980620199170041455316764929417792584668979601436441324662884005193285784855371955110691871634312938295880310004093039879864228503714796090384394036112117049086370445553205575246431364936403500647685584045497576383240823759694111085143342798309859631376934712639152322095500927521015638228860852494415399369693757278815610212484388705263436617131698419612975925859859545867540140275308781547638922835460602695582143382660632947208525552227126719660461179125513778476414272035999867166463844379018344743662202545349947351539326423894139534006950024539111584107182260183434481242676280976810912901804051161577704611144142369439768972478560851826900305378571222172908934045986658634540832810489303934735801586195588389210916220997543044221709138643083644663199942955216829532218762868195773943355529750636513522842597065405498204414782761207516210851624789834765804509270065541051370015588455112433553044968856466152108197258738100582724066441453698295325487763232041268196685475610317852552673951335125622646512964677535031638408786211983800159169818931378915337115664144664974292753640591301576820790731303030037184741930929814118008490421764256243681607139443706855189115894583780114168067840569504284599251743178699906234449614516315659653206246866659813788150453032800527749807519102542098315033801110210362259825983003912558120097464863812580254475241319701264152090475154478721030079416229375975219003291878265339811750116458988308272921372399503864002727286580816550758278002845281886726479871750889991677924083711696202300766781557260328285208297832012695615755290060533766618357365785397861433047966514015856171390015023020042129005084873734477789681886653679184521146099022055523400278888170421472041255130847314371807192185681577207785201683622171522166393871005709131738702964244150079629092248235447745193770744022062179841097586397611041712327555840989585367973846329952893324530936569069759892767352335904535258535543044254934885667265381123348782323265027907053469065329725160132996523951898916038271322488063745643269040837079424971466564706217825863876059168768864928918538626749492736385989941493799471073986012110538135216252136829985009252086995152980182559442955986980372995548273052268010782749523728623640973703754217551171406669055895215560144933823254789770150587605731115618574884393516418484141915373886172586609966413330907091354659526905999969156920694556765769646587843039999885159792588952407110315204045456407579813596659729682573396299130503939219850762625136757745529108852621149893918314618112787640444838675264457279534553857273243225156830652962703961430907600145124373110912652365289450637692949552585846414500049253123538879759803401789640824668634326512052121202310452465166865347881550955716317606085231431065222777353007201175679477019859544675824561686464313594982295387301258162633053303996207137718957408557436680177352815501313842820543601703778749183403596429712603479090574820603802160269511721179424075671788790174355626376562967436737883354365444986330915907461352846516571926913588490473633853483515000827195565980540599774863925110192497939358869486970716396125280564572075917716519806544528319383497212551030132404107887227334604700077979467881725882258089619907903540612205245222051924771377815038397631571156014115797500742855831332926489121393361736072714338555120430538034306745625224817465589244179680429115088056655455415985116677936069042359150293011662113354224090748424030091686169116074012611389806220733772194565010401036639295920406273642824063635611849987976020222799004562633080152224272521575268388595449237461785237803316261087502249773516253074314762724467113831822819069507781098773606889512365445690474939615936069247379792614448602466194591515783109511422504148865017587344963135584943293419724993333208850589795077949499463940845673457421608970591873054140923044829276505567841363851579097482657200209601657199259875450190479126768356383579887790394551825313291313145561202705129346366239026357132853068205218376254425256673122899887577304803908816604338991840289080276126266481995379081091548890921702579420595989308248562762632277750567441013300238265586396159799985854878688145883316107887308725549327342172618531944811382312998438445820480875440735580315466321529247202179410000747941538361432778932519407317021154941405650404153742009465318508967018382546602969706045239306180563935160039649731174559919963731493507302204991499303234212348825661412960735073275335603006267591624894152828134512415673390861508665304396001859979373458625613143276346434586732284935231450546768444581021153499207482330097302794124478128290273069572638072397113104217371706206300551968131544834741946808213436323491943170956221956162995223383250855934198183686641816662005340363634440687086366010870360241230994450191622344841660064655399322111592138232589607247192347461805670275403784268484807291427717037272609254464256983694784845884670175261501634687164887048272649521080675182365585177613765846323413633310866494184199706809451025528920394157565364984293175211015829578762084317427725918491863874206560394467900192770509243150827292019248216679319131978397969542272022064421645894982478490686414125177747267872934242072675732915581933082869014675105500138555222657995717618990226779755368780924408453134741228910304647746605035547571882643983441816052057761560365208667512320921374825671016985924536247953308859135435246821903609136266605905580250946447098046321305087048278826701679169368096877310736987502815680108499260179349908717938996434626464521428842530734035423987710071287860779629027600686188362442288440034480789564202542845272498535227338068820500009294949685310572627569052886326842879214120489872233139929744597258098736572307839836124623354874521315818827291683751310125677851358273446074398530798701625476527468420712634432740230051500457276688415387911184102409323179955933333393017190920705510748242605733682053004149587814107849540686837607053580775305158636475272172095564029608661922205850147276893739257350709900352030924299343926699633282517848711413299146555503904535401916333955117943717730770816501000977049836725887135811503905247411519994363415930202570041823177052429293291846743971393560440613057625396550501211124205892202469734900951774799895246208492734563619774996012475264724944508954812590778053695595373411149204468971510117060714331557706661692003942880613687343583419194744504749947190880277898418155835437617060610419249007956566472187485051935927178375465703226091046090987839619442929548558602668056338572558417790458099531628453006138902154200244759891099696531198122255717784229185894470798124509140365266882649825854152096173203032913998853157596313260783589130807778788470590167222053735087893592533390956278469203013273052506408262503993336619113940816261410810055642645252600666545993597082083975868041511654698066281986908849916293355823093659961626441577499392605861611462631862639200836392803648830226567842474633238736624692358724324821878491563389271012347303582706954368815366304059827344652753059158260203334075995881551309701800847342715381720163231175991143493921577980278071395634623120133076520210838661860761877317529867478077992832865691373049315546796644013868498739047663617901113076718203150460479000091772545990396243869727340600563079061952998382705235242142443105021658601484563035554796386495049946997153527727497390681143072295349662612582524640671024075314405500562018022408691129606825265828973692134395906767579331939254245413893625801276320352135556722796488605542408789830102706980907178353216024452098199841191756281065525325974909702923631406233220406442943296106142103842463844433327346231161969977098571302575750539540111585475770956793501948408721769953334157740079699812627490641732772239846958196924486219880267713420030876281991068119392307708040254304816707979911097434303133402301689599647932390982006204946104615721241231902016922595369799654789895440339029542565539832681169737081034578120195743796833463166006073989193534767658947208526238918386416609379068040511245268690826350412676686845946002261253192394077555751580428350410985832964084147570679826550414352648980319473861653611946776435251905002679609562913125200166634568262545547267477541460508176226690906858371655910386673267978662672264756017484243373954444297964391314620911315505994661831398996291941243073365748133287392877937946820252980781486405108362835841138458309404919235494474876541473661990755196922380247922938275759008933000647042235415787229814677681139294905258443969320940387246135707632284893821065600345183495259531082407478271962388506716226939055803273556629313158137996130773983920589065750482225483400762850270833245189099941977794093831354452765993740627077258959913788502574785112877388976346777153861052646429547850498155626749495139253637477164167776513440383546048790799882787442420725634150491196370797071587919985240819938280710171330143573949852063833265098374320442347054480603296038529623690983064311287685822405884668102042618830351262140342971239796683228012675143505218331591110901089187268421059901360583230828185637001020723712512385443892825546415431631667381741046510200377608429986009714959214057006556087385711666366656804802864308265233021384647102006271951091284921504105131069425578816052705760833353883421451290052370182840025057888987641912431829057716451667628223436843231721783320216653450879801654621684266628147933582141108756612922973927293362388868023018328478247118458549165894826334299496071041979155492534238148248507310794771688671547371338776592633636060129024888265429174737258425494094469249301167022280826731449184280784213415931451668171831683324933661509351691473296237862321333301927644175336134656633160458922577843771945610180511794838654601168498269814214156302277376042986207308014178059094331875864438491862904901861026176048699708012655567784320800242665440698528266495798539231434537956862465364508381900826522107708422149833209977796918556279123109884323785995312206409208305760877973831406668667566158054109884364897032342037191694187879008001541115159696028703735101881936300271510999762031995042761751452538018697167008474512011976554433501502325251401509906617420762995929389913883985499059334924940770565158090061839490564008827689549906530446401607230269553476956064088088028411155373047636421272738615436405163290020665217871511296770329592354135102600702381791799665049976454242130578745791025674652776911445725501693440491228949622309555284485958910951416463315870459832293842569246598799454808043752900385531225105778082891174777062757121466976902349084333110404810390758362457882091991546681610218631886858301291558464672614950970988696030564668315614810440522297311066962784456392782934307594951331821196532703737266577212440250388722901701739556055758412513035221416762655964059751297750353187923729112148680452787190188946383546500823017159459199830382354872966654074368928829836295887096468520351656239544336250984905882675535359073471861527663136965113588091603806568438941267838485234052198639146347968141638201508152972306914522824862616973877861832445986343783828325147547425973508529749978786414491547217617546839500871968571486952510023115241973140114201699254666044177043852619739499149352604655503765715713322281677640036326521989825525964415449939994831588861322935582162092474550247941362428741590052748295730388363047031366553479439917525883528901946231866233391110302336304832030628877132150473123819623294658857629379834947636784702737601190665343198057702060653180237728322238661309213512365069589841923059364856908459298837130915866767163935670719732112100671014534365732077220801959901077571246910495952267650606186818564385185649458887266569142751710219799748118630417955426093279435186378805148593837009238934211704613034529256058756142983229073618087098701873268980915187755029953925530510053030880692376032328038762995688831594155551096508473286212097308415573945060215385776442433196489998205457260320432458639368137739356570413888879109295200436471680967332485749861629900563304422427918743179114502496241926781407300821742839597749495155693183970921681660917387815580711354218832370377149341732014172933419210621612046164931991797067606521600766591511259671287652483255299512953788099190753580325665795898764460636706884728959243485656650334503076507927451033298514097859565676333793615462891670939594590459924701145971297008838933454780400982199460116912688624952467544533262800594190525924335790488011976966720258320681868053216317798457000834171857273044996280420644662710790346082582157323101762860270474170549596494922971408923523713944035658250031637284821639211478746052406137114544201191731506618455579386000491687923276315510083517867570693558615535408324809831116331777803477797251434918599874719597615066678314076591924890945575961304755562133582318171359953647833762110109169659743713632685209370704061843873734420203301313929369986932939772360479965532024371991595963192624014379164787712382617656378374051588693985653131020060640028902437480385533653067347407845691494361009674116689950856328146387439883395853722674223183098414273567303760756759115465938678899030742223006805635165261926375082267004795759097553566140042137446070034406547766275511176254263179316289832803349046511690194629052235919194669033859302799300307413112297144152958384442581680504672973636759747070742125250683946778035829651465176598174494131832419710919349801600929088392453872405140939143602787942554054736833462900439460290183679209440235953782833220069580005188985432624284069304155690902398836830616933076963305772204980384440657988539445519249479695264659113497003366120466566506018993681807629919259091993835242535363439110949121698884666037229321476902191604252412931193353666279683680905031476408824296163983992888928466712938255827867887388990580596973635560749762493158358944069485064436124104815333247783752484376671879970053536040506248760981078951818008346577459127923566880603245212434309268518354260255355363346398845027016849904156771061706161412447278092333337509344592466833795608788203498665662357919460495494849826494404345257179086641007012304614009435771681956610765399688931108648704913801822827724470461233310250422108231289203424097634518501968317239417483904513870885581536648848495578319488069991205017166736646416389154443140587064675364477282188090450981965536450425191903150596291727273035278589729227762783362657863260212341454413125681278657316900010065794404761855631788702462838791732977733714797074943293855827632444908224327606994422493169694545564474028927831318881051006847429607976853813318799259522710114050017049136641090350976971125755608307376656348325891049566758375652149620406350353216225039856004874796226906968989892755455302715297317046762833307937063074338627905096927246647232550712607878075382173502230878678613319411872525549999106767610665049027731462249836196928691669100170026816849657554543721284598929794660193269305078611919603742951619315556214270543730481712053770386381080599172654774156505250138067005466692539436395664109558898695639381961505970045808180396324786335574773279293772516910070604427677967316184702638916645595512213810034253719992666755909041546457325296258922560554908580292602778181051420738550504121738675173941315404242954153978374423122408148595868708638003670922085144127725869268859057344975897466500307469438559666485555567629682401589621322802517406281705371948939093799710495213813787522821720731527838883910466330850268857875840612064283221043993625599803850312033192832064200053940992855934014802461080835140771511203828802779708225803631933071958098958291757878375262228640088247104108625946543184781456940782843720348095649125321454665146674818980668517799055123143761061923166534919691233715016028636933980329806233396143120535454009409488867550900097069471825512839041483985298376182697820917792528411511880377744312078691214792343549021693764324408551771576159787293952496624042597835386396815187228297255877627385958969484977886184415592810973890132048463957782502712909804365750194036777864609064227150893954387771295204323099389354421454943177043264734174707751293063703381038848769939617959880430309477466442312753570580667833073453404925150645511229158171964838627703560504599953068011669376183095730922943081171777717920518917341113902120626365113529724110060563367748323310604111674020686492263067451473931048183407986436482887025416769836592059489542819046759928209619825660739274046474079070150909537129863226971741874833793504450930577611264583621535127221405722985883062357600834255982731479362344673813825043076595017507251695062497192779771218230614066656455902710679856718480734189451486324577235395601236834984610588311039048967822316069643555525602562804277788837974333286612619144753336431516991727690560425003807888624983638541190185928877622730830695937714764276975628915419335636255713655591873669691803476705042783553974597425873988766189406799047561494511909408336442407654029065220958803993422478151763911389801394039713141035456785273749563990652434687983986929135385130138690450012622125575492230023854971317044753576160763344656133959799807536478568312751840198805650025228600056308568239807407583788147634746948088060768795401432579003970711272404976435248881165858979159866974844605626017774014751956915900270619458442052572471273720575266702454408202490438137520195246507962313594294030925697314233046478021234385491041472123020058567629469411603235989390060805254767924378465527436616129990152180834852532961558213378379636568727511969157899599119364497494386356615538797734392867584128407547605510590094890360923619312702434187579695820061101702808297328766704295576904822076765623343113614501988479421745014884508560875769758071328015337702337181391580908873895498476748278761443501316685676185547735950507662531820587548716726157924294821732617648806039584101562526462416451627656581278138568511886071194867122217935271692563329916127275680398324424609757325098422249674101027845032340355936039780241525115116969531434225527817899192160785115009077900961903524453125600080185852312632315689494018780186874062295928027496816637995419974989933440616341959898275314223559137388848015623245347619765266664106591015611608619990296874006927021011604912525675350827930276180755964206225811352867268088636097769391688547372399460670334581736111830293743642916572161840522301742774498537799733672441567166596651638492574586524721776248492806123300764942735729637639131009126877255450225719319262389717115117157855661342371827268916398889807376765817786943850187425507258419611832619116157499363109021204635537582634952781009218707051913354703783862050506878846475966407846469163752707115492555378623364044967897221331902113721600031301656604785978535786126241637611367564245370822342451012611722105330807342701807049383308318380714520936668731848531614518417131700805125363062539675428597981757603710694614622142820723567919515002871060719048215359206282969123357307375259677135461550396113739750008009031248920388606138566136449381733799697613762830251373505838481978053551136100670028107444521323792388964168401383486857695165856688408514809556309086064720290656838413299582568527256095993661819353782576266611775457349845779286215232684920666035307633254559574332873828292975061747984950047500616786323112868199543998151837805254746084289197888546716400570654887309017561382565459445713959380212589017262077866464594633582151490181371849970062408576687138357538326329683752617936587541746898222898069569001251832502798131001590333214530104201333823430307384675110757046763095172410818355857642234575388439137653362226752271858823424031484237096140489134012476340544368790778596536817201507842603021527546977624801546678912497712320737699513386750437058356992790685981443478294212123147623057206798518107126186105321605350860057029525990991231373927839700956517521141569541238108556310803259986460466392582578199736651260454226398863896967654007568325068870931793469550667230207412606242365756005874479259551528708838552845337623673118273305693097265098428818724767841861514175436364220292185869853696027860965928088270269205102762589086741532159460591746215189464049595085264651349144255903598997594731704682787553147645049958729415246906185127601511218513633835261360658038118969419280105037171841320407945853919160161046748650573107903012835586112635478899499902584755408929654978757044184370109419145961596145976475410732685268869472230576224456434871631612890740874654307542926184349963072500220647348918090836142977003043438433185054860886801390394715251439069415486815932866584306923676871830994103495452879811579412076551944945400761031725865066082398176508091447289945002644303555718082507859450553438671136020362698401133811292828422082754654738458556998631185201993940324537096874670137954300179558616817060765995981456916618574361723130634090753121076080403361879283528562467538455548751798865840205126632001125565531523636280128963688484780113709825750152981824936434557232557496333506261271677962454524671130544354438012676730301427411445978638791551318592076763095206747561096913061598276147375888659466677114213539232915279632693967589916141090551737984269670713306864899637608889849315488334677184713237244480790399825522974491918950678122681842487829343226799640879085896376472867145412949259151230201819334614572821629422066091270340217919585996578758276951019017804196920161654999909446001996381953742166367832390984406249651183150018396443803046543937940546697832052580865328096219682459852984856007738908532149902464329515425972518583426729087887017758472215831273252779643465561097426418897139843887461865462159480168354300529790465977811829327526319608667717625895456600047677923067334654766112860970896025702801192540322204089849723891477129783848918782991760338975821832602385708712383813878401106791410094235987797743377029599640766688853250770362795645678595365563766016992209942677685156465473741573651363307175182670583336568125522932125976533446158127372328624816341325728731502106951846769170484638018763351647374269753338538715932593783687069249245899157099825314718024573142559709748171002602069690005812767593903585763239999626065542956389306476161310628456473188712633809018914703527169170494166608793286201048521631221637203468132413004208767149650829447988411299253911813422249524027546359426166171828188263454882236017335017881563729020495105832689197529462843934336379937560314290577582396133589313468653084181631611215061487141541620318187525496889809557404146672133837092261912715718137476242157866558787496811356562321113935653562083282260494516048014172504293626464643866656337640986722791604627574725074503349349503340851587520221919500929129354598471746102647574360664712116201298425747372447937704950947331876928765670831296335584766422397400975278907627740705117445169825698901090295752419379997368836399387876514327841177725751306784284855684105808340755329301161174776952206010817220055370142946392563621513433789328109972805142858320604242113208748518482981844421062299381658587880639042452084503371543143264850995689780780593058079108614990578555386402410433682616839554475966513633847171805392540554870890390924309861343719795942424196817412097252520901518419873402049765476242721206237257953726418357513946809838287924888209530721830244620102350207008648349283287305493943979206895003559778972500037587086169250517503575346633407590287906755186161264754341040850053248282757010702374517768666225977457079635708079667729075816247864190975717551684520191025924863838838228120208693357026235636797415353917808887256262514207857411824319272641752351084059316828185633328412111481772541476970293613711252215661068399128820569569388220308298926622089191691958778062205539938482808356086185598616353682601898802824725848887760890343192399960534291737192741898392132499855334328464428324298485508857275304499442453401788944150322772253921481314608505155998992252946886837222684206515230009399765275971587742643930293615024244428528738492033252288363040662496922364297428486719846573606149322022181852976571184326897919805257719904783979958851310413164979553980697900928962182671561920237030409088211819089249743787704748928905081292825507745654319786768726948893733775855639509888988433641472095576384945943468357092023849990361199095091872215164990755781646797230320427863512117187089955709345821820959109061986766127594702502406522484984189833995587115757428451898392725531423843585858950283109583025491329304068974295181550407418648141035985608863909144550665674562121224762792215700338488504827728446872981671760586318063518109714863153396486995845546440124139023570327138700860727394048177212507564887714059690197695387775961818325636749850963394333725194185919475954647141378684391415679086730684579779732185009278564012609530923495414225814022498621428514608646564437180333202734506330539927273506746467960655610799411203059425331155567507741665678360962005327626557572226177978910267468307076312109501837842901624750121395093290700751421642143651555603348448140976363209592969367927834959086340853846299780166869120492591402939318253030908948547908271652470070726400507879338820120358425129827226816317794751640571740525795708017404893899451247581733650688246780449904595467129812554451753865843221844510776696329834786313368528310536296668930312813233351290577656498986496634833939044716943110009075243693540303247785312991466147259184326081241799364631632068603477299540461503233965762689967378918424489147555563814822061507687474539263681307905301791177969682271212647129249387531905435023023401625362127898662263097305751675236267042391207291474802740429682317496469675716618551739587028633483045991592591482930378427567185676593523606086154164469668949996321253587382276256723215663482848701853303674877719351146363420452201498378606655413296132114409553794669100008171053452142637965758541755232203921813204962211626068470967596412277503510042680130243108918004934482063172715281665474321037308690834275509773241490696871923790887191126052686185205359892011201589916207862725951407963039166325444425145290394424279757331446874707395427737639459866311659933197628100835805015171776046921538867989897081911660087832181249418091822948641469652176046789836976393595371936994310618333444830904222615502367667135939229516900926375478499673912051860830104315798670603601426647669902963850824687334198061847473091319837479481158164612132058901741049796726282524294114321307418808628274847165076314326645575939460597137410767301401174510516972013929638238244132075609183010246683409258012221518925578609381878203118784725860280933567222734044714647986099469653108648744883561853409613028076250901688103041846001935375623521967881949271343852272585982171147817257041235288735299517652788232189733358516070373745166208206405274309579759945971890549350534818829308737232068612699060981546458136577742101785775363193512523661815616578265098290845120557214093752711097909570107557427770277136759499760246617036427434019079213152464468311065008031411763453059474347508664919180694146846239035371005106335426503256370755622762632161458185297442414107792937377866402577036382839589303962221775407352545419468963716819359422320532783844317367228978526863567793107081868235191040734844356257501450459008532103216808405343238388219833962014793787527888052992778604505737584640179220222480823563296226576709934133900807721558521667539818319964589351110213760512256865588641077113371710600397387155230104065097195650604666849429616201952138183154991116948052450550949399589486050509888594841313791536339540526878860604893267655792620305145710305249005383206648919547710737837752509801549498961757993251637390505699963306345939812487151510140215855746710598219653196457808759902589464186437509493274877829687027980752504429834602008502746450024836841220093473459184804708812020564642110752308482845856390453862354821263579231151765852746678186831727168504138006841377096701086989006824991046705962899015790921620621413226330660571812696821643312451216467787471418189240120279174388004667090904075543400877235461616921172437555577045743246742302443368923897963610626695187675756854094192259048541850302355786109528558988993230488272182375942663414875605034936814373207985720307959842104060790636573613966745206940347947173005949057836473331338122156627598290009167644367133656608071364829527763776870760299340179438460852556196769051218393648645668690953910673076421691302527352888003898524547047232636983507680033190476198540984934023529770864948646644203520666004373204039327020037613518662696755024757036561245714173600650984881539632342208020887431164281094410974433571971575324343549354438030369813576392698486036783822516389651137335312963668381691957970117049729464564731348328354025487126873335242687191201330111406879467067873472393020404265345119199973040991965534635878849466062190898479599370268963565847848022013334299301259675666184977845393088017544588595976535754794874398143747635738687444859809071330845587402185731444265776707889005991349277030810839885536618535946013434433853109522874855700594993177103084209806785766351541530809733529781087471946903765926504023224201533114795071246831574232640035888535821079913006184882902374875203288408479467232100853896681332659516841113379378530268692558604103776247649136536758906423513624726712645593182743832057401475670728329502287404049582056120908559943946899866011302607523462327489575305231447871467952194683770952405890032113597072570762821870965732898110207851974907900106181328459511992537602611981514649993689389416884681609224122617745040854548919129818358738695829644757245559852492292736174586311279346378816522122504008951581834634193817315865545106315444782057068400194026275715973815252473555888874193684048510725429664223905952779381486660944930728754390411442566701853274901624147857296850940212311302692895515441795614627436338628716055911418770960404000286120161895255864189016701476142032826799717873725354765017006787028570162863344327842598472054506020751622552927020578007813587225012958523634924271240545355733503900866867050557028079419009194371386777728657740647975050176555091312981489617442310108615596395697815593916875192664000549298257854103497714580672832341659983016064668506587492713616949865327306234250464301686795949573741928765261258141427930744198979844190426062797713778521513036988653192453444906134522831860295862559595709430204783901114448631945009871456676556647634512873571504437267703962243896548987123061761966269858666550835440189994959368111052074636484154366885226985054150840065359289714176103946123197762091460079381195670725688437921171139725976805809075501145056643365287640134217830510708133699391294684211084765325726280318684838863073964318806345526431672863960655604576372634600769999399200230471206277932494281702452032008642422198537668506663926909930343798150434211029688751487808540817595673427243036160587192967182901201434671841588664397319867869856839655904458183866806118099026526529635078841484407869574477829584585511219191206620651524767182352903557666816966062572882767016569939566393664110579919126677500026134419063828487929060148382434989774066709737083767246951244899467765122742695475563906078116073481639604779105986817386394595888509928682974685859076463933199099630702746604863487228914066627287575523690872307618938046235012561664467125458552893294857495136171149712989208115631269103053265808090324043873355469725621634143256721383908844734826099872431437378369707116293208544412012120527931269962925511719016054767530340566458634968857104610031670946827028233386574449930648976552152346134140148482661085417346645224181181481785039065935417736103048070699793855466111946235626029280695244869409574947360838662824227422853066477798256401836736359161747617825327670747437777625446452794100060419773843821824604948581420701234798272825606721343098574393146207304260819012163890928473613339951820448472653321282244744169224852976601019066689838810743381256804824860740481513516383209437897601545087485729932194005454896271720332623863352674312857920038748741761298279525520047362887339455560154805608142217002236489186946808572338022454957851325962981437295592453960647291861133481894862170147113107788358562918623598200938613956155943788357612841904942231423583822206143703582101035201852899820859684621485089050230462336543042807793544787902012326824863600199085450319234607544697465007114106127911569255953313009441837780152915956280220583854604186375186173966014370228299129584438433195747115091962751124272683045713070092331446470962239357089588506225229814130411549752864366423821593579005352969237539613714297917261169836149870768548487847929400518308938753095526231919264634934052425875134875531991844480273431558469117454350355412560196371044808152380485005974556031046709007425211558999533288571876607381670048099934529188675219943854122897251542120069860880762214945174434548789563130834509809976250206411032852718456585661079371990630316719239067537464396181004885292160831953098492567108195445433030604950188016100253834529181366501117188237342673623696447944114432872677071054121882525760602522463329573820819531955654851291513208308578744270764011162139976511562800890160464116828079521785362848425845888524662870711851196225816712479215304144819013687718263067733458274607878226368155891459668906381883093201535348694467185224901632534923528594302045948887737238122411737598042304029931038330883990759803994906543523861917053805112005896217541785593838381968463197445644930899612338767676189989169994538725389814032534945890188352742153566789760388123527910891410604664188974914558324870468435346807680239054101580093947973807062512508146976395120116860004431626610946025494676160019069745887542842463523010033945597518449302698754067384226076911462839052011063893925117576414304940485939932859080721900696046220816531539052350243056704908845108973197202254266963513530180407657231179502727917751567685463494215478214493519144398557811663023811242640879276434762704647470772935694345082887285852633051138037982221934881650063767216819338960407068773596307053378535600608168093624432587544689493409874968289775635580842725458943642291426869630329523147852936485835880401045735451538654402733508051723295057966727142622422786734005768324025634486466375742231575717971388202411564333367129467643085292246860337169599695383925784106710524677439705969606076627894649392241619283808655934690481400918285609860636027044857178461401038830890595231651500608711509165801588952986732561377915933203605915838560018226105625023606421287813071846437681611513977811517062195558971261531352791661556371317767917017151425485115921111181812435113261404169833609599378582601149799302141762154361144801517877835086388955239662816466462623692775569954738939960208213933789330078430635312334256009905759178095696123535080848098789068172669883070585079345969752953736420388004716554859398984193248057551952761546103193953520265145854055403084594426956863183189556104152929534288829006403431952636776158529677879356514770026902709472634256863115970908227877492265582602221750183588691548841049926254367697551258758894616270840654639628692066370686156271289530962359100234851789930166369937436386835270375959045087608143869561541186237094473927156922556126864354508102447047716349233452870132103635313614032384365726860581227776600862537595486564863658932507112561833031480129292588604838726335035774872844696698985924516233264191235695637644085654699157245442636574755791244253070901961172232765531315087939024389378188149139486505904406407384780943162696740671894507239027211541269291629829494765797628809951190557940698115991282197310547123970498820901461953324768002020253285427569398532147783429798601761280466448599965935259803840246951096318038051660343427046957255118720401009363307946887004133621572092637045661787990803618206769672444183261671671416189410918773366741164391670691922947266977940090153811425831440036736279064262459808791656398299381631714749850838924345107135373107662625779432622448202813428759821842589983947016850298775222067275542761511165175832894592836791924606522867243300398493953019319388913580737242424646570177554679060089205383336711086502590360430766985658781364263264512355232137269400148214869822259728992828349983993649538090203185545353110695175231863452701839312158866138902038476802958564895796476940313079593419945271086885232182816037359043180050077250551155173670614272229053187034170592270892412583429630884176226500454179299394264183441841594138067969636267927086538210435191274627015652285916390812533451299159133584697718450042487251951273668463486145834795125287246128123822547226032059475102074589861760361824792664520567991581545125665444739548689724971982503761150152660211225337118121952615404339595890145557498803353479109619647359113606045657934860993765877389234429594834551294589767815083886916458180522363202212382410582921228301509517132171500081968284369928459288296146617867854202734410656217395460234668483684176789622833229893953295333976076071757798837089072423373073935961586580963624882148108129583370706127094176163522236384801572174604248028541552380599819462619254100585486060596597946226061809806047899396871933538290647228626325728920359054957099939001998858157872173160318640229798876447283518082319587359997737670872010918075953777632065162274291434090740292693096817117905810306492605931770091610293389851148835204709927716518034904583299340457448839100929061422326257668514013620775555036892284947977688675600712212908487364721389035958862971605331293128676453604114166099907822468689685673083326776142081888470446682193440650808239236389848541120680234348716764524423591675537681808442348724711618045648175698554319796601264086943386260415067864772755011092515401087919677601920874588035313281690676808545946984789792091486704736664312085303591446363170549687138115546797223306042323143532657783369090776573359174099465582763284007792222534351322044167248875410392956071204203833390837017432480642243528203818782500133317730701856740254202738256082551384661007221045606723947475537931049189051456434448711619497107404470398469318519827974512882891672960442603657083879261889011244185341322767189911237957630441520087584833249293326944088313855260050841326834273206493087937596890183810488029671837696095026501483256225206790091593225521842911195441705302331635697186223849319657964624929211774582162226722313501209452978361700199262621638470828025913796973912157970452815377829591592235631447419780456365262437508359576857164555414500291232419447786520291966656959829147495333995973341870189959970689260449917529190209125875916128532926466636284614286991607521634335559650507781355145551510130605701489196828172814001367217083009233371149941068288689532686553255571984756635737757272946627593110206607806488738241761979874578534368499529794265614411648696676123024965199007844852067827576316946056839923558823948466534514901098735853375830506947987793714223742002319492323424980201239350118163276029912960167569268297350379500290513147366890858259477279341223863992051719735219035393779240501672369279230758253710076659944310744050991371494698569161227428592657679300782472881649737783139879579027561860621635101033340554894032053379842106353410997357098921089930707243589929594778575569383833768439641574925470489674862141196152735333234164827294099462458686810887594983812105789746568197445753048435343110191730320598874758400739593095887135577198134183342478821947824024841200698510787736257856815245503718674959073839236363852237681805108264232681243647225542005629727323736405056695139001839227384198238093361648058278835299247259346268958603081026137121428725872944096088610491902954739316859232072141401972351632365840148866693374437764368920988687240226206429063606953263536550165869944544610297715133784509709572722873069565598822903470424111255377337306960897887736259006998224917230996930332792833018955390715164162275131267063351893248261369870313270639040642092072168585435721663824304869697366717004273050021660824590365032821433290272766175403730711231795726687402778427044326207052969172445483377454444280002924638697592549603931875158447414345331408645186868448080333620788962216028119115305373982843264267081821707741405115478869233826242196300934692892804895406251530470873729672998268951991117742057620710766898432303587538147153995528325484594253169217150999352836225994672166084125192344641638947096666358002259491364496259008841347853896596923745968830527387978502627854072004119976672830889630720201112721596752762441041041581844589755584370355652589292032399494932678743351801782491489603091535193971436680303237513102542222719994397951647035083950157775116291032052707532621712083397405252156950705540505020389036622821390883178449500616268310795277577367581917781805092272134623442998082805273124173561552469924419025536498344261045880562769126904915483013505211863570775463290458382395068091579954414351329578328600107500050906651973906760673004875466815203011232510217622288886155185242985375401691045186017668510501213671907590421696278273871188710269164860490396025095690498951905687215359502099450681396611665591055252015074764957268979216205905143191183546451167344073732567879483406898712413493882380371954650634727735022102148639184248209132226652343928151945381607109402369680503916726389142273467712423381037969320848931069251826218070735032525716201545090233318789372291881172548953339020062033855917622427609124627586651892965749634417194337457120798055995449101136925537922866182760787844103588934422231882004012217182278789037057572404107422164947521444470723597375343770108612356509539540952594165579518115264742815556333471313141985537354548341658758250084089841228278348564404225110462065362829118615023103799718917425915367380601962090243127778759071605452412098092829305759235049507596501143678700335146236455423218253458067960740943774344107111348711514834232099159389415670520840064572836020415090650629642477185671314156374355332693404476660314037968230203888824522475240756178273406398120985397555952129648430119717919406318945829329164756020372703997177773675361538753537246969953497055791859603201568943608275231546426731896909363370224610142955153715209394483249754289449643731918465327173563066483380028377544290953563509623691076173995805101107756449791810894093227720872297796045219957455091893794588169352819960033017987923151147432165462129319101526001027197598748352017610072145598397496766287230225513391065826386756523291244117942683194303613466225007599064438562263706109314345918595742703046863610049922495850753119587454849843618138432631558389881640464735714135662504502996298510985650174981061273748048223153232021168747846015488945680760638915980782995211350523898149493882822227139831230799013867572298748947055536000288124283063686078214117249543826002044985482652608680994334017822162871960406979592142951596178801770814819871263641406940001469304495293180008105804514125332499061172015350389119701645681808623780754741290960408984568871397503033066173415957633525162690386112279411696950222453636373477753349397899929081876623258292201508687338059229949753087750529996453574650349748565217662639327246914547226855405856637569608719133616370897625357535891556292983105173791984138558906691642972028998106608865299447508226895244496863060979188902334877593717776452456455855754508817829720321791333109681603546777031772931986817790919111776814264563771326845448367420208151649472633351412852109513022099982738058011955916349995933540614769140327196048913192106528631551504535499358222114464864588805666196500409021852675240157005289108947872857018254631561077335207847446316941061878967692123887547235878666180692128506862814962108114822947705037264859879062798718307793220294423792655644716470625199049204640260234243810769883103703554624289010806505455809378760005399737519888727388400848115922503961150188403178942208391481423912482491144470033154822917306254609132462516513900078986694831731455561645919314985358528704355915253654168866617742611557541626199751149458641545449335618476098042836135852930045342586439129813818233461639984566102802724410527078504500212580291173376778418562043880282190281286646612666586189748623868274416239051415758794819633523684296048849841255267800453588859124720096609234545189134848559138492220389054046940696443621716488596860473517330100639126338683114120607354079730399071796485416269201132716452132830248476878037317920729948418823825725296715340712235097496121227210771977048342601360129416955902677810097878720687185824527143117979128887598130822095824734125700606787772399065762545623411053032063320882522077205085300513052725729713529325682203859045579967280170711998308738912430475420303243800054797399972534414531843413414185911559266568526059529419732121415871312786745947799486896206295054231707919617018929742020554544347340924587156236742603150400620158461523188606696906524078811415335621520433472082990787949705369466140912213408878532680583528540619023442625344895314335523753568048755108839632823784606293897210288789555110759754209272039773361219232487194319852177186501257852186017018776125825101846486278710333754283727371957718401701166696219716279665799091500752336962110271404472353388260004882406377651221011353646532237786933135640712890010796358921071841458346552732089954982186770734875805515057474345524537900141948718807281381583584687775172074990661565179789270839369767422806275506917919276247008334852617384980196520477967867358449961287308846946884447890690602153743874914193651398524883175794773437174093881436690212467569043607687439726669048203713205124437303752794992649446047874967087998983508144583671134607728168081645075765319498323550932337308700170655112274316822627582830197028297383637809663029424664735635090977362389380110952260687936461066487780300996101383719602563382538242498676330462864953207654938374560911709770555884633554680708178908446563325652302386902796079563270690712988434833867787039853380623386384245597013956177657520994128009174044509238748297064254256458764854708496908475992006004510113744478845057904996360576290455069868628563718478043190662395710246094712221615397223141223499491984194975899440622839026029585776623274472162442743446832701696228907497937481650134236550793037545906696777922973044057546171483771470616970022493770305965389323821545661229187142758220051155422381262764276316127013163496539690918743030999871131766150408730137023272470888370195251392604087916400860108409668978682233251403991627050219306319482850583930553677494836495602579195351478662445398324801395213450828190134130807181694890428354008558345405104234353045460087096627317824584988448548335875814168226230310207248932989438070793704650127935885646738820363840537750412316965214785179436516530984408797189605029024269977124916625021165788593625689443902974207934962325216979599801080877349917758350192853457314757335687797518460906381767004266994872562453142654560453854324168776577688056592223156210044210441237399392063504799556755478948020264577653246024199861544830615272269792561502728345697130589863897484427315979359612199818970692154541093747429887627923458064811634007218800616066102580056700074680896124393000594870051365910138472732450091592178915904841537710345290012894768117659844674085324628289641669370211832380341116603220398624738265915119958703445249370985035616746690519393693419099049961783170121960588363834379364376385942166987079964101692657005439875248098767066053257775843911614954565263245517363678504674641088311159737022581331902816593130418964052093192862250690672767737369352080321461071306322310644749027462499602697855143822366166104555749731510977580479447674181676866241409832058630642442854927742169465126776135363367950121028783831107541991383458424219790629005987690733647746798589626582742694413310499055899711014962288694342970294249517362665824768533378582090426965748221679102059046632959768468763211705591440974612425879349825349043295399981313260762534635659207000001703615593773885064736247990599240035301238073466884395187194766240295650176492463013455649340852974654710918794054317652127146413194512613823266100710379108104438442318465452093547315837928312943593624553833205421725736368061707573435967914083577696929817208241942744261410485674381702794330294794708606978963290074135331054173977374037119342252102056708225380182689875891762223302155367632931948645531394160118684391102336720471476776306048117764140315886875809464500413041058579460766585186592286573735761947135814503787894042006891362263465993415709544554027483866126873333671048131556841582646007862733061704087706754886486523347943081565220903729093509025898542388925861649781085073017912491195980751963712129369606715139172653135032239454296955577935219198100495445505482225728520049479036684524875844127829119009531791948101334627303613520077013866404683500445651958126392749677703169055092689555756941638633889255466661848439995794404980459002634236361939065028683309785586153855921193613838198441047924324549065507486679002289504666297451527396903746874805308143379656737584043540548262996587969526172101660691518640126733565215794020360779711599269294499131064946840252446910046021011855296447397665388831006509621204121911803222491552952743825281766022699955382180632304798818949532800425498895380680757938245582198804709104719513867132732092396234451433653726614807976970556356792399734232770264834915934840912721289779325753948962737271183220565127561261364599400987340892729787781737909227295563829667578562375800155668450419572956403117182562901229313110949150555743034585122043109641573015427907435387170278338242697890909407469088947261907863621697298517743708470654899309186790339964633926410523291291900207583577351237040887715576812172725833820326427514608171890686904659458285182128284747825853728021139185580170326673331162472270959414994731377155737699058558271177857428891554883335336387422612860087135277287602176172164374363168448018070724760250829885355481687945308371828075389309692435697885666695064067559081796210499124418236692996252463562410855653976795529238303470773385120624535348862171555751877422608056414378471093057814138909334666930011124343805701586138417929102331162623119903388271290188327662494943680724106273316003361545272939920246805250965035878097723573070319839542704035329236812323571504510291298778814032843293471748655123670370323120742973420013081922018927463098598208201003743668607449106375696004919300592628388028132890884790048035008024743896919183404701171558756515403850311910430739118278601423315817599046301452603181346347050761966233596788625455622637296076421827933630309652564322031232660129232757598602863621082912023359566983831239517879751083533961183296293461327985235080436813697823061715439526694054149258492232036101044554004450044246716465772314883716172604482659020694035961445611233955838138927740532393108639863466358520663620250995409528284328264407458281942208104773448317632296922739178604449107798722800800885178188398021103931166377910872394269679364674405089633828044156967669221501674042927756429339129695549427579191941203399678663244998165388333378311498514374756709885641172137349357603892657889610337237724628047514553744517279736263240450008677040314047372203545084736684723008059387550824659245172597041197505900158403338198066679871966805409153941037526621186238759497805170642119243458091872211426849121646198724957117088114530884603430369989079781618269224522075692311922922616938356552969372736264342000968831235627933907938106164491468439343080836800952455040259725267272988979556793332420045111039700232185410280867107073392747245168074581201450668954872145527297010971479736111866721959268003952452112461928881100874772692791848873222847193502572955209935223202351773753173282876168055726877382735361524071429317228546887012434936425076556360875339973905713021342006361621456095989457776957735636031725682531977881532871679612527575850957802420971836365687341068843845223869106850796082245424132944463370184237642552371225591220627525993662750624105911627563732510389655286449889016806288304990969154009109784697694502061961584436859530444504983529359684656051914361422660875601092011127467605824875764173539827320035232150692134752420194633215009811268705043485692689552921644019006927900913938180627364917835982547115804360031467753889931835759215804170421750217166952151801996516761616564097152056035788592868791919627121398427918566693174958229090754326731926313021338650071317030373019468969339389376926695670203360526727035851948456713202857830881905702351504474963676403267961185937130529976680251749491873196998652439861033386857963086110390705319172933245229355334294885107314190221477818513095240437884381923228794320946728328723025884502337447846802518807409268691357352603403592154653958238703125523020635539423617786984363928948787545071721109914545415134936372688706946978666418414271580844753900421311226655588215866418929413036685317296341119853003045121523285351802559779414827236485437010257514001610380932372400846274317426073482127756524811316216764932390451805161679256851895319924231256406795007840430595740403414171657377949895658663008799357514092442632645103924282124392397000583656152625374766615796677758199787770718737992895820633607909955226036285998103042428058849547824571268017797805062722859294665895737313303210871873886926550567523675417817534087195284395118801739036840628056792446800046571070452051447785024102816141903015697164407936807497819979550007594798805947112483852014696484762668330553487315911871974942811985467918658174088458311709753068321339605946446850395115696085777055092148100410245028190842510945154479514915555078283971790132269554726212031524762402984305571200296874404775585636393273140975738975788307816320928364260683886294470997950365565668820532566714809464370990309941334051888603337114227856448603091772245337381521811454252847146245252031695387364136630868328039158308386645444986836410532708267768482778588306809194232611887217879330732145753127693102385881280408989932322214229926412581587010874236231969580661957048425274612588210530702890665815331015621681165373590873340159585004348061769453564559290352800549098086905187022039608466669278249790836449992709816553849900547232452828916798554169793600662307528465427094266825911972470798162074682900822798681928146713785166411350116359807721725075113595734663650634612530926183387045810476976233720237403497917150190300515009363641938458642931785672474449066855624191083957981875416745829278533113129783661454815547437834484819992209710571706603203374828651908650283836313521887385114741155907911153954577817139208800988439814525314928080714206319536586645747714908906789222004532518611650712914219594959512293313142235815173134318799851460396485887607270740408233205881106036245434439557057607496229999380100285881601752451470610206162179075676682844564505666095433713084405888202009974100647145896988806106706803080757768852624874069156387092709633857844334691160983903991026018735520277024547155676633279021592322753370934920359776315372482540061109334978757928079677151989679283660504391243161401908774859459734426954361596644844828084080459211363098099239835566014186928397477800560631032532717092128268820371353092285833618864092453601158347567362333018373551743990632499867532064489488110244665846314854639004524856723081634680629986573226119572798811047207211853887887599801092801614945120780550689594208151140931244528034054309859855838250658468404539920336699979534606874120081431772985023905015180449199616823934268557555845941073016310311470182806542621837228336646963248635289580564266055494204562376878494900549521696702306788229040687874252156634895011592906626431217375529735761082181952717427826801565665103584725313325942033943103195641974499069832719258542134122787538944653541931451097988871012448140638535634434217434653101141871721508795625339415470763806656307170512648867781852218961329854890087948355570703923979740567448049643953902715429955228097972867096189029056964411990559778758316680131377502090662770124120598359518204663569247751915512882316951387460137729757329734653550034058513296622582126293036041913492265167997917066340756950749056262942408879611336728991711313222615028496351168728351836333901721703043989484361822294229430030823325245113915678510886649570427974284643745058075534140684485648786228312898190631882725285481744551902935414300795373701542607710644418268366230279728432591144342259343128674426965847591366216958000477792652382845042689299506853495572300964497752056754841038806450455743178686205597297700338867135865468169359217196540999005552660732043694075874428039741852589130730037425235818013169035570607040675920719578656302856170721859092323528396232930416622472123972324020235561189297513722801895465350238850656111679372695196324510738667162539726120097471785144691280879049925420310927402288141888280228799693575087935127842970109795156470815766094319313217685169045974945056378107698522720444492055048156290521260387416054672264995192579908058004486088490412451151620175806473102371337217918244687663838354759489975184404906472352549413810828129241786074536503624035106035872557020990162214969317292988022440688699937119944114409481689577207911089373369771674621773571951163174457339375684370820194262272106231481800634684121508589639741409267440839055310803220257636524481413191646889147190739091726203438590366795369064913264824630122208740549267713615738436611354338442351470860239408376137355651794703296083464304452120240009480163876781510661438403934547495334379528464895474131689140856718071558417045274181471892449243388487529884658455240791932991181970158875208530271362089127218600807035575329871753428920553780294623145573911079722174677174741605564203626541465456913073283829914943575906382806941392418765791535249991156455792243994292734443834052914545598873884888116017100561742748127223331068137613300500978342314250777797205678445039119267910952580676528090433849609141406750963731567211516994379997248066375718139343346684111183028084260952732171708567696814706615397615855985651548514223652441449054628924770801045449396345117649546483629254680741621339942873449485537147606583702552940072978435642842497243215278011383903451279188411007187224979913060624954852422395795156127207783976559734491742288651460247833746830331756873851374440985917793226946105196257770530757436313755059822618549672421141340387921270112835285339348160549577718687817424633899054208607963239629844652327537859748746873095762535770452096410791919434131044429663164581952570801252979942169097137774456272411521963686241230413436636339876255970392664381721792181666836938710404174196551365360211385445726868313640681535077691088460253812275103873657660395176112213245718434248494386987027826734889367153686426265478381843286955441035904779011543293059104660777853072402872451806507295558436313876356614175937280776944475627140602525745124195780889838708893570713562195118828898284607986877166334933721792575486505983311712904097633693970346823932706101518882362693268341942915241425322864089436614341970569034160544901541978525455560587113718746130354353359812333569120089355714532611759637677350067961673491952682346622245452994071519992558984321573633141047097993303877123200853707588750053419830478584161898805601331575543031567511049904532906484735838849864920866277506558582052439046162901293788544844693742123831358331314383487386003545740917567790219930646154587005027036840087533111745762321534458980336032208333549286932947800674661160257508814614579115854778970066836911432861562766964359074474788470720590908091515122861126837510247097347131912873407396008876342584058895676069010926378702682583469817399705423681055726891512430860875187080968771354887651838270051114751428837942443849237581980904366584969122396466042019041667380480076113485336088980176819727600574006605323963490947879559138946095516002817757195561688684841984881756984086951650399305659357509642260320573630542323549631875746310901058393173570821196245762860005424822016365307291110214311455044865891012647240112142449973793648507854556497080560802922906955816695060521285014168650276069810109642230375093888808819806440991604742725914011518010437213968980988851011237634624551078234226396350755403046929629762443342721215326309330928704874033267444790133904002820770377685735876469233597714378480954258326292824985559439306272881520610116088257392843756782212651756171377647820993976916642621103382114697417059122040049049711301898084834012431972003695980099647656580558426189359881525737951096715536046483457817135252603072670417510558883585266010694909905645505791630898105553031988054898093948599537922337059442833407906931635670214760796268585542221720608827984594412515835579252900510562577462465562149602593188003466066210875642771194984057054301601129379467415543910065034116559417201461277599455092789912761069381683481446052282158235095801406321488396847535853021740016908673725401367696238958809161720744741088677540870512755245800700253540312617649072822965588783296774070581540686021880545296064877199942368274821476658150520628670879479665902526747589697458569947366050510094200655239216073110688890490952602345303152938679808121010524910761563269783079095132956098779149262857182145403127005821636463091172069874601792315039770902442168293595470837838263375192443307680516404418313355664076401486286437882237758259994540943681977635066980119873747880524373870256560647448219702552863334785660604911854635005851530630072462518237570846194050924754491186040762757383804542198796117824351120303419562642250967153045546822929897479883692644479783669981984518667377179051218615026269780893743083644601377463938557329401623031933336006846603382247280467548157961713450125371323309158535795786018379065065539715801123388044050677561426137969957495850960982347705528137268535066053278119350527648883943777046778294452670656218553782100770476439225870415398125672869623139135423116330043556692477830030205571689430783728327341324395866821707276080905179210392012231845816721627234440739475947206483010800137276949308741759122251392804890189070369932138030507333522163346804881054072386510139469880912689055889495720071831319993106476247819195839193906930200100590567575738022409818601345222737311518230395049007145643080072296653733315994638163329186677780077731118060013123027362070633462938381376621505123491421693511569499697276212662771284567239046284996362508469287225256231423360039810132379428909524662075292252155096774675139828001282570149753682689528532529146609896292549260074392504809199814415485219824493750841778782792902135754527061930446691040520679110023991420784220576466421992518450503907323180941562842334819096360373513755415899307872406958773939707657726826676068890852887365647007442800931327018501147832069404616513143350095000476573446603643112003740078129359301874051041819941670066712106842577486269196204515393381214440076678422538937330573794866461306440474326802891275130383105673538972438740369551174952724429021199303317809623541126506134727235250258392820176596005707242335713590359762734151826135628470246726797537150176543188795973999395269554774239073455252166378905045251223559260259549149328359090782448016144372310916671780266251329376805459765305117403166980510774738372045240521056924816038346137790686492342887840753008923772564410872004757799319266499963905520783289675872437023639690039388857083617838871165894212177739584018707645090115297682206985946342212655784984680928745323864279332585214859977403764105225255142835820919689910871288399286082753989000301228010759800844750891232537206638103890635519067024205705658523821291695103823525437376406034386831059509908396697350750274012148066994302179140176871494781485014252646153192158372211174156617685543230388187321133398947355854971496628003333144068770698164450838013361116958564452606129330437335869420188392695920427225530138184923420055709221444730669211277367594435439552268227482036777646789493281856602582293913374651617961323922779836583994221939226954911589561570427003911116749507053144642864793102953198420695450570241120346508119679448240660411969802621337226231029117103438806283306035591540134432558629427915238832906214082721128921985556964499305006184532095413711789717306469958960053326148893390742688902645235170128184912343290313486514596351950821193874935901063125371561691551625874661008394667432274219653591569562402232596720346176752484983920566521454905925461503877722120078483998564416237787484578402943950065330990414810564252710160462284826756402297039038840366442678258681622223465559988375425639613327051454446582440716608000339259180045262418402258790370190412510622604032219782871977552079389925677486145222827192050326240808629725450549310099781232271209184717286348823767830290151321109496885360003740151556771478152042594557484130831897347774349769175646945556178611400125919404466923532133812517688136726357661456650039364862349050832102588983512251277195285452280986793783532719849944294138178706313118328085812893882463877794271353712425343558244217365378078484363038438838399078407731340291554079900847860118508288190441531528446171166567558968866756738717117307125592155053498508344183390614650963798581803493602733538973627183009219013003753040216731798534544421441827614938596166099918920640538643211994985395195492398664236235362845212680348771609897165441766044211501128634382483815462023257819271037798928527704155681602756307900173475587661494967079070081366625250745025946454131846559592800197828373671754130678107228315648270294711137210630001989215672948761289908881402171571110495030238641123640780220034759843664666188435434764611960563532728926946791888279942888006812502767949463918426433357664508517766128851181191319098823342179642274244266421075374737226241358849523689252357876827825265845489941729321167077141658815994582043826749814705334043456988188266085454882585980053740041528502058893233940440421835107777678286966303402518422797525223907888435481896052007322514906203132602148318733647602466479931954019168515852659922284325709746654890010831988841048052437124510764826116920665119383592906732951901880360147184269188172656104386611738367802986695705506758245315284386308455123725555145610163134010814681144217304703788591175765624819460827477602592607829459927727940026870920518791651586247858615995690762979560954499744550814060589319135358151414027949386447236542330964161615567428663118635722934287002827351616773075332535309017145997933935734375204555405019490367164081621783609681408037723780177842775293456374495133651818970421860741750269702488936074826572544884585585884826444180214985478081864469748709080222134888581390313335707653197784721418527717275974732540314272101134807161236635322287712684662337521498641730779567469284125927750220196011841238987991604405586960443050014202427022148466802093600990041504797987909468695268088237235346903883042324078971961087936357254213442902498239925922691242787229601304905503003524002157418956849635999026621509067290391471595051559642012658423740828735518475222811852754407762820165862461311809196591868588926861295977409235747535821733048719511576628161838281888929504778066584605435954778493319211182091991380297925317722460779484221479269007136404579160500644941954604331638664706940562136652856250270327906999132883343468783126055713725859028623759994013178498872784435266572886466262964912125091857228978588845552773617877445699133373440289350847540498026738302066782981481808143217840227658905260733945837922802924564986487132722171043792539886789972830327331790751087791000160436883379941289854024957634567492955317051352469649766757921290631274645069155623196628716898566870367362751189048268968477232880606157014938091837130643034656243358203276031250268306282538559812824560259392647312860934631593248686542347816157212137315540141983204261366667354364536903637355222617047101313758418724661430985397011981067623105179122948647454593897486939325386025747866476023556104565602773056879283283294254667966484697420007243697256325505322232395327774269508880565427562557118842344548288735016059888467420173254474381749531666865725833353388965770399431971725450145466748996316283245051167351151601485948108360601855696675724495308963858220495604011781258634386329338127366242696305397442437953053351688046393433466953354682617748755963110678074520313682647794942592117370726046998734980108948648630549533766113299079162561280714982451081319559846835046960535704037460379483991648772497381547112977912806541581847517141782626973388440807164542621007800599951431839517908160208383939477243541376744831649306501257314780834340617048573091279263729115848364278434996397272325610020216479198177803364890619044865309157389176473590361562256647677073283205100864916691820894500954316771552094657175132355514101116715087284488289344696047359115507025124203530898409307534063140543919912085155026220979079817053349410919753831920887199893185260047605910432118371878774091763813132141090696508336205001290885020361671145186756889404012173264825916178377882043278708941701330051718788435166405643699250697039158835246729734227846529109499364729976865102287242298478837068912491668853150867893166761626896028434003115144863894113735246048251634007490061925604852485864379131882062217290357436671142062758408469714525767121365062667059632799123290511744859596911177146667539904260644977184506472789702218242123241376550218488705477951433195791518121974362689640364000515001003826027357789434534829476100429190421320654647470968472126091834159896502281523223976356761125864193295141374073338153398985695830455556784787148197188454586655547477486460402228695383794371885417884678612362537633923917788322572023177419630263310505209421235244625179191838796273018322699388858741017564808894494040586950080552213560282146133435651188939377487801554032950652690045323479650344736790556382735094231531642557385936457495233349162658516187766324640116975904427354510323524286294534976708465908382216151841720007370021470395439270192508655024573517253845483801032413066541000431311935759710519328297906129696694656641594421244527770662980213895363351195266279074303061154014383389225281009903528308158085770803219131507213889454521629603123720651933660429725455524440120226624172992683987180817065310563612570473520645141800994582413913176058552571276196091203511244571429769386691247058833970797728001611093348751322475992892989909041859913427345411214961104661837950949920541478719549820265605845928801732888726907695026150391022085087649169898514900808359769377186213029119983858817416456465030213574721364305281107011725424361843257056318166417482175771271426415544931013348646645761398633790895139503149422269805164914268497868448930294256868058879611479544796492851431787199506328230784775172399478004631818281538265809775981926319945863148496393381582245364981948315137711906042783428554203130342074909020840449692935340603245669624252482077440165607017568302009014555749815511978851065005683521635102064365101402172807934771466295923752925494428694692090943585686412327403573430532874801078165888837199847896906015944260646353863517698039013682168644460050600192610097245321505077828701805702603413391695915615928054824985531088794537870103810632253105156645965863565457589730912181428694194484310758061502641125953516619090890048586849567535830103932192219020963609786867472049964938167724105386606927009677859310139520342557696751816446577052389635139447122714781430740176358025013200620029132959308702083019525831929960841065364289851563649042546723188734003182113479706253175175802786177845640378481670790031068879928279895708750329168277628857267094131673703347718743966307755572065173426842867087940656304835415713137699876245959946205216048887034453898866904903293524931145880152400852782352965088095580317728377251543868312240272040685542255977242397146240838732231425150224112620952897543809992854720339302642363736672517204603229766220545824961284216207658074927281284662276949202417416216108153184046593100651642130468812125148383402577063798419837640809776159897233013645032760799177661803489420108934805600796283730244159841133140833228069806622625636052752133449376033915514815723985109819495860296479005552505116753937588038211051482801907021757816242746900946491828627980995538254129443895790287095938548783915712679801132142689633823696612677030720901097145721899376966133992792149997097525457871878711182231466082966781924439434017174101211041418724596297995233316969914035838936953487080256712901319657713057888714430077550011832353916743128326551677171175781381848289840899949771690771137830824007266976761917395406174377627361428350516574989382020397839313212222789733716642303532465657375871543445156816057364849369991175584896152743651976123841121580709023366456644917639112604003232352219173530951666870278920612425434608426155876490876683330859881016310425846608721586213899383754027358475949088909149084900546606302641069135893585331380130596858046462503738548465594647785649209454201357410332615409726042573413493331614448962039990542468600190569945957550265734332211541597857763064441224866034661766946404310692545848423068526885001168337542586892375692461895951997146241559615617125614645562692534739164773002014763183694229554364950710824073410676226633788567243576780554150939023811431060708402665618658040301895929251246428819117717691427262777053909703554530502366254381624480492477911948257134527189823749971550030987310666585101913926205359360233716438599171551419180651798121607826821197487602860638983496571268393213651056350433685886044674278341129640276025415919151390537941585456026199264306464388661942067795306708970834561998421969109933283673221191033678993250165138461888156079378855802426412634929024723613942174943026751468276447874706852876565656548156527320263930846869989279578267799105938409882744217796482871603348296560877234836427659116820758580566595081287735060875291471916149480199656916960705898282474428941428122729536813149988489238471909135810268685917558955355962688322820913478081818616723929724651584165391411410597766618722380516500935943766395356129428427577183697897457214870130594106691773941461085360196525401409729277502268673816769995734221866984936289131372506356534481806215608784356858868381381110800324429502177042076553602151225830520645747811994087061848559638529818485849964204996056648221127119131721786797863848453474014538328537751038456315378316752725818488808930746116923750596866619285941528861145464629539052245380734452580101067695082303950931186064916045619790303646525992908940128346701831051730959893907346523602736839908316187463979979735785393419489125031213196158758478234523252496166681011236922228594825423306640839527391565221731774367228110141642788745934826013683037120624834123498976427244301250369011831870644470667170125734906222763172952338063867315734051129370060927019477076561715369649454591202679301745518803449998261302892908280317437907849317585488204921954032329377899320455192706922363492796869032542346896322108482967869994817791631103750498286478264880671677254261431576187281530002906998461815368563444496846410270331562781115497579112703129072017608075458610238058967363044774028042469541638942444822583149771801392535884237866009067861267516741145196253165903522275801542184677427921517793592542530822078130034830317091522401828069402143780222919609926182846892576075545330648673877934184102777114164120581363697804846466709098512362130722372084059980645825258651730782812767138998244534969949233424117265546604471401783820991683081289912102541116968433572420822973133299198424464906624352442880488696354643566760213598101895939947307432904082474886444146740900372160768859642551576655765784412918097206251330397151543567446643793853118470222052692745146185775816551388608128755985211409011023150259938035517836091306203514409366275062816122112268621577273894837409933440683240655237618385368766871602427720292246707049391488064888156710729628717937132117259257618532140362284331891421293165953988661366011918854369735349217411256680814626741805072448587987595835185723871980588174354075924223322221034046668034115333782446282906109650383904282736932831170853784545465284055922185876509815026100968741719750431255456056739785324038486436081235209612799662568031873641314273787439486129321003804999095377983285214218631071151242176045918348142277473503855141935963364355336295001688971983433533001781255412008038803359907025731662530689305264093877970741677106062010009578959960352373991646010751275608030117511737424549156735453928076286446698203397390358662908619859677890700218793169516307757555556081969530786586583687216061875805324388506487959865241346910981407989834362517451197197681750727916304096943335916179768351974325048634837933547772706852669018204906846687258134832094522862863293616496278566445579829886605137178684913789782998866841500346947913261459036693889037307704521329158648853323453071097078996072913182834348985705990127347719203348389087995634875066792319306687566717386282546209217379758736579210111296769396895416319343797935407828154419419244448450510407201884954323204155580353468524726298307906770373614102447038848740037655117504282740399830993380522470090265206361275254452732119790876807389164597481986211991465165963706457488533254982472357102950184305384506950988941819964514272395763057059949447965412969651470607696925282637724389484980783914799799935275796593932823729907004386049247315137111088082321134144161382809337347790957118156880411474088894263981026651721611719296983896171452755897787321035459178839333663985895970123913665505383413162186684703293003057383538385441583698362035629274986928216380140012213965948513812358447255006246987764006236548522843659390608740833844247593616646397031270012636989900512868134293606921703612907240903522349119949816375866644976672187520927214904313249257267953181207711281330363961296173512243362478831327492277484500300106063043288649113420507403059121864990174173529273673988184739949508572720357037712461764612217208503531408738822041076088739385777942361805131823953623634903765752941687426680472652611649997848179546203701121174678399381560376231920423442893479806734899376299061078003887024449186261530439054383204836223736872513003995468709536781082225399132798915254971118110555255697427582318427925042682284218671635550082306376924236583074770866720500123498024326506012305183758573043366409309311817682596282476428970610074036550478852512284321164279165700461863465884838128871418136653474745862210822446260548706377451003941264915770736398207984515630660102572052094950507732263612032929515327290438057173836280697954357948388320719063557392233897811723914360375533686649676973014860262044723778084073624949086511701693703438027875391262878210881128391215602172929014757721668277084961996674738477837130683498975285058095673936313102931899815594679827452124132006244466222951597877453308971624473082214615336019371470047395052986319855741805204017558276873864518821242323696436504485707733230033089431661415729486058927855805532831615612196538951832127235102780738893989095007384645064487124166103463607210361774438645842544126722813736054733424303287099508905467337836680634264970084740377389171350324349292583231595221458454088204337016277684966086321483627589885203189051087727888473423155136209445925124081778036938792641352995688192396223021987919708055531615360788722893194518560551206545844357807717900918299142456419864406782501283234019122776978839286033507395516319279087782722123088083655513868361232633925392218832381406598784806887484788246453863100583771068696317380618202098085104311515042729199477005526358474034504661867359938398146198156104408624174484168847931886501001032498759099689589283043853317357155888448726836987268861628181151937400743780705694762080346770689270577595447493558822969673283171390318664279634832157530154227733023021557414401026092011192825012960786890378373631846499112326956521304010474796030827229099931343867857814999903495149232846342407487699342186223040258173365861326281797278884809546053040828036149991749580949667720287392940978552484088155050433370568901305696713999562096233238406895708535853347668932357752906880324917642497396609103602729669612840896226203433310892864392828747978902538808219987743296398833484003580330869557552369271667790286873183664442066174953198032786066192786958279216296509256222394407257421885077268777560555861112154099054829666704045594813723956439900482230697943184768050136037794274761840663883258429258292941116716687629321677565735468697962519061006296866326907509933904975634547729438734652343184722871769114962751512161577241361609722694468115348075111205721521118205049324735423791334657691982799783240020760961571889498585816710283127064276444473265850604474524139763852016213599664139960763951292355667298182880935167729541149035259869403074301600912218433185845114906819396609771146009845771285893755512259914803918389398493383218660295093591020004777622493486868192718142364378644070264495242071631302327218674606879179377954677556903249104371969170640804132272003363023716556258158916020150207378374164089998480291485577937533610227214185575252442700228192146520523977121463126947313526145656209106513090267260106130791718174275229975805124100287971395608848840110981690919147150478497802409037355806800846664831609396084940964398952766994256567162233463671915348533056237281838357149544688947265735972951995528599830196727666533139270057149652871861071436344970469232008747312881628800157629227015840212234577883201643785970260875070054060481044248481352026026808109486191909108475996811257179147433566847602393451297091225399556464797665993063760882958793183608807658572646688426598658633754074505913305475255713072202843833592399672247497972104700302240027648156267852773021432656830139522646832988750030220247622963102319821409302729682873742509029896426389644124946651050406576228169513489083373999061468395600810257929143295442203786560615475398131256107433650090374881132175372967766607822660480149918924951317031733262917927329068342201767410114293455457184674142738359930979997190134630986536942522840801314717814482786118038723836857292940538199531611565165832624398680214476406264816143780176134509343530587173523249185772582957919413399027299097889159617314351805093717878974657132589787073148404148242914247448434203330379987378349062200616894296900738178207383439082975070618709619630022820001344623073189071587722197607344997683348214323768803502736085615029022161565802115312071050070820634122907901145082821392129038230215243253896519461210395637590050153695675223280186151677413400312969137148910303311501748904417752419444594322559646448625113456586507611469519129174357109722562974307562749320646166424824054414140887310436666582148501631689844508115102379224292067436756757718057000653872100129138687579738448485946149212500643030570520203671431262666178869279522222885584768719264644536546719735587529549943465475398385806284358715765436742139712420423990248454157569459141981267180396633004551282222127984588728144556887717602686222800661642651640816623218402568430408779916490419647099051300707354527269679079322776448814903174394522405628665763356232890441213956408466314670467312852031724685130134486290939632151304642572761877637763559068843303350191841881812575880369843329358056879059613883084519237330661109928923007885663200683648804877256050463503430799843478240734451745217765925543966032701761479207371417243144140454399083833158409065996060203932605968470414472190739695925864226898415677044964345090414510098432859380085674543397219355730595128018091582746819246355053730474538292491546302881354085088458293861096867044121917776269706649851514352949361723218576049651622795925407110699101810262974737580935656648396646591110907741331981403275151089035386188066580273955759549863534053099858201990620796592335973877463143693435332544927084749841425515291122783039954150457553973269282339818327894762883507543689582181188484473869199616824851507912525013341950096468305192554626421740535795929427098923805724610448357792382898587276455540547887798252655427553277743594112781473144823925079421002455375859853015153827493134349506092466904563309404218240789569172454553018303351011895472290547520633277503049769604204495087207295325322186441857762998326570966142884465261854406141966235782656341438951650832265205101858521089160915720898074944507199749026681807625156569038954123126265363795666586584715784427753849423805481828804722914974135954198261488743484688307135069785635985773294465337849356080987783200849280180573084895966390924098765830345891183489750481072719497645590948248219465682528552289605818450962476511084069358606179331542057955263190386969320704314859204032573715030338815501417970583622139268802168174909108555337377420961540922253051084709771515489875622118068084054171538635203522128058763997024868688365767649135688897391517548481583947862474175450656033405129976355512193630503711772517434723260606397867790678443074486548500318256063039676816619643455382733280840137343046563326505996494661539577495425644933047355110384026598106396266410720987908598051408222617934094556175958098487066868581111451083002905534916445027974558921089447223895840792243030879009461645565491594059184914645984519070585569898121259116640995580528232819672861557702570552361767241117340390197706089567750110885877954245853372022813654391946452319780444650220683802924849923960807140296765249795468038790721624982958609475877195958366765847826491646556146351106339061171979532692541724095044638881469811929464560590779330545594562755719599487321124149374389621371690382883109281686034078619679882394012026504556233063536384229561579443656215950530850582456402063140504977598989628669548179716170855849270421905446423490726564043325314892936155489317344043595460601671862505491574699242730634434794834680574432480910654937780072787081485887072620433006493335200881418160201487401626655068572078240946812609874393209309252007157268616793143277475864967351315759039261574329374708352126938280798752406868788882932738641919997601343875292217488164844128462487639495821739989563002454406317021639975492209844256431776335543742002918229788958302699097684993377870051047413252936929063824447820440703997631527722543341591831553096088362253900844515718363837170065202104655966873691311128201725565343471778662958642890825908304696157681752423618467403772133897166275336018091715598981373856021431475885182332532012739708144308422694290885189803406389813730561163681303989890462643024169913528762083428259578738545462840863615867460405226076376252592081425285468007433109848771463298607820179066329445333406663630633980874053005780845951460975524058831326434165816666444747580729477883845062278350241011823415969142268031913067697250678992592482828611167744966581579552897072988270013868558070002887150840763752026984010827068522821775876685308051563524710421403648167969449960072545485504855881816100148197154861024461583608666009696454903891409409763531436540190487954327055289920593015418496128117155637611036151474966594468235151440304994205584350721500521238993624865286986970592016933265992641967588998727424571558183459247514155846188730117772394064609149025785993732547415725884585680808999415588398504863242009471261329692721714080979742802235108573036729599569669141120133245867003288843446209276023193013824249850501730915245773095560612793361566714914076089139085077035569035077375848387647045118119324089973858769066447191135911951143521474201833259453239672418925489246062393890592150289139636481831034948950116557540495672875922897033870596110669556137429656377551769958016374454344952280949089667595394505480793596777527892235734107237049109660610184849448365449343695026703689566860446042230972154162359829900569349378068877940465981186643207938119461692987211451673704819642074919135797587421128995215122810828994619753575865150928532363782564580365654983977648357440631278037682304573891016655319767589651032960201180224300399416808890050990494509304411996048647198399714161135752330946298853289889794093428325667851074218594045069768123668344024361342353755392584467937302379500888935802629176718698624169862415002711665111073744251764153857675812828090987114980213142818288181067376699073952455945508556444086179567783438172640814386094800644943756506837741921909337132543176293376531803357096197011650360435469907774681015113350494414382386468191992698154650135290721501399722679177674022631703770474539562884299725163218596455194665232280606361904055432161529532511262050262065253825853182738532150441027868357529852591590265668024754064429782900102007025532904704874037058999980750327641236829402211538840714472984744603292037786106216822401428798245748958367915046025144028943671179472488787892027020730351021779286449201657123747788495009162936775812941941653417104874906697344416447097882086696803650364436641223721039387012118008906088973059246824687510760978741653759611231943786605338772231282143141062452869722465210275542097834835770121876655865551790854794831691460494006021642161247765708805897132607063938128210375403046956710765106239247015588155373571398965738473692626134907550553615794708057962825659061833989922100156547656327253354249578205873417035519084234604712670076714778745240127352838577249448368442797119694828994842343322038025765410171054457265341334665534162665344401482918250452583589667841236620857731588517255295126276096950805772907480380553144551320525490104604288621028759442219703222419689435152079851699147582828262054918647273449024755801230523068364990466433745587414401978454251390304944429846772625794921024416779915374281904479255166113655742531816877176391147260740683547764177698949639240352076599038978025587573745769917042578398401152602586839482433285883931827655389188840383404839961393302885844510110526174703621315217703161639118735573719343149543370951481833450791787173226793565279487283791890426488527174462102817874909602759332531585382579862735955839995251833531537859717545324980961346104420145407977380005228075245717805689676967943860299379657231025080036697069108660230555762973250111235206341160287992342429254234705433422820604326857287924497471720431485261644010865630812603250325323301763924799096217543308860738607689415399371906384331295844633139999856633411071083244667781475385354638713481824347041999916853391312544177379031291949285649129781990634650755731954801313107278170145902275525734027296298245399539462160228621956401105270692512510264258158907065633508271058448129056042639265833031560781492370536464430904911521611801959593528528610738684708164615933073460088324342669014005238852068800266488738732697888129357970357090061546104679495778248474816193122575238155507616400929599613268842758844774718560501883124596879024653250442934469303502572969614887492666206830158997517167148348071687219560173269434816633992124044627732496005870799946455667664141336126165745244410169169761894994462394373256246986348610072827293712115039885403394096807253588696652876109857198762597588127065447628740319098629892332406026592935078294718028275018871276080664431442845578267211758656960621870823633792007158053192856386881490060923598740872807825629762935232191944233563643645424432106254350107122614323682914332458879226694977405363643533204981708542130599356006207402232701921831158676048065713467343827495706136729051815493619410915514285327858425935394665611694757422777256302920357287203190543752497640347894159330829278948272634915531629708786964842845770702689832232175347119560110732037432569848340956205513917331227665001819785547233652531381184749506498625739021082197740448475747622639089316612643160899027514311882168727197293712135841747892924994452419047015326202309279122807220328650872545292117262788894877337610541006884069441224612174924473486798846571120403894461852632386706603506336182027433668227761261230935523962268489254620909449677037926175367566983505453642505252386647139755809838021424039417245357282228385023081624250359992339019636328197299905967278600203888367156586151392539540715522326049262147117618623708791970787443089512149737847945952028613005067598109999688473981013491455563703866668810987879074384310698948914814703916554959147065694187962750046965003046203396593976916633483624242567002810402884146939020417644495732249715186062495513458150372556722159095775525667928248124076278102247567691717822011300584113238995692713587844410734481505548191813376518475079768041297155572706917224971151464234965385608567629916113212509228913694714068624852174844408111381656408399543394759694948692734989252705889375330955336246124474534263950488832864615683468458048746907491017709175763581520131522786146776730557002435955592059498685746956046832009471760438569452961771248452617032639354662606668057858982884734635260676889236367191753549023692883784381908489209964148025902521467237676865115278690515652485767399909331150997736574289663646746459015677373326898271246886970506829167644289511637040225834788768355559012219690793624272277608264180202252506787522110541659199574492206856662170030049648141063271135354003750782390699015529203566014852134555830574472956726336781150500484306451922178559688635600880577907576285294527942685752088743168796585726059417774413038543744076553965123867581809463935589653297924887437551223153905835306882360872810355382262555083684407460403228536223572088304948486805681772478665042202318085023222015193635112713628948546085086512303464774204970828065979538479520239939843945626328930882832389378947864039069653899759421987532184124381996003566421185043078169117215000522754501415940263152472256767008727028269812015806597955594096118559621349506494075288322906941610333565948175808631191193577686952733604196262608471008538496667094751705035439404505389432538450285731265557133098040218690565831799854034598628163060295186706546228121009431545952590302957322338348047430984383585322046383434211411823182129546596966228837941486954208585108851321767818310868324530820094771153722667038015215571776504972940989622085216535253536762606186199963439518520815801158203778572426062253937660886113052059607424211746062918896166774191840202355093053582575484960689286452838629028467644625111178306589611536939550439493444863859085271504862470681845191169280009394308354786647617967643251241883599611161441754456175815660520337903453970768193251904769430078367757345600023849795615701730532468727013436863703198822547348699630303756581080038485389200913162283035192219368930553230229873701628819230271416672769754297265515995240786777505610905257921086220102363366948467324513404370093677769306228727516227052103810139274713843749059120945380479258813535202382176792296245351916241285814363933866100016788529535991963448901783955301398593667070419147247705424904583174257001000088809393167519607850878598681866702401584598651520932799469712731971361026380138053472289847848560565296824140947951201911275677465719699257496181817250589879933970183468056394201791718587956129597175130431233068537427471533226990693367581745106701186899843987194532873733618739598004802664375308691437863844825546292605370857232489975871692779695199286610152937303762723668753026985684786908843780877995789750375068770917588792404823915400500923746546794068498037037123989444206380111550715557173688406184469300514506414863314477141654991731785801693868737479702652299161979873700587097653854722464717129099605601397901329941934224239936411225132024084401477548672863234875632437956764721321258862590029379449746430009633030701345811218517749940783816700605105192416341027258545089657552233685726773727297034175241110592633361546905825614449347673617903987201606028697674262917760422868447918327319623348297727194845533839158066324517241944360072872169418929555901562222711720085360977787078255175107542873192471069657165211601978171162942638736226541733486335322032507476862949233531260028797295578471698794430360475592164150267743947937443437454773082732153421904764886400104734937647119005839340450427350516956167129431289968684742704021527413053332013353539935710445246899022253760253115077352452225007698113741167148813444965677999728973237279924255550243364292138763828121195385974452671291436267441972905718111195148242695275303760023124855608456622961896309082066196476143197442522148914471075234208794014591643031724973262702380206363592184619958911636702135129005685414619169364034767802568960123014678060827139292270220670423572223526083379550900925919775382410611228234030479522311952277973439898110400864105922601643366498533630476350815437409103690770613809454167180610680302366060818577967282392651827001398902988739154922289674275780125000196778582531187320393901399042006133850818661214587761604416397901577923812880938919558590590889766070098756199608231859261515608613172459027025131579049327287232237203068284847014832283288078529720898763875880277370081517779821289545600047869199422210156766713610860612757661558992468919482133740576949910716520820588979204699345065453440394433826890301101577852789109226318264792478329617787827681780573469060056367914501876552978936940779640926186751208696373795527275023649368962297335294748390951884337186772868076472486891608665269821104652681695809448160822042098461597022804795722459739795933112710052100153858335350321471636541288884877041819299959359225137436490572283336061192232009367182696032687057190901757165271688912907708663864786069558627807748977795883816150304191742134828348652107064483362852772746388537658600007926774997573849578438075693406246820070014377158992115951117734833002866711089291177344478029574050074645411110431528163879576196975115064990504105507285337988965802528989072988005809829265580418382689562626400878598297979400246988360762689414959133436390714011830170173610252769902988787053556172490965984516143662661360770087032992967156817713004384057517192074144536184420225413065825398504069891511470126023356701381758715141351885396883017089202788610033575402526785091106306508555381923726191597820170142696440982321346310298180632514970269359990089591776047414718574510329078873785048051864074665769574563704909380999752150129411854585375636007560912199399244409068335507749784536424562191001278389579611442545902645347922670530811112370263351700179947314986845148012369891363156203271838118282443640130137811176003875566706157655971325777878257939896330651213445753278392128127087214646452688940849291323613359989390424577327976448755040213284860655633806774119916497145270755012006487293416012532414158505598946325213557622401030317623206755279768437028587342411933825829460270935869521152819267024462055773322905455897610803894328484278811850994028931100905881589300491200602260066075600607800743260590307743074274448905783159215711358693644630685058297406337051062351760885255376074999018925937651152116091957312151563170084156312247969252041136240274866444942604872118266856130409221464283332073490202439938827025184979601218719478240451232773766894539757998649711895951956814332629882544634236660802238260361447544522785641554347694519617208244568961311755264388163839316130134340463012254844244624298691232100433100994356224236256400381910482595375777483175684533734078496310688652047719803349810160702894998627764844588844910114871342088072214018237705484770277098611656033939854671789624797615746310030223193736878009256004723463765355771365288453049475070957252913551273332925458123029491414861247896533426115761953216831899429407279178710653527315874737233147805289872517418812295299692256836103752214480985721646198089795132260278766573138867096766488809981398895253630607144002995730753345050060629076123300799123737458424830415765563652015891972744450880222704967902839019117721746797761308333671958089720781474511438852952798683573144189583483185980276513664728627428327792448777649652244357783722090361245700860034982015422548004961449708324251116565781531595279994148514150888396182972959663824423632155143392276049425664123108618780042710708617769544956164963081227971985279874123998041392422032099680606893629814379579409325950272230576702678619456568342921765307513423226822124333656015422244002037719830705887533289176678683472198223519551685352298518600143888578366240604687793065528939966570338220188216570210381327367870765162600632241181961366621080646269464183166610859772351630960287873711611320897892531015050227555601957213685948243423258371029656644148498441440133572569434824384942054154670973339213873117381163886901554336347882794825248725152454866556642132233004595646714196619027553703034258349921500933072156120476027324074990374166981076155596113020609405790345504214073087029974574346534078382019063378549219306396886171991372136103914694847122289819930307570746824608354298430428607202932318409336703283924006299734617331993217684400860082172840075822699736639263400724933367657644422363701721278360882418689155652250047983684556450021547815347243829705551346911253499987459675384685254840297506571675622673797143671827951273681562385057944506719541557727279145954839499432034674485478039839423308710551937165291929741047408059781716237393012092438894731922097263585794031504429613912016525428356439566078757145806351282778841486458214057610745006963575989319121686371141418662583134500551049378770429923934182785975799447191115842213335921018974369330085670820223059748565927236917716757618144502995386662285318876109623904197648260350654404773803797563657350635364009407750797944036324005332881376299766827701312643110039382815704991537991187487278299228285085696156936317954008861881130388855064561979801920157956323407220279974781250185096782478561610031767033790907275740428279860660965084096000611196056261071534532034539518110286600328002864876889642169605468796891518822234126425296696674708493390751761802039327152166110949145480027114513211036572816451774840941436796521603742084472540061773655271747301784986195729760807207447777822779834184760169016243831751224726007411924170568926835616725239066186335934128222746793839165549568395000404287404284273540795295094592192540272070678095167459040449034635428717119846939913623409812386697499404924569097957954837007533237222585190315399355901996576358296049261518110892422626998891100019480397445009651007090204509141786703030899679010300619884572378066668384150549944435207321069833754195799167145283520160669371243617936794980689776045164966207111036810084143104318763347987531046839599911402914496711690119873996514963489814798231076501034177424754120234822464176530868736512441274547768069614824504753618820637694711236303567838571386126756570411015904947824557808867306087014451121968164572416193936028174218244282534583061449898106569018768230300408940896732395505663778629193549261619448162706953181304387443974486250078762036238750199094091059640449005322165125664827436236284500743216024925989370181762586357618854924688295934423928750588124155834843110883817393401023909582980624415329503749588748216425225881575508508033977720233113080267913659995845137785570083461611258700855333084051890366342388581133523157413247033578705837300733131248365796607751906251829262853608036586164656523639126022931208311041145474021784375365974003145515787573870738219126172577133114872555609915618782336081478826298315358406136524454911837068431996694017035823516984152931299216799702095965152470380356271937153412722173359544981430750899636127135827405528578390217057362635949246914708645131726395033967455615775288165726998430062147325345359851390515622843515722962659102831600297777034279772632610532854720603200259425620891820341980179629273496316028118583436382834666874736827512996197137905118967725857966737180742946583335055925792397997751901007085959293405913310498368083702194012106299407836675722275671449968298665202631936832733991435455478856218458691999159417434694286911008797318108361126922029674399867336146634263875726940243620484949470320235955708802111223662465053984650023879636074495059929727075683214923979756617390698730893989516810866547004058962950885994282716511805888819999408712928932608264302209977021748777304913040822263674889795053195172956694901878960227598464058963885873114919378241805519072369138436539209742225579966409950938461101846034069339371320455603119221693038416770035268130001351144983401198943678743294725079104231022364649132998944752278419576882765074794876194317502930578567098897478165603665940061655867440699826508608709976138481637168182936634602404965968157247677023446307859766149596572811080479511606902984374508712857446855098921349405156600219884581936545647609603307595708424527001223954019079357203958701169844679136164978207633482495035767827791471940097945327481548969157389127193655623598214506917588378178269350892917656576245569065253238899668161810120188841440815382775163185957333755990558807715562111911427435977431653572362633764106100121713798462934157087988095554517088146163391929158220971503877287164928628954710422717962556784197188183436519957514838486612141726227479558008943200366259147552585809820397552435902848290873063885341973768070358672947861398736142955290951925088265925543913750476639973555657580540874295515244632215261892225150454954327462445193811972037300279814649980980065098643686936857966414300234419591085374679457096453661054870425369229056967188589226369968471679283885381635340831189148028817582980129918078082234755254724269143497497633043073715116520585577285508159919024858258481587515236396185800174091418125885238624386426675862288692671954284125710539087228572637332140577775643922909544150403528687017874026517944701071688260688394898592204614330179670191329189098228349918074453961226013789963245827002450099689888310755403410267548746054081620345265326089663930525787510077257858944778276908420136317402092295173440646777512649455919256741846631900261177913990589791977146912355447403827920977927228653041243322103884650682352984228349091303296023242555699695512944691585831292241951026931887891801397499007909704879561676151794758328328827222536397002145187030211639409491100198936918056447114930731714021781922430493504401680683558876500380445272568409150043739887362566708354987207630914302620814054697246697176177428360817909029122264256016805377952540475391336937350984704107902134872878938219831593656991759269137603317160416092503974351006607408265397450651634133415318026716412527670315512715987404451036646213947967324543393069328839173044335208053708878488331427760720836627241317128113652298801308868844468454670607616377627600583956946625439893968762927326375460799364353039012135040144534157762116290923384158977810940764710223502735203294883487450148789198914741792596879450035864032656394089762716621339115956249307084413025988569440654747887564418469828113443746670582519888080077082237812253544785128258550272779914609630411705092294118094073680396455809095679889256624939558809979443042172584310477889053998868447175744548056929220756534214821643705112780781309108763788200430374835289545956624041369887962144061811375396792290933564326299382925187620166164080437628989294245515405216167303455701666809739815525443132178239428613031524612472068585571561296866475662896310412353297748002203470351728889262539752742975131087444264305928570296643364019976978441091590262367801991174344333146310164421807498426830909031633856727891519263309995607264974779659561570253303352685092022433208420954747945058449625410851061093766010585047913765577234040964635301746797711401448753424025784312535733318280843148227701691943751738317694799082065138491463308973888074710793220079023414055874209157864904378949047121130726282392038070767513769608530783889991496656579239360530091531709327303225016899618248098704033171233297178175338520200012505932187812406278042320971068721096264534359011160671020856239104991012401721300479262766770259740512647050763556558561779373957575415104791140040998815666215345415866442563603055458060965344445290606966611280106414871964331586277173348135952656281496279760585595630201681830574687592817345535707729099650079806307465925918618576758771189602034321156567197295294660708325877633379500722149879408516098001964866194567060097435428589582263802442718520053733512063470786513837772773190085245676501517145649141866247629923537119934651095089540450024964660256213262659491840688542344562939347500182838030645140389171047176788225053041571893685732735115178234523073278872966295459287262207859983344727182154771686060691838135251186042108715968680232176505423015021160945254406592867749899334238333739677784245191756471165974730333316760169463622567710740785246143696223316284574636121010883842068894504598954359117460268611506582476497432636601822633562315385912634683317888066800021754123155022704238830631572040301884861464333495255354439534906535991783880806238510053468554277373160053344046417576316906232288283695691073798345877044278636386988441398550228480655472750706732409109326197361857672948760384984471018418220599018541654385255428257250250058510184462267102991328999445613202808152627609374144250387782448712388041403708224895219576959866519529428097650349630906569354778687710590831426409032955034075753042134630573149022985846966118632448347993421469888177450667796805253212897466314260433780497637988580287358003091798677064672967686926089145751319024745856002083318512857410111597690102054686444012795619500043080699597813977435424501134063771162434192435530330777070382247001068458278160882130434515997643162254645642111438092713222386553360347034966532539559283359773750898069417491416122876133172917584556907376401049364337289032717951835064126245016862650347763746540633822757410233917527588794090259342053125658290854671405276382261973230784963066269034916446952450764030579947616936840532754567841902439919903117211231346169380843564994720423267551740348603667195625292413910193475086934369975764462427233117884110909331933028206691860088017637747040094245520245687359429444499100116569318408274806537665341962095141207941833029555240854884493463079307933391918922008099566449038027184650917649930165039072737466371281327697360582932744900394799125671560186429655950514794093451712343701901716064201699516712596854967603816089911229817020090800332249372402807227304385913619001938472174419490638817192200151663044467999657846335740058374053119257514764246102050016595275219100110232177878067199152792547965466299368704366584986395241983615385909984733621139764832970216882392245805749161729517753743780209938819552991370125905543969297545733605319561780282104194874996996696617205593909702411454944068633053759326924864261111858211547873732098049234167351327225647600883334262263419229634684844314281443795051836096105863391656163088794205848867291395233849902322318623748242121894269545168961946321273090973808515852921498113100471939123048599696795136663099857369937172922171674261654331563565493684162861020992656749512853422700859172576997403297866468990422030981369948828212321220303774691677281909603286105725164742989411009094200274571302113460692252767871405461035128115659168854469848583841411270552889716476622058620079636065329863609275714359407587859032502900501996605498392441879906217675861176115908526892989785500170915485536570538511058682841480533862055328543248383915740456287135891939672779049140876354923719689054608063410899842602479587206950267306080603815338775562929260853906353197229606088201431453109559906940908172106184014515523552873806954431942328538266983128630332527992244081983887860098771525020194196986026087121798820943099396929063514835231309502282085594021278336522460664386450852337412709961852501094004589104037623611745479527952756784610697238258473902828008459045100942770455295345899085206719021055252658659495206353878405883715417610866771548417328665367414105122159071964775391040160478289342145576740992377873422893805213577864582832307898077690790473571227411648002541552806738903197898593547529013603713544302195763455764607463031561285040407037054915359413034582106802325855214551116009226312069199625496569298150926076961891308650197523137286925515459113778625032209576064222728950257995895425029410143816797261393361912408985262747937797831472144801004536169414014300597350897510474065390182265775794042687793972995465801820877799931502512931518069526000969619388526493955965781249115589888326221106531351363376753010139311134894241318263058396136483662231051206313728003314926234869606301374697840440035440739298435658898055668453654030909912276908167202608107490470836235614203579424140160328633054886979867447869914132027172268592761135067877646258175270425808808744385694963845862344918116837054870066729674119615839567494359225874019864112784507179354288280878626915935902992351759180467581883104908729778359023109726232997141737163971073400171258132854308211657791709382697468312695152944689973179532207123928743869062665141333301634070970715038882030948351538416183224052698136735690567754983475298342089085867724136369913459200750855241124610922909325007889093962897697282020936682475911806059187217011906380575542308458111586610390776062148136438913135291415840704008772162623747024313044649216037784682875010713081538345971878604376973444717020946630740900147687669363492122976452034555493803574280141416766926184964016658132932313671999174790307706528681802875125797144763447078885128332371349721714606782770468999909295310628160687349003762014873249315451013897596491152200432172828521171666093727897925498230874073754817479402830783360479707887191540864849421806383279466141414977733402711869573229998750999024251326380492874546989918594879128344370603092638388846368222169412132553949340556013120729494630466969613273385671322890022245550940337695814435733111853597793860995642407871855880021606724506461882239660127350063807489203451977560351760770269782747905264866859925035962844037969870362979796055902754402313994602287792859287168576136477964823140251735828342396140163950768421061496845716132914283205066519516108400886931656984420350419151768015307248401449048069689829272450462085687152498887989131546660307925246586450586837985636175723838118236990195192804131799194008251627262564131281466895049787971371578562818551679445969968991519798212364902148508342429207701726212352177299919118232607479959902196385796216900116024297885480541838170586445915469074747059341447027068692932352114805671713441865231469400361191821652092799430010657340896643859819952231919222204962857616515167274344951721850166265182107510581434510065570427169139221479588219591604972926465605223311081531346663069139568293062848394895627213165897534336601236945257122514773961798181047390585243140192102315581097786643458265059680672204493113824570063815446910078905891064339326334328980195515715340461232946394812080158859453525909385972061904805418384343563592986961730594501478443801034742945294740811771015686277018148854058400787268879300344266179697167556922261810983508909063664695174851001148759866287068614590921670362118876791851915573736696486971700579258598557172277805644495215710198032961149752520435175311578326473797142117425451664268346439127471946598702145421704428040460805101374212827947740320244350213808369960901601600672059987251193666375329487197824012706078708079249003027298054341418893927254529729524528281246973864334258729146339305641626219884417545081922695469464782756223840839482510249259722012319168519557435997961567050224375584142668019621043018039710295396390567169022128134260064872822983026193091958338697184964050935569255464438966279959184917049370781810500504275328934257878818220640144901855593541231479652570014036116723014349152185903382178806938435188614626082741900301382641641329531644059325502374291477415785361523548443137593007144987157859959671924530041247690960752660671420261197597532252176203674979316216194564252514860844983647716353277649869222828623800391539160415714430482313955576039619637173043054046608984029057231445059411281138261426703439816469011148368407208551386752729798272778068022096713307071173390130258369983384529542588342531104336978711943684748363700172964687314666694363875320668934325949102451679101645638245240164906759842170712261090412947659641501612355894729833441871447137512257643266397456803750418292073003632341830159311856923514171423011871769725528034059107093599949497973887040552573245725897846719847106066326218015800371186260393635536532661695610887535362955519116964281991659234765790774712496709299383139455643732715014073444829576441610405880942662941817799163516378890093895893309109489395314256077500324212798302372646974972699898822572433366134949050969340164237167104430818672016996664313189516444129981694741675945831620855634066437703212667349942974128231379808438166248693611806460292353270322840960058767788219680185516267292080713768820861533457413865777359419107194603450814104211476740626923719166075527234580862829736682005877865643536060975960218919857996327292190063093415393245548221988014474866695355408454446051022862038454842912302234022247182989344315325275562738788333790262569436290902377357488132414316486041933706676807722915469853267568250217238094171617837255723329757450703425806685304132423207194946970393704521451794733942911733287758258702540418267803656867905333011715240452636872653316481819443466272916526915612497659000644842314846448808366959807395066918653522314872255447731468046888841683941397221053902294518156011812694411900631914854433572505866288144590289264108170575733685105263218671731328834843746660442722674699333149633276671128100840985806196100521539863304813401704663261550653159239307825605595034220950283352382338765736470208405904814145532618799960526084753280400868915285520133039476499858238814358678370472290065968740002958423816082993958181598417515366426699190060595962331176807270266908494292317649640833196107380198714218236121942529753194143402003217680335566093207279766550322157420810477945623560226644333422383550198368522622211460857651821185755536480935045582924501579221310647951798193123890834468019190899874841976841126935332259003875523903176569848678173495879551709554777060440934339484015967663278308564087673243057126780824136668278568474751854265911205593462803161779927867137042443275983565794800642045806036904387067777953884208429640435774346582093696649023931508273311096464952580974722559901139438630203738605985859507834634317650561977867648939461360262938469991944631246043574548670004952641214228366003517500145431957711853351241810644983044333255724844568928843825398812788992072931517312167188413277918720208227659535150563657546260067894480285185621149979573005453819657007015032819945434606340676230388112106745605505972807928987356054669097986298830410613645121711634987244030357953674298098514389216011590506422067369413439267845705139617535581989260754403395130477583859175972530907137933172997322983253056497415530796641137759541608277939407776154471366012217025890630347784360881421093100945874454900167582104443453252212736982189659917679227822472092180844717711175046020289509711448184011629956837608570990588821383777205416595207960639216326224130290638359977832707053637444398241420810615881891162907976077744469779726762499181248621228926838728932397039306762158277969362783841649506117495918249404894882205345995478196965520866961671017389867562945245629313266162318792604705925470309870480199105923124499227633596673159290826894182361588670101642477723902180641519563194147006989514408831155945668286210946880468049132025356175498453213472435670190291119067297294718020858678439897940643289443935079252136784606864865946196652722638807105741917567108522624981630683139299149526496848420400615876625915375146388851499430772895082225253008562610997538579013764644155764126089879163040416524749430904114775376100315639734234716910249105762942275369574424420756326279651740942467344522902593202689787068588581836908217043223725854060756185715804471945043090967702223290759210919431627486010498327718112536643834376172141240784293622445535702318142902446926525983301905572737767628005734436408958597785594554239731607589235312224697910870952498236245839902062354530978415004714918878745976662085427094909673689086925798040057966536866138596470205660420831112777165430848027059738643043467220623162492632351775394430007469206232154627272433312048127641523363378786330277167812582717123921498551995766459617661513877490547345503083135576677769896022407591579352290301077247852201599734523041537069811155916550380248434860653760780001084685529718068304084122296414759248779909951875400023521962859412392177559004207897142446986426414940042249239919241022677493374882633925057061703888731277171871730495208687186646416431390438882011178104689770360715396902347875322326254512874939240354917744852147234666853097534309377193347291814566929461815660514209343845278986104122284917692599495702664002040728645463070302809496595017473313109528645286839651682164060257914243182627650446836590616450895901478686275999492529975836172043122545409115129958723581249606513961040784016114636102156291507777472546769067206654043180962280756010715738718919528012118977826945073122121530607921701520484769871394783790488716876083608526386160197407965319529243065875348385220084997585874020753753909440466519619614473176267248922122356038704522444366928457921273196696447689410616617117557828208482945143722051079903343839328556903593402034165909879204329211846142492281615228864848064858503346867428848916685775127682101082167651694966430912269158824388286341850313974635351612986162600830805685328871360407208082649157635833779881888355126926779750972444898837633738034258381078424941771370865052286156515093137882314159283975811189342814608819711614189069898050117211199390005651990982924146911426224898864897327234753733678599810636408906891688819076948416595545393278179310710805113501424910657957329193636377084753713237816992367657254338497056750995710101349179275577876412098581279929594962754816637718046684415354385692241613236262947529181128192068049341240314631179065436694070253433917672453727345082075022975081715404093148657337325484993468462902218516462596835734604925326488742697941897354935871695164775336151196719934489856540226573218605670601167979296036450496983759100728502289195894181859952053850891328464667783328593328359202063687580580196057203011352136178020324324146881986361282375866772009730045922839749008707252350267499289698226226766592961226478044052739770474045067738503235368662922408218906795402700560164866239708627201482027787501269745897546517070159352179724329252909623801015836367290989837692800608009823291262112226255756745877475673965232038702552032931453364472542911397225135706183988079776840847869204316899684467913031188503073143262506203462137021837168424733141439935052879797280089262644377903328593892765632590814354035981917522111559466577512301718393637215116617976367459553644680093155496468530633006948584605084421970081276270663776095776957446112429265818597251734785487590513554196596422798970532624966004886910171700080755251377889851799175499490578342604035660738244664818584588324006060586857923675969111911769197095715109431824796453193634202135342796561799757286390989733123786443167459409492775331153312728668054443849126660571753475487356453916697469979742538212543246427120101383562343881946899017186857109979759479403022883318743568441427469552645111820341670919799115503234091682089575149234641066442102059767633384268047354187469401061851038730790623150278277679481341170521544291292539829974567813931731237897802679915034843794544132062727090708810569632641888761363921401278641164769745021452621882351350110822628761867398264685187642353326521684088911747651552503447902325887922196677352587215757772486603966171911284551996180109164328496425776370759744661125693321163028560673932054892691705169418249252980575523000219900761024021595107763757232470482851136447991908783973782440134793020960371276223896961394307967085817389723909011838547869998364015248591458721522869444116148464850697683557439464400254126388461307990984784784407488637677209477847376199951251143477959459269419925101101077410517027793972241164690246827617354545796690706547651678164822140480717391121924557360215590956822794789466802919803355307830425131234798329478076510040129468223481401707223585646828893367997857541026770287513074288812783915915039045584376421390159606490653851158880920744153394070926531604387948994757460291102127155768940265466882226310090958967580747339204172343011680757920508360095009833101393036695522907347171294740215916328101697715742551591723483095021334294352297996884934682644346785728765522121993683151850529290113566665842206189001244975643656446161545068524661781375627727943977845540984879118160655413469534350858748794168994629077316544873250612876818853096385343235145871039153838633050212663792372188279554066919129991464582243009864554611153259264592249430534790175479722744627899911317087293310169209403835632076675927833351340019071089053682131645973562499681711483656549489343011998824985560995518911375490206898136107547902252902111379125225499356276248017594895286426289494947544577018194448385850414232849786693819220667999369096509417022422437160653024818798822658017062697607380021743033851955307026802073313000338680726788977798417111127299101193009290971563775497050107708598383955352478284713946851678626909008604367638574775981903132425120558116186012697903405911456703268852430144430073121690465838047447619243635875833320128520017416351116976824409232707215404813787346067017136322724814999267820511507578535999067781056766312256397648715551589103705361991433497883860251125040715341535892852286294367387154398933765516499499059100447279539768836349523238205164297888758924559179364277235221899874487104712555096290698997114089854308137503249363842786002906581536614841157648772165433598345569426295054600539548318768259196573460222042840987872590646890429224472149839191836913734839222657626426714067736809652740426565569421976912218432693453067396288238158402673179835959914428352646251713986452725323428389861694035556420920109920638967720685812867957708803538613626793849700050969102085651536219630840963944435929858351830185281485002579589719209788580512274810194504784375733018272310996638267910107656637082786585924422300604182864802477072052107983922843491388015522602745868452379081966095594414656170865147747691004685747642216794878428568176871793404442175327245742807393253586503814280022560070963441576843574237616477367650576610657463066918412371097658415165446137131995367174742681805134820997661264625503948645775335422418081054167689939274673973019635666433585688231793337804544107046339975236578099776355578758114316301618776958351290475409205003858511516556012078293582723103895154352833182907531439360212074746463649163970884204559311221636474392557942057539749712904788532994215019171474674693656215791871902190261000590402627109036061352747008480030854795014326929443875379303324986930551651779693802155717319347320090631658299015280283103102766002202610434708757443689605891635650089192730936568869750916009562287071745002000381767980578615690346191160818110742379199179732906241446032474645824054459218789593277971236936802127634688336305010331654806585865997312130486059651469506161482355916143869802253301164484346168737253460589880608858577629743535512112141101738547493321859895990758611110310533372162666948456727022571228907238231456375141102632376877218164639903507736713218907103201258596815401639042304191598919366932450856512316491008031977331776829073949333175972190361663026431379665688154743582882221347345809130658766946002630376753242591997765846037264083776681650232685373199567319358580694396139996127690032506013782269220562668461354596353905776443692923377658156822808982817946157869952860395307099608724238544608763722603758019296606441012441038973788108442427915848846360812603109555472303188292970961945010130161193444331416788278176953566808566250434614627806180437463132484283784657920495025913444182744058753988354372487252007051608630473944627501128735092960983788180730541485029149878122881535151408103518492597185733555589172712536083472892133110007272869009796735294763094980154702996130977887087290176926490909473747920203397837345435412613417863172630847717029822770799131877451750824607734389363686401437980296799641843035814165915569641505414791290754092797891782823613603573139112814936545454378391493070771499414930756301109610405466073845963401447418628836192248976908887128013269844830195854087531640307785341101760583766533859097160642131459812205506190110439221260301229883903145777231947288582165397609368715637816149252875995935164817830784250924873186538997288622546929974740612697723606305215556077127709998948121419078319690868620847021051099111210213946589303791812366532251245497834777465154572000844561704445469911333549080607551367945547021007504278506025157987902343026485112099776547552116423306413307973386037659965345421334350768304668114009423586688920543510031378952830313443167068872014026134843013297501892286674444138183908298691135222269530685688699418439646750906598393356902356299821507344986695074380663939283313044894215827433964880721081344030875508741971671490743151510484650065647337294662031531351084969265267169880546647024756571088037010885185439278899255668179597685544427269443564710473427017939360763271532508871524167349583100937462340648509689165331130113429264006373182337133931203355965973321801644679676546037334391970753280612937357472437861806900069235869791975634591789176178251945452546720798945754193553797355475982211564891890543957060664610487844940592123750026135428968473675202640595061964938387180202527357041400239471107657719866464649658179200799988538681513166890060742408380488534948094557268461866359615381396737168708531785923312809777034112683002991887068746155992080584025637215991153269001684601351344991259380694094967730241269469712912306618869534205121661334852224380009707125828396565037837909871152091127735027241074636846433216152290018048615860339383480851280687568247802771293891804136051072404623431406193759811903946604419601185530098281026305111608928439216366979983074655568339238188091526239420101423500046991569605295375097079876035872950152790308605801983218145165317214053575762941556719525818853384166756632222686762675263097308240001163748747743901377980991625150184544529684614784428684286889030229113462782453127409072755323496836194922877992225198496732928044294843249493089856765667876994782347784990855325858886054358071604220235477123134643759162082319822998377243606579926703697695829554583046977088247824831165334778243017902258902895923607910306396469358415181862084606076113188664735045160866195311608061272582717049723412582877282014112723414831987256121209891711793701625975709189751210851347672682343051375554713455012203967358446424090798942082240332662965027722192240540679721194711550292992429298471791765395205886190964708788406719478357579272733041588439906718080107978893886446884428698593959832351046879940041234462972745168815954635007232310427900088589522125714073561347983374539261185450074448837538545616744115932575895365392972922740724115507650200072834902791406152705556433265874305031229517088597406896614889523018494014304703003937505850768298114137417353600478136672651736607163974889449692404268276737599184799323266791552443468841905573946102552342401686241271283060438891462503621510100509396506690460285041723804408699169701498224760480014147099963438182319109657925105312623853250872635635235984864147801431575110348900409493662284202226372307231352325477760766631950898758848002286843918070027516922353572089520389927794749416857652572959777084451059660444022358180889161085132245427301112940533508825003228057560881205557166104961974822904230279727010881417856534234845260472264812338009021854282089044756226089758349945691631425876270340277346981828329276241536752963096270641579586378394592737792722316697035270733297706984645778356861560788921256809118415543895969898302770792088682731791150955007566085285033686901011048490607220754306457749642700949124706209600528270509764121086246473896492907571248230843444908068126773932183702964221854535802717398245695042534924039313663467617786592261067751343887954289399173169816259067912956026666268806374440222633698308037090252693640311545505702954716593226792530437780378157025858446281645878595965865467692712690801826432481756457116113958488840847977867077599310712437497045845242007024862401693738588160468579751642746991260969470586832784047862879633347650629502542353330793988230053662632324739165491837892315789396965850092198717572114926486032955489043609405831391104371808032346597688002949920545240576704154777316318199270761023475205084647672012988123535532702366980596555955832779555706870692864569855774728487705513933076715654799695238983882661856144050773213655462029815146312694704936319225761827674693570397889349611643605500999058077238742138771801073655859150018585331175257110682584407303175395978076268281891393621516706506382388668338867804584458975617823426639039657212062018079419916341266174295514448725472604119816268991962724129290071806795616830308138559148284222689243463747295728700982399052504359010570313261799431450365247956540490407975917529047941833125413085580411443241980568142685635512245051106608559341251394312627772609527399027931967756365854106868306715137746110291427342599418361504074122617677334118198519662089480613608418176502990051509142226086960775200495769532123944466536987050453085349748949028082357595484861505975565861200729645494557242687809002818623687343090879161420564963205080049841297806079803067218316322780413555930243885377725439326730361781918828656308732312668729747907618744463991867634160049024656759522935346986117453925994746356394222243958756537186024288032252824795988588069438245336907874344573396605982093752156938772352485338082332610740765341288087501917865487023214417669993657973323812807628377674924756289804187531721536194998716730274470922818933788094798917773134026014719004853211427644090154937462927645379567889059921822431198896444480495938630060569593269218908875142851567569278564131660782342189651151490156826175003385315328216529898067823388404429062945514163706321752016867210280634398215245983796261652027081354590390855891580662884663199684853802071586552879144531698313183277703128189863847182977613643486488482157138740639559504457912479617327640427551112573415947772007295423875949738561594564688658955799032180494182089234750643263762058449270629413806645776532823977381290761349480118159865761254655779925438300277433414916976012865953269094894801261584034938697384857451758384923537445637763908527196345783489617509460295774360968669842840626593404214949276823724954710012644842841893345931807513440522576685938986980622561979987208899894043914813296072178454679439444539470575355848053318568497346892332763653471269372496645097670195099552723662100351802053632589299443855860397825753301497684045685442111420177553718774190925434197812965086004734951196793783655597073999567721384978765514558499551514998254424516362354450148806517054703987093725061098118695200012278871667512615244787519386281820318102651541706088014029357606128282704072230971836385125622922371493878398411371665003018898828518848537217253448285746542877038011104332783410010701445207637407193491943744508975181915833981846187947320187628060132934634274366057376230188061241261726364805407908116719896153357670481963260200794628782279338653285135278237280032237765930382187445257831401196576005483769854766007425438172342305039254918102256740289188011709803219064314299998266641647529003651842724596894661043060638335935380061764016478836562343020635601637950725381778989662927670176054198460058807411174504653685699424689969698525539706343143681719499696999283538455865839676424687143925672882351377421332647187481895065828911049192533529439484140417781881179177195299457298428419922323217284524507613678385033490842078102293358254636838174010891056901688471807610771005307394310457967497297968509295186405680288471642985019909954548174687423684485605251520876818209431896209101791556255762167730955506703248340817744078295036375754009549188651364837157171318811249721491164452326239806503841846171607853770463479017803176408128342853017471019439238198299848108040344680511450441353129801260309063855310310370007182113799463949814776762942131779117517348547726693584431235558749697590560686030685820750264640810510426654645540128144325641835678249648275100164658645769334173919276698924422159329140754009845003832880857351136714961776945308286002734000884365192218547497131200509286353818615739911023378768662491813688646951433588420399352219982859413872688213194452404665642674356481825915523006564759847276716303713994128206630927454327804553863692927411915248409535069323395217343125524583334513140945878697031131897653528499692049027839852124729705450701450545009012470578816408241049803709946307983224097864752739407641222958234343178200514438785783478243332107103700851725981657287081758982462512239973276754055868634437777720921138061316919749591000755412585896409292585866410921042134983716510561173335812543538763341181501460265886128913844424867126923355935509390752758445950112421922509586260774349919676417712423159995673452109785602247998910855418632573872405910895587849170971991988737018869908689017668611172339771070016382060441223313782930497119307569326910167361311239560054971105335054652203196024179962859669308941348539993535092087589559412657373254867758734365194127698910353343309691591253840262839565276981419399812663294008763175366104749286124806564963160143073741176228273589477562804118853804032406402446139064448100142323540064355470675293268452036126221039593744955308594924882794919710033897401772711060560544982581925680708549334072497741923460770214911373074461247496935595040323141153120874278426297018455096114547650309926537689734118228123132525487421654387174058346309191059852024905704484075394077310975136445934013151167919962172100508917781810913618260178476172938559502377285360040315007462962877208730827032282342113017219398193124544700604139833681823476053675675243143234432695495997223105254783135445209242897439699911213571234829477834639670095218795494773691860275566707718707434619344499727700947895267360694973445020040934992279439648054085128421465382257971551154510654130194276689486284865363934424699358570207750050550953405590128004291741849102269223309811947463061667816056465019444228889314698484992185266306184276279303452727756292668937315781883677973069225859591672596311850943708313337592076753670152971112120416937375218608591712132310218118202683288485599454078935424445104627585900755096383971681119566474820063668298233046670062730973727442295084670501162607935968499771419052036831412290471175511664216075891313833563634128428590588589314173577895775515974642138597048160649689779986119092206996145491810940526794008436358229220377426770621574265787263912628527709736070095842259932908363737895480118562439441139775719771391228880724326040463440071459607014914426519454392219959431695907640277368086189813579029943711312439183761490388072565054250311040725435622934430138917202786779971633912307929984625390854921073683374888489226495646403611614025700597284329672721410782030647083347749802767605491789978526986412310568554861303886845609057089529559520218220165588785969146490092950651385394986352849735326243001526083045766008450984900424910342717444659270154610397203924062870414391540307408542355946661027909232133764019374896947640423770227048669581978972943023078789356505297344872459530863749880413053634345996198047517648885702658204606757594400500155127665909559038596733751160106607659667227149405182849748961915226576300283560501829486220116259593956084709836517566925546546303291667784136808934551537737321389189297471112670443443884539429456548840069730297664439451326984523048522264702063837561725748333678446430902933453250651404142106252916004262247761742791949115212692420068257559335662275398791851110630661184018955611131365783750683501612256271936173888275092734664716937434917630845291757583591469260785044911431967586129049706731446435527481080313580722866137702934614426234252417227262267891036285302515620424028360703238247958416047545819034918461496386723824082946216505727524254312168060284905232206739961267185727013586314368131983133403514688765699068036522320744517528461242376278441581028738173261672751125827046740266741241880416417226792699834902516785707009792216984417653291955653317425534157040042773554675219279254256739650380845374780073994577578853677831413996029399742103031553621167330565182988823542323970844323893813584931736784774754498735153848859769888952944105241008328437445454361075294005914875173145938185162972021668409189299569161255225790615716473172470011939632041851698023164950011675731280403668185342635317459846028569449448240100686250030624822483578566435137107431194155191745048464303255072761703985067257685125139664289007987867452264496383609806947428175934017456577090647366363922527225093361389817333570428062547763214066627569777532107985930369294347703443123665113936217253826595592199181590508584966806554517187972309804641181027974816778631386462290465483784970826476103967037620562229500209877084637904638193891576609501079715875571260081029915129821252901399386248870129398024932050720440932449703536621681067617593387480976134172940641401348691361391121132249994889810033260513425865515787967285591975407945901400503097351535800203474586512132246536046822615308596592296137346304294820471444857756587670976112882150494238260565215353589911321093071462790423257254492285310999296897691662768768891311862757958099538356462283778975773366636524222469010333629312838031369861789952009690112433690338799505727399656444766163466198378698489720063073014284426209310965499574153625513163790088075534882107778850824885553615054146985660512785634339966698149351260990022775982224119213012515664699507334768835262006022835786027311014480293668222942681091368113625830860504142072338215250683087953094671229382916561948668934554233121306120397675337936583676745037458974350813688113512847785917822527794460830249700302266466585315209247121231754398756614943768308584888994564170714952353699872979081306722606067788762161696290880403414045662803689876867319488343564658816430016995945775566205495780961291684887179996431958259241773628926175858744707180478048871717363745864314765895216818027744229424848048725696000840251701729195880721689826216160351618145464024687388741434105017901177188767278250978741821286027393079449145477330739266829459705008093644872253843796497347212892073359575993650034664387441494219911755110226531934521046280226355046617875628280702787418050433466965082971037603779136219534315330364059131538647208269473832622595227807247505005599141737641028485738816259339837249478348860650641478630020382496500063463860231394316845248306187183181042088716127175605953631684637303969185629801146131503529383534011007727555733543467541146927474775109881595160767843050289087656983591849195406930703562830443375822997318059313193696141715188138276149690424572050661513910579562186241331893585753329493322315005519150560412221753850226124362231598065484567606795304857010250252765423259799373025636511998334287365091624592723848270843050958429343367538661677111895588699029104859196308955529182633216010140636646731559708078378892414799982098354122116839148142771218644459302544467922853977796312239996764975888787460196494406466989460473579555871289422607467796391979586672238211268703459757682900561855728228395477868370751419981621005884293943865401609294115348640587809145465910837472399193741392918438837296177519257689936331616696303321282375894399912365406775198308005408008161308292873150316816993716031538538656621767491910086132179175537861074122978207196489039744774353234715315248557450696106599006657573894425280456169059265425062704328530490193560612729575994864408889046326901978554331140730968953619801059687575844962749328474236827820901175810918287178642993677759933483997301620544694109164744249566978253599827197326851506838385464717683698951608096189848593344303747607520412764673519400275284115345997737153333281199646715284900726881560874843423492607686266523071322271716402991034287426209982326443658304946092949637888784093926673567427996396324177208400860446371202082250918779057642872779012875101787921105203636980225823576369428593881341457253465282501944040020795242819999486788413113892512581227623261471487833335440439195468343269229761540708456792007984342971538203396786167000096178484947224302368980572922121968599354123527742768345845938862989958663218047967763792459451796381849067062572585990521480990613921581072651920268721417240271248028379170523947113141266462558351118250449844345859303021625264435304376763411003310026612010728100303086405113857177414329849629446653320661229661008262238481502203314191413234746810582049129014698194081310575544731084509415034650479142131546153648221266666829610454050889419338325618658107293137004386458118668040666742664931735268211365179801161330391525422926313979510249557360008532116907970294087063124390343963717043351535260050515469918847957371143907533325288760625509916335191993924076142962986534516448607372195126969841502246880799643352351025467527092685253685555202403942999098590925338092879345879720961364170764059887334041516265105794510535949149836769316365702604014629253915322182795016336971679748271884999136853245496763486009721384755608771131250387565289623479175140126223441213261535489364966600354470569204943651328762493796664262406957301134850415616850502624985165402970389274837496174367619352129540374727717076499198095699468765787977941404399718239824747727633959736598928350156902209745333841790456837144959005489527006096664428479425055884238293499976741070884650641732082399809377710293160659879143805305206269314586655079741015106038842770117696114244558099584456550746845869584118600412240207590415562718945010666319628230887026390032379349593630306011101502035296962007301598902234650265587380970179791975189637419793584522891386888095282768710384222420155010112734911649940776893739369663453844887186152523762844884937828270152837790702243250530575074809476595256076114040703442056892369324144525313809947875546109966063834812607087425005264284887585274287813726237636599609425700775596705142893819859180112628988862312773739069677141608804664966073777455509342929416360897115198668266998197400076335847742376325976748929046507245799180017065854539533199500218490806506375751974021128977533347117957457270062569532345166013520273830836158519169931555827232341116343398865992549014142219100915330971133416844836394573286732432541462626546444125631662032723581695511717628642775116466997019917621516420036440939159074667784074666819175434258547462136989443196963032164270932687451413007044066136895801422671854578477636471497085925263793527384946438164852112305032258952328762278885548031405969393554399090165766413853663679449893031410315923185055268140999078940656064188537853985983809564715127590743660166541904628132180652585414754964858132458497235029918341915286923284398732771922743215280992783107402833436394992895095246462784053791424502322819166547141885989158828353119220917514320231647039492259151054696818537581007857079022922202053705503851018180279661918755765789057457289028724162188983745912034296793729234701608943419859630568906525738865451913976695482641606592348195719405084981779040297267483246656603062748319616690183311192861469266929289371057264224410312162834381465982033347212517160918875563706623374726623174834910911323719461554591393653293726577972703729807433129488710257013908516634515115568570954532603228580676594905991693490309777227961615138559383851963371473567417774594322122149827631799760569739489778627364628989111208071215961495612058614242373253599107597348221728628609965302977978603995384571631139927364409544760733790560897419790100671252189070698879684619702841384156325465000497413184612981167987811857306097164435345566926163675927301282531370821453062230195277403914932061493109579327425955824891204776992210706572571201064569291605180558997948717903256057825275813039319300462750563480233736628479311974500100370607055728869465131885603217854627177938428217008969236490941208900408402472742552261257267406113784613132897849831964836040036363079079311824142436042614822133175745013414354933460132505369854607576610569471713890965025217492911594822155631131091325533498791319029432911880972806913555678566278464251771411024593971157094535002600710885267646838075905054141003808638212601630228273187515340761511407798320621128388340651084205363276474798200014785261313922453134633148752084667622205550569241846177263260011097922556124962231650702474331162704343264563302655926563296465668312645071502227539229774756920468437762777124240031237121735212695628308778799863874675118326872276266186976943496736841201593728629411483000872922523573893014789042498560224192390154408672218049116921835962939751320227766165035345457934628678642184496607160589914793382710847617163552871113356341237745709257670098041287630319836327829061839006895092858273568451697935386471031943444068410657206804279718791045964099427705654281161589670387398351530136012291281113139797855366874107304173335499619566273039349705019611141634224549520636241342476687341336017594569355050149726090931627038477691687801908251170639510734489562412118173990354180726184974243090786674600509677667566330888840019562734746394783750119179540677433489845637182211628691866697311055042677074824788322913729480381681066994481574366002291975705285966440488857222405808355863446549110987796662562752628607661397313333435919461053498316199781278651394243464651925211823824870138692282609736517889176885921820740287035822434440993365516844156264025114978025582403777549692344576486805949424389009908392827578071106606575810146411211315143209297137988811848900269401507772854275168178657297138158752773943302220313300382596111572569480590036581493897697195953841071825468993839392789021204041568114180457459149481348807162925998498781850715445571158489254093264078855365522276020136207258229653797051116302468734622705932739398210133480403875323236168879407157269358701486943582103525287632728635556602229079702040708350099619633783763814968655287572833372512282025058877587226573642786482472462995037875444405077537153081957917988829380124617428515340012044506062082199240722839907467071038577836852736809641339415797198173842642621566671769006834707327210709527431291670315834873011115808789240328145874471864185525940216309362318933690321246428470060252190378108399690210229790983152497028161583147294885084004870900555676858138653506688944482962593080747769959035310021110667887008556601277362742211146597876699033145744902356751745320775925276081268796041340201817890796908820026842004793644805238331445426024152272180108235688505628758309044976074245056207330676958171506561562228453750911030496548808517196299035218251590972697493352117011510121570279443908967234476703353070602126602376512320286220173624566738078361097891245310161148707452480462374169345974855941431486179974839361575656068521466608285317533683244165082010285661188202261281940635480453856303944319168408147180305406799457570715562438828158159081564325327605902591275355961195482224451185717804956493131936773814299965577020876447546361150280710164535251888645421908231517329297729288003034845327706521230583635383348629773326096611732341752955483999845910685167790835992657753780277631846470585583891616294568103904947359066878112965804219060765624302801288538916269070099665025130163250814888562563652973860081860697541223437717522366828547064323608414374852409152706469147941483428098485706105653534228302394551869705376676117857689880472172533526150475427948838845797158869222919930392244357772701714599827229994471658170366520020817139222393414990216432396838423748483958800915128894879094329350722320781171972328256873352609603998787147095204538934231223096736373354000283405487571817965931290248831748582841217898515938607122802379081859919468392342909491395962547421680568063566645987896616081395203650684485963919598103005126910215196501257169901419264843416736068893564096651570393686928187464029336979580117889851509108206815288008949881736159950451857071157262213361233471679120631820975236937955799253885204673220435941470564198755000081377286587639536163094449064276353684475460356064981983655019464681653841970384583211317615940878167015636785832792523575401194164265905195387256886018305517343597695387004262449682105926105680325337466839143230351389417101258509797905134070101630081960670631392764169294128122964381799892835757925785278058802466050315115308678287202638462231460455114914573186358710873223090440317896750805564995246341313318691740629625794096113841489191859630035393421537482155139469843891219001405834623699953040614671160541841011898497517479918395778473854914599711504411723192629104550816160078149329428679966305713967549287328416698317925146007838219344786812496621902624235389566215118586024055809927601650259259384832866756553978210433350563935318492976636048022920814463437799369511445540614516961260158270071421851966970059131211353168342021406884771671808058850836337610940203558898622540849241180466947820293541500722819061742683752361533896316948237086378287124142541919696439773873681562623247669765125094505929364048014219729520042252749230557654501849384895481337473934317685732995943212197732937410522695942016449493094926426912740772763918854125189026449191982801191896823175743426831078394144736202462985176702296409089991733493327163304973975985478955906906711060804739054940524243023484335431873627235354407079311841916173890084041129222327185276372809954512439809274595409654891049439365712427822667712326223047441488113327050605083393562226020034311264191957541487866487885519777024999606508133631304651095246143389509878712154820275884960931719365449946073884756811352805027493389996500954692250351906016141847413155838375288083000401649315325120533516313161593753839772586299778793426794727963813656655694389204589538504143567408007344152735406582259344760986756473442392987284913832449335349558678398105005026763816747111211024663419941256761697189986114606504454617815567860313467140364697515755909834544159045814659738528903348786771443171704077501129302750331632810464117336876542060121634398477070102655174988271949851128480029920579142892638730380847119070251969574001846422761887209709914694198338691468078860443724429220750604906676665783024560312861367988355497006803924189102128943337399320974546919723815384594220010865089808319290646759606232617283058678659807965045572891930099526793482027831311246668049558927749157698720928160561241292539392540510268077838776345312473540773715835440165111965701988593940525529946749155850419750476016901528155128496048652862196878452517388711742286463893086955089863604202202413915423510898913026743351605105031494070882867428246376363978468466098709334822560676890709101150135996373252131332399638741647693830132443438625638334718337372598099540616512400901697109064330191034455366841533302938013196296563465469792802784886574947793684140059433652145051257215971611700913231156199214827212499948551071722353821318516789781918752671548349948907710665201430206109541887726753859442230846709202306935037413415276868388962581392028583227478692382044643175665561731626365811604937105754110387436584155141751124115124933110764984437730049739782139875233846168886281375549490212809965401785263747079499449578579307164673560471404256215292471004293494644828090967558731525310808061138853239665579963771315643506255840349929926671266737440264740847324299656983975901707475547803500878465544644893165215322260197445145267593390306765086623285742070024544519365554857396220717445609317611781874150866971526012775828599065538722737301353566129870932087307374559332526281032771589905827296702089219173441241927437709091091937282891398188441376757667599323501098569798743614361611943899264750179106803078189427989797380511781305535799349390409190539955922827590269003941325835520053859210411773633572435722007147641027240025406402629967043995820145421841544055308853391050129570208309190721444127855668022495308147342437303467366880581521981225064009346446032245599098176354143601066325766906762849024271007684393184534152928680480901274701943274559079155470695632096319746475339495394904053175051579101648531044547165576138048897039587465665021986843397461090972501605643772502785422237970880783882294752318219612435171097415396763064580357699152279242416851966391750763382337626012547929496972706851267541992080032850108622495501823994506124072801359684078394717032707795865344957327067737698580587060012173040195894326433323750606547932457463607849461523108279726251372475878246164585713233691110457804208825205946200235446830950153365270879738175293446789155735384702010485200878928061013019403189611180144947146639647100775731576462223286114942532590646155532124537477810734707834846928657136663740951223979627665455669027217952267368285101556044654873253153308677727402847495935736988181471142911520178050554816080747161374898145502786277881945670187962330753772949903239140634807922515696512111916689312521192197275893747193048085290944202074105977049749037703051367919130625460436708565144162103082948167844681388851939784246354815880693581239696964561038230064471683590050946562595852195552108896816672205901268717394254169664356708449035850544640817888926140249836890296003246758552577240601282333197518561841939079866211170912556488640419511123282473427291522980139241999424864098165437268564801928320011010614486505254103676283390451960873622681533705502303025052654647117182594991251046659054166171489802207612666634873572838283497598460223209621434631972886476296717699015353390189105605073019504968469425078310658352165805694241709831281468553580650845292560066817860455842152970234416034957917361510796943962557463809390071891382863712879703031173747459018572356252131430466344381784346412988007253884749946090429509126106712858570665709172663661901141413018401730168613048854540089273208506845870880855076435054326938547948786003456729246127898393118447707460188651137852639001333166765693542718993103629122679609752775857330467819227420347424595288784488875732191648252024982194826527256615564394965731755713755460115124001731339967102265039218842184965674059673952733774070846223714314770233937531380435894173963659275385668981641055602882344768967350925908429805256970807451493500828655948198434980942936043234232124135840409542493532367263387756308146795453463380301551322416048100851647026014070228412048164420212723573215088588475994671285966826895721861389157158821646924442020674282586528834448459929251519453131911028641207839348837363123541206307105741264482802580079908244989902781589201378002763144925943344032842934083780913401925122945326992890891192475738520350639836187012834200590048657227605607880008748339803928472298017694562875314308811905516646216726774596111287372198393462705479077586274849796478929589838173960236973142285961814610323303704941518723013450169185684314243487632275889829003076420802451692998727166976214002706663879068987471657494641490118214809319347257657374307833011826467714758378243449496750937348548374716624003372505856819494616433564411384158464965347992310144513918244783347168804336911992224896357126329662668798339203600924928537999718716830277683397182454916203291483731016569299825963510962853064525045663991346622518353470682478243501394471901794817373389394047191401569029237292911616107220863875902438002536729097941634494116653846015048776004010720707690422621447384238532469339757846959847944743966854049563186766179518571468552947957092701703886677624485081941555903666054805289717415091607104804788196947263369280628155163185737969745772537497341095399724206264504036842451063994857287537623025565957241741882155598441982369021343011631525510901422015595048374819045105845675695268339454631016328253842346598354451229746146414132174107946046443346332687168706267983691528639375897765079546645374974490831135469090113080378164151795756787522301143460052605363888876347554898192314734838765986240728016787724090496498829019992967102665196421955671631017835217530694882332045806838561860047665626636608849644885589722370767811993818909879844327722388317816506642884755214359651892339331571128003013571756050491739756039130891447007308724803370391304937484802690531914711353139928937494712220796304152185813377008256338591470658708428794189664735371872597809915946672201523572317737432010371911962970836261331115138009374605743044945348607791901262099402517639684942780494746309866059141893683852672992926706145890895047875528025385491918344213395787554425352928671317768603724109310868095765536406719643686114068310450021794960141096520172855759496878494204580296862560670957140398515187261914078636008855583914309589843481286452082253497962982605912433053201445367413211371332728505926950630923117310908761552329713444377727239195338687199742780351853404939040135280619437258459058871088718758423975866156990375826387194170189948519927839988084482678446766048455405492405147885110103474178813237901436304400594549632807286988988171002242249308270455191595524580402762555207697888282310276619704419123453052663159560998516446198645360710780625196058900287000140159478905402804572371388823507234767731875348807552445764717234362830207654196584503421105281688375451362266189770079215552958994086570170777033387497270977186341480468959449315207561924503524459562143178468337230725107276250261360187967646540312022382887335488694390592916434948554268702342195055842681086619482183111686197489517791536470124115445241429541685321952714182456358325479662445578266105677337384663684158199764933959883943429087371096419171067892263298886746463080524645869917496653250029211238935800468099651231996687743290521464251177786021580470361151540856030588235291017864732997631299568894165777985591477557303602159363402645989124339603346837069380647318153720607582328399308344440490417793810962821552336456008804083014666386891038154497643788055650089925664488907093766592429950801529530525190942732993538989565514019847729435096732019012289910188095111803613795074906459980066467893450750751119677456007708170986509007210259527556563782990057234743760882003132238174609798553536667402364235285928619470333858223710032530941014312577344299723413809393656560523271680680856546154132886342437140788975908042823403884559718048459110791505390928197691826700575514380376189204113022783400144928359842982998026417157019508176667541549334849403100379339781524459148181944849930617553294009274476480654472615280445114079811429204600604116268873697144878673415322058273006704169954202155264863246848660976637454950664867976180858688214844154315363872098892749242797572686235835505519255676300198673762859315759543595892414445905835973103579042153090850134334413790865366901200403240864717385803365764029596433232257456524289241507810402701415117455418480202684638956017297974873856854780626216094735850729364875387681292142215547865422292019649266525219689591805185715853414879027802034911134649010972674657767900393418910681275794851820727985508035623957765713867214403044709792398776363525054248759814921938720971448762057128039326322715851400201027983607480836430224818860055002034449901338840861169992222275588358150249661598487286918098286192262731902851728703853977386332943191798212921552654625196086876603695527734891356701370426345185477472027118649839530655602131169202867895521264839488288163320928485019819584243553607595773038138743851017516526438300098497846468768472066561102917219907869973168571473749325197461655105104529697550239918673928886607672492948408344383396165359639737229729029874160608258345412018932150880550439388018326005447752165822158469518944496172363670591552743306022934264445768132700117760597655164923136496653212895359638124341025092259195344041862025480500152388880588194233603628324864261664182380337124959878623424782902867501653772697153373725415393463214107944997864975460573567300848844269405563871907866065841577188500620208554226172913634450658588763764072493707855584039714217324259242035737134759819673109452992346218376722036264553598560538651688784368703923043367952634866699774439691780396407984818866906405591353751690792670798549247080470954884898332744435998930880526458331277938818692524532844272254944489072425311476277678103936501401888939831013283899483527706493152020904772702234386874203062754593277994428063937104824745278556604740556699707065136111226228101287155694578171758337971887924400911186232690115552975644831525466639087537299462712491925445366667665344498505218856637345075800258767405173170497155549462484525116228791420626807847384699435950438930031314835717082011008442074866454388886425102709193643769764872536966634997231513472915791992206186608476747263859506181276118004704776791721584188339498318900789759104834527371349205214942637576406585400822539423616064090176566345660850385753381744323243127291858158403950217713977681792775517855862340706939921855641352909428659627733735925097971049356341428791337269560303082723870680222151112157236737102259511868009694179345677276401824977402832905492150214024838833534646621752114817874756011631712884152480094357953601091470959572385232076195636398211944007268220063864361322773677834311490853973951642218896601399609761653852979184634306549499575907361909825518523616639006555976470080740576137856376073453296832529628258656080710069939778401292465126909525509798559036719579664048633300217450165821652197840277035170831886759456013790387146491749404805038015935021281789789883678782231054565668554103232048640174225539851291983147925657413051536469056132368377354702733965350884074840468918331777462460078953165230822772809669167628592452660715244710786923795604956042736372347251153558544036756918895272794705043396380861794521160594580792075053985984245556124438777537936756678727669708732929153942620312517280995898747107502188588568138325920595328045992894801653274321878671499414503857117301601800181499335040795831658673333387941472679299943439001660957865899955275591813456869676466795897514051095179232820538758003034004454800402916075572805062977548106951520481850175758524803739350955147879178510267978646026136263477456462039046140824448791328813414324469182719817684277552543835317282967025155192986414416921968872348881415927658239896720400252238696346462988167826617736603570966034098020816242982414579150969336571475438493757753801367734154522948986163766899133472188165293951246451081568747843062454527237670594394548810625582384035952283629877749221723156526827174598933147963937852631843658351312376108903640413098963719141848903209648582620849760263671917170132434097247484331861912018195658796097401459931044415399250738993246022558791471559226155729226938461950083296538171640803045305859554652769606583455763561727234388230653343609748345427454208245766008990765596584166615278522359938608463120660060218320447848358886634660697047410091114459753808055456996836471746465835738340931486213791385468059025574710200622630007728827511572307956393285461498222694418228600434210227512880351366319794299352929987005215801884207340572536849223093333992941858713513491458345295959574429691818186590458328392164524422212238249865020284478026062526813442840339904845912651304395555869877174773698570377739118774210498838144221175695399165099799924505475756462614862354618323650640112440782662277712809785843035690734479601854359466294619216924836708473682319695009896126268201459670535212981213167128947472237100833196856114345369316771199477842557907964748776781359202003554569151406989052837931931877584531522911825976747385740873918573951580055804504313899503730270449640101644129370241774511723536613203559991301714039711441551738984969835205485525782377613318278942268046021838214261848924775340826304818604447526658840652906747547112396128930104484046482915159145716039339867745658002660666201559436797889801936544604296101494872286593134728450940999769193063991105370918034652114996158036071278859301663997434725938637438973014332513944065508180115353845196225538902018715566539234197547763123874812727288818352640946571085486405702545886185236296102657097993692808656931492800634315405958321822023532363244841982470659584541346661830147481364224261681364149402576444742064946613746478679819743226314254269788031287117775612730544646012907110000712238367943357397182095359661650118562516881401178312546877992353222377900835587776715978707830964177540912984996989232794803369180717569171358671210666787255178399517389488663659412370623829856324343183145966819135704676398760822931205813926491568683181865225714621826338829523558117946071838341411081524543287516080800810391466911027831991465845613670692008767460637684359795321325648048149345652598735780638764883602558251488521889498877915600357483163539281706337424517910461619581660370039587267100848502394799623615770417398706216429712085864678573955374559039875359354571514378948754152320110788523946569382167892210745307286331725438706817019466894243094123549009499889213582847654818873005972560230880763916364669146611816706760162963120623153222810406281238788365597498437563764937761625042078812218511472088063843743183830762618166423542842508970763976449611668959825268415527610129527327059138408465347540485300136231478745757290501444026112572917344200715705142707134025309437217799780929348005048323523440070079218701309571740563836438383898615312224183898656295316983484189135859398145368792800623755992744842982717353972988893164738515990379830598894091876975728600960698395610780638774102552899686098904005151984542285730553582601187179394317964897089356149835808749805364069627188785313870408482924640727813750705298479109751320324845346993645685401597717237922222081633653240471028663613443161033504125647607232013124788139612350565411990295780731559345979244974983668897099068264338207942311690833984489392583357944036311178331831666982414740226228069356572146511163069395889035750888637444831354692711630956475502272187537132751447327079278758907290300194034328239067441740418772240333629978790499301894311712320498910431132719027367387063024073195064995434121176726744454117181573056111084692989692755190176014194906696580859333271777125954025515597952394978159643609325267835330855063096870271118525245856148390062356994098715034551114712302568837162575387775417619614919530118377811928165700291491737805587754977986885172911007365205206655269241896477569979689456280979110302642531718486279768912896349974781880679523862704129052785510496611333646833230913696385412497067799644555066685552518239164782674264948952679190789636475728960931040842273187422719884677477910537423596249091334744152341025135149483336440765547448876150592916791940423419178163611989274194263974962754747241263312138846913271906514175643318478168994628860725648757536220213657565930319402102163683234561585649084985738372476302405741253869777448837430551701784012303726147864307200790206627567006574833227974396114026483127300146808914392871919850440278210562090968630283148679078481081981177437893182372585124108796414913195103595432048209412836223843533149511033889415713595015822789299288842208486237310036832930161675967114448816372916066890693391481471005978331141809190258605000874202993099851168217300055265617592155019275718872158184125784780667871903493676192452607727828996940914414224513644921346915076898345580271727815111092153342016482310757442474554003027462846444429283550548635472492488959773523002611754582888278431376595207707575276459012914819736770101948123515025477607455783377406336489650108580001150137026933540989465714159122563745843517661460416637476993117933589407843412062706969670500274788481795927776538184021063224746386445413579756932786829161670555873486413972345690476790729513386560861402080139400532932894568191683427509172839072408586897355890253869383022030267735910120871546290114949653029461479943870921014108447907921724968638328244124791356807554454224690867600369603980877038577186402580414657953816885667058033371082836253627322822678612006782755618104675383442705211113989820147468074976102575269074268838341057512130942757153612410064299675544046331890136073517224449203934495119918872665121467282723856424917893357973675295512006545797777581348890636414955645043508077780566333452905944298191034575075312233983007227802259960314141676682697029517643031904027641597163373717980368792067606182749108084591590602328286138555437929480974718287296307526518533534986795943739780953510553165176872167878953911214188844160797537296254202448645533923102841805677254081600765288885163146301104378256260697546619310164343246978084876539133126888789410738291784674102505286456733734338184547310604965065050073017468333833157685937873350493685739326946824566820897211989684003948249081560443951677690605309491918629250870185686656973659525543621930481900468601428695462435587129742396152940620439111302447049848978908983942588628223216290623746703932595011060353126788841909672821785656410011794309022046122584486484845433369992553591957946069247207927268514487100604861051896125083283531238405785801889658428492095324135463281783071919821824046640914607787146612333818784131999555414420235154503062530212488857521563394902789455223570013803256218672352725954819304088078684634160864713807713796660363664339268476867935692251474208842102424233115794307179907444046672966385998117107963219185566138074534932098317040801046015337561598134270891469555956954805557548154478523022718418163152199050355511277417664488746402939374147119421253960037452019386058810438621087878106915542961444739480509456144732334590472313888751940585830384861310339679838225013647441854360965127077008774563660177871250916095724988810840075003639110341142771545298064753198408004521304135539260268677609416365544730773789565114503852632058764591776829219094497641317707746747354665509599209966121668991569322275924499606602117302366001381760233140868881165578165033534627089572501787454547852853280360520082144410432706454811744148287082052529379338106635600507442990358965246310758353348913384305061890513142707797590805912381377065470208997487786001180192590146305087053447697515255158497371764854632242853878058947718633737782450072238517803014846677368723216103134877506706889400675739611069197692135783021859087808091604194287689622599743911856310453225090674582148750331735412948028674320597002930510907211053664803805553826582116737139699250284665831471236948745865309935271072228849621641237840871376692331631389117380445363874634490202671532838084594748617385171706839868501091461240266887247882269391383373990025426761333093321401193284294037011904419813396372227829465173170010977802972535198627128528025029169234771583412167213638996893924534541412915636135170127240719239881383527901889781194200486430137980137536416306922243197629151060177442224215417200145673463185969520512104654253117688441668443133346677482352936261103358551158893076713993632323125930384878589804763068489657130065797836669451810966476206362361541411922191305686345283301870248190288506430983549557863461699476508148785747826566632938066291435315404259816039273887769201158578496152185651761864978120307797354955245217703882379683898787307230860834479136734667234473915728183609695647292401155195130967270986212771551234066301429540074583340897351562921958289557186816667607938384349326095105967229267738965657735097792484039358039666528258430851892115687763117094625122284077309526204211322540491800881387332436558777975329050958175651420201820069510128595743650691402018684970771824118843298461610251793937177811547975056152394246336656753126483765018162307435392457772105992322885111696711224372533462788267792149618783496266266136790242616694260278775856679029991603993321020230259081476780473608870612222506679193585406944410335495566427279074043928703490854239324235685872911887243328232240315664550078184904729932152743299228952182294472337973848492502478887520092612327296634637244774624732796022503649408102233542464418645246130299549820228497371114590269259689488744043620586605430707315288423514041285475112233112919159487086613632320780391693496840307509758101898336490541692273443651000748990939075068175749970775324129738411161053436487044921955080083899419644781432923174220557562490119766906883947641913783513288511314919695456328336920926874208232037083812661127421552504499500472309122470479168289242422157670763682320969276318053501621736949597075170283388764445610156709107676613788213451042873918209967029330831518227865668924753798242608261676122200288129628184303285954821610434953390827256989283182417699471583809837265327813050308349971702167369714495617049790856602270885308086509448204386464853476325749896228758460969383106644865203002720417258451003964599652703064823682970997684794370900810645010733996774084415973258678290118238547942841151716766845465700839024479233934151070027000236195937643022923595552112159570580260865690816803939823916132002128455357153339797275302417490955609993908239987590223540585314262500175492756810966764624536084207797395262916965209261197316425374614998896859800169337881439776717993615701188877421971472244867128945859417030008241596854507152053714275664356335955964691425342823586336152280507241157995850511802563588627672555800891613209286552769567325480085839169322472666282015843218862135303464365264770127164344337488386684385132582771149388362898595775763243218906171533378900375062842241086459552782445986026300943718739822359356080578618837385416090047829495640060316419343593989144744631798350659961172537704426278243782401334706581341947247447432310570476728768077102274853292678883843593309476407324850587931703463741307113896441256245900738532149266804242294281119753959930533347759386831799118387761258068640246006616013161570202300712196235018984116450759369763341013564886359527890608721860006413154773807617926054251869740166512896605240573522602825563507333499586744134182199471362878520902215262870308720013714885258312111688574479697187796359535425960467597436149120029263991135664446782878093621548211605038823918430305816148830937042864447845082406699779263064775364806890120556408815557228241661900042120169347104284513489668881573202382671575267440050936816395849154182041227140681308556075539763366896093141417833675302729722316483220922566903995379338796813940781409893788594261244533008940371880061660229825917357833246142292445792719054928696450233605532501672989324348260655299832675935106822468736358770213555369787205842742677409926647117831850886742388395169370236317102462511873007728038945056209708167325454784037391310900741446152545742060070649121019218581953326567919243169355851229759699640812438764360710045858726092550805840552936534010722217140042326304027631660624135123184531732705402326451219569187199448411223600451404788667638612870484022653590862831061168641479285256184574651988458116537588480372674688364679936028549513539794891178549338377120009182141285978738324023831251797804427358634843631784810506061667686037262688527983343462932199726990385153806165635303722546433053553729472254002552943234255234561192680006209693073541433978757125585218008865542102439879609908430266905054123696616294123612735662049556607150775525585052659316845711739295489127279051908712705957101499486196237952935441247221705923178746828561935709531987232962114035483348858756254904132167048528086944407178862408237138321806176847481085576613669641884901112041511520432084576793372522432746854931900961186902208778125836467815556939261517426332894634090606244053529017104242341596505889301767145110207051307809445454366907071902369567790200015328003918730026788881189448739367595783397269599605328450037964778059599199352133901709565439898613593422380855804091124716727187808570657704802515127500682695282966477791874362566033303962270298235315393354224645428164418511385262895032984874055976410354425953329920821743944286182863163149055303503191097489214636387271805808658608946155886353530717955367408553129922425048729555369137403401367162772451240224165565896249300284010158470044349753048740181644576107719196292237808178422379029894668806663203554364871377859766793760098231632676484610648036547262918923355406371032987585288783217963618857693498642064517992310361205702090835927501414406620632439759035430309042365084469647599870728345520384279417265343064183908279835045298141467197080263579500384577936497548689663264111580329279083907336172818482791341773134451921222131478687958550305589904092399087318016464378955616953460516459293654894414557566985105638236097144671033218368253444497566190475194715548302233458214310201391733079197664484069766632852527224133114299328193319508073707707848437969253201023749087213768083061973097357178681328816309272109617968013471461214858957797471234361440200053129934254986240977167935645358377451020364369988702499001656911217885191401405565455813267356706924918387981324150848066468781325122371182832551582775453468412474408952857506151470442142414725652364406431616141113634985229207215780669885065520786254062613199298182097682006805538940970351261954553434960115528458794724766616614852172996881277093814829738534614409284383770839966391962806714150887513963211768833211608302488355802855963449374590572543982512950368164392707766714655535794905881851818085644801276561232512967124213499650151248252420543967094267898427615476376153310886382503061414277596391538825622687465124924228887366869281739586948032276369864896102543384277731565499100847609274508887155370521638969539662031995584994898212255392395465099532449075032446248110965459540380252151793741289618253376653595988910232580260200609693695303849493491958310158687418080093616402389339949492488933408295572138434484743565426593314803330457762406202366361929163920066217989432496813046061440915359558803580604292850251396738518775414479615677651890148825551925249573206521598707747587133572502947949672105331776061953639456854170687993320206168715073514406556271922739837675712880401669567471338555754325041981260895810834882890988380210492887340827693727587670584637764870798394905167293967402443369713868227876467749571481783171954440285019370493578246945364016048712944867254607231738412332091674119216407428445230936018495611975918488170252938713397584043978567625329648015202932932698292537271224998953729747409672221930719544861235900569605675332113779874740301033414306783824076667630357746537861986069176971550605159534849847543472483350166573153312453806291889510429283264623291729183461825006268220444896455191365130867200800143844543636986894674171485962104436032069494111401533963667305641550103110283777840991794859675977187495357873506157576958150995104959338622652265959805099371913718784881300223176270364466816406424889466609311695857483460146827611702571239255716845829179454090316410027363974666671660060492169528100680256167206026428415062062977095948394484392876106120632722006488082270187684503067780590840699354184708623973318355083056671075669289596941589110104004341745691864329931471253517636022786857510838758288883377792502272494297696712346029485956625074335657575237253277879248795556118007181915884110258508076889928303588589149193546593591720035107311860191137753877868980926128395083823582679276139273514648129474556295605394280220814787823073339966677565302283841083212147117875297098002006811777512057157873350275731979234789641151337645498467003938826421751016430186706241341982462609384131397654432610550183221223066192772965339737941707855132399335002411443788345070464905742791008583048393289500148889642275166689376046847628761433816028541925729708733778585628822976734599990820069143603781963278946565837346102172762304573824742954112528875559283031386445279972163975861393854490111926837295113001759731627256220202420480573148932068236600384963232845807224013442375430255837710044222348482473210582225654795326147991459346679519821484020837665144664611784370307717753784602541056118853068065931164387601521352714144251088104751528859869701339396542871494256517132836896092475272087122512254535894930825980077075470874968084788264226277833030501876270658648258729425505885612570705205816558805142347413755646414433478299635390704774376128839790455549862793040802413018021075120972393820488244706750503362028158609807325610650847639353532900917346477114511452331250940676295685339630167777843608606568569468718953498400898276010080560456651543393099096383654699822479765230404638608707729701305169705195610034075638697098552217576495093345035268073572368433938788992459184887321501273138487512883896967006969263723831852210933246275759845452970097370897219560448809021537828963876682604528487007014621358530981611606284532680821328773388542548308282119335629159715161907534092205896961437513166021192736922618391435827183607365006022637354919151929627074754076113545535646793861420943458108094555391540584315287912070449707277900388747301338599590605514439034730164785619766835224328394159413547534254688175287550346308023464682871530617784346363593803950633434724488726513967902468343581351189952799442490631623939910017523394726604504076729445553331202971170143942847208263836441681914824026685654711746185371855903236357472361551225197180691593721957261974735773478756917993458211304931731787504798814594071547562405691691032147012263301180678450951392565698372450040005792384176268587328600310139107323985506372652326262187313702695048022830015495897285296772859738960577809715076703364602568044640862231916764665404268588673950275482087666262001115677230438007231221107021135574279993328238449828045611658134830277621887246352238301880534313907666515363352471264992216652285262138424531849793455856493121533856619052572114101088965839374656673918218134531146433091875338722178020263310417353168062761844604598668085810370543779102472944807347743362173386392942602301026756532278525751884823046940682483865912883467477507387850973883468502191328968373467024189450503962652837013783743001356577255441614656577503641481710239126278198423387136113749823190937072750939317475593112819601554136084373460191902577262045853486895649862313508764870987200435858856404672374504532433368344416130858156919386742172539160460382274315226681231628648145430833573887211394647923681717993357562607467118344338664960922793760459996765648978184130594410779158576945902273277638043177042786788338408713704732437466415032172162282611103975848669382266005533320633098065285768829334507106044396399975367410825247703427604328274733106791095661782016970446380801965762879195617541326900294405117991552599631601793517131757033637141820028578143970044874976461771040554338411479678910355709511158464288713707400776640179264327111078268636979304618799753596540646948172000343605989286399680552504356274048326696118871787229182789418728694094984690539910399387866434456083990349580691538555992178715347578265766624524615073304655571472570324222286260488735646904621434348177996110982834915585832984509821948938319105863310043854598626726239023891460267762482756478243679569166888319309348361881766928297962398209823079374674886893320239412927969786259342389825593078014739766881482526629593414866002563115581507630194281845985409932513504614337834932915926331658189761924342681020796310284890284663317651044041184289048572179807255595633544547689187840938037740129334266688683882173266273764137197094245307619132691524762975302826007464612829513212894934071033302956558781689192082703145316151881672441332115696352203554558664149602237558793992820465538063311942850725316648912667457848104804884805604662033536628165392929602200461003624559424370303268442109669284085612803138874467711124627162888886440780403828938679274855679335253475835841463116620360629378994533589010054945462927893843933396509940313857390496128795339239394988934408920786464201389204445126477707208807168985492158184417426197928307141505356270543326581004301214385056847457757392643201770934845209541874194221402903947678859301972646317770769526967965395852917239112651121973006132087212428995714155605619162593582590832889583991523458115618931219590242845843812951039151649181834605291073696001208299575866453207976377927501040848208021279264015578164998389439871736509280544322334776603730134597993748890699044206714418724836529343471001767881366839968490350332109845891691795405861880507377346092117674891181865575730638767103543833217482738836758920216488803456116255759819520714561880686118110646907967479380699697009825865137811456997994209145963721767818801471008995712402503132317243661536765491310389587309028180638079878514048096107364856325981952356141742960027182268250039682482892715977420912531114461015315733406970392181409455492637060185936796003886672848667929773460019498903420309185076935539158406301529056973160356209072526761312909702717652931424222912322158353126218608175750175659476443524118792408599549154508900460529373091985811754903496255635340993027204540680616757446241816958530141734370734624025693465432866417978622561173750664135709507821930577861791947289485893557762633577183198455840197263784913205701414954276790404550244413534352696256733967703605523551677659283450417001725875157891709433517322414718251522265863789317520207107913136579000920581137662705958539099489355517161256738132517460784330384653428582030493772785688665993399431998207377674919014867778376893139826272850376918427692714156629742602028282701197954350103480206369393206764338054213399191840559227606331006819476961412057105471290161196937276207981784581058355344808730393260644236275910719899804686660338502523734001194912658555993390305303319150870130049164056251790233733794735448970234869209169499352420406245318432893284049254664866256179291072839449717457932420676838200675972474239859262336199696261980818039260428486103116688711108297104858191103400732519370357241001811730766934969870161542984008883823606373118475992011500118106240499997113741590939268594498354780674998084102141431155275837430957007786497336078214300520418816733330887106081414463887104554343309640346186843590786057028478707325218589536767922282101361003466983714333227074024243708797783552734686536160686136624049742043187677461773107201896041814159441759973715466914553712372242011307454688946473837894313576598495798517055445074846980022301914548580196297313436809044821321279446546138960653266802898719378980822752405960666390287332627179879443199005787651648952353123509625318044539294540487840779707311140672059443303022296053109974478245433807868157353507349513894227231873010676146668252272147031328479303876851064385441623761098289395872506634117514159381044936663402112429684730412309951465821087468116200664230113522621265456308852077990360478310968071577155890846068443770500476928104989538474117063076518349094107591631313908384241696429928266980458802732427822471833814125711180934095729937828322078855179725383630866252523831806331864567647711022767832569465509112635211484551614507567482284775443513782268844865593410580045306856225993217102723111760255686456702925408453908647295877508436974537537859064129054941933299019958325967792464874665923404310694319119972452302542363564867507339809869295580536879691717307690551581701372415447175379763968060368250945274962726968890179038960045511044224830834520075665282522327432541754649683585094439961458596055646516355222282801978554638852244660474099765841214546729963587820070789956453625254298476994664731552525013068857141310641634269380700443973684901461088451402055514677543023538305322364192100504510286362945786617020939195483121500985900697130950684888082226034338033215724261658332247819362563900863794063968228573491070839378505570873761345933392938149044741149030233172515614054186605670595019635246292003113854569815227800766459826703453788651458567656394014147835211402525185816346372605935414658684625524595659056818065438905398416381495300601552283970617103489546087637830849593793006053209441056021718787354177395462208229379271814187359777343373266653908192631860858929345275771190795347490096364699272515875780294442258932941500708618799681605725245663403918288223614174695032485823135664485776616970321183093904907874615301669831381415315392659493397527489265659313531280236449320104862616264965123487071618384886114207199790060055855935849999595575144427889780282291509334075884681253733438722141578208326706994354517497786303912491151127744669322753086247479612396221630287091013649624233323845708518422455461358691647092432071580176459678740115281382182511486133113275296946374027727411471537549574168300189322447982708894670453653648306404886647295247944168107846522170907322019803810774521679984133462017396550488322954832146518790525143042519025547806702087395661801493797648704848483596298914957988771153672682596867491051784862140396702412653942088309549133355902823084567135472521108017779216967249128189185066166121887998792079660610006595528639454210180724018897166728597879376184484414547847420958392600634560139397720332951159606188206020862893845723116520460388820355377692249297703303033045663599126754440210198249379643869395798286234242669311493211048486245564293973238431484750216502272543018591873915166391971168086109824933762691778193201379485196056144552768422794223012313205377396576362832750411228121364344688215140307637575954267630977409020544939673970424046339215464085235346087379106662457758277865204360059649243126987752097750840929709233708979098327063127342855324173324480426059406547886714908050438539549817081854254659817963282133904148525893035690358039366088006984404447141504096693109251826281195126854536695899678243152864649710162556058257726414395912115408082531553432355196135747492034542177996582671386630207732917231056291630416050283027743536141000379459983024744322872137195824101829839764659163810365173899832633574228158976863580121012553299615898055155025954933531442830616633884281691770442958545415043661540890558773355283237610871230161066924393912077326848856694166504841053458748448005339823202883663739592277118825646198392755543898591363564764606050384241394690452689722170912723199937384362413693715148993473546496342224989760470881774127892191621775172863948623971151811388208047388258515799611787055776751259559834250776221918486355403988367806770248007235999332566438011664664467873843471467087489364784526156341952199922239056290390264089291805028886167137410574054141711401144830142435188381162847061430832400464757854976942618342408306427002870778916811909024024244625569006073115981911064119190510026040304028435023208693995774274536027935903254782736271639803305111293196847962290619092744403523097585456538683094205644266784080308077164965634306017751973814481590631784510366497396090779553509628654597113181298299304751495918074678101908229252452741744648673274611297759041387703743543163751498667330722437079125263796970943775408010340952132195335834023448109562118377879710556068578774621516228134623088413217668192595434161043903617159286336108342811133471592836738946881641503505390446515587663209348394964680084097935386520815415781461045375864775054912016583100874687719526301570487807065400409998072255083002824794136598358677165205684676202710630666405483947907702026681295109452445263602617510863695076031534132354371946446246695987181381880726921246260982667226649947225737468024483530566306874131234463583473020892574873097144137841624918953876143479781305377601831654227247734356680778081952907658588889352486985218474845322407534060727804699251397675769130047007050953635442502347736376910969705751850078019610440682795789742930785640099626214328979589982395426829125327490103894808549939266582124863810455958230477996241685911096973819523772472932201374616540697202397122677829860140335545391052989175102311423087153057398116504330169077604301200817229145078087306081060358243886406260413979535210068481292282361643468080165756199985116579549209236404835477882656140018686127300117070993858708049250013033741075092886936091594806500875884035519753016155532613342785052478622393409840803861627112817411291664468151106210880907371402133768310940206428673935400762005855368848759439952307743087586883629594888657926637690213671311139330111501982336040798378231636399628862583507623545470616114213439054420892573518181818724457952754269938077277503231964896044656361066182175113325723689101920297958660677495180652464282664347305156531810380737567767596935872934109707716365207422323529335528792902164034608569188090130846511972049181020576622918965470531564764025967087067090755781192399828339455477107982850822733080683470398749774716113354183640416667550408766597753365353615685848006530270666687035220841861060260298966703065526670059099802817562006149648656991873806035212987668319598158061636005227928297062905345294435012777352137365849024166934712454225626620373157477766066136390949964913776758710414756453210647852262580368932252090462967422562979909487552758596757311943487187669857895719758604113210951764344556583929300181175198183534877381937609345038231537061949464709901636602608293835379303732295077005756905486849618463747906861117859143526738206275325821668752746952358971074945113326401484611541096488242478675804742216013899869124442246001824808139650806818807549892091222046307317582839323157942784316461933253910113470541317721346034705677712504452523915278892132245502162491097512750594149971475710249701781900394140630094947886227281778361162343572552893016757388894934413926476244850932693013065843191422028030206687491873822483015766276287448606944674660559035997466628031764097951319371227592776537550238791780137164456538955308641275006818923433498362245463260205683609944598219030960249317555021586864699764416970339240604874608947916446091120500259276947907772085691710775359404498933208133197221045817159782282801018091011103008566085553748212906338836785075118928209231656944691530798141231534989486501636438400541158967062174139142150810251778221103443464516103479156330646511331723225103947786292357080029644204972661293642320869460993504902882758703543809143424260896102499665130652218243333178536451302760559736072483281783773173205797344942200059772663867406511636474041452053150048313581349441220691046282475368263694915484222474693980233209209804620446608060160940790163649689246220197364728588532754871623201221856746395609439513104598471393754597272853521375922572377578608767624742361010080098346207936919637242032179873083573116758265383195509166862213008928016242576256016489403039008836650849799294248125553395808725668721841428191936420242418675144368601626062562282188072511823214059569025375328194380558925172453393879274229355500687683623246369296991933078298857333906708165485071437056726888381715053636820048399215209248114827692537365696436574767285123769942673942044147948280837052483378229817299542492574272090647572652820060196081446378810605851057376028266713940619726015623923358532401690721981228808274217718697385440048224006703751739501898305076636728891891335134687491510807537462427422469872543345949669841305524522804813204581802432283530281846842793198739602357158173639686957302827643288952134280096783492158357702300397858359921499498016157159800079883400944811854089096589610020787080270369035328268718164498193001375317177546343224428243325014620383098573614679351039680948205629631858254972062145237269724619087577205678857276217020409364329905327318465336825121277212392317452756276173395249328917791514212034136442869664243603175612266969597999327795206625761018008566788158477783915638177493403453329681206428703196291472274342056073856316894363676887436565146589598350009240355872794078730443533182163603617274284115305060943686803259631289126239901124952982629308128829281987754485604937636410847136618743947737858994438488945566292001174629581867312383095841329213309160628140067929871178627477004834495512671728207175624976401638594592032016114638560502154835606299219066746095691435777726594580841748472400409726916399672691164468897684093254302084020202195676766835822904974398458491471931266691214213413515243782915418533408957549490581001783772627406441534699217932688618063548875312079055628118887337972923063754984951275996320168804957748980039148910743692092159901674269273091759251345590784459340825665541890685195373808763404323049380126745412456065266893691270981107537182113977306137079616174153771968294851205078240390266603783710831486734045854697176269358529416374986942112608736770318002341408849157459134665522860213007906603896279056364402977701596055415703666909580978329246331269052504130264784048363346690352002826916964655301626393094564153866633212333313776314368710989203855893397924818278466941646210227248833648217327697632572141558961325666392287861637235293157560235554794293933501985506516395593834764167175592908171786239053329542361732685858882920695539182609341742499551982328079608353718274943665741524924744340488284321088550037571943484610514368261183986888858518229988178332321291036029174555710400355293766423293192672137673291851384676177517722607417527112641221431517070371697740111128551609774011882902004749997793563603077255208309417154502080999079870586799533155250031061677317899759560259528183479507106685635598239523659845991659129520576595800129358977453783166957312633486446168536216446251904637580923116761545479602031035107108657197345176603949387762021013684631361299340361355277227031693129213489183969022600280515241233618413851958403964863236284247074950776466048843674441784047073931878303564112410984556745744230244287932167090807446714728836292015054395189267080278689985515504458653278912354824147938771215214210726060654959361320782988458656928938716002420937226620351616678765836902852997138568984291289278844423128660959027941590992845409822769559398518120782011299925965424606761224821587997292802973876554076940340360228984065411344191787278375672135721307052224504778827671851323928884222748274627073085764985362450772802164631838823405985466402668144552285818283028013868391015041929431151132669253548813037608323524844955992691009343828273790710073034555319895309651797236813442049162912776522536891147053048908451727784828570912196429662783043600720358326816096904291244002084492471905273730033041442864992106386584711860427557253586479448914568681067183254484656514809126991057921230828783214918118378914366256185803191355851178429693513263262461986693294593922877486817796805137106402991009522557911694323576895531181732345111132566479311025607639953567108001942488885551608335036989233498622237164222041848219295784421565523165300925549971536008466971627776354076516978952197068229830013604948439588824262287936130683617334359060036315751471867250094290335199707909331662991475584916450007889940329454610034579767797688865409348723263116607262598528897047361854204315455638876669932818987537678537180437244338646556577747938782969772504956684089447058689592383819994427413499580613761947665099034579404832342693981536981463613098126986797275908542259926060555293992127476280034462863890710065386336069908562708656382611493732571049789796401970084256575485572121753514431610623146004117606189227886701895193462051127194656657765895201284629456492110676577668084016303013449946282757489649930629031773600898884491722829859314627663613830908889788648233212061066836944298095407663516554556479832372941295119314463433045646821266234624034380166326865557291762563720322075633080167767446809893011212971584866454867249325042364218560188149419197327575671608714803728134610407495985865709217651871353708602848551521435731993925797213651571278793535582337300263878155192483884164167595932379596196242640921948703528981793404073431282217372612674084060014090266605633379770842774707843160071087166610440266544523935510957698368609300122769921621754808163709921535959983962378616346289877041063061937369401897134968348019107013747231627499440838169482078572728610379860606932327253107877737041128000792769523243868449717373347432020800466045405017591771451313463207606873993437536702166362423209077856036685340725302496040265900761924480700872740673164124062912414854621677845407181551895326285051377018338557156799555457807761369522040111241460008181512607721092893701016376997995400873872352042216058015151579193767488847006848328427223909727836841291193872071218423757516324079466219837283071621891679644314561775331441580502793823360054022955648741131740036146251359423443406742161653726987329093633609066427927283238305103394231512514510848312327559368334897089533570403519887586864380521587268709802399105938478520544722706571334384534217511503929376516937832924385293958112547621832318945181918074007327577540174844634375343102810463824488219058810101809297124514218711946727283111986123194408465027557573951503990182523905763881778050570898919457108746660196643475219124347605209303895205026401343540789315486691817314149509297753621774408476770583591250383542256179404725811043758029151229483819065461202314661959521820696448831073672624558193562523425163943045608110770930317431007023079290912804453211315052062167894875599888260824445479738885440925410241798176052128943930480342577564080084680171184172023936294859886071482628972451706500045096190808247876103503430432182915998641078723966921933075639667715461501495515552209210219371851086094564305095108598745992581005679689836642965867080242473294746181687485450954864147149795048323047414124162995828037399632202996958627884928457404919660632821662186391204400463523577087753227233730794806764457951880176086304631460925652178324284063099893590371751078563734805107646986264685394302157570759056104332381895688450530758331231811972078779647531625063908696581925148575834507899194428687803152684901873043508668897194619042912373160195160663131160527873495996752799995496704031560058527399258796057725903170778892803807434947820317467884729335770380596432402676382696786700923220015349583337576880325212685430580199415350757488735820413771148171538394191710792098257613695361571552297003238071756429441125928686864699748352872154900437615518758036252968969472838390104497533764448008530369624364546480328065818455610778353302618508865065014753048609730786224873837398839864250492421050599107069226595603452634465470433404100681634475041516677960379841362588921690901248071789436043578179687761133722380194092631528839887399042060907347805169988274822802471090076948151975852434239758514667728646655480122510925692819971879731816821065245987891277398172349539951444873334799245866744039610455110466553389630049114669117100586430875783091253491648577559551705351329725269218024815483883640166068594611882833174439750199562323150636526879507791775592337455766801682135383396150145045284319848494255504534830809597306602838864354159426373753465055050235941062114007830681446430473458018458356246786459407988067058467269626729689814578516998861767521030693290116203022673897047507493548567561300490095523282119425948223910306879339018820771867017856931860096776047767054390740163295608840554449084026651103704868153483094518565058522796058228773217237750736034792058203451609099287072564162537366343444474181508543699804911257479001889512787397495059291717437023620289072589220832288123435338026738062608883641952175816661299699204144365367681845993112034348137593495891975236704124869325289629686464420769138584090849547478251986192005015946750789276933217030167880740031988892598247983147483255034989637342279947852483587087291100938966205074756024312554408627794564946461352773298813654808091550931758541992542894140269799585070803547671438596429241750478918522465987965039353793982543541693372195391504591590741575115004509260503006967438872676991701887410526046997370123667727917073980077073751421021065181174079380407155696066835399147166448566545290256791700828071641852016561358021738987315807796132596425385433499261107774757341355036416186241335689173609132893165280789234302892593804631535775277032572272964080749837839113468063898556697472794961145982332306177512514523541159931993495839088423944637266233648593267534669872837897273102870005838713865069226177077955184933781722045374847498152689036543509330660774701493910971161052508519011261103770843021705075537900085334496241889760440795067964550149908130766931852941899716317344674729604919370588079934730802128123279370314290834570281355947624592763514200825669642666875741524484379683537475552605342804207529972754002171106077925864553518491243574320834803492985323019435507033896198974651633766744384737130145028280356125553430653965964280806988135136191420692814159867713878890049074787401395297330777853353093809351805758428513052005847212714675508700816407008872267802203777319063859560419031648586046875424218421341137661520483387625920951337912599378286978070202829512750137910938052557563349529658847665947229019287464545630351368413915334731749326311924236026910880453124287665999494173168199565458101838666410496556173507708124632598772289152387683287781177129410463613710241525542959766806745992615807200701639273777205176220588526757569828018372949380163113083352934265787467242404778483109776747625590096504719219406471638869449171822496436921581626020235216730956278295901942801962256631956608088147022257140643088498117150548589655731828476731313688038163818506824431139611719557270805474272954979708760078097896590628710535930541235874667914050967526418565237724000224489830274990057643952224551434173288354536528774171558985285084995472326367067740816717965233442155004361546307434646921504825221335025007705716783705746583488939239723556834916329743480628899527202493611980069793441116529424090634815591828729294646462634157543783635548255351038200320613305182941579870132087278362645090937601984383649657235170612335903765696997811510499634746438188363089976856507378336067595727908781915449970128244848145259316103460441459503813986167502603414209727873465768333111252332771245719778181269697390398399803239903570009619495788823447444857727091672674508449747271943894797386362169465426079248708564721766319514616047731284071471368218335594841603151521624231011379586308756534188021894666433150945710661602803280964749335331460712042678855862041588122937972866094185761510256110150357924409121092768003530384077521990413125575273943542567224796481763211357883486275858126396602721654557843347696676150443693353965949128035113055557298666443715622689379419505542261709875707847006539048529004428138471075708801216228061825986827571129258686700322395019249260779292622490365891154288389868552825161108257752844963383563687134837760050880099816378135565445989826078022808837952056771497678803383289095941815257074145176446248402986694068326453501455605641634062889461701479247713662489589371232634675445056066266111719706824716229792146159592839353277347471047848800998804975693308715341876832570094645016877728931340432471017438369455721054089739705877976431020308438497420069266363442152923443420789082906351289925726502868129524173148643550108550176572188847565654945775861657337057341564372888386845100854903449300633535452757741890772547708047562981399691705943159076711635802814666503956335414939188537587145005980196041996248972432071080917509421129642279668325553488941397327260997698297839223692106874516856124759543348622881031442132714575878731881718787098516234832021712898797151780932286554608229223486115321209475368013794425118402138027277493508472660655221570706999636704455864161432096039929397493573388328179628444804196394068351283959768092854286358311190110443137195181899981812003714269012174131923768684477970830720475169403455117652772845574179111897170882774715782717468170156857202776813452414666211193039366621092216235576516944267888027881555539747059699926867420369175913002223813845677584047225228816767362800996326857010205555682447777153744432708876608536042803151321516639453194081313143349859863062188679108363947345494361415171236803612723316858914473091930726020872134055589975517123960410625398541997913736123137538756744270399197032584893276216570674038072416993575016710506403244000675419808836744261300863521607390514819466857888566063861343353391935630462509729306568228126424457218100696441331936964981432498508282340956945142981058855397803662506977350180517499077186061801468390947758448041269501315747948276930791161226845254294333527423194902956667171634550709545930882743248914966924778590963731519847999008754391085953018303533978220564593699840122962585969331534567507870772684776911165181372805280152237838431338494300736531539996830343096956470958869137669295000480251278896800796538918928551777206691517384616342107193564712975567381041338384756988298325848515088180684819475160851432635563699133161572241964983501878121516125891342113237103218671110792348879211278313692243088957867164367417321784635796427994700564406892921077284043455779737830031436716734111562297598676317701758055579710733644704541852253343511307273108134405327533662979036244172540591047993333203631799100217334495962603231340356721557578247777370948628877929251039325758837302020618750571998146347814129455103912919368094411683661701470221503059565024914420101306307877616798721276210737257350065517410027178203490295796993989726791284020760951001574772273224244900134348072292077495334066308380686141388961753598861687518886133016644098910240155532313628938754208521669197651390098679739735136810717602247926800160851583203620519998789771153173299693715847541918043566600897668740855525158480026822213784259023009408667605258074180985121383265172014208879154499375477688587437822306667082174901471049238709550158542597713957852436677932360990710060431277474697554822687335773236820241994386091000450658766434823276203930707647260121562949605593885577301674636932958210822173833037472471474741164863426089758870261345252464147037954665646258556051005031087799745294191536180882766385313052850622365512359374964521800452437961949903461804603553862565643998071830685610050695344752692096502382801281482559448929295061358891025228580228393831908111840801843423936000975431056930948341738031544455028748394551551820411050338975520169854539888617975124699896664173552253819936341387070567330036514769960342748782870261372499827225985498981487388262262352384266051412185543929879196579092416592355603296714835664688287593437064486859596328223529689905269245522240604677856462463793513235803892648314235343494523155498541912282666480249407896569279266508876076198264873858765272409338180709640995313256563322848353985432087585432706669451792080413837758387242515953320437999516870727616100517415743166691068130090686412960291878961653395067987607268725856155847460746059107525401136383225392168969243407939520627285584624856855842779795523274258725076632452181832197628387110661676244333745058987813878646056382365344286774241135967196516083611833226574321405716286411551609580959340608997519337680412532267291043427422215021997185951053857475223585890275217174314515636237415484971439068449163383493724460711930442703702566326623709844969964830832574787616403270729246421788823949708832123241061660302521792375023823967476925128936074899141651134904531283045034116115146455954457912489856977361491616901671335160112334536172580766053441346173395160175685173486471828052436695730926597235637735231489985828736734909738125802438584818115967741267638937206558845248637205440029843016031054177311281744112889534954298114271815242297393247518781355518997818226481894939572053532428067132546825960064474611166645587469689572639007785681399022463311910665915901086366731432176772526278623842706192406586162275744981526550889282412663300574277435548567455823802327321397806849441058806586347206416307269818318399803022621826868082369531957884076602222601163411309536013803874216703445483674896496259218742375535306091702339559683389744498156287361395792490215679132960567812364128740856652861202685051016667170354347336836382024799581820240049735025110888839076428214422525785033833518013453948890048231825735702030799371134109410048977653259991633343278476360456810939396132611747413381212338237152199134312316562170488748564283418295072816408642173109314207159336368697770738181716425792696082469681483136553799442137590816390649437211151278915547678448975946277735988630815807774537530542520218373730418360651651678913049367394833966058166278958493338497234364002835636558746949463442897443746465743986717731576158800819238868230091443136534411605866439683267216460699907134007782808103024956040798499711704558039219468680876978053248928622331968102673858471077266240947349361940489703960419846783316234743460277113917448988232081674500506432731481788210199520607780210167652354860610827055591057627074937821283755492611348067656066416733573403962614180708156377880851452924489529941006148937660326261121243192990083653645767137413255563585412853787648220207094784151332775162623701309354873644828593367350757819156128782914269577223510043698048697625812276438652933072803838831880342649396144092060194550756027402241814224359884480970569864118016217310396838418950662691007353145617046501380601266294049712317853868537111787849791894958943899257653846946155950146564723801170752300908928698894705099056632134678510182904191578664176254249396301246691891306931416057879271857815700773442621718364574301508051086766379037046769033792650175567447003918140096411464891918607738950944327524357911341069273566667120300347340956384024425709834499885538578447972855947050864893952428522662535705696190667234901473900118892808328747055183392272234837257200016811619568852336336563818014520780042266901623223933188004424994352580637051405477501754276216301743691834946809704336658220806952483282779881332463946916944237578902185626630469894422429337535101519227629602230531084469901456918909100957053644829176536562067039707527159478685197361121516242995232284330317819237741694442536901220940679804651787591148641737140008238029904293114765181509827488666138911409582693780047325038750423955937648091029440088330043778333401022392586794961449572611558199540226944971605676692941278557852486446383020309167616274465710044001893600881608143670076202608964855606224049518475708324427683685737494685925890496874703388513842388211016239763920936731727902747024064347523536647501546884373222138769518931885152351414205934645351788470922858750297492235575292216159094425756670608469484553082613708278544682186640006308251361210809784679176915323678094980340565952745748829609880878273371092885746626416733634646201319542722056597998158003736756159681432048680642066767273416154567198003422587680008126937160250467682412051489200382278575714522803316633632345612704916438214176967016472594904475736139040961435150991065487103664724819309782355214725153818122945898675542828759097736555511069782346046801979721061284367200499973675965362020090091063116156308998548129575818838724694320503156201294389168205070542615696898250702260515530812470109229223220199084639374478611280344010243020502210123634872610586542954212478862648683644659324105042642692728940147915672467008895851784963627654864929070934915004612717766734094229716455112768781220771198046366969472014079792507708685012211927510311638751522937004811702704519832574426108708354342762905649419491616345419493287481010240323606483242486798498720910858204701517032185295696145327129879065465238611006543058086434507184890714989823479542966982398113966338063545504651124682144118945641763030606605797273542325168940759656550761019790853407191312972202349064962327688765155393647101598265003134774779093958999180107706356240255790216986325105939800029754416232592520619982988098195796526168895579174385746019907582079670184829736739635028788287578854653495841533173285628854515774506235706914090148651401729151624692199804067130947771486811167448067054087565465372906208823808691404114532023117016090181953109264894786313393583602513339629210471392460662576991756383559337309523974594707811840296884963753902447858574404451418438130765771823943681067931905489827638049901352746576763191404586582408658335168421703499931956847945490532308733284111298257427795610834954993353763780847639409749796277847001868373303816226316541651834303667008634806238244353763655277027225815286283395536299344055772920001448842009375525371992810274049466045814623837766031988092490688550212675751488805854446171237272674036920093438041631068322744526064936978704563897576747347837986991681768381159797425241347503651477219743606131259904265573184945693910921788012732172398763505910599402265038890471993894954377073556133892433006768030039296544099247938687485872819650972372966799922930081388035432974052905688174789662823719859095830181143917039791295375275276009041865379856784514458951093201299971578593634226560294450267352795922253471477314233767496299847095831366987098535058041022369642633810913116032279695433522073997269853767756444549167485199646299201266247706263336880668677157314194060103548426005296737410800554246464264223489816735026594833460329280435900176686093417441026972741268991941914793401916228704391362447720082992833683054842595193394201962157247672335966126263981576668382912736606657597405272681596253642404352179439339715859371537755090927583691569103632189999633915172301722367636411077452487260549095986027831041266027799568227461263445328498149331472254312456788245881600923661639653979865988155512511261499407779663832780556639203241597000743565542125269666931917079298834213532126782834388834041298682721508134481320193324578750606837581427468525884134189613483893203344870400530969456724379670680580612332942859803913531158211691724962263775197795410000316452780124908212053336208301458459383588308320192851182271005752650749491132798458835688872976724217783276389658861944905391849250592542204436481492944549288741124044982452519176761533722257682714408986008055190798611789463086392010517578517355083270422315153767596829355450182591204188989379929774598313563107475955176570491181492195870673113056176784247744476795045471262873724497805753735461718834305022803464144280980874024434379264606963614472121357448078388578872274297115736554546020293463025122739524433113726723129620798759614286460842124779676930653049179371581856242865850955191667715130459790319089207258412786720513553673378669575392014479167314218138713750022845799446361331747607365028483730850708319168659561859388129015570586270670017413266173887741837241928406148085880647208172958342264452987757165792921863490078128256807815270651723403686556371670626284430241069508776084156444703635347149105465424473995181883822546706618811056843347933848116314006068208936796893989038618351295708567387710786107907320946758231637222699357264217421044270465825497822419013792762982166497357618025500640330972764674559598824348975462074277826120350440545324379804257718944083655528505445533251985200667919062523899860841501949466657127422219279928653981136898350067514043141108326448085818681673116988698132589280392041732196772938922358824610768022618805636541317131848468693491783458456595441613464608347879775582934153835901091280422387934297130543431073861759897828825222291786362425177687662714756931338697039482942101269174648707941541198894850617405197731046823974001617611365872231488314212605176495219749624495086542058252075777316169211410824626735514315083258666420311384427300036349609378781461266152177168952292014467526729805332616827582677497364135105980117917649011465485868360120883495814322977609165331556900412498091012975580693925914892893621987332734645996872167702500556184105970781272089183031394282956820296069397231236629686094196332735275480681411096359002627329834569344847892790315776567370092663697962446727952059794707416616885827161242499351039302108538850716480958826597860807277443213108231050598049125646585873490445202796109685365846426165404775659035783303665224154794045474090445087099906133730132073119998262478018361034151245370846670049176834809597527571797966243299360500193146205042892108681764316613390378740635344413224053747045962550597421149408314187314404314486274163508208050453896614580378327681695038598543779762939831563014470111657067338646866207766792901741973145879070238559398007960780796260257704063117485761646776273589027360484935581606638220858075420230623469942981429155515273023518743927970672933515775044730176103929289035393171610063489796151687408764984070074639435857577684974795169730897088730855820178365190370861535737749728918638640696924999205763100318103697748404930771268399705849222135184443869934930811209498010413165082028692750105401788556331495689476003404434506317825112330016067036178802424753241806096359040963401285743785294365840010927511819813970074454400076574133536808873527333020824188207384580638557090590848310760002040734163643409674471378596962650657976625346803879015587951198838679553360405890493429275171740687351726822574035268645945867879112411601264830210260268183664304314148652985861036981207862234163605234269441908682713355514981424895441164634460925082629116308268849338747314463602741785383556892950225633755924579480242114375774610107869606002469640276739913462023955079133971464665702220926626179309485554194150247733992692779827753763108741511730742507998100908133952574394660267607924765175639821694643205924616679285516967976150315361518704009369062804143908369381908349147661401297063943905684720793373033085119907738946946139814194995873898662080527155238282004541149489128314756096474823465338026607127351688476090536031365351903108593044334956366120862320048046621666177009957529115744268070882337279538403231985216803931801959436463641406502568000237649315427281539079246596330133377285434701861309358113422339137874798421069514222422602471128037557298149112456537091123806199905256038816813885516794733469684768824438656411093085616112578307986008683746449332146086295478521741642626092132478478583107183072437461237013463563154237344450995141179558959899722892770532068411013564577250073976919908751325685762704918910655374557126991562466855693450203068294328891754508588870199699908816415004054525398325944437891055611919366403684793867913691487951066246379064894605783150004192769235501200311799640991537034503661573773300532266659090927048859360857823487008211791715714621758320148363401633200795574415642155348905805569996405781857702015982977203754948110467464513327835217865513420889181485159474035010802754089273295181238133059695899719326661505747251124110629109887292025200031982312601669462433681739446475491132283451679425398681972619128881564535279985820808279493401278501166638901867562808010854051500878007838827563190706336684667589729822868057727468814010591270862746844768654631953566611925655514754115171942226904798839866234492506523191066096184853565065232852931832329977270812199363820730464512185704261861410145711835254702795182822329768292168270344321265528137686216014665668047472847706075125979079387004200466636293176481842683558768032014454410275373766180448389714589469164467937599518979843370597477527753460031942503240561792313535279605034334416770130061320749087553207059442303002077013023381540888875159780398591610151936304210970953195273493707799946129946943952919181920474853768228986250484061438429044869155129453709103677883136823655449888167804483164333201112800618083145660454072186853486897617356465783823751891023706486125755130823504331675638235526860919541533065728951657689113292362511785235650922255210983944907380115792320912468103235189235613154196307607483778298347689076103725618046179197019640602455922366794057485014202473900058728276475920597798031956507540621510321337126679288706280113827704604508384136347229848408803481912092104183209731929600727120716714276949155722425084413007838441343758428915541063076659072193969242639269098294642938405231237127191104011278600682397945376579348184059315245124342061371688690598053171002048233593942717041965211750334164433191776909001430117962867470714832099017015514716505634626258291465429133746995898549983976348765240833401496627426712075314570563706023863403637113110611687742946488520751595892728636592698196034061298396888633306527498790363296104293237658378363594318992697901486693017085299451591388735421359697849235154768927366608497098655934568277096375497873841557880192251076419598014929113322378253117616238087432992082321613838809328147323910350807452585720184582636254548544048260063029820869576607137663120509540418527508516047441456121316873232004505684273477632563648115007442572338004101818032438097543565283653474207904902593287825083211114589932748547804355903929210368803513771671746748220402752948136468936144713802760296071537564765495275044991344867079269012692956144202595767677701437523831035722880989230392518282957104257860857071845758391689633157634795694160944246795132041088183810013402777436074858565758279618415575443679321355707240229369154944288310119304413560730597505296580431899607480424681588982171611346476906216179297967660078700378591410015839533995433182326837760020087169917630134422194862257761852385468690834448195994329241941650464349377729301495047616715568850743493314120862774341167628650619773692836187423593122505594913677360675792083137489107882415126505746427375672893468166709808178960520828015526798460603424887187265574038063363781930617947207863343611563264653425699208430168445179271034068549972714727692984171080548515556466059475405243523236775544269311489475885529950685286831606702776584420026792025052330921401007664943423931127297241267400617989331594231008616898052774809512155003861545653476277829648327660714038154093590556621921522629276255382569703216405120128468904144651524571315390530401048934343397538069666030476726232299706422681386658703715405439400299610855446648841080999990728254842398967823804830542146846531527412242651535217815254786568473334127252094666161980989336711976118424341117271422891743611071372322348175493350837988740803880571448482030920423609033419169266449331560252625711187406823019325615205541307275372801259290006412710374328336984399359945522429420630051152318718577141843372131298769165770514834923066990765502955107656602521480896389993967814153662647338694326911068819060735501453762806223201595241270438621359876439274840901293332309392253553492844690208047598959116162748779902889619523835712228081527763339082235332099585186866196911862332645819639082397016752287678784941852041518294776318885241305632535708374258100755612078783598329700469482292674085095205725776766537351140626004092618874481915355120706504703695475017107516961494721975500572347861691507271663769387276561877526400723619861360633284934558675312078397974276799829423465940110579082438913960403326225756725510911627305087005545147856945875952628661530962766804735962698679670275114653369054262613464645977756287062910575665441752629247431036352569435202557921037679913985479916949743639247030207537238250955040386321831122447632158841485570506312530286210787930085524169771753113488571222080970469689304701326779649010857341966603782385149500906206420638488678689326585746420692467729657109241059309501862618043896975301895456809481584168263658637468419018855835321474198629821298019511614705351765274798152639138835530603562646231453606588536004840640302921119817696737787317950498344111404049677503387152360501226298388026548838742183146039898335138794146301632669404228325154667688231263962564590209742456504179238444723634051621117533876195601056907002998811743705024973077589740307415023553666755183590879327910885117276816722267773794046723922287487826215048694157708921127436235873122829559644426636032182863354171730791276472557132496804872676808413812786905163128322033347316432093436770183589973505550986928244839832917734347386523030374514734979324538280304828986893281174176031914301875390011264887940981978507394305144095089772762758385738265198263409776925342089585625574879004045936583485651252936504443445045697785761481550335138487928910039033069318615240406406151586389185450781583810966377973354319073711382141830856009426994379473442645688367215334454281018339210775677159732070962650053883979832230108576161064896159277891476485079744578527607045485939183980831341576806998216029838832833065304495989188097844244034235473337945767004045624367066907880450911438788876918466046118358714710764014140504764956661913633920582615332730791980031227066380982283101402135491935843410067014626526322830145760792131424130861323281175174763620887715225628715900197092749723248403259332159560610756307216135553576917923197093880103903732634062929657503793313725297094817082932171963097303091272987838746083044905347545444863035698738867335530092642624640966782174071955261719207666680300163297528868478143542016405812453074207724622886137870254208055296139503307712455269460735785423815942197416924563970522423011868373945218644412779867948741960172998035578876023764851363355710809225555490499024324173182283304548330676836290056303790278267925025271985608913865980786693283293499243089313403896337080257572014816268951317691034405471815769368243858411015509680169224651424825987875049845119024124783571307592518675283291392241608829338535880683400114997636916099546010426617190915797754013350753635828146411110037261568551433891401030992697924330979596056135546410413451222788498821722248427536988929460350136117880379498120740778931155176144871494683897472945914582244098090271753684653997999939048893360116322263747869401448505522741002383726751246864684290956151202972331852733289671766826449004801311651431466463576449926934350251828372676844967924161278374292701502342793654704631200044907389561127607032718494005742070258051281844087451013761633903056378787285610996296789549320979030423979144623817396179205751779520808275163798123871099890842657961941593791914076729473858272942187118996196567513295290107028845306483389992107226189271152723025452592169254052143906303697672562560075698320698555326135658383459759010095608960021541610867198884648240781806081065374010817618474832161070631617599456543048789388457369101054069237795536834173725671495731663065077883616565182143609687739899044595021430044853894684349752624953764296923335013617643508701639812697077191490640298634196622855010870529348060349402983313249378221203824783470208327979060888831356365994308795676877187067370771303367282464606567580900843131189370686793399119061041765481072596217256979222817287592790450526236036504649138342823560982893542627257300457456576730506704535065409433588452494780208326209737663415096141872655432033804800227954066279533264175365489917224404713145533923621780848949717846599303803931706619101866310645313152900144524715387443635171251125339420904090295350031974003075972872377653390568852667271118695109599362809985078505601522376101358836033949524259094496919700269994185948430505191564731203098545101864038052481420993021250865454357659514280054452992397554546611868372243652600123385130293602988229812028776324983440703279557233885301391757128438074936179178052133347688192848045388824291135398339959754367619502481720844323039796285133130884445877671238786422219477100164654894488432098721344636608466277530441044344967552457158086851803233449197246041172461626210840330946347109946224445835411778272119351312441409641053006939549531253310492825193611057452609387901012505148213583751317498154901816850107998500478560647982271530780583912131237813692966758389168703202005946895891122152973906481027462348717696352034773230200941431941649639748169156644591552045807394042791019517977418970644105356469992480711988428034302611128565750494048040033392510728086960526324893499827637005138770757866834814280540588573426396155134103073145323063120993687977431364058794329844848017163544671262412800976067785583908172689502303423710720703122217172429262929060319798158645422472179594528023249850923704931428564086625080471833314920920052996192158069927863593168361435782092889416775783096080368223301029005710348827211564367534350996661558094349455640243321466731669443451058310100353734564054408723241283640798974987921283083462598981020442309218966982591449472003694619815391409131518408822215823829528167942577051933787845407261681625532054108209101051466030698021379366250838688617862111078826695203527464217634150097919362828376624356836546553871200485305393954927892312392985532644428674668671456041551265161511800333889711052791428888892318673575388659050524418418986783280039998589625519732728810730395631591366918867015053005157350888324285469401464962623493640668366682989473430567204000992907829514883760069068804077190063944048324273200753497190979706473446593807747469586543381638750696851909695375299306784759829047807130635091637905252366220966806629603965730922724533229147730657965973450587112494445370961691952052750162642506208766421204604466687576675173421977612503031989154203860945004979941151656320148031491331844318190308532452633995187625353587127801692056784132594627766872302009999336269041526932326491234115725098478073894745960439868737339355129529848343833914866655745162134547236610894696569186629091174892127703432388971879886897093087343745980057720331662244946278408797244670647893448458300879907247209174887682761327578126347530229321160593828547544847373415656052551318971631490831241577666241800082694754867160298171080704420844311163768179152946436584160008506034716759357990215108699373598418917515761126515499870816911764964889669072238605393844579647117950106968067898118182652270026008136256606481253391692884251691105250628439229170827762693121547485215092200097604009973973112499823790564168257910809853145560009088165601411819748052766252303177498550861308372260247533775392921659348301068533513609635509382940283677976062036143451724736909649644834288439182408144321727740342397934705819050226930010811178456098265673188354495902408865921203197144448034509081517722189872116052130078915284673819444262828062558006320509436704132822544290185201955898668767382926780995711891858921630668569352134841091340942435400363671522474239721345796922483368985362153857096102510427800126336706339335025850554747936107017201676108875765191492612802705595613462231956200548679183416572909482370828213793989092726066788954010871830624857436048667193077156291946404687891601900974812171439417790984074921506236301904264526211969759191091087839698152108212779569248425524446536407483041807483004455902604931897515759490028712862299442055014047000454742250980202321503822031897239941835247536308753804699061048294350082032985014861427142444545554413724357657813847749067950579460592861207796317313128658750572454654828301948007601596212216547730690388753334174027051613804016157170324490216508620389371281394324957901062500147572728543372115944672697500459473953234264645749386829001026002562766972755697980739372536730596153088310383934448909306106795407576409615513917850129773732151181288320772371964165052199359507934432117982887486029502893938040811076793134521868586919624271355461583696998598769913086529488175560361144641203542961773160825017855352525070972862048269818854619362246285595436789686173087400759389753858442783245434205475844854950760231163613658598602848784486263292966447242465515970403868179511894175760986347876634960249127737482077543501266253981348523334193650730208836624264490374132562131158657070248161225898678592006483530048712534124435507205650155650270180529037570383984810294992046510332636197050009942731256865476381457316834685037067751291845710945068201864749106592019852541063006081025820231792279486309382260599331406470526985267489075451227083851628531681227380929297648191344448557781622098146741296553389479863235385178521880957773709943429078019121909186444911506332063756244787179578957817096143304912628326830103222154928814212037961315704852823656095796967829590699313456307912040214022872548040068764642724316504842739456171323757860404072272326097348163214911208510274279299224487712698115113438347819018511098083432203540252704062788579322224517307188429392386585104728165989111144579591458967460864563043384856975551562579655388038296876885054816581388553020222946509955951474754944818999596776069194384429204329212493616711373003690246832530939019426496558230785527536692126099433430513932361588690095449460135770329216183050163901240000536911062497443294997043740639484143160577325887035022639190880731468125519964032255221207192649229803490724863701696975837281838292042128096150745000186349818467804502266447470962807790358166197929233050086581187911958186621243842748571340531489497141187133061427903356807610420777159824486177128438093145332662186805668765447512980398169803863816973810016261577030276198262126874984619513659702634668079515411504488433791051450197197872794766638413941883325015305705943026645810419334246425851446683813927987364601147092197941192142793786043819459924954501844368276405872235214962646975612919458670504759596765322285016430662982310238635985013335858445339533241954822996037726581668138044936786801272321059970495269606750800845294939780902511698574461490835907712511660987628391723964016028472565060128729918830669358089876632454111525902687791481704596697203033505065245825949043857583745871156187223738839939083482793041215876678735370822287486754673654960121335344180580275996695620810933824078406763462988055412842421673349684126286705872380432377185030363312287420150772111278084929911396789104216664475877678952361201248005550745141462018779633565984015179619177308579307654925722592041513376014563385990497988137343787764380121702100731010298090505286276450763211243730751580586153592961933479903548920623303518318143246826478595801438240316055601657677836471120716625778828311443994707580144364850755431250480080534342751980555084736061665289449399849919044345700913388869381022245288340846267094161029901396456254842137755022340847259743643406420290230807535619491804160744320017270019998770025776993682134517804296605606185608413494542879029259797105496144663767446019971767733203459344594358319933386110088241778346477078998695975505192069973338657709577477719185153405520667351210840470716191340487055601082136139756646859323897746623143203550549156493536689122953411421522643424602221986000693712020156732368523829484027495141567583855638057325709387014053367632694125077029809526309438397539924830724091644602815832519238860092317325477967749367923369021175947612193676911306623607683228704174230401145259928425392069477428775872203637697724094304101009479120996923596649558765977134747870059464350359972838877776344120908857897114351639292638114601496928448982619813826516631373531581654046058270907366674786310903451733831893824731270323022621716795728348550732815828798917257835284239952670393512212990854627863034631247467106779468276693144348265386645848199857139077240600849382867790849992500101122500975166022328780964200328182396492195818539596677588872519735521667354615090761957307507585757175580126488362907256099165439319480415865721593614917981673850458988335664636872850559553533971887771078442365967342726394174903056961934637356631482338920801710974692321988318782473630350434016054466222764845462329477107754729556757985133356494714626723256915870975313094657291265959564878910139670016627793760991186150585627696286494224602993667047709880994459751740856631549602890471961728503368279911938424408376793034357241327547037953398325024185073252861771366912102212361625670661531046243428050531216170192525743999967830182544741865373671157300754315502902743825105342983338826262222938499242444116163991462650758992042049803388564437291781905613291051108678532274827779455374698404282160109483244793231026518805907168608698613873382072862557326125380250365913350828341450466630978360037689956128702284242878253346246944195212656574779322647700777639449180630492127942654209215778272276034794200296979080717243185799017018632767529040524065145679990592578772840005300885603413720425227214648273002888904612598730309266506082989224400473663271133065328665179579341483509477484812954885974666352498826741623726014510113726716148921043380515295468858334829904148011133437567874494807948243334809780101479769253414416133258371523353883547255498331849608462131671387975704081494744726310479659553957670637172438557861932567779077721450406886102687753538306813581218104855041464249880866084889665178409720320896852896535471377247025618109974327693376713616247381383181186922914252352640905071151227827578217280019423445495138695579710529716962184873712596342056552806841064929281517946701087443757632437830112805439622740585087646693522381676609463963225506046752356950529682669708379115357674324872801426270188219303772185443048694867190572386438361636517179238507807186927372789826966053332371907198883589749689787867974839509237063874587653946864034883036009465384572778138703522151043710879306004619133590493933173475583834675311575314184915995249484603194852884042466753181552277099397879097555805989074751400435817500587421413661253300122825918830848499555549791629270704299689666291828157083316426690242758408361442092250243872365879257460684546400303301678290741234945030101895517965638823741707110796874710259470843675423273202598480979955569731528998484708252959535061128501198156700358640385073321658288508323141002517373129439453880681231950224582482658942536498277659153581212819729279944116149741001892495473388614198055469601062395115532882655767701911645097331986095686148031750967306806830462516943809476641083239651096397410130921416359616053313896673931008383029857111941919890848077601201483814722812828093510828519316598546263063738920271294338746332090367917792400226183289671546080928888650598443279976872390868367664208933552648751068340901430229189325667219614064150535147793342787073145047365579807020524785053993119361570159638195622303697750136570777710411727089523329255389540008321974749774884116529836073361406746149966166975360721576162279896579171859724490592402109589343831388543507564814966666936779046802705562996503505350526876226158516598797212569349400936525327737831292956236787848009257615894949249384596046369029346704995893225583169961749850355854004333944219275693543604459861801546535278225319307882187763627127527833346590179486717013244509266620597406699912359018483433846014489071974824880556290387600754603578130231947632629498758291875940427829779560241431295561357580556682661844393338852046183686667401589287153674511016870354120108047652055379296527835994081601462492680726004043711418208097247101857381960318785098408710751707668765273587959131869233004388738781451154626036610326945453790066375426363778713329072328420563851984638981507765595094372516681705345142738608542534511507702836019646727435389424469586561561084752093954377430511970432387571528520412397222530304999633727814834214209023901430166593380292021453383966882193241136700269315395592890378210130980497560719757907696527116781062061352291727553119627274593242795460846437668031883823290254611678483018748727447269532924959376489305728684386447438989504176629520850579095762478855526899281823433366290017637219876024542876043624060781538055017440126678827625805879974676663828325110816561263169858895412566656217934269603533588335013887218957233192902102477434483000052954834518025937377991303771426419849345264679400529163199655780015485492203335401736250295628833534226151913036526121500875792502923623050169678196965131484728421418549196453184157087417675247597814472508710865124690773956636745858989139897512562798223760006561953419565900491321507181250065757015042454321621156122094085210593513674790628029318179604914553457916177155867330586195364482100923033374181025510401682746774709557911371125941134477758142086610628970471798325001861645358668516527074128336787104195714481704961139080367989696550175541341379188582207820248991894794769673508018582787416384767930769391902194824925682210548984417776059484238697854001941823756810865778718905534173554861020392316323642385948022737228324517649541615717173501808077180277109315663175273220617912736047081758801676472546929684670769932474720400593229575433676140234230518245980304751735494233530110415833148774588708993866516743795781137958417159403005815628190863334511872049268849275329691439526586752501623831239542890311730220202733233753353541352239420113009116072726320817238739476013522106527286418511477928053113243303583663827380910637226686823957186170828507103387676354996815440053338180492631607606092139092920510353418071226239428928210157513038336218676318253876825220277321555586041937305872516229049135897929235204417758961425819518378692047738700974350284212216082440148197689597205493546085721812153306683411191311472591793148486355889529756583924281117056213562776052090973482599611696385175183884099850914217789844224409341495643751956428459020399762131613224562063647003051085348134392548655173540548230939842279029662786146246265456776967824881487537178244376511887468520830827601093648943650718575605960981733070255948083127879399942642755562148219637126037779439893804893291279211426049807733568763455653855706636305993152527473771149188052860809408472620238156150482296712518929463917902552156597259026036947324220919376969643824193159825613204577309964914573750824886081604306416355103250497369667097809539072918816530280931090725305478900974367841296863671036693510373840821052798184414322472088268715806002014914092871983932784775999466559010240564689188053350825516956515142879151990391671425567482643558541225542894974696902878036829239697235597348407164475734072670312962615758692371375246566652214171332848679611060515469194133993710914580288675628830126334307881797680334281182099067146238100841443054154163577152001608269979535707864172635017587474440285811798289662215660637693532557727256997319252564976714728865058411517602157706397848747276106127273045737228482632891132222843171464221819956801417364260470554368892215339293746946249053003924446019901116623977258705875906112901264155695150169929201113399362238163895226795186074302640996653538142648625334863152466773718358557226508775216168679211608416490880807521170039103869142128012741005686763820895721099922422316046852214730948636801106855904800059600172052822742099705506426668469927702399469870846350684800241751152163023800714773434432950484125849733741669570969240443618426961368608946782919417394964027092511850424593451073166943481873475097964161652403866176441778667129428670489062645805331379154954706512602590225209999101297888215973269875209402562648823290414521564224152293003525544956860777770796333925255763335968096728366307504466474652014755936957771019911792797116456659898810889566038813477764374726346098448191537164026869052591696005476755399884286323342915855438047292932811789556362039413457702003181018144233866601546735967405095678199970051191433551646422453556861943830881494064066169291313362117854582694230135184318471512740088800901364071577943176330238640419903742217595888294874870767542870251291557804231644980620151902432680883802495308028071421733278051966710657941053539261921338599139052252238727247628186235767627050496518290594355408117572752473077813252151764977882766621430169029108103594175405846691886838453762489044490565972238055998527621405462558828735766373971251720917709381059063400734447169033203017565110753152252655064746281845547140286100361398323289913463775972001379518289607146866881217486644001672750864798057632613477511339330570130239001349909889502996314201775450787274445356869996898943475642868626625532292361084940715411226702233002392475140619711250069921950599207677252200705095985793029387245632729999341440698754828407700819751918622214020960111165655434791323248814278698904107493749862429381304070021839042316878337117485679632937994226789420777229736670536217289569930778099199810615663020344986184172513633472985958240847702270592646873574499629738714072919484628486443042857072853697945592791130068413974204982338778873981958922552784700597947167977581118041052885830941972672351757047692674627776146283689561707541735671936989623843329130844490306193853367307196290958211892914813197538696049735742536258814823188621988865221296569651455950530023509776899300545196352295664490335618088553603387333912205295952311368662287838750038692357907639419990578051991776478190382682521239003735549284671225426472733122447601512700514404610648377024897493557879090579772729256607024052677084908768014252079701128864013270741757169469014679967052782379850655829156681007923104644197265868325540330999302557116783482152395463165278848616307487525032707059673311425609981131868861653603132980638127670919931962125743281672581827186094075607089731278377999347846928326619178017133144209482170733177703103506849635572739878128841336523592386086271143285734168976763539288056674003494649380078545036202978031823916105259672143570164492127845360868235941017555309414164474420301482560636981537559918139698387997107356750723737197050608126725172599250101614416803791060589658068687351967973559139050199271330936262857849265785239131182409920861374735834609504401104012649741473390057201182273445338286695876401070919769560015985831041838100944775393841004011193066991454855017750984631382948171319887594857697998176174294633313427597769501044096238489015864580417254013476675515093127012495779376101330203898830076551940873417464767969345881273386563268298607459848799330336920322764681390518824771681969690701752489289192033895201669966386217362234531890892607390376142311168780058148069617050366420061352903937091388033761937927100131419377234474135775726929826080167402008098853879296510586771964567594409075940234517690560816583716111066905291938209703380387290694486256842674989043907904974662451058890544227163466756018008978067396700810041633650232739746322889836183515091322250976863932054518160281518599761961689950813860768207651331646089843979842379230453581125779606758667866890311997585331926249345572830958524978073817571594805877427644099930306902268180519284669354445837695977466788428026689820398439765459837574914282785852687709721243629937442331608412929575419743477534187462040788365129723131686087107679925044932047813230194203707506687310240885168318111301903562401676565927811281647307457031361716378565482081013502984106493201947278830064047626068741518366727124409994244475198205443683372420192340456970946245869238899195990574203646776862934413678459843489054547778590353332918933986998060253118742620922330372778433536635714320101358650347695492203153382662301554093214108990777151689742176505111041697142483676467426751406643389800148417622840632179994200478625391175578950355546191503842790023146798696998494400301782655959915205907924393630741097072344675096545538731415328180269649653429130085901042826375041428031528887279048793800737934958062918155211452862614112789145087754472958605673307789124436822182725323292886887249020946496539386382745431946168687242519876335759571389370448425290140872635789777653394020763052095356594445265482044251204997996896221461352179720663328115376593853423507645141541394885775241427262512987062388450011393352424384023319839839923200955617197297590985705321159993679965402983845626151486591551378290666932226036331884215215322473064265547839553844557971788275819412594421522169812354439588749958204929160154359491786393416114217907675461863287092709418099282614098522074876461107899118556865946210170421924169529262626240117958904670657810652242955769053804063927054025187755858425932684698782249370319473937797264303307914805087306160589956103322203239716208734469566849051328037903846107873244963615682871672919439162258483587832892204885928967843099366155612474089834298705196776241443184272060727856162991425796885701224367820539309909627265941209586511455285340218361854136188490022267968671852192943555654515179424511327397118935301140626888718487028350573795573415238437609902656201191450010162205434560051146081882191826403979984830317790846193976445253256923328376746357600632851976129291871374529917062313078864271688758080367228800950135971742650811621656072178051160043049097883917911534757942387990233096530135505234405354368777772162938190415204501532319807255340324922580103265546877214684037605465862444366828373979187988514397935387116849473739246287521320372992879535473262506359377685457127569438784670807797973731201851982933258741324889280739044653488539260249542913235022199287261329601890784022585152503092069558850861625339061272228314814766487113060290393809887765049566707081776502333472966548539125487869932680963093341676610634629679478394134349870453056351445138004630713770146032790738842143546956427702994651834544554728210994591654668449537681963095175866413773502732527741864856130776504234881626517592747995147557660222653965559863406978987870827354494395821121182353211813059856218861658939058454635425947582247441487704693205383337863958930462183116906602640569757558712019882529695125445444026063333628113518072825558524183204997476466198137812695816750165735131127198305462052292847702138463978278169463387372268938094280258759350320177864225048338498803006840312401970763708302656876222475371245875036616216750123945043891640509089178152498315714535792507651610139275615315278668159244998767755021500175142453574336247981286826401456905583194280304432302178831110105873797147758780824821668689994242782241808011330778164636484680105837610959371848333108788211646539025017586589733931515078031359425747215985594271488375532212491664142574869659275951922697277718558044464391931571011229738724863000482078059399118436853729880201619418240216635150207405690863567716241567861426184993913401927291626885794671973929429808303343380853053221023006330617491954753429073559639237520240834119880668617998874091057426378977034257705107994608374943393916112892395601845593980491526823982542227732804117204573891893026186460262163315826506791559857422353285510653975789119545811774236998409858520765835833105542358888061643660961063404075434608684354740983291002459325420228771814248308396550970708697117884664711853527324974501809847269118235796790118858070737204769723067124971190000841229080098250825365419630799392828274682634263637800720650820060471457870793764869107747174732765545845142202477221662962221297616296181124453894583975955495212588225413553779614100109557775955053892944816441788077127675806494135873388936815642151159919668278403935436267299030666387817630549881091030269040600084676433081882678507255808808597736774061321353498701853245797567230249047907632091627044956375259166214063346770446521834250877639556894892231245771041846591736672164812898082898493707600071109183002751972557947425662425949697829591435551494986420213568113427568572730249266192892547369595190070045541485552540575178350558316836291515189537793797189757161998965165801003345971514660916344239663447219165526550493160313031969480488502588031083562564131317531251337908922248834176907607769996951002853916684373931539805848141196568721830916231405079108706782923571407877994324833341375172660295389399575823971694195585381716211150801127245551101871216529456743775040158645597659822923805375388892760390357029853642863786454355092355572325979178606596767961207832719728932196709636868113330649383426187614839948141066990699156576810268113902438770689653764951529279415392618779703267602452105506376666618709548602342897993850784333126112976142440642447039130102668473758627141278817847422887967850284962158473055786237767817621281366116136665070242588050307118320272880600012445306106160180370247057722741577323553110396515496594103066536430832019581333150284897122381774320651938641902609794371406077858833768923970779489524890976404201116423760486485535535484644191733806113544402366285369012519246997907364017811729543569776164328113749831162382660570707576341781846613436058867549034021158480826939285084588361902155735877078373771990802716999815043019079664707523290076622019626770501719870594543228085058908984552189771965932560316402508823592096108551044779474971938977877083466577937993968873582794149119837631412446191779984018733310129378294080574591509692302610697937529595535102024241199852084077329687776310895418403179557580056501966420973359615487101424107398419842256665672747997925808820755615211424099966474101493657559819894814061099867845987019700749520070042466792694174427040879859351987156554844572876128506531309583549335817287794299748228136772966712957921511796205134029340941528347735776475330292899613335190487885325442855958008395120557684257894474466755412391970508835564648267096093351685033926865817403633744632525425754658981637934548276584267509642836529528390520811545453578568629395715306757841292716985414854077468946863690725417621897038710029991831631405711672923540075049477588079906597643152169386860173783845898555769223265376516678867580781082613340973642483462012151450312206287550052133845049342046528172215020774454736112947383315581299982351201254552544064098097434433685392595285666265092841404542352104100382165044199796461953209549756636747609790097170052721411692621027710063594582365426609658561988939854379191687341088647997328769372600038157304918066083933189356236517783326180984826961870873613186315463351167129602303337666111299633178489803899665287046931380230657632438895846074142957381689083605989047978103837746506814073855186181777253718286473489414455344588074202120406040281765897346688355036782369823905000741122749393462724584457949077893770577334128478963761221025309607597764162462568724177851767528218987529393395256987908756311943028354915279542870842426691471642045362323407504395309641794036871515473587904402295905851772451238603183395350056248465332521361026868793721356528522747939681695417298638904708691233389976178970743426873563429545245114182673617240009311475141007255734932152230092022643171850020732857395056417052641890376399696106072552234311571327181440108315150518568360422550231144669830285615037866142216850428767479752414012528667722082813562734768306185751223690143348929526228554772286131412606885374387175581881411604622442841511099126575180240679541734682221606764368789593348505511794789491485099487866695930188874991378679316579092729005360210047648654735856397040165479908612265923671245071252741428532803944903665127329828331086182861674040034619264231364179957266246323014454099975902684342606793639149035990702587736297670270829310225629519864959695002833122643941016956317819304139638791336936396350173550460913967955652793272344617495088840741795867051629890013043390023085633998439822627828737453661354635843070269157296956005768961920104631541095484659300230216681922983424729193291479700805187566750290242939983842638180325628464170481506455775588364233128307746118975279271879328350638605366521859274271969344831982990034627892634229622628799231037008743962628786181791707730792865413152969965660456707899324009237177467580295157437440888308515454559600972402103514904479189463967905783491688759761605792475467476011290248318652359122627198812114725187336255897743766169096411544876157327875981298697896599075564966562297848207602040042134841089334505199643985690749669952983206484535283494808597013861874464492694838320058076440592400878566989815710639305119055095341152468846856452488030146548903956386824815764258215043815564086693808145978664831545938664321534340661389116059514159422851380775180445144540559964011325686157498568436652047362000830585195069414077802646507178700291829871679400415615962620392263717888697907238103362378429518078701399848897885442916594829268473135012917373188464286072734574469628883976929375357343411012509147373703034395724248984034557667429657009762028621961913659269248409025122681951451736386330700091193511142085523594407801397869495451979630338283118546210207041580342510264332939671981858499363881802254960629999375149376176272011567859984587855754929643156877384641446028539156461089613175330199690638684975017401553047507478686738709227269902140917820852498968168236869259012815795409821441230484899627464161842512723249006129888486304099923048804436752376090008900089216510646606793816278008806959307916341506629125773937636819268495852041562749558840150323974932208006640966087474410429548717603754007940473359385519410013662062319806697352185675670281745003457070717334972173731439931311048250445204505677686555507011425579576702576642597581955254941889845990981509079941412882947238745576555129934547482612865065617261722245467330872386547756395045477593978260826446473618946107336631244296548695829131733565643200244854638859659191829032911952227791603763269045756137307364269339577112676879202233878049176675154388967422164177300278660905217937920104878301210703096345552322590487070539219139809233428541498699529954984231523386375518666469236005029944725573008587584685535183407718796875071208420373201443304167981970538259609874441124004062439141756778612917779986737655077488341381551726020687848783220914132706286881959613754959048747827944917469009620708889869714886420466645717559824989235791184415752059864404630281612333356410739469492404885631055041435548182072338926840304033118131944874822164980755946598628136576920020462972228151342211409655875484467298093790049618046294818487999881829670485685597243960185287959877224461423477216341636605434796456726838712874774885595055356874586027806864425983956046580068092971325188920509455664901840943579418794986425594766021524465456335374100940551611888878643757457118950346605093198382678574392632589531880425919055500486709612294363080767668586506918126710800039621409827816058753539978054119484460066273306168157263236285679315808670962614201997300191264670479403889094737676249562393782235705210103266506767885503027572316264582711573961445821117873077424846672743212960297064472168544632764636589699265719041088429099742289752219230850847271739146583162539012481259858852111659553816793408018991513535886694421106662154433897527359752542167419987784968827784359650602635792731861345932677733649462187882905206506083122862518913107948758976757095183972170199999398588443530186189056070435244479271414258537295390532629510152559662035200179552832395922974286560768064111614603967017538395562642545413967835084674446060342366423623151090416734067713283542754439287139168203800608876868384858549439015167266702688766310604183364786060232518735759850490402819325271320730088770976668823150585912641479538171195271591323349708415313735150711054879741011632866854674740008112132550655015177198056397736354370534057859353333003305855412896161531447476151258674968482025764948166449952691799385638252518655576847266740884499725446491518827088630572844866952996646453008795241600371886339048130098592306594185671300041437030123225473328587822597411867650477039961130060754989429688804033419393625168784269386095413845502060913254948114743745182886368154105233936856249786560090090545486089803871218347817831094767355181047899954763762236862303659436187276010853113813983931436916267846875700963858543613310902604196587146742897115632288910629585043034871451587519038864680333584153854679949637233092035632656680876311946778329635197068284719370104777733374684127861244021375071353352296450833377010357322095852102280914848135398569188455722109405026595452841567095799159176043434325893198996648505840559003529113431520258436611767871569074723474861570100743639019049212876866725269588659339146178495558747806007105901970774538724119994694528003843388330770085503116058702222899453366470959234465205448787046816840250721495962572902310285696946292674835262373050611383414895100393988026664432352205292714630600468845375717707487888517847750376958384398031808917010195556723424706262548189457764684822102911901891216592122031691045164186349186130994699674800628968244017119738452433205423370221399664526465166629893272011537264391324835615055984702066760715993798922141563376765171979907726956708862063791216949999033968283229439487079226267791776176377637382878500097341312721762109674187123602237308091146438046098107747667697557300227338184404078587130799493297770928201621455792546291434195679206440102250932749395632446791880097124514916078212991563851011573298124038554845755566711084996611331311581458644076498649130011089669049999610352017693460993894248565258310088842197962287916328114735127482824553447675842979158427233433765628939236598055787527741480722059929160896672048880997780554944571258460346831224685299796510079223216965744816818138235247276201251757107047249213992289607321937245230578104363212037869799409099248961965653003999792212088108436184768344059227815381856723427141238735468783598882948645769350321423697539908010011676099990613148558588741851821328386109893093473704228062402288424154821927514381938121704140107282127912917169684265563302650604834075401088129067761519088042716147967394055477415526487252637036577352060358549665958851302703896442748304907821347761038965010675635019131339091740423428274620535565662238349883834157955091153874534592524187776870827508873353125838383152251187525363225193073339359602829928926017982049094502903861081376472105723864470396650778824557181120838435417802143532003918770547186262925751796396217213775889395397252841553375318535461377871595426902848804084085458765299382071196221402634421858675754318458540856509261229538422293572077855926656997257185901541611827166250350645180938678896248613967788050759704221483809727661382140722887555914288788194567211794372103121894531026330568803949514054160180331698561590561015502915738739909101997056063647831811062839242264995721910515449746771585757213446909951746026037156176813937182634741165704617322398952185515836064122979086156387377485731721412266794908360842642527940456147077396241415052182189743288558239361812637576937888270957450143203977012422850900477352265395754738728371093666308889268698089118297179766751602111596622407752220835874502046886929826043307088783236614215343782702570061654211542745176875656301659300065500903846072881185702395554327483500931739947156509420438828490417018362876144460149725262820835843120703297922031208116724485513876492789097508834430434150338707370117554630756245057609529576270154730874943284944840350451304325087165205953597467638736193997744692121680183465467655207246385769000545431095151692126307703292710128491499390923906131683260328042932362933720801745317601105754263805395248991866206660065149172728752057802977771450120958760207990401623309319041381381165419911029983250138264455623333104151188946282793182758001121701359196017868153573568940118421567996941154186984853377891765185703942736799909717364317177136856590483941722304901115749400141527419835513131993075358439408176446899283822365983956655898092226972999096841801245984751531689271492260705936043346495677893819866694907946908447833261694766520746336861222654631653325914900643991105302290723190135349429878540290980012252311086804633598222413087942581030531312081781456246936112774506274082718608863760726078896803072788688156122614401922411988710554353827723751310527403617719498170830840125149411889653392171069295583562214631245226891758645802471223725519803966389927830202578518944934275966544595997223436743355506126520355773782257815271858249785759592407843326789372327375182162158712577537341702792940923149974513166903033464805119981200913832095204061998306847905008299603417026977914651108972737919043136012645603034331894848264342230398558523954147936477532877251715581961872690640727358052469060708923686383581760093777406531603436465456719837095073909694346136804666757267649946939239434847515923460264212279334007221734395156938934989054358015289519501165755733449338256646272072305461515038511793272509719243635064894951343541310759473827275485958757636368652881503165992440758431243755649476285981111780043882813841845187074794121090443952633330701635733989896806323086047597745943520301523752224087252960179518385193898631488307849575724813470100780464187266508585292530320232670090798024654175426469467849762657951863505568435735448804431802398425808541381399931488445665135061041095573699993509211448076108346397587029509265622644712014175614566020426302646855807870567817084015179171785059498628352162405899561849160008776513189340841848843300446719631599475144499140824017500587902620810662129586369180150568846548558394384812151307144406240029011325572545848326303711410189002443159944136288564023391104582339369646621319005352438603695606601451042369199930583747683909985941479496374643328493976143265608015030575931586977878921421867416886847496164597807835599919509631902157119585008524502925375203998474940145053689501086177378644388031660552721287432855149370061146362079809463061642575783916607650695903125788199914769646947813943392422274438010948365667724075795993523200552079384203538564418940658744716152058772388582506671820716303011242829632833519285757842810569259154084669552881117396871087036037300557483412903273809919595842306003239597376435752553305247719541019039458026230399233862089954320554280637471881044631711881069876547248443188908139645651529260635755479265746999213002205793328884151960445540621435036850750028808895983757518968760845350242413543327173360838508521785330946947821304913540893225820212611015459522792213944321865190717822286293095712980214274101396966197556456316087741388298268969562233646716219422751022015390371465961898553991733022037838360355488349981174295182894502330228444302032472326435678085512166363002415456361319360519254600499440447648739918441937870711110675577569389479760623775141172720652376968322109470032857509895698301442919621894024679556099779657203653256503458715277598646702654493617680820667711375971906765257468283454880826183438885717509887748984579320699871690635427515096255870766116374021391449491389334501360795653253642330692112768587548678014335162146232119471118831439398368969343547257737592337453758905138433880972715490936710326334162127751631165688221273473012819747435467154445351407365129492333721591887293228754913650056866585648220678889922690296749411365276091451520134835412101232040591006262799335218953992001211114277944278332679373939129230833775452621625743150263007346622284460800406491680030897916082355736854154402512195674489691463573224433622878708614732582109491951944918005298505540928740625706962044097802151679570493367967239931039173854082416822675368594701743831901432436921463567352160927581835688905887630141154673476564619858760857003177585109154203372531386543916398837822084533485840319583789304719919307808540503156197539592842918629206420212729677637411418182528839911236653885455458910305707924834696387977435830874559201673102514196246842699290126697026848148190755648239440018983959379749262570197070364632675720993364406792363614236420609649567204979294219687965562128784800142863486054315235721637353532955261911866818114167883401573242200731544121597429014544612577786593601731981148523753335241139749311851433408270648999514109279062112384843675954956580791545913917247568435080695044348464373327762438656936935989586244560482392377905018404341380967260990370895161716590465704825986245198089368322180248979017981281402291473384106734009596403183270683332379986905791096054180565665499592877127620366479855951413933417306416672085297502444768903308268105530654342860310215014264554728219029894501393735678504028095136803836462608344765568006988064431673337416255825293183488618833880258091184769195036469378351025106835819600675731950640654437345647980326122424295554210944896450726876443006687156046512808672805578751717011946229180532521077187939191534654900506926649303027449652790901770338187114471895933363519497162694126489091528870197590998295569671589537749674793130250553532788784026614245163599082452636759717878224475117523302433356478736109696907752837049744904279872089483364043299169438562759185159890179495558822035832804465814282335334124217224610364201983500880981331283258352682679268694893623274533622851587502147213320765785556423360747110287248709282695070531681876530881886824584590279730564151963352472235877109676186503194036502717797905951199714397112761170521994677739190880452986095504172244446604452798443198654737746962776196984018868837253577731413647794226660146270899259309026515188415616007289337801765077821164836838509046812995581482957357760291686430577148746853220423094696955303269928195260619172694574200803953906350734590514925680266050302430176917788009752434155282968634389640544737681032690253927766209120678681563609361563912812389589845764401773510171129771367974450158034970880478336737059937754723001380225016712194950839249358521351007835782609437273221122978608587345686477761868569631540075559453627357688861647225122127772707605677288545492358799937311558502866724716784013355384618821695421378395748194595575188835476615970896746739476952621082012170053747407639001740970933905119190370400844523824265088277949134870468067019897179237408268869671678019632740820615263449768420333242309372028216223106892004942735702781654882846192858221250298491023867333207800201312253655408961410803800334625500102854869515175012455250352820233152331986023269059173908008206110784019765767354162808876439223762863032778862359359151094072145411318742499567686069019957892690408902397331524289991926447880019071002093073455779441118909535592916754576837169265572863566239956055845810885127428184301601203771938185349850888005670424482553939003522149607447049530609892142927669738577004844873785929454374657216289413345204772426581598893330760788195676329729519937610358390768705328269541243547468008958867212543284830046871594903943229824075765043764048132538856820336957693997756906205002257812642223132073096123248295561648527071589830102351759945479566766225596714875405449236433328959315244949285875112796585969822683742419586663427010794017635130327515923959077153372045013829693143762856049562797782509830425890477791612964851616437247063293436472681382036993438316476195350630013430409264101042756747816548204521356528499688185634088195650927121261596535112690901848107350593368224912341550313708651711445315432175041466513788769912044386526115525462814741370905056653164344193435445212566386083512748465746387687363706911758818751958756805761952582237481711579439394305343240352262255081000028436588200844346711437994340375283779506506181680177847686501445482002888962579672124723819245925923934874908061589874564049706793936478975832087425034153645226740201987769085222666109552711817470072845403610950424944583080311867864757407542489893407566422594190540864224586367625724897646628992166824869091650947164458700392616182868988628493401777148022681691086488876363166173099857446136394879461085358295385004296015913017007145976838994170124511370037255682977320085189295047209328780639343894402123078537767524345845127409165211394904479309708273361713441167924173159102271545441519274122792340922096852893413455240371762019604204950676807910010690667434934619727714733614295316785410239796800727528777797134799617798009203944935271260010406746284969782450085517679236776275059446017236876213774625589432414015063568698451413198406060669238588024051952204576741156687280624852870398229567135657952384545125326829823010851913967343451129330412027984206858130665915977565431223849275867074310644374041526222998174958838702466216669499781922643858534536796169810854530105088090314594282679085151086934344916272628571447628797097869561261938858427690905794694274585100143456207940611828696028319666768706513960033719058783479065729727871497727697671818041095192363356469674721902968279189837844808715623471906043243956216839642507258408729053159524398100630938270787296667529103384696665089834351238642686513650628336360330610806676520516990552897717788697603956835650549475520414240203555685444514695142595542427451839037654078194181817539733026625452655322477674903877973542156931953073320420627676354224745291646621347044271116097172121035944574514805573424239171105165136374167648595346909093105613430376315973760739283441871504120383424190008527415081223262532697971943001354632155705906083339124874001965905703364222555589915099007803720713167071447848440890250310674269914975368861958435410936858921516107465554641343943027008530054424193525677768935763410378032693947999249681501273639777981264342151152743542295071030324803520656795441329960950883254344604926937591414801610907075492495743041752897534346849457199036975310466984088788164594631923194283900732386691321031469096492997967786306959355207190738232517078371887102752106461634426087095055680086904526161196160810506385431902894244905335784325479863158256798834160771280594336482452772512201156316274957134294219531230476824561258101736895031806318577288409803154420794344670370930483186298232198866068624368724483546308296242422867139975373987324794489783349854664422258420327099998641086424866402229810783684090521281240842806301565928015053535624817506445008962259762507690122039690612727872084782013768147689000755827401742865302481417080472221313272808156628096626652538051097559455960481557967680087616266453881245532431922602193901643785161126368914725882996174577023012700464999194400100823004265662458944339855501431429052417702745673918493998063644751135981678411571161130312449363493658721885771076743654567464762302233674419459926496648442524292767900953584293533598247456732474348408861650666684972262912771794104604535669971022269426714393111728513081230440812614684425165591316361460825655087138431941426070671115855591217079348116048117866045862754547510024138986331075566717912051744814651923597562219715263452947696195905541621014011594357207478674339282280089041577414968021612193926622608526608080900791843700640616740112514025343014182682079607740251865523242968567585096255778920213752166036990005545989655251582803252852944560513154917392849905519343903251776306704271059845691075366037666528973462220194018337407379539403219363344228413988927505652692495788270633403304927104485368276701819216207171210366345371843985376061682573699923666367006942454417376666461814261186149163196720012208303876675983618276415179117776869909654769235353581602370969467396818919815350776323121833146249352673819783095952645171583235622256979906782752459072501258767893501049407965156499429031519395948752604501677321862091934010001837164919318358857415997547093110125883040324496673217816604563658373396453939239626564856264903594655196154213134525867367074183592712864060333736328167626607260644174916694907771640201532648320188696135453564346649565840638358168657304649277877500446695408901703036905225098094615499692890756935888497432864675139953500676681265578456314607466502263949629887825517845889756580610925974135417248249934805954826171005015158643131072752930586154390529640035454044413771210563089588217036555308077157785133047538662750925988448177811518164544883486746797472338516578372577835589081895309375218135423062787894772356677445659721551149153123295345715943516977774243840451705804639465618720593114328694886676262221061689201905436512916727338760052286790037687881813088503273270892496065941905927322963628981915184429289363656723097999955543274602892253984503927586790307520938432088009736217192733220004191498703185960825345858082160894706089143650434043774935621976170808817163007126245007894513215046941021065993324848957395753732679947115032717874302221208823546983330556691246707329919450707043353536826921742470392525725765185596352502753843673372241930289139536367980720095240296822262985296749931121155338289294221196363206968166189972946771756680568708608749996774321341291487655001712206430951326177554807436530866489801658159384856070845137077774435996406010331046465070622395210300021536390598113033287992149794532157242571569371093388641798608478463916367749128494258999502879806183256138809659543104003046204791008010943987786718047860721489461926671826234858092032685060061399222436435750182493337263406424065558366726667491056329659054116295114154881898017947710787202677008256893778237359516247301460906386600572802206706052274225023053289643182970421979468926418281323576181046907853643587821413651807037551680288334760563347218462621643987984868678082933793536708397208227022234650119853501072075802344273505524884434680531995710770773144200247508311969385314949049544968760737476090041302481085660536674761463897278246061914888443125839187787019939001117231841063086327687420369293215538675756388542469211015423667717750734056525479446882029561455102605271176893921972005022734989226918234602576805193823281709732425193475424235956913865818665234251523530792974351381822653939302619172754603732887461764559141104184339450931503177422161219347747902681109073779971373041166533531752361663821463241045896986245941137068262386553134985736993178973999770712378274629637340439740887434101992994772151825017783674343360015588487793850915685651848353422787930836586813037527963443726113754454915345105514325349568620668530000828902959952405615341608122579839781518076938881303565025686746193937370061683460292332879398462571190387365085942250350794498238811352550106490654018373488020414935784560265422468611166000943814891337716588025074423426638136351839869855249589769268015907410073428973601285544507952581176562962615004517563140738763704281116874218447328412947634113814788803876284080902616935827334067528023946639536948101012812748253071373913506133092617803192269068756735878012368840499034616303817189654785428229325187423266400697866350067264803743976740122632047121085554502742651415345998215342618818428932027944933546978243030094868465544136761750138673484144382266008520214707171918063507762759486850088019735656514631712156289127769602144013440997532513440228983921553133994144380433809954598673036936452367232054438089793451667661351561975156579485048709433192829238824701714712334145405853466137823674438681340086289784394184815333763758580781240116639844227820541855742222625109848149656909431913587652822589522012682162547034018385639257894041658447858189578347199002366021497449404660043386894974741349970160908306796081799952820699342070018601966648003144375080406861572115346112045589178883644828619551134477706629482922634824758246584382330385726334399182294990225089470684962051267736158252496731481915477999645673180704588378387973990465866046071192662963407878253189112957106325729933494049480758922540016063215566089571375226412626763192719174146236166875754104615984765720701546282265803020118030276103383807987922110182603716936570821981306007098634315374199358666836077937896788182009008424754479350844541040747048629299114430748224983472496021374052959110085792006120963320393340597381395948237218047740202283288761911778869183818007399945844446629679261492549098880559313265090495844519485426315789254680504104930668257415076958376309216603058244090198882960548167720816611995723683561762446430245022042925539708039934613307097490273968580703353399207040210103140585174108127240534781617488227851072090402444798338380382897265655156597925282707476408275398176630953993595607649202819030905783913896957637472919690263062719034675126571699352244566585402838831945024901146900513275509710097586719474349914777701836644582411124208024385236835297492936263659058908702930237528715787573268195972316231742946498782301277751398165868472997498628903793921771659093425703468590678170054702302540138488727680293945496111620004361387746784142531704936197439851676104995245286343302807807142504977410555337454955105069471045813863851667264159993772923536709737082442768834356759707505193789953526482427528973787711226639123116405914549770667546318494602863498450479267003619994744219005205596370536004752716204379417160496486399571474217275989974385706203305224715459964017158472141908599762423314825074622196671035385166222272497467347151669449584776995342287573488650902398507335819168583856589198576622984497421098409935889484142084331477652362915736797168628039457416784400295616835204437022948545900896248090059184262031797640793878364713349860136407178318810138387234102906916784020639201811666073486193980166926241502986631813710834361035550147715555613972609819703716669093035797814548192732250078342619848343310917816871038441374134471839689986544813781544600765612496419697539077229379898021636911292669981967855502590356231774930180729017130003499992250255787897470179945298454579781927282331223387249588646402536833917763510317202574682243702883827916334046211778399858907476522714431366653051939046848003860119495186813914569000202745149064570147068053928402122515865823711081775905140376986446147060549378522680735446278731332306272905573941625012537546361831488078958184553559038364612812740754794839925708593788953852658683492254697363177064262783381178506297145504375908009238612692739241281743195538784722394955331375183017176878105832941857625256540348714137157176874361503837911612590242906464787489481621974463078705189661749570236539224388186661556417254590225710527380274962327307927310562493904208445907693496061089111429996736258768427088478626819822423259340566990603807723344137472801416534553419365491778472865324003962123318034511123358424149584314211322832292341839686825099408130016487913271508763981266209380559741687385312021431456705438153073854074977220134621735118460841747424286877025272429242941720036784917739557597065994290534322282915484700837750110757940174891021136656927465868851006949296337251634668488676693327178398678600871113248726443564345681877778020125480433360666644435516280495455356053889907992826516544229721761440843927555399571265281645596095376738096592999386444263922713771164617482116531078790776366759797877158506647111186993080952633387648984303785101368248895789188923966861712167143969736364796189635712444563340262663260447392867747386509558658482150840085070889003576067235408619387065144120155323293643136014443254880893866645474438318087472932993359421750895617252593522793478700409013518081399247729165049981854738487525431217593221978611379603891184331854408091738547450379340904028488351749859428816564290585413328587917492689307936898532353921947261271118194869996391593877399795262683568234329708537694350491477048641938378162524293338701075036607839607324000270978382992707707033850368131047510718628680132166428499601990132741819523119085216597573589388219096235949203008648711935548909827904380440565148141561031308317248952224653058309123924504054898500644221047240512638904530472908057141100191730603155651765349950492587514660916311658959851917719020261861775676588421228424878423558956482997244656368405632065267349256798284678330555237867730542384676824474669898319760165151277163315528921937659464661772874438732803394708196832977768288076282555630340233131461782144687341471819101436376162549520328617209555325485914721079636292116794403766880948462455175424142231865098619212660870431121006532631372419740308471029778582446836468534285084293749837841790591493104987069928864199159934670828444427869694329398739034099736022304176498775281978377665806311213169774324549439422987474708677836238261050108549311782373653332199073458311037069644393340854613328819779855175719831673697628596535203291798692450942037755240411989409731246712146594662604794205433235533631729571379580357869045401623223906805272372167317404177137706491513608854464672111428881068590265818772410702128261608514878945881023652630394271623414315110172115039277996574963635257642411499444120081834375715950787918883396952338701229845952104003505539669782625287590714808439737837174751993738595643380738622809491040778288862280416440906466028631732346711360671575248313592864674280914656967627985235427733034622960421009784722603988397578318440407743260103929768642053419002665766256716024908039036546587628153347297436122231840834918364060182503528006325564625230519441345743334836658505529066649134282371614035920053213862277472879457781534955797013166265395890148416927527763405264832073133738381954778845350021807592021336662031810184575056034708104622945721835432220079113184440662598622270165103978579022266634669869335461792221045223219597899693976842360221556509991995155606248781031881579902941200744355622685403207261281249474610695113998997790771005496345460707147225916551166906028961586035368439738058751358552169970115212657996248319746131866622196722190122973826157187617919327423218199698407710278476696502143768963318474001368204219321692024753436359157439879316672704099504781040918547701312932530392269545651918583195234883367047645541653343044673954686996047664410353713518113658311139302703175175198309870106643148722432464974683447692347308226654387695892519820172364348620283744582182256344457055692195357065920224589945524099842022485183645608948842358162204011766044725860435080411066060184742143405071350536916037264598548875404995453508620298123501745936895742557882202274702967482847277208715931441709394828431676314322595080092436363961821784900353028740026151361596868256049141043278154790854375094402366656972484987412890920923350838709986466766991586166437441289929268988009744265507701659192299313477891571613821092690553037324855252556513143077162070669482294214080893562384412689594319192625227222301212248411963973031444588485959565877656184545292711443409210351626570749312033115683239057913277604697478840564974733681943041975425654508979055175331725112996183319281465099572070112771577717994479044507302824648059993286019126387009720897641463556550095162814634115232597498301681171167333285202295117880848651132323925291001001532657775095695983413936939016625095465697743956383382951979763051904085260197802461520260868843312109912706950171377367660015636561604329617429948730648292455150197775448329763305051234942430281035874817110488119636621113766421238609649113874468480571318561885957676700004918747993798113385551167302758309176526562862611462013289250342381055658461060858057584018834597264332894206002091501491597338288622541600233860544333841825750214139207120356729103717729341922013943950905438533126160972093205424640497971416491637549946553077581397851822345814947308469787692327637446824015112158405712052191231634861321842555865248036327188634101048522821951728396581865899353868473753566045581648875703716541659939801852511855348196582608296164605895868869613329448335407057603289842136834953205439562711921883499332239279087620205269120204813127048310307467161891338300893929135245268703685199188002616939810549232766741518632416473437911293788862982483022145233216702217478449228683493109129029312149421791827677417147769536542002011745155245216931763190709960085624337430052485043742303102223115397066027770082157239155502257537257901831823387216755879648643290624406464330112346432089228185697714581256361020632543449080932134417819855390008521998151013330554039122841636603680674298746872985498507046196920275797927784214141715625148053415158231649048897040433160548539651526928205057835808496524096244132581172757901277675860643568953504708186576767609035629970880621336503037030165072345066906875575241866884642799549790656330740024838547520494258082674601059506951027149272656362329125997673997366721162829466770961093401854974235392511631379527791732733165259196624311586136134633193512160764172969888668020516136749664195854214317305024880108024545418350959748538539206004632823765101727528143512678157811408331872209998365360463786457353800619310857336041136247030848796677671434942157383340728666590385623061711629085532724933468732159196487270571177890481810212883926638289725126019109708833377376699976819302632009860679767793163578024974248676203604299439067429811946990312584617164588585108671199655779150222145062836618727342661600156005582166301084023458773184786216962082653192130442296968162991530058726846928568434484956166729540784752304094642426050567582487383126526619182582641292585068655715202748046716821211901972635563670721579606353394314029462050473402286863173374187542555480730313355601655667822495699594876040404539879122549280728671675061038963723672927766792466856883570451413801713489546028584939545870078163204770415216500293040894931290674376364796403110861894272720501649132610810985181919725975015186384698796407022964512070352714210351444032593699635985557214421013937954583829747742012002538758460341248016150672457376601855163210848022815500356678987072418488432487333412879950986268729997828957693055138985866276126912352680847712953863436208851630410816401466151922612902477970547660231412904725638750479999254000342532381265077249968191791909462720773845956448152350286203484218495517339917272490468935434621721781824201450232627956654932641134465007699864296420405151058149892016537189030913557003814130962808088080928126405042886790637404101630523859649268207192003560925754160394671166648783115317832448585968497500080643833520303599518309095199481773067824578593508798715965248129078574192592243926215508476289363788279048226666756560342011450333729340709456827827788208734610489270790263010591598344360702390095031439392209162153535500851492564798581780297285945537767382697187491497477565635786014911629138570806925209195932089829427120451040537129552919372292162841996052863809288369775143793203372212348682526198698666962641879882522621609448439398160379967510204024663785372461134802906828681380183479945032712461451109721937829691685499966649317675824594521020365793533496529360002932997303701254048842592410348906987926766566539374586102807707743917792518163620955364491311670550029573220210089725235694105190746977133773032989484479533671183598578417116902118339953590389430409565283264216816997874017923003610966100082390062791105027145208781837934822649902414678565313422005895434581520270055962474851087399535510938457891985681133880038876677708433566066969948333843993683616647592373553482919432792109920345638044318590484705641978934652667500964393003935950573415684150838870911841118833641290150318736133432092131341949061887275729474856853393147219772795145436954159792901189359901309410986110173284692361223728360641346828690853351187987402728036322331421499709777529482437823391322326918965819717237980037953213366322568464272789462092960211270526003520113525701798449048172437172055684707859383953900403380507709783598779585232422657845296677281273563857228263035003020315056306442144989293849071476634882119104836026831039222236477201120009136089663063229763539803760963726680065364580543872241009427194098915096096851804918155755478700948142508223414498221850082005957345163722604475927490990207773281934115922433078387882223489184774490714818408020472310987397322698074429228942802740385341136185076362450731365444056954466754908913799630260121448687253988131269650972257615051012498355643799356842996719653410690907032132647779493948792318713303585146902746290411946395955134667780967436314141753112349815287800627681504852902626508539021555704566131395707898391480673973880371255827309263329041054003913713792406394593676726638088395890903377131154272186595852918971770848316550346533869742420411883684486571659187634262938132855724459932288140504257280166218436692267850284529682521105364757867030050005772927131872495011222702455637238907722937539166491733456782768130398594019246248593418787742573006488745812107397155165360001706693702639591827208376936932275941653976476611641234926888104558050096921017664185839993913828818645048072241817653425450754469844406853231855706529290557047483933747837377322088644357504770176481401645175698392969790971068440013998895842444768220296453093370076260086949601685482434265996210220212383333012095024754505557169405667071978282873846711325905092771773817640392911090657072345737567146675574754970814636183393840222487342156234383050406239428456272304020848274590629647965125189981104456146512773213231631427515858710585321833477435796640580960899798549142579231809370844726124575410774916605631474400576789066808921130750195286333078501905616927071587537539799225128827465523672437245744113518229749110940999233981742932153323706991337913780296979294882614153863024101502508985929372073648782395060288927826139222445942524591948691318740341443925388663277621060312382905203179189307958107562712018950693518241888776087714358822432219198226916522548884113801428896642842507106388769679195128667539095296892064767978053761385887911289415843702463217180755831073677741020468039492680480171841273754976498954494732612659177342630637456626143026863163439587769531212536164869526775058131099062037383505590395795866527441490350185011242084565567827286064378637682140070327309717654598350235975339522176052660274364862539304884134467215854929740734911369783508758652068637159564372330867751415776531784794555376667319802786881684307581486918763002655106434782135506307728169835449540128674307782456094157772584909099570698343437726887494574138580668473913394322582084063303522631049472385277091454906037387956857581937653297836240380621921337082163982481602853823570649634696796387958670308168557993639122796336105950177524197663037901431929723572845972509359480392106244499056707617596868671982148827782117881566251766736116564832879266429971917635646533524614229110581395828579718122125922839796511373575223031927057317418072501476758549108006298614350987839459906459097438610970272704919165400838488929083632252472369454476198201661412251076186125258659898213252249289379177447713050689633100904537542164316390810087742802961608686052523881859338759959645924740054909862296669459205560591908710173642749598675602832140954193019507341030228755797336944659381584409852415760874338023779176801326269789580396770088176767184312042657420871927247257533875917163347390750397244226231209098683894074416664136233264175909543964846254884714066957466860842858228295976697173662414007496456586507101115362961553279762621229501951045339134172594542955960224902685762167269833295414495048611509397519563732040046133221296176314547462274980279530273732088967139247129418608010213885252495540741917926557067748151232764934156397091090033287661325319766519643202170872749269361115310406062418266713294147304865597956523685684234507671186430724970330319784999263449552810074974002031796246340834097351554036117075636823313389843594571980507259573527699932433313733499950992253990714771380450345488972772702794745027727662436164732584458524722974153073844235985039831247402716440258133661763945099178771147432057715147633043147047835118379425390611208615149604581555780853892926901733843915116702013222426441962268197405840998568634876628441720517493512590577152580351381167859060702104999148514950313186691761282127266566226317910041891329962281767331594035926846843846003044779795781442145785470793385851288557696806098838879517240197288174212287418137829821277647165439459521049437257433883539090524922335569466646589505349169292360041901457311912939498750075245285837765340830387606486078170115494225598565266441015365534256315929485996834576822328579804412029775373369633120432141512958905737329491022861342684614594343052746097173195113781765615850867557371777939461783781129387216570617133414743617478711641989277391492144705653253168115352044461995634289745475028304917774422781501484805497800739704396224434698070683169921234350091429258172993083719716031127243124226268036205594624205263214258633971648469760788000212104363957467594268840371535262567492706645209861464644637286988412509910842511965355138924233986073075999600295256350999747902814723371815879181312981708306848141463999815614598770553782265962061478511942585443172706518696963344145049367669051941982033733847865885793225319811226121486403112707512845873570088366866752439288586357104726917432496997949142297502595631982755842995502062382170630478059352411333162850835140863586042037129600840837546964595239453151038444526327243575294828487139379060679344850480214654329370443407548521708051752251192303607777802087062543511918916992413589924625562823227629722414992802429838347609139307402342357982829256045964846760156921925795137868854360417249262885100104086033826211503579693111433878182597328275920477429053838971698692860465947342594950840611412084561412290071649136637732011615117706153756145645366346887179678519918941729959950472509273410671752898349487124182607609519641965552165105044134214516281711654413313624260932318892324558907048897872035089420505513639926464298033873717386390263906822469187282597587743237944170488904485017380128983180252257813112475212385995010664621805049892095387209378052318023556433679354231038286292828380421361772408873987396193774513841297557133470750049207355345915160216715928650064514106737546276621097371112439279432356013326205184712764764657341216446037106418380359420122027823073476018839215144501784898589784582845368291242378201328242050710809063266121850469178576359240479042186745084977295374250659568787669929313968847907086893748115547028488808016100507024647654624784984137024161143862081738353138096509260961929277643711556401399405101893567744568307243086983325697950341915782575848902839899732793757411790809757412412832077584333935701788486923986419059806872204453813013492299022016376062507383834879111884051556039897526211774234630018175538473180271439277631239366913758024704347597372703303348503871348837786367198976927551609749385628303657691651663435848880444685066612606135744473840747691302780480004065194371156190131210400193523537589196772284880599721282210237808049822279842483523799815887196246687663378885106178195213543049163427150310089591928210743727325922478022867303001381483514499164608582181740520165821966628711552713422614024458626921143483875744242382014124168444370516035414415681061940313814743274375036294140807636216443592892892038934797264695124698289552800683770171474254818309922052192222944302054547738145115545259919405260722934020928901659939638687282978220807774871311235341338433225701823828314132838954150165929362889135379077651451017782882205322252942356690604843974544865265480739230508051421818411785100953912351575756201334725996383564152488190161930849832639002092915771573498230783610011722581592573978221984708153773965819212738087002060294251133259076169692547465389352937432822571544100807140615611416489362044209088746136098458366177910406948195166467488798540917650344482059058305631428266125466537824277053565415583679800586277884077090600021907301178086706580220002598060604331985888277583777917172711428921981697240349121115092689318245594052928055067642429373425246258316172486355906335635374005959653210266120594662363079648394965145216827500524748664295974109472111830519057014136894345270877322569979849073556184619215092544562270555797656911276639946443545616506908252388892798192384256705841730448211179984868317907734049932231826143166469016340153023612340743610144783156618979624693748504007110001838629215235044172150441904930184935449979903297843762876628586561566644201600327224276430639402637814283173343390632686755379811530135735147897636533706640429021419567285474042579821322202332850146623302595223254019455759474294767914204705125228424028300500520925209223660647505932942696372046675192325408195766395497755614432202287801590260238824356864137220663776936761270319025751583112915296223096905106436337909324345895991274863251503538387011911638163250871279962423981946955475293852959851174995501864100354315752520635298344121946741277546450372783103957084705396665686528469866215438561618489757958642657892957778916182751240759786883184921912947774094647413478135947443995155624789727221017089176341985075473533795478877624451710067221344406982846136914810985978362036974429952467345930600204947922067137279976293891975569887341521008832212277614840629036536957406052277894479656272176143783007646666104836654472752736020602470236329781516104049552382586078735662345426522770288993924827322984542995940441856903631810232490633782967156540436321606082290236992465181029966092573234427784629168022255932179752107530386677142688871254568614337434256533707851479438607013655395428705961505071144562963317487149178226774114602690156460715277072682824139677112200955027683298220921942806420693247424821347278764898508351069571942105751197731601981961811042558254466821246339794636047178303127977934974838325049457641636152299540708567320569273464028131880257563655653264969878294468109797191916297312207784627929209748386062750508320694991162535727681647163260601730859493147199933738659813197303120184222313365329206547325452260556172437488573682450535787180269923227725309629579792898549068079838183192765975164318777597943452547910896258163645644641252645866128131404372314127714199056037033311659529001706185996875040861192221643681023111438515622152633993882077276822594227907820898692040659990919404825541796104781446019925391038115117153488527697117931773855659634696270767298384125998584621743966219340518565215726365773067039675733879175723609937431381995406256958851385630948114191255915107136320928280549971418449173312037170581048361682231428040739083684394649825728763989281626016884069740904366514297307037564866326711065153077326133258366805709782563296406103755163127264202264176952663796382515164342017848693192667177085104159396956076906504794571841000717853117107616634593534773018079557832953278246254281576355902764989000738305573954010944581181395778087233852993020152060779881595203028806105403885414042721305770506393628132871872328182236058430956371791295797138409058402743378991787571853480424020314213053542257054416212858924506754163649082354061515745018918977576330070669862084530527124639074062853906051112977064865052644018609865985456263908705808713221327705383982138537511110707913807329770632321510177611267011928632460710397972255914809012593867513620037001401420691171035452102740028792024468894163962785604350499640427447019370310885735158456521211130336727290479791945170198489171936543837454929400172770833631282398878776716198551956153662404275370693111451377999238557657368182264878483411012755008527772688943333637118293525853303845138614918591498185973708646077353747104723451219596070213666259396623947804825283975354097101782695911640035391604330532963652964651162153261653081580445537414877409659645858561867777592784171711767355566672684618968061170541519395967471778455589678219357827706146135618025731631178066781754300223822560347921252135050651785379317340687424551576668811233106956203173907490374829233239827144660647099497935893761254622979122893075687964105453970502520693441279560532936785626015603294324092711665304668250296209353429658154610224398904659689525370918418324892846101700253715206041028880265910924108946764137570166764396373026339921907577021040115689211580536010708204242248579947396228711379843636639115038596629624669111583048358270839884827689317463764592720998952993769787133315160222424611973019119089829223282768363725566409011408405386162341033493929655315153623569518578671886985163998347122667882682310639437755740012287909982699763679395715700838527105830806019930329342025724209497793541750155978280316770592455734177324137056156113018456323282610077205255546593773641594872444938646717328148634082758080195485285810498301007835092910008426210478089409077473868099378904095972925260346968744916571875250040962973098940775694553030523582221109289609286601105322402825476814296496310737488976068451915453300100392327561987634370726844216405175421677390431773223260595652655376657949219735833660307221966704610685976870569212185296207361480989044003737545199960295363036540905266330241887286721113019426061756535000241692119089878815115475167712474876120582300358118398587531657948097707018570881589232194392578763696866266166214591566774882633860555153685822770552308455587383437587988817532964131331157536494273479885644861420171125817119427102023330198031472180068973484552671614305637243085563541507777275215420334175906359511145029959238938509754468511267508329011799593624445517119271794774034169997581115111870846391375899013830304850682626651728747697965674410916497607589805646852600595956262742211252389453707439530862364951318868848728702438567269916899154733743955774383917260830574877832506706386909565593740870009134704179958825188069296956087073033777292748357743011533599702456529791514179144384395132044020315149686575709651536571147244290573264551543909652771999740552665969445623565983265790782693613843453455194167654982240507785837801004959546889624305606830397790092960075063516496092843605876951903995897513868880512238161686469838722389557463590185229509520828609655236024347863455936018679243433356635917652655975868979641794233978837162709636088996213696541513380578916249720777713144297041220530530698162651291106016678794341270794225830596313357237093777542523438855671083640909435482899158256505642112724303397170510038460365846041803848217007491212558556733818317389918136636345426595034936867654797389680983414271658147617142210071775141627997818454664138372122395571142441355845795166025227778300483513932306749322034714848359607913593364545056101567880462099358470108623168021282066230217914543791296632815074152745227349327112135116669588323271613257233018771924789028041043989118931706107384754484305920227483734574622978713122342405098021252412998049426187485098581470440067814193989198450438362604973349637618406480690765158039092465461632351017796672822581417476472919384442797741896402204685576520241019353101195943710500438583390978836872634036260454264940096816904567244884964899787683206575913313669879858141726494273337372804257824641067909500542785343134877058202023303810046771170117782058581237470262763978066646813059583098554520653841340839508719801205596978801081022256446410871273412611984723516864223840736769769322713355225231070976555331185879129020106497391910462304877339298166638021129797264245746377146364086077872939818550193500885204873298916810448762191011424441724707466923280624545197823664419935135014300937481050200741181333255820743805276411771650184884494208018081702153246446414788862239845943831961288112690504828441267545443492446194955693691640807754771218046424963401406737334752489014400804742132002582068558367568979351449045458211568718332272788359556186362253938722502951875713334947301479734401899855585995032680033751673740888128340560888464696517671220658385609937888280443345482573763454199083359910963941021276399510688215393106710216824255186554309602222359274475245437359869871827428566018242260273781525397204102991305145691929285757578654711130056219898561205459357099193790409521590943113199485339884605056511839985927905819397034667427135408630450996513417556074895189689321349221180498624246497416002149372567766203243066579824646301780157958603918752768644514456259136861792739710563290100788158999756926815049612609764407757551693866761279102902209958212911080048761964227502831061514901319340531031205528568370786225670595323178524143431662610258414311277852667232674057439955006589984708785505626470361135371654275843933818924553091706655248224447406707133808763335707098494004869551733335978147378619163096491192237509481327148390838983260606597487265783262012581037717796647547016525248633750729881360668404743104409301908860094346370974684146642156433187202247031511319341533406254584340164747762381170650306608985802348286662140024753778229621725952080749365282276119973333899404132795002530998463598691455503757921365610785970949916894992997334594115146588882836313084642060020495063406945916478354758088283486022464085339305661107449252377550527959275558886504662583217543582449825578071525830078140117485920847516894502602224249265379690492860014996836943616027332480960179386544375607585233889891516907130648908602614582321216284822595127335778948091025312029517513206769552170034646026156052330255491344918971112656457339474907366877606349812336069293960852009232726989346323637641087201201155720671911284929336995404323171923828139121529369915890043756293360632667420787633110855267898274566797881287111365672899986364806318064647761388567254984731017673910498372194220551910956446749859510281200071056594610225358920532819902332249190810194829612254420983229777273414008641316217161226879342827936435843910309284591560171893985459414411316964496437125777806023407260664767362995375629024728463567222825823139367144231812954761630573283346089882934741847829529194466820516797044655903157865791440740133511056294087443164910194115102816843509510773150122860531844849372541798621243608069929026948295408103597529196408967819469218838866803814958271463608787970941359626582820374474676765319887448213252120895067844468519376129428145312013480237249501425786960826732153120609076245426909903340199494842087107148936917833341103249449730714988919401663112201178286082695306718023388732242522550971162546500645017801733620637536796420305275191732264797405801176065643242001814276597423150877378661653218046905911022784654300849896545132154764634118130835760178070305835566261094993710063822796146835379990840567516401670604181565094699179471406737523399796355397069847335478069683066548364226799327496880901555444960145423107156575520186588478558831779470426464834223536708854788290796028439943738586586616494865049274388118397239382234390068135100039058753368840186595967143403114326531112403072945134250494867291691226538016378425959917560552880405684722052743062919928594511274858220137697145417907186516344706954666184931454067155767284300407294489233866740487820749589976159395467290751710911929382113169763030714970601306430693770950515655234684690693174561643904517759180338779608776393931848312847256572448457667027563897819294540656068088656646738211471983814521228541994850045038735642173710989152342574126489257388077871531203440285928174500194038942987541040236417609481440146982949235605749646689476476655519067279161640540209052300179221819748966537752488859710773158238865614598929701632744980920630544933882487691721677948247953140692545506400219483313443493658941276499479687238028603302252640174522543119342011462094627172717387990180029406463403944909262548648189500076792646381009579546376373310923947456880122699705009001093269607640279889789902684664026605367052866625734999764767613909669243129386051998674987127616356845831964782872024211511982996951018159920832781980612500162662000438218840601789457466806779038901574623272426480064816697104320442467697424254755513451941943324197965767025227087823034369914530709071407894874379648706468528022004319454908547524439077714772341705637045210052231788258645956781686331680441093650323602846306542348618465561813882138097495046643850552925808881224603677077035584167296005489620408292787776236286085239225346052344348306302854578873077001187918036557378352533469343323391578767482186365527101532228315768887102072635866632541993396813215150330609578300369212690862640940068649650363165791410313772270464187623914226826770618327860373777975160495900207647502972236511030072159266278676315783092241121937141122314186373043324772879481229182127790968247220258850300213499769595189007284430765679348948264557130886648768921388107734369153649678787559883962322579670890936199960307851709513938937792872994689947246698584117046508108073638278380608559309350592067976029881809862549997981823766058575041367585892944542757570952464748821590872034889660838904428117529860598423705765890607955482484471876597347995486765709625469088792391196269037837406044456636271209583300032036274456201840528349169853174179792940780483056386383820767471350103408483123386581352643899840601383508548652235409059512836850685545162995437795788317743966486582249965136121213120790808814658422919361538155213036025986802369933000703709576637093047330390500699827728217673672420059145689618102088234862408848856507805167992481845731556940724740740650575831110177105976485417831070198446252126926875852243786942782481872662692774504174042536942305605516570049492116791928193944011778983769398894136847605389074995129233240387027316934128285927754053654403399220115680690655496434379720878794648733906655045572853783175343610156685233525425292721036474404478161715532613171838567960362414956834848193990648489909019583947074661646747406206132895683811233014510813305147823100123068932051551859699323864619692968361343299243257986336270189245285544180391897546491354232070460237367825896319314866705374573910216822683353517740974976202347174752539795002284423108994438074969534005295858025386983844014417302108924842749397979876700854326286653023219053951722423026219198052748914306222096213105819239421375060108447398425050185563420897474529803153394167051125926355132519714501540314180084788300703287405600454809689956090769850145096298695230128836679177690789192124843876901386913207476317208262368501505498161604978632560415964632007658322117500388614897887760843129867491145375788245055759134835854352164749286454194933184489458058889821255143009858288812989404800012117881765001676975551647107073722809222049898951173423876441534812019129793236116550700492032951118205486886920087655880935558224753043546735307636498612601355535800631619484716128121490090738306509617104040089192491238336197744856194625027940708119057120210266352982009636908224507798998950330678996877920673404924751727970894955606202672074925472151973156712983495423114444542774849422889770495685342432182911509949864927615526129374910686963846209286058947416805397619631065699733083469693025202966724830639115368644648187410353697861804517747382242035950453806609232717786290954196181933691435115169239215431538206701568402056286851509297339302653368695619479980386837589334605528279127230532309061945873905463243595648439028988696390284479802829278593556106602581479165478457515457982659093161081437132495014959218426022291545082222546638558551496619589648745844567855946771814009213108796001777214249998652987729126008379163184403999405108245255966837151196986833943787439281421958129307469784284856122776469924361223421193358997685104224039151417726821229893221221669997992572821379871334400359723278286333611459692713102295160037984087977845145843995311030518625084932976746955011082814556302090888053535518247338145644423466795564842552928358066822309833058692522395563739157977499852535932392950225487931526897058892507103734037813462169270210421234797504569103230203732801848770649833349374569055426600190348353895890808967044724810177115212894303377831005172270834228703863234344122540651615936024634668418885219851700093457752156331078795987514595279942330808816920989360411188511144747192755867588953514979806560042482806687468389849913629260459432443240467292964557229779551710506943985564807956840571658586072822390786451798984859753562268290906402565880780260822456275648778967356476546743951017616212970368266159593675972021269988337390152906884226470642374382451512794309478520501170792990978874640590287408114332844693938443632575828811497477139644204877159361060376166756950532722216945026692958062189678589853684216561073766860018427026152815233994319727320617825240909496673282522727604020836065915719381978457928781885539780989220859099323487355368931690924743825904056303982634076192637449014488453651500239474570434689238932164346007142842511837893069784018741610253481508925128717207380633354089442072969805954594829912235515177775391184266951535124824617238924556815073682188310854721640218925124804002973100132650106783273179183902349032850184719670949940689442697648266275995929214765342709906164668590922026476251901455132189932512614782197446539961982895054255795115198700229612459059104411701573576702546812193696246629213203574620290448664575927719944616536698233181462867977488078499778848359323151916699151221817141080124566670282209473670452354356199184147502027454873627745280999720747676340467985273638760523662232139534879825411768823396401270996855764083623508312262002074221817570305934281649184205303561011888011540031600520420368834014592938279457748594071367912729665113067133721698847234247950560126902494241443570155604971424669117787808752150471818328414849718176300071454169332428157666321412666185860052306193540901755128562095033854398395250896846822620973958422953994624316899492320088129390226974282350672109125985086814892659186191548094348910681831895731121827966918775103630970295223935499937323999205099867492423969758521926770162115720365290064114559512224083556740058113699654648238701658856981344097148291184784853907754358678026718628484890248908365615713402687265981179394772079240773385681546781786462269919187677535825601371171329123165958661973747071169446718961203649205588733927491686190226028929868288242791520366852518331243491118385917832359986621962946607475346566547152371577174154542659057550065114518927867063334264605507121952712239688419032785871746957305185087629397792013677363715169543383603994101151874017131748069556045991979833724766215891592513453255568368170631437403496762155328222285675917942162354307546774374946730739917994594300188484711305328175832844336982380640481817114731951108218104939152193913003922933396806179286348093601262823870228937116359083885160864179396194983200108966728079486503059879392508666864817673576451519316002135171385870804081385203830911459195493097914277204806467396805655096018500355684635036125168189096261632766792604843885717983435829171122856144879833890247562575451550984399339881835873803817136767196494430045243547678143687250927350128536218420071159691684512382139489472595022727807945498742522886236616174538789924092836730255337390645582081617899816812974417078050433846905099095048476223422132287704585005640269684218133336774533292250023000885430609026276257844073150215995150125860040740747145708350071769494180357373315821405597034650009722058532606313401030539026610334130730462686399775947445738369277555994276543566601915630781110309370326918396174403291814364768242973065977466745208085528119789262833572526092442033732723012610889551712506456275599810926567397738911223332954922446008146965876124055493454607863048774614061091586143745088286480105967983376443690384618150619255050869746246673604285543862489987072799608003140101753238993609924219882957153496830200260104500553410855445550757572640233534104594629997608901515671481884914112328985204863997047179973533098271828710446250895785374311357361700010000990766728294299396749346776640813946751491268412741729956003027211620890585888893140193695940213874016967729590205068152798515056709053694533749110482541442995824617996578962972899579683570845322692199864797783386025514407574156642755209411425129670175769086156707700834891651000481199696539973905253354239996996433938741755600245600291868895410853194069926294165943700839711755036625695051093128929692548361026802551750247249070916284224249176033645043116127477845949303741907746716303534475060029203945181280610068315908316586693374264525807627938411604294155456809005399240000242209224612019803853484024340219553168785116611130694229576944982701987206800082573677461105044601194163253853043638781598287741714563035219729371397335575567068811236507535227012195875812345182890124509495016130282863674657346738273031673632104404433010812548855991151199205298175273809861511236010636195122729497170484408483609315571040256657000234234032823703876847816897707933307695035923613631154740132889002808112931346493317370249426559956892386077303969506555883018128741236711261051280506554827763295346948902611004771756880575943831969476333049168200891540990264180127811898970007247850573920079787451515469033679257664106102417031004097202764328193261123653257765961020422945367391068395439299453372957628255255560034258563319714006448290357411410182131538972880525039292464873555378398551408679580181876581419997597586978850382343023709157633823144602745064532530589653694822350370898717930023676844531595013125690968339107456852762696807498529490505462768582945249361578898365248565865585997381970593374444763814104675613701302655895490903540935278865416794272095200228972822174263346788421011844611619096447220281571668506331397642202191940437313079649695110230239731972864819955110033898035598885136603561090713813218348376985977918771880622302221481912962578483648011498236306703838471755376107917123419421999536366892315056411778802857618223597332746203746593371923888310043401812528751124806379027815111720868964546703640259739922737492840451451479114308373142599823019068306628831481540060501810867252580933788246474451399327479844541010705658336439126443748128180225134384633293103683398122155284208484711870292771187362737667533804071732300842558317869091984919974112189286348345497493228251756722307578295301349043227231694521235852413976953111052868164866185660704758894797302965645838657277468200793474559306556797562051107756850787996250504050084120278635189267983453156657674573362441650568779606544434157207173817990356638080481716835267247736213716544015681691328907875613238453270557823063001056780399734912399276302882703336969493156386268794562300653414976266859869196875395815075659905538394405516176617461969981305374034166355339148062237537093227952766402892678790512005013949632394249539890909162882714114653792826333047753008122014988800309897657203720237607445407428111523946695487348415852614941774804311375458191391067976508645226306450263670272472382977657213429620879376563971296126703884690918122611022279048136702321073038680695514894271862996959202891196275374526059752258006162199481217562564550813120704647858674263795033965387875665079657681696570566254475331123349576142494835773267077859059754042062580048650551357799183232837834980222732759356281701610666054150118709906115764117621395557483258689334639248607431383792354985193210510584880059314060791339451247192666365235812671927172723381082540489943997431513347139129844247148135116909941501919355095107508584689871604211349314374125230697479992698474879079312576193993823197620915806897051026138669052264355747637239562055728500009909421898052759608615111424620519880699004509200566812758637576107323642155862959516871771286814904000390941321506581894397902536538964428284477207330404336324951851302580069625280695835570490974540381942363672683573702670851509686623017716983513284368000409453415559008212293533875035050465679712290509385758560681891045253933857057286320948010700637482219649463274483937779523579132429538888263502953754661123579524710200514941387574826466525692200213614596162939098084744952452769636348247053463091733746281171991549196476733029373743360277252840382059173475829835386779100136134385685777973250438683777364568889976195389569718242075138849965063198671343790615079371476516671223573609692676683470586470555318856807163252829374225367268596880704602803132833791141508267127447461773812754941102879401921819742483034686258160542640159594198022450805354320596184438897696640816068501958401808808439119741342977196387804982533904078345208259258746558709109834573103656713965565018167270994597112982182009263436874681967164602222875871643015821109419126731171067284204170888190628624506044756170033299737720453853062461169657503841845954836630846251395701015067550238745453280648044298090728791232640364597817447224832086310348394376088132854187190568203141877504881898090694383528099147836610208592543577877368228447409519136028514696549911617093153700108668905155236086752628439314127397797159674158774435072683464303751646650866295743221312299213724402305105857595238650764526112514832597222626489802969431828099299165294834031623111459506218636726890287304804281863605735703921079514495212479937343717694027191807372895090186302706474450203343323640184540591393304873552653503765401904965068250915737886250760575401818468706970688888128261598064422161257287338157433656343870440066491731684495515428003597845814900624493888885240383235436802577702190186668653262824113347176742776635848820757982826102245372441448278955329524041907186547739506820776420108559854095360706825483774677706747947257911936022015406700082898876178032508098450293644687187307513749245977500881863934101648424739904247838095383668648924823534987196368573581048024500369253676924181601904474744545641475922047818879243717219031081986021858908960607618448101698787050896485129970408656074050407937653588297126435416444380831922868419208592820829499134244452142461507110545765389595719538608690185695804490590456972374202967990010937598619596128246634549050061642753193580394684252627247246254051921820883203570546817197002366594888182593723818825866251297390321369445212400526220590849472589727368737120506613450946963225634243096979850764543153364515935642600003005008297448316174383615675126663085086159529871949157610163737754035980370319599160382956283693503456516712937838277875800752260348226539451580805140896048474447757656977506116579681714571997589462367380385867955631915800199164959091362485984999682745366367963307114434122717713496369606288238903575353142757509295348191513068445683240939843100764732252216338681970799105607488891991383335072434776813759622518687964790271766993333276215681317366457879576108584780638961401077328762839553209448976102999513425228576244841815388884693146198530080709524200627650015281987854021304813910583866767264559540658583778861690896710850094793264542417114587723197270612528280213335376543826366720903332265473235199604882395023894060752864581336497534978356902771960121317048876940329571875689800887255029394535201068928649557265796730628948711185934924403422109776128255453400407038816703855657823546614688657595939239438800701915309960039215579982488624656011311473042811260016292882482555289680427491822671176180439432526126485920664110229853587564283379690561094031915026751189096524330281651051731865167179201576399423573294089560800668642749646951107803137441730684911020311754624148497581960435936506653957524816301736885186054420067744405253973022581575717989260799357329330162948174505366749110089072473778540919802305176978835790510948458997162548012126682222554651294686088854897051139020768860689236830633656228087208421245321993778174828496341667685051329160203451848187439368727390197034989791410328431705148612780276255740731403177059764362647396605145444004219338693500347580590676209618329894602107411971779572634282879964095656108335046082612313859718627359232025353500035478668786906328161437334204907979386474380257256270625858836238718433944855850594277148315089203816312128615409733944677652318441986198216751088582463970228508587929430739771601311310678481759062886865819448362676370553686662719804683603574260956864835502849625608804360766540175967545723215558016783517948287511785944230209629188551620363298367230362360600858430943395891260573975629449887473961988458902632298627428519949019470298509841116961853374911405865480562509850886134409466373767985070314172028421713749413941454887437021523655147661734773102385141169018916351171340256342753348087864623408425955067715788387600326044716497483263523896588872323858494679042121986192815416985899415278247804109560947775186480938935433978471672365943002591943705629861308157502070514107689780895521414080893435325978777555010023022068829146794471169952870104894827683939614308162297937419168884930445223962241368494062551275981464842341205475186128637250510158005342976888510983825819540166697138821832807223581149280788645129394813754608295038083488700655425952515297490056113985411360327966934994507694005330498904876045661374283833919314625294872224501853689436242331308239952173301022369621057802920986222381695914975764582314034853832434685059534898974661324927139704948982289449606389890065164173369332014195503818371046032203615395271858052888426683179338553463260070976574822267568148834663003888590875175599998317155924086749547934257153261313237499411107458867783574287726130820322692155356633275984797562592522434698899925725009133171061085569998411881460910775256980715040995680666037983246575588085155556073480393358227943921189843548155101338984790809698137766186295343455373145883786981799871330062459400336105020388372628023298242482902478519888715622430313710653479049283035913621338044637881127992711895760754571676749247254324387279961605186568767024869125651367575732910608339000675718735704351963612544447562011986554232972244125596872108660394766333631098351539380850859257828080081417892443713798197860519658785723869617614516912064184373495474570808147061547890638530099695097863947672760350796706921632861010331502069442295925026196668692872852854645364374090309460841284125885670184819972357108738828173604508425529839715176867962948413987850683606131576351579358828518775208245615175555560825130460715810107805852887903489429592601459395144549295053127725439548782473583337087183194493870413485881472482847626128683303381818103370270729079898893175366892207410525475325894329317123294324504918641195867093361013187169287727806457689735573036101060293498245441603097195793940957426120133239250365392110794488427005842576349991141948269911221800617890337181579633108309312784097337030751859211330587449522142401363461740708238846597828458936301173783643742570606664532976308932482213975661204544235600889087225656505774858417339674157976141068230877525643738743598283926042781292806564847858387040896373317861016614456698002279000777479483332826950936644348001475650755516165269595288281116868170650296306941383759255659238682013887762382619905699189373615370448805976676927137557696255606438775662366258433961904884967234770027952097086481960953142123920592332141693413526017137590747080375155185259034500329415979320563606016965478852248824334702546967146370424416570713804379901114942939319622938448154540892900076151034207349796376783789565157817136414401456420623590115225283059521238186650368308589719216036304821641001770786729312101185318447915827517830906674860220646399202075639269072754863138209154996349974028180995483342892071397532463181251327399346930565914919680000010196469296097578486471788820622661751293015166209138779729382127264364096890901002750437343071602695624921592551238066048258417366013823796348560152566127624550568077513960222986189118020264930368397163807100142394481067162089494781562529616759971081234337692256034164475194027798847490336462882114293200986766160429163210880674480360235267318621486242054025904080572885103932746719576267738583721405046258618738973869739100552127846808237614841365727397749435218746352360915170270897994098382554628294900524593844112253704090593982282583434485020458686956714579556350139184597605601351582053495723919977224618719267902347004979022505103697510424796695459134433865004243632717363525629739543905955243062597336808501922412642066639363221352439273140032020613086249086409127138273067394705886061177757194605265031370303833464254316209046305345017103901526902982027752308367405742358881785082840174382175977658830295748712999682083769188113599078867836847572856128048255328640996183249804531279064021511024024358295690154346641237399982212486591626976737468460541319520169651604702439378625500575044032648022027244647044044330448624840824595491690383084261100073131801156376850672533049760045335577243134274302445892728169410081665900860732843391950920192911573946092040925270368494069408340945982538967803470910095493012563419651996843676786997011646175517955157509887440653641458546757437987804065397642391806367887799942509143649995960898377145605246351189732578039111375090426256205261196222744260357083848293829382012042106618803570828352386663761543945584969741427083637967563988382454971251368287559814630350878606677156088178710346189386460199617593176874668634641646377629618270912789735012234214215997795139970709257076256772740404811400368233973294999732527192410479839952428699804731094066940439121399385815732103889143116218486373168016783775953446674565328838129716530127497283515790736970078067738382810720849236944003960051638161313392435807498595894240666147876989190621932553290832690621246624454802870714536770761012557790158360335675263578539147164150431205683905441697440893108777787396617966858119151362619390327476507687436824533017366410810186622782897487026878565383491937478271762080159861658522048309797259446960483466397822944519386177817533157244918282779407997921335756684064201827721029432888436209869793892053072550338721217610718303498597375872957727707747842645042661984998443223742779634941355239191948116109521794296342560177859935654513101534512499609753658423131974690984192589167820061354286523644411472771723873534952273720045444510625047225414581531041334347516192171816735189093727446117007965817061608293693375129810786264764360987357905398495510506564335314912035492375313923325458225106289635831281651848283253783300194235736241931124596996064918482670303043203434696232686904694043024642226998020244374857488675935092656626624759702898374087561101718192795525354594216895531615987224320840721369893377523594735694742191990672241553787727027138516485607514608236776408045960966684673864201779801890092638047198953702790970211025680653591735789260185732873126487903160789181541473249659146456384802857633491773367594929073384473286378417727134541176718874213962484150175505946677158244021979987136167582032665414767297339356537612799638405363391143569450790652867244920653283829942264218388468121536893507411002006827110546407875371924772408933718110178130214927237401588301501247692882162466583919421088181117935246745014647108197072168069784793943529472570852871326060260564540686300542729166135405630882494032339797496772189625842702016576702863001487804681056601907480416054853448661128720171633685498033007710056263967726040297316692099009494750040408390629520217424378118746932687020425866928975668435318106353046932392543180750711685125401327811633709221478483247845941225079339320565757662442973683598833241386306642674637302849744752931875284347815579257447193060607071939727817287828348746744214983221758624237513177004110835713440293190479100071333849570297331816536465207439222886603593579514443643620980418461958947283630191076891341896848087188696831828247639748013821527512144193533885917621056369733773798411993759909859325398611430355642231144169978150895494255283259875180007002014568884303981821879737098180686646028177167440507967908041003360976101968799215885458836296128812130924942341005775212040295675349713382449742040169134156642280761770701437995397847738618253255760721530321967275973676849127308753702848875449291854514281281603579726928376326486531954747101713806986116912325559534261215382598095203050695057479972774071261775934623704225251836710482841364640795868836962640439258149957741583628742516266222078488521433626778651570887721139631365620764828438549921977065010353867171820687229136065706077879266809327505006899671436491554026526499002876682864284239486179039323795357888971709180370777655185852519723677657139730548645788347976232972785083804735239217161604266526909608015451883253831157629677516445485321272090837227236930595097018665085951440177323183708644758699860470202594425113076843332262666192181728882517846666798658447945262514783540032025983482812781840568520732467010722363017806354982783539792358161998777941899390810366790170090603704868687064454243039165122400893132170499483704223373681338529936807942884261592155530767411033175449534720491406618852164831633426166797307285425225834383561370938604643592722446884365362377178036799657533526527971333077162717812908495440109078387052994416376491349394207896848424647323317718711120938246299470582547696979003856599980236942685813668193140009864226005681916302737155378962821535960632346039137581031169780160505232995997139822824169051797184195935492317832260178373700707183388752739726740869039699107223738927437672831612783671292176341564839185648092081284229984014797119688307089557340888627401331491949959160414120520045789669307424416412884268007794804120385881677173065906344489808730788434302161338540241830474901870969870853222751922299108639087238203184967235620075237862958421588603914838175046754669388146431263798286811714853339139409970235190807896908079243543115035385127386393618041548082614853946041524493874846144828885197767852654874658977906567725650211083289212969811092018870365568786777920516773706351795672396119751111340100828948493206816256579489520967774598153193317107145902830711746119357560195644576261394218465629786158345572013091965034339724732086936267146782938997263623256404125113182664455675842993468023146458446067761335428249529903925973686227881911409414832345558228165143825763936636800189425035205927968009914647226078966949697566244641127698015848585207991299806500649183467163325860418370887542984814608259643537745319521245856897572380100104888446338479168296221764818993061695925346543593808908485691481540479987891539691228162226589860039808696517228740252809408223988734425997758570869734868485118114429469422194858828116660075782061545245074868861094123402843781103257033224359913036267447638482065202813055182567764188567068609597320021254759717992466662965186421217701441443924615706287497124127804187849929359715910135275156288207011402634074551311781226231132637836034539828147981246692151361635031141220117631713755017491860263706593667180224619859413664802190918639549195885395314280519826231931952546960948600893123821164658556829383624926850613156290914199439594320808446500866983261927816729190581944522171839183701478519627066924083202952924032908365377056226310156116701374658397556820035384810062137513829433670147546414606881649524045400616515464039801493735331463735844829344419262596408139138530880257723553930853083660684053966319079499689741084345125599639738926453455729951498042205315727610388510712434083214806233622673362354488783044140563157793948992250436356185199913247728419992152541354608230653851547284250516403752998719845000989673399972086495565823387130515406145076160950473870174269816409904083194545511123753018963104508230373499612031866087604866064622455678602188786111996480306231144749430099172536988716217196556411522116871615504674408868568563691066411019246034182562589578069350113298626474020940639443125381565875607295989138400295410027724941687857515603108224794497115407060267903466734518059562323389407138814796421856713502307164519287467161472858304438463864971222669138556895208117715703583655997643930421500119142434018391695922381523897914372790595402028095564552894440256232631011452341903809650223778261187695185880342745562138410254166507858155535705744041067141982185911580880650273563399897149411992780972162065199524282717808888961705114680076797962562352997374522350116760221664222600494299796781753995872556967119774304556809516180336270810188704328285638946328067334765538913575512918714177514870323320836329611756110853550918075036349159311485601298145856585151145289186348654213415760581808802421733436327647148335665055331705843018547783259435536934380602546996006402960849576722356854806044513633989902526195220582344762403083109960457043430913019295765688451407939450869508429863971032714596374889886602749109096520461402792487657292875287060698731453034585675713395467146810616764585044486472571021098514111756752252979586174249439483538713023238433443088388733514235559292398964947555213233916171489386687626237930490611826687421240084015507390708588633579556520992204678623082628772091146407244547557409734539371604911084350992931528870284424454529225574498320354234448425721084614617745912099911985013296134341152063334093035509307010192594947036326647201585844043627172631169416457100293941235187912808278493248164905793460186566575300270393089680929561073803267585502254745259279354852572637675354715695227869575155118907014738099088706183678141729172598489986218913106744260598095445091144465830181253544745563620890187589447748931541171841515653149042081959521783382753881287397647625940918333437467044363903428309299839543286770671003208691524179223731336172490234843184825892343560206372051515059269790366097966016932460002235363769325799116171654115695430281656694623970494753710154013678958422403383226384302845633904651224192278216167519673744951386885386459575960180010811167106107949920435020963729487816952015499093552856906764777112053125254920992395028408763533913232382980703944200951056197223788761335538860650330476292938801024428847494539907898357206926817112652708698533720109775858920061936771628096799390596668427535263179364450889926286156109995717150920475743960299116382901535620599222305471799852000805352302238930838149621818971013325760819709253897935084223199413856566982008548179327038540636155319529211019775657867433874905344119119532870579048128038360386069870668507847709025086253671788644474953185279216567476851013473186080300001135732347380417392425348850503678716963324773946959617448640089425143873412966989771626414467645324731749008348930486780913617874084339162864177414335428962729382218777053403191758441599823392844940858897671884280256317398220544984450617677232193162841593365797774070963556959369342706452954762048236828420237794684304600177002223567270187382288866422089226484992502080863517815258673744594307351998346263062881355494423553711063808439014462430209760031667533290819918580037936268784425350611538698239340594332927929413179037426603295685121909346247567215557155727323652312390020881289913979972970759211526295692343906777659393073582617909962178995108599843527565551104128054599100829789722014623239610219613312308963085256567960909668034138440811309586430569174842292449190284788549129835271646827724951179346342907338907692628217983951252457219400921185691389886565564846754090654255983838756780048183035482842031880696682403916489366516407454104340679549143935967205048833220782585943111772498326478164061680938132623932409326446189946585775003952768901286887791449079031075935412485225126982916054987104522212868592354930461474286908493212329013882026841549269293523542899480693390961957760085374575334943843902669477656214700266990374279056355040430911614480621474544264177880667188693905304621593662540503897807884926260917712943930290808588647347688789424559733888831860796663568903538992945740398149002944493522172209969009699552375837572903119027841187618784879233353015965969761990332137579045025498451522081871334118811372143227381860163164623885361389053199931328112791310300868124598559686192019335851734260456349924838553972179796130184665848139088832483584901866338719349557642928644930181792509484186208248052249946375422731160397506870856113679609305889083377024774059838624651286056279623982658173870745203728731821815547751992694954078778673629785151782045606779797085991724633949050926276800962671411930740906211742996638619790605158410199695348814174191069379765619485923830314328144581410732386458608587353228159974698010236893527219932772375071217797407380979876535521270752425472842854710424837028645924629191832787836898889098064428293071012272390807926901628220627152687711572857680757226236132479233829733038682831475529472474753179911610681791542689480081587552380219317337923510659680775703916655391864293890467151684875719897101079783852738105134714734354265780190494135607575944177096971914106386698831129867337409669802105873328976040086034351209449081889912835527263662328024622971303163183792961442364402014850937551522976829075208845131756189158260305084533954177264979910930330305961357401395568819630120633467367767748186092273801315331972601467159001849763750648468071563267708088166154468274917303092873009734560713117819790886515513949460910712951094655882551660923654349738557567126425150053834667869534241057860903478590380983012778522311676641793894567917176510591203800771329731750982752550042782852542063569512800737926697696451399993961464857277994412616133956612243257358906742114042876631169121080022310785071954642010829599389815123270701924571923600591810812472157741351630110447550560685349733471371025275222135526473412817661802021486544373604157659360069348660415397940844794725081545376111701228413568049143441469271320084712620035156186328368875118604463896240916601632250816442641380485113035485908039123754696341536103371170767894229038982582015809075814387888629712876149305451807176818484361479349928095446193821846394155054015848647496630657215005157286841564399443110110072923732812454550354011864438006490333195372165019796205003800678731756515248310557701196806960382161683664863796135591578848677713983720961539691482006813795786464599771561049571076764203779618704734403967071145242514880010267056770079868301311695158232503231055052473591441630808126714862003341348073854672945612601417037926503559501635625358841797024552540933538229606989503125242087486753434083522460953615976168244878241170759551471817285971939871771353884102071179024489034221877692805662738235062560437313208950896003452420771395484330512261647583219668932158994237511263462169137542516699114265690389605750009140623448656836508398381805128737158228652884548111354019923810287672471641807051669025956557969342867392958699024920424453481648723369723415517264316226389130102109529908101347183806958305526421281306500984050516879363667327739354686192755739744959620452230521803424618512872807377714143363311034895747467110324718035340322561912489091431747115835517632277663421531793703001972115734540981488921786385864778194953370939200416474176299260550003975716827059352063445346218951859510037181168995225303353241542619880673187727176439844999183852759313424277959147535807287487891941253707195023167026368924831186486012432125064738068544338164115066640913858735407109475832484969890650117492132095037003417519386940688100334549128429019182508707917723595658227859994296184182737010753614579611678397743818510939287377072688967294071582877314854536485480151696828209907756161304680742050913966090475090856074317596411233052474801178543633357572864856009438180847512977922804396834506123740704179067003466547158241034550488317075847940178536745014992833256841037994517023395050532491590237936056563136560737575413191570210350452339412538328175636151775360570643858201931949731167079723777468407110571092365132161327010975360014448982060981974591357794590921793860986601398441371913059112943076481257638724257497367574791150442661410575993966034444987368421717944383280213560209170187982500380880338525343248801444043192196470974798151792996015032157403603109528591172559170400265606039464457727188434467237645704323430942111834862236634448031638613135047970692463399459452275159442397878357388439507059129762960958109162866390629855798824016305580224259884941604729708966652004255114169963348516918100900357902885154204135217860482306982579267053621662760160466677558992019567725732386224661150024990730437979646312769239033946127022050959686057496832782922759935019299039394638536995925814858513240158295091849740023702770586519153839040926755812836936828980812443111233658631962071647383534121339458663635827636537018898814423829605093589018155163467003143888603054480386716156967334397668559169614806913371450506363514800102582821805291106600070880597515401633748812964775536306802903376616241973629071817025556915914484586274807321023622620566348647993800155970322146789438042430060666701797649260633477386116745560354282738314096021605549956823286331922057939076123101798044236887764617481386770603090622046172484677572887980366407121645623986047290822161338941657999992168127748630593081665386243608245655241676734873899874968582576522993525645245615909285839603572941574907046124211024984291298533298834592823538371550402524554567226417219194664118637810167169048218581349754841679467052030876177687915146367430408125883073540994626167254721624123292980425205112946366103947403923336307759073543362520331998390117493535804359319458125099559069357187298941185971538374202394459206836025657732092776241384115356814611356583965722134148015074022007737997085148276809666766075470250996939639968972797538863627578036332818394711754083013058622992500241867213651724881619669777173418187874182713082148151073427336603431606788243967100140610806073421127481935973859483122856594089134613436125664850303738414553829867432670702394719290046227995091976577524459373837605599915765193379149442818290192143220330603033959372040249620383384067152609214237639654777953697409287501562173654500762659253772451221731128695276324761611089552833392895281787315899354275286888190418673511529962558617899098509577845374483048779484418710285861506860297233411896853539735316219741330330417252845734554631563870346973914224466481987046217179457248916760943479054173154383227336534567941643286400628150539743363077846735996193793342143325338736532247583864499318865109565880652104902648695356843258710140959209101649162261321693190267147333009928516808189480494084696208931333259687472215968332684246014194280523884034779338782715603191583070523559241665656484199752753989745375856172703337855932422764460995695909884697223961253684665518943702408448195971521772381667209086880352128428365535558453802623857770758501249367668349111013210788989936920446417889000773071064316000115100198081532524149882098266231743013912669601687842840670377336327448145577110580525949213096970235635946885501978738667135511108594678601383278852807060069199373030711087409640866245601878371404073096239564548156845098453120592641516433715847336571501659271754804299501811765386379776390640611709514466224923508462092449742404061702650368964181343147172841618219210549787531461532685833553750426617008499569962194078222272429603954873595153523996967055650957838724516889402983619461780301986930012127809770206608341722675197709953764628441807783384070775407103927563274735956041355842420857308207042988280236320170717752536832261566239087508983001957480461623234831520931555683699299404978095964216563902203766701854244565945044830663507259878909515437232682045448181319278862124584842378969023548151470305905037690364866339105180095716590045101222561877556941372998192358826732835243044204864999190765475212637989291382258273148130630439303269628726335762530240132853022058926084163845819142798896165258685075730122780451948065142944397973393649677059138724132514956903409606360713740564523248884831256744253207888784838778711940808085511215847097762294538779774213575500294650223003625851657425885588114747632502828299318881480261389407199302721352906270853472136735353057078802235038129574002038692637891801309679607064391746385065237168951814097619434025579274071836938264895902348836756053293295620987456341863099189500872695143682363749702406984388254244182676888533534087009074502244574242678032897087405205033169591433612092321514993177641788983409477994009525473882205459025593094683129549608948339734805801047621558541475837440794242536119148314996636814617007664703865179544972939057192455585790219150437190692197685689451086191209631938677985970781789032676249538376643258673868453717760746898271252150579488296177306483372950224267793011943444511187572204039065599036258930190413521472566326688748497590921074061534317357825438604572796516966725782508005692350876176072674942695615026323696604810773020940056748009223209979426239597011402579369896390543167859440856180341781699534801970548979785468218217395720144761269486575598081024284778826700738907543713182585295160252060523536384748675728344244535119114437410250132912155741319487932133826782581861732457268504412176650544033862408571305806843470914878093413321360498705868718454093204950831901753717598641696237637472890324225248286732761095768423810381698084118729731294035398466000891833190805004477539149587975993781568203907509218223329670893612316548646667358512320618053466295324085687578852070034896734723326328580806683110970633961274824839888062445884507612146131450092891241514144869872667792968440544653762880383576547873484370760872007478151118707413576087408570089550618065852043488723862946847632102694696591158510291012940656541065219991266343221933975473224176595658529101390498745986901513594239486807335030622938214758554585769829372491396756152361076736341353712796805495012474178965290952328601907893186783664549187788499702227660611872505521328156462491816996470211927355504516911412962544297943439969721024538291534785012514325894203006572222278292524135186215855857855349271728661760243257237861666204442436531732138922938891631364700792326678326475476527007142247684579293337682668994412764994746582712434978015349271059154714992146107999925348551889991012915310637715228007266400024752370444167641674832178922908442239116792564459111755515629485263574582472394236684098726075376952359248417366348323166152931333433356658482105756246477535032221311553173026605285769589476904618303053727070603228792071001061861377620374477625833351430986150663565954924430426296794769528644676888431539466763401595672286137390907385726438657884996494020412868723583486612005628176408797421569750540642551368497860474804269597139080261507569627622020906534321615728259347196728808414336481671766091289700286063924003628454423546158296562847121635558363807571533028448572770402152607280283144339495238730458894237793370152125122701577881829621637594324351684308019786999920245450517381813479933798773800153272558568568807725803450730689035016651667069707211305334413102681129678545312068021616128983514972000887126311690543532182484428893232434586723439110405092393007261951309654083201384001548346173072801652791346859232491378757056853466415437759139081566195623333920878512231679443569714360784450980971325111729400617460284731593350128718760098603342981579701388699460189435848454483493181482384077795314744587481661452531424364625180670901330455303770572462019999499155557449645808722424744864953269271849535320034332754472386746736446177924629798158118317931278634337926262455363698777646276104667976371826906759658832924975564394422414110703961277280809545086325439637410250019308983676199711441150045752980249763657938667058190695758504062868378655643231788846754637959942260508194222140140176790126328687431814218641675371511951567046782093120743390016740627527127513851028649482810372207046073381231004811502379137342902005631859460966590244408499162031044466213562932145596408842915666994869410149690873987590340889390257016028068979338804107749402743520323821946692090811043329665172464873073813520575143298942130304383473738541434393141291413146146824179071230912424157890447224361718491378049380522946278931701238425542945754887979279726666678650398770101735777865065308809365493351399392875260768701202070825635950803361792182076266105067626648379639563455982869266548621912217582877340750844457226425918798932130798069243085112043991785315384957465192244512737032466421369178915832313919212585572642844017139650769364606909936081615062672842529712626682642452401110936522060348843952340247456309943191965403042086100584350744316181429460948157005836471670810268909799424449796634981143963107134391029061745977322863343529854822888815414621751000820396848526603512545411333798671850632359334407049458259397535069998878250889894113495949540923078992107274066532723163780606211881733923878397249404368284482489867389402620195172587009904769476851676043852361774756170052788231096964727668926078883205746497882033402944446827124698506137922528366078039076001892364460983325172019622841856568899795041933581083744660185906943692257972321960429481068136330187110730884684282867515412326820053339463897640354312206902468494532259862480973483533830616184930456570619167486712656889936755654019042989444193081263539043511618372851192329582310189680487219500416624314780994875394414304833094098776808220747619739772899191476885801229132958093505508958212002833782256629699593712227496417493012518935467095323948680033690628403039667834974036755765036412837709409161850053424423623280288181106825158110707222647299220264622739621412535375390497082028943040944882557704516254851658276659314065935045440483772827860257108367788570923336774807461132038927401307164714104406907601322252526285208573801750613193799697208109890540604348446383723358603505097643123965541936108601475267707073927769608139918507893382212320943853826217853987977972081076315433178437872396581060502924007731697115658266897578390788832994716672472806539568319680395283466712043142790985484269402484832279591541914480017134439721217612105507836831911445272658816800993015968331370080463978723397860486976745208560873268775564746349609591451208155980334281489710833422690946967369622830208058768533333276784624432472847961129563563197634158689370665405151071911559632538468540288719311401336763376167643559910283372738362393980402846973438448783510831987662589418853288859359546381504465823313981649003864633224659103304488184765823787868663899956528624778133751094551370212004790347515920578217071183738309035559712793834686409837899998717679106056192649003962517433531875136301410302323459985369282569048718299840542554124064684061177923827728597172164175773578951814848072405572908178719006426031570508186947023321245240027130648891645664559361439919537411742303630243301869665054730659394546047213114811249305502921334175647411423072050441346214663429688681321013320209579270620618438848575232439486451038136797380859891964659319976205554165064257210752005940524915393410416607610429291552250407158278626392059944277714959729310061255709522738236682123312115251165300077624200104504371862809187746087383325376244653147861776325687850042443387161527903052325747232988312764053055440945725316245658193718739708002522195780312341496337048674696784514343438924781583981432679646242204331866893954883008118500345271820302525752021285400096184585358218519208397677131947213863789802383775079397984793042912144227816997176150375648783054353097650449603674449975508210466065312219067157475637318811231198071394406624873467348407099267240626793277057395123716154224681024894904883615416925148329203801003054091761589427197926966033468016544084564703915601088963871549136356391591271649791287993057176039425533163858579035496838598636271494000024893471178669551604328004073775633692543105501001037829362345790286000247888134975160882978345735496954563650207551230903612484519662979896972565742938991812910435774243485024758976519225911112860806529377668960743440105851283461391937440829883184441496390506849514989614336721873366963709117704604570120267597362240377044899957018645335016212223717768759374849072573784257057349578866989396707605437167853082526870182823666208714395010358411661885446173827038782163831635835766072418791287157204229488124498089891070230655025661481058983939756247418551249258562392106403554084782191007916268334201523710523241887992252766363481759985914414257184996337970319546927307089123421071768765087622782350985506132991409970683357914802504052570181486670596252439191018929615936825242421648082611025439097420212045084358045130666735457545619688113413145639482490419063703172029687384399351422649634350321919083776674934945087248649962322677350257379678816704354919259063274056736049702729604671771206115928046384341539918596933348120431340743943467869364478137135390961305725976763131120618361385221237129436578355064195185971798712151840515547996985185433787215351179075061752052183273109325053392363186155274981031993578260516021948945667597045016342593004258693757412818686110556766678940678490873412566639251820373236718445630936856096591785251809765941348681992387463442437250342412752433658397827130494284685281040934131067448217399656661062981629433079551292527335144313472251353016237706277500852370102750987397847807218050156699806680164888863182536139865681469828829862716802364076636081896386870329457828830520738644131389335186515530577676655034779234148937702646744253361145128695762912411101536754965836901166729432953820563095525162306140149104239314901979755146933167975503086955350260068642052054441951932137651948886548967841126965125465352129535468155506103694933114712175098046953998767883592670895023334699501181848402900548445768483236351756808931773966975425652570545691164910242410981286438629500479951246371080233285406427628094386352388842683304487573288833222608329749056055871406377196402234983854932155414611716219639218154594686044281876157388952274298470545211283895321068476375748454717290636388099680976611093665351139432850081913716433873998409861426976032690979517769771410693394750441382303670545603777334328633074174302890650863840945345615375332343866108927445040772413823317037254382582507411972021607774490615910903917564648578066741516005845581984579882735202145171275881414967883640331224095464011395337798618171601556108811647309501190848996295078779943710392942795533086531059526403426794505449428373593133196021318904140489145295040762246006856858969936694421177223253045249113355496852248758229667481370531609964056155020708265717476471821922293444232358368975427696124105128975362020955430631157287483666043977123225358844347273796579922009547034605364699326247166668173115012839570452689128041178341321819008459261743766800145185138786566994195022516122492895809824714060544180316435856712319051364591344261925843991733692804360380732566681358070958726186820846258665216762681685741902987134016187049842984345347693076887769079290036375302230230642811801867684249897601323127845848083476112202553040535938718060774878985595672067058498129189773098673978120997055276300448151507189292877632880563627738358850069762452398192575346182313761612897275208873888757286842314560229699038747623379298211625697106793646511987801849706568297048717728369915218112441502359429161150407641368795661258014870870569691171655596120421741451160508181630995662753232651570804421073257601566879453629764562739720899972097178234294152845411077209085115813562441381103620728010474857022821409009349565625438827382643120831487349222418403802102267434663721079691606151223171262612034541153770525102807835630179099796848475697403911911084613407099769282728162359980721182948598529269068883130646288843442820737918049313422548524658482054744489659684515185239437843696567331712222497657180226803304872870623698448871219004491910437713481105760603832290363743288937695502285304401279652106305114562020809000836827162988636020105995835841173617721250080659083053077132542846027778041388068633079100703718723181769558162480342373740687341859783457599494502226088702984362375301635749018466335139524924313573289727117273372234279423645652126775039082996156887444279149221600415841801296687407739767652898233578780321204452090479922496881561356334177612717864933298719228315916643823961918437739820986728916149489509883766184382602891621405725270050777920190692619537667781340584752563204127185152041192863796293537345945938470361998100197018235456526652575496526144168839743379498550503579103615006945483124780327429812502954188260900393978800267909285809707819276668633013341897222769383226726995945667562979484875623466380302667297113801467861357219146055340445586729118963667754789603728320832364079569207295042599848856144288754226430842706513713457644485598833058464136061094635597700708750493793118107367865267894888153784412812778404193870110610795268790147335975763093963601443949717373990901825639598468201595928595100051521190556119445384738704267682625899517832626019698293762492180451982319096859850333051768500350710176984837736232645057794042310372429095374728742820693300371123833213942024237229539072033112762066341006033610834030500436334582887375637564104005991868324027921060615329117878530754317687602404006909734585217331158406271093528460389676445801352520252431751098608395870439878833971307524985429708451033568497408228880723762506930296445786091722999082787788123876995009474453462271781808646308944067610930851106504780874948961125702208034783625386983003022727292308038089792732502559587808917359580741981484049795614254903358052631494621566242542774249278895569241025430578621433661789976011944088414151662716516930407167710485918135844833337950778945609362990064252950367106533506023209303617834891010965647536200267075146271400828906405079361176152624793283816493309117418624205534422015798946108885658257590922760392555961935097464726452759844136933863294149056034699088538748847479986766022007787465590680082365654742183113128998982325189481926131325710403634675410236675624262297618909019260304633341887508226169660359611511846197981305028801605593949815320439518317779683033884658103454523094477570004009040423301007913712391584760681561804411203536169974300828587567725354325554974554315786207129103682493511199418825320460977975580887034624816786604530403270083061228439195071084121805051644084768196541217240287650778421608877585275967408231996361380457006958776496698313469138938580257522258154527631343850360320484128474964655013427293937120468710787465098343728207916386702824289672405803944345283591653344308100107381696320664910648749091381442341898199277088933656344644275669597876555299786024274596579553127431927077172244449985930408933457340672558626543274928195788933346971531500610215059598959878041212522571831774162670240115515654825589082396703036971102684224922442792573213470591497774546117332922366819540884299381701207748311938966984150082016328523879443303387330078098379320955596878149722623964431676763639893617070410736054104361975737417357799689252110354466204999307973780149057703129107793327344891799206849671040174838479296260393010514405143001647076554045858538904966034884904849764794228745728576628819706957231589013950512741007179030778350810592701179669083759039590593187298981367925452434857581051592621004334706398237033618319393990082176347984419885958116935505383174848722805114076685217778362688430626947900546753446103026812160733412515957812883766785121965762244594978345160344419012266184057836761318354203221240325391856187329572415360366771862056688441391685583622530071215526772454820710965631018542630814756000282660826227724885014637276558270132296350683081066599997496902542619231050797747516980661486767879669907142725756094776831080839208119469888864954735781409225068196143444616393961957968912139393314451503573240389575805350586214738039830143681327784501398601340180863570032223496435907332852696014342876437036725962563849918574389860089179039151922711954855158648157767144279048829224309947498613275495729525344463835602488879551065659220593285451622317656180688971010680268843065865831556687746826460687169837678854927282986837372887890494938639281657042224535299998063181558834575694227276390379818653583585565408802295295172806025243279326165035846450837376973271815878709945171960903567336119103763666597918124265415759159628338758300108167435798581547804390972256001291141926961705911948093097563978107451914684225465586276165010803447028612678158181605618766398187642637202012014603412821775403153497914824497574813850314328809253756515531295626411976941603347042868736322920423128131828044518698409884243237570498983773623958097514010527412843939248847191443172124294550683109318495514699173426756273275060577640511121938262966072316266680746121635295795626426455916113536564515005550067029925983296827686325743520367243422180029698914521899303589318157249929640515550155810285766732133843654126975841107322946503056883492316678885930797039918724352248194194479060150127146692375019229652261192269989682726246844391891491441599906168651950296318424129007224358304839201858700232348716321728907417506092603157205369895793628721072048514239039602102957287798911195575001040810402540891021356139596105512905369261370418949707551941747057792410904761979025737267145629389718271151305473310927693997175618866553833550812080112439360094569627961145727011484128211818141368347905855448201435732491087555155014241784747079717554147668803084578900519468032951401273392739441881798931095984152997766123841108668370473799941224473850192566782336438182345054545616341446884267416653299197928047346313548643439387961094580810151990068137925281789083847265536809882059046584109300690651236615332947470822111305598846211170398611766580064930047068438106890116699607983504572340329017038773771011461788185733828933909406187906200390616701117674728901269075890523100728360722002462187721092209913280877272970239365585200044207959196447567432828130249784010343904985900205311960854760861964404523631383133152022695077269067659963658310013585663579197980197021720491626033008545922906255341158379571645304845817267040066005711470974955065734227570646187939368280158777171201723575101316982504732150346855550158405315612773761256126660928262111998692812683365205942181231673469209261682559962843087854551448359185364496286663101179711219411394807109112136996533921003258965176846588401560849153812754532777271346715121169166546478778606521805342447395437913469367973523144704432692611413106626129942256967379301026255327179625142761964826740620940102044799925853730404452936140181473144394790632206805194818226976930771691944785607919559944341607413786339398455781880505074764039831309926146364918696253610777666850682093240785288443309265672310524818708208947089265288761920112671206550073982414356287711975128033280898221288520670875590905491880304607718684388802163452823496169165112650891759751952238966598068175851973131234565349641816681575098606562734433517639678775962964421384134377395932269519259389719843628717862124750759906154249135555296380987080072403429797015721509345878574025855928022721878543287913645160891381290643411455771481395639837520703302321311866001735161243741480136375883717016835941935967092402029937796314493531594182268797175825505987869562552688417464353951771391386463652334266053222952272981878603039145432049799217113421356112296940666071233614043413759950867627248611187461431132986852595885704424885195557752138309060835227821531262324624302278920548862857859531662448163045054717805533637906559489930070460840751963391293849906202186455336815048681851854340132918602619014326930568429494637768019699557114727271689498106898192097815127718574811927504589021034474358353027547309650864523920218205273908196500441800152722513288751532243543197608063955837574011383894231518983352071236998997667569838285134329647733203902906015177409934495340492038432289044115131498707810992943282680393105590346128167537410307580706639554460217636591071915731790288914802628147661598948876763913139089521620130321467810875473391734044526940817873490284947813098686629144348993744907123305706799191454699177618485485558266197816246781018150740180677828345088000707882604186565317799820765352755957612399835461358275145662068700283155596908268479549370468464990903732981641725829718763086763045959572858489430376932486043862484002798881535968466483999795107575276996769771688047873071235528284875144805758229600155024631448150752617541933235441791979645684990868545813167990760829777086086274031641469615212434691167193326498411177419828902165298770389966957398154133343949977114421803759682068740328863828578986918150782321406907654020329870171671566980687024256952822789108175509496006090909841418832183393437495760754307267718741677946540028905819226134140821223205754611365158791206507513783780280415465497712708176590790937330793467000539793338188694341289908560536076012589703433820897216175334661185394998262203585447575581827094465425259848954302619189444524563667198360823408526523496499614390654324457129627579728339060818253663871345828617449166519230479525254309383774745158803353585670249377851312847878007763358441694207577661695264084431403487366653483155220789021545311987275516317009943406822231784933287344765498971507142586178991324028842203903357632448509538185252837833685799698200987608560595992174970217949755104265090325216974290586664116014802047563348398473101554537896875949848654169424468001929919236417824411657036643237309507064530121189076427312728274378113245925972535536976978390284545019167181979629749600753413818226914020880741718892996555945795518452200358287429008720642645322534059144102070501876666192933588486241893389485987389368310482815468452721422007630214275517634469349597129004377776120101405231153352254895070286960554343112607752933553805096199388763019459917229990820605415643500557819283013178518548366324706777606653605152690424028209725805413716286050206476635298381285000520685696488605289927808088520634298210881911949097506070725610592220623771943098043107098595473924796860346056828951093344462339658703809256331866157106258685712834749017753918013647868167349590293513764219324110456380874746404782127427458521166665798080608062178336412400066109870094847598931250194431688762754959880946016597138903338795869939302837134672645461098971819708305351597895013920631337887670475254676673679508565700233908395292394507458318050232071626557469198818890502850046514332057406462646057129174861947193175832552817387485607364886004262418634592623778226533966264869127155539668564651062785722627398073082786497571702144362256144595972344003335745263382387530653056207195347416241211679446324881546680426609202991395528785552864503732855290566728865017722468229768748459809215818307041766274721191441062160644841818391959923267566428244471076035242461683034754594867874987451025809010135657187509793794055649031784026624425781430679979822433434009296020128247063361799302993562212681756297243001000261316199436928552717777184411626679364980598246242517693653030075927911895744595296181396076402312310625255602898681975993218598334836444297932218683129619467861861398047105943364815450058048608980481094367027031945528059868655296254487893708703044343906228625501058555037797880659077215343983917330235510701242657365899589992908023455502179736122631873448141241223500818915599939343302585000032543659811784497120759865247911933622618206933273829033777405865089566665521101798392874164171853023504630358740600853674082948998434531502633881963197390128928462977157210790553818529137320955077188967261440673469678520231737718398828016381768807432855191830721090998885251911795957491748929997786766308195334429353801124303413550551204827416454489241278893159468146088571162493033990870379773509639694703340317918532030699809831492361723896413589304560329353027014308244682016209799682081515525879686921343897006245915674619439391462313165713534475212781847590157337004088531077541396514172282545631601058968747216063117212440249130733910870591058129853957716459426780115725481547418617993818694208600317188250076242234237737075408228799822342869278980786028860827705206534834623548506303137829428649805193334861814616803666141462778993097656180015531490899347158326351689122455953390139425482683810637423499349675718632391515748762956016564364728207810987460531768686253452641941707090501679684625169035988893499185319262849864590358580061385319372182475847963862278588657011905944985014922624784618578609965420993150565459419368792530204306759515809179788200754661973835730679543762593473696767210548881384315615989424593352507214833737592306751632237219481420053294257768292523378304355704928912062915748350011328898218089131975990356107069710012352604416438251382330711173920456674414510328496251879124812537035565465291524605503229445887777828460756198250150783740282236023646453449061121068520730245545646230444508602753933679173640632399542675111452605645956658063178040235834089190922675337076376286333802352107527913446596658673814902507659182217275310580283678941356573266648728479767008575467003845000279336068528285796235506041354241184640867887578073962434312278518756094654390112676326254692473527905916235616800996519523160399577666281007448234947962115811966326166681322790054104532630894820816210995260487189399493574528823053548943136525200788687272643758006583944974897507663560334284751137564053807291605241877496345937292995338349558952739700297145555450793532120497924785113389854885600496010442120517755592043300880447065292230952111059626524369691204631308669714390885643034793695668649301215359624070536453730899573616445969351573872321786986990202166473727202523977908086446178015489330579480585693929888758818021561923906573694124020955031218671055516910184089409663162921091800930012276311600545418120438768463908946918383211438340484705447107346841797662746442086790834384025485396833070131338402670696294160320590357646143278821541487930785624314737118542848518833675745610652926712849016373284222969729437237846470114356827378720842411131655012765974172368842562965773618089890820740697465942691983148104009157112173869432451110841001839496876359078055560774358848658788408055456776222178047970588422398301372312264477011216846833749780747507293644609854666903756702941285054010342400444772560817031666140837028489133913174630174766943019260857405506922072765108953885298546537123989881869529358318412173627787693852254867747197980794909263635693827093163055300302228745167127980989330733232138189111998570338492228658101822839476844807711201625971232874557810078807064439959455423639600627562112172471308446788452505811154771410729002971847989306668182560051587127604594513371057676968882168788108057021050796461297596819559315702760620764468528122752143889834796603576735637610373358666550064669606389050525311335983423269960965101893546533463913451645561571492468650700352041250416740678982081214493819646250669816006494650848956183742780460980095967570026741345361594937823088040665625232596854753497294533796186813987376994205593176635555124498572616557689011142271087324267667514003753009682767521930948749531959306137271878428768822056570569758987468382998403682627811123316627646853787989503825697935791168567334167716127937483597948145637944491686009531986086043571651229239824163122977122777462497677057596168061083506945075059475547079544358235931208387450036122379729475187085384579627846281760392277326667709221396353150252908549316432630995713910682320233478008052137158372799177451110331650291838572824327115360230599394081213625484578057042854741145452263376322805734502426687914228754344235161214102982118105696792028675227196701951468191236483019096650965671305279174769653507316756642388991806328476658932387169747013898220464726502176397399814396897362612477027698041993331765368938314129426953247111669408413706127184816825582615786882153780350170931058934100959976595432967419414489635857633784518823751853123970468516015654349835745691115705336019715210588304791996344579710769965988721630145330535430900823027130826980724770950411648431489101642140813562433943128437311996942580024554801744360924035774683464938046673657481882530254684950862069865731899871538933944906285178538266687607297440296571629860314211920546019190514364540543331063310032402838250248610327218179088195389647522677854376105100843959711018549134063752127155972364158074212804575201265669701226920130954281520423407912506404577298345277113604959143244476413145909299507977999570416434324377030496798733791143440401260489744093742414919753913540264864369619100295936994278264899831668228015621021227852694184923906009718608587156161237690505026582962663168125526457514020683905167626858024667987725440163387061536556256645828990290949797969368036259693562167516554356849349201407311940038029365637798019293034303724176578576846090649822401694636251963203281569343270492773396715730299685391673339388576469444417282222206569757674359254858072942121249702278275853229969856800419245493943519109708310079787661344854425914838839876649848666414219094096632113248521181730793990054164540209371625554687838272824320379488030015919853487534880459850639351429574701438926082357180156599928263848879382789157595543597080212081394043432668598845601670418063444897147484850837990397606612208923064233373992464076777198762061493461306802058440357430755208439787310694291654247056141750340027060053950286956069996321806977086131122157740446528269672126560715498238383970248607813144718696433786672315512246854724571221440549177185551362115317787140236288818631070275563169245780639581014280629672263359014251435659007716625806424741501041481207811797891013137697741810930771593370956091183426572706126319105545294282634160042143368443842176749930434799839453102857237415183553063978592250443002507002440471741444451119762876132143537500956947196357521023824140181397917954152682370877019600187302467841290188154594446309333313017539860411947696844551837484438225551358601327339586768208625885854989488195484135217468452102855876241694808697848360208462200555112125230327603960701320719227928661569565025097205837708338582360532898408563736189523103768957652015472295436146019178387998075907409393481218904142685616774564580108369702833480211124491708229078000554202319236702999632098313929925541170976932798809615461017267891063306310636271264496970225153002509485753585454169001635219401112533153553916499509399189299552201578872073157213778528103509478915506482630402921074759347826046706389112322870886219733541178872413439111967418611124455511995449490568381702431569488739941732335821326877953518597848811027507936935236675518586082030859829313680615672913028754449615205211912918131724319051640312761158926475221135390982453192306933291909829345199219736318505858543988547882603707079627383431987172672163684968859218694922361835655838890118086553571194762857086180188756789712403054271896574019564940330678910062016875995201732900506821351783072330779833517715265733284175460082604145048825041207512279175804345088662313730965129968299160751624735584430615283570188318378469675417905124698607239710698706969299992046161117928180908435167038590091551342771946582832208602111420948964740993297723405388100302253716524135034596681923042715330705378167673998222586131282148913179014342515736817371715064086978227583501734304246347672207438400849139497192514224769340011635961517588638479994853217320685873338926321549878795352156400059995632708595361802639438392706342545233736435820093999701514379247371904186454490982118155169031954646413967863720621320239304528291090459907321218353633102214102623251419982920139379724620489321146164297165892473538020108064204656234216602844391629710241444357929192994074874201069267635901024183177525666969099416223021337336603737173244518492088529395259924910935528125537315945483125479029671644318279195650535831636550110073081317866300239045810676629112950186301311687723427889695096794978421901456524771541642708967015094448178568029370255558136206148341493530397822917078248018155791964739067362680055687386805477395335108210542574511911536665289376162153846097521761023941891294906887565115990158621541656121744837894036098203834999197495486585184351922501964550361530826455286814103797269935347852691402308460727075248679125766102100085159822016340444275294268191419080356172484309250412833286071227361722301730259637093452590954438257967745379606559385588653884195592452150824298561683811507516091415321429370839096424831434281852092333843296052868255080154114138513803917802011631676442714103309152901869494156456831629114937934070286292293269299287163971209739494159610441325379973837831621044008174439626374313348574973276426641597692413679561510334404812137295893411215032077793372872615604901152530799033155971073187821711055787598544157985001206574013655547022725860227409312977401881381562044144156523536187673125151718482784083819305928915123124432683881475186031028234782815336490053600962442954485424710389270005272485902494609949781135600139160966399032625220395605268067225689573213804648462228619856542231948902322690403395494385623308415700457426930485916677539374531321048424088354963954976153723590424387970257791841387858740185541134783126720387275194940500324935212018805330131510703494943150394318887890574313749600452480966545201288248410695439467071875841092554583096337438612489051684200893173090271745811672882602815390905373208265452730138636005517464611464890466577342469784949738124331280525735555693571041179858251098854351885119407592068130961427491291634899287821432372857346721153129774012751130974796173887922235003594692090411889208196789908671521926727803844898740812947225086504968638543286586984578646306606018911642628766918761775585588145329512248534321884237031602232687962357269339035826595155257394393032562433189816429729248493992005298142892199377544666284697287627755878138321129690474793377840092248523124020645543224364709163634668906898176226804148441605137208562022889743040763479667338783976785287375767648767301084680036673935923124227257739775810189150536261432965482125133550493463294163801839630427551088094118232981924223844836831160858515020776235418825270818756657950512683828929281390171586674137201502064016390529568913555169576984596411347268869539888505444437713019251869588511123405875635497825951119495809447707250450809511108583606357559018183818146922815126466991676213844304047875901996201549024944665741100166148438461117788823240510362502007338356968558735488295451834260207258967718218808774216057867492360793961911401339764760988331840584029471677688121960414111206807308681330649645716702685318867914032584755525517766647884961367720127260542959737077592464507788073184391826522917503394470053840702821321967081242827489673942391750470642960450962583354651706661440862836603144089431435055013778792000195014094670120690397739665638654391623153687025740185898521969896090907565752746896508605867457998980309142167435968358064003502874348126862840122839881230090660525919533702995984813837403804923984822109325949968548817345154692681948768356012797353714238711103738935503483235181220200815512541443350546884310206816493879788736676706358636914534751327921944447405460724538016500167156375610580050464129284470209042746122223751645502498786269464043226622081625887704508575007553397339072231280238195544896557519322723589026390230115447424432100502837606536632884098426759494730354690033528447716943570572734098182468401868022448006441253689523137171597636415791641525390378822040961587412491359964075594946529099334484196153268207225861553224940622084555535860951054611144712465063780867585772424875214243302860706684064063764107595746021140250259809852888468463501786671216510075428167152624694552423832217003197045555794946862804374773017652207402257943378412193950146311766092117638969817674596551268057014500977732120049328996315063110231087660131036982269289274756161033929953001744088539068903592565273329927377879638077437108646727498563122185461815184634309320929991558156410755219147294243249271232163255296689640318205261671764173620576621157653902604832937996363612660175719230716872405085073951775710176684767833568932039777988258999804561051444432387026412082559175374701818443870295937066738993145522551957421069209036446955269625544517471570700527020826864794664799041111587367350623823202518481764384951575384350655417279806945384760184910359881137292748766486761243265211883195195213079781206260767431267982893104134842568243167044008416260680898269436699870889617865736551416865850240766321328923565850240035739391273594794955672520924092147944279950840373771728636264969416629423915777614145249576147202014895332210657858795429225583632088438699092204249598769942467780777986925643714760651722664952477065651679035142393028690619715343195350604131387776231506511288872995268432395091971700568581870036174380851557210658563277934164258040904073120773406910510050788763350678165770846584392509264697818834292134163195238074814046451778469728880780214118262013953873354869938905978398948232813813129707679262035824694783120557099950306287017125994696836020640523753261526957015799372351067887549754968169897295337412561668257301784526723326660657900963637707011627513715980955725699430741266747327270101316282439620920194799568776137562513730534673507219932112929904269161670868251710881127320724932698030584397408359430968327218905350583233957813194539934666981009150117071093593184997664940235663862128200669224206168266222618132950087739689824652227629427353402144260300650251752549018091905231715810353598460291489572347515920614906223903249062155719102101035681190820933141960712260773319444792772562514260329330710842451848230471009309747177549495849520323068143768773008044726761531102782731670791270583099854662510655593779945865514622720326014407056381481789445557749095666698381234418958386296568193884924471171642251467215334967319658420460934994066679551255157225478624686163938314429196928301516548261393643133217605668229205440006571159319294345965151156297819754234487578904128404514062706430079317077933344913852515965909547899692393574526432187587396263350362488661519727298005096573132342345121808698778092983568576631037557753948385772186982600223445503892670213888946328129406814663889010032412376659134054148286186356139872106578864626774920471253123712580339948607496245450394027056881905147425182736509902993417176356479004602403463458983831195699822737761897221099269261570813135836261354995840677673090745263596250649792743818062712152801094650362124057237882234456330078152332026534149972176299756754941627593339939183428151616654289050727863092219476402252064088749722819740548274090224590121278940817347174693927190230418874823817173766948543729804923514674011112287604506947046384605235940846832478768321647674794858122063271595441288591352458346893704741972594181142604177915339246214391584160394071347710213513765048361403107204051024594260159303888713008922036707758373204162955280227721248054292205609506334145369211683159280474395418964551880709531788427367353215442123367440694011950939739459333694677296988794171550584217790745239243396566978395102903431697394047969260847666637400159469639455288395682714782890574936595407070367969335768145023514058045350991636844394415646582029387512603427840300779720432379198811804095526221012183544964337290165603444738066649031615024756053328300634329264654657967259407856286806246924537871848072543072593665985205963182209108489705533430249234597290753976998270148818575870500300009673309557815436148554488964049028598567046354236253183331096511411349310442358522024221696730045198736915725068068789044089901698275935405319677757628900035280533657217894786987643089999830099855509655218714193928308279772655013844638912891977483864253703814372436812553140598607916862925036553112165064404251247781559556621401221748904305430082790483111703209800480750431005100113748242961221162375589759781263146951491771935469164150836948234510617511274803372168783666794435893679051657168378877811358592920725013648787682295723066976465938381456399302006011256301439228922256814356995561710731050070805286376770190733245288441991190254259008657421501109204997285077113601043370491184252881211772559266526681877121455086197115244663932009181855539315325889087411923398907912646088779374661981376764260062604654084175589309808617984074257810314193345891627400177838833375793137492133251916483449221719905170939785397222470435910503621479777695132990517379364715196280198753656298818107592189913238193570970946312477713627816489509551410320752879549701125444206216277155776597692041600939858242932815228121818341308936286910050040949238399177256242342545291807545984803542286290378175462203276868523046934463312844582194419087553438497016096054937578555128151856801869178947777927331793507498777802543676686021984290043053755243665078150371941980188631113385148239637996488752722437151386742037941019552148110423383571872996657766663430479569364441617292881153503030416578316715413361180529553601015638820693112135195710325019344911382916625429057304188140217211485824658265624373643015734945383889235022361502550322072638418476907434062126689717105909922395081766203502251316579569222571112522413209469915640184909175580063866517916788842217973963933044975791534577643601791926454302750199399869215077724586583392754348999380237414258908140106749301907227157880365431394323899321932232822664285005847097979317689052223775217642139834732802358170758815445357894962769832516007370980304433149187021758326053456357127339882151566082081630177782711731443706580817845811615015532066042982339609471203109393542532430808787270898826935718718063748764476959413365702446534272258413132880165006718362854600374393574495381632419669644245050786483504056643577651419410896987590654258673228447420010338057338229788279098341825283553404532774821749029723265581058655208196602930589838944836328483936598377746545348675715702061491875335504796496122351396985248007562304144534883507012800172803994931847572274476673567757466849046320567028661440119005946308190239323859055009818934531468505186988414218905655061509557260004813644612279556218832414471147709105074408361306938161817025584674568403351135005153277458124272328100761257108251758701954213320540424277204821141274828209643326576499846874010530188096897970131633603649950962338213548661085107208219901363707491714074306864811172616769287073545852806330286084800785529562697901378080818853760875852037012642237442242290623749724377996307747076628720975420412744872767312058434415235449934510559907585039471057253885025907015573974126004447219648231178847551051558953362328558898211159255864982596129104600588351406864678408682991152184146738092344990307916608800681570248629651129497609512162578631414770466304347567469419948128492170832290478307311545424545145133352546352891968715151050795989365814272364525008440887251119545625401167278998203309697354493312522713374545584199786920996605552619964741977553612039312763564379328420392645747579623089556916209059437872851139533704905799675479291343878499903653389825385283127613470354733334069785372680292518479340862466462715358878138695040978139582120601301913974433888022432085378079027494104542042607598152829756152335809836826245554997288888999349138679091706088300627984603922292888294198686864691869401608973957841267506552463611757346500976362681601805048447263790607391191965512994099380617683345349818368361454842952434312921673111573328378841760611688426062260936853311290521245087888909114627801382061877573934779847352776928996350248155377893522279888927061849622405872730230025332170063214636624054375262101944694905722098136996496569219811776209445982514043463199510063389274674331612078226407754875657494308806932556118739273842932771455823673558074926846783847515886481741380385418293710128801375285563351032408139243790963028641250922272503660509575366586790944728264046361925411271283646566255374238404492622044419310281746368249829479729120613646624430557622725733763897108059509050099237046671759365524331950305776691934385691443726661936674248564414114400345382603761413167917516492191020672007900893958878706188504261369223717910922491106713831487593588128292890870454283002972148374976776406926941017507148697967560932297195799155189191139091831781669869858751199258955305553593048274794078924791191059891657226988470651029265236343315021936641619588813288567969869026248122610098988130763561128458705820909790269183779076374994591754567051543475842970618602338743412863169244585358367716019291996531964265974317319993654604452858512876942452708371062689017383162984972928958472738427253668793215170080250194767439381817256016195784390529936425161943453126868789839365969367429308551375625687974028608549880990669875850711863283484077437118615104472942266159456669238726419416953858050953818991331060582859307718567260649628621537133864989984311362430127995631019506175880640581075539807119461029260407480187057885794696595266182741734181189457037040914218277302654471568943573390659331733544855785941642866279666254196050518636259797538238881794138841300096869976847957216516966538627254224189644675894765551124815440005368383209879247911785005756100632245390693873607947102687578674636234781998317357049383690219264391073012502893366196405253062686650727473835130146858804897061932820686715695052032030620612880799339521416025048491472893452239348753941333232227308145349567953441725515749559629809121528870930152797968437270453772489511091774820775691553419954705338965029535171232452644122028778961218155977135598245625288198622385343334713210793217970028927089350544623766736159428269818100650058218735586789831400139974647984599224649988329743386008566370122261370823382528304555737942886373443533201786891988100658967894262314100739409665034355912683980220442611285186688398660648203836856195826151472188744563688738343789107742127219215950877401107745544059853839837511950959256806507892050187979973221943068856176506692185615979872701244960823659720864980991108927333111604488510583593789115467502513671000960501063591748218061930679686100861952878416356573182761951258837947417282710536195693869254603495457987488307525481886912790033788389367543925694715384964569862351697774041578480819340106702804156317617391006403828305520308106026511594821871015593714252092096872184055820448928240379193690609495262974771223368384454593058573445407531341411762396029751101941649207507711755211952126864027478014928718445413894271965912285689743174745869629990243201702444532780119662236082662771279470715148651306678483925783953895841776169987115517350088030852113565881870566749095563919944784225018718202952563485925813458585769883684746744530844674297962895157521467590566796176099106814700013649630008272697442249156947252071730953740331474986171113563283903808235195841877599236456859339786149183789348905031733120797291294971853463581965418810489158809927198566952957948382212891880892874425404264247018620985844211586663220636640629345089195828797110539094860245516582213105451341197328734455487460711133228069293305129519214591884421973954624110109606094478673456790144121474606938532798414411182931374696546313551593371120968814850811772834600136491621505443934152180758046903073282223751778232830503734361561296465300838194951744049579952997461055677368868495363444081800516882939934557533532733772948020407021860087347366213267935563785972139637710704981322686973346391175014723058150732201682614877724748320243601508156449721981843840932762832091304645553007838430714345119139000468835232366657680162082801101997538349609985639071169973223336390240845049198418360419908939739192029762412497714518166618644564458503280644788481234561601565419885810696840816639290356943727913347750229885794021633189825152357955434792868321788640704770558742516733792890686294135450687911925701004459209809322522843067147567476838918819128185589500218742369221766610812110217605042381998179754187516563878057688067178314942042774275725182129678553607989405750523898258848275806890796969689830867146472030375717028142760540169205632579306381378459486523028018731744912331407323059355311031807800796653845907547021200907539555339858448327956894815135354546898069654198930381982339479547947823832448307107052876380059042479730808859568636254012186616141434735561424122707033147682743868882622063614011246624606797896219938319015827102846505173830158923494131242793220592707164034611819643067541898759215405857710284948204645477036803143527240887505536247563524732204739075365120930034918145608711058450459094318048631199440516562530597718528459414536825111950868241996541685515284319225015022116210701361469432664460985654187706700303541378316775112817702652210620815846533665013823965543467673064095188158376076185050596543516944161314295313515708158562188135751240759103725164086255373533421622900021673981560639834205752099164484357608986517063520201727743341443619938517871473865666186778114187864545170346962440196274691872889227096037677310031350361206030493205824082633205095436763390773195542380727299387304850641498086576911136132317239335232310092531539517786762529374424885541587645548023639269068562254023562312407195975756460778749508169717459356587037268114717774638161773918363404831133438953802548020921456504803972985578574922364364911838137429027184027776808523148177370306059850851705821837274616506379752213027967917276636781568673291195150177209066311006454215642213860623744269019442802393024814847374050034935638437459900071411938519822315182500694367024311797596795209188086541816361814403925684818181285732980515933841929166798384197398178900194698626060760978285169979361312896592054409491584242576091167504481480832334891676405156120988207185143126419919289584431007606402119672088854674425855077211184422943339429724528810629700463827694743471802936016477617509492610257796340895364124193380634373900682961732368773119256165868752775720664537217797820381824350696014531351279868006026918414605462062164405215662573532534191067153367508636214530163986555679218061975347634571123662308470317216875344449501585486111417498547612109096818082855631316339777025627476486142570652699613446777640428762722146155547972531095799547202562726267028517474917226190818643279441199902937924323403695811268024052564025676051833664905087692308602166953001595692632449628020464665043081893920835315577326718073093360622710943447130424277721753027325997597942492389306021166933821780263753107279787162845751906731844469041212419069240306176290320220272637128150089834125850201062992322391764874221645076201159684906003020761222614316948350777597606766228370648738260399405156939743447416804311133780547360305298112852439433416113437560887527869836013173186650159188608324397706545999313009815999007345475037659554712102169200730855381570208928469164954542682459112367877125399352323053061477138442565382016967810994136723966893214805789013867153872197190633476870629538600029428490998718782730395832480716159630929891373994385679758196859253998002335587948838467417475863654932881614294265567123838992989578207524436754707483979082543667735534676735320533319300160293555095136632983239607480985717264806913984947104348906987574217806685865145386060579260653613266707779161166133660026230002470684127087798160484696445424764398059277302884391925007459339756147150054788460393335151628746947578803517255368417296141694504788061161520462418807460664585584498121749347541972342248116020281776817799701089636186811764605528181454592394712668534312724208452139869085948534047374746143910225982498169684380877793532328002599603256406842472781578728696686603914576148055397328439828024732049136573863719139085520345084524428725184574483164319454064290576436801617456731027168136420441143226124615692563760540843904705317206226754661854841444771020523836900055300794375372217578627863955781665395432594656767643567108940111967536626126207114560532755363131089100837344255771552657882953810036789252038187819436158547761199690284525710220979770682397034039765319026707436361525291670269737147994186353914314821056125726102584309863813387278155407516854005516719636731022360129571312133103590061236451706085724191202557036461823460603722637745685339167562750535396776801344384065715585881436908786217225866774747542042722889028690419877083784245207190024204349268657013390485593759546828141485304432273048093445363332489983361549961641124107591511100245004088124669232696184430760919925438989450442462338940658597607534641361165980072510975207136114217024766079830566255859215679881211843399975654431622310013337916628229276986539209163537164686189048564030051517616537902405769565130086503306325297861817207652815476213981329497767444506926281564227889418597678828671444294572420283229111052067116892555245583891597458885157242452369205276554140717538863078705742422564953180218615389388351921328825735356410510740301694203889299858477968893730884908923642461794921743185313480231671450268581007812878647496815676050933639022300540900986104597790573934715994582966351055835760213839266343989052697192433049639923312363436522155737405542462176778561464398962363677852679135673517088484489612484461097185254994875013347348429344891203348940447050789627229620314580656993833858703374596161059333145622632180239606863357676490047313468025832148892760873191626778556185995519263075195829749879607028691338757428367822078974307383080819472590984996282967137995431472629405941739517696535529911219515852723966896031915546809818805026338734746710977500695488536376113582239426438891422451036241725702974057099001849102661834840043593607377367618968377465541437826650824389161065244113374175593013181345769593268701331352510524891996779646022530381057500478040107213684219724557308223398955029903468204068816882982509203377699629717057353823431040239634464968594368408610091943986353698472862307381732866155306711445695342957767981683476966002810184222132553908963450758324389161184214446180194852365603219499654215075597958511906861509986218129650158262844994060937053976473784690378266550933805232216626005757278254975173823143428455877984340993180395053463358046816932571248470651029265348733068038673646720027073926163236725682242760080147913385814774440878596297171848628743255429475975960564514545877824766054882704902571399801739663644039621098838394026834599906816128262651959432377362011368419919477435952742767589388269660162560246501431610280477042301258873083766990170711736880918406163057506082923795077731033880951095247345115122033699565107700731078331101964978735687268821690252044489172153469600691412234647083328798666510618360314646382603554320818709142134432344124839739731636207619589398926875021166122392257092210524843138609939253608461599489632974787605919373250836070804617491963701350630860762126144514644991316597798725098382496615363468485437090729992407323893264688428295686955066927228254440631815146105543101347368159063917161344521942261461590310642042482034466785157008009515107099773285296788117395378679986786028255666690167526245369148942844247940003075927646260817029584719866741748922612687535409044696004644505262808359491096054961113294802474082140219207241152828049272301411199438516599242743271457600267551755010825690061094524450931610545074297348312202847087543257698048450258335611385026142433952395031363964069430972860116977537514260957610440914990955022308897099553497168779489599602372728561589695447543036637741959358466558269786256794055274065591425007844608023653039901864547543372780579352554775241321790665969685169291445583649917536715440655633731347481882678634796956590763902250258160198125632861598792602193997257470505603886569306527870383322214746156393111684663032674693937746880462764147358599064250191368544393929384682909531249040689810478831925304791901001313413794555510584642700959506895768996273796917035073965704683304640229056199917200360033227054794351841898955515021527392977510752193175313181877240038171815284171013180333918885963558351208880900291329040750795376991728386919535759785929510122462626447544982675882251808393806519195780559420811208214328413870433719839253887497709573992349701341709665127081465659936043286224347274409951438491884650697774890509898540640797007645457508409941401892882001059324775244848016587325359806225132808092538922543824404441216165024780103854449024555086516673884878777134735512430982995168423159480083245720711974474312496441939542176646017631051192931481275286988918273185085316516901027995534894118398550166081574741810813425372712676250908115499446913009509024512772147220336236716881255391255057255783973080440276232171662743650378000148364950913562650296058866996613405184414003960076453801395024051063192399306783309953353531757419754401755184478020493105855898836644525069845676557405979491435652860904826680583965613414770112780576623099695563553931113077653270198078509326414447131678539765171699985027738993071603178587128055322248562289833219787669003681957416084650561091600748019001324456361517775241245166783734920311430155286190606214508837422391187052665799342061292947552648589195304960635637327467369152862132819246496654629944631733456207970397080859041398023041356403168989554524462887894478780301096394648569705947121616900078188387368200126468703297073144730745800768650491531387432037349306509933542777966529910946567983552786092191898762281280763491343781162012668288438863113615156891855067119489826320945273992331655720579616268603757673571177099172735295847529633668208840897739658543071753890443228231265910393185395562166189860427061109503969630723754239580656483872896400990242322642540637456960357118722754778671605000409251813469515306509711331177642478052397016555716802135431256807257418478677167506814223123308103223319216392188624706054980382205545709964731594426210963965558075029781235956928724960045753606264620474460008508600126449144341028685242578479512700742940897211321127953788899028469359315497528364067014644734322371061293319077643152372695247390850715816450805884454275744855928974543960171978801159111210724754860373988971419443374674212072710290112444431251262631159780291027902099326656009655623306556951556494259425672185187044954084515606078805331247026621847819440043603923394056221744861932163925489636328350531199819608718628230016764129234578780301429644113601094429290468333521976955236416962463683442054431407122010534256146254072596393002835920569153244749473733363227498937214008040429375392647722473499830114490303063690875052704228733122780070452887851903435338260291837557529791299451336267482758061595252989151924087813836892991683531414583512772315112110796800338317368920280068363037757684594463520864094657831947354302789584619206741675847509092906048608374761241099867428127130587594875983808288415845966482559849931644630031987363988881373528630891126277243053728778922020065063658439798778022587018394268568598222837438766955499250090422754367241661840338006260484653077338713691512526032303774131826970299927154265438267836219678080254496555420583595402549772977350241333626856346731533350178483315761878598072609613356610803789015772098436688004092778038841447203749864065267114153354100325407561795280431321997094495411389476188015623325822956020818784906134584132129718827076659851456237881930859422397950165700816275945830796905095945295579566818626103169283830907383854242902841720222191778250634728151321466951807550498306173871171487902821743596492734671517925704142556854935027077689000133670179228131214532374211627713384213255977105002566850135320692717975217833810862346997492775415316933659776762201643944255348373476066921898096503378523768102954846799177418951444555882706057892533752601810635700909316300321103481825604775484815741026516523191775702256484005784685570961425301211517302029953480194800927638952952274500933841911242060143763636285029437848632518299322979006828441195821957112749658139040832092659883448660164512182604987631127939449552330103811403156880056288329105968890169071374952405258898693996555414268019840236575542800434029431090855204268325117669022179130791304101530078148887057602579038527938125262380486930469607992476952298982792385336439376858537561760671833583501543991040828425722821471692475453768592706856283320240908112692938344672653900120666442947565782114643540499807355747363236309952951045704559196242605402549414574582565637164947510012296927872787224805074107716687508723676051385720090888678491137179127211748316273558898651014420226826904552576751506060916202767123248259860428665721297835925925083396908510032075243404677410237176871908456133860908138901024450281505268743106367094005605046241154105994460806357315908327894636248429902850428945738439430972584711873159856615185729560051253141997133662378476995177468323311284933504850288605069690811783739667569711285037634117438249280228898874618054325893278511154271999300819736675386611911462621853591484346506585603724739934270175804046180198305373803473286676135155971573303115139807999217835019192189566604024557907007763260112342481004944518136639285503011151206819212450028952626175090710704232716373379161090464064691019777433829177207760885707863932923111213019105286899162684065288243153592891402009288825719505114237653347045769554839345430290233676334876178301985068800411467807321522913287963997814074767896371747835122940894645390364558553636318500118381281466560474056994356498995099764049091475987805475642944204366768014703524727168611450089441722681767113753661080497243839373025686604098825527810728794095400440726280483795781850358195833321301835613922379499509010987889416963426812884359937099583209681136791571500215248321000816316045900638293242177270809288217114161328389695981348517773669579617578424861463651166561022597055726465116987063000907598591261547933042674406072887175767335189609921950724207003495132733096068875308308514769426127311993194266562672984449366179772074305950336688444779036247427166223067061443893790269598321920134668119586021490788069500852686412233101405788838007767658406672145786811421678474278766304461040116970821293030538363977795678714451848653640700397274279014194553530668063690590332605036390210311832429004274134777553108043984601775935176278318519333963572753071207168746981652112451427846444737967760772805354917574076645305952213938389892630640758681249363932544299591811052184523293310528485847035358511847182942990182981148695036421538057908608854215892602065260016550188070306987664458003209711025198832818991058468484057057207477781793152628190385042665894312255271736137613998807195757137175975187484146337322072923141001771452505020581896430117004171465292005782316332035237350322389726209924497470461665884553373272360113820345447516594304011724101413778085726851273020791728509120343582586667309418157737504569012224580481152778563377883041277015998434277759604860728305297654602821880806800604573882887956518849035250981505371663374665322672402383792900531963303846644629387885002266529699434469132428519733113830118147419017590123313063716744839757961957236291813620418238454523238907931641785780546745663574790646576006605004272813994361736056330881028833272293695104545197834266980688099306290300281919933046332249973163965180917375911519439400207469676940538613401371237683743407861984014496138667096129431014022390467765501141483288013463256181357238140559135299883106342753779743858995722339256024294361332860394892850171496785657346740401682780601643514164882470109443543050949672554055063656642816455946579643928079144112851508351675206662608465128538159449728061412181325380328532468049636071279476673683307891693828182271358967838925915306271710456475850914057728831215089818537128521732716181944503789051451627362394199130837943045947534090322252775337295470173729266660223482224184190546931343596946112189635280487193585245574069805012780531600400275063474824046328934755058361560850949774054365703618280510825982309087785458832457320259999402926949729004900452433701824173912577358768294343076460571120635187464656847645901904115524279459318122372948775716638381700247287391703605322014390141660124142956853738522106667283016535876812900164711924672242856500198179271614356782795631044035544854413188865024012069994206210264591634139160886545302038426436372388283861268643066888036838743349236502055115124034255777173533166582787899080020220228717766581742742651470393338158500383479337198066324808515284349672679237498981458155425754518145192683989432649402153398047341181097184632175800492469233561897827899225073036042714258103757302288996075931238204118118121354125375359767589944020817004839810551888513389019797579869268577588623501711167948958858999722680334317368293799678976847303915278381859037788086581657186140292518447760256092173414931501814683060922789899605525873130622630831967878206075330279081998752559051937643916211854073476748280557163964019349343375194120219659829990154966981245286623423964161208333875932919559030215485527153187976346012102728550454472861409480885081023735532370266200589444976423759306802476797471628987976102146343966126513170399395086412118405845891812735984264580994755643786866544081625819079760646795229107389999510649505241611405130565349538305354096059569592072760059370741508820112424221178734212648871780187754940450072906674050389528881744967313387701575997243083291564961862955165551135935490171194542458523718271801210372644695913583551916437616462275220673388810567904141948820851236244783498110633539947390432770814562678747344787156542858412522821266101422655512984383667073951212436029797779072016611617796948803063025374999837737784499355178445378610044804518052432426232621407529158425621277072113188195949423572120127854029240504023819385660964575374220647347246428283703721975684176819365986821029872267882753411993451466910678749466491293273697000544249966172579170618388930260451412792363783844931982796360939047851592116338707082283538343890615216407579832849196653567698995078516936677644428714562605992863069380442939206208419832277008774124643833628236198928584478141787401008765181249782447575649181260073283359478472120042864198987300363418611870542052266609610135870925351626009785076738247502180574747549245287723471977247083305332435995636933921970469096558277659805660715108578794328551438661951196736631732630630954483377014968044813058777800825682212048268783050995466139115786881198774470425926434874373579243708671373503574566423731557750509130698013518100038227728225132787330586565130577666899516679176467978327603045193241344042932843246427518609386632294807862973990712342560456112942643278497674478850700197716784251822253708931402737158624990059472816980451556641218027421951801971085929638559890214533671867376522469595729802237731478480593682996048175997079943557172602153440677805942541646813724595766213425671019086944526205501202178521438672303643633202728154459261520619761334645587263552995464586670411462984187142689904789667106684025056381669781322851191784036908941807838489560956226367170559421612050417801902781935327742089213291230852287773022266415055826498807123373551174949560237943429712248073621136878592839114780836090075825080487752621225745994882429217735082580649198740146298487393064648706288824917957000897957297616806886911174491709710014073376879271461756511849305573234045719647044015303304171274455698144912140543884971252612545635366186434590983969452477430016281344273466467124493126237822727903339528815736289386078806070802727565449780223556492067923686252304555353007015896475283147374736219445064234658882082538862346918745198558635393809742084919134008431625898949727540608654980386042966231674724562984972234279496196689909540269590607603498313292030618936050347058811054593004754218418297351006087991871576503968580611278986915397414282527282420658715314645135085444220789989792756667011258022203286764941125358806464985380600702683704767474649641490031504961000158461070883609650639545537984003733632921888309897750156345883737270082079909579195898521606622715658838745527141812758749579694323514435334312173593910139927173608845816067383867571044192037511585118459279179590617691590287642219643364580918150898695830319928217980310503376642061053641730561334435280633892434630172650414863565209465814250823091873072122284844992435549933640116637294333962419601278060361287878497322418459536857038963568593934431375227798102650392601842526391343512938441642227601496685599013063487041900352638197166537443684520091093297154185264145243728454340499369126328288762513168883838000756977115846331188079515064004540605310673399298036337786129590643624635786421912286946228734891691586121859335812163232341170325474204124978621282417913180134955737870115305914255371652834235674870846172185761473031927105796686605602339494289693529134157997953550813510715551392663937341482694492999343073677843633183570468866032011839704171168848161341964502710817135539713153781289546201941066678105010862303950553910206717009747583020842057286231897948547703590054988600105861202928834554327250919448450757735120060581499042535361052942599852815312129119792681473200948177208489050303521505955375319758687978781216032468444598380574429364813091778610018036126697970036021801766031912895733298884477125389722120287795497181341823667736125610824725950412320748603321986356300505142967591696535198156800308748997621252167120317197141407936607230061630862577208442062640792255058215917805686535526539917236191720568185518616397427103744788286171601472874276374276665716433789544989640218529805666776659807904121728352848509554050861802644410700010463528305981186448291031392346522137951076088172943345729667944655055755317493879635352585044002092938167437537014233570053734395375212451227195653306672712145840102003114492987549413437893750582897541562834507613123088692760845458278276375060028463623753266028144817110034458323264160211131647268695607383444407833092729734440283204956202216283697906705997367742269825961642429650467810860689965214783353541255321846530906140022242435245555991929059547460947971609648104236266899280286987140448233833550481607243446343568687604245071554321567774939664145030341237344570473243420714990043361720224016048594094246119081939307588620308113151557192005612586609045796967988216176885558892823469172772884285219321014198390748460598231412937487641873826724725162610838313369975195881058026623789276172361812252732988736482263571301718551919892103736777629043137002065580171134741241624627888842553998370174563388981490146856107269917091280636301198477109393050909477027023617812463448960074623172795056678006573747190558645643026489221767560578670689272517547039350126055704922858960891830652710225844386355041614105440211566886907366844145073465779214624155932171487333053259288884842778295848430062270711696395284170552428571164768649826963666385249151482299212241705087088065574023358440920810470715069398684074323224604054192264208465656423268241341873174690081342720247512086759489677825675362318340556222272674946051908981956914980461808202720108062661434323423980114501238721556371875802379205348507659224183477358228967506604882505737816559297085617997059680634368522962861864745141371187402103609726909972579952238531599320811159303559208458145669555432360900539695976221039602783329684134552697980180100407911358207422988680524616473073598335805496720791908106208441662427393687937534926884063784131756525098754665016158997183795834819010108262200374572561349131628961317616408374172486407981173019801375367714116281923146921252684807156570429970760036542296352061475498278739984507769361561102151917685756375777084204142182208557034871753226215480211712349097611479821514624671879232077484929286767953809280652827364159554810165520331901869349211727260351357291572912613579728800832371505832824278126519766570901264003709531344167161521931686475099842673248770180119265295895838892811064021750917033217472397781941503518716785514183357015895456559394423705504904075038074041682623492216801905080958947468821282975911416855954545301998941082031817776082774326343785466630698946656272802621676000977223370939715765363089974372304093871717135297941952335029591984881054367930764481438618410194101462617790085530405882640871371253535312607867428460721588625380826384767620241825023226063895558013803807851160364452990291462991742595401222729608691120875485316299097075846285536860636574137063015246556153146935703474128952572200564815606950373108475846009026344070980505371200983304288425372013302947420432027806584106893735755306460355110813163183529857509215361421050321661725280130912085650523806369748473682134775167860617916373144518606045108825798577585046358489826363947937621355460787171074176986113228042848437320045928036624539515353047186597429970085849990654260593890817195440505447081770989355912932209183674569771255314149826490628065701245787253072582619756407455753917727549237540104458987336710382535456738293560241337569648230698012750274717614844686377757168907812602004433932248852671801722458327763152198597886752483441339737274375874302899818351749644976437033507435820843499973286266893965731329213166902214726854111402125703470706293941449795473197709198686475239171139223566602716427665195643075711350001603192625316689542798852574608069493266538282083763869421309005050321081957296082660615206442610344949942271385348347232867194728501410027336914947670853518839842668246756801007481482394867320722673004859765674570053433064546312712623074310180026719482038564590053111164570937489141550462720245418674231072981772502544857487227772220362406304129471328162368336126876467294089616518621879061136964371231814624440578114718417698444831715920668891646237711907422447317774516398792674412790507283110324696999887667452744295634419177197401130461583035998067298666166850263926768665598008712772119258636313400655276462241907313069560681654725935225470402156228518063740908218596426547683588688310847846345245966837535554933388444071994084688367275696207509588813904545496520823319594438843556607031851189027632588844997378232264890938695226508430447429336915118020581063561226383026121522119500194188252352676773377923926192217369853860745371179108057359567687788380240141974138776029454251165384065116675856763383664372145598091407321625736441049449584365619949775618755709737799182739588571728071013920788801802724361720918808248191331713807588194941417898559614352735957926303891076340742434550409379638056688559894533912933847902045602252958949942593133050005931149693659430130370348006092774379327625041684194741846791812491972747564587636055023276955362523580225612463939300923074871906487759047135868656119625042839605695968102811207885676626644389888150432207802376467259304383022776840978671692125858321127972894760836456945005037437883827357184545245850549607635224144522901519648618417609385281373173170927851324955522429123326889683961373508146056452721338081363205597311216691425004774773313565119301080728348093835495368936026273533860134586343750744728754964190773620187893389214911578500886727720762846014765755231180376224626859523990649350010755178495697447429380080103092013153144504366939378201093605666116352376906678764618540894393906084930639794316533915065071509374660211116197089474313405518415246254902186433463692022611293310177757985382961293627275899457825673368645126257079429033889540144790913734786883384427922582303337378864530692497603017737358864415922887772953397548982953294665080980748645804871361037434343621210800457147443890769653293008662550884629328409920022037248649879866365688642857578719138046923999728126369927624078740040453275177545322219443259680551894147038922496297756950467463922139176410674618888046456983481037708786840684074059748395905233662206967251141186215467868126391391862505611323020632563902201017602463478687959917336959591282868490171447965811702731870643083500626231457985932767218828233061733332028306136448773893945228238235260822230796522729222192566419089832243856416099447127396594276279061657499759159551155117288935148382337178696677817763011131965564823934760096384570889461010432466510828091800160508003415300178270710632456315364756232937191352192910820023595772599025677168789918521317936080459226703853749214875587765294166416325011889033497237473754904327500446245404907355608279526455232447967256616410491150111643179654689819385721022734948798974144576995969529962957931232048791420023342855064204630184297472749184487012624602960064471114412578246390840838432652402351319815711511316590423483447838832603287802874290605843187180234650454123820199156426643567568192638400168852136066945465679477722018237545392456178477833966877841708475023231884261118646817091526496106861409150482893526703276203632099949306812096012727022683175726217372934978625368707142116575185367222377591579972531404167071722951896344905267148435366321236635474235803470679132232093353104264316163657747896561137024585901944424219827909133493770410872148544577740446045550425505978262690192264114585780874666604286100407640274584240353558667949366717877990138892683564801075901078785800921644822175120820085649963403852472462609845968713997469806681213065414168864983367561325249976817788109065098053954715596038439613567036373703733689472717342796930824758618569083217865625079300132859178390768890458408151970558781814677540030123300719724855622833691746680259548979327474826588935554786250433956189127630698848726564935239866320913552599231280709145748583495359946908836813316915014643813768457167385758989781966574250493691601919416420202048162272759252940502918529014562957549247908787725724311954829546920332582126377159708912181207271251735282464900370853726608538323064892317604629922627660633734849194038206955151860370947996007283043820903317872603628366542820396605456630022963267293523572247617251773754722435285562237836964290492503016676849035675305195456212592658457574036247384591626914546528021198706249841779517074692471297373917264437583284475803001462509165951849630081674346273172680464922826998630003058830672272472571982591019018428119527644555173068630901607819718654244404216304601746501054850399859362941874346998174434436308685848133919250973227266153522997518068831782838886025041537448457089421131321409668236883070417663416264008805135179905291797777999550546684984656486825869270399021470921618147466692441150187058256620452982414172340778223200196492608310573108014608343234602916211784847780709247891673812501767782521254347052653343625781296439201483748960669310898098440049441980956445308762602918163938053174324313055854545113687981393745294392451890212262995390620894516080587362285815438371967428217688454491029060711779506576548128950625349944065835851821086552012170998877416839261812194629383588352458304713910356142452840546299119137541751286551205667677602729257301404217558683069076791278644875556315783477206867860732267117895025049315994448395301546942610022466820146007096498123933180411444227106446315684850861993950814216499048030201701523277959303892875069830658743372356918115116869381430366298972125044079232792989683755347290956422347391962867988748666627144716259101725525399375423645685850474865294690778109971411989925215322219204748884017519799332519035643435287524213167323215776088804249989872039938338482832362531787097206309075926662395389665737838726675654480110337907416298069015944808181288646737052128828264158104510757938313321890015486329783774291558830642077066180835506860026705486354853066489138754287560356362693439754637231651585462541283321190233060258371798810836806012226234384566728215562409063585013793276064947293007887347253319588062284539714269855705849873934915860567720051959683978659273794698441052874326181703892337295894309733803148950694533268640223948963118201145732560909745920645461642797737853278110110645182458677984323256225473735904394146181254942462774070757065544434917761204900981662360213246688314541275238987745755196329833113727705102178376114440327439838815631390139104508813075220296147730511911700938904362156878283322688373515890685397265771010759440265450697799781916867443409854534420812679848789084307715271685475274963186212016567661585653455894930674362916308563897264548579110672576865234881388396499144358009763672055289592460389601137054562767087450944247730833295250448426122976254436119785107129123005237690455611171827902166020545516548607080724428177999353306218205579017054276559025872620268340422542635856294185589876108806194447784557517088985956413472099507819899357853505326788178707431740979551425692281152983161985139205193027809186419732940115515571438616984525635757201373647084014013886540110736223743559646895987406153832007811780117392149171652766141612642303333202942624804937317282378498590087236592829103659885985310094095040350858037927983019950055625634986240536891022840914094996063174671328971015913026464261213847571606883282020395110852529253888908220251654048835123693639624912375655280556521084797500634941136109211478228194264010539012320340979275039454708162851682779442639838503462024483635629493025693743287982642257610644769222600937403459678937563501076968211167766572671877021106849216512421733074201245967166637164988671478611046710278945003732442258879919725649922756229077766189737024916182562894652527550216921621756164490453758057585863267303800240100507460299409807441107678946817788421051078678149232765178022588277427844475680932902591266328612428545095762511861793986547246584492110944480830246423373284404996161592939601931578036407790210299305855747272304140756925335539168893252869848571317265917798934811693595667794699581135909711217702701012973189867631131455398561652658803645964839088415927482370991916478406524864837815335954863110219236585808883680840298814550068487858140830070344460719680942788150225919845887244723915755272296385318694096619117707296593489702524441241376250143454196338431989730321193048058042934228377506169024364830799474232149705321077790182190203879121302569051453198650777785864154138464227528352939005053172439358513571413240964266350209560355254015291824161834740945731883728017823286014757703473102858724200983378761630432710576592368497239489062756637411796655914404761609396091089356832291120666060739242909970890562263397964853924239135307685365445657251749828312634523710493667411077226851573139277871290423672069299888420532139627525613065557271544777311572393010207056641013536473000890277480696178059024421126938743800578679860718055854147555930051141734622747091285750224788601700927093433480848294666125131230832404846234375840418848516427292717746670866063649962113872799806830093351095150795372116932639602285439805589366415775025803419555883615882669559430320050212836224342822752782649018792890804609005679584178909001308083784795420485814330990800066692205917499294898160254200794438360500977458226774328179375787415355043052580279772856995048196013433994366062569205000888224324606820173061881728178833626631328951667476198688173775255189391932314130451087125689113830045069406505414919016442466010925134176438468099560536494831782767795435548839894097706562690245875976093534774495520620838972878765302144242443000927115474623694890684816227132003786573614658349521253715757109933780594334478264987774660722548047853419274719955401195041607419524200945704586633461025552481183488890390044575578368764119402997046485435663021780048112326147938060352122608585591802339175270528335581519940029247280506804678080721821352407722055986204561354878664631468378752719146235785139210694435536156577025103933738262950921224834849611519135220834605232867216719446734234532012444683804446194533169655149393604545489469777393546632726216933560283504258607265921816461118927060253556967858209183996868626967243749715791574510800407576574276628100260040835268766600069410183255620594195479349596033405441579534195477743619726943044991150684488578213151466987888724263445919603125947529248448666661114799452087893592312552277293288124115688607346014221901607064343424346554962470741413846890358497180206256612884239219828500336502155300652005394154437078501841103701806108356131515693141898786783159362457394517228618933166927257156754878850244654110162697636245572076459617073245672058671003457115404237292501574776312035433471920957897723121264933756313345718688319083425702241612892935659039626782321386345847646586700400093707091816229359847452768952710861431811689088955375789553284451726532023324716852576491083356733367578251770343340003488827636013489196788452138245435548222906349946973070150537404535506032993233282574897563739862177076608058930141787253990684979274254835758309935313201447267060189460877175623266918602700868071070530309180361543850892132997227846021995355214938451150598145461783017626435391438750723420689827170873743758184236916338957935921902476785595299655897563728675671367796787617820993909512989419160261451736869691704709647746739878120111406312993375119613727717508299467249843493664998255235432412084103341847300796443898068266820247488089652987265029646757882021488424387725105185563414425188178754797849313239811080765488618330764204673930192452354965955742159194788413904500935631236708170243973938076950804890045838022330578756731830041942916326440661528675734430179123766641012209402011748369201589148527074586961053724291674823589379017443721562926794033654510230973507384076441416744321641524026961792264270202022238541257206065623958452221914391953171352084109318840518887954800047935283096270879887974762060571070120685897072670209945649078169990886705935548180240022896770338346232242514579409523443429802688980451974295535092634040921742387609836927607009236001626562175027978383732145694995113756495002191417371028399717551687748428740562691780759149624377178177468688660141777981026399723128347435611809744053521181200698059131752607123920596688149653762143192130400658406820643958676569184866400653687879534548526095178455689591598362410329126100263709770195501683467509735154217980146446822061713918465131626209069808739384597084573273203895886601646218581771392676708551952567127286431655554787304691943324678879070855529122187789381855123408843784946596936790413887331600591685239655166559400831293247462462306132378878853282448315121604126838675384489610790617541749811720291732123023111198638689813553015056950830033388863155442338640369119670314122036769278367833914518078032601319004739517920830614265398336495111125093684680376879978128478244153527447286244998574473797112326387826289265914590503216224330705962825075717234426585751093646986269423687861423153880111163303342621232813081753606469219476052930131874013984007517829478844657263192999561825901896743841990153814694756705276517510112784601326411538534463049306022416497854266620006102615508220180964749052558970030118136113399794058069744859612219300502519677879134231568759507556206946393987606484147052181178763450867383949632301910029140836603071801703977916583149948944292429869977730547422316631331102286682363006905139704969008390879635709296130469730361949183099864288270007019488681588794891779571906789986189610271995846575119664027561458289283444647735820873084235278168064921445874336994516599540306026345097684811876955250257279622979876678121987581359937174253428479219908806985871924254666316018249020896121793632799447255513616395929502697371882718854392019303559470072625568094288793411411258218712890572755441951586699286624030161441736306967643453072988769217293467236704315965149090252624417800191802285027180742883987417363453987525227170162120481770270004562809341909714936190374844944199935128020861959665179099513277099896923702389549263186221829147431345454771287291301471801963340514105129790920870841372595794544337560350034088153375938839664404810055698524853756775175680211961667752907318813313492400151099969717612418552074638024174665815258090176817238085918815312224566898866683664800790479760180687960173815799213364995971606476457628624006793646151706544827620638325166971697739777548389620945512067828147541003274747886677752208064526084696710619391808755795835284868916270088954295042380135158082082886456169968733932262148897730012053966553694289863394184449028916381803369082446223917474340609728732496563229388632868395678103483855491442467022966037566415539131551733743066866285276726842067608068124029328370377832896729877838155196661181569207676019316535714333909021038289625400971451481550561776167423492221694179753518313544771558830115942465294874962123611252999221801794611033413737877280431479640205379527910278110014106334275819131509618220308506263585837181519681100739163827535874504029864128400065592315702020455577414119902901086315520009154570844903159253481492178377493831718155511536241786799772388027393800925560110441418910660789907609312190132418153548966578466402147863542009666061347989366770183893353803928116206623289089736698940572970037215097712085264660983358373275169799566155527200642156291898983042025265284380211958614595194778408258039900339006531802127666924587544747462107483971154104176190262787780911981619190758433325297850353844369239818347231233912764946740382931394142264597963346684919515445559938260258601701656340475270391603078641351222288316872869984714954023172416367863417467030350207327980127671707001389577048086692827287758494712676344332506986626860822611897413900378639806619401463102129027289943082469191832398349761471476559699893547765196031763445188687200811800809403279933480194491920861228044241693678388199066707264081307168900365139992437664771930892593825886581379823207560480523125961293292339176426375101227817990404834726869438232507046133750755259045106323919605624739316119388807431800191482586816294501997459474012074148640905697056003476660799793780156050605515873606254207123632465613844632486585564380503208091685351967934123462939494404312819641649115780502195603079855887413807901075374558268908367346280382832122609041336810228415573265143088705232147618733729274244509544760532143640271206579317063363008457867659963962665659523901594977111758716291710032757835542134299040382441335938560847388839450835018330299251063518304400420443341981033821095736529682747522419694452314622537897180638263506066672350874513637042959651533015129451724955941539600703270109572767379175830283750297234802396417307125778137491215257223692296888230543840773403385806884926001424852451393823096111997278734732157533117988248537506830708416037211794086781155445500343416081819734373549017313933167132480480914403900727536827003984618449195515896443668476674469642469353805022551523351480722008768450951646946626917443569734645373100315373768012017391906906361604488068505692466534638747830587574648702740546366002779868865412626989066798227172930664873612453450673639567894002105337760326760467829958502575781721451087040649420579385486179288481991400604156419447136129460109927737752554164050874414199678896349152653650046993937042983825591692936276231781671251914059121022000713764890005286370308201541797875424707176233328793884304996246753671798187026558035287127888860223995931954881630736342114129235793080594919645944797801097601254683709307555728959199377305841330017215218467497150487765039181624196147629476863979781584150845493133125695265515091023785860819748268501820646427650799489002275095352986668455210628794531432061623097160252647246923698852645670357226508613905146418362320010777026979436359024973079076499230476346551788786303389166757459801135896839154423742020606167227980987310903200610853775324179781867326606869194899122751984602473838102822718522899576440561790584423505973338203320478101877295092877092454943225352097312218532412912532486933049691769842913824723018549591005105517862258107097966218824992102842746584748871446040534891167240595820252549502541975011760367338543615332021148479061552810231599481793189642209843294462601472206329210572004227639546297635892916667616687593835842771144980968173879218544951968632351087738197224651451379869689873877041232320934235841614480688443762388355730921088482613107620688038245648857512114351318352684781132759185379497014231340224368828995788660678109590796518705125030840042356239690401253867212053060239452066697554438703244782545436642063826569083951255023570136439550878296379673132467123056179060547748087967953697080524301251918334503899904393231007162953864298738722221364630571764058452956422498360788065213349253618570475214494088419671104227342911636807549037732401815382259038571279807313031591254948633880057757221951311998643483186615268379076631260987625023565762823613107963984405794237871177767442715641880341704271513535176692189948974721212565837606843419936763364245984209129912891227859179745893455606881132608132186561760605807349807161785741691217657021440036230178892208303563934288559633165818695949861799063938808438243240716186479595321175581212417858060059051489861534618448767374031662297946051095740281294445661769980385076686234567685604854667174518446463252099007999212311498855142744730367073172814596557436072940880694350878645951299955972314305441989880921019486366962782671922881322976559310659725966528555201171080331264539121199014873749674112107354304943834157311544247740238519778263522906630953723812176576350203986938417935219768290305315445929520781737527253157361965766443300026491504647459516515779459666152777812042582907680619494377155595657922747078264135956920625102856317445049644587131951110821249933657490906046090319290462636901774100409931428521908408727470548142403194310936340063374472708719987170491833166791193972622210939210424383197832342497922786282645017521007511221964194946269095518540612715715754670787678473802552753160892071085117873586169951798931140132719659063397053374289955813719593652817176570222705445651673781095017251301810473348494103866153627142704450141768739576920710131153136911149507769854309753757524090084542222154025429595904454088886880202596383750011794529867515921408153899998345306759281548962745793874851497991430431359903271171574753949836245729845072822080090279289062902872034193709199051095277914190336459895541024471368624579001872604834343379575626394121221080259382928460466500530173375106287007458909317967463308796036822016389679898019246822004188622983731760426819692439492482600639861197041480471764349894619487018113633828299603814413780592021874159262330590284620830968019258938264887051112026540509696865250042726820005116497250915380458385693244224900282238780991275210345842160930988304039289179810575029150454021147713890864269738710836720521572682819277538093898321028812282822429486318430092966195350267071947946733549152821238410570441736216612522538272494927564882338888924553442354756672986956983726700702901138331021659217954471634155502892166902547630416122662956231056160692205401432947447925066626661567625190614194460289670475500448482590094074513275090953007534441209306926678736043881760794541948282455415204602434251583977870683726792940741013002702350787811855379514458222446905351039427792676195629758155644458369173821869021341502529574164221444166408583346428959106797217523753706049570769036034164427142060787582488896194571383544871443962120811188087135273489829869935604482337528884349933942704072218283275362713789572366726552871819487301597520091196934704871386043980537363281805152473890616974351422993006693505740844258130714845687615141357538420537073281772140023180311492171685151898364793472490039905643503124979304899696950929730610637904742763193854353718202108381278805650808652074729649559529584888402559669882305994490172954460937366345370714898504662496263913022642032492878378734153210588425652213805686767578668425686369782433786874173655770301113720751708794600372341025538745979204808767015162480878088005585083936334104184333674562435442776754356742935719903651274682320280539718654492937314264309641984031610788500345839895140569872512090971487583231709894830680084056675756877825490929436330500430262952271434133299468385344469010565953139545998358422852488507793801080706337133525253841740653049579792803841535221118515598633851568813476255952611028147789074532805306161670636437591087608887268798422368342102078210038088471133276558592148883306151818257649809604212384133185863752097715568512342854317773307429435817855060505113448056656679723846299642887486699065121441738525335832473859404114368755400190927592303949008441250387264932808731074765867686993168342398901210275305890212031272515351376076041649258432609124624919153491487220293185047881533448095363390484260638534393623600881605362871479504622505282037345866305587270914693225060724779207345320534947602304046945608902700302269449885335037471048122971096854743284613667346572047018380758116984900879068070833501203377883968493440730727038396244370735902865454416826488419415537601084742098593097695129904408477170916552666495517846123873329426489008916151599805962431531870952990348098636644466836193087152252726905972810548773821141677997791608888828174995351991054840058989643883756012512166284371602331404177302271318927282855700548416023463334847530793168869390663029267518219228539979570849387807903049097435698265044795941545314515161809471508951164542534176845461013534874447457844784279276305731671393064507316632145234596695727948356185704707073210607685869980893184787836177607060942559234495716765031303342996278582249711957888783772714906072427716012937399300629616559552059974895611688076263058912475784737439149457303660338009652114696931441055137302020819693750610850763608558015385392738397192722879527729025786635711181187361159775506276050783479298369420763370243328007691593671157765894501660479808666084493364195076803265577399251789969129379984610761883517775208895008862008906791254820057249546095184801219771847546359925395942269701109136642739703959584931551542834222547805341169036743859765552963069225160577538293525617850710418662365706619346394870768587486015817814870065800442460989327673020957622662188281570816618000080372645948515462143607651652370586810393217805298464449110872736924852884144559971245858009795771802424830064097425681524563162494291400883168600061300334476130872252167272350161643859705875744819948987228017155139687404938226909169429018092804835291187570478639399427049435976401572873795625596574676198677592602229616224137690680416321121923733251709630140662366689939179456392881409766003874748101920271784370525225747361503024019979151773407455836646293195960627059929891511831479001606747865229464975038614639809492142660348296004132651697082953490808190307109195901939803025444544797714152335259495879499329084561155611366641191011266687385688672152328102461526066863758502198111575871355872730012094120039323846882323342791891199052278221266704182826006983351284239348419203590927057228281144788073318301884440659737233017197076907412803398010285647817616633511568071239670996740069140139663433728259806685856028714016046686240716106388003816991738828579332178596707904476195557295493373025438126863256000796907499849952891452449715509382589272481371892321806342444803581955029821456288894057184867808341800060312917724331091682449634363430808716443303886879143395351436926189968812907119435204755760114775935278055973749558869064740647969986561342340649204152123515927920131924071385139914641234480918868850410715743906125887116282759249200389705410978264245340097255814860364271676397430301807735526129721509883333146299810292396692837902146191055853985291030494152519532609002344565461540808344646835433602502316044033779924375809132847543427327645942967558906400220410326492616519986481764046678134513776747960017371287558135592556023139774384188167187453695601396934276577160616291483586449843188067764750799324590892813627378969147262326624105587313848968952055261014265346869157933749670353143878942809745798638332499079210797234044835968042921371041394919545002148579980683089670461778485518993733710887028656132787169830763446769685413940013886094398958901577252979649294256509901995431939617354039775205431343600702759486183165060591814674758500839110398506551696949501145541664884168569644227006356082377895592016191641370679345078097024841647196588092094623467441688720607799467837664981861198053039791717589396242762442602670673055207006848250536012250265351789025369821575674370945301074840075620957430501995160491850451622610597690669169306685689030560584922254880139811046310335637725677010247199578197614299797901763274519829351638377005296665816975620834249723410185711902292677705239779365684976168073687557330637206099318436185904719028131599414491556807793308847954052624146222324949625984933064778569978039245978190902161222742697216825205078804367615347032650338542580700424971131145684791683354416504494649639302116806618993450444773400279388601235737621507076822023882512312702127950795721199822686355275424884731437904269964394824229019710064175237995568660891992428743493530378230728175771102189695394337305484417396792412337779061926837897544737835260534387871961489093363107360161052246746076705071159783045371493204691838285879411491861832669434611837921931861935507497849195701858834900631688188699346819131183765706818041442803028559768713661782178374632249967838557303528891596986510278467753852700441971832470081080619272673324292883042734651986853134699233596870889325708617300958347619245634969794702168491262784379683834226628647105049253287991178242338336233209745374793328990213629961788949749649965336321829878699269737416753782677343149058335376002505146315383196977769842621385404895959495766707879928277903632699967768800884635090509745405459339985706961481456970131645795877475499678638752904232007491051355128563985239770712221133168791278041684642195697537429655532709607329803936116619548570673239355656703350208989012619185200048072337004969567381795097722253670193155024885279083387507775986347905386784461760663863815561042018426615207257956924417889529628813277386571372133050791746573735246779543665080457321801907684751365559847333379672916188497161264490041024198193729179010465102438016194405429378134127173817934355219444956286624209132031637101603788371848574327787812559215940139159967882376725305064700522889783436014078217250202367379180302213280718458718752966269512139208450053377044590396366070620879951909517694968205938491142955159981345047040739895294759149773861733976377334298574224536353293815355735897213667322035656880171342480568830472153988127289525392612329098301935395803667327901662936299605168487388213777474635839946564070654474368093326248470619415978492657906434962828729419974155634094866334929971964601204208994491464690864132936916970516225780105073542519394524105329992523194057465739984836860504466406245530473225591870904469179925644490863661314178703319375911195528720285368861328123323093613980873820780905136850026394065992375864093921623369370426212054408451375987485724614927185105367348730722044413412650406542349368663198483925569305352497259643876585453565862249166811737434300159379755156084692159175960556745437364191901002162080971980178069322863694845775561553452794218016896159054643014441525311369934968235747095079328833861142022839838003025886344199021590055080456116745612651073133165731418577132523384980474290905536167326623628932721192887900782737689935375757341196622833572063044512346871468051811754955019986403416234659414920243211669174232173417198714540013997407251702643125311653704061429204362754268511313811037754319287834386443333226966591702356221053432870351594305349741531138206774466911367549207222600367767502184381163791652058827125965452666586564744444478761355179590078491714202010405711114472971653553006109358860856698935081612160490818902356213848719698076607318197861388859221826033420000660169833910379011426647143330278809496836672902999272021604577119643387247390731598740358060594256100771191434260784158656414315626494016907604690125798705709731525996412864130672941279725295027568880475178353143624487221006915892839551623639000134073447554747720921569513495254862486342615135010269067015276919460279991489720850490140065681493557437983200649239964778960135688559661206223729963383233322572284881739159631848712087296320872603129863990352890385189078288002560382669999228164540290601609272713580041476859591041411174921606833676579841527888853115872698249494821711162750610725367759057646446528700602818554947543392083635265240955261730470137073172422416415734108819255626763749269853274626334545301061163930742119104855539365728327427391847496495688991346483519702345116805176591929992036540208728323275777617212284263638587883521503996907492952627272638595497731737921164391293116628308998570740671937770251497675572971969460883594742950148010806268844654202377281996274973834922024753237247398402052107859203550661383350134069780960911735880322413150896499651952482962568038212328445608526329278478109237751815959390779805386515359487810327913880332639970797203917285663396663210041330852647681128839380414137379279435372532801433733128311267694004501335277493961818349443832466568286311855956856736563183277114722771280193253693433157871414704344528231023065045975732668969521283535173418999699686503340948556963120708494938638491454679744641776756402403733407678608415388517782481676427793720810466242816321762980869755140625992459090325268954156818478729411766511102276644167021356786590993811012659617704724379128055806642896289415444822566087421210956389915301161148195171081152671563247722028316046015362402504214687242612115421284208278575102605677471261976953552946527444820779421532467235864937032617745756550091658906823970765153869110387362298881748576022940963334215384341898556331521248907135282383003624360326596233226889355154071821742245012313795912167621053464910305731613939333385992009870742334063684410947280575409379544481599788756998675293703069974662600365846860909771923120423850443666830257410964031779333241244934804974493750257974490920256356704041121344342453571694496045201933125157570667660613853153901159447740962886687894605713272929296170784963009979590902056735820779593356590979676301310293006309502732308854685219063206950223697421640846893083469300527718637962404396274493700371551705633679755077954085140358022329518475534180461944023427626883832254819176858223563262620879856713295221976755306781657785232279267067966772225842897917053185472870840746522068157573651481946824417548545986853921562433968967751760452726634620871461391141101590897281097992949971108008263203548674655037335959856549597995124611866199000445147916461258941235901889828619883028505728784643918352608639707544931778910476438319125147125542541868818959275169250615153052188562183063436393971565988719851643553646464080402714265901500530370597362383015918785962439106540357585971155154083905153877477635554716813378041536338975341241741782045045367003014008385018727170616807153084631267900532432162358540635053066262817780570638522551065583178226399980745494913356656758178707462353210146867711749193896545213514305979170151356364304810053201132811983050244960219234919209085083610218797031585085012658159766318210457415557087939316190371383892214036718272428418970408315888030057616621476785731009293575385185234158655819350346413118331559622467831344155814446826121139969204217102277080492134812620220326446907722040254648874653162242865822606508959325803157692072783107470863504046530702098769506949283465332416322946641867102526962062587705432665080055534901703389718107145263285906735780593880746156141982397407264837072075787909362620496298481258322762411769493437419048639475764085798812010209011105133917653826394030506443158512448895804684093646744746081017470444238097490637464350318473273038872816137164768680135289663981822480384516551450123826716854372442445018879849576873353030666735103146822221913315013749084981032081566718347088782602025610247078904483623304074924200267203549175180514933259621706558109847396350691012927564837521161867984092258394208835981108872442863876903404873062275030155315196300231355221125704130799918780212014138180164233750551898568878910126856797453092168819512015145494478292006420596427502722138244306534352340868353446294947915845559987463126553924300478060663189558474061438760476744337873159510141250393493152602558206489738529365191029962209586201183897985195119285159130203836307511286938320581082225584242783404981299860682218558523652970924136576627535004532049837403748814140656346073688229300200688882513682567001335792503521204835850312000977492769653103998360099077058791356404521918765473762073082447427462254563104392872418446612781589999972904094072037771492336401528960496186427151833246667400693444738808451675929547281429379843822349282674745113843142381797576447911403678799860463706709095394010558824754527791162577598942681509327694364204669410415833601464994447981728865922986236832634773217112721859204337099516538668002259959567205371369360909188832282383773121311137524346768680862435080317292214469626835532040059140413771462129025080553793157636447539711855738317415712756408527340772551289961651057617585331705131002345316785959919630818007825977056719560828495669747544495510503461385158529342265706599594132247362112087282380633868300602065881745349224547350976835183789464953879936281744194522707900931871692347653892211007186498008693439432971963828214732762782929194979274069907311772347848075854141036307597274780235237468878758735974714584739293898144805831262736287175986975206096204709305632371841622623848602647941697904543217609173751102416056612347556069033378429399621200629198956787759077222749179519497330711536445307502537538268701935940330309021045575672771183916689575593458371852799341832792573748893417442713186978803526499070476383250688913989268404252659940027896105212686043816849213475387111026848416811195107895238567846271175589774499417809276093015280469428784765956553914973988603498339636792226530465533319049462635318835276922371089542435712636179555457650697153549061635302063240890212063931142145972961054966591870944521357070441582081754830866654627184955837895803622764431224292698650383240505872120618825469503840564637971961240151608844358069984359601258138357789604164659682838938149168746646298606645216251543485479379460153151160719426175055446438991285943258887251817033734556146638046625102248034921529116406184137048859193520486677943876451459248490593166314202291113985532505743298370288023726607936719226420840468021853341072602667283019759577157414496112890678232186477075865609412562928631640036619691060900352732238143733066332706570995264192265774359484558832198300371351181149700213897502734380910062398826952172522607590595491651617590341049223090246402383393087204502201211248651987889739532346047655844649119843499713761364235479943742582663211228755431922344241067035907080260884721682438786990563629888523131427602093332864009580226998064783862672059140542861398427393265527783587853173018356341042221304782683411693771380076835688021653478168151412036066974656918414274192722234473660840034519402269486430971817454114678111538647454089139610142706333977975518953719687247134301804840097384476881286941447043568577954967301225469809347078397873124984368906123419910143052816714039541415212108669871530421483831549250072015801596341581337137076000987112680412933739170361923893685504110202868437546778490826646058601492182157966021986090995039888012128718590905270675528174020965362364925652592905327740048444033517420193127908447721859324844080832336075757779175556399813235821894028531654378715479607066238252179983071006951850657719484244528976118947512859903291600482368414836012301152167142021779674464257939948493430574695964975673998207945310518708038156344756312193038205506504783723903061126006333768129531408976528987019116573473597803792655202230226704696764168441158678928095109462685077080463033368517518555001693532344644787629751338362261643605781096087940194981730776850843245198051679636950443548483357719615079683206901065414246104481118508639401238525414153437401134726179519011253012165909134060039337448251600002255109792617166849515306696410948461660493688227964649216126751850991301604534484403719612481613177113299079095256094372689250784949961991046077159333043260962168068940147731698026825625350301658423709215206129950883882302456572230904096923011966440061294778475342434099045979816947317999269902669522473261909000236465304339596685361890003710639906210551467087596012447774078301036839484681550281274522614556752805822495958604896921080566031746166427828449281004684595529354560859711580840667696800696176751279452242243604726560948322228438211746445566882182299081176671991104512416592668257045272773608032330110025352914247914837788010330132954939878523648994255456994910477083143732441430999007118040502016639025760982816968454656774709417874457568166983596565318031171962681202212026119480569730134663350776153751151416759083236311219101275472694539809004508633780405115787843774991710770645778686471256784941225396589326373124761920584420059394796319556768184954217374799220074112283675731789129717351356341522702749201361155723793208238983825624828498025194560543010268961963117128244836248042361703950402806607203444990956046865338273678498975163834191909534561304195424126912441031991168697131886677037989197813320838401731863459383023781474826765369218678381543956312998543043945883663371099968043585333101308964982231090430701983136482669806565864206803010965526525094394411779092637824067790164231381325782829750397058597854601729858588953163835484692472797906158563190460076498875634430518217423347951699621500870020205032578343952955809469019228015601297818632099385662315601563325443949454537026350616026068130246337370523908071577859593540939329047338111398972817680883447582101867940443540314691270290093265605801597564992984958684853658409224659730690748277967535940911632609337299503890348798857110318731040405852716221444067388466746989196273563414269978498669233108326593021584790877243990684146620591543584896120387310171297280631044815071126314351957691104665380994365170918959076118345919753213771844143492572309886796973964049331152381323013639696744081645245466824652000913897910591128481788939268083193464206861971593424124189542617171355038983775189170687933779764597561508813861897726697751816858884424844433472281944819241967040834541641727024638135387369141561480643330781501192305682940369909672195413967008838579743425282476236104240456984070434731993749199279160171086946041065445628538253176693306885563172091670695263701373463296039054827151082708327767247753135454128357793344536055788587034594239264186691787334604763031978444329102843861435084895170291825085858176387279715309552557484791531537015919698990340525473968435340575155627787285623545171142455523093388706159420096039539987950036824611656909300096755825484802218478010198751908018878232687935154200821748731158748209477653010271940316277313674402598250241554785153889479611933834238967593201315859445171204723882684279435565646779588966338112372516395584639505131401228275883811471574616246646173605717803196054063705359781227682230769450390030728978089802887741781473286314660700842103547331723654409579847072915861235549534395174877518682300003424099183893967567920228613762382719882620937332505589573059912182641510394470453636075488100358346013895379256563661661968289222640836764040303559183448521198996405471761404360817662469529778988037855088265983246849696363293542212582320164104428555772845277746858406786712240847448299476678184885321306840859304796799446929777021522701537110372824379778711442937972899094774047707976733164342095436856439446773133858625499956926550421561099335254249299414420502973044855498015844318391876776495872912560871815412159317364578302349156879717480591308720173280707419251175820659255824201954273010157165916896221625348240647408762104234424681989130324169228707970816873050962594901157088305680286838889362640673307875912587940042649123531585577242976240383530196209560450998403390891806789890247346235778989669220179367644387883568242489532312804010122040059288273603365516349419174214804480099209648523467467544162617818080120287693858624372563170625363799307605865946676470084693759235581900628057406424651493191227597757708409327437558073805736471643304730513271886358034342877115397143133302927793902534744877854785289657902077211193006236487499722501714796409397162628335845402723600616701568496263450894132517998325356952794787101773114527636760847313099103340469661054633746390791436455981818549210340263074622161656174756385458937289215657966158674795116896733817211797814226520162738981963999864853735816405487047502934847311387597731938549129813461905180981479446498819813234017892986822871093140585531950547790093946251190071438549389937105027943600100755834733950715108809755009053072708062204860442740363965717310956507922946521317472992948789806763592296207146551436614025722673853626043701278444120262378611438568013490688946667557403090507081068971511504416866925722138560401660061625556807013623755258940482879316752726908173097596740979228455630572020935102709641606613399702422444099446452534240041916711390007218423975557161437495944331520144756395839896166582704678893649454566272574045436660992054408255799668703838926041722415927570725568599155264292352795495535687639351562173782650728474792889667533002647086963279865016544591148386717938384368745414852975401345657968495845803116196702927339563532538984535497392309502962245427395435758295221616268846181262158549123678946643448154815896103991929278332059806217200819043975167602762777800719097011661359680204214265603523374974814185903575351420036119391573448856680154830729321167394449367613744424085978014422560032805892717539933559816943104737033078236778283087344461273979802459429837232289907694692314657151869934672861802555326992839082801454921561173949204491043947668190293105248644969718934040981582773292767146423750919499262996051610534929032944634397638680060840612427992878743346305192162659437793156472362756771689130854499106119841111769494744068635724944220999939533450582688923563596342486815383747046544345358626674088592834253570767737444424026712116070228089025086361034521323980752282268160629003032217750418472936201652603616643615830827713070442774939952137089124547087725922745823323085887170387411372606033792012567554132020219329944974566026872366904481773886208676466552262885354149224432762917654885199169003097331952052420464462313427739789536681320059599203545138666474558647498554348595208470752559797936560351347804602547166615768485938000531485245973575784500054654708601652094725861726864314243857712959084812139298329406003751198636554576750069910996297163194352775849283715411209336958913592916372680254555217255306141928188942604864064134615599565198488636767563466905325585312376136222333223850573824983365323133634691481367603503240946772749886554481171439168810743165483834574073447405522194130408966796814041335529212740657466404351191661624353146805375300890840969550831110867287180712838313829976113932785255812113246878814763141616412494036574377305058839439553034078628268993498916209376246351668148147597854739730720782173385548234251770390333350030396027023874458381748883470124886625120167181659246207847532042063084595026904853230332846733818251852206343646206531907997505429393392385616525201706564921900209196935400868992755081292723675590950774528600024499541898441685744483421904279828947649757078575090068200293401903097702110795944302518803904912377698311942357624767738096758824358916688134477892932768995753956834674347172584351353762345365277050685303629707328233212425891428279233871235333127949272400318819965610250830569598805627932482674566057178898116844065738984640498028639418047336326213081353385876437312921240102855909266211502917962608683618002470822694165324861283493884720198386963736017441946199953212446859985049482082020326534100876478691984546759907330340274542113984538466490602895932876322243247182635330812614023931753666431709449568329577351108156216910076373918399178354388626733869423058148935540919490270031809400222356624649012455032394187363016340905716820647233781089078035147945642385963418714988773689395184224497682980587412253166766674162754977878522579965220772656296000429807658303855184387135977652800871290521438014924329451576912600625393810661429041815469797580080663707334421701445853573282463611818184213058812245057827526807040567357789246034584134849950755377167146957981797491594205028641834548192444396948977626719010599979836700422772427058331671304177327997501301114597581038468442928035631072382590208873835709776618762428813159426829409704094665355952916165683794487093538399231897807862359863574630183952405024405584457896934435917155059933735520336229864199022403632061587274692842536574334122480531888736074036475132873458511309952153791339010959168667456202472747270485940186019920903845998028815518436624272480217199828853980736444367279371427189789662794295324216468374509991189676769010174145089918148436339313096237008385315000031503623626099577947034192705570202635288921575805555279519024146772543677707367660004969030667723458839732400449363537493596060369124565011337625747445426173173672573418063296066845448064388401893457716266474741069815011462394836346981875590452094443237523163276681052911352692768315009763769692981637060628150467177414739572214255076628837264899140955694776830794037988695211679417639653647735996093541206679723153103961212584597978025649278037270638920338886625245209503037542228674935468359200549212305165183528639339554545588140544413681181766737341303194532298647968501983381330096985083519886030066044598718224867735541379267586341055345285491812490496482320150149598919421199113212759741400178869778784038207058379394406542690148688169544078530985010948833407041251740466932914284658792968964666075211233318318702173028132112198220895494779302836389447581878633824605261382745868276179356782956490517018091540939637635386428756757119558083708858805333047620993349339972747816700719967139870222812815908382079073731424745393737700504793708482545435746699030553792089485557097291609855805121845139967429506072494964025919870595052759311292125727476392979643778228245627263253012063982723759866571289291294479079424918092586928430087583725024748739977784032479550411059195817394872192014553403484826156431232573563348804509342487641924339909625806868199771887691532953792899366649958676620044266302780105076627368511671971560807835961467189132109847997722294433766228751184804586261971238882776228679412225880725355067263217165264264881877738241051816488478334865157681065721676420949168321155121783911173286204780520219249055767135569056817469250729616685774420747654497362714330969017583598183071500562576353758884354543118051019274431121871660893441135744241997942148467887132895099005700481863772889300013117509556230628205940062849519537551267384134534660191025560744503834497629397605261859026531951531523927740196445341096476454797682110848873347850812220632621179421937931559359655791594817708471334745738610608935958460398686066714381160335394240021359494338883658291891504215415083465539605488931885722610685579298279142852329828948500566745736942584917900514340912186551115113231450304443557688247537840553257479648548777259233315280719103335135534393289421146666669506719649545553776772932506117264957971507502171377613902976901768220303110435416727907739384574695959622574207918875799834358235984378460956593166282280770232909147586588136621214656772945445963783201216543793575721682183541124077807981745284751449939245871876054844832718958321833508475162707326382975724090091777139762185825127983059326702580136923821035522964619063007241304138073390746416736638115002640980560031013799961494550577721493289451550384912385705876036985010157411057991998986784486354251818551303618542334838341819643393143268704290674456226703531969712865451567204613015775439516501565908597092864598593429024377535208075681926132635827997197451394264217927877328089072650810915410722068993702649962559925189667407235348806885545601876502886696541757650581241109185897291390252098610680554699366775861504878386621623360382069500489325165714575412322932215335447428365346990060855937108862129870577844611588289767786142758445942735171101391331866899823921502941360883488153507858475275510583837201737824674269067950942965353616806357764970561528589531906670574840085206627120743145555651292495859362115677590819802995092482369451812665395087275412876220002710670868765793810749815615043941628967348430555453613592886154166973986678364977046728015111731987706372167637293055811266010865689022149410999046388954226465938749497322330919318514583611190566233141019537115427929182248118340002290432439798489940428431799792837483977244634811193401984828245704549149216472403385294377496919652243071521544975346570583773968024070843822494732524896299211590179525625150411797783104975664777619444944970038418503652713374652073433767971863011208681755008609867075108108225354586727942381534975975818458307441343229903734788047994979207056820571615526837197138875479038678587570375899947946263993631850714017567945286663498109965946056935777718615136321404328369463508973788912579007164147963777787054306208468836792657969564694420469121201903467491177690259224881923052842725707766396004740925707317394791438478358256517867691356557237354383660148853791117705454029665336360654016657060764703634674773008697705157428851301294527862442731384697727074553279792809803579146163142395539808305835435938166356371451560600938418603068884543976575584506615519233809336792305026254108054619145967639104861928564467511593646158353178906515620519145936223258880795038991426635333345207788100155537118147459748361023775905356044884992112249622456170527281008855744680525155350238229275227510188296012721293456946905783317915956996632109791742643178845093045617395588292856770308168303466072511375604808769503335457263265092615289177094591888834542489948700954522557536000392365279105225916582356128147705825417281273968386106281352794785005334076751839245614262701898578820055555324533874155451245385077089604582333492837155221168556160606677301040941603593073359886454348490887148470017742943048627313146759331955509067078813973343426158301868374124284246555144585629609037028814919325154054041174596620388232140256849752667014297490019430320573418959459482567261947124090684343805874758012747202807246182484392905115791217894889662323715814490491627008959128022683400402849758507041318232666508264417738868778537410731655574845012016141337728349077640722395672740217151464315360910982849174322531662875008463539755788380639010278327722808814758117564637440141306804397653265180048033238163181556749137337939453916884467139439881366836099155221862377473503839295979071123831900372256430156104986015249511307266529730066085704581854147323118352321430532574248447029904733882811328266100077785594491883916172652541124791452167778414541999556619157571478261288645444538971462590921574774638632534013650684287571088835204331024774330250560696837075450594163096633410117510169903653384953691591271124471803696712151457564793154120225992282157257061002600717301907831276326664983808446171716852993574112109036851578294027384791559946330325607708872749010225639049205279336689207127470362650209019343820852291744787133200651727599008556606452907923202649839022371125471114178338349583937934764437290536231651900946422555642093492893372140257770431655313085068304983314849985679301352743628709639291458521881949936816034392232666867074451841382297487534552759751513453030499900770240389934975144013078557794428820324273413023666321467328144053947166224566744905092796996254843114584316370637805706185269559810451790582909973717310888696225155616855930507246024748610238587871956987739586754073404497562456912720793950462327906586405507250724621900062337137642261523713053320337200367052405739974011600143564986843295078202173551315695150259931564644941037768765951177581625975192977851029367512327064262048590875245879942359461254156160939539292986199426474412570692821544199931711538247980968514953367311699011298413836555063119496386500763541544529656664989587620590634992068816021429499667450692778597045364615446380304713182752930054244377879449350839976723186110054569572056879728048306253616300477536994076160400706776355622682884257114803471497137330930875466625024782149134412296680611911191069919776109897246267287367447005774500101350829586334447471668225679996615537637325676565625949388132495089652243299986376631363529636442509389936427477915216947441750423920125210276451657871553154292355465894591810591931904686213585164250436391480961065013062299743462429576758993644539757174416101725273408115967885599563802295217794057772740774307997295249955177112333747346721361596754373732909816363749058540461049211237855604424277018455198924874862149527828297931584385058803393050644957469897362742131836392799052559723305441639191326380043360260886210258135633277439889237606456181556178348911199478984438712328207894355922361972337397311043873218842344982388468565556872907522810972216599273780499631083280848007532781449700538188666333307986686607243530909081878237734947525222753718967181311409528444859588966050559949843026827600457268486978658218559533972541423658883423083572833925923496981932371273306497339714293890377734574561356714721225470607637469717349828577341526233747211191947895086604109926821557484073305052104316746323031777086526953780272939387320455753822785462748509623603293643542257733564751723052014276471316185769140954482808968228415108101091449112789785842875523011783274968781235919912226711080989145172100156995906080327711097625752725524659676998792360457245995770313667622646282409197671633857454368171915532044620699894730457725755688699168055117153382211453623226258531113176704869333639261211503484686956062605580389897959865633010450066594697001362630875806541801366438156304489042546585044079388186966114687401639410624080685689100402171205632780450276339112629636095383570668615640400405476243735862413835341381404938187116043086228422548934983376176544663527661850124304766327252076540160809791975920690861371148239470825011992933219375918731415779095105020637397910837922732357045059526520782205005821386808248105244878145898004459656979497360085008843421488042170157890650988750738867153893175558441237012131106679022720395182843433241052829214432655695385900437003382284063545486505724153211759820882720060820193040476793134378974954964041839710548571439649035948393517359268602841372200594979236778471694301468295449068973713555517423608186242432694195124514108734049998847310970998360549812874679648997692557744533899611738558706997420970370537254270608011913853416954853451231418931132699399044567145502825698891106234992865212805413587473368644372727918579525088595147605399404978648816373789500463730547408361662950283769865044533943555960815654277635438819851172450439904970588305010953446562076550661227642102355490165080117491622872716307931264594685658680646894985540055346298889852422637705047176124933883632841831410029317172987958429254819209601328609964177893628392261419703511697343683164504138063080404179928547290810201697734767182834530563535464834060708069616407317169840748841891864350483425057495689233747348523619644249803638574703492038606724218260825348500941118901925591552144265263102873488499141518265452484502839676295473176849747866070248354570065298913683224598489093322219675370242012818649144313130601199490884932225252093179847818341914399419228286959488716623696107709562132314633836846115838241179053239173503417498067478903785957979981411828103486502841819511905355841726051855313127086324891124913703801080177933204592488653640338966299350134264390955566465507204908497054126297307073125524641724463095267479749785076862035934513045430494527706794333045862435465197331529448207928349958097364750362902613028754224412589403975970957549472368606218960375232696632292795201824654998509414389578018460354385614119808341677999044270953841161087281982244373578506688658140953393819893912618015173074749885213909864746330429541824254868478092064889975472198102289533769774015950403801458956975315264316141229354374513932798634743557541966415217157936981348457548918203207769683818864783861687269435907027145312988408735136604141630064459145964236147342282822411193889237432939103506771560834149002303375205939134776115930133302290054477476859347212508055448316856976471373746109576027317586943179842895005263105899607428580339263613294496362971195179608579214164974161598550327475782025667537604214369629245278696511157711718647142123048066822909157659485101001719492124846078184840006078377476189684942148239960202074114516242562761121441969555137868839117061010138310593476452490726758836849250620556226655099155628120191797331706635259869928232156632505602495833430138474600090497379951037357153184257323179660912819383695130975027267986221449355104259195871042348521051713061704259030966122258833970844784505566341332232502907811149289080937319786145816333450987344893786160027034521557947736181008123996909295108328269925583365000064901045692806662757170706221098056769158862786478603174527265411174469810651557655048877498030605312835855823346397671945120663606485489331594062860889203824477162502324341295273595821404649966634075384474742156622349536358867958247534014087082028310860001749558014652906192014094879391792632206650623498389852189334410833754047623531944775993785459721222126111124785739666210558189819372279593406332111975258848597914407262330958430279017489806670967164191793491727421483948729095320422477621376957388471209525640798393843547104866780496654632038989142044724856396772454892749936600527726962262827266101523509872120038241885883633633104983144273004336131879298307200168160143872182843786148375816070732000613759534434223885827732672148686297167902578323927129879516674200181976403698300142988762274102148432167940083560586901888006131329285113833028167492070595675784667215195506175239203947963074649895527758573343378432612525032663043392434340826276852623943488084036751717918339578991662530195125432254237167465288908877864882515325345337687398226890549828383752258132694616568322004853626247210916195481165422268505425765359865098229971862908154912992997228847666871709270238790356426961989628885832887384363498661244654882132585176976729448310097370575068542534407938301873001481369736511545891738667485199047181320437317441371129252625963686544307644688937286554023597426347184132446691859392399177707416423628462934908799207932010379587012360568128964499824025531463514716926601798031549927832880585472838089415353090355326508292800598916193054675211744777436176058556175169076845315182831790928574191207953102141150986706779521237616373304518004505010806896919370547659786546364405398159662015678249248806839887139160505979819586256949441986881712514484440665519268350776601887381869447552282938461598002417756564412092933402537606447040363822766080122480987433479972594407123650849661784712571286805650381476028946197215579945516482711174803864070134608228028428008034007698080052727209589432974757525096012826924676493408197302301113617293985283893820245534074501670450979332998994529674040035632113023877173274343810099303199621006343772944107673960708822328813413633130744619387619116290611297070041538935326951306708103619999917107257944150531074682508527223399248416939325670829565717261751478192241750337171190733344764402941051641478768583453638513234775866971397839734103814484498542966012556681296581540010769662833799264419827709692313145813602414459125694194392992521571356766599000293428435927867962669826831500632717053677748990834781493229554314510911061360155445425434689354797265690128731802116924748669634593061272112940028456846700250734685757820718049235723402513615416566917474394556765782977234698114010507331376434070453090989737830840782838662939515999363333850310670760153127014153359399063304395090515489499467334401147540238143953934758946061233977446420185859861623326754359244950819285415836313575038138931013809889608931634063464091828456667392737859898948669880672149342149466436915222803697209146936801117269080980258787972553999617151163968098211263611003538466727241291432214528910206791021741069858101052575254518898093145012287539493402742047029224904524534623970632636135294532919160901239758552170998632884973231813770458932988204816783180255550168113561713945064739203675587080922429459065122988363300014201862266406629776761424619910704826107589229739319221505164626619070170103520319203093578594024118713234255831288328606015527306815503926295465281282871910809179520005308954901514952540164073120985202201491608033167450953992088859467733841007224886120358789675443163830176631379301436489233586347027941519564767670495391797486678181819574554061079505787721536070318411945681063284203261595907355563141709923497322205139818478577269060566562296141325137790499028380560228155887560767902441966589190424251919393038025181024519722354534303177409189766714296736990696899295742410706438186747606658307055463199510901398663787287783243015812254801743531166021943310913042027377642263036146049269610741248534685373267734674028795666591768720289228447141253540406514947267373694534523855581526814841627394057804238115494229558727536905015306875725500087492822259924452137254550354815300008814022384156092908643858787299597075962443762287457254434151316832410318175481101973344783038850936465407742007965442482073915184335823334989788326551041376572137215446552175831995344898920948675320220271709670025001111362334580509250295647067167474182411343236750645495761851726869713078425516970090259332158791362439696442713214307949007081587849537960884238760830700688183694946455236758408757786920591876284244793982807709534217044358977078479718232168215268333583090049805460190383221477454114985258925072537637114140691105246214889033562838682533985651395011932000091247684820762740283417801748455715047226184511733758027958989104921083406692927693330444314419512380487943101798785016734328822574066842230023274798268815996943002122625741074049588615509816539280556303751798985240789921872898204860573573631789067896032371507414832594597438239464406639265921187996722095052533676929085670372405158091021328095543844179021444558954278584069347208292253937570367584933103276622269502141534614108828835217205569731429662157211613296822868404367045199254772707992183327619806250462230286808685956778578910028897112306794158422798125289068335056985390953605380832418647366222519866522006890453563478775699835003513769921829072591850280327642449919359204476413399965008028138453145582259500597499971156302844202927688142679537228576915649767680761947898248218227121657259694316511159526181655124258657867030819177380559871987297550650615031055139411935870361247939215951263105077270873765549677009697801627941616088701250427092061479046810725586317224202875496605876071220434673560096309615465876748431266035292704014615647360302088140518483354148149199472635990010668651463804631000477784196583824187475932710984370100901629411920856424250363673885867066636437290121399844138589341479874562870221847864106719438443827927682462499019336087229824889701821946454345930963516136661421750406437600197627323756915826655357578434253219080165329462231858853067237780370300408910629857576895812880380950465052178217324967878892633068879962453627807445608013771488542641057819549157577213275996105160136528545815580006355056098380532261303224542664042405318879828906949006449653666908217314549873017845391755959125314918469203024370922305634278640715597528681902577516053928781120957733066413340384622884014694841638793235972560558338384936031582579696930456125072783831159731530763196544090267413197247600282653630453978335968663061758700939609892438699944629234681794633871852265978967349413081024711424063023276444089088976174790763343511490018502040653304318991545717193024585287629105595723303379844206582926281917391147320538197126205631693333917000934675840850311612398117232711130994694110642229201799938871775993041570468307645399401321892392117363591864060637084957512194437276625613723195500729222535064074629041538054243214077118956856776003930544357869366436810386110399494565285287817753667300238259085811014245410046557071446871224351437212246170266056601916658797973067044940413042183448066474676940718488745704697857306104022478180396159911833194519061594914046077332584531288767665909669095861217041104900067914235180330802669229118701826866098552834544371087443566621755628260436960227657683797687306345011779183951472165793414740574682014934853110965058358790827295925489187727489716696940464853990084991709429725371317001339031439741275246497036166890550560765397168261962188613647780691273146306405690145278099216772678118122774784480823684806177796126677323500354658407511730097872200961846069976575993401938513962745475413712217018913590046087762937009984631381727676187588191221790825923157776467016288720666563730506483368828423328273687994505573383839687532428875093893078399651753856264388235316934955325596395974417134989060962594345770241531147350031160849856986320281516807538558456830783768384268896030101362581881758099707619850390114307725472987249195065027929125675151602980220965962408152739780208708505666326538567262596810476731461716129622035340324385271499819295177886827321433279403197762418793551245316611331771116210812953786503911835830533938478127016728725130628381390917823962794482638756197570645304457861490588706865284586661034336563639820293685080265291905052827050609414666711809052106426388422412252480486653588060407363298081791484905926755787800606312533823841264426132047627414395915077263542179217587939912343361387812650801814985772455602500715815438567672378968912608557909150585913163114483225192011180451748439600671168390570651625447286994658701577857355120778702851662958048155415593920167699064406015918416110889348153544928197749855088462110344059439682085442458917719444466194017208179228135116301343173294704471632759861774865018428637985446308028853633382660268392161189036418378242307401995240166862958342151988700613185724869816661855174269578129484214762458676541308546029122826929615263394537687992824866050388921988858993901292671334006505010689243916290582046600120814595403361675951429202481744669201165838492333459096144077994683337394092777148833229665330608919462820146374732980214762338851931160671619983839995927379044255773752205162154294907649271297950922836976530027871228365728231911604223535241527592110928180958969442618097280719036169809432403544589165763374836927367135406127544474362444462210818741567693815095721497491036056835804382921912520653082837361747547721602844572180517746630253849436172536794514987662505392626208840256025313856806759969561151922661285877628786913722945482830233972246741845717890249637982834568580626158783694298201908090281704556163393068807052227904275227014668027394966115147901498415223148613900641711008777755510175418331755186042517665842554185583160036757076934313403349222262225248767817442243142815831398338815590307962657007127923894700298507782635922180622390743464887837478874613723637135738334500850170686270926569944171546204812458865317374336507786679271654184917195276104653998738003427435368153389451761623476674552307942851924942497246430773224738203535293479265142375901708140248514979126564047983821855240762122377982210116243624857705905187083957477066130566555377735101179996901624374992221865950221943019699289570670331665659210466897557578698557746307779305181549031745280096471629418743382924251381617089426308409756336830990814275472367537667404405931323181459417681341509823826692460831248177755606689253315563378946339720205272245932239880537973169532550451763758472659942200688839327365074328801952358795039492010935345800542919528506101270700948157596825731408011387214684264359823348563215172792001424173833843834007030535827000776395417635366976403577727522541505538307050519532129193386428867047921416023242322721675686801755106745235181666354544967673212691338275347098759927841456898246704870850937812066568832866946077781217559159600549200484596993503796857424603171166491264184858604950655051761579916811763408491573432082032959616596654716516662572965213068075484280156175319704619997476384303257510639229365114271273745815851597663508758960639929940292233731706314474700141865719114963937159947044893774421633433747365303836462309987705943130080737338504185875460891503385318711458748313856280432584056096934234057024742632537207968850715192124624220655985028937479897106120968583084905594824620967830769737123716895775084836238043470728382447089126444527743112404046184664874694433112369383336536934929514335899712988239585380330547793196397878894606347099932695733508832770070610549938454681797886048987644856238116475762528077299663747719978788918064478439864021499920079974246846213718116714480544046810392809118164748615564389040519705776404121241430764512149695793869171491147579513064440691917794300996360496988543510878316741054004756557484956010949546047279601789860976113708264868683501281155728361740918338240310323486299195180032741294239663111542910184454924787245667709486910438236220297543511115652688105217597162523791654823843999385129739701372294817895218202813942278539997644266432769750740765989082903711476432354832089336077494097027817497181816917113182787449676734088597141546125372276093582884361991977173668053746004383241349093338739115956509737278380215482363128184721994505322073234830699204952359069513229849771920473240981000829850105645795616696502783195993901648968019065189903028393688077337498822461309459046377657359202757051008790611167463812006055564998104601237370610234552715726541841688252351308685903583115536574031586834474604196943701068936935307622831623474192933541341726333887072468324562712706188445282135831218813826478007097629710173760709300255863802157848250773712691173819227287393766273103957996912731144415676757509525425922529908432403280939083488122351597373627774625693612089272523087283921128974473567782977376860021441329776855095350611930249572121067870679330964078595201899350852999981532160251246639556268064936387456954862653557025946115082158136936069774099917489297958507668761281686659038790050681349075059655681040928511427838033634896396871076798426200424341680819664746201285810234871135065810029306944847748188880030023602364526248303099287968609669879621774979813609435544519363835530531902700674366990989326681977756451927197445521626997521198197098999591144921322156259750911589018079642757557527496807487342610242427377761273936157833177656885052149953297280481634773664985721857846356841141414935816440076443717888105632563754522265322369637940412950378194232755963772411659226560697319272168081797216321045281300073503581988796686331537690335123383946209946026253847891378481329451610097918005465458167596730465499333260751562652222811154601550018722979542005760886652027072767919786362979326354740401053020148919951801858948153037557601920249716453048036074923730081679569534532288980081082857859737344399398526269043978677716987215799420204614644159150116575261097941490081137211414765589283644732235863238668597915174055450946368112020695654415913369088203563693764404143991403465161652386627361283795705842341013115250196943816586323307539938296911158611581863980427595423914302414363446992512455700768597594696918486046658797227290923093389173509476244273670718076598316400386341860493214577283237282593945540711984353994546719377139413054187125554428370780550539901897633178225246819632906583401913951088067820896168083218852793922555808901932058967326930247042960749855119970089367313706351409289743319139494285025799243764492660420097933861072027215680114141107339282874420797126038709530116275113899261284393169429585885072097641512292380560786101271441848355218562988266560797020453748316379343092775318619602627128732181849908703467594321003243339850390269704556977556860235393376260333781000966960117162842400005146083925592803387964403312038519722360271034556529303885135439150335917121546130366313632581453052447831293836822540447010759056407491996327228038076540271038109573943025801154133379804751329584153744534025499909183938072284539493963424622664529152124961352722169700470027548206684285279243313075868368080663076985237885399279150981709558232845124469015242230267618942434299703339346224817830763389634462941107256044387847306974942834419214675651062572500002831243712852691452335587121156401372158359070796835474802476159488152224282525878802151705009211851448254715088297887224863809159432172393039318891034700319535050023267295555538599489832168719552244835533667808274153523411492538543213978103371671496631086968867829595082085293641380738934399198205357024328625273676596563238200866609922558466376623994346135169537146625970602310284059697070264587847328417247478180991752964152464653337176063442163810470482865089843282690277581923608875159220834053407751719373419067812675361951499836533256192410679371957422941008816113737966386390456400288156837214595898578168263972975681727687262707719702538140784660885905653129317895920842155190397461811454021772938800429519652110460810973575415106122476519928503432061037093460026906625792830531892689089970035084054246167124856991213166452237357862326725267981639459238958598458975624597761746166293688584818837275792268411817915686215554309014207195207601461526717949421921288620004483513837666887640391015567919773551606742531042113910572972135467235755902377491492022260895436619435131713739902265044702914920822229966471462247424646109923584463359868456103371157919297153539026947480765261681171656602776985294222553689329771298456331006705582624262058705755390809014184409395100461337644654469414617816426811805989242247635044507916520548685144946710955428227598596331475827102168874173261774637490744671992840652256545630917447628158963961066758743773644516673926931763549860806214722628363117671080273644236214179160628449998677000544770820710478438304936332167748750853392215988919249082948105149173329917115995617247418485635577191866600201613437512176058344775680240375327974316334392778986054259390457702649164600660782424049090493636330125094487497097320760091159178876122739712728488489973090100163139379138723315142525391181747076908053950461362194245230263692111972958692381889050775624823169155086264782436581920829213826022337484176919811327083207488528168837704339027548046711527733806259189723461429693702416822574133964369018577921338326520169432481292161752896254824426000048478172902174420724047614560862014413177224617182300827048234764439674442079663992431218091213740016894340708239604625782228670123132177899071478594500064336308327704505034000422418642220725226581755558347211428892807163950628324210980265240382984722704852558212953696323641483756679984665086589948608712380615352122280619099665614776417318084383126232408596464989528203037410545411142587695400083767149926402415820669125201117628349746097868206975091370350310193397309438321853420941065953160278157465768520431821284041278438114230836354592271552564055054877443985429071541791404865322993403720736280926213117495465640414763606779622724568567662526984085912986386174642244059867299651794965557256671821806862876093069263178982984056735608068494731660240378937853479708241322513352769500416380671800402747336665925204089942808994712751128372632983567772795443779437796162168058163932998718177925641544954565800523363975685328569504557729422092720468948622842282337749925752735394869622197319655862333287072853017238593157134783486946446659973494454940085375378103699602168288459951333176611904150001079453424675841873756765173618154726352929893850924920737871688713436636247396527853506818951903788549039720331553801781552881654391073370140339102251955425575468274605005414771146437179572451940250193188455474732315228063098263722147090424252205296940907805756175141480999370463897648660886009125360521780276104361256198938359459740034748288615371844766660316365621404266898915160036002862002577000817264040102499234931702395083488815017616752782033364598612747691904056631458721895518877667225477697431754180551055250556969516998010835244850223300029669538374552293081652983108947379380783323827961544466607126853059057374738594114205596949071901146405124854059743375746427755209845190545304842867069704520794383435554637436138713513821805621134989946093697736396038112404849627000877150860558987107809518300741860611817048724436542747233062732399822113455354949073618863762552217174316730023745863002861179354102262051310459665213029511389276188553509784922940662198637136074918196971891102242380203282824343748270496198991085469757325765212403357299828809634081379118653129820419041351623412315428281016258693828352705876191273283394329958884558202542608434661403510646408866889695926127005775923254115943245862158765525678554145218852521989341059994241767330969019068280611761875956807842278219054448882738340541006163922247769333590823505381760918097327941047850012954553895054701227899106664772541658047057724269394470052240706185686378615919368590112706972324581431930697377127967045015989382439241281418817024122783716564621616480831642772730395518931998985681644885407304934516421162893880721663383141336535231246281440745437557712799052148000049489343620945335701125583866621028969718817198871901562366571325346495798958974407676956367890894837880735637469253573518156619718654249333624839663611707520190693556446462639888727720391886376296398033266017383899418684133628855236858875295177281087121184445387506195571277122338427414067564364999291772496055135503856235119116315977748677200284900584815791455544443141281630010133158327744261949033672491641971868217147435013883021600659829019736580500214969933002181111451471117578273193214408762498760891364975695463197393236994330469838795508987837344528188925488733014906262485904154700738172831591907277465146931680518215558908691125820606341461915143091094305692619488542760326509418547869788526008787212106707477671287593351918633162253422677034735048705003048445471260003448577889589355455290088343559512660367430013621348577220701829901543531813424422917604400548027474815905059538632661530045072318329126504668801514827806804612802400917710340627124160977270806276504119788491962942153499149672277961440035385959021037811935539665631083026938667225406000995529641389931344188994543938353865432834323136040248948530085382547429462369942853377604246001335237861124941063756812631236472068336867657220796583706097342964041936196091750424681231107261321497796870177681472902944914066417482108797870953656900924931042268445151701095864134751931024847233834059931576237563167404586871922861818700727411503376707683085385552565569852140298859349855200900647948775235254888867388304839910916440062644313829170170356428539233269714259134089388748879632890545625876352831841621165477335614991101371500288090875061419965148763163074999821049863840744559159813692756644531180301825055005272745332228086524556056510412033527796994653823169412641513957252858115184413728813508380619658442643513820149186383720432989586560965250821094270459725368978459959678809169061979734187825032031668876246142647470741368253709866356398901996108353576337668048217013624373204322370646166796706363442303605809905071203410828161670850029760060116790118128729944681206695647761982028936701517973258961822693106594915411262257597770239550564055427758331911455094097285990999253627624234021849368270864991663222686662021514325180684599510299225180178655572304444511749935550102959207750544935927893451426946715554590236481642087948433585547383380313447404874908986478677480905782137175221733608415892269052577546511446891265495660305576312574215894006398705001401666610927778361695812275795907017148598093604687374865391022331668948048482988423113607939063617833804158403728917705450230557199330647365601071594113576986783965320627925270897421073309775814353870358349090980824721453834156357264146475918990036360428418158484573732184481556903815694565307311036039529141974625083961058047455365621462001151871230652252513909048187753128642023350278227342818127174675428055946969683677727518759068460490074461439898876660561721267806110066468800889071773853824270260901017600025986838624624693272030921851577240762943997576226812873792135456155315255450731359070285389749629786363894316150553445091293841735854314694751177131497069686562547712429664309325510251174621872290499690682450780349333544376211653643851195341949698030203292418194603737338649854840370514991126218434937497188943622380753259448452888754918608596219943930814600733397938933412837354568321665064699411440576193284609822480300292987991483258155257698643895834189632527540645000651578842594042803156639105249959672060060962163013925338894305972590497806448667881968347372184418781545956618682131687552165638136599136836221114737873223681455315632513854026041767678661926332246557793203154676094399245729760923601180269465254004128827923139407803489527565633459414486767804576240478509910270370372759779034260728875314180557516946713732939963835082291049169827086054835029376169657994660711066616764357589853260862053056979419027991542031465228028373310247675060954732844606077391950466209867940337687870807197670055566140672782237914293815491406128932910593227666906549798802526104823619037713757460639907016052983272325260226402272822691356958690071344605072530173290177193586491936528143748546859525665151499995927654458787230069622954454460753358061516758244177771643706302217254458719158931089664510628533336926838427762108454141380609698760551540291229214403412412598972450273894740155198009865032599620896634140425715038567499160621110672753328437082781902876398600592324172977688497437063784286152068375715360334555972194353043933780526159618393465044917856143176859269412463096463737001685339407109583454333513215388424050700729253664587722686217356666230269295314696508918567696232724945862750625134945976422542181907619246063256482965136232527596495387491691310768288129442142523035064549773147449396522399066409731111662941719090696534665483420188610991876919594683875427222437147639860411112558397013458036346003768416782987040150185876837741697079440239112496337337220152479885552768004014344558636240595956904515524766030847401199632634560746163236092994996093828794981118528467374561004084737964769449134767751134540711485611640083303235880166680992134713402062485087077939132352197004773023350833039501792221953245335397031382742253366479130256591832743051315959860504187562458155068567671915916143376574942057065588753428098028324522665514917124609342928863329023188010717550812942299973745806061273110695721966623475447560425300147427464434012448740535125765100669057136293117662951622380171172818159701253983487878379239127541748871528593403409960702308647043237796557169183487306031270868478912576646882340597150397079309217034187895177099073778440821803125897807612248808254022986208462165859714880012542872497960936975683184653240166508361616048262430542920590951018172224451853690504042977795858591023905750563801425897086893655948498541217195202506882933324524246323525656340306605177762927937990206880388788614041728983704873755923439793793080821038733663939522782238317632205053891032407061940691022145756533682434844178806194560935078584429719291262614646518358010227067107557522502149621255564257553895055450858330163508585136238933078358090916542377046436376725423778108661408823540813515714233863157435403487725226520030830940271850838087876221451268819974160158127258781335772646191567525416447280543055716804069435864381035040019061815411288341754435840498516835512247962092849167303525127952365923184247725156699829601394491296260472784351474125245609045250629061837236096068093787229829519202402313204892774898815139499543855763362778055643396750316985808340467395636852211991167724079293589618584330554255045622047817894575504619660495044781712272723518965750829647480372340559784608263683851733789908369783636523498473888985965924066982156129973450386175547859539922787723475098038544988824477784585068206311002578300088399891253238353018666545186469317868626287288806074397918438850238419653596733010133750629301994987265772093033468282484618576994154051032332933148264860675072672018860317819130912003768710835735923898619812490203504551895027559748636570189392213980454640614110212968408197777139230415090556544419937297709755393318537995882739944509742536212214893347348497961238890432476806825422558072909539159591492011229826394560724625742878914691051056227728705201515954438881893129788292948227965561446675962980714095518414136116605778174467317338996636344780728865730336968862364533546334319347748664618923289162126077977539897169718452933106009221485577856984726649232083915407803702905621783416794718637832441043937540096780838488567676298697259341362444894807035031886100393765933921095550561957444597906677175156797675575635264478460067334982206401751097641549791784722675698528504213798738537098140468278196816930185022423901496477290030198680452985631208127872314748572544140097631805702322161801744464291266196496228067953437748195396464012827508526922712354278938973735280529855673354922816608985385089391888122321635032733459945842754834852204169323664090184399322405804399259612764539732341238957686267463175964653703063542695404707462145255563027719088530267012410788326188816773240493109759640287852316917504334273448943082048285646694371641949280959931852090521296073493309599850150818230752915358369698945832818988247550724599971117283503275729762017030325764275267068042078998651463774643971346474238368613433914634828884212390485474177510879479231207121433535395554993321841337794946427594700414909624183530277083022330037642511608360725006013061430280262091798497546476803602203051284453519766552119747593617933934629871616342285014875475787785044051533261271858716627719678576996439034678355920610187961317686697837866073175151216563369323984113657653429424918668663980575600854862055497546364924893716640929210249375100263673325396611459646645169994223205292156674581495017599282200393323511449172454688674440659190582732747982995405054649103199120327516243046246732984352495859830349867329856264210782135778982053888319533701946802017897158299267823551596581868239649408827230276997658786147006391043437050561762428743330179595454806952941793235051123881763150805789726521458518106631702971840457939962300296767396578206857873423207005597202942766378682248256508737390492592235288014034894636353321021248214012091270927835445923790764237682702014517518042515298685575557895006790351873773215151818814895516506392364762748868373047992519557918200628839762186561893527373589216951749154531457126991151373837173275378501499297950011682938114533956165907979345962958358220394370957842824722772151798227241704805568723245096141007039627223499523069905753913848810926466152246667272468741144926278100803033125934920158055871381026572398091463921925728811466223627808422108409835500666398785839508514980723688967599707138503216156005139103334613975001860944986843665752494445933761852303556388707465116153907634265878874484190478510107236615846139912026104608632980119175567182571439142204904582189842604161438745754650688621618924402704696407927632666644713126680414575223917659769870840235647174011266127503572778086857159064698663671882238677406275294231728954077307233071380474416640275879609440353732552324640901251720607080404156229975509567484523417865588954983542786329406007935678194056559086042190383490626615245477876711379970330437763724723493485265320835793275920783639028817096630354073230589213861844161628751540605814215153359389063388141028902912562354766692101475556774560851714786655515395869478371040612280115557560030288011722351423866465753172987284330352446045882122098533980084754237030834456734813190494495626248240614870882590459868272864066315785900604820348713039758839322257699795422868452472627410487916617963004666969378982731197838651082401757867364510291819355090945678750795253513978759536054700919104077158666227799919147566384078931079679027841523416999974069638344394921476515270026740486903324723533267812642308650386733509961799844906098725024785719890893909208609704591927806482911683142745151294985331907182015825775520398389265627106608308975631651265465567846710841755822266404514490737822090922725981442547585127932947120923708616403117233849132193052809403682534536164184116306041830411867259404540301817197962776814882206637712319651934228765454710500344867691628335417794092534697532380931627007168706227044417174241210534637708699527390006262232014221408953923286448620232185399366503764668423471186750778080982845625868534687561193564099758021454273462533804874690220881178481432764280553789458601146390691291941529255562563953880765478255025940168733008467833980166718365957108671570372683236110903475355711433354661613774749609088167104098822725953944305401742467311998962648372355035131916718770885807102663259524123425680771369163227668046982420655199367082819638359710410951957402814409187247346200894482390311248551144498853107151622975407246150502313718656562217348750935467201878326583822307622029302765325314032810475759452193969582292362935887321865968252713501166585372376993309131509949025878137205518318588096117204948904223485673691059880375417452837904156490806861657543768890084492840854824677759322528508036822107685118815272842411226183076364641031656808077366379822066720353995086965957739421781501962770977944324561799280039070459685350580558256345236277523522903319529235139175483268270817616292080678410860115904384303977762597042089264328223638109002457108389741207560875987693948732139357778104836608036487988481351899597947903474568580369258544960174549954319598808465663872791476830241236220039669685863891647344473741629172538088878580516187478440915559180929786963313073341752158176404692931061251849080990349242820228431597845245086132220217138162606959617955167304338695324397277746969625625632496396441699200532102385259542228340206688386517023905330117470654064996084353088788959392929877944447822879235623139478208304150920172079269976538334458135264591556856864901684492051299784020422909366733532929533597996248325690772021966632481550215381917853848422483975652961060197708662216740427435539180512983012477297173350941989096229679940728431938219826112616607779355062361168275389612886968253318623001047564792194996676469861674041188625615420361371891804115124809887639466696536030609665532924473376850786467223483614608468870598535619654184623654555557730768034690320992432865303449440559764125264008651367705273215339679745549771388683271113065876377383605879940419220515472442283473991503290235898188672663233561145985846892820685431779293067823799239246680538714879541964978316254543371038972461926106984409384661359347713423853437733276596630039918329353302270001755199612442167488672943651250291451458039155152695218302314337622430636912720628394430732004554018703193844735731401177390821959531938849935779818970071228144021678772164617098390669916782825618410155556865897129179530172667811836262915405800149848226380810892337528533183983335026645367997713090492010791188362974756484801908660014999507050161360225544897965930830969214015326357118328509827739154047526965286338330681351192092432767530339065601300897362535612008931657614647022725036784513690507853920306546015076970949911702192857025588049835613150958565162396741521344849530354571573487186128837737361835100958462757689413625268424930653534553228147736234239029198781738503503802029132578577003066255699126158293803017328799971090073611716333116864558723209295380838254206019800910690663338926147088117387484389268383834025974036477119583551876056533952451299782839372916889004461317270394326400327528094438803800271491177831748372294953512538200909089036088268702388476942205010042968458822531137051210282196958496110612158873766608283973510015247598475649367835320325729223772187034982742655202717170917549108505607996028328551448845088376566065178775121586266113208670489215131294955399260346750598970253030275615928329898481332166498570910531065286209616486182211829965213037432326722415021582882889517440550494880926230363594163470422609389468344326076282667679413684558865451136008851528148338488799268166265832018404518086196449966152025867989181772060287394836664294768283524068382030877072169759218181919030579769014711886790016638429710372868378322817450985744546214690896377465064232122981386875648194945331202625294973009697106868805674868206534211170645505328164822069993881818238320299690083367243316285111029426555742867835675222576890084598729983335302250819659972376658199222384263467443608630189142188005502054493048887435889050663788873486922203101017335977169220424953888291052113441213427245790670220859864593326371366760435564926914685504767631426682778449935526495707052732159150967035651779730174405016424780373771266130662082835890926560927054208942024345596762335267574085807921804463655480871863134249695452549651564304308174778397824681367756470005813302663856365727937317994726587671800024201152798756255517969156783259807689642402771206627562411255320274443607928700002168018525918991689208995531431527831724567982851942475983780003720224941413277432465123704479116443510904914866908259945691532589731624944506099532263675699349307230870989792179524354461144662109898315871279083188028612896439595488885458832639375402087370434754702529587020272646029190484066729290530434219059263837028018857838626239905750402641339750655674972925341153067418419551325082054657174135695117954590274518771004536658631069769509324411771509292767998217639060323878256432649335327649997876539261100328399427201293194417202420578600970447922076191980981221550640447783855510967933207655166970898982756232928381522846122802429723123228745096577739478765691783338258610539443828307003798672780945305476165755887723632753694351263166935252557938324460040263499477612942287363408211438400762582397643149160498970449892521486482172798349840153294092752004702321224885229698981131340997791868697574267417165875757039108548068356300798474968701995353408036096891600562071492297616878855719094534110300190991030445901941811495637999158413840644101140922978561194919406992041073756291702571968154369087267943311121470137370769663067045977023949139679330950676617039398566540173753369303190578602283108597231618229811116972280523353539227405267464865612810298946065108427286032640600315569936709185899895557941268140351730504192550857488439265777207172956816072545441541010201268526296846574225146706092293564165091601444900410341607126909589675188910853034304643253459968980015566063518580881550508016512613896515374968413504085954108545836515709886691957825478286721429223610051020521330117966042482468212423174872416725623078022099598277954036015907316388401485220469854781564518653973842002441416403145614125297138098856101738298036952742256737896956606770831475797806298976678054504541235932850094718373027490548978921875288382091164532314217423536403564290097666614047506863665955285921652094801439421365261415521005686634258963861214692492449616827278346782701351166348846739919220307178462322963766727936825784598416491491277021127052302431983198462890350944056190733695377745778317854784580478389655610541534736499814698699423605277323621529452562260011458059221149552802732209479306637318106151776074010320697960838089099600691938356844632689744507833931998880816937101629600099420184297053835897252132055282730882349274721509713079741519947442141927217292925423484502389505279959926798110411680829998511647367648404397764171236357023656281731966266829440299962940190718028605101204039291038872920947656679416378231042585706871871361663604666105497613855992408148449829940924492615261135877243231999657745232149988760342461549216287291436430642009293480377147786927072958354446109385523509483454957252416901912103930535024560235328369301687074072436271404461927198169914874801363406690879839533642101711572142804769872069212652914452297938840113932975749637952891463286451438345355269339440332473434588342101644201992393414590225179501778665037938420334011953945499978450635157264684457176792183382164262768854499610591392693155171974877496077164813885005792752861268317197634653634480400600645039436087317869714671191219871341480808035038391633441252914045419218269743734195967328129975732985702615983281152295338675031214010865595646739836731090065084251970086057974852584426511644069242543429519095654577325836860875295888325637357887618603946363763763663912113993406533084921260938765243663835915978920350443323940533184567501713876211500500543685478075869988062001651959052343881030860716639127706383987113594552510507493751887029219013004886433219705607344290444687371426946968147013045456575070537968861900551448930687888440932651055422223647882861117738116558160647201999751420931539159557088918996274188518896642987838507705123710136370414303883585097904149289230525759066664473149152930583460041149399631523422446050800753304469850004647938153950308217739330424976016437878126216411780376543334613449464959544025516331808833708576377723815625508244080270081670267396243547658979018394251459634021624926551596300623436190817980302119169366315216734171200963417113651078337766150214622870488034211532228651833550389968502803121562579050401357666417411115526743214657778222112599690755311674879097650993243823786821823521488694092092210193685532116089855644502697736326682182089140718622590769368075641966979818047033632417754525133447923305651435751433000197238706698275585046149941185532832826620970868198030986514281626724691396528444603082744239139795885130224323592402726263730935477212066395471469581155300614601869854291865515640883301569905697887450323715728204926046689318211145067540579817591265120849825589111217527053164488922767759515680448295323226041253262229804560164576763082902459159301689873122769535471255012019190089387591327902829723242474897290559454422822295972012082589954498630300004895383317699571402306761448942577041383615080488483652423384758067167541601935017951661552102011339910943021215688090225146879823638514125458195089786944653408121062729997070239977313312169917425360992486381163979543733455895784601516334007576749925015629402888351531180090787423588709552844319781336076927745295445717412401298395341836230120973888374245612369948142991398630550040168464028377456940358998143102041898435808510961467581851141967576658954450912016605549211226917685262318147613509306366576264564700096946093673952304535402174130119985707789762666460710768110060435248807699763294033896820501287087727616807821357067779222982928005743329579921165794250035342510983484985703778451016381871371460545577063146158632211638607161458184492807248467845088611660246181675121484131785529117154599740010240816574089355160474427498975852152512610912620288998053867391185932852118118979701538359380222346844937832619327085600969431529266338392059065948492790366111085496557575662021082702694033334512182058085103935296983431300643197954012007916592474849700029453711095991020928214864071329600983630821047436578121831546291721438270933470128690387411997697753826436799927342442134643781966523174187403479046807928425106173864699381707491400988020789730519321831835431992333057515641953817688582861255896019258056789847044806615868833020366591279725408567806763495797096990469746457552095500881276224252219063559277753223649413705129952939723032364883402504368672460199862497391907444612102201588596039162313831722738916500470290811852635761827557300574355417231365365034149579934313186795863179357038608060224672572828724273494844658422788061185157377933075119169342173640892964074576768111008522379221918066912333474549307631962989558918901532590378190890080552265276180618856922635940835278440491384840176900770958732626964466860270696867639303692392964780230671762752950779091381195367335499743876922225858868644347073905072112837440443609941703654062514059362441341549600382196986811913372850993820708096963465902090380231202585761431577505697668717186512611510635198830194436855922461959541530037629869417820090618035911663369186177850328742448000534637506172740393683638071909534494008211100514064227523745529343687850381465002417269197814819161283890160911781487855653383697903514824016321524763715933519929201915829062143393856391828225531258836961730889307172254520994369313634900327961966634200737548881978460813333930144389787313898480014712904577921567119924801651158355092658720257841216627939312835370262663375835863953972543566742366428755554772172253361764806783034837056748058403983347529842537389441594744393858159850517468139375284413121990642826071050108572090125680343562740015594407221444568710690551604556941698708139981003960561750552303054619766748899152644723743607844211120000486119063153599846011156343440672528765271241045707589410760175988643480578063868082917498400408691919302169882814283312641292989242030304636836720567082156352723341116399856202109423968186715436597800369397412825309303246390416151739173435733007424025216651185084067989020379440712945918459626234715320566880572799781035142240910494776605253648925203138677237708397218020732875959643159031907018656934497334696459381615142441115294227491189444623006016315335509653943062843633553253714587750238369593894877411386518964320845872132698885935782918459738076712949710748684189599595479488738311768766322304933795134099596319340403718010192062771541148736855508000875948657471546142609898195602226071444852783133085529448933546300845167090793535533792128531724068123534098564465988250376357640729153822306494008252419682502434802486383016533637052027601071003550343897188316883813147319430554839762037954190712098205490567478996203764390583658631547058218911123272282712467900290432828673878104753229432572954765493911540537603461279114896919644917592491614509099905780764953403112623698123032143815714637831445022520832175392861494823622015237203060957370754184843863550779224107701654363785688140767937458176937182314632296096424903074942897138986193095311101384763018408947810995203582044573984479564117344696496139974798642018788815083906533824342039197629391926057257997492333417079500658115439188675403292889236660465874237012082881825218503395498001233864820510554983111858567660372941945717047543999854652589209067414816894100803963938786575842873592829235274065693724408253074770018992428262869771666535464907502354465326840980031718471736650882643886096799694221181037454602742160801376741630695496072443538787940638484160003596570400037181212400047693529850242932325299022198566977909250363650677421121140023812956747356999252161576833180046514528684958660071098505353947121970575553537973653391403723222590814174078849825384337049903518833862194519032829005893102852317440755272138688051636135775696451655081613008788890565152717104925764652060307724313023346403970730435044091966152970001968697681476197895123776504467633260835458505980327759674836998677799501655455434884316625922374422883824621110612479962975737218312095681910736534416341253039474087588464329467164800303218481409742642493398819469487545577079242848916467257107084588327604877740726773608636969756266861478497957420018251809189475755865444941383728261204543532719443835559548632688349531656360822265895598252836565495800142505319240024466654697356620185699029065385588038236017746080607402340358710986877775557951539662336723096304885989311353522955677575761691243143763614300009880511943277526518230696899388095380356529318259325904074346281982853989421398101448120262845577624759986287324180539980973708476145539797349668656827997475207935114528332602631072417747029174042556343756742961070697257119801420823234062169414388259920423395233902420116707785582329054028825215225258669297408836926096156929531680048296102100993624412697397988899081412060821010331574176055894110502888406260605035359736270936675365132092426036116791805145555615765005061982605910406192302725084096967887757185220822311625133160570862305123479948036353513580237249223074639245175222407109434291816874116447597313219244759863294149475331433600721784660824876696630215819161803112872562299877864784016568395569983954785585068988617822282602395635631620840568900656497639289360624968381169954018356881771169038303538196088583393141153809504623405738604444197509795439624863948506202297488125387708901545269347565528760986790347682168186435355479847296022791732635592752507895106472638986278079601994335822701409681605819780012769251287007111089217206899438166386534746163496780937632200817634711207849552932982619482192307820065159362815337847526975876349420346428278947991692906852222977563959583283838012306981514524195306811629321907251232626515672024283186286931170886887110875856075686845879139534048447748551390897730058137668334957874377147907933113977661294794598018670887597174469751111638811357467635021839461776097467635471942226742485796881767155094942751041306844414950012332718746865652412719571723193831200156909052468280803623660276435699831303080125163997319085841428175207716203937616495306726358425440098638134386342401184588009826062715247578378194884418864409311096918668862885714731011563771932049832506992520799604882417525567583097917603257613497477628125156346156600647925280773615976096456271949769512942138858415312270269598930815952779380512459757104730260608718109758114747917981403976485333151253845082229497864286227272973284255903332167333875055641627873497883902280220833250388299534179158948036189467935653751547657287933687681902697421560355394944138593533686063117377349555536517732444794934189645540180996204869124299586976061936556361363397092015771023893599047456133336360596012233502013480402170755215237393952571876663000649188533673974488936824493187662324812314914962254223028275399767296923658765149840287870129579583501345373387768392951439327624871915340753267574093545437615241614298816612575148522984855605572476295185925564299057023824410741197527126368096398547828827376755685397632578564711658540267435699128757116583695565073311199923086384890421893744492368446591021131217031598585308394117225682892804241356340063751086892761376054786864158116455073557622423148140173183882904699711116799346240104733390593123826341043025355360508403100111209256282526359398509446945426038642815815278993720411492789298087949542720749328656142540388963159920580200129143830944448501723162641044102605562189081091845157790044222310073782304177562917574082711926211473149950889409741450909904664996846969126191610776166238939811275105405907178684967865747241232184445566242727137299921779232420370226270047437195301133153280465958832316273628311727280831958652073033244585603801384402444306575577054935244459897589862663570114499615140088640734178504188328839211588957227275189174934577134466324028100136825750364233468073668775269495542699492004407600582422761180849420477766990016569787467782731487927908623064079516432750189578815274223411245150851054925817333477736975084532622137833512599900978892382431665712127509302659646490699176164497448429104845489100587454012887605629316186577040273659907510204727478727553228045128712941660523254817268415579556944159118813657807901414786372155818590837271778462603789901731039421131214396879793855070713458699649540283967663562785350427829400463647666369511419039979774694923265779679881750635103139089851807324524190490320732286653350730936092931640806063827014152412484953994244162385167116991272827072975740623557280355613696118599534528738710962794148780655860807966849170166835403848616793773048982788534584345334460803448810404970340788845903482951869648911451505215636118132078903114603214254514038754052758993391445160537705963037337681436764721647348995817827149019841094477911896918386361617778313435510713398970967656303463270789600494899686979983017518713307297850034026050509582217731743681084633753477505391065059992507438010521441829578369657515182371952931875946474704603597480648445277049705975931678281206021743203585441865683877653735073650143238005028179484427493778091979419436859556191119384938549229508677516691756900624838173514955400727915420555137037742735037284810353154451185514057101433719401587987279339401799118738028547684342485365138995077984024358698798312183430979182346657377940591603958500798230999834161696114606557573075949142466962070079328825118953632692733568786680705694868008738007116094223435188398555647775580138731125867292163347208732079311879969035426624687559472031957460733294277915259029071758385705426082240741385404761612509818845904724983574016408502813212651973221351794391752337222627319112646614997492186239858354901187343521727994530348345954837683711432467162661308900200384168599419042276644355841006501228627042663067536759454660600236948685747991775871337057679201898795000885478958442682958707786325814985458624789833895727559062605040259014309804058689646405121929119047903976017565324314191889573995555130299916903386588803363476993526450140141880342536495420444535814027705186609741010357852946110283718038022862254552783014108118207674383745297584857525722613989063120710817995539920138721269718377139074549763624500501512639977729519734667195216433505485474639785252592072440295317811689625251292750908875730191666244319877566946633860995528410928241093574168993737302153026232546398009457745775699453747900256180933253252950162975400067204872854186188130516683681806634609917248253614462636484161778342246220158237117530107809099678485493126772065442826820570640988010158679731221177353050143343615901112225085222448588319128877220033755972142901489655751044166576917168616175483173441701837812690604469561130208863705103255472742619820745773619312656255991924946439282316177699203275836826294695386662834012753811683568328508451198194519657894983810404442414766802585649159220099953532831176750795966980232062524612183317770506112600465445880467185372709268139541588268429807082867757098414983558995398711196039401428693895250222096721154293302862908839916462548772563776584172545818682626357466528401706378645743740318065956527213379058118295524272864612770113506377717781160925258436877738434893499100353980953268591633607868288442385773665932236823568093518596544587016261982835551025890752034896659842932399807010145410015067261701100329423701677266850285756638491617558566205084510899745769231054593222117322142085675690941562881436963329479167315072247320812199970360209645648071884230008865426972302838186361475788479827068252566578843107124906985529764382718661985078987708302343253495924619777939829324602054939709788023531594795854752973179936583915728573267808881250612247052087711107040458184970205673674407089437458210222387551619308062854901133133061338852365289296922745028542948120874219789546994352221054214823801730024896855856085044322930416157893255780945484267427768213636791073535654196855369725685744875473908700111130673872577749821893178272854144861402093849885648246788669850016622340494596482733898953052479326287396202864000989656735686238142507195045323164494517693699644049213108715252316439191222767980996247318683825726771925865285952465769015057588453063526023459372570991447796943928080917345417955406999270963467563268116155613155116695666866169296585319153589142763694315283144491983157595679006916440727016641491786634344376033043986562378545145726847343468716361505237844678710036557964233606550610225565018790835192441819179213124365051488050957959591965140654022436191565375283269340045474342333818934330529481759895094963268582617711380412489614933011699761223508394540416338481482154698167548522576699787877374562704179924904048760946651748724562682985973567618288999487797153256156148335239166929533720395805340756823232236143467050150843145679547213181297184393759478108300630160775255887486092203224600573937136318994995897249330753568687468844541441696189231644825846335927106963482257887251224285305096347576342544535981150722643923541151299542080135873319170074539417314133933650994729859166597037035786315025414800822443722394056726925005396858579887548522815255175526976916523082887901946271991057187958032515866814196805838585101986382567291490198194873984259069307224220529447697201420388457449326739294564238551153456395744386795599724115280271857383866464561641954624032551226365602960756599784081362174454166129833996319564526308387933068168443165318175180001920417098095914045266578797248706235885837670084035848462542903315047045878772922316841016560950998975851423297802751123962177668161439871105139124741717316979185065954430821389350640695636544945442965181722252283911320470513892430906618503048777882942610454870793770830134138641080763282688580930341707097167365356008735967219869527510769761596639903001419597144434700942787602471142283053256374717429600364485602558538038236059877898866731548811050541195046353759355631828593905505895015287139875258295652506895319319778302430634471860848083197791098219956731529946701188700084730968335810466401244638386421506152817128479374882935678966526599616618052536530744964370156636166189404882586337096501220118285383545865724519318791175322215260118687626713235326488141990347697463249008358100566850922700955441121339310194280163856421647158415256120135556036871625615609132423757603552746172293741681984269155211401779037343298018537924022363655344511471421475536475511029453839957904523534665689460225514776621930144356906213021480899858944806118164082785448547414425681629471896352492350574064006467349754610965757975029641162253168097181791277289923105935216510669877567292404863648532176511347368409655402880466846614771686893855246206488990176538622203221621618725328378867835339430232416431265172882969019341970031637485464917021013881276049886286130499418744613971762397270973777322588306749926956744731997813867598361709821694821887020470234373297331610190237407000122265156561194026271413275897979283976847353810135440053162807141051753670817037684523373122704125231263803181385148426630410774709900342514948810644893726781154174503938660366653665459742181348279754887308155452973716824625048640990016238410769673730481766025246139598294146973817643500208655044803385303221127579885165231516548559505461177556938425454962853562747078167863977323600519870174939105593972154032250626882535551548026326460975573104574199155075785490839009309235737939447695347548208127412336422108057865805279999457664707982744665783210591220280829395529693935649096624555909594482020584313932203815796652012656777836077153573775782912035334977549773905011306094296894552118287102222943873426839470337909034655147804383581540004621267231088828991565015539891662028605118523568537008606830190688060065611127641662618857248969611624711019832312153618174628470544346617002818396365340304421366030162929216168515114860395981134859943753214133634887701228884707012526875653135888100064477454204104769883990400330784039803606286026876614974376147186064803102458580639023885436559450832757317895251937783376122195881831065198904827572894033526280484677291608753652158319930582350854625111068750562443570753540658078945831405270249755692673888595910282701958490935654729905134461710551780061592040145577083419484368773053374736691074854433844113151772837783218804123549755510321458809357088776399424742579429608019004178647002445048280111566698868571450870703596522888677078030737591647786556240801368855049293962901525730023336867319210869693149911928832644914784235297628643404351630682225160426065406717232245264730949152848630965474573007053264873378553611344920050573387537078706128023782053050522034874272532971363366278422959031929332533474337352509643286826418328450714618314027515436293037646933183524026728457384649895590554219063157662900709934955169822327205200700034369971941657269745308465292733583961636930318889445683580878184776743574503719794223507210357789688008158203316691005211374146935487094333429687885889611261785579538617407381529132466620547302388502027012201948090174344250113574332555527977534289702352423417205518519792859458385196122941348954811192766652065252819323923906790072693082535840736801937665746194645363106717395597529072339254694170802545546128461461272864189643698127242327403512659653764993020689148395832639669624186159129460028787676776230371574627053941108245730190226326689207937980976095848457509308258382300803484497796001641747520647847052525742453606487866645639518631678096395579857416401810453970238524451484924166894898585941823631543677642876354446472102326964410431359824586628724598462856067556901042274956621821569896758791285648975682867179117605715360437702475155872320754682882577400914394430812674856389444455766416262292344941739997339649227040412833102251876316979518830143072940042142613676984237860710754916573198148421706579613794214204864149277130954518578260690496573329637633477079069788991615002453101466694256126182210908733847220303278064865819004541192066289339339821670673987468107572154736902579741185664309605314490371726938373161643593535541990509779491658079337560925710324160042205163610906797895556156079858286360164064435968809439050374973161094452211688109304273747166375212076801874038256398228058777469723643378547894259296157333658577732113244544049862718862408589599021120213736171990780412116303602402991781205223921324352893928519827277686178357547303892112323231826985952306383288256468706202415284953955834607526400059753728848460313375641550995273447747287910613828262552391545644451454410618498865101745633972733952499631379592096458794383392430715560818241478438612657410216118596531354436614158428877896927830719064951003646836235125746885256375190229839756152178704068443886235322820570086671775107674142523917540076057635593585110314486969819252848982323854430756017184501065937762941668474713580733364205828218944608941204678750487727863690571426665681725611085584256280500390807595978716665810723782657108068011687900837988971283277670862233213428019088034939058649452405583942291488995527081040754102941152835047764753125660581267662263475739520140610960912823013361593465574645666758801179060768973972089693666172495289959731038209601524587197526912621890294921525756434507722204665471917192471641595452654173555828226855807939145583822556388572972274621978911976053007836703926430629004944580284554520097173142419068222698633482357298438421679044410150650052585348575674452534746886666196259901935850366144987030441031359002716343153298630836139106361516143095490240529760157684166133209369186763009059163656222454657081656925983110041035651027666886868422202532556503736369022542292757646814587116712897203886012455440893996986526629250965133307197961161579493538511085609088380594990174936579519471703148444415477645452202156401439490654382763313166202215389145066477581422680630533742588978361862102350356610310974548879089597846653440430312774680172321854506178880913408713362236976616157219206993326919249066922451834784484983310781690232733718851365327445480774649089197226187036066084014430509865126850755073304016492607130291030429127629530956187589420715961436343541379012224582160927831062680466304903153223142146797843925666947502735217540123340687858005201751922108015117827907286972629122606770789102383158106917073970868342090571406054800550289232625266211477102127383304343267926396597855341988645665314726898670186114790669661420416447574715832930006578001895479267248430639823597764831932416801174010000697368251050098396389398721061205055256471969924170647724057311687227584800958217040556675245897770291433784648800088795037967686400176217526023156991053933157951861442308155361858784377503954379834709981654372650944053823298850537763670460196525485052408330027894256522042330692665148390608532533602714192395654951004344154418817331735727361364172460945618384707234450545522306376722447790390947855891468367115609022788083446934805014369956434919255872478606408514994538065196189514553638238650027041402448145185931976878363521163658581476507671948536507364455984922243810508316317187216439054612925945707399224343127870426983108691225469275362600884213764521806591693241628828539627176851729298982575419744393779230082489628725562108119467198985212120628218599979470124426208194130392087297439508446294134778459035384092727365222471724578152252858923714735778320725160928295049526035334259305275387918576879696444638020638574427214918784971008636093327211316336370304255869272466712677589819974845060035211583968593103423448230650340704278830412190506656795442559109096750619604619710791643613770238981743842338906391280392147238324232401427494754622674376823021038707437719015672491901335041705188790079189312599022437064736937824486172625349715582595923800592779861906211067162095745969658367119932459656920887900521760297263437701659264701879138541692856655147689125429780603749725373126106146812270475390401596966753522103292517522401989228372611627645765944329115526791512668098684734042105117890697466564385867024999105671440292454252879706962899869219492951462697917862366451328445300554459673583875374181333048367252852182666776294479964286106462869284106951867615932414809824902436808921835362731478984400874112953982561052843846276545469241471312526449459913979161839993564477056986211499254850078213626118758451502318467103109969137523179734081948229019493633512813369823502927169130989679597697623630099228317560916859054948524945010652527525955636128528910010342472143154943937380056185917025553118181535507437960371247572736252670794749498793514047023634148108831903003535151009490033865789466973092555796562771359695175926026694466090853239277307484930491868020693732244108568733689804456020695871907449092995004016230183518167058383729044993772563399558410575480394961683669081006101681864825539820952662215105875848747148131071660105603067234401707395978697036540859531854909034625911389523814408760409266026022742632177235407026423014517734067395920772197507608388724671949999269444523646270466086413161039633500430102618839709957544734994373070063389264286723711619580133736823900710198855149781933931851330950776318141711022011425644762185689199673908745698645447547882624213525664258852965834577584611208589259657009876527282058718489297405086146980104690037186749687279033064029762178590701902665421533119822341798646126252861155238122399837430496353263858127129176604057021851499858438313727491650309020269569645806665234075207319605083811280742189909200532800658159487956192938999801206307654660376501852300763073746457691927810865290330586722619331267977404356760368596663202360571130554573008386693812542608972867378045896405725110425894787442520850158533734298450477162638144902968156528375647844930165890638940281039999107701101406204885954007872743643778879575247615826157655026206666597087984828196476570805185220272338566444542273428435045691185042998274660775338248690338639543342431072212251637450681869618336844836154825395074115934838126437078698970423050998272894171487749276789078188384965933202902067834506281268347513763245600332441431359510332560507271462692316332695785106349407093730243860028086373802444328295129134446551526796389571568123407831330259110584629642263992883546046655344637782843671106915017208199307189164369831604326087509103198967112356145370112406792297714061545357292328687587960546270885422683459213769239230494339413801151467650153179004502690337307786790607643359469930755143698877353684318632882989207334730334180963341181072033776057078683854050386146374966591464649018019450952117145090606329544076911358545167913676972087426033612924008120623595523052354878591521090887825734708246118101861669461421643900745350512797245478844103841310549490388905548411142612484443508713484780117224135190585764157786871018920979863719015634355249348299466658026035005119139358920262137575671073465339914062188610126428527701835380257444850980501614392064619733305556263268408503496322822038263507095131024061967331120194229654172376112417461737608636303640556760443287749779340621494292720880337837560469336067425302695956922261744957287652516037004261072584775590295985026263475087941955456902943266688925546066754676278612169775918709977334246495079123355420911866658432425388176552171945430745909828485069044512124696488798136843596525306186391234935037725253322918842036832014273825960140819257868524296183402106656462696571070094975434442793999508882505298788420346158807789643379103008657592005779855587079235228558627394489664823994292072855431836340466885859464588345500404708514032721105821967349168402282201282409483879524961825052774257212280683927815337615571433010841795681714186156414926163325276943147747561775499655213531520549006541954796412615233693092009328615079349035343124312891007083769677967341647551992309271203276157897692678950704116724866756417854730550842241510402649590396928376190025914530636187951980730448256337680963073446502269783329373888527191163397767424594266165583184208703195337948543075807542861752248109465269810113065493386996095469483017800148303575814329602245097635909899620859736108369982097403910246508595765575422670345786071385628167203963434480400892475723393539733716529715594811285354950543489515649781556242683100803777957064179357553264775987146451431746951916577286990473758583411413738205841890095539640857686197291948934485131869925368875501156276546882093681707645877914202552452985478816741522209838547616247943305321303935341715635544518052619676544538366982792711682546210756742362128492918835561706143783832869341614161692552469590344473922105317678325205257991967376896936938122753006060094094234308826584565644305624860448942676838915181511672731037726740846263535248346883209552756700131590974281946200064899204773276231250261877988042291145776601803071634406290867734966023334231241900802008136987122887090780531189560544235995880437541433803229241255007734175019354981956383375666315837762892245287601915713201756370146707494086045233324285323392325207938590854121307496570396401165044042937890986809403645629918927236442482050312402425270268147164175353946466987114127353277323408196860785019585596353110172717429974446318151478992831780670190340721576753109063406853535969530159826221334695565226589801576136996803707270207561044662956645384587851492100733975040601544536293088017255175077521668674342379298842118625025737256946945903932206705434814917602347954147125319230311936128953974398545726323535365412067424284814534138118880905853511058876620605310110348652850025964893983855470901735194699506538335319402102395701845666374115384381195952661004027488147565969005349383474624268542855147582659722650844666983142484382652923992469987936154463344465398769939752368580675382871116288074379434616379919379325476169974970559210503682434555608639683113375712935266078939789015422118054234035757723465330728827738904210771273848441221113575591540973296034679490751403064122682250301571416058044915829314272784177397138221600806716498132694330853217678495299254640212390261610523238642886144138095985877487187162516765219014032365011426181959483806892204875901635831390905366147132464331196190440522978501248893308219752216043163391021297766866602576303163977075842026400798365944991821165658486522775962869330877040201713568676322359827814833509187336874711527962083759356837656569255630686927644847417264060946846594426710539242864236196237708944223720769884909730898897966858901544122135322555173710006800551769374772534853712892164745592939324805945281177175568162489179505339260574518428199634473644682832746361903516711636319799285481533089950375294986044018726777008969237436835277629988028049758917636247347121996627520984680746012311033951574399498692903364873344040687916877791804683817974960193306486677854310497087638505252747900934594286759103393677780370254388296085738848544812899163471436609291165488099182593420592260757099221257219232925990685208253051024640505467825239803609823632941978773099193554009203352360928734071127553312756254064723322738748356693160276299755020189416789537682080285974967489958751873614580914172657431468648616966105756704038147573357574554315085628840147021399694002357917322475400374217744076266800468046748034824238476636276546759856478273254820778543737198598223312396838195744771558572389603277484495053014476166544663433013673835234784351006273933644860651043141116783011985998530344506000305134902786299087294782107845621121959585864330495081685538013708063156947350216308500846192107095719678064402243282871928760920519783011169533856125243872143171224086496464018794986101294840814730109282420332010643669822564767997014686811792286438521145217888412559585786472264048481621017881405996177661749972999954168680821563962254716712716015928966696975267295663926920535701633562209379189963207487128111330488699024257592503765282519813898155183281454223703543466957285214035800326632314780718976944004255631899200066043536328888132019749986297201420122612309444693942486849184784989280772425833576630267588218917087702600755534790117471725366503245191395326610974172394514239689681953293279577129496348198289860397581499530238026440856700169566808779289620687420002755048302606167164587261507128058902005865568881149063526202659799009811077308547215502207306705141588987286185621435039135456741992725978392279847971491234608734688834118125273457392326701765521656029654931850530327695664059922411688177161193603947379725917704059432141964922074631741111832096855849880316316243126981279983360069097966530009882965445430372077003295128644200196642480143561069535893999480242001700986060166821784366527370961353935567955847096911938793128158516274609582758841091698495937632274788831059651542047435493047286372211316771226068354624181658771539932069743282598129603220157427630112695564304332881755416547482639138724086275605321776722806280372081597920411496984885283714621067268451096510810887959768785475764372420222191704398130614565708758402433657602152128231746167665794835339834677874141914186538056969774098063542831114773107923645456481753051719521357895541339652974746842063909574631767028569646504626504776934226893299196233993392030882473328120349057932123220958860385583718913410058410643731285957723827355051980902557992232278304265476499369220892383026542271637822160386840144417039993040117267724421806710485245228132524532133075568625471649601018790852703633327020501553413777153416861457374152129559167420462614398207513924310405778381535717693788676557761561264240040692580239967356546709162983427383499969674975613181946677497285605014035615174004849772743931172019126732032909052276648733197246710768989459874535856884179773922638601268605331489799480882248160379784163257360681869674541854147839129339530517496294206781273191029674636187505195302151692423082588397844914188492547781129101817371866285801725339821873433122573476406035930152982019253659386530899195555320705929301741052786164396283632825758460970766045776733525165053759776159913912709112839597085636136037559604102257424355734002583800654901604527048309137762183578224863652020903963842510038988567082672531973843738179935500193923318258716948171189578541755935348947952347739365351336688879500928099196650401227035733213757505983241897190649539455334847584227860203863601738739437215418322552192058054288769841841951530316784335597979720811505596769941483652759955421191386577490411721996275865218426428135748574031030441389294398887660809333852574237755782741708173337013000412622599187323785176011101526542428836586654937395520187638169836607472543735949020916477872999723451572503834191191654251157042371147766475578800394054416639077805408948711545164938194196257581059462034545330231762053152567857388591581527693760682605725633875480472021746419768308822842337440466215474229315222758421011235999239112994084002791967188113364060687766299503480849170733625346804370775875562053343091781657801061011816519261125430795982434628518837693499937121607775849259129894298547984573410556790841004703001742724985282493174473366972004812937972327413554261982537574712207923999044543520667461130994777500573984854899843134806104783604371052557914830021763293101012329769356026211637967412218305006743806962889884116201764382120506885540023853332176847123149052150256869093828982564059107092253340571144558954565399173792654725193551185462356992790756063779512011292558834373110545971338655536362103020140442705727937790266263222100178031077390470802307316556459015963896883675204057967844817446401842602623389119291319351100265189048350245747760417011717981931373207776346316241597889572874962208379024792871086964496969447126397468103781764361242304969297173256355134112324540315974960870006325430434124380159905049648279172821578005827745211112237050647333141794664788092303821775575487118261977245333305440157932216810463085723750879221708634819988959480607531327104054431014777412287648831034585041528063841960734906906373385795976871090378856493387290829519366416781286355030012288110387437098310471753939884015538190448497491115468662181492435878621155349843216588417363552924639403257100488890444032581382262613437205403839229888387082996426907756990906369341186501034014313956049950504836936796901918958382857728241958288770846238490210709936293446476122077389675439488125437482734313365256043983645788005700026262262480955733488293218565117904431978612942929275431470382924389276930441344853685157419044894431665214713554691143243485733116527100845485810926895448489246678234434517725962034230180344701508393957913909203454404768284792621026757624618323368647719585724579257396347092512977644929300536361520012141064416281812465972149230517551963106845681938073513508844265751154724455679818610026833240115488562201871287598488752931001114797234170673149231013731943050199066660309806039478889109827915129621506190741372066036722732551309041577351886569568446730921526508409664329438370420462339349171730846232889700379507688604879009167712127477367789272639355573815927052611042619601861786966251302513967446792085946233254317207507817354048287596929134352892729707134448112897762332876572798586527769680181942558656256296168779450009279684068959987579643892595543191163132908977807564089157567837256422117649124955768016751085071376403908195941198301572984551204249666186029228711407223960836700072841086738048193841904080509112303073597406909827911361115281141807716152202193466279520631985826454325765581426188192257940411770520203666423013937468831788298406401658701740647444651010931558039882024628868384521551338174626526873781338412176297826649128365335224509645449515067006076813162382836756100924977170183483681622356806887719240811238395493748542727092803103074796573305765459708006922098132897672397564085131506360936397264008636365221275818024626404631279794116724172526743461224617163762035714515045323685637662043772400932665133944792527271829399868444506382496357818357182534583345340019832074104750672991379977527788072063822125735928025118565257748836956785071190955765658342546323708153371850598069311826731587163785296566480389940087920060770426034609781141705768943158263178392720510559974435077940590095996876439969936958846145185673380298714936504161171835447277421545544181154132546525909390947178070475955519086250227542501722709713046535655227277566338119554343348389885785503875297000253099101831232509476613967746836174722175587523347686818874689321184636815635722003857404123159330537401768239004973688904439035113968992076413351849807838977680586285085018973959900698242477753934827465030263194601663251205758926956955239135157312322474737585851619534502715710677743684158488034185359734634721580100986083750633251437810742780233616376136607702473820456419388012232535240571341746376110827882242096711944288394889289537277719639459571048533606382306207651146555221223504972467792672548055546319815812596747436196829080271569895861217169116253117094785342920875010075891214925015305098371870644526132868745485099730169336112240949011668629487773667342724237534082658203387737137495796610396102019074600117096907780397576142530773430777799341226522462468380487289388149261949710114411807768502181206261605094608302013935566930254970520805888805615063037127754907936277283764878994043491275310141288279951728886588824586255607157629245096506013716412818115707462204556260154868538454032270275852895394888017946570557260079106169027489268610510723610559601560761490584224133642018865318568270532768716496685906064684855748831002382925885867258873115314048006572248969852952473784839628711323387222653081922803128576428684868460166500371949723724413039851057473753147576445258938386722175380455385707092789578485733981491900697096482020688808869714391195427760261548894559773302075100996669510768579920948882318388194657610413365109572291267583693929475683690795695033929020529594372760701061711000221699702480595890772384746073192503949025738222503195824777576375691313841126311598390111306793316573670919131663840497433096790953239270645605224165694544023237238139004637153260695895586610702777719583354861639630107293351590479455483461542771980381134971926635525029987385619311901289653172471542947875913763210515073452929351735725911301932813255353716276512802470089110861697048261609191410354102751318787971733334627935616905292058428873477872694743072725846685805947613186147022922106076415153153770060222971163702672091442687782214016727667693642175307050021283308866632642966048787828473008804727043968555447086952214352459220555972431763440536185362426282595308866757830892784836979732525842299573907824227176268087118977804453752210176768929774731257730411422123174445083899373147437489048931698704866270975167760182009727377980394934819501323268748711707539257481233434019640008139154714045692008255407954490170455414393044648100269871754843442298982483898399566063205702358751290295466359117470389495571227581525361432267982417777915414965159064481905973474060680572619891593333728558747590685386511255601332570381708253980379852634629022871319462120535482043916820718474470780333672243764980763544963983074356376327049491613996824301011228077271563950704105770725926312331417420320728472297320829179070253169820920373231423329083824423999075581204014482076966720182068595572469963387290061087922899569598503254882792958012656532440869130728254982832075925767695915950483703007792951402896697752693737117536430800254882435826018012154250885379691104162511814352353785553688062413910589259218610473962381554006870917154215509177696997638605645236696841824857211178271932067328059375489649319173180310091162943824263093031040482826612055877212602978468658041425769169224903005253094959079649228336207300073624824345832596925332021420419583897589551268643856726601782217112583517904693889798973022315639507955209081022439693855646013025320164186496402073679213443631873488263136617260637175965926686373509698378626956582125061990523471652994859036390979451758840520033326635401191176591451313011265541240707716036814770059626095961989692083846732237129622129829652293584430133946204930953830094975655252374688270878675477948231524308459881605009401452111762474153298463270715341060988628805532193745721426508860013451731898972542257696695355233903978022122829703302529955388956617413974738020870145098085192538820230008015877619681462810198071549011267609989918044223506060106784337917144428159487302887577962324454424015096185907404407290739114417317169006995024488588635947896563949289230084941669936229174302783970948688961141461198300088768551737136109549893412366330462909579441631532587696782136101186849547656973652627386045105371785057144726924117854579641597260510027629373884994790592463141757518181377710010683900417653163861749986656212521628110250301442176226903707201946696476424879155558998869902878584231006715622678095473177226509712521603750838468055502705435991015684392118179329693480344389310973787279719842257209368416605384971242726231736093525278583624931410841903784038364505613179193974729449997516090292020110520595214353176037136061705245252626591533245964696188366502304928173866100820222729748514799397963250125212501224042653680660087503011633666997407712712329460105016367712119313136932873105641144817474309157845919239190729665490974470489868531009661294348546058341255154339477365437228688790823446083084643611047652656418138307764949958543571982742199732728479789856882295028982345343207401501623509764331962250436578571481176002101760747384124136059424439152886186566899931058047245718283181196003993572317115032550949034704484077111143032032183363258377804168945997069090376473460504222893305693205406346873180759286804866067383552912924227965993189427208375453415059578395484299453875813593850922132062605725997042466175504447175696202934894910264331075898810823071916144458893197463108269195608096994752788933451706307849884748854406565056778376436954848891024467635050595564297175782312864416350912923570868845576632862401794159039577883316764860790874001282933021469772956388677799232857927532155407397850133843395671771879045176295631256572358070700761312252736846862781160944538114461700370480658168747804735135369392853453005148098650983639825330552931421382628414292325129687825766529636165268051696921881708685058805493449295720190801906075647443100105602740212894189344471331754116883965622382210431378645844108523668929610995042336479470603649748781372930814824788770081116200087117517025048925565903484095473711297603206250755733877466105969826092302415997152622556707599748640823714222556926657060224180783672770447144979644450932782996249421696533510537177641676786159309681503355122935253975727444971309045464593218391261202182408582976144020564378855365152299117933287771929116541700475700193115627333274018240773866289901877986631738148070786939784918360072525466603593838370412905955289532287705712410020127654151453294682328957897833089565508939067784863988619087252682003127735018449029875214185699474789523663747782130948603902951706467955408724254538400338446669188095307068621708558877802642312846024405618445725421180444281696525677596867537739305887394295390948723912058957828064411283344691655034667687498705005725419951517698957700353523242154463179842227388435374723738753115954020697699970800200743348225963838184380447562082678796233538867678463101132144949519381341317200366056711104852206389405660344361240259122895010437628919599034073004616083267523315351046338965664115713726153145969457139107269618764726611069754350490303348044359350676226888147713096765978604199357268601884512337000068824080306411891723719405764231396016559193889365161093718550591257147538541846522181598365024628919145069144086407534300439711662631904852013740019443092611399545612381305621761033275626781510685444061510714471638584963121892188781720509731661677955261641798498265506365908152657378251306368334131090586723472274424630659156917598678615859965567460699003825625296187020081592453049037674543345194711950628169493677215483834012900801693769058410079161897143542990244063963938783453349340680080553911423247631340299264142983689842977371795324166956570064075318916570691247772735511046480627414232239350007971914781537985642970944965738920316920926842709502166957248207451243455202034631085159177590719883562831999572209627480981846972128825730222434939651516825328050646165494302243641161159886453656796138712815147632483506405180997992727258621963951930599174152609857516216283357794319634188993104482256640600672281459539828704880095540114293443424854140391041686750586353222364536442828884582269330595565353144392801049071577491869832170535782683404974239244398583265943751979531608503064706841987432735836006074652533420561873655359655853803226766891658094474052036506074851457525905557706074627082363005673846080154647298146957065664528635711235410747820589580823796102200502889615047417519490414886650021861610948260107480341506862820533159879135849830042500484513253521623076397396696099271460215045307497291308724455977344846376112318681925931076950017492678589277279692917403868643294087400565228498296250028297522272732695570128131122021302089584809618819880587799673810850212320783363650399325889405874704812355860677924193847041930411933165349213627718309683518367166738806314330826623396177014519023446051144574326837527516242802661360573952010277023188225829940783133197027512384454981735123344635931004669422149821633920023919706285574658254241548569957119146994639627953438991166091247661378321482871554652939317519746096069009543434304852576797339107972335047077582649245227822042009728353003892358807302470012806886016252661436357703695938170494199402507288337247061516753973199357411950442497271122388505397691433652051070218279635622995170554714795130775394208936813270978384293538976697610007772549599594368656098096293764644179418414513513764986636302978628958084212844179724893285385096542319900482694939762902256206896615125340198985263466362728381631521736203312740574315510998855764613599905700942913924415765827061264494748790735473113037068644862143516073541215677570852285513936118259213400128660471415419131981960134752305695309686812459280913252606857200517035395437874204768725916733801168100559848567084050710263356132494840092507118389611929593857214148266335713826867083663679206062544316899411507627021021789407211368187120442202541809558913538700378180652583001042646944987639072387478524422333154956581656024091820940485440049979476988947073360743324308033675403257783475571364892611289467216651850113079497427376707558343091768980640736449055492270938295641635474202446879598055010829527856262592432327204854767107363999575752901302076883288184838770316557418649709319414925238463969039613259178457915043985180227205397691199936678673706945083584938440684697295724757517499467423914765629922772630632954733954636240367428138069841458408308295752502400556048193619281222284491717930300075626394373910110288591111721043760885650390551554617123916946260498371373896573919509101553146032487287733714981453329173666334670996600023087508584512254892742599348142798945069568784750658281309983800108277871113656068339125232425779450345635624259444917982096607502682142653973171232758950084687464324795934522446085640912308838665562482847567905867536949615276183490926544484554410634935543640135082212535617881043367443577696935688249611527118586291769726070772151552105652827188045757182093598595474076306025217327933015371128102715860114866375264862241336167880501710797226509063853645561918738201091607474395360660081384758080829977961808789210038854653225296067732267057348077148907705357191688059752046048145939344591383458511854388583411283465598036443700125761393841627375176358610678450921608846166704422599806393388467464698016315523822614737756462631652185508372648660944588905917442451091261261803506657988694579404226000857970579485963947349791386488210121338690957569745922949389739433304101665176218032185570535545124498540581405367739241388340959955741177570262497262655045580049159002465986084305351666584716572464268619024370007398871813468377855669864864076204868067167456961430958880571246306554652788925533166543878369821762177931646284402839555637783841889165864926650328050347979363299267331214336564392362319161614721257785591182324159377054223519842603269366518468256106094017599946863628122554638765437455473916470353502866267772706710277295161290047614014601490849977353090404018408518113079243045116577258930665198502810356488068910462940217443683255523495060246247677153801825051415583768778498985712970581995783095875765637699722456303168451474512735071115235375243484059925500657778877112770304235571509858063070713625862169674378625266913763774954964650116915650358364584612375509129340165362832667523864353402339476560869617766123328359500281177373379407886337912622679794771415585673432870825075763950458698484608116220740914295358249467151488110730911928189860627989029804964613123873634474761104417709299530046732608674386497029746012810976164795179236954305602811103956778530162240464281704550323722717772850893205326846166289897252588798342051561147102184119800157537468330611874432951604572604396040689984689040949433333135599892780591164647709069471533399755744090971541970409900058309748585157983657456509143751637430108505657354682436200785503602445686962439930895325378340947945262838069790629374295312872199486191270791725169041149006869542201820606617613129671926380712186602686378462445712953093238369212931685879268418789706498375057557454630387499867367574236104619338227016747482055372706214184676115773334616890326476751515309452663917041862209437278615901637503077771774393112530767351318918683935153192583855671774115208327624619196477124800050632758797801309252299362249759804649981505039495088632416226799201389739371213632714196887398780651385262999462099039530779345977211254322896964642454559351104381905598188711657913576683773027056130731408139919160638013797430057832794041889175591760940114460261947837381497551154170219558920418017050038744959145383401228250188818930759133877134497068256735620235425008450087625010657105804727153289737731591537867942289333663787932740214697832494687955959316735723336339138249480280099099025070984679679083879411627106016386877939510132224606599863083575020182736978920770055768287341883619750457704028022854834371240236328842622306865361547415504494991014690759076850897613464114321274954638209271730147082500411026958089488119605629008639108985742501856274032021002323068893227314765610149464140049853381360355814808329040734887365952815114671213980335923430863997823674277623257931959520247786391022631651697446843230529947779069086098281186672648677559944255702467815467775135019233480757566951813986346635626897316403785727657510986965652877760876913504110118501123519305211829986978014594658522485056529510656950553136193806698519366112549999067877751534526297662090514150752068013382525723204689479141281866813925441697643036073366791538057658944930090481585129374399180871323950257360834228870130512356456576750262837112636123069711060881021637943242568608470776325597720030172713749897543312882774276051803440015483960425740640656837371218768551220392100193514446487499835279107055436220808696144700248283566970474778542941237789958802434788052322464489251185210338026457556413865521396837758850040811720820253098281311620974754613777362533552569686346132136046660862837640550520441567618052946990362305930853621292789895496403461860305315525232260092515733910575258160416338056486189298407150445479094460237521948462199289239701711923562573994440504518690632201045804159279939235181588576582695357006396899822470688656310864364139781078313641193954946956535287741255808905931824810971387682564001757156878942234149493982453031696927437298234314623523237998309577445529943875967517783626124664547894148106904941670538115741927747893007460941257717281860374960781089498512583053686649499210405557181994339769631219302978407039939360483125606566601837455196320627409022463136421726276613575113917063934832469110123979294207619299274549352893474515511256363166803512383994298522562525987677277620140928316717188567441014732185393330980559273146904126909774859721361400384961645844080623193577991738699837385030124678781240389504815877650534501790079324836710011034436429828437908270483481091020192902199015949314988466299752734765467901641126014336462894286925504918720572780011314072741080806187677261606852013031282662468414076297355061488710245039532022406493361558955180193950813880870801151258359370299101564298054657391520764858382150813271127974046895720628204961066750493395794973326345116155980476355166224850469401735824629371211230553479715990776517462718732628927565352482822095506356297224889680859669020330428957409362065800400780312984647833378762692934045997293706943304318540426844698725288528238068550008364661682625029954731559549977143360607683288134642545736688112912947258926508903479360830498955670628618153926890487583737951281330238213344375888194887280510379926961783254277714082748426916173726687104158374205753603174541747963974799017100454882164216919782387353173131663129435958705653655720010425461945086539743493726147943331912764592679620827619606040425293637813012045144986467143747544987929614446513371077243790352108127003093487385339182889782500702080478328716020063106143010305388147719691687735431779384165273285142192782390657433719817795470688492427896959026507584775821478960496164905748630142999888236831853220441897893642684857802623998147222742665996960042402188937829954494596384655468278078225526869811293466197404123075494251899887768341315224751188259521373719554887275665673572534066119319784016579047903673865158459969633680611509570950451822926342187461387565323097756684053864146667054907596757745254535045767491929298003319849772728420412622162747297363534744816664797805143410579863017719101496241864212712630885157780135881013183581227287705679021483817004782976918800387244865120535679029092001569757368183914471593435213691132533845465232032353739625142971019658122856445624867240111619226862450553233593661151411609187334395029905690056312765472540788499028603077562006090244967741236706514023493789036328493750594345369917379772490158849449541444467671458821283199277154543183697274152323134013531611685987534275607849058626628970240589610745517495715302116879780459931355219925190675699346031064402217920017329564306171442875121235922245642019573707326195581433876666884423405281850629866894245270287374477413338371578095977319268129353793010903133894397633364530992459675911582882069692337374194889270025845936785011825687661586301129503616964241917826720865398222260922699817031268723192513971554185359243092968763937027178872119414812699739088522416663944629479065995727905357022837387620919335990961870135636971500692454901696313092606768558337390495265431370027253473152129647342866667620742152714732513639405784780809454830713443635376036177218976856071619727716404430076858449573232227478827227177221542292400581196801586193258288485258708214309910555985696567421442285960882741583659803916925432120420656111718888292283786749263490788373493355747017031654775262835012361716469721754430881996426877967409281269722194719753076730725362533287514192228884980034253146864813917449770637412372048320887761607137905900769385462477047444545562302141325515043552433318357987815147746715332176297525124394539434091030792538771172723398268043372668442220057635858129536043179038301682427776450524796481343666138203521068822847266432157161998294236068470545648640437343992949549106765809286780390909783048417737051313635389024311012848382862285585224115376867267142185439540615032668750657377792889728135091291244771156970121215881405934163384568978975340928731178784780992533140230674737286078231347237308576523940994421794942395951624960566039834620390959774003966594569857729066914510522259570834939562150741879396498149869923889501595358444859354867291371192473743148786533483569435828406920203755074992854753225452749403758897650908912038338044620789164166588460982052789659347617028788123711439658577694685168085668159445210751943392992575396802067636444591550733077009992407752167030218889622521601556069277671798461384905672500611215144713735028830399765291985603132051044222511883176199182667818474152487215998369775482899944597147322523306957750231324284247679589637236791850180323360363510870905600251625364540058621671148505730469461698586921946950467340555176851106776475784850274329943438802837083645863023467077003163573530664882540007738856448762811713670511772610638968973547071773220520725384622171813266264422552422086451744335757492561862673411039869734876914625344650340453827604822242275483316099162323024734093987080359689684255926044501163685417758231313209758233746754788844336148755100009672793631569874018563946397909663456310906757505568889150277637255916659748749245141518234109942195058278616967990559451810329766544510454511349349922819485060781375959971278501786014279040563634278891540967110879624407895485499594398980911826670151046778131949880372259989415095158815255743551577574910400827431262049514194647225391487642568083060461355653668594349919377162071119929162314352292649117100851289526709264913505057075343318899200751392781397586766991983840618293996278470786566886743979968012099499973482293196534611866100354624144429636885034565826462443883804566559612688193552242161193665932858525036783401416012968099010333746914685880348246878754435208990970434712090059416018308710413040415029726346795201068501104796212956416392680187893953378478360822532376453520793200643609087943467833682067338627757202409324787928623031440159071984481441396657699694226866147410904781005048826050893484777082139944604106085437382577280607798452205397609998958022997903481366470704452848141351351561000977559298295512861240646550979139540754566801637184739673582232409743914704788688539715187777385973038567624895616494539244947216694280229705939002720878094325573579118462532379284110952086876531502975850891045208184859421989699179747861101237718153682839080647331407176264450079186601897503669032382499465458936481470977855411583797571942509307841708137735187004323500183852543729182017545295714405691889706403049431244494204321525293084028920635367254212406281452167301319663728287360419817676949456792305389206622437612940328451946608968048115194003265763115156752544241447958180254431725731375781765123163359293639572444942676622884700692279946330090161619526433775534480009676550983590039755524753368021621477734027559771094047863003107576794197892836708023337409697241783076935795972536693563453380250066324802871050507557820393405495691202298648040117094089423884517771189271020449428229204204312849558499436567123316179152787313919696253177058493908245912176458025182198420546439911886446583571393073070982431334368862217041672864309345218397395826623632127162787729492935393722611410823308027446252102782911688949865613083689852623777795478098422628951133900126352453294402079038576448893550945766923104323098168403897813994998531110811366816620513686101724848484116864867816062418971199537950425812574163927990660355553065289236173192554227640536843792567884614426858391856096849390214406465198423700144603007674695616758260768060674904741288582478088311812898024087129755933135990564612320836937024245682771223880560119218810423075341487746368341157729896370973297528185542368100893364139056424626858120423751979711486094127253675887510622325149610958751574565177964651766706092201278778016515557237317086925203426158759936588679356625444402051599129715605765676971006548369694676108467939557733907298686946766328687430220119709229604978356617909579419146506518857775324325110362096648908726057575696458694637678862950523302557207511610234449684967413439880222026169302136746097759767261662752427113024449698901323279843296659006010008411999202351330590448137210877185585977533030333307028654464251102061759132891316008084940956637493868910601169370909049893094575879153055821563907662452766944729805272242417070825676507695110638987251922529116687690321206894502285285500660247515855863522955517746740410013132223526384233838126271167114781585658488118137107903396932435548884459235322463020200025837756580534556034443531654580221193807498074661605390761618012815819482737326368376899762283223111887811104984405496665015352937220472014649927049387780625874366904572640396183457253537958426428619293780794003680411828413627914030518838429963779817459370549358722806673667559389944557380916898748136469482400188648562763487745193818490881871422995809264093244723835911358569711078104025733226343536736751265426136519781215282728987987033681485234813163798382041122344436384713957867756248390386394999503522348437785447792931006470530809980378971206440990843881724370979073627965774269075541102229623621371331251256330635483048406348939175290778572796617867575244331224673157524653578305293402733182219946838383241292041046426980588591401020359210980835387910080728013531278288633756375787770845857084444853742794309080801954957641589236589061860884678344441621667086983519909101265095377769317479568365960081339263562982353190368092302493535540795772408374160618702374083433331794574631828082436169663134486392777180000109512826018426192458304217711411457453569724067950229863505293654510042092119950137724023512771969654747510245003351469411504202831409764074302746801790055814954197985242326433746282924155732010754421657125510693646122265969246563460062652125557333025837442662937624082208833606071126912716274611200709099290766532602768523893039251902408580099647637781289336359524743237933068213504003964513798909974967591551637745907873847391833428404555458827112656165162742397619295594116983410869963692816930950777939129206996143238656536491134483360729107655121039046224166032615832997838847457909184659578619713274045055522927206198107546484696437164294531226179745305991194281130230054624576053107429475359888582033602313566385113919882047959983402013321039951660760023199633712116238526895100810427784968791682112111161677159841139065077622896088043464199472964971774062696592474993475268145508206364982541881104401192697106537407370675815583309843584947962713709691093147535800262862979461674998238902697954270440924216455838354063397666618169340352846933307464416605618684515325789353257394825408010253505353453911190064724805549943681886945260170802390370984933504441088558500795465860814573196140928929637490688086644798923321068671511829941269876051386996916206253964072291566518883341993723439241730514633533235374336344713639298583690529060839931139361465778089401391180818548172837206287985605383490260058613818733922785666909179924632675997843251075607416358260868644482034882451043640133871843604606527397396751535226829309891687092802143036501410274473021745510818613362146310154201003450667597459862131115037690189780662049764125604054310470800711755887402259494726087602069715600228104070180922343025737086788359270466473870666297105328669845582704345250964859753838870919170894312321283301288212693904553547960370868565498095259760346739365939609593908141382877167157564364708623948162457748522344899191436825693069629851149639416382160673645884542138400505983521321926287150385871677482439473078755727977884813343187396423988176507738721179095745220137894623694693797329819570896147355013125390599160524693638186223318986624388599623109188724082142058602949213209891718569096878440735794478741311502147959174945962798181355641906685128260810985657314966693617901080986077104908507917181592380285938012295254183167145485810857767782446722625373125302029355040893706589570239284285115641643676962638492479615493751476572218831135679159532103415167108969013396841937121839907356754194839916978028305253566019851007661077830622258205063872758600771837461902285156849718109179483730185428847110388005055324646109619526471375465245101870938392064289204284409032887929770724671855160259914622401687139369301985595367696069877927632285855978915816833489062102027992398264240983401541676659024598684936658919506552944570965504365885190953014827876210328880256987801766450624016824385537123137876550981788952578423774071522839651899714567574680756771991466082340506152580821947271015958843685917451738684682826058908782108914999478688548448361168583174426666518837930949920980959770382433498177663310570160297533813653404778268242603964888608950383719259248398429960400266403023775315921041797065625299121809174418136613915421849678945902514116740680191618851674781048900756920104366275126861720167846597775458660162017629431586609279447354982504205928967769017338731438637301485456847181065551274134476542330127254715608318920202444102155550054256502959783093474566406944780130911362719685012306205499119769060518868802065869807272059325681537535622410032850403558390276143528525007955570248361697798545216569359154506126999713548975962448193510882959594586498196185575973489681657089134067405247255271108293445966912678464150827477230297789266292629197573273989063817870633200451437231687255567677180434422277174288865547844527024312972222655573892238825454853792213308800857498207602525194408467331507121180278471271135829050656216593310672214475347470810008904719395357686037531227066609456126156389707613951764115606922526706420072162799587000502554221593033997854881955240030881002878719758864594911482672638979778086539885640627084183755787236078847196145800636104149662273751000681815810448794439521886077838734935012682734111042501013975171885917565921745641005879997435761574615153202626526802469937948477187650435396338908898934589302049615766684065148184579781630609717677707400854135932303716156475988373514315594691932762711581125849866561853798650426363423232346981033161856299731223208525767930904720266277816167751638149756894109959529586597081616086365053002707633054431704634441723409597770134465883911906361828381323602810355884434149124106553915271258278111504499857087305863018930698914881750491260741623360255209832215001564051450133319185363472749746947080485282180255476057089208751417085038240939882770422124332332536536927305793051465771000568267034380127377721243480382492621180582863089238561907043297086970208521535156674102263494111920290756714064848670594608748850991562702102264139486090143086203135337220058439888398441835549118465333994263152518993193778825110785148265379478704934353545824373301104559824201114744953132118762740119188260668999234754753731579586047318334748312719816482685354777397719071006863943549590904578742245277936740198129268897362174804482939199100325129620407308119808036615536354256619078617324263471156529319319622565450293970754385465559116166576334574884512413954190781818781685830698646418652240520382390047669359717719857628062714878709692497589555469914924538240843277667305305546085039084842712512634234359763674899487921102585637772475072681362135939937852490097796895329359713588243176897291231211185877660245171950300380696113611185474694679114570838732959133793572074647856836772073129403818695254750995962321639198705300286084217729536107041632155134064558046720758004427829710983359058904730824342160792040562151375910474123688303532338211506819877802023822762200176256353286661128438739257754432567937229558639448456649917875095772411964236266887272204406524532870471774246394240987388181688668745405827303384178206313586863329565100364497818520634092834235242683053028430079198416193053640779418364574288622364397302923517952642437174559590470064601688795805985145830776376392958657697908329407047681245824407544800118751981128292243678910280487983574495823165262233545915994572097660465772612539729796733993291671762525174655690051253176765186840097806099520284911108758905673516583218233458712955247516684983845092482041082690785174840796180358102553918127724371277817471110499556255183436446885377715412250342199260082535258927428360055334073820116644046736849475028749369878341961347298053028686070828620897909064244535636428779736917459135648604134575720009020326019404779971935299033521221708346287417100319556881211171190737596956940961683740459186664806163050171239332829063738967899833134938496589758478456184322610128728024037480370819432181108159215687646324027410208576321025829054064596483422228572004754157923202250861571357860552345930742727529944240762046097914278493292169540553994977716764016375648340378425899049410519626590214956518173654506393937056879598161024325724413736999321689284687917152289192174207911709128370052150476205703409528570818384486252829039287066800089910122245038048057007322556783260319982031838928902719790484174264304243745549975733050526617000859192960941678362806821896703186440786637666651092346614630714600427817197578637073363359750895638047551663997150474902990595067413651516836290573395133742251991350813170241286222134113021897063132537197166356752816627444305084031170604528505933934360199173911159943232274746857264836550218580532438161286345080912565641756367466395125810540337527822172093348388052434839407853662931867011113299789478191761989330815388974918610571176626543408000295540768266328099707360466143630906600368579827081218880249061041723995023620558366783857153565958994240061904938184025054720932643789161324092609127940370049928242020325995976921533460231951706483779070134934125258307992506197677003454271348853142044295558088204343590255849458601250481794514391981277317832821083425238068276860021908653418826079007704570660331713072269528454121962364420628213639313803747870040413480676531592490246107202072528784254175191877249562421130259952268777175672659388136200807632817721674593668218255655280074370798237437605958446463087465860994102295553763502472076726364811227304557846841033888641274184392985136010905401117454618713751179537446272244385586646826878924349307294866577026928608938123279793410843323596629526202750016358276614284583243054473914999753654237756672960543576781702063585665905817331933806260355471069419552138139230109391198899774843801239718323199010107272581777304834229390218712044280350418984805182752078356500820457540368813374844312739108797673220345341867134816963761453708408135832677457422936196238172716578329119043697515332100682154266403099239043564718757817173651114002864220045641489260199936637739373797551520844688385992693417468650834147400488965545249294290106885590999547111010776847129443959707117600630348839009886033836875768174889356741338311937479103105940369051439368080119027170515571905115309183887868549217124792728396653826787253873265242650490569382155799092266609179836179571366626775613551105698050574697199009040807179694116841629355371487631619490960010101579799788545259753572911297614659881949735547023558291335926687105776961602291119375614629520532998823512993215478800387717740202265287621768523099450435861277974451906146319423052128397187912116624677650767478137158316090643499557866624478820083732646797709837186744646369581438862192014859582823426632871709449407118524032946893993721955996904172232642877643922281241603855911774305157849175343756144264709342735308047672922121136586951963650369194719189726531116198787176927560591681732059289539972755731823321647770350448531016830754754111453253261263463107462109483985385288657830890902681166197644934133058291499014632765754085477598419056533658313701475121969368678130456470001102910462283358322577147323296839717676116078736092746686884860241805504914029095558856207782201049258639035238835137889640311803796440538981137480901077298777537509788387077746058575331482656555459546238421471551059602383009289543465713933705602597083981401031065410950338790372686179330684683354934189720372676594376747167692137837573755474911936588036991779183253164093986153317729215302123001510233634964995382914439885545243741618781048987460324044777197559267484431907006166269321671108830016660245349631501898908350680280493498797735206298037748011401221871545572490794721037118923025624134827571179948269833526212483596257588146762835129880844574416131084860441270461924977850011656134976911893967174090046501573736160600664038637320361039113554274394811488421315353708098045786131072772085130322178291257868637903922315333601753697659223366917388454810882073812190741059021248854513079511848794477090362812174904870322362319366358628589103432291895105497743712081242211818041267482076264100780627374484667150750377491940743682430099267460978382641618212574326642662886020230219088950885682962435712655924563027040292396488354739430247893312430105139129667595647423903864034207750315211539095455031098517356249906541514594040353881301712005822172860023495012960059137605620287410624237414313694090800982675588825738026355969315080955613780518963906727786752803748061275455295454243871688549106479853438612911048768205792083805414480834821370313907510320012821539209537900391526119380403091020821557295814056918187125553526225285937733636550878267421609124953054422246638527097296556279231151516485097673097012252830241096146242000093618891218801413356044332784788806607463143394169123072902514817462715533410034441260623951083114079256875939038800491874052173370999357790763439533179579438884410439559999461413950601666701775504984253763250016365730726996657383165480740048905874564673462035706386895461117342991634861932807264729901069025367137656887736392040534309352358946375828958026298981240338211018861079755098605113497338098080501842933758602651943763313676413988379098263672964061506547787211928442925293319627123679692426798250135125512664981332596455019063961836162524845337539867825625838440220078002124659059909800766340173741017945641028953331609761021707965640575577668538039532572984507132969928429008625534263172271020849158794338627676044665198904828388563980778944844487653488685661605619797321482018098288824594817447198280345903453103257350295830607231510921619728183183592679338100772477849114973196671998152374378825344020478744919458190506072530649638925557781383930520221251780477023293214148505451943082951955443400287181434854302782156045689486941757602870565068867964535491505660825243592552953443229147547142857123326902078823763941238319285045744916674750714311058568581944809593809642946945187072706005266918403016285070509146819365074747412760275126675453073382400595064494642395244781147651576436363879914812187522560624177776154119454425583529873058961305021685853575781050712534813389796050745819291068999009529158811300514107296704861697250073966249088325016307748889403037941849040692957154939380078682877150112428865806394669053959248185110044491238177257051377887934549802562836738753695548676425131966095241085679326290284364500327038923825495410342207469987054621641342310323340812682583133380813493806295600573621739073744288788437307647523831412760469194654696521274687139494157565087468344015480878564359643643226908638198504383371453434254218298502499793509157658146012492454846915735774845682985881307868205207277021500051599989542998904606299465414106984813636320758358739836494270532165105462032480450595412634794506173062311182600534279162093534503394149116948210509371887179548261015947064674469479342825261265702687480367871598889566869064658407102041803854974142218833662870690255898832403359893346297332283506523742107933680919635813516439551489756029669747294267432073855141542292853464113186772297764528398904712568989952151138608271371564012006130378167406035012903414475122927059941749743398757471478536114893928115350885620457302501031025043176012439838166237740573604002238534116659044161547516523897949099082974476173778821506129062095009933934882976672164258413605870427500632913262692213779186621524176151560073199663957588601595021522592072669305557508881960977222830158508871843383763070264590694941440997914796967713950299872396731471527243313619208310002988591253250968836225482077253971511662898373941374696092373660956866066385353654217448249498840844162862400934850634346576504018124926244555086953431473527861468512330596883499875901286400557471003298043285673498774352396355605961738949358835822514583692171612275367389336291213814924955699968946002331494681897524988347561004922286640878671202180121215058696445322470500891206221346772421269926844898451653980174059173411120092062017378325612850887954586495054235962110480354292462169991651925328264693897138859543601683762987943032258584994185495072200356054778687153976091317803927781260897563082507461012135661154749013631678538610165038855279210263205995255160738372088104129752737070090781301123186429837665942886543731370989811306016286509932584762979369392494170145438442441620957724756606342321546026362223564107573569079837408869237917257709794770346700106304128703374318999267757686050890426262059902168036561404545057034285425896965365995840832090601534822345767597245256296400807099833462558880634576097486016327310297584670057539987252136413177741843447309856676822965235480143069178214242460033740298691510660032291069780136991915855134330233751604084260445785655786649366144070374856099715651223521185406430482170788235329643095728166811976436714699203168353464159532014945668613611692734308558211920197119295212691755768830249240502090684203892451764345943532863810841728324227012852525577032974507284799376303138240236680814258155569665056555036677871714494796474642953766126041742237974857200501892690696232302789150404650024050955326086198730389361322614232116248258764819587853853534800147755271858907338557312005388990643121963230132668144062735149650988843485714684874899000522581411663787611821174976501950522612908710522672524446249387732383676621960157048822892853883310464704818502674628077447202379585934122805127798548164087304599978398451270267142725948217308636182423464135060594398181582559093306362872462682259436606788178243780629607900041783524780400342395236259773127444456435553314168741115376797527476123303326727758431987711005365969581401371091939095741500067945529761033745027052225561032263625005588211852785646635449155558498041296201029502487327331841676887824523573875166894683599621914677265846676328375199598664661110635926387538053379532729106924285948901218489344649021583451400788887077876025124970770541555890229243622971975296161043623329524353023252261885010819332666090605537766591274614631224903751662359430280385177869377195606808939307871096464328495578670438585569158712439313821695994121382471523339312341598387026102905276131859966418239206160665871774825827448118832591988308764298730181836747718139426697238581314077276972301767507555959884251554271698727056624415778785161080652579162689984583622594765836242377794308867515463544078716183679261902657665556356282271768047326738551417041333773372196474817592607712018470870815143604699175909472856128117818459809249246549450677861423980848165800951323792823737835752040361778895209540631753981341639712989142858530785128195712556645206474148591131521178026370359805205566508091863637088302399038658157411172937997353932663034593949264133760124458661025834581282485014134337429585787494154128219588566905158432621479188374990078413219849007859285645697476732944225040927452654233075543112217500586377047123704520093784934947579208960010821355830103856384089597216853501165365609587479786383056976032318675088473613724623741800838091212963958811679982368570860591769726545266078533089201371864092158296317173475326865063957621100323800902673103823552933889404144388886044230413278212328381672607021750249701205874785348455383160141702168567294806045243458274254212376049445596662398306115611852562111829665590268486928817476558816248496256027083283141357544320172318804340285681838455461116368269600033074617410400266082179300568488651806542749151809114086764198389170236133075886025473348541028644945776595177163807187257303328087189726907127587238059975169758967274080615214329812128741358363065245565554632596992991969972147566098734142736582398501897377543594231034062027147766441012261884141137186327344789663686212151312435874138861850899961174107579316228496466945827274808613136196782489063464776981981202624865775416275145608679964628108539180773839014237868694785310836335275302309805059387876083222064427088856012479279326764432157748831275541984808018027836588325926758226385795335286780100954216129261127893118535171247437910595061394046607436453145637974200623602884155321508442597143492468975286196855447781016399748147208449841017696380004030131141428854770453653578226301068463560696209148322350924033464452723455357741729488484850778563029749506342017798740489273170559256081115139093355207174856841886186305628127893373416156110140212603462299234710719686220922869663284334972806257160175035527190306911908846559315281098293857376011587390512470429922039773441668334382005848642662720141080165880623194691083322119730831939759498274499662567592699445193093254114416562146791830838075272606859833006755328860709022660608117515288117082096775265167985920016831928785123789443922673759357637315697527315347559715086761997216920410818323083198295700878256503865672611234552882635176588891242859753636013460431521859051187529938478559851155721764520145436193439125169964264030417767738449043911719548597763382758519595813773869129677014272849351968673062137663193902318636568303671819093268075781187586416421046961898373638202755459374522017276304309035085840922183156066501228738356853812765095648857814524011095269933975493205921569575710091195391746104366511007214699389665062038998112285970191376745829574650123665046006240138939202568959409124376041768664951999616709506450234818060002551374274871962600536114582874637615282472532048394466509190418221902525877074829716099908222963016561895267835943600404665194855880397654247820448496383682806760802963440580024107931084030688296018852594391243269140153963447515614610828046334155356763731019076187839726172119183340506102464841868996613716329507345706852073280646743132181254907132936654219243433125842584885408076930081647073371933634660276462224255543758041456005410444651391211684457055179567019992580817626590968015842861750967382175357757906560172417546672320508980344527365154364084719845114593783699939949751815723441415764415266786573014526577126394824583576819835623998515130927727341719815636614403109213494170443933338348303832380191705625763564944942758153500794156321549708783181334863427965583698383592624231513417939428593634246346078435357476979173023710041158303708088817141852435270489446462681961612537604614959372008814865927091051736797103189862215618493570821224516033568785020465899590473038723933141296927539243029070041799606444317318727709640710286805141694328283756285859796075256504777624254610633157529479458617734103680138500766047290501248949527991430702757584493776280061780992984381177977527235219317096410073990578288419312468162990629754908874761204570681915959253927415786109618512580695974861075478038034967956257010234322949507239037243614107931661263895316387777470385938318943625970314229887671617308605402402136434224040574429314426266387861653703748794862434163001605600950465766667141965752241563257618971019358066569758246088349774818217873392861156827998423488009243913254366644674257187725906136987441887196793648243007521523783551260598903184642314492735840671395327851677627135663350332107973722240718440511399321658180455130553164609392771413976677587755553845575359305268998222065038817971249738407625813801658581953561486367875250127052383794831208215192179127327186426244891919034424776594343801876460147091270190531624356904583968278112199317043095726704089508160331236078430325639193546729975387832014845775737173680875131207838958942429711818108968629358707295949330015242069090067674301096264917416965217800442863788066502497083671559550870250001454953110190674868906540094050213331576797587197755122934116818680427668779861269130046895462590114074906862726120720953075718764008964647130192229295218013842832327768280186660091479994604895272567625543640866892248523559878749540281205289962984213483762752577456787586525266428029102597121375258318180007355132828214785764996076573520482978418585043668222210061798234354406152890030207065166428542890647183150454011325186843773800415670212853730831814784328073874133895824955032239219767983671532505563575275617994524119592184506077182526233654423961320972140772280266002127311499228599540584325411920745153624874437568811803260613858714221525712979213320874697653865685840595133073863883379932799686504534636440754457395431108837992680349734322894065135508247136918321081614856825369391303572219492796044931210375329173611525203175850066812644207153082873561226363771674741503265456178741525968596219248907600174962395551992087159238330518820941594590313775153592347544169937542147480968149676553900149190162101538585941597545961502466240326343278904380232344916168972226654234173530452983367430773548758928503920320045498071862976669038648298766554326865226330772441679424415649132571668328220854652692946210159729497109637973215673646408455710715119221181578940080237965177606719792291466225150873691094850835246294231568821542181128477205585394171758611586633356939195398910881875417803093599897577192425570129101474832666071883230752337001800762929358039919966980726779901188637399486928061428484716375060429773110574269374749003475577134138059977034657652728024191837451572381580213873005266725334416437278467182396945321951967494387039404231048274868820686674007036005201280249063493378835667726650151908705373644549305700379130152558001224985240974810757196279982054741147040288002147676337297992334377603802220537763061205749333057800382113405885899421144506029984709381491676809098637676960528060218746741628749574863343028747525834918694889977564066071870911966364768020471085081332673056773267287695421754857095888676392421243299555339175862486134102507771547783559613487172397152805352750069768151978797204520867288948155936348567763937028163880265390828718274453413500316380427152116799966915966418406406376978027356495921111084172512875064647173593435084618708271200714573020273113222042192382414289467837500065857247358574478658839396531753836496436172859017304823090771830141136088240994773096508236265625933200272149553779205538580258376447665536106956226915261289926438327232743252774452333411057359797851572046476985905562474888450363598236404291662116622198300923586798508147326239134506626904246971828473186890679458881335609015073694134673939042238228978427112547882392771562004973427782302459081710649341723809923903060805590391082823171100817236865696945525962452790369045288721805441277012106566834425619072111957890778117502839533941580491198597522288140171749191329837558497630175645553296935233092251086763197585777362630930445154127510447146601277167889454351362065855389901793571581508725711997048930807523556738749707266929347102508645182775865790215476229394258110735426216733647813566806734145100349251162710918620503750687847646482352192159552845675016170521580728587570334447463665390157380211697545582815183153345942624243010467320468423036112302962057960894488714221231655248425842770799689658314750767812190398176286850864878086684874354492291207828405181581428110029647440020108427952899035647313101540352706283444231862699931711773100987962313864341509230056577587907420687724587757451272648640672322604179749425604489252554111636435847277084410392032315633337165735274168387238544800286374504193545873884053391989150330170545648412944959650600693817050492880445090368046777882778940687456960652017439166068061279491785443448344407864648704338552289576945513661192216921459001647113890107493306396140990019696301487358316800631519923158849633102248335589969459584802298700188587852484021867793587899643761935859550036884501771988624693040181810021105840993332367882779976277181678057035805466956054018862111456604188727107076846937373373231704738557547386429599541733633830272473624893293240939543975389952551568164336861686723749254921927249202747205317578508830357933640814382322985398393080628282711113492663593584081480816247525904555149241764939625757766981083962587182867113321809455826752034364966460969880071336166180497817032967487227884755790872850921844017928036709213310232994013817748636606283821173394978021422762360682146028620564883837253034582323072054950711041507851069303084583724842303693229851582406743671312925284934602423307891828275693932322807715308905816377785227881425127114309528888304575034317909172974090161480696540647554901618134190217742052489801767595894449142843252616515398917380170059713630756920687368765938924407581688596595247527388059073865393683423620786723293111193138911673561065424803121189178368494501589573019771572190463370674288951513703234169921319560530969376318120989627802947057951424347733841754412628725524318742907515483340221396893070130945149799443627791320587983196401788954843764679047547034362947870207130242757341713964672550255563818358264123993297529407989254592874423040808908520437187391919492748434564704954288859817566635678720176032218539059126873570705636225302164442408217894691390249244051208458291310721236370150895555306433391407164490402142172964007551293691167116305979762470794741499000503590115962704041360619077877884425207875143044048110735996395908129471710961643396901257819406936486041677344749695205951273966829737222243345853777770903375399647627133609287079768569449145930908077153968642820116491545372626494536726021917606656431109671543964223980668557534897694827838040710965430465221260821781471694632292842864369158193904866725635413069463795335427907899676408837813374366998747546286025336340073865048717707889373557515178035160432445821363494471008693577469887015440109609772454999130214470629856824531015723794075110240570889309208888356223075237704184833511196054061902782561667346602593928588577012968031372731465724639789561040784680542655543429504083888828847655656137316943156897301570461442669409138322720569749073801325669570628311082185870732880997452269773914728219266049374307319674626986860699818354333776344057835654701694801685579375197487617877158464971216105883448733687596538383026924169017346829820899227787563037673200195851569720338649931216252650147130793094205234897297587140281539548067335466282820119893804000053365807306270423092759992536724440915117419742585498802403676732608983464416921754541141573593573561461644446934964270911935391685253403414822033065782768292500396747462127301091944826341562737605610360550204873755431281198271503991553216265700024435319684044515008690164254651659804971256182206549726765249906573977944509277524434203318553984691326717455133718210622482250883626617078272764462073341399899935460951629094235854462895322447093329496066346496292603682780494937907887347619332653190171724160687096214565917319121184808856224140911211445278217813500243344508130347109329408758130403569142828551425867768257161856606060184907469373242370410642327540688611234568820383480718564983282236022013671248581605149214980039821085791039833149365931109155079008364871054731080825711427329258336078859917161577660945780726690129118300304439729097541625408597249743006651720542721524598126309834431988678242932536947124180632167928667342595342623959445094231698801220358741294793417464878118028412491753107289577470861907683325723775329527004944908328486980623045853596472228101260596934486875685981324345466272282657758301620668504856521088373009094640593101406933655654739273726280179641784022304138319255310598859370874007829641477981745101068202277791116010006084855944665628925248425735545559472597249450286145440959342510183588189578337274776902083393281272624483363835569668203322867376783006013574342208862143085854062358735785722922575383330075226109391717638761606336116287706088600428758070491688264299129292088866631976341790003649936476187871098914897347110614956233521526436885431963622709523549696107750840882230505712966067652266603991318938057415702394993119044584035408916725975348525828730112219526290775031346742825282176760090538712595644474745869854986572621770709682949900160270340278620827822488898090847704080017662998916070501530322385054175774600174473409193769472663779038002320325074937202133753492142339567426571704251001504911486439964138886006760341458135685790700350755519854224595919361903656331828531789746228000731018617093540861112839346846285336730781772328923491158220408825994997294764470975051517038231224261064382569338973580465980466441067963431586694321636481348707449035088829876162546402351438727316286073942832909053997676300999523866196805383972752734307141649371334217603454689429580958278191934027850645186437643860522714662196529705328067597765700771762910877884434497143044780514563726610702206146915102809554808772366423783090031748779878661454637034961959160030913938117063692220847600143677311715538582038347322776515350067610062652631668484023470566443254182696593737090139745213003021225348579700313427162559988003058722348862778449486356414327319486460586522184153555150157707238141694098163937039581478292431128895893525541979433557483447554259805680561118483968013498633132946364912850837600178225027294828093751361084542828404902705190581720363528099371497031880167390132084532120399132383449789170130108079673092611591363666904291220876675381310092980414249384758924042666420220704842855559369249066606884873531934282322416458399731505612422297164107764036494568115491764213748947498808056907116686822289901924485567400220479132892011654389049046463050483791116355579779711296315926829442843810356957384153058381250274599483449357166977866001719892271100300445571747388472143345874787580007258957741062206220073153085900923182887990029252339844171219045729917017762702748403746120101215934788410014480391227868601785359331082010322128848263130467409981058437772758822857059661048532130470218548766431811944746228592343285895431129770958864008637867298491781478375989872060492175389785947291807096928175382824747648182144667214809028415738955763039987587943757290248681599894737104051558211504838617810833711408195334314737813786943915350040807025359236135192773504271601975010686345180244847314782362407641933979453106288769855879377215811857635649169235556691404523745946527820090891626731785842195559183835091292881272809845528449434371695442764077557413847026397625967779091273888351394332917836004873211549566554880572902876392097014446447203621230881761381630192931125361187401926233826779382364955401728220746237129241982258583050015987317323070726166267120958700430595148418535122930004827771691357319118526691670668937833325938282477877689740383674339984648777671363817303536574775610980456345584408326333480669708193044747878636284664168377988892992472425715831325556135373430068077465611634126831688175346912101413330052303136900484397664720085515565190762229459478542284298671118738873736027209793203874098097951388615838088341178422758038359455127059036107451080665583176453170591855143675576200683072399375317171993860285073260507371863229227244808216349502848590540736784891342857781946024671077777356907272559784868283663994996311706685191524319453584736624088812427856212961622162346069579228247501779582305544265815642760007683984042963487987255133009104744711193358651546388322311758046729388624804913516590980625245884292057508805082548574906419080735309311116203709268911396444134112360416310519957592296774536143624166839629082077813914429438301006528409286044652395243856013152303805703862093144527757427473025816061632922915567975099987755543719391649176386523424649832458016546100116005624014921825484030072320464374448318129067386795409082174582283212317091188990988819443314972821972865702259244250192535419309901101379479225415962967965711955311088218757647389721452829050499941657943503452851268548592625038041777845056495354395080661777643822211315270289502955373046272359220553613372650383836808821377987463947116534618350058596758253469206786626013816373297575175780131825579604031954751612628066598293688778440328504630851287940303595124496188472548757863334044088712492907674739010441707507512460012827096385974757514961162957589192933493569455466254031397511979627926252345771827543322000654517972494702991957574194738753107553432490999599545967482305495515346688550374375279585578130875773612846150976575790051147707533352937497395100273596570557632799694804682924287442627357295060949646648614996585511006261852517351579109474584566683848269515411912892156697393877027398371609099746889919295363776391501366881832534689978388622966093882329267944213653750528098249777141458170803426051955296305659264442265760931432932346092541507236305645348313457012751929824316008233506212693554425911659876410837763476179474160670163630487254234062750264329770688615855980326755783221491466362852109926703654166766179079815207920727198191616814702712763504039194387063282670672751025275102539648096370948006010670140612034708212120541576451962624211885034804297255955591382998041584632242042199661983245543143675767202659697646839005707525978303916397094045290539664300106092830069230846380583948710936190710500739340394067818424490718631818959273729807604164393367782911562153524276132689452734557629235196908278963037173633739891680883111044718460801263987863062598795200360944415596726226253705555271528160399077455886132320077784179860303646482914665779101682967426638155453035341765837235336442035702259798279217315987124377509180222149252447198276075037015036500859581695581854784177840056628184627217114426787031569121275029571718169665984035258458841824985991917721214072961950901971077600168636449111052941788675963763338071899310185538796259148345945735807205777750107998417308723823323427617024344842610717857363838747216127222171564190784956111155118669599087186528184023420382498456250192884519922143861624944359283359206508609922261349108629459269427002498275166008466907730910412964514824837982349374406724524007964797158884505040690917459930343587978507829391192346477245168780454919985594922762287205555000216560890984856689168029959519974781653720542342011091718131720452247881721339838580363036358518884623533274623547155583742847972683909027101194832471037531947060418988324167482456860211999159264353716409569830851120386785312395070269622392234242436348781715116981599032020879739622761798788930040045132421331531429543877420308004954679916930972763620394111850791237740224878159069768538294244123381843377163373522172797720290920093245151816524519546146929520423018641519498265013622194077490014140734337794708475516478198423113443952227305249627639723837245691726906827298572803403000223092856182111695539761476241942591239421008563133330947010039578412169170484299476708679170124676981517211040345832726283768280826348975907388706488745852525591325743568536594816169654877209421929186046306042066533492607272813021417502761808383507749684595949094572640072366701380959359886181004731818586691027099039249069741661224960668947860929424656971102527711585523562482690792740127787970808113737291949171361709344112796245314116329147283015177789083582399206325123349653655787212729095072793280448026701428283806329253739850504765966859151616554782365822308455510004524388639767349303677619702006385729340162398965715866609496550605140478723416813910469772620630765729025951788368748307761526364756912321441941336383443512415065971828112758152731593499187120757431776810414716509844365576798660480217911246005048979787855256396692841004309109761660598067805055446581357006851417232385491391967831684095759470920192456243742897413808484968449945175993305404542961209716533819652642831819887106771374674322586921121255721590707051311681284171064669771244705043949685623594682538751319684247349364965340206629903306270662241846475338271012734727995828861972478151412032354255247711607208539503114631718813159704975265227370103141924541599523324853857792307462832588165993462226460681329581740230406516159047147703562611823421200744973503282143936155178480689918310899073128739256501923101598783589668350626861848952662491174387019768107643731389839240761613757424024284047397935232440031748469666779859039870486491593273721498328690225155009381830013043966069386887717822208859734585282169801113851742682964605048169008875873900659440252554347037047899638149419674123604419034177858615598660266399964148983870620080659796110158915285400685775468644249978937981441799205320624942970142501699345446947867926784220757273686042643224276951421687824022230442924033682556577107768677375045680493414015654244781912623556840731106309996638668903329827310989138786210079566463214338938688876740754775619466835178425555660237419273352010848467482703346961684077641783008689176692904858004559671752957826934533453374093228406617574202396478868943901831897397608393774843256071103697864777961658826545273068873018547947522881275303718399027269843637942545893862285769481720088642146660325653745125660748772567251940321471062039955121994698442513247143303237002082232101722429536115539002697802397859023465302455026651606389947291543349899993757289589928984991654235653543257051385814571608712533570277894583830807904008848916480608216264885954249160579664941715102626497715277891905999862095196159803983481688577944289887618997954938404018031693000272866156735818375092363977083201704223704735012856283172797579730266028709621794244831636905459917780535301575547857400368453777405940692094071747945607665802193919505707095085044960262035135232948048519460133811651054866106721484504570657023951684315856628042090260508191863162808136044866057492538090019927659947827945046931348474556407332896027026831027155873646843459213060864293793574511458449131526122538959296622786896135819907773801424870383299236042078132802430969632265063130837751322649839182874127330451503664038656991520484479670202089315428185731187202872297401297706118649799015630042463222101327150161712650693123359835166113873566843685233532356600674084439037952721360943450068768362703247382112179892772283024643777646698245491593066755727031960448546054044554397448651871056096899813253651395218094701172896543147935048747505415118214413653897019246407998696879638941133163563716643273352355052678878088596957172912679596105286669738236745164786486642843946983925681557394215170560340153452003802799085258362154529391758348682155051459592169708531407523091277011012462259721131208532120400786111002395090674765298327569665418059544216767481648131572919421369407149596999225325721784332805857505093658446395039400456531884594656178733108714851834253918341941103935841229748251524887020151940949127239719548317320120538747617406759706394585843856487417631717834013308568704979706741338266593258797892333730519054943628278832560297420383208317494883138105028408735850615222620438240057573202290541501569926658669798424319106248110892231210485389592579126241831103676946343358807896822972924669856779575255449016138666945778294222740837376799127685633702870877223675133337674235841473838002841936235747663508259894646001338188890897131208982595684000395086090875208462238281798407350403951511157618674007267422184791180394316156434349691320022757650653654320723401017036798871394443226582146002633776972932341058012527919175821698015004414184741457995563192256877648319329883358922472713721521468474538214391188894956738265936663146298699193378946899763870766589067848740316149771765945095060121297002639752631070435255763906132970779580326085525574053503426158392389905595400085290353539570605217664179076513676631567376451703545996336749175491415011031396227371692569724856542595438517360966230436154551799659455348313186358112461558218538861651295028418993062770781534213839468612410379998218696013050013388045622865807510055354136522400021994453427099791774682660214681873932786429809904816620457118717241496598179168532651686619486262960838467562797392404036460749452152098783840730501139919227297252640598646126949202924778284514821712092320091977988679886716309915524540236596690778449385445215844608028436347904947461690219864202010386847351096190117760082851117510680352224505081381820064441698543232283755011626514667899552542717359571713179764820191704809811915137715828995158576432222751273258196048688862995546174634593358749109474968208320670523930924089474605577067427724677507892638032823484303399162609332755625799801167557862790858093283619368235973999935094128704901862048494175564203884807134386050436884762461548110675171775263547550990637669818628664610600101299983546121017044601018842040165694236410734270817560460093658318495522555480137996455738882712697915965088615940902170160981143155592085004376964433508570810762085280896725917396027940092705862384330762448912133170609823602485124748114402063671800434930868414114118475423892060476140663886204149390642643037699026773196063703053724285099145865703570803818582500412469250543842344735838926741131331157760231603226099368226538844784222229101450491736766898633863971361529189519176954194177245483552075046269176082411283033510780989675597829280514503570588149317306712832772823979359289121096215968556440601699696612656165362193786838529318571284893876009594994903815844802807488137438832335238749872468328496605070877619635144116167354472957054475785199127600298781205534543456238881487839274295391818800032559214129433138456167898800007775243358786172233634363661002553894037664086705222055724095213777622277569318646645183225588447102159985831777055694963108231688240911100335554126766035144353243130297499194413512896056663688719243154266287221804408972316600066535885475101513261620607025816133113725348217882265371905944301489585508769745649557705335981559373104070161243653230730681359813341465955797370804885899253159576642749834328454611465435993767132750177209194599803639294646304823238794209579524199590644762506989736949914040474452879848592714727174953348772724256247110329561757923836057719806097758817530389510657436905273428694008844665922029969362726181594999495880456686612359965277335284858959034707301277296637532212213225023365144892267885083010228620800507756875291091611451405404324715966993732113687881462404049260354717173557528191138692109089490465525289971476597657543511205531477934668431392636792593054120757925742658373560979551371932605305752917364055232124455399141326962389186760005912461528286896309597750514184087869400220991321527732512786664517190347709751846638022684327247545361340604004810164900340052386977214759214516879966330587867026817898036056259683897438620308421359309182815051811170167897133641806653954250597087621517441013227758855950119227187896242231868432882210826599167766784793639593541466256421540638010616475688546565278377499777404175809007635517224380768426811159050214359084293635176914421670722647350202312223384761044050992824630335353236134514791489034900665999059791364474223176498832407892547317518765246397642004001782626597437175008428698313346545683668331182946243358307846697619540188336048578631462441818368737767422468433176294721863680233534114343088494155289203441159288093261781596012939539490740545547958399867163945052383018639935047018578581253983795223640350433513596515431621959160620859063677576027458678956308129048615882969175366324060956885082517891752065566739733163442435333425027893306537123165774881381930171322246288677202095660049072664493249536867911520462783691073914567640189906832600114900669829558511363871622183993185224708533200349537629747064229362688513292430229636089970241528556114957556024558279006449538355830068070504983118810080962763610154245493650776832493810968907180648511158655244934202835693691752715679822314176283483326015976483886124868938413300179828685871197548396315854838768038241857437991757810539194194233878016769617822694554341459727123703675331886539364360129318880887137687455751215284757511046136228142861529385203201530878115006088509238144697756657106656560502603189989598075847992914754866766210989831706106887666806098738736025957283775106887699835919435332203526151404401246317184714973897706472137857236972576197233577444856893967991772455842574573585224597530231074164910115610174878739777733967907611889593590681063574851047476713968617360978287603836384984039375756925346457081216611857085939922086150000387557716514966797650938723866003860976932458890264031066275855760223032901852228687611187133591792354720785318114459111212418029379341551355941747506114767863301264732655067976731106878389951018139068476218341570688857960392060099847435763331812514582875849395506056705441601313857309804337202041929603102981822944250296592414278751712680370286978782439349289175948407013939849098240397190403116461684841385683250094001969141776208305569779681561244379221281956340045372931391322555854456748704084735926708688584187979412488210719620893685624927797277835622994648177580220790901655354455198810995876079213335789725871661469772133824910768286222177211475905922238941880128631950804727001589631218340364247669904380470790742766505787592984543204638840643144546837228461652462340244433565293502617430908205795604341181889690490615409596473447877531530391598799609842224016129379942875312493744829088274462453780355856974860513718124093151851704573687094401271979884493016424869678246801469460983827584503582463725545668125572518911731627652518512977303129032350865599005378311973051898852464476922029001168768423944999546965874164365536340828768498529505754586805026771647124141909111426665594657364855361879741285402991237671606652648890707867427870259137446062689094935392007062417966941889690575300679457049661439653285388947268357507056743022358302417170730824200982265184619132946080468287522596078831478403287086870576629081834654458715041037767295680618172337942701893502278097091986871003120218331466493598096147430915473053586358811039142085565027502008750179285742242154629617037832567819701786743741293733172716857593743391176039466415280065840339674906869839784658491986422133266093793052322010507789980929335543861750863518043607225855901771572228472177890050968015880081601682948423922830804604205196812893289833696353269763377372460754919430145901645397077620978287279154181379738378108288747414738875484908096530226271099240389346370829862408261290581303771529212376323214841706914909847094205197905170957835538632431562621927281332099425728531360809384758056280178005545575645440329356939158597332324450307264596036688351534953664662300013287847623268854354973245181837421195450994731555998463025080187706238066133783158233764914316472992298386445173304027815478654726658537545308966957755148493442274640201837491858415259822037623979468568511869056525023287752388601740422432076973921764449047713858027307587410067521070165031368754925426852323776823833749452956689069050470376015610928399935527794839157593429952578954139755885706307410956693104840030391505348649486631139356404661601021930416063897071251357355996103970689385255000027602298362010787931798841350748998693868828168431903885958945526422801694456561417825945384622424185254091336961262202148752711499980920123963674377256601140245413583146649066375758294151207950201730473999860587956123259868985752250380214114266341761315166719321643916542074388851924682366574456037748950249446598184729655110392128506595750805137648958023919703328181974713835013090749836831814145309147216279915630263232252629728580130009439953193176641203095546951611809179218057010885791477195608839967563438541785572224728517989455531259662971708382237395929631981201687527916268882732454823261973771056216099974236828501224021892031855861388242751621413955684868964989834864890032782736106911287238900277763360172612204356864654544261565630958650042721742859160955307774364333291517047339554333300233391608923030874602252766025724845340315677311275929825285899718423538393942616680368251564798187818859971198674077749113564361546767297079162223774603571687116844801941618603466395546363075213040581568712011121428066369720376175782772748064524253819739040520626501848198074793867478754636648827683072108327038683904490849084592055758219609403560492581284488042944813187638804377198367701954521027308847748262500223518709024795320430113567205530864245602832392004490146364152535624699231866393413947508864651598556724874089797321571170109169109615825460734408180324414563525158341357695287253018729770803621711589223140517592338188877728194921314754893018556779720021657449222297047828553406777220258014060420546067516992215136959179055504233129707308339511831746419899756801687126188011627053804645783071861603089143484986138237373706672298352280849064871293348137370662152882914410068243412927140989367937965845137012376128699021695193253129319514267324267819083149722419913154520912513394248731749636506676996375335676640183165897307847725052507977723603192726998897148524554343826559872304730865318785188346793179633823736211820672533112844117080835999008511464040810650197271654176288857550398456835705931116260092925740185334710672293581774251246421449977344686370567222887472025892001394076298201848781830361392701992307876659196432998123632796981709035455966972804872799024427286998173975132013577095742427909271540376374704204343692441366139514778558460058336163394231443721812718450149280753170989607511484302156306310253777752108181522432357682972402593329796472670261147245545728526156808220429555896475089667399853851043270596750956930703935430196034126042538075270001175827683737106635154206967571381959268169512657488975069574419987560531394468980747461712183550625969508114194137465374365071906397250434340022057809007847502409712543737334835819171010186383697750585968411971511818173032726888467624698033581600460589809248273307878747685977830770639868848567059900795820557369752934425130970582068299544895095551608960984096062299999547298578927903931684319338387888552776223312934143309035254746695401517514633894036438574435017512786405204794004683991592429853797450897036062986691627776436496907393228994089787998647560077273738408063226640391593873074791633594892938434865898891883903368582670700874397434158325428652720347740434837502060020553316002031867440870930890981451195386062213460501684478852077499529261819932177168745456118863424303189633828557111636355132148762992944367560991342741949331218319312927350422195263222515081507391012147885344280980869425681191515730855641937664792575373327547833065064152277227453210184077866178551571236725977873451623578739203213613511200471915468815661780413401888933109566980671119925086825360155235591211161047576355475863488854043316628147686340729845595542693023986298503900335776520243564091502536762510803381176349035168326165353911630082645311750796852307483463405279088897811691893760679578300350468066570154600845305244980494389071747673741727227258545664542504974181892999939599279814087134954350732715106524778943378441349825471630936424651995112330600802624596379290215426689117160837470606996773710025622099122780498902206336703375990212340042842029464036337716661359729706274429624966301999539316575531739723193772864428011045599004981487773372586102996455291966533218314649450743776529577025567803834782650462954576733347374942647870864641123108950374333322293168140604488202953532569781312267357848872775097211963009523377807332336750677786760871067440649187483973656217940188699557879242977471215954862090879667740602024445170905123223524098418424663802031076920577261743002451520175877919632628870773189115308762660515368098447443142889935773799665547450913463973216079286281167551701248748382287225999390361667112237210111787457031025604518013156800773378777069269794113725087178141401639318601301239718261160979503602906076311842900107003846236860380376822276610396395896086475240847181731725042434569831120185696301935270142726282737918721925578435232152033472198891843996572608112309814077427092454001274856133937224892808227574510196325796716277851503548812767078089864763053846287538364748568162293959171332676811531433716763347290462092169756354420307848807827502530011345065689824841658616235416536411477419094258583929148686299893112922046786825958818917874310688557526067580182150376645053815871802283713529437849717052969828579526470638424417192585043814136291483132798963792552344269590609034064676526166487837454905362974065972996996734936058671121494303717066558935229857924824998127054064003948564130650574079837763660734829625333719790147377668102229794732354621140979424331574774941596502275243136640441917545389688801548585163604526943754449522184018496559853244047569530265981631486935819066700243922929393767487389625636144190282026274680818371193650798239523461460797413564149619642457948586308831509542071429953716911167171901335068919911452638574113657573398346452342445968575493442995986833770887300000653152908077599984436562778703153251757193477824055824452851122137220117959020818249778677282606481993728582907896132393717323212107431786719835801472430842905340589683697556095245189753229206648755993367134772901179196246365827769070134226640920638488229552137237628370914633283680040432097647673770856274002475938087622294373240070328982457286900536459744785608025558572565591810911576849149545547877027470545517942599612154686949095384869685141591583926611947439801246957994895064749252803460523387003008220378924468606780117832610455197525641326341715693089641460627741675459915392364819264379752019016447640210725750624390120269657160745813052323389012762429783691062649826338506173540702639187936344867536705969831904163609844550162412847206125347127352327775789516792471000874992690715222858657987605646622539870268499584776002821365203537117915414374432634959182595868146650093237571320856574948453312907213936859392540493963950617131934085467100300328596047518904967107320672902062767440270736869555313412699633869157445990852476014559365342144609027551366782353854209979389305902269017228418523092799139860971884595664855507789097774363416270687335559918655895768748487618184624668778136663176676454458072403350793769066157531260655865819139668710005061865382316079456618755009045958418004326125252774708527545561370864366083305382293342218414475980509371369467721127347665143311062857777977561292880435585823571407103230376277973827035868251730154609347969064612325301141000919124411473116607683585540518138979906475581443884971658350323955514209067859600025561550095562804173373625021627707093103808799206961925561695139177832289098159582022017395576263710998396738123117659968240409467522559391462568531463769560914022392945652235434456422889939410243706255147235407228013425292232973518197832248334684644371029053872433805008683799765418546752854854065125410857628013303373299450374003290963044636257283071024918062791651628153401992421802405449217397496523357724193096038107402070948952059383088285109938620440810387228993509078405273018173986818166313139144945892649919203775437562745071172974010465948255668646634665130491578500707851648234206255381699759180060306115475840771149193589919784115991048669930966856379876889420935575226380661863601085543504426206296394526119766329306542069139916443813062788330595068952682347491067110105063750303953373498259265475520162644389385493830759434560233774167484059153706389671151599881932594078617661144650110149561036864356568697082504684643787480593938631628986610589096429573644037253886556952548192244688458987432713736883400757483140823567336230867015989286010182619253709634229927186541942624415011662609186224470341074680129034659445898229119594556968138481888860379074664977048995480314857550370312518119166463322502241607725141506226282529240949044498528089895870238304487875642763803056764177959214546833382100503925465679674849908892194058077642465307300485314311730344829370953003081131386131154481007517426275832477462393587807437545657905891886858084441901884736588334283695572752164027679897281444629732480351541609186770657425437394944664655077048516832555515403596842161534343788998368033324687848154600649220705319807904998261495910415658729702161744468690648915025593600267514048228367643433723771100552522988622355564511019712821703212442868120624889613129164592556137528412485292101122627753276359333261667515148058508530269334550571010271986035821715439963327643815993112912965037945560340199770460255281071800933974026956552829059049174089251932569284042695516410388600669927660500751264807931924080734020873491814011374988379656331221675973758484823331550231395650165334434667789466477946033686380885287886166707782073240293565750444769151000754362238586895331021339888748992730447665654000705554367148268657300857853408504033690359194180374978850937016913103532484199263656371278598568347555608937761821283555872959357394707344796027221002578773879775384527183010769440871819747228495080641379303852647925832263482394954093230486501988592009283614311969764268251093802448720189009003744282964654059230559390319274058140060868756239041290834577240527610141988176101764242196785137178821507669143910493444216284184767179272735473591157046771157161965949898612563666417063680183741787418469273878819828981411208455875805901512537020676515537163149891428413479799637429973719047526919802559483998380250705003990427137636331527288060036050883454994159212400751986001062374919842528554585228690666763150238189228174228440680876082823703168772443167246961239740604173721840508317942649067894804460940420535693990482742575910252518440636836951172761807356565713775890992767508614050013593138343645966845078878900193246617900489575681299907218601587331474769856188620504585864384315889363669772951896449723965334238508080361040414438251490620260970143015373806537927379286683036681822503514034452592852078066873589411683408805147257260125920753822513077580138976239478532962238033378262589798902529148009515096802753340696584333160493521521932653394482639304740164523823294464080797376145150689269356480861014020908156685720139476974283669931568435205763473103499418122073159345685130454778670955063637767488951051539164157632227013230556665869018955429754104916166927251659945974275491178761078852807132000661198315810009698851066988151563476242017718577596473447030736330694160908145239410396929179593633796269459992137925466029622326215005981106221112568304266304138037518850482592822730304596706035682517765100733508036206189313126672621739243753577061493344893822109952309714624083394893132532976634155608425694265167895511130249869521076498082584562820328617470416571240563050095654690171130434008606951223375334661756670475912949139997038119638162897075839326756648172385692420989335736752595373316162541180005510056364890702425704970992343555452107810268640145706346540207562872751058816513187797986769940694369000290468583323199938672273205540712910488509457667736903584383100432618925794086956520313355947041088206047685079263085672439798839637949386577217989410960839436552687499087380399212383163291889776875933090924364557423669121174469846523172906471938144514233818693406549050155088415804269076840664173356359583260829225312853467342843713050458693947520085150770065252221877009578895939245338168697006745726146853379718321684901993529285094001058349905733137962584291748407183901749039882947438969835987928811002257876447796923979062673041649897571908988520132171998363131770454029676767427777167781348125519851256951457177460785785959609630013467425599975056973180852280987595876736157361758102711068096707799812508849264285329274438647308874992965571971954791354928236711108589330597783877707754018650268810827818996534754579520864161086905846210238263894991354060469741746502750979048193641115513415044003566935922095268757930803351587726444424361656544131498270956169178487805039014427502645074221757768495080068116267501262839727144204386280422696694390807360402663020591419357591718755057571891778120491449032087225495698771746175808845296094988968399908062279197813510239697461501407830537595199905209810845798789670315085034152951942386114588059101867610400467927139411078841433063075930053869577554416028383377425765686019515466800924411893627501079628325530853242124284603801141637622157839002921546790068572454036374535941124170661081432885908803795899019647204010352851856636617164467371839368600684237761924609967129011197083681801418330469317001390037547488602624983680045578198138226048931354482710443898902395578940574651593949168491759929701370935254443559779866741653342313907393080870777022993313725601572934821330432908559306207892731896869911164061356934989416221869258189780230634946259257156857542182851832715894968275581330298568462071099635171891576251518349062257307570967231924429927664016003120043751113779640786929162300346497822320142645464846142286225765538697251706103575688527280586967828513462982826606245095807951447137726484108047420064592304154496579497922670768030795795163391785224361581180928272032547053587337927104865182307598775870909791552095781643474903682026715135047053867436826281635266277208574767943415883033451645252227573572594563510691463482115426994938517104963211813564628865482374682407309374181820019794126814389566463474163034868606892927218455351872600720462754895782922076213691257681614279298771047173257624168973593874305156255473678380381703011384185129292612153404601082160500457192609536839478373290104983379303269737962789458134839871313696531014136441474117031240320872679997858215480819017464516954201804136405361760900304475233411478325648278443572807949923561572250225906045301096743757858533626971307643556329978590475167798804108100147881960808310057164475489228346600596886678548843629740450142798955264770097929244078344175396247819253440672808602759372964275218485007544789296179648974768292337939800421396911830433593244182140918396107887763195437756256389463643726801125966808321889849769690798230274522522723010941865258620569348047281588788975772815574488281206911005155252447219247976289612740493765998496468773067954679726932963075848073851245889726550327704369093898818072647851246266822710503531378186528370274446782436748819937928693349733470295716294756936856513515202151708802898862125492510871800709131722481725702129919065774940727219721477292100733819308445197176525450097859580472170848428216513108132518487692059156967782907769415549717599549269339738227049159775200992658999071539278028435765567075503987715222392734824544553169657736892352148059071680583557268428663762794418520580136076965384127401439153176535620018068351662886220747602041636632696619267877478706188591049148268696284638143183492317173311190545193303758327397782752611188822144238865794637072080680282607077671748074089976016820393911294017832806478275062444536630297822835060938576995100615955109812541017983138383704562951822013021887187032367901881648176767066181028092233143168103718951581152291754608419033829809536142120350051303904499645354760471525059076056859790751858181347655789603084796065580675481701057767651345517231454916852665821793112814692003948492282087896495543875598494437519468318458054013281946372895368965117615123025374227840977869187837981946372924660669495154855667520910311210326507197191338862566210066175888998220714198547226215891987976879699771547908421406824612600242860482740871657253359323730677981557996616340659263885146378559484034326600558234032165612216399394471313310548562495904433217750936525021849243006277764290017637217571330462653273280237464243611442992963454723586759463165775237763758686882132491585668047893382596921675543679911736749993543658689694924972840133776279565388227432606197652365329747041519060473403967471206179519352170683031352019301705154242268221310579960590700334886905924167961226088023622059852028700097106480227078839970547451035205894641207392058218507948103943574999811407871389979592284113199665741349043329687831232407665076996336307964187429447519178189962608624977033158941356223345473700207651717725217055065388904983047082689276688244576924519530423501656913353740866380587203929971124184893340366260900848459403448597093095569584010721362717971483033284551519079744434971691964868638949723764441089765257469488071761582982018444783885250972154262413112145893517233614655896502008668155064460762490083742059237449193850110550579506149257174040686917157437270420319970144992553090561606929425304275190830799814623728073075637378269959783079631906586885237309675715749019980967587320668878719891753382908720135932042842422472671811926311485135699813066554330796267540162517977896897802903314468470009334084273093554623898310182451231320351771437726072419380817012294361517066458415295118032691785724486869138816269825932127486510632253026732777231584241660654576866383516562858898278199163717961611890632248117416685440389651648194346022234998717867819809926485529185627865332862172650847004806293945093287478318229425818724249387433789044235022749117239112660399733324745827476559814383535330704050489050154460211538585365669711368493048246786461919672538020840708811146431115369099638716491645667536372701268909057677619465119541843458038122315627654505211542216104217728532810000417146144686854768600016971323368616147998010232488321012443271333787599533042447538685641524472548978990593114490406785637597191562258290100876453553466460085399137500187277148673229976625025556374487460782644304822103138653628425532409490791834660343294554270037284266884054838664812916757945366012034518817446954608971280774648026192360268428861512868937360558832534444328574370381165376285985690227846106600375290725321254905890665674852970188896249582137248198588519575952208941332127025612428756423464102141916666906432200414380997486869022237429504005288929720707815720653341036552429757912839769880343503583231087885123310486606424114912835214094923300245139511434688886845742788149579991656220551702367784191356505195346431924430187748415262207339334556841538137562023953420729219076178023480754973611348171575658455487767329621719548800789711001326784957901712841932592473030728801200635528981252783599113564434742552986815709797896321284992584410165047537081853341998054783607759620916814642662288716583093414520422700892979691040365073846496462152929211933901483255895585068756982537395775942671845518342045092630147510506030989762753678056902883568299121458342759869318481742241683527471016331344123462402860326655005386418370286689083375688335617297607383248869906500201673587410128170987758463335418667536783576002704664981370314366649464777970154118650094968267541589659694228347660472897303955738508762579958379903921035755309565489612757570530750611345090231292414916560089453853125301886746533128709100792693107012153077429718155677616325229816142644101958198734115328697332328447220764155539525935206412657437942589065070486322006111417488445921268304210276775042306972396552244377870188731149630280838099999200375847538161151993712277723051850376195941600384774268691272096160166376129190431067350030348446184502653047812836592448583797205577228102925289521542533693357324881159810168772280777714468746646269115120650917652031013494424991888290846173037361310045567932445601698727868259026288970115937459244605708275187773683367155761182199730059951546515609435399659274741807023387985869006885128605101357469790008491803715982180004674518087706909953980370450751704107268714670685086753284561984427818467592715111166223188210761458409935529668365252330645416996525147275316283511440415012942765133114372948215493081855404389986299851839700907483003878012280558956727285880874252491814719129128912796505179034413077740207841135344606117964029149642203847001463323529348324360671447808195295929555836453111598524895107403032505553640417056588531450705999867175871663491508529402344106177968620503645041712679248600812405514451888949980522495433155242316798557466659593581243875495942151734732758425711979033552927930088812436564870215663822581902551294593620406403189523641685763965636247937886852004506175408528329388220803311783086922051712794184175535611364546995544941306979068185457809071258909056637351071126899162808846614450379321072140055607131426420333738416889796611365159845833784983522889779436932344820315692769759235258949594406869797598190642394349750710010467363222891298504429438210280540133340595498085810575062060619653551321970818317806385114214387124709592032153362245686259510542654203096410405501573211466205109332332501389830469510319510430501119219738997670610850688404798721217649317215336249660302345514845174902831230576553575301751822153078515308895671035045924464181901296744164188442185574355904080099634570043151218474042889908930397485029750168749774032232163854966561622460148443249801588346306439606287718869166779618532579454857079128131052164425303323642051405632682987531568239766494437135446221041644278928960115538866886487775946231816928324137423762152536743615318972611840161193974842196043564360721649416423835305302389896513401303010638228782190225647373493165279643782851654920106674557558681769262799012780486493628306759395446052145528085123190852781105711194195610913194108146202073721969812553229946898450069125952925599557080953879736119112577425837680642390946050351046560265931185314474475097874041477047828783759031807725057342195824154502252247425627666413273657147288300162662073167255860187155972945739406474796518498734590980277630706112271624480242608687702755026560441487250870659220979572427271174007014023093609216010517763014297127226390249850871830337251994151374024386995136114165866024264619191341871330039049073777528757231323594739145410581538934251192591778422742335483410093014433415326228426708023227982607080956846023239379780648154667504443080329568545449210261508702404632960051129273138858688892079839006950100139646057369249440960884948134645439345326943053460600832421281498919984136552403967464050043655110247372942607133724298617240748327559353120472559175100812502951283459608886836813459747998435374535691165759113312722689837430358327219192947045113291580771202211432064341429810254064508720637649210704329968566602201444310857239517819759136554931762096905916319174834266688230938180408100970374838298919530398827613127222999146337527054218446484719923926486480815695125493898568566906482444819459686916367274183252880867941714583099800065863761432991769353619049146139329827415669930982546237544705520956731760603184139785429053623774997196813042241418885039368007724812848748489022646782198578621246559277210493263694625033756532029390358479127047020454086547715103178259792185663260671010791987414112106024174108957206869321962287961094814612714225203427776567537625197657299523874136574939347977668482408739776527860408680792964285800548747903994794526194371656577399389684091881138066852451110455262338427417143045276192214297012711593467601565544675106235592839770704309923238760936813205129908324751996620923700270403823829157710454346514403127551348713095686466555121696809228575320965587683943924847479421766654487200179400931362076384195837879207852686977167040096005946178120851863138336356705112990806871684952361480460440162680004296205988488886664425387935513164407253464021009778193646864498548655305415320665623866058471215633119548040151530244592490753550956762974045512877889366843781255231931992150893006549167248284361252738561536736650638804377341616220828118928197799435733468002192611656537060860246346815413150427899452629175910592161966013934230488769123884857429820204578317643166629230990389509803609249068674682162968343174295685255941067105966615755521365645458631405212198329698803945050606978651620578714344175736610718530396351503333396982093731214579174824862928746600993520232495638433077671214269113132004572940957399944128184236984302910413922244685170537434310464601702311621553484772410253541506830183432121199884614549970030193742136761341467720358546251842775180300826713648580996994161033718296866483298699335216806995045013054669457600636546681142257511624668648637026618548233584919790519884399563258536643382843354802325216009287760676564452499267567391722502437060288289321330008227793194475279264104974990692941754113986919929799396830942259762686719728666748205466008639189928608629696155429563214954960114136054212574508063954004764492956891174531420046276094195339192916434904879474601914036733403011016956005137914786601606754932614080896119785528302469916568126322037804431096027680811811136854627594834688997627972713099604288317545682288871014753557308167295187781052419625325739597947610586637899371080721073723376543011837892182600288204105697260901570811192743656399340412834110968007417765523717301220031240501991772362613449760569594966264641372008039227491433928149014675827374038179416935045070835194371490166128948535625974253410289260736861650940071712672818352139899150490229934059431557092183634835393184404654839997425125115594018963824752183928716835280523778639025574025464558622829428260409584004265209709568606304122925691912412823393674613267258224090828528196010388749216996931407100065717775792375548282702562324487066464033381256674805077110213443061778168097019146202425725923836272564318522016834641726909150164461822379086635233560475624093769335499940889213111425530066748102806077435958928361994090884132227053470285741209689765175932163068992504067034438028438523810831111230586827390596886910603284924955587171579414138393474681063560722340358542813519824406123272630678133279523449124444522332352039375671628234326501041877133803015374384529968447127328400938601874851163442882496946194854320167930512997278946558266821740683855816139656260535665135275656340013262840962820568083027165284529215830083189996143086949547742712694202739540329184064066818491563486121172668846003885585544349531621523160131471982890187055137195736691675675680240532641094278743435259763504435558121148439936898617608546110207614875659748565339093237175543385413027007331777232524245134970218082269952389284455658856759762053589393278384489927161244106289944096352864074498928458978894279717384127085313110967783657133715611362170843084042493185591305416401610229042571191006111058889235621198259722381072279033361115658775007331141106687021976696514497057038462624851609111596357673724911908407542643293599660229943014812484609936162153550952535123557482175829290100086467262394932074333550690525887584188416894897701046323337622118705400595616827890988534850298379268995170593460795188206734467297866568584241396221183063960822724473159809824974223146922520236325023613304634715976739389643928227936270633511242874214828075045652923251892154487820205883115768198051583245104749633848568924368651695661744577890591614848004014634694263456163425319248215756628009811329306371924791515839466202954238239307728357413676146568394961412682081275967152675382822094859663020298169163165187720668487325615923516071622907370062437721791301569372040065643260175665205979401686649561692917154771791431489621104289218249273143678367293641694075542491104310228890514723563683821004041494819670070566658427863649057456609035072219824112360860614689278327813775982108118765256914307704144853745974134419685879227217843380300664542988271014912718002799109279601525170874751145772139967947619096841144900899291671196477110126810105740412754637015450123425968841175429469539059017634178892887126090142272735358103697067684417182615559769175690817252618759777003514473341975291358829883636115686423272794208317870247367214720970447545718098492849787627845574238069915983085648487338809556415462798372390117043094125146634461173123908678758013394461804199656371810435645247353428238405056038671934310474132675554155424916815228573708653076433272008374711158132925138918490521694388804708700176856573148659727213768654133288564361902881257793574964143832085795704366174568392305192537230037132455796304745457530319966200071356236934280247979578693122472215286552526421282031295938989731448601572966638868512477045303160198449569561761679896065415826211533155374453441369826731887633622056318340653497752761168994424576501431083479044967463584024647049710599931430549640310551048054797505762589557388089034050222624203479718213020170462671507006905174890942367928222298611636318519659547616852500828311374909645927943040908204223037629204431624643297785355381826003997886651575408989942970143757986173780129239666405433273265518043343935765860170792145875343882436419761454562419686420954614232963914408167862141010203305616880023383311452199965446444339467516338541293593090950679053853677397380590470117536537953815711465637572168694294097156986987638638726992553638850695196376520556890491270061202866920198714597726695749545576504461717106847563129823465675417154589499963651507015844586182370087051146629888066829108710719577924127433447062842445842556823624036761722016327936575247884638176454256482799274595469597304612179387209150647389190888805983586192556940497330132330927709399115366696791064594629508158990193256957705372653621867132483197410108169638180454043004103351465928814014442389009799092658596900866965045596551619602004084739856591173782062632420859756430906043869808114864678483062488797969019220583251096562762494231344153998723182788150758210579438324044446997777977145116943044160020842139631324121077843973601520290392699296983095958110386277603921005077352477835014315590445307199182579862130693420989556224081666482861252119485252699022925166633517382867584046168760096299844842981692716502633445265559314689727229537716222762364819147001505370354058405703092128475490939584222652172295687485741349121282900540121463503747845108165481497673382923666779321045261159125575912927398384272386299181245485712433014642396665465754824186331013500187746111414124616489255573756279032457157921787582846517185434736089557814930436387606687564721794421331265295483902445436497515529815242952202369999841465188712641947383589519497972052158504997937398628924573791368080184732274118594678116753712396663404843427544180420583491121075953016386273209676301208576424428728716372190009451274291958089998143062943592307583789548635348794224592614871308012270453863279855120202602477072952534832178456877384155888034883486827745382635687578800710706162664760421790815802658380427788985642880806248426502947094521131761805814590869273926092369215701231043600521332963022092497579553415330751150298184353827255025530184718761085400650246594293317503783377477357640012239063958823526296205947862122618417585338320426291582280795711325335177146214614637870112706184602458618191374661659966338171570189810705037864487920816672745681842627856051388593556635188987977422295520000580023762415994162229056286652528268126653156889814206768066878393420702268585680156186666076697082184264650447687837130828662727606975175579908304812195466105149252912035393220504573701973819591622892012096418771950348411336034638589961407997096469069256426430691400377049465516561997853491431206571173977363910680476149864514614654715359334784324044094183278945501821130684768231285910748381194974797360439748236366329175943797762793397453938902967035019056378765450416174299626959447039687017937324930567081548507406062033257085194569577912909786214121469368606164509030698812480499070026819911142873026102050262052836459457934800592693403634888073599311670760214888597429502223621595502340848157698445415437685867935385542212142312067152706054366281098738584946540289753887354555312248393799256863424919686500262241727680014986986985548364789892607992552728769293375931301064956925384586834149989752473733926675227611102834123406076707532620027445797784987020102071853428404808625725388354631017450559834979166198599301410358890276772980461005403382098356732639944934109380089154302787423077994408839130605831120935293682446562657402552108132922757652639923753027131157451562009876977970009566085239155385191074940535876988174963592045659387404801271913690462145350889663472250100851341049627966921730078756721202364984793729231167026999884113467300503029291624510335016338646390557500517844744360331327349038119839599052090868302820560603131601564105429618311328759809049689794564826356950160704187744196301269333776438694243351939013320063735278568813127277096649348214253194266307310943797733967774786513072273986326469207887229543452824568744481986323088289162732736935950177424484624884948059115626063366256843912455208787966076549173331370605224471373359027850451532909093104100618570480760622299440877564977334479268447687474305919006524982075044827419686191520471047488623063964222676710106992108271701085791199299654836634810317129636849214281654534248215705024979278328836487374844937541175447836826415021489674841437597208899403807714654586292506521417875351314986899268745494451783415884166974989543085592139794981638514168878863514857425661524757477432096945098493822500936844739650898941563567307046318039288273713805582765595924365026804059296436532366582195806060654332707842708050373603552548597905613813241177048385130377474921950617499327133420523427727547528833209821532929045995405883572905490547743443567478929769873325278366608346461909823521499504212566164614847021608473774917266579081036558292676309072397418528183783565800918149377270925121926941105495428497319244924326409148719220585579894108029283116290509616685692151704816372862118310178410697164289707133109657304289499635000174719025913020469510960144762333528448471511139990888391201149325775096183588070801552741555635262791280009423150670031697430792336948065748740622104828335708446233408867238015619138370383795961628466599974191238913543635499986730532201054818711824539002785510430073736482030870904773721983060272527956205300481603354240101581332641726710580018145799790592725691732159089755257887351280070839758616955316033543959828336082931065701051278449669989228745962650764715397543674475632122143511553936299043569292392978443010317116924345763170432444721226646480967400342198315173494544784516436242258093842748443847318757493725664094018115874672275544538260667989308409769107368791458386933246601614264387257001214866413271355420579975517833970302134831811782920979135667045957216053654191296349362139721601702574188585195560734087338687770318179241844682272300044587815372225682969847447483883880008441378138283522961085197737120036758335091399814107891731439956051702740465665835203755391135318442099473661850020758780002121113573545231602342590430911794651550642317989451009172756544116283281418359037495189355696778815435362042079194403692317585905558366313258359796791547130666902231519265133471679147415713782548451880532007601084102351014282754597443549718191391742456476390376722354307329370707668344691898383923480932804318967625820502898364921083423173532507325613661861309809568098756173899605918537455356528538927455308445714388079335220009079090511219312022089357188942055240690181578862189803337733085074694373456815733507608680694308547248707968109807838248380937873538040296559698197827328296037044356667181441372585944810840869371507840094417292917152055194221364729489058155306226464593366998385916501656490484713567915996080667033305144530142065265909000626887210441506823545056687813890824479549980254716814468384980694443261179259230253976794435757757323297837380429888444410563829118704883950736002368091726064259699472307878040167113992604359551423830897826677060328903909544953764822456467750701627330775727368628693559765713493352931127959889444914843160065016924296718720920844728116150771356898274447301920396311978190467484677015844366287193344992123728197074188455291177953975262891482592715918010781688727181712633239500442915064705096611298598575353443373614735499569389131446637313887902221543418738449142677042925480821196356552597079335077400971275291055448287143623896732506142380154153667024610719854207311266411461275400886560661754208072480203569199926965738060885960864596569299844014955685109536550190291872965159241523935335590732717572078212660304019874211711277849849629650728850750010262711989234149118970039852753271027513228533064906597473015988577667600484062177777783726147191259200846607029148687015924277116328051488178205201108358251038867350396966802224717827724968590534285559874895155224268849662508485503228635844064818172063249019956053820761228413413245750827482236206913423707881884573691543846102025376960904487438625151161982766310769319116378542829344617756529358355758639352761825550065714012769889362582300445345406398721687469055846569931153342791431484061620409325787638573437446808175441977959969059463568565577676865803481380183503320874640506243810688883608583869386514779661756991918766581567587995604437548326443166400984765363607430800492262278305474276119774368433659825340012376453893659501842426531318355920746560689439108497469989057106431980519190928510692435592729290578009915748656392157429949550095497603770651711315213630536811135864991475295437133798222534162708731557257428998377989605611836274948711112734070478101488462598894913645612523497438200312171112906939257339420938602318050620080428076125399794928161383297650817287502474331752602713947139753254764421200873641718983048468248301860256845878685820748617432965754630674034461302626610464848542745072927035493933214799781511567036790910945270444615099590383160323157680356655733198077241292899070421182325787953551485016222329714618290113319711159915745494091711234037034256123602133038974761900716261695970719301693399194107711919077247444025590851566510362106080586137441276032068529707287051122650072959729938237189679286827511776731527540784495890318520178861937726367725287844696898945758998174942637749228938693181749470296566023510149667591770148012182799900959374982558150042876510493551947506089902690323379738580967080606802969553504663537197387127527768471791465935771793110845099067736531436329085740396906207811036037132736111372963110520455495418022080354439891034450075874830878311810984867436854407285025890191702445250458075317063599254389408607338958495175177632349225877741518659728425689045027241034244887707388736479441560236970314326557241826226079836380144698185082495095827829254839277737734676396335982553053333824502719911815004132439247367081087860490181338424140780217656736803600596179602776763516178697238438953893878083764114261781956399378371047064777092864777375995752746760915840842886471399753752569766458264327742211198447338164100732226186184854157525106059847144371080013050399702030190233431187431409960208935716174471003171224386754753084542714396693280405579761777445191743382305603782519364622807380070670363061490691330135272133948443291181123731255530130376355001837880947676478559205935263681901581591121428876576021207892343350984661141074870010170459198270765505596265994420107835974525982760490431882843925121742486146223280676499866140836758055281468431897664571995237491119739227952753118278342174479593565488385582355997939480542545219184529180380619621737164807639256904011454925578067527288271431759209821846210450659987431985984983185740498354972965989144823893389685138270746580639677919032010058321311149983661092988998269091528869717825418396858398267481806608107013724706965930757657073303951024433213968800350362077745736450556572440454281747271708314976869171347330303187235217172162438946174561575429295513815927683905329092734352337510392195859374461714815757437188524722070666215862228828923895435052617602162816937428046421701148990731935854656428838358740045639464463561271884601069085968768378136428993590044844026294166939420036212518243177837012152588797196347284066224044277021266371837269815138527271644347394640758611859486771336663247438386951283629288070225204605198870328939671771280676589118644527426337385646602558220042602515993181235488329149108550292248663492116274470430508180305250211692641748233458888550953695790889344083687523905784672373652187915851868053483532540583522332718954992605634909183746824549545910256047539187238897786874830554136778079930830502269915506611117234406350928324131632924596815336805465546437839877304630016624851011938994821226700074998704087704757290461838209188133677683124618903321937155037940950367438908298377460535760891112671633659391364731513631882175327937204103804219007399340238195315686532572418885079064550309699658996332612968054539736436068640169706865678893074838289147305952568269708961313760444410375350494113635696104671588129812967482994166876522736274285685522131185631420498741685412071909420428674980545767874168393003691246809731750662112082925653820002604935460815194919540298324885765222002249160931229642554267078886771935164388031410805447665036393280246767896476729209954399366861305794291020176845605333481842161416628789006817380845488343235582754829257975685932192926511309596555718328078402822339647960172762869886253618457772568901377466390417422274622646782628569302076614731169543088149362035635317628479563346611689802692997559867431074122756358743561430106677181444868304940678148463924937993804813093534773201487887336687669817037676478456294472403539461102610199012910506154291198429029758915255514654714487897076879763742294020381928140384743421204932328417331970814225028221342565141137241541542970091608377447774081468458709830443448758010194208372011464762378263937084533963871135026878041299445667909633142655790180387892886999746740585572853299124283180644508877396546860814094867198290445362545298041900655312286866757946435632602699124864348450502684752056161097050577629398508318644221390905612327844392761288759196147437928721136542642008233941143439195154901087175218087069374585702075698672569854690570940659896454069134202503489416277715446877689270300100083674696182145475533056606363986319928378639871913062987443693506177029815494596507010372763291188434212080174323306298348647314554609849073504703949087033786549264299487506535039194775999013819514934235378217078180455258470872614437778816324247386487980433693224899454071423575553359348339141360141890461652323937857213326282454536168716699472345449357310087883515600373925726022786142102636789774062723110442195802573829750497276369338381581653242113859529059221981556132783610469245164383467911810522635059910716887901903192533856456167042255075728351567567863332607770021567649768166490355873246461977857533307029785496897299590732109129314785423688596499330765513913494974823188703605753410386900927713723122259249238866577937889694266618944346510754552132892834406025923262616588447734631384339993523840838274606434269376357568543552134775701244315463789574502836304591553930599167728826583104155496331063019059906200208531507937407317568497136685461214881888751344217969405978860056764257999652817392546297376292022537731169071397075974193127798295670073515002045883377561893099368141126925213060014851182869228761363344363154853448064965993328676452287271042710950197099750685923387570430516878800601824953278000906077941808913380276754573480318274558942112078470758330174373955772962988767842296917645763466952924737549547965317278323357459957170479444165774462764426235514484487154691815346697262689493015637283148645555910217431713035032961901836435622263518413793506554820928414037904765887883611566029922088096531352060581813736475801624730340894673993626035507827502459380776838135394647607164929444048455854493947786002976550919698226559448454544164044225367297299608306037636429172445631486732246614611321917644564250251117515763736495811920088451359978421564403292028693467300511972571111539371245212775686139212905782080162015183655151148267041578325502277189362905290566739746861175385327215305991036630897037734897858995968567112563983641069204095053718045803159061617687903219887656037642984038027976230173308259895236770047645762902096050820556286892953606018712638876751672696430676858992424797514926116223626970408371959334460528176076484357930120437079601964324204206846806985011221748478714644693711741392078723389854965772227658552788902416318796516471952038205839791606432777591815363518116318324980961058988246995805216612310980054520124554665501630457130881053000555596867783650023031826588590255184822806660905800500264949266487986467135658296283964219419227031321400604236854885324418698480755829168597739774030140545920792703472993034922772934545105379364748188397748004399032179372613747234357769126836135462681831147724862584988201510221073496039979413284356634109463245338335886867781734608419546101381576937563803876062804482867595672482148415206089988516231648633099570080394399155369320246017101533662155010420598004348734841850995639425376359379818525807467964705758083853012055754317360809006897082463698457119936652977741196398043329964518885286785678489753383403566041234779984368652071626821920766714041870573899133877942836060018933998129826642195297780671871541819852455629444656757341966617720494628779497561837006889798217171680052810415118674243002562148127960413079617622851211425487768219928697109194682071268693843312051582400587466565153613397270838627612563827889842862896895708067823428757406323850639651334291313285424425529586332384751821752577468335829611534943933855589133859499497821966289755887162328170611327826731118563867842053954066056981285751747780737667228324540615854167110996883749716291553115704845862071801580384495515521724865686158656737135754466506202836507916978347660122375326185782897900303659926272438941010520246451588817459702483031224817342419997181091990745778836207154850585161506195552902149054392756897106214765972466878219670736715602885795808188104350041717452575925762831554484538738933264325768482617587315251282813313088013968829745010064175780930679664397400957785438128744334071873092623318653862347924352152983024044572611817530354763965122721968937948575639275280052446642563264512512303605924389661905880100164578869943068638392896480007858384192465285525781825706150227412873658815613431359642291805295549868914401554251800428776599844561065963589013355673801856765025331387274439120393059135549877888052426654639311967367399673656010801805590706245735949135539224312627504817475083278281700605470086535027219590276234911305049284252577253634841323960905189280167322617839738238849560894826173583951543829789290509658991263074495751227895034497680617669028971528898589490301937570757552952805132030912149888091327938890328867774661308385164914420154454839048022436709508079750641111319035558812578821905278119199206374647014125125472054890979816335301971641879222118255514630107021752081992145266599961441487942637849379078723530619183445042854246264272482691884532825607237191547489630058652553792842549110893061793541791202824706361746918173814258114874656502002310962677092024139984745171909252782750422109135646399212276150637896702761569942855622149817559254022361479234615243343087172508983293659900151979783356005934775704532843584858480096710218015555003012438639974316122284673761622938291317366755651791221851108725789647675995107186602602188260273845044006220367732672064560994318138251112544776062289479150706752089261482384263723938093723258459258230998964905133123065895106397545457867607635992594049820759701498544633272052202008361580314321569047496212785100505091333975045478081745550397998654978555886958850559365832157233729216265248873722531171283285687585465274765305586501295727551156001386445510052513705455369850694984955074946998885277987646969375944935555957191849841928443397019380144026435182071688900463554923635989167423018879928508169668953070662198406269446413867977106980840256757515631460796193796968101683860933643056656558396235656185112820403034548246523575181739118687302732456230936673484676394549014159768191463861037235345639472076469883440711009199127888275701190378887435959997277948982146406434690954249497103212114117494989571950363113648330482909807598839551870974332738723104034371012313490794425855922811039140789749760457943614230236573702060767414365714132086956140746683251177123763643040330858422020227585977002809027785344935780516599714129865874211063175477749414103529280977090242275097256735468825901462064383978405646151488221620956317769608986631680106648846236953384090409219485615265467836741873427837125122081011412348527922845800588434219924943234159461528548622612731373103123408205356047898532028265074767785770704589097621335950642084661198501092734220312894945536515283734686989365419714853313374248447083444819033907961233135461896847648491483591353553371571938526488681512824994696223191939669418244152620346871074711240495668708889064711838014034871742250092390512524896209733905453460364849492735251290584403297404696462999438619676539575970281511336151374761521688798780584883938194421079510532093829259780410460294007404818757506438072117450152878134868967375271995867296081579593363703317054384851446585464325881315860783177664211108513742308287734248039135691451212016272082387847204654537667149795744598210130299010319687190660152499217699252410526846932771075347576692024528155873386624605977949360116366912008432126356489869479604921162484375064991020566611447331338859535029555139039354131422061856203722841958599215117029906080439412756471993483350338367503521099929918169456743848937310041110749335282814946272382699118857829810629687340559994310048531599570952325852383180222430491279125676324155033478747651609898798572545793412218031918934198219052909326252725717224385932353297204684615780298802714072765444622040095184077412569582321193867573314401322859319135108720794390483067205773950943725193792272292845589512210302292631420313769420249667070976874328261636544231843428982965713404872847130455063942468157465415700260771433266675165624656556977264640541054666542381432590649391022137436270624273039067266226500869440842812403927779684447805420376855693528323624201492881579268133680592212072788496800613350423619359147511949475175317883653311717268432567115845509145538315661684987712703160698426669926463246526247850591375851762421722242821882418806288794338471054538958119029281299067633284275047617333442085276335529281021844926294953021808661058263345370516624526248484628649504310714113095580603411927115449700018679577439437378115354198067645402420914973104772887214561770560426321946294058528436705319850618099556805698391078264583312705779400312641522547160642982270926610056644604657289146688717878815688578059760396406564023028699644312103151288010092809074190442419548482185879093072607637514022780068219258886363211149851212475763206399609245224686056023867470704006518926017456202162972644258268168754727909894277997004845316811066931457977428245665226895572469198050293615397011184578302064414142236988030721080093025332079664195939766101456319740252853234011726118919974554517221549736487766301895972666038375644588851920222815702793504518311636639404204090815480952288922585164613787607633326617687814340594679034492801543554596231498428860240565414616485835943999053862676385813338532149591301172640538951031334505203360540924421380499067314520008959723886673453003930744916965360795875657592041384288918579801742309425821507515060341371923588040374907670191621598017317020085402983236868438762770444073226295622261255737720306548340379634101805698660900304946296459192682275316410779529583165492789914520613556581124390412681603044494183158174996552050991982074744201570970548644323213913160246817329670432891217915185959543222866790210203307168915931438631210746532646091193428579571401999348215512141076924270833940221525149274887474503698245525872943982070646923100470231277874178081951390483443170584257616647082304701886923944552146696069079033319030687554053156165935027428157075393770918393217308194810427312228536386556100253286378632632536470825832652146533807953470497929204975845304875742496993801348792541659268576818971107851217668603257986814255466260696223738674627288896963013294879038197239446696567764781101715198536961420513463070486041509781927104162468499445841786116070225892785201430790466272079487949114177791779000842972684054680263451852663926237788059222724504210620729737345087968677431983706730880062406198193803730565988173135063131430094547316902697609614217248584776441959299286452671662480105782663382479166004194556217891521815600365922043606690787579329210386376180830146575422213090222508944242273765243563000111122724601310756609401047013558633779116391268674159111826718198369496480796912345504361774419813237942115490639971558678194574796273765641711240978568935967293985546980780156106223959718733344653662164592455869190187479298054703266383510775694592458947294427339936929782457185633000064699035922947200315598677838141918773565549254506938893512373626384172077981099480937125507089411284533668476062929525713165610105496483167853040037290590670201007332396554254874108496116692880022095217968583895114452222320079306389908571491061169152613825198027179996031701515501481717844797998974172065091000205550861690443789949388072466710945861567877178700556016612472809697281660885063078417263476852567839841074851471829745719236693581878850938641483506308013296381398507292799009512835639640094539454346461052505925838844375908449435421256151255436482164557936426640931874112300697547633924183217015838089854230523621790893384039222380635059421058581070355929186688274597047299426861096238386634994696884164709932060111476128282977538891189680816391155411673610609365292103206444162703638256800759757757544476587650570473825201696763072751144058379574543908584240959095561288694117650711887292487040827148092559911600842605778258120039197164190986546731743393213775532152072370031794533856070736123881683690510441663039131550360718019033215260847072509811842802740409470808680493733621317132686051664452804227220722544052568709732050650098944980563679609387372047697562674540290050063330759546819067398595651514110017827257907359995522323477965576355596631017279008807143122042596178260405210260645326276485024187158338169492534955158239279244204124732997009020308291593731626521659364314683117428078189944166879707120036304816937729755453408019377171880227373948450746837994813998665844911301559191822754575023571987468371977082605713735423911808804769836046677283897649370994759335964056061979036454272283602025815342407925897841616943079640373319497217684544414785120190543315516512047489036421081817902808449352770837317298732817933428857555791642295002316123375525872766792762861995086338046489765145134659387039498393994581752150860343292363773899538250200469484429676362689639561130691826388560393872929138649995493302802067411530253145258526976370845417068931938658277377663990232466478588826769649337236678653908070833033240937161709355400769588483693794845951653757099673835057792112358795854646043038290782783599916470134727775020024716865892870949980301596258717537282506359515600893601190149566059564855488029334735775854356614280717148220411522364410556651462761776927476927744616266137763333831247013820323342566617914771696521017485875557335349465679343007089586908101301716778448274329692906482552865113392504549816485877392913766265363269900281370969663644824932128736195566816236481672077302751387772844320327281721458482670674241699410675378898405813925046343469577779010544284313934529445958662682306137244798353858489179964388181457296739506978115070405369869827788810681763411507650755289669589529282641829841316640233042859084505369377298839163510356554055599024032450477774404359283423230793158477847904737446901238605067680154749000355293798264442821344781816120417177084351830796080859029190503267662826217520908573061674346574017030332240840650457227396360295367405473970173306068869674259814770033315614427388218715539867461913058154177845445739542347688453167829004627889700886991410978893879859093033032684940597777878986847868085068381764341058218760318092371591430806916066851307437306730832048621989973333704549429666695062402811901168451364130777703726508860759044117703031463688960356511403466466084184879775164662221638903318987252448674753104043047791126630215463847258643497342060024393181780389271539520504018445217424146187026249294479676591624616803507484716917602698629230406557845981173796883953495860981543177955356627741011348896368825976076447073423415949877780120836289753695640812134657581648264337144377168193839229574048358755611633522609147861678705686189138110947295223303480156993371677572644908193767038298316140528651880229582152967148867646400373344620962318777498452160225862409423184549547201977869911253202007544239262649720590442467171840693597710333551528008214751702828898949160185142234102975578858884940843283991291363729046138552993871396365301717861450003981793243450582863503881988566908502890536779286699530148745384546464159448694172888675454895495094328051397867741678824529947839178711421422301247879120225799046276139110905300643938694832855506933483865119962949257537767212702087294188520629113020207183625953245038524009304140793307322777600116462511476752073396448734400420926359952682789421698961126028712969071588338319175811965883255647510135362648460992626469767302625224503035319289513844281159579506574470690063791636983356457484877053952055677174590102528929693647885805318262895887357318425821601869942570610989008034423777150013791023743245038834206991852016641126437704164856386311837067684426662035012546299265381825527411319090133359374819550241010941129256196121259757592276796779917277811138211114024252098832208107348668702289686358182644177158240757588770226171959536465474108472030856197707613680012323707168854769271027450888135663642596595494283503696396990709305821879536410589187153400585164362536753505805416672973538976912466582485003938772030191401776196456665447122656598153879296944046401784128578948469454059134051662979247335327237745106478923609020900279685652158860827650059426110861907597641033767737848575095139844864964234225260436717003229753143374296065873245066565365643936469129972116680815961514626619286594495465963055330137966950725951799811500698180308814342662680317209546797385874618909859964342254972647297517069745205713278165980159699915648967386007398896007427350785652918163770377335783776888398164960322978950093624575355562477046879804800618135197373589165487748802378683870953113083656456918998326978443643158297523721456006346410742563737022329208490258503789367391914393998084153697962045846055659495147118107989700979595381971142535026820112611476140856711870617136980552438489807434279589630832607117178597900346909233381197048450530268763920288029391647420846845810591487679516527447063665704378734496665165626996925183094462608817367739473821125556712486015747946922148735061443072048472081839533733417384145134477050094103303542856816191883112288078599557630176813114783587222815044697611298281635219273016652762650086995008710171843255494573622046196480163987631338185933158225156089298513834105349698658247410171093970792346092259239035690134703862470861721021285163803518391685574432474537429653721671463444415424576673225429478520751520326139328190385086356181169988231998654669518607864948808777936584759711979915454528435920332579786264492555478838658131932682357420701343349716696148663349927192263435136064693535454271122316312807003918420741060309275457863756219718450898216762100966646265032699684028056178330626333676464028636506533275339675136600671263928541029300061789980966642424579163886056376750124278120188689828941759509649975098232344267063958063198184825828474205750345309881020711049570242642632454054645731133134170389049179461425041743295458039912178661169020585123354177364559980703200363265124900084788564559271525154904826732937033157726447141505037202495046294413000209785110459205865331741448976188220050138667452724826153263377230470633280545998046749708854053119724865604764822750641022116556021729848850351248885227183547727525861067271177761749055527770745526962226024823514046323570322186213020591368917570026805511641902582372837316449214459121082100001359483244178947923754383983007366202112784350055111132871384078869064597549469729197498079626233717269754956997403837377671796058913654652852360596440343159110570128447701562251690471876557190477749036674473540235083938807594277096079364051656281296615151604109764163754914762751858624527428187860421351043516987620885040415190382608436316869965562480752285719341788908332414955794895953130337478665452315927654406324594250346321871151424680870025573824834667219848409742051183028628416646328513357662933022026166700148478603530376374868647317094145321023346880334823290361772768202202597874046938663252270933356211819676876964396357548972634003948497971564782968970072940228327896310582407333613403975735836294575497239124804203016671871267689043367773607641753728905489219532299340019257938365125335188427496767540264210358540423744675379153044415997926307290180693750398234158057630662395194526275650061362115840820094900856706457991460571757043723455078458311705898380912251046683449418353679218185853959614669818923843010875224457118228723939646752959914613388881242989365674533202190087812877008446808905989389311921579929842158202482954984969315625751226736152466423376766020006819987658893834045025297493633851419888188357992651278205624516760194400857483075471368058644130204596898943017671948352298930648225896164214867997184781944495883421714757692219247040456454008866646702257125428518428197738407707902323560689563944340827632236914981646982707733186813540487543223765618135099959157726376265507178565904862436590436196192341114787578665288689156748206067899257267155811300322694892781650224945825343666151311354083887968102185558541460878802523732433463327925893276060316443448862861458506581124439904371211926093858800499910191789991483779728754065323323049519227837393887627296557661026112050913846513914297725760371137679297658741784669443516102959746689172409133117114847217120346087860845633171098807534867431324637454978961232722755871591783787498282007035245687742061886157733032656993183968189455353540240386190955813314850834686685892995292831547154595665890647524395131810791925260562146261654079658028387546578356045269717451855174948971677962415848741111622224364616490914705103773190169263335628203435196359722121318279347305054770280263296855546364798045353579503783592325089537032427309330522168906945875894044965187710959957685151265808018875486825348934004951463865958152606763902600647451997362746826357767194419176925284047057179767451610410569325249776917061618230995090650747177516016478893407686541957630971200412792359306225673249809969268998841027752972911398264669402225846563075437685770578771519273141938012399698640225447487129105437681651852743442627000118248917968563584960623976398161786493868624648286346921392557595097594979681270787885668259143988256992930208755112436165467285080103511509484613933486718697188322717056364871115669510132264166889942744982777029434628602381603402865442365672681283751235428442180944795507358325031720097895511878444793724018556047257749734841462634155400185175758720236775200198314757145084595179439307608759841073404727665936778728223465273232012914848291994932059723469571151627162321894267140070461039725333696157761888419952923481155792091829919548075544453518254088129733520051050811230490827841319472788483246339033192275942832654014152957647379695087606873905954330106108015698575263965181342734710350400212968322708654501769933923154917337272933779196545833335028055814380936374432719430758687874883940560767593639072021985292968700322554724520107151089670057269001746533370598808785795664500359204032805428534979720981918277693447671043353670334231921317501003169370086061537276656208412853821520177902363527144202545139344493735313206838603544788907096876375649738147342227899975659365262755935162618595980928247319474446790631346240401515642668759182448831100699570381474513374374016708350906542606059455056718542244008589492944662356058824834498602009917557512846627740511062334211941324198087802448323257257454921081748707623579519602685521918165709562733692708690230780018375162360182410983228792710711926123483420360054216417875386487757346655107343316714096094701968547950457774307373970459713451283097650339305784744039561869929945448894382561626464294610096466827766599837721812009588138893267485989080925236851942305157423588816255066748664633388032881789354160973643626738037046497781191691725104587207091889575459740892643639954376258817577963497497103467823868722626221198292679704994469810350963215786268947803999872682154061106584852755302003327903511724979710604961402120564316339562930673419142095618017819793182116081485313423229155717782242764557493015600869562157995421054911336300712697721604264208424867707229979355611412201919944915248586817904112706638591387090401189774413652926790118271747590533465899645114175148078568119916015019206771810537890706944914063603911157278183074632049344581719487935126492947564726088712182754502682467753031250194113095571211233257291401457051178090770274696001340007031619698074291359392522488448538436456052324915227538402781925464854345699415946878990897420783413971993498197754753526130848667732468412419414102968404680483425306118886813393805506675541923382653564026563140368985799599114250985068397698859716062809809879302362260176050701973828705020866509202824294798418453067555392700525418209568094693740776161982650812221037120738786670176384411885814292864753176722471321651802480142913442891971144675155570869475850515234522361113959187571675885610952909473843897096657289171184027306869421438011594446933251627606154360118448661590458482997295462481443336123275751001403992145157959116013361346022189835698849652076945839413839823401985925507437631813675201262419204504068862549950774531245932143844697847073758923679941333194047990997297682038217788920848808943652227051821374166921565212831325366515239199990474276394840125549976285253520749682494578964036250358385565796933026281983974726067106259023576424780843755676205581889834675892910675777083818208517920200284564530087414274241712682249535353841122491019869425572628217951413075227764958760796384466422527289951133828498512516855087117624258106962094055406740198576193743344206198027640113308961758063053006329187657873199402376994986067811686243272570090856846270991200785668728696750022719859706569736443319545757710771324084783175384349152822417766300245632166440840482758121840797037095360626600242306570983315365837173236375116280779705452963887939138788755730111868653332984975800307963087037744246074183123387972727995159771905420504128737126219835484297465128911108776666725189239855245520413427918666444031114878307550129249742599390484938884376483328823993230187673447038772355233621818747216791002944608461073626585640848085663620358516389444954129194039972802417192340703495926155434199499851078432473816809718067662887060733249806668062809265135388425912415411381694187351443568633732781918526680240229529016756748017229860200905077305381997602925381063809197919626953050819531964363963693280731416875462650447427666985080424473616965873180422852123528968288871619237063541889182810544192980120976378774937087465032654775409648010348908958696145611746037071498508908066783138473022132318455356815236201464821274102144648134176452275132238265107090845594390890658595996010623572227099524395824876256503883285538902296536296237358608256588115476174114235390994594511678955499900494337133252511410433924658704972846176486874544590447202782401382403229876137798649859690235736594733462502487441436410359983792438205038846493767316977633668640423306900228049107605984750347267318450350874589007391229553130491743539629151294822306081033879140029729154292861754318346990874572783584011046717206140473526314371447567111119767359085904688019188064142317221876458562549155254413522123757976744377526214873322209831014139639992284824848652976996844641985853366477416662256039400858464532491861153110512377900914524332260242518109314630517228894678821444947389350903828131605853272731113284964578582403166368327985295601407057885619237894636876413299868629764801164629951376993790648162434023428405615157997208053319116644863562455331316062020830292342098019780893886127861972902439503527158029053966323491158295229035489599269310358248510643288187494467350310735082583771264985431251575076801091233003235586808131360898400942398640386318037811869684430025150334306661457519761982038611086028309955532864088017566654011875623897932635190972128242057605505286470562681894013973499413642201598438208814745768661497442017399642640445491044525198924861547003234722937423219474648025261185319429131218153378080675554279191688453931186227884516564817607810079529877568652590490270329625944657789363950342116328679329135657901185419584484849873707758771500546139503487492167644361023842286524686858899566803657720003999335388244429504798451855500463224118453164898632772825750607533149522880394530929875923275642194378425962882256952810574477087287744330053449169784665061055057147028922792697088118438496432865082289924980951142556058844952545416302650282385284785428134159060104433095964044883975242353896169761906831319544877052612761251124150269264661273199496409741755095481239589746128802368545946517431251998105479571167156137757421115772318222170085396070465293172743063095427857755310339120509322363309614384051737506772494444261561273962459287964523966264002886659021989432791965582112288307024987624548845165668159442566820628054842843970159480380259291022305025995609562026173597441509184883823840269580961737291351888166019018731392843477317171078122884748806715102066087933799376950660385190298754238447230657214503665348054363893898597752009277907297740891226686242397130374832258365352988749579166559480153279212675273027157371839561990615710835748103784766290486682850449362681119944856671370951517022089701492129544535695637760017019658318699099768228960160621782822721900921668900459423649055174857263797782213620445446763061428285299550948097902512370540559650094596994930249105066602233750590799239598439747447630729618098236054377308318281915069877600368223687219442233665525346106372331563692088190440220709451345667871739422845120615507404595780169720769575609254871863854574070093407249720400713378500286048909623147030797527755568259521095418827515311668436393290703257729867541154632786914644317320591881644554200802833518967788521919278297916673363559995474587173996744866059504159009605984298039735022033926589278767394503224341136895963273164716123639221797312010776432654263069493721321495049398200513654956678034887857097372905825543854546929806323166527096215612376286783403551780479229705429686060448748944019185333452100682249393952473926380682115539209784709272074118826957083452216769624013168750530676740635372470768447005478704952555263687162041784575189447695882027856189404098733693044654544129849153877414046275120818292769071424215413297086124789517846704344396289893870542139640245491048161249888551711436601467096095167645653776486511612131136765978999291889253561348678138409701418019060972780391345558821211569156379460971931316786999819898463371957190699932865344828007212205329237048847998968072822243717401776652901408664174189784462590458870292446861034839189547079356576587423579487835443987705272706039920671994567692700028990611903430569455845015656660326871108220924175911554475754600895883870082081139032604321274399451048848011092180626645633784098951130833763779292560748150362569140216881251721755957278001509754347131359967605448700800964736252930592210711092850370809602367253541075972824594697658740635458821996256486206966719687584465986734757954681185417112209092822486828204301438646086225986287056765972468754052397113398288200688613425016469461467114231550995543002372322427779536441484758139092386294391770957036482688227655833799529997946046094705541817018508662436310087891770339724001770620124031700152143669843168047317065710699690793054572144881214420214067910006237472373775658194676426619233590093627987758372919515369768396350066993257358293779478889209531019768955608645969859142374762656079955078603167443347354383202830177514849680524725129691755127182102952414397650089701727738434656394481253983339337164881114370236692967180500020200689040636296583654012314883833292409570014349604976644419315076555891124192308633455824885360086244553245818727012488781609802352420455425816281159809843167875337559936058078854738731038040237274910491675480736463386521247733201597031422218073249092770769695926404893866669204400176921872658444647949630106192621315695198261701902039706959486897452763217144158411606514436387717768211802191862644085491735428489956946608025669739439679331948771583930339520974391264672169416335566004279571594329463230111782027292520248799847302938288398744847793309793745803370631447335879400494413878236272614369097173509071470466328732078739671202063739405838288137028370174043320681871459129343773332837034299138096923659248594369901162456488971571026463528189561164321279708014026706702504881812909964407601285744572043177227253613512499649206355884061961621958785569898364390496575245444250075042483173740749664321654601635379210608995568150350990198180255635168558476861701273425564030754455280305695960720662874377763744747578249057537882959641002727525844439730239893608449412949230764418583564556381525184746428751131030074455273067197787681623256704758787105812892110769330597659094582576996838564332592223165374563500145295600768683919960356625023038075144934667478147871069556436484258446182617866662686456855707184695815020420260409788513707867741740301086635657152511508250977258562328455389924515591858261660462139847572301755194180843101098925901606217815260840194115095816895489812472081081958123058144436731926036025877350232968799059364944053528793450040641632379807719899492328115431322466164395524189421792280736235696364448497877633396854880825801094772460815574475143312124101228451031925147680702120484833772116132163920830445769583207924854933793640213485340978966626399259905193159618311432124450553258132945277776045762145127605121250655898347216409506074585328271454917914339665278338577536215862102101081512850737626155356721995575788756514776478790872158522037816795674623691687411710595616983341116005254644727349928056342636181685813623709896529322815049813530805859741133631767109428534161254412270261424630241844205738572548951384262371579129154477086673701635779217873661858087075927457121684402709177464414437747415088342367780567358173745708197516565248163604321694724431389109247923932772199222356201056960954666405039157235036507860167085732369548612452247681239877300351455032211537345596713651348960894322621988340117564600981503596795199502456997883849480919810405093049663304517417032880064578630967776618593624688356134611006542777701223438329581146944417670504463541940562596291614348679514334085738170852720088172691655816901900647307516018987165249002932224609547579568975492502495438471267790638872010208817139719856857208390852241660385365549981144179022945298270326378274623471302339837660228552185105841083834699058686710817779693923567256956234072649939843498277363405638681011047083471878911247842068158676735799700749569247663977354101324139431565342116462761856158997951117936618936039122702850581491866243100021926162063649270023526066649941982286223094471903416202635277141344909548337069845311955112402229279790587833570328638012940484481287855949551169964425629718516138008252322047296904802136907324791220643680359492324714223543111562594883302085890948144206824217002010363771113659249647487651706310243342936927766925784793034291628618580719605518214435078260989259773916047666125298628100132703136017152684806574778919768355956226988175261154337732122957698072040737788114002499195886682023711079543530330872766103656434926142485845912878332545967876354565118691067483844991445288900240023117020343008555084678727818116568928786212383572113764055194314656302593201874001658752966385583215313381362299284819558841726038690693278311540123389178232066424984241642904580789728159716262074406812249269184267273541663905492037689049686231379365016383130593572373600070212451648364151040260782524285830409750203262836682210298187927785507744814015922029397241498525351502436123076397396373370728820699759152707360749308123048224080200388512650018909290595267050830431328952987462888005531339794232428519474753419291526717377089408250927858207316187504347483211383470829447160716504108946335623389159219384645714129228106696567060369410151367095616943384660646327261400665012047246256278569072241357371004253328153241357259611928232245181786368966357783187069884087926998375806749945837554415825905701464786970796966326598139568504221409386865061278502637935672535151336072891771594733861911194842727118841083454769733304790871119798750298426530221943680954286155347444935289455432502039757313791456495914127905889110734250643814499845910576175226074288009860915144067646459753624146103132444716729027195076139176059025019865749330723549565400643234252914508689039886329441911492862219689100921527473758108154913070951652539507938641947659453218633282971772333631148287468694093221014302561510537116672730514067722555208580283357436547585640223238625731669819873058336664295486373928751346894192758754634383328599840805578318920154680900120281824230723285933368904368753323935149677206737047808682381461942656352803925296323775517868080977046287944153218892820083990176508178591040423149653651192571671235661509822201050959457195315918620312281094020201411915860701808774448735431891713182965255947908589868599333737166214763066700082027468868271640696426278876709007802657730213131234252166285153681175942122651932938643888779192306432697764538542161455886272785362587208359974941437903334039050552230995323004831888613990095500254191268473970961588620025229323250976796263257889712502776584816549162256427392609802505339267919759037616094228638828122392121924025971793932346687038324526957113932996793571801004836854694294633224885803518093278562438202277881492601178926752000950080928415324669081047536020814225750853908424448123949186159197022678620109685924669627453025047499299028451293142708619801124429112138611231542580583913023803132635272098081518970876440600383706789565099505495693477006242346238255015748696266123874396544867994911002043873430052015615436785364221156064399121470343325283054158549377753081733822370052647257051287006945526849449455573067087173046554376743993823430132624311599145547666373894130929428733504163103109601627854900950103055682381693211071661153251795228537893579258213643914502757756842735157107660837763232745118392673562680798794889778953549440405475825873731231362760990963852775411584606313825938151650816460145812219395540866537803306672326304193303840660051967781152661730675025768725844444399672738917939170665804394080629186957240213958841464807298254907815228733924335589593890509007219548265120878853749454910552141353128176903098228110912407405600426141818550393322687836725394981644684511271531946713877710444550014404735032998232406411956199262152510544859555350258017186446645110580088815782714506538280591306905705841815705343419701775668201834248181744510923252212619180157663292018005486517408935454315131731720075187135743180895982485566280880387565041923421580058840870422542707227580566244467952289200032930847462384655929499569484319649748754258322471804559197981886419870020964435960978388911565623083793204363528031932938380544516944576301276759368354822473514580836072542314093841263365445308180867387039506905971942557769127307628457514564837290045228695074026120923613192897757983714752446583111538956669448581125219324952536970744309876141032476640083765843160102072341562941313178575860882022943754221131602523512732324790214406096140472513353480994008448402581231172941813058754365809206766182605217868451750586500495498794251865641244109829856483027818158130056121093853252763382168071457955805163198586384305018646153440698523135083399129006785314269916490331488457512263489022006719878857318550945832417971411573830688741879291825312377514518151682554332264796928111312152658265726085828521101119711900878398440789708426701571700603394595862209826013884516937053964334940090057872975495159645933769026828858517061135803290172899179341676492286583698940289364572725883319110364309881032340102257978349863902050185337392037656719969426501220775117709832043958037068630922161821277392229270204314820005668948593913750368088833580071565084808885114728997373246495455149338631306166562833103246685772753404050609808310519784499717441722010104292600011438487860769877710609662819348281118050453113963209514958005512591720319960007296644346781916699190414477148316666986894011093887375744150127509989824702902426800373545362553720643723297349741816803826108324392468894030232369107104006703044377977010923517261415150832934589336267009078864554615461783565116942175527063753456748536200177843595012699282860769433867729710606842492859635655710236296947644828017525513892979018750675323728652032322256840304439643339370081248655699074362615490751716652888810691376487176445620448178402242367584346793963203380265380896451938524935535939163796900730425868906633532238411721194230422132446532531884706468957443588775449359983279286389265580316513164393703451597269912774429880928442270422306704837048977496548390139771112454609584475104147070626450034125893120862158192611233294270038796484778807523189389472200150932186029311528755824815780555151113734640668291847162870620990569765535654461303861628030841143901835451267050836395774231534025710074007557616795068144175630927965450218574755980334482641516344368478164327403067935983489830005881415026388906184399218597447289352179096836842299532966589146248446559578584404760828422139998689860087655515619467984164731736106825978500857147538671249252562242612598538649135375475788455274575030842977243143716767970039018478060514537094538072586511921319794556387844476107069066599939425786450573185764573667423677780051087219327121586232095035468060531777932455957471072755724027841199175701067679098775469084786090076173734568824202047191060427463624280425461823795495038892978015458564663539420056343803156837825485654226021672919730752833127916941080468956872851362733394738521487461665798029924512816906606465212908506913386896209515457449432182464383703817695790916512320152088673151023111141198025320339272586415172324186991391399446848767737580954819693853993486224430467241574935607488614957079433526322252275857442638657782271748998450437989496612547122404710130943156756592593108666761863723691377652398709007112600476526424275585034415289883339839993234437469582722666462488100540150683827567660645054329820487492973411537304741440224126594929617511671237255586861786916135294589914511810958521309288710214203827642894478986046148372892672364932091981383424459526738955149669676415820635644903371811447297311570832470453623362099183828909775462691674206619477909532626180265665603140239131895400238136278302426905710920796208245825073551882440171628270293886725592653285892560999070418286634350820862664894234062600593247234814265469363456436549027151267265900446399326980730097802918372943110712932983623243434199180675166039170602957482138296438084544316317410691603816472711422122001232204000358548453486428652654401581128031972695020565740884528439762605540644613537548259489549118061401469310848104323864688034559658824121183917948947382771629291424600990169600939748822160029164368225821203499867777121655231175039926514868565049627489966446609099349961669925914559869290085435824861598477563424228606713391359662523331853753409525180273389278754412673027135209491914279550234508682940231367783715664631321037239431652225941534139982043151326646279250577077086964730827116497344810266862129716164937804097473093877735255472922408068413791668920773959135283878887698477822725200739118603418813688536264822211250827782472121029975574025945382373185289514974761843055286303706927781470716811631862466957019467781575539401773960856492464253535255412289574763526082299993178226004179993561595479397097187559844106698350895776804440415134910517827980482032133181378352887954757741856810925353851948187211376539864185343369014622261095681839786814974717923719460181134528150563111121394324718808282245106870897393085197980162744004287681355890115586311823323663864322792239058888712350224797325203446341473557692595729166575316389782493126008716662085315361788710970125786081803765428961708070286222425428668656436044579415568580065476935892990689679303862618118466086075855876509780996565584695690286380000223958901793147924800937716086249367388259710753962484740589611196827335951444351483342876863407986854152272581850585703979183118502062977809273594308529324845626241082457916970549519819139681123879883931331240506751266279179218532108559755533925426245734213194791780786337873167450866730424458575168826037853350256908315831283293225394662639195882746928015393013886755607979214668869300719445596723816752074671689414185450937585155268930169498353601342908864678119236851530926706577912575842443703334610803171738709127208260712453654656539457401549220810211310255477357387467273157020250276045162060463049820442262635090051678674999897320103767604221584353318919702655852524202346690565526535519829956122187447126909708189277350934374525558706791291176473269202601937531414650898261754467044412978734544716991866811648622522527184136886273407796277465406138650752239186971254044173471848069837490480843645442880565822017692280182870036061053804101947086564560947849598411344957254333172400095073707284938449075407065971209098164765445688924235546537079590665738055333279973050929436194775646494793081396530433999065946629775941099974850510824279420188128321949201069987985330693243072956687575999659420497153617501786822613666474840895686119973042462774922512809982338803639648208282523503153695101566068389282842451734870351797371887118446102394021180961394782362221131646582856115488959974200960805698267877946188368994416195527144741294721189879409301098020673649391415865503161748911660851693758934067531064412756677201674815186201411519320593585693865248137574757558246216673240784841353480056641906963197904920688398669516482857905429122851089503737159977862218965115084507503763738951570429363688417384203162891615853395887641568849528056779898547800553616135022478102410076325087262775142918173954839244984031979518219690249543993638827034963211781955211214477015503716328660739117045370729682355236891521792350781278575874860087317658249498212581979439449635759694909213210762564203335726990777310321484527018729907720173967473286059033806893611312166769030271361447957097269852507096028211753768705593567115075262160894483646957113095454755808815571121790630801294636039066433689359968727628107434090215505114349887302395596507999890988741089717193001128321391677108801843061652064203424512685111614336240965760300122671310680146180223311350966093788280793889602519784329003168758025312005255991710314475214247250558902405662533353497133303921207173861389262328158335050202008758621727211837590292208652680167214384243110650837692340348173051015914567141652529789886301583300415349378819613141026770984176813052029497324538747023763010311872424919209817183412037634473004581537658504250273403543900760330804772558532467576791932443682282838283017376179427193007699919601486379286029810435472873633730544638557441524945789435942814288943064582716347071366301009596595323511262033308721023644060195091193671327480033220923036643618916843443990128677037789498124795712159682375819297343415663369518869745667547604872978156075755669736055743126094124049110325679961659048233501829467264160813475579900402487654438657225281245618323537786757074668260731807572087506904638610195508022360011081679057791633814157290109868974369920223890536152114300539578303367999457323559333361293715975854418879344282809414020309064690670437691462939928010019846133009894098279642616575874241298821553539835951793702562317706265990065916026320236421503771037811001525735096821488823877725364860113171048961913721321264771460109478820503200190231343900965689582871592620506840010240027452464529158881300171502805409579299969724780304189771408249830107128881331823234427159487545696288607568456341274916063518648905471186793477817278473851410396320665986118792869943398918989394719410119842876386016723282624293393814751484342775791349435830859678801326996567318013342036998181563634596162732475346563807580555199024796762649590146862961408620994603153929138637565166351967188284036929990229557584759956242543251664977841098851955260926663747491904507987164194687248252610442805956491166015577512101441246341288538291422413665842533462678463153174584328517708302137208269937451183876597310748048476448667782745245096094036202768299052956516251105512577756418919042638594544123537995486712040911747094715382329604812529449837877807702915908487836939211161127333194693467735451610231605636080940811790249263320032376776341935729563112855536436536377081476251673905242487960713921294328154027884848541780589123397371590913017105038041798558911365810482843889503207393055175354208714459591108886734168730798559174228201345308643361129779516019794267151499915069609368958997844547207708895604071829229486084474986071812082993036899997317555242241875684776211502122086397214678148686647699115003040661048673563498236253881343877531075876028620905251846056187910526154795374575193221431126518350875850300117336249881652172768255423573010643946403076614336478791618731756660348764300024616262199846137769651221172351166923344263244534397032883463062427633143485310774029302518413999111854358445317193476442881163138015755106434606745487129004077968759141248782144011655233001352998290962505448177732505042603178112098437131118811153022091615571175171742246911954309049097310491934191393572461716069731158797131808528855169359747088512396923924168329293170797064294887760494404461677562937500977597800889572308370053959690655033908821808585307666796588803897881487273987439452218961676846991463069583703014973441023698760713912004886445938697740566907122288305955810050682234991820515658691945935282521099842069613549638484296271325803310984418931673029831410369301614101989960584340128626129054997180497620022484920909358634494226283775601310918461441072997571891961245162511596469058060865398692096133683733973083546353329130194363433202874695391308205692000503018879990693901919502675381684703341215575654955880732573552861268565671846229044101147232367663750864532057290418463115146390752456341483485041933679558744738867085335470030147785186958873388849131361838633085198495183901432751882810524808271208116205811544472692070166102578753835826245656118549881594356822895842709114010143976123080749967451591993726806090710056718018115255570731436377035420230746552300428294871938503930915903123634635165743270989418576790525923119752891609066717150133863706165511270518176848706616844681421920054418947777220930363700984916680617029679513535829062517446647402178958435888277903683650224738902905433498813407122893186278263957751165457837627185970409553050487025564299636029221114171898490000483864702199602140487863975162951514515008161419258587526706511738627494053272960849724630127630976510078347911648346560364424875360962767046365232229590758603993551974347346360106499020889835449899266210772582490331135205040046415865644457022190069262126620888316397377170639620368132950592280603012681732293751915756312282386993629603805449783277574840690312252871285889284467813164695213889195151310170068647891724894031263869339975704750504359719687446759012825686787858336146560610179113285006276263411513052871584498038712757783570939679007139242271189026862756591547818221759443855107736533522984018016632878971811079477931074631144180395269436890488362545603376124840255149150319143909520047786923666733433962883480153819549404010721117745537454655751633375792032613045280532096696684329465636461007960132204153112076417943559819402913932116871105028588754821705988190976890732273292160643393339830730960762956652449114219107015722220275650369475876044203230472258631266875371478442121494603596279909830690330997190799296994883658498507744870029540288217376667273860025265772345675128228304240609133421704807115738326081176451444513514712895304793070164078114968807249396538406253168544854979520736127575635356594168223174136194148224559680501285805394043588128725397302567466156320633916237214270243978312786863362197581049932664439147695883807033854397224142816493699726044145951269061630423669482717870888224472868139123549493490486342977747761235157638224571048235717135860449404186135904465122763670604050128951508138562175732556008685160742599467342960987543449110288638777640420869167323072919739545464195411618182675087279380620293616172826615520396261490358369014197545595764623770015369935721209292341822398515876761535602513024127547883283092468872671701113453410715647244944987389886781644623695955392060695408912215511236942769273482627253190582629501068958924614832666569870871496582025569028897442850207380238015799527689304770749883066740449370170505414008178767501189604693355347836150867868953297364369816614822715442720395356591577621181401542041508784995248496225354990622872821032915947491804876750887148803296087292063426844892070142526759316245093534858270575338078861708626632768517401881246021351690119704240809794630520099120978936165747938980758540558014100903875747181255527659670815083685524452317602317481904124430376323400322465686551334443617128992836245827359277199146934857288575103714219074090963392271203561930201836407206226960355338737052474956511916054585591999581355504469757501159973580450740909503450027665624268767012003950841720080777812241433572533675841492388802538009634109723185817658222074092293160144069060227779252316976437464218848851582209691373382917260042618153633240630569769050225632457758522724428978591738921783787505569595807911186159189382705284186224290012509781760692504177668503980954786334656114807483455744371985126556842799625644119822442793954888139359039673557061504041668076777607296524974761573633825647410834654100889739408698514553748548891311869097845167124776791694012594990972517892421421199077656075272483583775411074440324410019807467173565476966124918109252835374855017936595779689017265543181185080715729610350832588521436312096622844624975166027063453434480136814624379666708970003081216681257662801084519679279696516827585099323415510014195186262033203156443134130788382226100120460602064687976585531615775641671531123830385014040933766602425215109214664298947083411361357757900305655370843606661701265640446374711313994106137934391414232180563565280788780857313037899688644820034525488625003858139067545626970896133067064385481619756335835131895588952375368021679045774108696412139819833315049841222629710856748578223686535207672360377942970509350566075614624810515613343597875385929201393330405153653401303485953889149516804557384332294515716179333218483509991877676456763479465842726281404816895152471425551186434973012660972529328958952556379579394142157109694819090001770873770903151490203734049049720937007869285066740065141013901095863695112133606040633671677111602732887679189309259590874895441654417371761885089465403509517232438649534157618647196709859448590694599116782444447845928904124485064954811870893552952809006279022760549491215325334499194116817902737712711226970664388751340180968246500358259479236794997188836282050844062742598294035051500312200660553326282435631485284607138145482454946653712635593271317147261197565267816591677127096226132799901106736265757432566840004891419619224107659580784818412652148233388762942118598501702281946629952350108182064884259068350252794175341483988666111345417628077432895919988922258882457530764951658118635659061778870617239751626520326051777406611351545434533572504284602297422814402343115096850963582050539897555579992424831039046173930135501976806067528465141859555588071828754699352248001920661899437418238285689220827402228781806272204674752219281426007138487410428279411380700651030645045053893818178228828684866446840563203045635962198699624218965679072601875752118807332972813295111065397422030231364494267404714862652640013965928954678332679144780130084281337481121419419143447958065178459020460949703853269049869185351738817728149280193379224663367196511531004750758507326580417564555511678528578307777673692945616123247992175866079953864998792088980022771453589323380155124025445298742336590548443233363707489184829171831580191280858593710349776238363693469329854610843713284440945113577440327983074099077643092955777574507933621907058711314616944991844505811679135034997410905233219357698942307445995666716694698472377252559623224895342958273072220503345413471699185187307572895751082869744216126121187953670329556693145402041425208483492659691073728910506642518037469934946988218828427423224654703469276128499656547458674296916849412914747828756330273791407836322996010779219348517905382796926856197891705804473364473198842686486238927246435790146363841749578176878616979282084412216459432039766666053124200399841743899153235816473159597031509680107910404453304083783542451892331761464886920978962140059639244145900423852671148333386352463275928696856900429481232101732150851202721811315940484398735367887638942807388742354632703153430703390012999472812985891117257484554824619718180590493922171065488264505991220812624009393235947958903785572308663699873361203418060025342782716694337599710476051080935856645525056471339104274843495475797192943911964253240226252401127712175524577473264599603226837409906055039754532094291705691233652798053018746057437792083823134342497662446546284739229531753559284270997818613281825196799315382518250434990326690251894786913224608419697137814227245636639213319343718008675733489982893341125951237744696078534159815138654428242266403094773637878612826572865231455817278139858192850310095553906485117421399191404925985690127256165372480658069384286377881334514807329584555809755396328433007951181133044133618599870295509990636448225032164428018778675025914532913205949225350052069397556472858000037330181674816826890341973916951633676668045276449869265750196291056322317162078380722897488502557063705384972196355127223672057182804032244166317686368275769752054229382464123571110144764704568827750903642058601573964592529257561509357414098628241298930037531192683415092599238468484179009329658154101569150833390801958391875535021693284629607108962197186377929848995077102501541696025678529399481532715287931001967681763586730007329724588006325241363726892482685679306271718342754470528699766808229229334911903192475294681865966830399301080694999647953688015422114154855508642981026109428296101800824067497976986626217440789754109818022976957896618739195885087763237479857324471407136105481869671325513877472683932460204477620873402447389765867175610664800797505955562986444089060504912125179921612518589443561175604437678815762212082884261451446950922767488448671154442549022494246062323340573384870050156271096583607250310223656353594956306001826288478775155495711735461005862636727343464858958608259964407141202981233720579127494593170937004014281146843991756412934782312361382108520629247734498718228555749866111053926618346124029205306523910002707142542536963987614815130956370607341654290513963350385252421581919674135179486516287619207336191722400984509648420298683751662258722009849556147921197032540484506303261317810511630631180421580881282081698942059101770830350826842336679147227478148226037628385751529127636513412360002047585171323207057158141167168279475202665809657366904004828514862160414949709414554051473960646294124117038160351182602701433393565939485462318469310971781677807878596085869916494142340613720033024812705268219691226402874580048619163478830163631675278903152338421859908783665440381257721626075314519799327956549263934418916018414617498854810016849947824442451598208567870277422405063321937314792866724562103625087920906437500343734280012012872250873227597869896481316922112961816392500286544245459856968969060419658222242523129129672726963952256141326742578860613185836731935791490212030750535842408464952359286612072841794308687092876000686620178386011685094571852211685200255619266426341741277175626473225225169375901997209337802814628636824507687220701464452645867497024843268647900087062013248518829458225863079482370017319463849130373651513557650219193025364912520436028025728814349200575622613047600607884696930507813277752974731347202242470936661083075617353353253308956745214121759677214958917568723926854446056617485545246042997738668411245742072332315008611715923523884998570648968802029266247803461748787617534044285426495305825319219546909620842664203622958236897124144725319897095408610108509825384253102002363312037022484015018155463717654922136762737999674241301023394025322854340252058363844387453557833261938536934810978689863337892930406645741708571881424734913292495327300750905657043269520011379748272890778343420251390703727238020523645300301262586046965554782331612156898689904969195500093518390309986509849561862219813858115410018498295373264689215387242015585673929109306586897502739362545075241882617009467767426143153879471750562110530788374469364499723073373006243528621562264858554107655201996715052413932991804653893031519404425546134973121974762269057431861825262219380807873434350186504526374294635961233895920317010749382660510311124834938946581867948364314018804029720513788904483252642321480672832520741322849403114519756200289665956421286460455369625890159307282255345625276905872194523494719371986448264413232209852713109707838968220555005110142334048493587205021734461965342002881025437651168255772323957426336218283344194109234546750502374063717815541006551476754373728377492073711899397001787545576696239300987460984544519615177029661472468609442911963484858784286896770684009126498199595961332203805680812884179982277143243456132171944463486829142127086704970290259112811081081393632740564515154630101562698053944863252029341111308813508105521353235786299788335395643033624950089534629752180183417990129681357041544652188339759164111985629708220114279973717675169642176103103245155047654964486765710124494587493414415818245040054117564361772794906880407108822119911568227932200605907871373161139427399033911661847852045050672138509333285785672463978312982749506087478724173370078537018609794179298217552769959416157343867565578612048165023774414203612961994708045258253593757010017720722728185059715016623282996705254386277310714694853574655067593537822785387791207407998889867094640649467042698317433457151895686521114860541201229729092384438497579220750606419021976002820342674484525558791686919240959393016532086110424655893299173862371477011339650155298830709369514697485778015340294719505670923493435685408773870122013193400243716623964043824248441260580439816121765346380178704293722276377075909742583915864370895839171406198193409012858643223243962942073467962256830375166284348562895263929673569801743103273551976012884390749546072174489725161373374592815284068429359353846026830611067187876893596716999567578899922846832020815339086877016443498805108078189910013690851909814286556300541953676433938142210890788314547280842263488255541537085178634201417563349953844896003746121920129130496901938522023668209273758801913765596652419573641097442132027950860206106818752342084204838162531998355354016294744398568586338771930700732234911006301499654417583400596265319312062568729394190828295924243064709010045569272118462913829593342409000331711323670994183585202095514047042283307664828345908989116519122649946774510288477172651965174531778459015982763023544662989251061315580646217980366236616817092866290353422530428914666549756318380412153867941082585669796035547096511260117190860154932454592160327030614303416175225800697862285033274474294917700439107752246463075894894778045425975999736664213083412994841439263177695615040087065578076517746182701719505698753644580700382854333240723051570735364486188924919932395712972333547262428944942775843103522771655147997394090240610014729009656688895515760083212033641744502197671374418256904129768862487766156758308836149182432439703377954915698670335012117513751747412206709786895252749500975356181580911511324561630542041466411018219279786687378341124408143066563892075442230827265117380542142722351135643908366724622648811462101530088116869019062411670417701126898218301409129657100367462482172841078256498353112680728549211095160398549453236479534572177674687203855547639843825106962595280580703063332001036877190265402414435356428984733992850490296496523383193877551222803494300374898957781272205075225937104489813936235587537788425876690092676204359222029896756166621590379054605393419036567053505496251201984094576695832924103199337755978615831959190994009013040246332195320967070640111261946817130086081959337899634611790586685108919824730091419161356276055174933541296801655906630763892836135292997847037981296603928627029892039749356092737389549462160021521497124996853467324307014182606293127092432958672523408877279084912487349801715045486062624497260971033269144312426981949690908582119414833165539343469955523683176902498962924722238165015394832509231033003788119627955381261681931083877165503871442748891689051046965367622513322546224459972994416983443682571379200062043908856618626703094857446720088196190397220206990193554546686906513273874889166970635848764923964870955430733750293822700053481127337772538131651810601444081291660905641400128919423399403349896533899448216507512891878872927619303987127103053053363154550699794509512461125483717569504721957368181132357737303821166237015072804577515524464841746291416004386797755602151185680933808646074477927874079812038031820508386723530787262576270941261924005345201746576018589218293523446723570165183562551607573441000045304087147022776029417467425142640365101098209113268260361595828703672332302525310105532447722019364309794095018554103227079673019018266802840680968424743341953617725238984270957554880114384406118945560741436683993580798193198230259369389607463033675728505380063961693854481815906898473454016828477788686466369779313835046007637422535450703635613169453981087294770107263594383499922706270181625257110319948632853194968639998307226316566026150489259046821210209169008400405046020308073882319082843778014672996543904666364143656388475370925116357936074573295268938171225038959789591306989113894192401218488827447420677923293699323181496244398207430793062877608910631463778933815012040707360873185782450129124268180955627666206714227783612116542684898730640960554421323934409524486828578864398788838582870977217759370974122485412375674358859370838300321287905633669625995157684382834625097310267937993963416599044815473458495465881252051772641648672366549591081956475046963393480004635252170223095166976702371066167381056344453221017202870138306827532260628023915810783787638792486500399079280244285201734249463918337432206010945399244177121722596490500593947260841751295547406356735769020827671948178465786453362392396006782786783198274544619869893542423059484239886498989337123292242942485187431254778394415892169311339834929130921659615596026877756398967840213174698722715057725531503418801871595079572993507792739460089936115502236359648149222399718005587982891440965843571347823954804175277874373639617552407222484227962777225921977404551187423353669447546525005260040455708599726816077161967415717647741107941316191636358040439360554483278332665110107216869651674563685336233255406259824195895776233265641181987681201728925081258161407943813018868227079404987089137515992359165353387457594385850494717234055431839194991308945355337854481712813277474541904232383737511261920374589434714008114501261489167919606458668294745038403025052043019155390538911735275491505799218348606036355583074450679154659512890831742637046390609015999254131214951503314704630285255857353596931952656659298658338304294996691651248675105441326052561365682338829808991656232955909238604043298725555432695933556090103070872367942320838517797706975016213249358596705568946767456255743183863839498817169708339113963887516239456395142937465284254395247526793357356316565375216380213575481035550921230900376187495305089451273457267688408782171032676775118292873107904561217476329276481589238584012791659686119300003823368751690727506812409482897226627047602117174506851991471653517745276931822165634265498494252078178597921442370026069995804463281932359882457672394176216355570258525966802727528310190537340851255950970003213078769023694609125219442721794723735250199150022091077626982336168809983630585042545244753483811807599744527188590689899361536958339937082089047483081435132884784492434717919889767713612657506161361711167233635758770410156446722570391888122157458248022860794941401849853992734280685826458321188032081059335361826222537172180726084041538547567789367336449375233652582723113727880131809163613592755480410186243301080111668009638695197219067350278535152117087796894724428329197048527615405964888544393697985035976341099915453571301155192015105232273483376915004118136654712317972567915823601128106126931098362710239740175748948004463599555095056042416694090064964969312907292790920807056852735307282337556895895950258038229477403070603334792765170390939130712622452419313310407010220030442139223129000908273426308832134879813735661856796328133394196530888398556819120655478243262489670582019049978195252276946375315141098633667738105333525229273376261330787229529656541927805762992281943183298350969561416301786267266602787052450655803397586143251935668788367789058410114783616235559798738881680674847875442957904634138506875582875055929410914779851670087772302067085625249263785755828149902624731894390966994622465340858328987751659933492632708523244400141042403913451947761972712019199859852542984246403840873193870080983617228352885171594128036101419490539914585590677052831988648341411410268370739341195537051539238456437102030813869760058969243232168582195296686750209246863361810561146976892896681745232688301307897303637120891316961161623355835705513289602851721251573859929989014466953385057537808988254611843214052284250889903764513076747775955722880445297030346907180155343095490973128216852180073603200704976361431135337907347905879389954508532893618627986354548705818445138704582736617295068368560866205280601482792681174710683253812840380442024289264063101844141215831563120838903567256107052288234036776015935776946703445326534607033100086391282189432291641959790587790776668276895874264797145702673581036287543747664553079950566175744814629639575297500112177944215226422851836176232249677910497911426880791513248599773763431502077934251834986421899934568782150436061428656840981322257687477784371513766077215252717343297643595055129034530150469713241474502510089543258860918552055861481214107408167619283667280433400370951585392173166600564374882633981809640945588687460892915456167997089834183632607028151701805734728354309738932526773499211635495316508182994803046381383913753784401090510473959525232575677379103658651744092998622206309150056634007253607849183854969363130125539422091566797216620053672202029258263456369489385360427914332232563219790934946317389970856702424808405457397058901790419353400434921574359223822350942776988257530848774938325720395010241328837482366835548553254110701187099771994448295057275406970544338539926763913326078174108326123993894327511706730533023958158582633077415837728413859199601511803722512019574503193683589929877509428502117946886914700851875085531395564347158198823585976999599598278603851280523334758433950354177838686623298801499918923065100341472377927472972974298894234441096219273279315410307022508227624966767552616759754895288430892069868060022458537534321125793181678409849572033305160775944165926006105226251896081138023725054891981059530196275592026273464548065705149061929401705381979717943750430207111801135926786699282234785953647522838112763037450514058541153853299082778106200273840300231491624768946260019456791160127542710604001065736828376321642694618059951504912610141009231172509399482210274541657079790056914841719097306355738254739441408866451734966032449576249524302693878975033234738603985318155814573997584562214952019314789379713796825507451999334961214904018766518889750299742446177262549733353086134621554419336527701580050503903165147449139971577266579970540194930833771136429753097861707417649496649384840215880261118693730860860900526396595735144789282768490614970612944631458995776139705661269633914369417207227453061600125185401261948070666438040455290687110902836528781004011856549600799786855006822531158826685630248847162412360163331727439551423323516876983641490753264903908045110147199199707368177599846299324116099641536673657005797794285713106031240340053391513254456199820946100620748100839311552379359533794820188333532030397751186805788272965311463923190519940837794195808603167238034882312111624647238638693817251758131322242428291233922247166241009179208858615392633705612125295899865306511246533410832166902489615178491589575432369494971735854724727945660183607926722019749047904619603800173428401373840517986708283801137686626082583828120967619634998019173649626467256731105040152620685824031667801958107638836242581161821879787089520963436038683513173778790478865090669874148895525938964705691154288906972391806000317204755198466581415186266144251910796478350552021547011329293652801435925311822446980235185303558931935238911673241865734478296572690274402456737273037220439643635193742610435989379400232153004844200282224919021632095556991477487193935164367648401223992186696081162359400910068752489459437749183631488884316878979781526974868059876228515976542748441585064148813634429862332332132457386668145592101600793318640239410787647594101279332052088930503548306813346232544074947085124037993873706597763820375818858961567625390238333789298398561258086688477703749872079079832296352823669637760510752593218368304342618872476164425243230436578528621903898316508457466068764392451747110219248714879780333145537151730794132821892137273936918450883748057255312754329758785174198265318036270966431882276429202443405641091380414043124496755001496852367193335471941952192167054900576840728341060343783810070677210918727356479079341406071942085378270649106722963511152113415259350624714403480124061397082019313013565411508746970053613302316810352867904403895700235709089895814033546150969220374162164610481168980763970888622870569638479180577577032084175355585939008357118017973572923571526717772472829373077509589769798667847130404814457763526523452444706238840315153294086666553922463889293132459337874733905669161312771480950850945064927208545956698270733092554132368719989915635505418309664688811332978673420361533465262366956781085366853234830658557686271437618211674887029304909916595326193125708235249291536764515992325424349942240294527938657605586553430368849058684261444524289550464421754726699443583986961796984165859481925334090838432478537567670287634436363487456325979612959217727795953867165967529139071936094671938162744480398995275145126620357991806197203084206046024294070861389817298400514518809267823960500968875908185793261803796826899704211521189009419097435177645836334651210950171330199757421222165447380755231040642761241413545373619492302093203096433174437360399106710866181102363976059155238496302313492960713994256740560214034635344145228879104119820822538312404732038316246467317757016669545108014989930017100096639753768166930722934416913476679743255570454852188175864347425228249892917749825238391310763300910099011775739956831156927028797288294980734026301304532073727769906145500933076866350876455640919622583736417899107686737398907812742937124032512160040738073417130353836584907515977993461137472531299699730883737081270069649280307486175097742888874056811631183423661900742696516039202914560846882953416653938871485236047157092215795198619050394861813483673391328087771596497695606282051016730062534583466472208280919233960423368669759437781018122834181872622939674467878542820726001427847612961489378235768704977359457663310267626167429694887343782700768393504559114724317327884182834253006889581693626424024828647181620804524418606682155854744383043232636765606348277420059974858569208797015449373953091141657930650246462893180865422822910771831450754298528335909975646962277506001441683840867649738788675844812273722585432136613395257998688559197382028655550854242165212645570756887225462779921497005403371226754302191388753551384421204283464420513342989441455149494093095522644725241968158220500746396758609083262519718009747152914160818625186771989477913516116708089679542195497228291110430126476713506611204968850512558358536774005492846901530219688697473788664317578510870296443755885275068596811631981257895255515145371814376786921022260775690171188912342769055323679338175108365722694719387860192780954698218438476933618566991502448601035853826148498059227728341868916877442591237615326021806214593640980646753139623695671693957974844863096691647635064051549223194094109175178291088635141662275961658418770731236736456940204540901326030259340917673808481048539017683431150773184095042221690224308551548990899222745335690097314597390972602429709443761796793157686154120625513895450462554620369250905605238197968068617508788559013953784891142664318050227968887187850860991172333855016409045083766510911426176007278674496012957622459070539369057257420863025529154402837552646485678755476679848066559446591120368286461204968189973722588774553153484438303698417869901487235493486307532758425637645802397587888286318900321805410900190142104803774402986300140301407167210686249754770986285677091668086166899525522598679266037112613174024602422492295972088964494586721904640374388431454128334336627391116416599174529457406316759153148067664190129742108548441155529340176329535404295009464136879663350751792858939392700597657198522686128546330203984895330864759713261209324709088025591304639838787542754526403157401263099532859470832314389803429807069388716899797290013099014810898561221305732366380373371529616091997165593995015760101384243960200453065970057956689256553922480030468719875334343621275194838276760547302652332022628551894709820251163254085686734480662204725465640999797308331697164081737107620094151049950736692238515443462723024252089415443748478790159559309859012469311497547809056521873696084767163635115494175243971784513235125884085175469828017482794655061285035389510017020847390296049680296462461652117927017923564576065227414208448251336680197212401595334552328402989576329576337657425313926634738919149752503991512025654431749460682439842513687596492038677281591592091943136902873528391247116167514712042929147018961463795544188444628289480838906477174909115182448689102201182852383766685108393550605958200970361790243149532887639687803704794377847953335639852131150751819689801214927148094307919603067567629616408168666738947947615135455545960896374353739397128661582733363162672992564462317119614606400081069947533428666653482844166288126433751582458383405045308933994404790075436625162879391143038138059794145671087117843096334259733625521414932707115857558757719119638632175517072474043267842185954186811205021043684210406486422784846637944678108200564673565790729170577903894772352328493877177074941045146826027642029161470784908011811554060637819083452336822400490815817264695930185079436123014271486551734125826806143824644612193964539810083707412757259098367377084479890934779385821928242590883756173026351626388349124809362776536549693334977442506413284466070188335314554672394065564771066389975584019740352024427045250205942908063631097231898404847533087142460525860880166906074585898207915810258071747103010720853530892322415717940602206427284128735270352284243153141840543369167475569468979730800990625738639826605781133190949668385104925087276460686972656691855917572399933931578634101745705927267049806283364420436057228948683599933666556884526750619764969464379871654776162877995344953780610806317183971518721880362817160521870460186008233642336826188617753450989495642413574855004710876593524072239408516318605567867753176215246492428778039833904261900444310770679643886881326281230655446475519284101362886758556878532904386979496540896862675773124146254478010756924096901924880397097058315169177887541273371600212741969608073479410568376208632171051128108699064162964373150660165828182354387505480243954804217356655849224664740525199081719536387533964422816838968760669000805859072570373521951923106721300120443600558242110478320262289879355845218371298834157494392356784470910521730971604393534449338054587530801243120282739020884235749873008090230391052600633194624346389503508099436602731448402636053456718583568642721609587370867907706026753669204735469770695007673640038730934559501983395092005659700465720060980728425175909221155927037218588210534355814649881930755367895135578941275594807037965320127754479861390733271780704180261385027926257347373029886886248584502939085509831646380997750457414371342878424317096313715859803290144141377562341458960037290798384420950336946906827249703528549103679823270796718020308845527853052973646901267535070313488572241046028602170159624648103277483584829341695770370880883950279400051804911252123683477350716181833839504858990340395235161604880213152995217180620332498517266290718526613374923766172298471919751937305279405973712753069233485798443606759302427119776678919579300741112940038113414453404637361652163414239840054594325533422760719962820059535928084475050905704009044759097178262539275624812221200818159707406581731210297095304578869234681505698556153679175866239769758253449568892475353595798817154114969413058672822150432545851484202852576931503023515226358316197962594326403810345347719914386728530550241451860963804051285038298214760484798183327765573294169818175924816869483260740115408629256007241262989435012066897377449607410550556286414646315936964734205996950396513267929439578632591833696062969554568400323595505269620628691863837501966320764982419719160502145620394108997375374969716546903376000162136143422653084468648074758524849149872558892073651543932840435141324420978669510584541828455364224133548841498820903616943302870620038775932026683436593637049904187205704853970107584879621378939485201078212016163830601938494953204545509351096673250906568948292122553976530350180864428577621071194136178296832480995731075552584123959730929082946316941748230259675574516702748361301126694155156961750065199600326043049908757465303775804378359675722772470219284713730195843087704740971195891709504573869246902373885696705046828242959022239568108661638356577023516567753413001908423938764872672032269797009304624235575335189377686878974729375327981545844331326810713412585539984298065129022178478921810617623731583543445150082055815619679824854537307997779703810709093083123301347594095471860035131638601685631790765902492451203044829886177667928964743604522368427384471874190682853612907819778172300679939066062758862557067596013594621928754726665355000973739636426686816277697831132202114000080106422245968441476371001223311287897442041981497137852686988888335553090573482787343858867736734942503078119829317297054964300074166435297062242406018992540075258629871028082047799555354462368180911139092181416978176280487592926109805419862821983132054066600992897039719390906214574966535564462555549001535037243839527142327527717051017992456030499851462068617958681134455854662938323321034953385084562088216968587228100782861284611175321839560890251570227533671273220857139376387510474291788180732225455323820582570355708015721677131742226976024588357321392894771140826707635914160771332370818465006513563958121075704446464578687464775334672200690110771499255848547655697568164415681166704100407992815547464456237491089969494242499323106560439034590347133057262402302306347133865166833797065744279938276902698091041178388220947088952323501541007627124105880192871461387859150889397193696886881597250488249493936164589858244778760523870239465498969980607469970541421997896354120945014462622825347283018061935485583379658000441863250257191380134460693375993348844667096016301104029515805351990260915695671335371654856027342587571166766211316451116560831553839926718435641305516911406401306795655316784327739061978051227837785964144314284981899905957757837395675914735146441098138378702577280766737872685361639341930973603174570650728614657277528116507982112900867215986937002936429845376859120245308265560925286917071656809074966423232184394493887526282764197363034016228179043223208575091386277464293930402042663140308043834443791958048305380590935637290600103420549283026141993472476745449061452891522908957987134326289159812732933477695480228118945347480307024942104233913895870198592094682340526254777210643895773023453439374829794713076419002120663417335795723141661018663615998238266497821572232820801186280065412308509152128592085865448036807053526288734759867050921858213391948614878966291190392369952143421406563236316046721071625098152161387398581091636314269044218919324701085097333228130901950288550831638471620689643520733433903461461047425455962739842710278088038562122585151856675748287840393695567553973433145176923975541669045067431600395257008701703445617102354452222446724524747079690628295900180421327326007374716667488933185819972473235841636327267712133970154831282260843115171279850724063465407905091060901580124563533070956968970907353962197472969987130480797783568635640073392180079391648313410576786012085565289077690328148811685231632787361207187003970866179910134461337961266065577145474012962450974319934446388859871005599245812906124345023023112738627259486835139426995590651311434889388382197237239356166514127495696179060255547280751732199722272840115244326519772402564838803033198676076930771055484809595934034312489324092293681093581206521579049978799073253070212150890888367594880766474531004597007573919213462641078703384740289008716814270739575358660358533758559250399288014075648737604573826525958905587055712624642403465441388666183457162062448266094822301103021327157041217525361719348999633627392365594019301145304051755057774791828084043920618674392690833707970765837629193789081054046487076808721819247448579406512336697304894279726858964958602388116711504009255412993598874475240582076481152948805280248294574403496795152785495117733410381414860569612025074850368475151039272496041892528126856731769961138663311559535764979802978191588182063180382219595813882245872367129477106277745348822657039304478316264629148645923957415066623857943331757580055410744347046251281020252436183711098390627315359872734249310971449298789317741992965997745199952214771464738324438334111925446707595626986128002658202572410755698287944807193762375925879887478958665501836731470184472552324886235295453470169778735630049569791417575084827370703104115653812693164949628174964013711981420214696490247411630190021146392544866077080353518971827800164346901211576820781695582152103036568002233964966512945127217481200654481106582344684994110989511891932185454977079612486291846894977101744023015820025761328127233377224447739685545057309134963229377092315081125073615894681800412847193742699641716046232196545252561139181116597974957136343313090814637675255610587968005261986042614121840628240164646933905988975750515572277663327965508694486143122337028914820854790707000283989287670416759229114646928428362627521776409727699622778099139848812679167988626345684373678232975465307745681450322479860111211041104092236307856255679273729696332283284777201591671434251533924047678659600906781605131808909835282300548010170833208674407246872621278237228332120640826911706835079861631747812652918182150720017240536374522269521294432349675343912223499739167762000144649678963014236918478280734853720552107358990646845306794554914156038540206900010345864229422466897182889341074451285173884155110372263863950250473658370522377699181805639572316139226854623592788675737683230160915257634298858234297167019953783618316000778176893633916088681676391642107605904866517202164509418672919904138687028244707763794115771506287138520677587602161524869896317987784822757070125436125683061503003914069313883409013550378879004814383853868114371839945880352016118632794657173682983419736999571189341362684522283316651888259314609116819739603912620938611153856809111923245410276348989249110644322864596646244677642526103632522009571152146673641061045173766969739428035510168951707678383467573778270312828840624018352616005514280610511900582326715598695016369230716465912123788833355413153630642751672508183917770165205837546439557325150307365077147492242849734346950991627806630067515881731805978510145229470291914621086021992097932691570455267028136217729308327713709394143782224414247283379017956158739151192624159876361198568658691890219023033781194700836611801681644170481535050183154857197621609344647420738824968629358166740270786691334351839831811339574214511483124718432769426385165891722878101799306920222653427360093582503098596823586103222120521917795557167945445901555546879322826691965989700809124907160816560826378458155780624826444721925773675226480612248365127471222812068507365687284154363940294360971350284442343616959009045524999703090424327486370814843078719281108385814645027665126527550963531243932792684672780940659330468985282410101717559371438238577238301754073259643039200602738706216051075014686826479295474554902523483346753400027035074665501267134750592403103932757190017172598565398993146872323423513322225661301416780429997333835266464178810913390553598167435043438697271521669909750685375922037534098817719149452268770478845968285985097813270009297884628076102620964790942586209638817766817403155572616632294200328019871431809887363050234027598940605360039963056312343092181644813529852418563718395924776363499071918805958378488298221974500781884520740316277646177153564183598145897317970122543768753967188883455033194805501491974409611134980952055636338777951109955129282049542880489295950828263665314991195253400984074363990761348556560975498926291846896797134953712252055467468640446866265212461557349788851085245639206806028536183823849029245438916972442571189268987814969065636450158528418028476485829098317659485109694214391570764455889281691690481765601221655950853235100654048837237528369140955237225503651721459834318808629171403841311730884224017904722940023499516287984393165860810668449224897160516228434469050824570186400416580601007196880651180478266431673634001738616177518282689833348812744906669669291527016434968386418242737319392938585669055505217027703426892979568349543999436465686713384882031979961511048670212766900950623735115947572182236420917582456256518062242525448922429072700562009059160469975107551907992905498945405216568347857886727534651157383145942313592510174012896549102650395297733484374689365182718015892535884140387857432552839242799854594033233135465863923445011737750203377364748801052058455750229479853820897116808091449689503620254540969062809539509383357094372742563452732889098087346753532086545898893911456408555953767326333722016949643257718952485275871067454998242499868851677894748821030776530845788677902911332251191537056061157849554931620188035090243406065325716920637203367201560456782969621714578582588101669646734432667819023926787811021333711283899105067730842892860216559782375214207224381242276921100151493817124737489155698747070645293003853737811764601682929561114577954610461843103318359641568556085092645904425878837529221721496017318154278198671067819526292329513702319932172800620408389778781088976157312861540501295650709912062115386873184733973138667992853475397937212045708549045459546387264559637893234784434244472177218912724720859323660241182379313668367271045333817860055339238754624175742168074214163355280293723610169509743896165316133068216674583997137927842635673031464151560602592588390996596322618592846148848257265450685142401089069265934811819076339516389800878029047723878078828766128797804900397208932708737667725754833537897364626342211029257355008815785756135860926007574139914240081028993803076205974204136859715409911764007737097988795222020162843032201815420057912724147391502787003395373294295513604830824712822203572117305767123705552387146663684817948292884549716595439455774018994752360897638533118532333542991600464951085270698485284744699731986917853537711753436950522177493942660954568690532334838003463645553590484896976541203459754731545573894064918922774827858092326015816520141376273880084341631707457882023816476381009145278543566628073213288361428392799775533729948304882774422550779646949970352766696637658987209356814099014771498300857740740429701544742955934656731818190319447451162557713880127009578568674052547873965188749904908760968060950329967685055762326787616609357189526882417780380921067638594248855570021416458941524177846939302771669198720866394838687358353448771396900801465216181163301597524961900310303184120551418496091684675891866244415616301131996546419389626922285343056906580935208526429557984700048312692959137519411947615126608130770340479025752406869436987356863755677883505539158480612392579876268234455497915569876787237128501402696265666579471218783812439125793754982805095864660498578687704411834149956327166639678138288126628608606088772720968468486331303395703018886620965668736269044369367659335407722304734122615031141923040576157863909275001223610782444547785869298932347027684121155043608081477126495965131178766887856945979430317025044449438076378351877981760769717592735483639730671441027315742305426724178644114758162134465193445000201611867850240989875316432689089995259047427172396938326707695466165373283556253360484100734406293524399982911380725325067944313010708796876996488614453429054367857842959989403765556949136904711438702880681586320222298617847052793146024321970420157011414962907176569132586825192384025259473551232465502727178606962432274142348330053637706761499393151308800837436563712305768519566001422360167633538713573742428762998741711637040132476976626546313427358523154960597941592877628411373832634826747842510580668466442692051155690152709105023780744294968941469102436506572887344771064609194199638160566875015147934165641928738648912858435645942923019346325587641893566664879446134889065648393425499169327828789028714731898582063336348915659302120465137351451137889161751297210177644120364194032436846042360868200129213306207351529142303668790009085792225986672047261410344742245494360218167746928935862608599213239661993297994117155740052282432563794029053350427912361252653935575869005120472883591894715665911342390896918337182132139297122480817832496211524906606990285347445614050825118589621519457513477652590594572138960770966923382845515997445103447563722460446156850797022859299633857076550460215676234976429697890908340047356736894554104551902192300699230393966494670811502097395663670966212563139944027326553831219793014435900920853011512279800376097901185460248000535110727989862225331017386612127196202511139246064930799313592186060318118635334960624281567220326399019902486463987074591299763282812828415840042484554089230854341509998714608499705748122312867025709772965667024019937957720988563938203600782243160051692756645143042253969432171872120739450992761529889862635272152308219086614303322567192864995083567874278678908571286420259983328802003232322096304475459547747122138778031045100848189249927612519800783814305663268760756675164796055771249964594725045679879186255534279586397230323500454355260826671332340721299171452472853303582089047645182727843791943374079236584062646481751302015701609232482576121943402445747163075480847213587952699724977857959546463755343756140057404438740437492208656797314226129965214591665870954990728055303844312278635938083957344297099309441012380922425847675331879977131442775277478508955818589697597966662212873027237853056184393355049877411568474249643917283229463700177875083572308665780957552344197881528985598872852122728325681884270582466341709706246060203142611557559625519537596893217623039699634908078873772487331437718933698095777716255151448489782029802995901161712575938280138007127472126288360377052012402875629954785907599826467440641364214327964817570811945411271495807957309273364626662884184284631586003404629334557877518240285361754163810663746822075978900987608820316720284117163832736557459902147935751517567833374063978012709194176394192387876187326023884084056498356582220279886573999984192438892084573228933871735335292246700238716939209257225225563367292482265761392330142546174977235840662673437529155013948219352438334722784332564959201196753166207062865144707376109842600621099147121448544604133092016728799250080054896078112813982390981743203381520749575117057697843830170053966634184803371500224272004877931463979097623197684643977019490783079800489108271329066128106327754257046707161116580576610837465192226607666894794194491888599925472263724395249639479104676699583727103013618586499805324026950830850376496302801994944312016785718155435802095931193136779308428842202751826640979576261973715000816961799199228047407201933190086554224436797410729186306036818925745781274047707948484104653752653211875581383531496757073629629582874647073307868507237203693665679468241972546536850060976144001780111594771210881608696172782035983216393736112555155716076992081655633228810859556280983689189200012921339109807388652190535171004141297392287010577062540670128135558481928393875313908153484998007534490252525964397480253028272561018866052590327815612437483798139291275927547907934861418854241102474484006589646954455169479808807828682221981043037410944592016395573806231880437453328294650313693965911969343282230771872054631949507383868936166194355626736301755114418135244441697525509323843993188907966293541488033294299595440629003335589101754520885720368396988316307617131449072168132151820864634409363072030283693599019311879888935853389294917027722247589261450423853418624607935946870566822391796001748662528530742318098683839102164668447853677818408436437154325450076911421175836095403252183497703011035319162678331303003217219031572674556588510505328391953001676061209299557251746126355777237777109650497342484167319290390785124866242734603347580180239332060124235208825621936971810819895393393253635663741003274154379491869618304083307269783295947939641175094787735498226768901999905898463516177759523715202094043672649156630691676588420626765592872692673911741268774653734177016739886983949772791762307601784004746410720670337977540549156957127994596322344150672070951185306225531416750586007539410953037228143222007901789028302659643568999007986835694484040059915809476594830180725574256476975227359963987856865638945395650222018700904983790752005755899679902181417161753450163104274248295632762647226720307339119999283051536126110830067540733545831097228540240165642438108112275616040481495453296407455129922147037347589005669964036840885585785924117934784514817175234112127865733646253696437143252134570342896932522722264747792125669811217111250742174442889351760046489653630201156929968824828533160649026292830952829691211902600892126265059141840840872996563049958341374429545836335056523219970572550504248926195824840470032723253287822018381129991112449675808256186922470437780986345806699787117464442657066075170965638630376179413360802796724384914692873400953336388097623327850289632795959576575343243490353383390051081056564664014793391095882345068952354532896797059473070002127422145866901783511624805679911792369340016597296755212231010203819081974002377074496160521260339233640619532995546348638578348269868351304955131586777333780017000720497806460736952973299187761474844235412157256010197616979522678372765010039556978735438288731363700453991860193808440211402592950197167415685642333781213198691892547683561029538711343628541395745546423560939848872299492898913498086079657595086293712166981354032710528116311788938006674053428503888110429522180093846797532513507269221623533534596082538373449929468790454966131308004735552686392941453585162609271738022413125412173245592959518320753626751755643059565329576958969515540193349192365942555979569214797146510339678796617715182312251578666688746923216889094427550307153612487727296638942864147432818340050912561006246336592466966579212521779369011913658606253416600337011923009938895986880248271508453988287067496297330569511619827733026061922719553812631865430517032777660023190256856670629476452505196273282111164660607514203002472321041987002707622935387111107776672516063829551596159428214348031069195709587661045512650868812103977600832050513277906667370249822636583169158970644428937916815472172574724988722084230398622664043458655388306586870816192558284357475292210890710375895803930329126405532793073191896195317843395376359800566475775957013340981655424170982655515584266160147088760795765117425603681061854409857428403241538557205585420870296013587293973868362432338954666601298613097976478820590404497877292275529958246128345100704444382577287222063065477899654596518989346048073633587853409195723678321351852604256048351987780746732868124964134889222638118771697001061446386836014173752113495266145967481895366952972053668565746262540120004865364748802502631911959601015948779372920554301150055676983529706679161305268978619813081288015186270934584843590527938723075064961389185775066485332415578090949672795380498941401231017710663992251200688846406033134379064584558520001066286993634968809858078675554290868854845590494992554624343288060739534119148199487419657281632923189966953774958651695895133183158729168395168890945155406870324809918438231126177940677393194117741384312938154962663227591346123314367369407427132247379199621741281738978487140183099296339595016179780414479754361358491453521009647107840043309975743244994266902446113537901196744935804664193016152402604923023286900674307201157213379359175811470698621174600528246932084034215249653753652361148332372613433100985182682267732262754203219570196083004743910788708637847048929293864967880971744012117200824804953200343260602748840026143169864367823133034506979671170379914284429231649048016901035079067396683291999367803315123655566875316112045879291635938259916152612739122926354105743550870001522243956319945688768731892096232881569895142685697527525767303828645548065616193970646407004783240889711866461837464492826411409325160400072683384507126345890176696141187790500644260102564853217019149849251606611228338271813966990509359453135353907960285141731785482168510212805752857398376512227614670687328869669995232259482906748826501550906886789373445909466012745555061444165176840522864816623007985939828444947877186734136196927145350280008614461024896548298727648465855305261013734094378214495156856245996598835237746025349718779665692564585236115128563827509144568365681486065934709110601188270405026303177439940086205919451478942917261063413703337785903753973134736553946519218725713618032229908762201510192338895714415021048237070775561043310812611582415284373025928949554652089865737491298568681104378849588663469841476065772749783513222597548297444077097301198070630238717113452270619517727733704200287232669815249941396915878085240294835331826410810764547444555343231903838229873119937146942396357799607091572808362441615724977277493748904174565997696027831611621761366137458369433611632104419138600030416435368696863727204972389933566371847334185736545731703435615447989047098663818012935043322231555657740543357413705166818414956187297428676996370832790987845216316882702623525495668038418704203347148194484775526266864839304159586443538642230102362367870942074973049818124456317027527619849941703456275343656868426014873701162471349780519738032504760138096996042003758514728271755691580376023151110432626976702169144312220460020786706284111555468021287349411307082385938589366361126326106905905817410063634294401968920489934556066021715617766978808965517355352114997197426012443246157311622084324538474491738485970968219762796957770572909670397504508610581097697238266722452529439969919764827988179463056766318791074245322960931419825573802943250710980464261140973471199126542815034364450706085208336876820623004843593947721460712296001254590775119487272203620470082572306721971482564863563989008759005731756254624227044066615806345794119609798480909170078929396192157073173245932483201384455127083976681520017199017548488328320699526218237425612498804758144426181775129890438737807661035852594142528287375509191230065702923976912548547941749695998535327136720032048289807736063582096540476600676987794723839882929779884577763337276931786532477405360626572317057972238605101394523506505654999015452126289045358137632630848148354708047253502255759493942951712040029119547805759462710313500944811838420048659023414963487900558891787452041795904331429329256344692174898873094200941990658660412774035913162226282215292263835863071506399363101590883591462965426221828865385054340652295323803946198812098013502329846263500308371832358360428204970428642155888229670251137935408953032882235816638905857665596890449865841307836680938771807128046422950476347825634145336462758137615077633910524651383553080712009991556170461148279119519713113468120062173677526366416751118265887758323021536536191639426814934925749245605174795394306250313839971332011683329820025610362954043084713238147841579700672212433499199784056810345647760717777763348134838205014303719729383661654752638642796294915450087753446192205285965449017757062539664830022979962965047840214681242650161680302271717815826483141879101159330201063247107981417263542670095206662357792319223981009063991227200961260070968675787388816032651384995375834556469502409241475632207325296994620346389634479004521450024120027445781179691396860527911721287757976507609501008117785739012116514443956760524212291868324017139671191382161499591748272099466842344248139055182617465175345584728148841290781747420086884243304552952278130884677346634220359312324867679855375831486648305472336111879825655098630202715094002866426201300472276695983995618856076128949813473020160970872589329649635244586958029180094708757139721907482029366541310011665462758312213969466459123678790616075686825070541706889250679879788437172036489213965475165780315027697086596455525607128543686008906149114513155127097839622059610505681619013015488307910801027418490045430356637049297095154174188429747098052613290894724568800847552883443526347967626825106838510376463392658857836294838045490065106307782704585705068053997781598583202465114798180551461590289142210472224905055910811676683812825057244721017515923844115114558240396685949957921701853930923050962099814005047543914155528036743862666015378148260251984513515287203099046927904318348159709520460871620932576705969862524061469428366992451313844791642574450561072688098808570681241031567010349882713095998665941523124551370080950659211902366752935117341337387680962579030853680053440643694383921888602674192330926055373843805076448012906996496586739514048763254479040330609599871378566272574795776462349660892303684925293632179118813589823953108687399506538090015093151960324858733516204506491142956368428077870779346101300091267617166936535141968996700828860647550431405229459411461180462435567158227431736612843890300387360503180304250133731195826490934939625221648332695200814613852643865164014483484612635947566985005519789688969195428851437586478965261906100479919083564035183753850097418381246184110387395727503330943373021448146666090339692695139346099410201259108425640220722092495705256715511506431129337490254097500456388722832581567001790694004633870815536077617673829355569972960308333575121424906196208428550424777486460083856199801326597700435180220741166313132350848003053964343909147586242547262183806021847248963242066400718008653328164836367854747317019038305536568438590403769605649710468054097174651733267184024162280865549924760060546120171797537611901530580807207437525122904628798884770725495776350840066350419873379947027980618527619188725637705065841330134702961597828270424950782803723062655885766636432699514864723833408256925501323086086380107856457224295570498964244750391474963209991408286509216902305836709951432185125778197225468693861324904485272474947494721245393813441690696226684070430809515071768307074038279431578057084321709359490354853638992221323350269522508122477083143293634221827076207145081835422781245740933841837914084187929320653767993215054004045948113106440787988543164525573199359997547433101355255116540899947606349131363407291645416462399230843908804301216042307980121393505950240245148604205432210211340806538536397538169238060597137792347765473943099846774963116744611577511625690311838571351590115933920082637298477030588882712851220577096637784268169818137559632764537011645552528001948919255861341236223228099349561290402411598122328686049635217956500766209374343463994164390929091486437617824607935184051809231092338675159435453166391160636251299139497339677447064443406697388667382776467323815943194380890516209464046851977274513099414323313911252327633230548206061432183036795941031352108888451209893258451953953914883817490082582789948660540942319969093084793294343231883508958474464873331914907514771780247002257966729701399761026846236355152502353726342225230593091996601323329420359527873468882622850272828538389681821434743558795623630268206053093996036740489512229165777980303433266142148172524407889378614796868801534571246532067273119216394888170057358373331635807250461114525446136565580140326887625235555139519818785360175987024695521949781139213855529938353592895827401921538823327442791912852963382283127488882280329093828954398660473175361825509081708135035573563834401723958696686387534877958517279068082461997371776111762540377194944773084006508378787250896583280077427961473629828141688268238196044688216731089416789746376987820166352644059242020464220437843904442472843915920382634017568833066907049815180664462359952999386383685265094356354474571715260691724859896724846266362653114493841852577506466819517893669572993674853646393317781753226992078172006314329253195205380341379155903162828377917710345210540783633285906193003159853051423842431750423576075771877635384334205644336329531908615038461080404616687928223128515936631635815670908858809657148228176767952140604377327489122417461109377683621520128659806143735429981356308850201963673740938142141101729272069008753922379509253110510235307881111840944794247260637072960509752086932626356431268163815869848779952478008067847552545487247728624350336407147891928402812215294280197953886185221244078501956058071224629094345902934698998753062463968094479088836565507782465608252616451070491185621725645301629210293347772737736791160548778617327064081571436044232611290236664879599533470575704037159165075151302057682232484433122316080911876271200741704688007647576878641549684529945180593127390052935223721204842031408837233472330692097730489407474071404863652671835147148948716281433978849021734240384555744602998361401125415813651669994229466985650226981664261482689107348443559853318861221566328776780641994343436977370105324330797512713060909740853760734628222081547680561307115559450042775187802394907050320583969711305391811260266118835271449664037576027522916207026599457471981691616250535523706021070851748545363332969588858555138863054922171372191833533873805881771265586914615972936551941211884286812271188672149032792008643399809205173087168820715924544713295328148709878785037395238059936907694793392185575132276434931021508352455870874070392417316035706275620344083444171268437730111319091953697110401664446714015684824107393247542649032928415330923071240266099566800373523735393178160661537169339763447501280729609965725916857485793031745867485667282422413951850794407285774142438681886888719419799271494028327878451489001582514125808828296285002806587028914351794152750802296001870806471551146647156471574487863194886689539791011044539244797908393099677401501679833125981066683292779781136360456408546564426271530929711824364759124530848308819847319784201232823201102082133628109177989512833588006708458315536924807437142966083441318012317193639647708902073683785236122372587367884705662895794525903972713750463219043650213666328884855469309033622483235285582490432067487393488502059022789038846979288869342426511792763894340394323792895100195830130749361657482660641008907935663052415718914894222801743640294210343213068092414647517514539498430875442598857270312649209765240181278921491201900425283575449810971495630859024529871266157355870320179885260766971870845005352982775974507551800965096599290028447242688792551185505043175153946450941949633009457303688372484614908424190598381874682148129478108326816765091497962176588982650888026688594726375307712138264603236718715709953051259775894754517113265058020100161319576921106200936545139232853812563963350826519456592650653441696505270805849474042326629133449522882791982713596545741546013478004151829677666633351361193430057786487025468601314816967308642440577765940939176274220198605524130167740920259921709068757657683433249141482775117292545333573876036510379210642601885625856831556761261164951530697025671947587660594931899388740668152576343731754689591544666051652418235484610275403164992935806321816576628949122965577400835797966692668961517870358241050286477734556613072541597938752645642074159219445248300930410722596198226693641239929981758358260189921323156093054755249784890638363670738082393373155218206241210844294389410600575946253014829037136268932665779944371685580685202631037853764870750195381832301621978902327956570203175747694412698777218283690185939286331333631428530943099912381706752116816723355995625372490452981931503840318706267888118416848862413951946759045769001289954175080756527962002409049360427816385813938143660581072931977300123832108020550120482902206462622989122661911690879934623058491418315463160188027996618403661522936115581243195931911387692539426222570822388187886123940539034211752876399280238644548121598173122269689118915784484100734599338011142514549180311752958790253073298675481008565535573966586342143324829107607108906167892317640611827255500800732967620641999478811500696376577096928030740518381023556000352784973925060254772750647344095874548356840436462384078442631619019068204254764602221243608656127277751630351269327305671965709051399873847053973730370365927570968025160797425892919600863084760304433971715363275180163717163405636000511482891355762549719494771720931362683506197681146555693726754603007888472116383941366001088596486026427791034969291451016462512149900903111102176665755105230804418489990303273913325753620742633015626571522528673811914588970470157774658906222712824592998720051671556432810182052359403572767279911880611958760976068318475460153078397739620443186897737817736988785868840693577371071246408740983182175717445539518239685896837050444731721554300073091927170849182987671017845504288563685940919612666687216162340071254481928847266679100809850730623806855534470402955579162347854201311537135214940896603678834242107803456232527071759740378119437827051582181086593664845167389047902709428864559703529502805229191015620383732848863120137285666119176579872405293480711433668922768257936860624951182931034700489658824070664795435708871328022793290001109513839058912823449956349254552244622846816392111705629746253531846231448898780780846618716761472971035620303767857294181818256265543907718812563087046574034732755492626115083658472557872464603291962411022053813001781813120733603317791554192459031098190836896254896713735913705763453013318496336884850248812585192150398384207504747542478792387437026335767437575285132904537644736412905261110569167989102407062766028857588518749903998465637762141242935921534735372349604138544644406152777686681887654891279515308355134330135895234062984677294697602253907769011034539209503837031230204422811408655028865020305451918967790898339870267683987388517945273484954134812261826780716396965343079290903381552938485729285760624067799527645523316460641015599315918945726895722852841113292419766293883496120482143322765961147665784321299144544008867436939023890260846634904300942074908382002812691788415764790071762865601037688001292053491169544148861344449103777788503484248749501653319362254879415970763123831998282665757445704389715927071689218650612558616806457651924780818296451349302219521402004576833462482265816104152971463198483555264972041403341934279877278262847930175729664091489465797364168727210186646575481720040802549524516348174245234791050318561684700699016125071381883205029633613012543875945064802805311043630786773179300192559798397394191192055560434123994235502966577443517392506100230217655967101566986406123924611244641406377651790995123842656716128968853324799435503922116486922346299543090132526067955265582827883956778994447305564165175928220376564728208233341527924434656545478028865933200711984797193590693969709746033508138579155796197681283880567589878172528099558122626118089597356232704056237065240514982904047989329408544293153092028985614124698162355430805970500900545805526770450250046703112046192126782512711324311746255874675467390234491176261120813734551043906036849171934152455113451814399358068704326328521077308803110033010347422931456304579389255082440635933545873947976139582401030173720334888319900110029630579278757142544854014042984363900076019438548473176710489395450472494822882629100308822578160618900195672639539541957331981522769056834121766502916551536896608980918562663540077336542490440495894397084021781493511049963799524495495726931865474140469052224813044128393437798980668566336932373097143846678512571076878846652214509353899555768654775595812508823292533329604152612695415092966569253240812532907203301932574672551447297940938212596029058980852449552077393876907764217685422086027259652308102556299018730436694595273101893639067766234243757838268590293156011071183150687788629299065956962800696578300325291829970330676097817283245144793222514833879733438489009177244816868808406463116731767417589927454022366521710277020122289571175723541221579172134632704396723951939494393952317385979848034144109126158636458366039534439437696391693060714486117407482042881983039411291522112703494502256495150565156573338153061170068965271581990412170510958224685643016398683800155114496617711306256215204259811682792134934155140917871173409394299691175532165359744386829780931991951012250820331745236541811868146225939841350444428113033493758030955462349474088337611532751248902162554283620239442275889895722290687577570516279619211896020409152524067799010820417197575726640778731666296960180844223210555114063483995282975786302362319317285360926982307730214501025636229357448551575154004548538739663634736135073208525696307426452521708481823789915283061589748502050858836292547862466354124302435928244471283737916102973223803291303591469949124432300070386374971809219645444590377082278048893898606901685189932393653674540729527340367251411563050197638217433186600884005828706570163130962640315282993183983429266245192978530322245437085301003065477258076775009875078017458348243982252872203888622240474267379780067746593130521122573194517102365604943493706975829757312496468182447596036489168053028500312798457773303655942930946164361579182377914721236846206870390206992603105887203846688669005729820980491665012194677988267761406278166053183875980002726301492160766808313557733293402341649469221687010524627450226234037825020261324253466928746990891400293722404112158665764344153610390864446314685790122762496686278305415904029918814307708880924042754198277191994041307061163604908505419486560551843522284216007598339482136219167634936630780751019443985865706609420977707130614706182114082177298616822470692862966688960745234306781915671433856770125998785959340778922967193574140772807502609256786549262120311380607199353355512727495942537139445421608401407601043886680888003969482677698736243874751663621581054037339553787605400510217152202803147597605479665497483062321914332559340099795675924384482748155879097038331704857248929790709298747045429854676010019714274086655570294724008775551615052294821429019713198953423307568728867822243586499578379349775494258115965407255922844037350512665833984933158506146675959852368283854706246200002326759812327393893143501607478006392075368595534937760791847246092439787398680263389404793773434056173072530581201751553227371040321999949564324550031031693347973745069791400645505175484800662174953780494889677975205808539493607313650717022441975075473410176928065855965909851792466869186829327242218539156562115479274408607880268072088352398136869653943694757350990373193478419894945531275697787223939468823971165296670740522719777180910306064861462528239738192669230443164944242346307069886614566274405746967042186140031935145277555718289512558731356131201836981693217062958491122677182780382529338024081967989513307085627907234604700973197151690434961484099802469355177714119164836446725004778095632469805629033253570428813086594814835197885287166107984911969987683046149093752369151420617395146388660732627321974124711974229792764579676933908171508029242913350561140552125328332103375532593199308124188961190752828975968350309282712106396451591746496995516715590646150952541844890641436330548055151865416187282171115398394333725332371539397680197671439017986970723935307416463018807496801499374841317246503230141450814290126201148741927598740275652829585565841847810594925598472327029913182147030640888589244085977363714891809395791390028800399872533040351471263585485103938879017985284086217250972782728548701735810522154953147852938205907942647699385012154079681609538662659284802831536431776434495569170919598935775495537666844719220803015743913712314269971438490594828492010736996450477779221586892721060879986950553227752906195916680659469155352077110948142257708949615025957718042505330922578603339828102865747426118183650234007504469500291173183278096350244988835636861543164880926479373229766566466901924397368984666196857521006525193105355059241038010522545192625688907679632034219446723746955002719698992851375694401251295558266797972703100316346548468079871729673302859195296927679436548755595400077788616780348099295267484746981084361377191917916331082414842251805582128542118044493070389460518174759244552953611701615747350876564101095106921753753466788618281474398705213084006583891237521597908143575419350761143804068461856454596655232195150236578302118450469327725172077275382172260704743021797961376877954940907102017465443179585039525914659110069923815003108802637904145875407005705004155183834838501202942532426171129034872472531569436518447761543066616586613167784517659247428288065647021922812584939577588629602363126335151602828936434053005102756124927726119243152770907248829512725227204685481582125020550680381977777793107978112227509341485953991386330473391480341821729347225101193149817759801471232612592059582614167752118347626931327305791083510821903393005894291800282234711275341723025049544482071632807025016160237118441671421349552130787992150620500342560095156641169691297593380458575212909196108495982887671571211790348382725368769700328262818811112710060305077236689361920248959528856185282046554078763413383422883408593688493302623763209904077772750495819553826528189253163136031298356206307048229743048865224153274237111410264960752285336874862128386345676357553856053654164133459669140962773637985091686695050842838852184473242329393011113176303318022161458324523420390784944542948006043244917366835835835801941365941288877121808177639977480341234771980614010358345050543402000698313974292317023753514184304221500708198029749265652591518928374052737591308318439270699197326687357913665110254968938243057777070564218709392543207332076976547435497199021614229639455220616523570353152210655419472390424291526325078212740514334114459371098902901324557583447285363155971691668879830872066053232908528081946359234086787811691481756425516355674674904971493150597912209922852205034120102064922025823344158339152322144253114361620890261308544583198078663970185171690936948616314027073447731304925441110380852329670931538119350626971862270589802522380469559904514931725735