PREME/G/MU299011
03380160721452481637483266110687907224203107406029819890010784519104959977977858843179362207207537109499976406353265413359074408416020964242317501569570509366950649914160105871463617109865150668552656464948303590488492050728540371777063606649462174132294508848990939016478794997225359567721810934689816322002200903446844179888521555537856101477052956379234487956858331043136808433598547891215242186658507033735150618447502459745074228869221746083110526958964554127772027896256436952627460861988891083415615516162186489305572343337864534400579625774227312612600099308254313366566956000344101102532286134229032253066680030955400656639188759366517221303666201612020084191153074442401868468596879363276129407526690753040903421555996872988265432717147044190812193875220016490049570069247618121330262347860919556437499436735921097331916956320331022303110184629081043583992789810314069873978036459465722550172297261549897892568055964816375600966759856808210193220581319031483336339677989403123278094019734414382510316841524327326373750745087776325232220231238738615293126326753702968462594221543061303336487759119946020986648479732565197066984388606378054102656312102792714751528229189468033061517602538105991356722948797322620404559441650268443448852458378465022190042073590244711421887236248570583840795360016756923973888318372905456399582511960920119944602934755320840519331528304214237076533584342294330103688018394723241174533279246520624379288041377718326253877652009292254303675840641031530954418135960560163046428719976481669014923599917390534821477297921754232737070407491356537976491680150678964636233242042435356050324107944447052824361874072626921248882799537737786079464095771663306946955909264722224805816175666936990487383937020254539374981129127165425820161070687302436298034867438023122622311866265079713030909611160923632830340060116817314136887472995180603586712761828773325858619204647662422316126848379085356746050830861239595253614272264192021947450396448154390124287933514550695678857019177596253801516678373445753681697070891077960064077451101837761566058782046113891458829461227216812479405278815497433447309161494348000948293044477427751376166343637122661201371987431192178708037537972195120474260721466617082793202075508308594538223240292841346243088077615456810913007657581839995508159131645329968844044334211207485227164039524655257409425709725562908971028841430365085792719943739908085210369975885641826241263505811817084729256364261761134415798801664437746945454569639950269163684708251570940357922539288938517880747973894237990040762409169177315764724325020063333053826182841810327312141744988089679496671731407677685962411923782635554413078481125269424992897452032845712941685488589380384561537041015307083027692056382245166113594988146124254780073789328388170339547831283544033400085356470258214913472445135062639296153899949703327985786407505951180838467031691490975850233975117790733820141097914269016154227466703357922426594143592661309570680776963555708615910449048704716577338805763717168827380264542144179244760973855605061102523375781683554588213257034127173883118348100850358082420494341371022561555945236845410742286605910449256716561416149194390280448665291770108565777768921895827086178499163564009355783510415058361009215695549471896329776839974282806171004070022258273977160392100556499708443350046907241819907404716050791945976478781843940326084315017016497612232903248504632330936635656444549455128140536992250333006850299493460880974381773575304348238916501709961917275040806788533115216339634760765627668296152469426228142874289636331179932205156941643539466842543826075741238643434391830070188480326350973422782148736962751582859472203518845720497920706269687442657094699801653474865004548457238803500783804991381577972549924946809497449595178234075760143345615991874660271892828919674466757042283555427845631987660299651704265662322004819843006790176608830025259740259223346520853840705043808179156980340497307730735647821021132007313957847280576208092227072469603073779279324098828659717128096697258248752957610435372487475806719378911049940032029951479980058211717394248337204819119933649642952189184339754819824683683068490162142471362804455300669510190026073283478848163158901700940482850866037601395975558415854356029509259042599648514783210485332433576619003140051334623285022492055175489289275391164401304374570361046862042065867039009446076705364929031531931377679948969146844404360731228479136138023291147448497932128436053827132493838387437004158127149732885833172971305759038694378565948258571252296985621487710202383319881107338271982358460725381509033882954702477716317734207822966396837225223541670506600950478148901201912098177361564405417399999653940152149881472445646073216011077803196723021528242730034314999477266071570252334411861177929551004119433157464297829024303555316207324481249140695185890818240155412698614950324948420782433031664762324030779626671554120188005563961411263514144998303059897777137577013989473413984347550795624536047111168932555910388535772566515956431959944251557212465085072020219792081913379747459504513517231076286259335838422082996468396245074739731891162401729038505404096332467676682296643521970733395822537904791504177204930929269081606189890563279854052734865540182668367503723244979825862711868225198381704869088037253600963629559870667657183864015276770683275803556479242856772646022334516710876088903914245034544312154952062842382098151296391385839065297781247208246242452946890501048649704191747719210755850578457236061070865691826298358299585084567219497575847976227100739023479525955798381471317753760161914001201179249001184515958724913498702818840718400640196694079845343203721847044978864838486019421589442111889508632594717107936175305164292037244911469908955356811717382464697169783325047128976078861573807593607168021365033825617106543498424601609907475644177284775157662591745797193528255749145050522485305629676685524476637917846982303769499328569117298619764499086730456321350197900168756134939805243157101618652979328187095047245936882002145335675116454110281043517797556400948157976820318877068010387233008946809809203920172088361524009823839233401900528143619260718818567372217655982839802873534827212537471595643936407086537242406908556460938932631370646038121619096549139439060493750476752660028598721839699444848532773407223095706043480675169758552377743832605608494119162654375875057319523406536446669031661655513485374698907242216239893125984533387452385812462451161962895866201373040269652757899826176152165898247802360386727726458002630401158620266598316906353411555318247752853033847479631189647756014148227488325159176469933804186996934609239055958881433204071588414772336901291298528887954220961087793245780045633616222257197676259754671968643406863473808455639883245620893216097429138399334581964919061042258099087614990962271558746589525469440330648824452126592365215891454152786959520107127707925381520164888512360185389935324079255551136859947541691134360021976112424123499409432117295940407864543839588317099371085018571297041027645727540302534991446360489604208682309144417832722952649421598012697563189357138666034929486270541955359245935049419276147963263593211710066744308049790832823704677029198101070746241451068499048015634213658507011199820191978415727995224472222893625644024756239191675595590892118869772852139155534474499364720451792339990301720839188093927428244186166956056472252674325850845406506509297516445586809548378107052262928032449519552378149430170861914759357456179742966822806517341890730146996775044969923876291463163932481824367269398777281671186385647338566177319032152036893917212013919162481313962659281758175006827706987463613521066740878147522771746817704446451253387864418346694497392218561018335247459278526003856928994474592519312210814694135628706543116535443072356250188126463976672433259787094781009411329266636202510934742933150996061931394342285524273190062128405484179723389467140081750494373959978608854937345258086329970307163305860514626056669129090779761783483726216635632569612877529249683009133062929677217843423734269305961303909529471936919931589752544654833836968936113499276114681378656351913896512427875252164142733845534890321846870522108223358971312312442196716369758420431143194365135788354663956233301972254627311030973011545675268058752957957986220553030688942748020656251268595165239770273885365194899076831074943359494969987175188469207092503672056077747746312736650598269094539570884562399218569269406675316872022135973659685988855859583316304774567328350283273423035780288475717866436233815576402260575571598274276506423695365605375312686081495731994352205819945636422922230718226953290130038691608044780012859327961640962083229201348933508132285000752250775950433098239763523818240586701178827702567624258067631155996436207218574538881569787293376373959387821059322889129836649089895606984792759457664123977848306533144634537540673788603023612944666809558113726575272929130672284854678392742551523798626754207993353883260291741377916434629413702441832995702516851214921978551196901810501649676476876484148956596081023437309426669900257584917520576719366632961220619667515656184535798057415454529782009132157850194370013199375373089059306913582371056997838278387091905137121875587676519407352094971513098803034708223501644825337598646540499524295710619261181586063602347361202237245032182184710183968922929644743733261860763430798381944028845940374323622213101292757406088704260300718924449182471104618716288935969395269725787843046122815863802364498503462270911372360841621944104288857288258319455099006584739620231506877947418371060787531666510819369410409975964547050890310889234850859352805678524722120435470799859533936433779372327837960053713540138002301485432933062149836981151570755345888987392658273125092908523496231286294212014186008739837636935710879490413529602621429689540258660842339587639885866412124864685693118008056142636819612321636936855423851411523942605855351863249733655464932027674430003581742957977134529965692834770141902646646660584559350719523407828501827757309887839862013923058982364092774206674606142819859780537245107581995005822525746372374935095054499315393150935793573705744852146239444409245659050228370391648632245948171166181572292914796288480694138783976097374655811584191504972746769256073322021871495955004609444754663204831469569217292831539748909053126240889527826371933454862041868048949447281202755292162259888362076866911626629135870250811322544522978713711649779270129669897482727839518577793200197896751850125741887181525467308220791465243338814538486316366818015339270587424047498028462013794885595097921212936159057718136050578935805756594515215669157489945359420928311832920826934901172119695983803657481521377603171683462122964862437811695276720320201590196719428852141551117819550657102575425060411906615647762138857026152673034058109701174517496166057186247840936615641165173690285535608374708309965772468985349302923428527066387658020962741990153153018568250395869721529166174178571271691125812852531742110036783258854633056788158151101465001038458209589105426143115869664186318922104156062339171965964172348182473943549677273616689560593656585810623350365812890178197632897256583642547458121005431625095340063091198906240282109866989689076650303346181093302062614507669534769338024510177373027484604376994399004085862585973273102444935677581287923591255391297396351581492693109427986161361859033701912058118109195884181577824960378575471993117925176396407470303099553806709389889191454666070793874157740475051245475769813486505039221454937739563586368036933666072662524791514890499820255290662440958349805981750350951545846958982136260883173233031865517391156208982342084733325039490360492979139050628453570961268071350368434014914627540679539524869255738197835374761934273191232312509374214500325753549300675539572485354423163932597181141321315746153153991843036364599625401121745014973838327601827296299431411000585004133834125368294539667168329714968709000623718127653126696600228646029086119454980453992111132868591958128918556461893823352686657186714361754620996845190081294785678925076032792556491714486878625937772775090478733346052116142603251478735485994463407077300064060991279701707379010669832479676141404065963280013490212293640474881366907375445802282331392404618347040733321172987390830027135794957030239586989576165843560834731411565476200794531575719946456476920661136911304158233188380354572573951051271735416190822536197948224209932246848673292245510598280076735527801621635582518091118302992911462817954375709337474349211654390273239950799746264551601885114616116503869868671615893521297272965789539877079030999500006461805575699367925696654612643584833140649484157267556543126419503498807820760079202639111189617704273223317607308776576994137489989206761344482560100340236115059005922245515168649983130307303465017763207737027757262449895682134195858346597199278711305439754237714152745469496413226602468566558872943922004148875668522671560698768737183976811105927798288935970748324102706770373383374849316875525306718981673436271541509172799330921653378095806415970991058833880052197847933732284811986113586782838639400421191291267475271780462365399998966545405690278175846552889567149946760411635358509234221390006634875370926165020953473525683072597340798357466088072841598999034205295493225300030279452369832126852947159326024806908243781877404046567063831537985266794583373242171391598964505496508295050792507783241552887917524780051315748085126999583231858436450959325727167326089105412595898137344918590236620761688778708901841792660388876811340881458063937495021069318993587523632476815523044619063145693905754966202804229871055838668244114479835304638277856730316139249280275671666615744411492373414198982207012297240250108851162737000935316352089527523592712819810188953351733253501982098220966186635633273091275772052706004388767722722447717033381129128510933096288128043317680831188114002453718947834522471686537347251433459933168940778409384377237645644477524594921269156979025962806675860230543167224038930400331436303503924836886022872637319100446791931734986964373216582017766012764719264348137444490977066257110610840443133024878463232704486592469072383914048269845327461106116161033528448203480449860458204802143993616706166118192007706443343840115724208870288869070093212647728844128606724268897587612819236187501125069244360987532649232775967377453666253776343327431123477903445057017225488041464324175648314388996223804376561674714803365013118531841868761706062171561176873296641936894418883637975049500301279522810544520839154298805345013221531458878247495978390431914770284004487245327695464400358433876930076299611537398423913179845883693456434412105587944154006831023356144973506180251426247420353981681970738116041692819352454486434728228834974196520133799676915064107357863377455980973040110334269005744870962421300389147795285703964277822383263658998700615484177296151300780904050464092633705693396709738954385596130762142375339007604481194977496486179919884530797879557167161471336440615786418397377109081329162496003120710770857242906389659640495193635545139453593001671318266954435530247235115424920620246508544835761690140247594008358747118537704661450695309819928881047075410990870337832363485634921358266579074405786817509427708247813144949918837215230711495940108915328876748865295406327544032395471357185287697108735172072395192653310975798340042602182833472110488018898069783556232562174790137427601530135007138700313060381482498531108100219926347216558301586513985914958574078350080711223075848244420668703595671365515814708335284474804288689761773404828549078639760960437285748450160276949182214100967810567315118644898404786601045989185245982636213966735473587319681496602619636733403401793818725719504876348345697003021833925002980711347149724662678160335327347696583530963292705857779720393491480841657506363437783397556627240024182119913958453463487797784105211832149399602883736463097601530553832549974585797612484700059750731906802510525503922498241518283001143564122108098960608124197390683730935971122345232259215170557573085279266417917532651293126864918466459991380947623437333625966906530189959483280513310132543603343558525096608563381387849992975134386622423268166642245961751439017021236228267190098719236896352546510760042224911780137756257816533185761823035866750713587627803823849638801086828123308635900313119894629593863610406550576039067939364119745645765434113368528964460422456429580926995683079022149684435905020838412255853658575613300488510211532215710682960518146072442634588754450322752987132379448315097889217397762815407125741211435788151862464852071872567572883264090342696540595169824760423329781918345822312230007818547043703602369516750628148046001600360774383558889381345593901206791777316749205356777850504276592632731664263226749156079295567658512079787301009909411793381160673899974428485278695182442710915269795105072279281258229705264856538105843416257819533924169810678826300349123945350901491579994490161016339883528727482117648777938706423751623502294032742846924301657281123804964912407986775981327908714133763156947661891351763970497105627442432459292009071084327065264193241816680313195520526079727692851505161585668709380565235484328933834552829759670956201620252132340718439258037846407744787940605086471144871972652753173021583480257706267380420282139705515981394249650962449890911780196658005432631770793193403537483825608934534344772115436321704070070540860098851185221760109797800493643712311254256542350075477732968567519427438217774916096964809023782339740946265654812114308281346327191878479164796509054116973971788479258132605787828033406367399554840130499390417205752148391960395638582930144852808868102559459651929379293164917388983517195617520126429798129916999806017813881761761829953879717016353268018808421727681529570578456208793327164493925795428807278242196758375081525251611245008881996974329892379323354864201739556934223960351006331397429909326638028137260123690698064891219740912226948589478603665171838994854287381961321630616127038933195214403723035882772395193703737555290209524086097598269571653071842995780252007766667334325407027549712116172903126129677046205356319548205510512466613133399754460253758043044777390943190002797364380358292558597218711367041850531128408166854757088781614735369256380332907177803534173294473563243852808328974265856549730256665570935513252279280961511625641160532419623241482504142617011853039106311809336705983320644430104499427187361885949512631131814275976069488060240805083646503787129080082933442849948864697067381989716360479349395882132727091766818555993199819778597394297978838582816746538863648518718059329265995119796468497089280765077065464248187517563131423087795878754549293689418613832149846484429528139168940370812592292447968576985998711213819882261311757067453199046254146246753043322654582825224612516223988785282785660036538316016832681268437591385892580495977263292018170517845326707401559318606995682873903486016230448401560898103015126665612048763090638011732257150618504878381709489342394691673499998872238712311010195389832052206984335424563585409225073230190083090772074698101742429023631649274026039413859290525944984413221025745153241275627048333219635719210818788418874262882851192705129482282685932113369157966762545029794509967099238172159691321806290802030295091194334483446292037951356357781935829874488265544157942242988077056223200853092107657480927170222992695964144238450637448218013809455144765103600328101541914827213952301196479897334532590986306554367333296966249198927320202494211172226307043786133273268388830809652700779609621948490724420359376887946824372294943793091116623809134449623336226160018186956839306638427862117081214196044572764124926300922157727069233076625561249413004028597207678557012795064846950333803265328459908928978458442540273266541463880649262355431300990939533442234574356779460672302331485783651417364918954754361781609061989510797502468448891520310944183256979613003648899530888418093493659024832182403267822037673341248430702558760945311338399042832142890947715495525326907622912077409695462617641336454874025093638536505153154939910547408949661693103587989169355206473683837381466715806539770081271080276028288514591344568976914225721264929361193807266974223698969675195536533019562222102598231575554546586540102676809552195228236060330722344825478164181346634749332113818485152357616074409359600867384013714798582000090464089660042384893834935463745579825872756833977886058901769955670776214212289785197956739460617515818962105309573709674878305678217951355435860944795532680864456079511039355098575823584370917798192603776142854454465415761284582201799559514764015036600484156848966946636191048139146984666629247429809967460679184297703465373754037339041444946769754612928345874174158711451327049137759828254748351921231532346895115236174500588191410283484797670198160360725973417879158235893404659636125034369985017754803804991907493650909824149379277259347210175733244731170075062439561509076728262914492199600638709828624889841098959557845994591055799438365002583416429182218581530301252914771565565568232497204477444242589485114109412753241032729380049852317448937848171655454366729397857596683205181161617292971111284328280253350749504753200158334372329651240274010706332151251229681172176816460276595485762730842627476051311049163704920723017182938590263832734053866494853271329031046168295941474893894935071825317686447620069946081496811005425746247116007515145701707068513070337606717814958505287175676669119546264911735810547869297580633110103221009636464365399104205952415619611276668478569017960845663089622621777850359160852184366710593372436034491859654199714653884394609476726891302745288295008343696917417412965139346575841602420700553020286600460809637218676802868784497382094120023033824875841465361600017513232541726835452190066991552591310537520492331338801837562166805944809187143650861000463241647856533864955974920647668821442184733141960212509269130748076222701306309270476949645887515079090761520965522693738525303796575224071363377317895420525395406313917571355586701239817285509279994546161869757364323102339487574259516856991314690542504710660665669209686358696663895470377302365098206101984111452198542841122174846316145880044161590850204408480391774860051406243086827364136289026687770223061951171569256296779736199206191868384400475151341225099933359414124689070709844398397334502759451250042037992764658182057597982558625057036928470811864836761702382329526154091502384089542577473018119532310255744005049715952271911677509126770238519461711507142565248370632894891887192246311528309395606423426341111343183935683331160921798702232057988698420879086269432278573282649450772123307426002138227983432543644457839078653653507967033231184527123795751345344097210445852527049519411644048607430801210164172937865850385735237240947962983799153310672805789034702752549989994241186169604229128153797121933830886367834775955446189007175283662442735331632431516492444639054909045110454526456218679282825513604159691689085861209175129884341790048713415337032368428355587572126251735075214828794391422419480093163677009884823421579840363682717307428844639151371508420857808911033715184105548880622562958055299397461532777935789337842213409120672139492291865980422601741996335770309822945860037278815763274799374501702577131249628251126649483123241282965377371789921851484128826253261449179568933950230262765042972010702072681038863827274483307005627415329384812914476829621213831882916235139132896097132706800926192137016751830369846315674273110570566381509360566329845817349860740657082894281312284283669816852647034460630064040746398032074717302987474685706368658891942339801468853021355341707258307993987440640817447899534280655499487005984252472026081677303864571083125993228303322406822641216421411306850315357289344197115273415459033836638176288461615399942827388894246825699575697749436049312449621002496040079705209437963826888189689607504818842094845352901017054007814556746899141047464373416114206778814838064940956715836600988941230294036574175518855513503632786491977876105009219511546837071905386907878266402787902389123562148649734852460918373280070942758000903828305819249529509064427050029661471831188744234873207543668054361147978117548172938503244552789288646087604402984045126444759157212192338380879140525944716633749467487876391650548797798491878639622064921629354875190712914055998548638888216831427030314616053981988287700962123546346865130446680329895214457995101031109249012384734483634910294861270308230914813579119575070720545559298915806821475269730498655416029984557656247403599619025212375720849503555542138008319288070796328811223364025702319297527623648779286852352051010099748222253367151463390897312760452482512361962360818415588801858503073888339068243611502515490860817800127364864699949523456013911844436304569984337046638516868188039808716393053909623883569599263258459232737637642514995774910870977573431375592473592854819358302037787629432533821586915050737667899407356672140329074629116313820833289017485940640126444919990044281468376764180857137805830554670617717682121124403155011031197104859626418555151381453588667352047061755140792639245918588080523565754028515245180913540202509825685218778556275957156658019590934583370615276578542645278963440315836485918914998381187879983021067766929801283934846395273466116046099789133414294992582260164185367604520285088194458289616042429254653617953730158941043354334180468443329544338780221281291724465668595430714232659941915739421559088499841557146109804572827448610619724169283248423393019447019538958034886564627617676809432450769193277136801275920318906930378419190186818143083490488835399296920685116971939684110666056493418815011049975965366057175990731862795256847558176880420801844042789540422317483420901709251781299673596100256727386954970188169721372458882788526710979491581449432983291421922216506188392336738358014565501099011029016020177165818896611899774203265456008793959550398426709228471802383808060717973471015011452503208055305134468144361045798205871650113084037007526186294712954448518640006438884456039695355528720514106346412222296520600532303803127303659048551451309315639032253858346614882896428450514925242592590662621141836190224300600989710227840345749528318872592633474671610758546151084350232101216955402420515715518024847009192671410067407353273632156687875380634438929886372692378821574090747522402899533325593467609422071557690453770112508320412824796312255805792731137516722789075834989667854351184939026355668427718817592188625547833059654289436039391217925125676604306048105149696645729987778854600732132298379772123421875559394830165099263544793070031309420696125493733117860175581730282232484486131023597642698409732988149689501260364115338693777853602153623189028567225146052978732881963929579800374406302833973045661357004347301858355104545538697087906025189160495926979395659446762530330404361197916312954347439906805057891488805067553711955750962039647637200674061802992434772280614160438600422839318412010661267446567177005966890764981627090634053546388018764518379839894191687138444575160239239236658779801691364420204204267815129252815012329878086680436187975078711794701221223171194805574801361656928991317517903858773194829741920392395616151820254394206964850893938666304517103172782704449924661376497282594085571046164434465468656142957494347470619751706373457072368447334804179527028460622862826004618857128043348510983651086440354303683121581009384765832372218961472081143959419606440492595354004951158347679154835972578661853956292845197223821031459059601564256832695434766174693717957864332198938543628538557444876209438546615856290661390005059262696340173998994028113706137557183305843571764872678249741376678497839592696358165517671411686712661645410752303526262960281233034893502596729232793984808630957054749978934605530419376728632005340962787832072251038646951024755086767272162169825223109344921675501821926252200562228619971772046873946214627148160020653778877317700905239093640973426180161316466733780778713263681597924402018056075110522962490110750888156880348824569192805729125288273629291713565849805110936635408621795317877763434394767987734720747770228861311552725214454105145072032672459734811259603219252029728754644727580787441645538817491026992685352923771754722171233685763686582991022338388928415370113264873766557633688898466175661544347516513946282007491195660327190009135732051786545953733162930985239008642012500896143943632849236185606489952072699353305282445223949789049046026198591215478351119809746504862188104431939242440842935004676069297338978607630837985795609524060014397957491230412474765455080757215743470087442042360259461126736926155535512429076536539741104898669628576599128078998405565294024811944176097058401207919416619388517328781319953151645570110679444719483915847300597861570569425449052938133389279539724628572097426381658366120391497248233523679668817099343695927805083412710231802689164120344188047741376043601621629583657175043956179523337989016008558761234855976254817243073999652843839020829262281465537445138535475048255407668700022947705293958666891260470494786375221058392904958067718155544738710447988132870857514845915642347646350737046408052387965167509667822817112714102957854052541967658576317997332014874202839297741615605840371933526859745708850705874054529074894163717032745119821073932947477195948762002100375799985772848221745058944225535483830760974786625970356697499632694460393934574743919389476046174670942232423055284076161659489423893901150058544560044563920115658926073198910552488473545919222714763855194417925684509841168903312073529631665143879736331129541454603010562078016904541278185406556329563213775144039787748851331160071484555437522277447238453537408117369713759596847824635848658315456930502638707093607614743530221153825400072907026159015942382592383206505726462184307315450372520973219070245441780773281076622589421999433457351868859754128414218959244101441506404786113547106027962350800320429540105843477128910522049884997976313767705251503342372511608695646864205825753147766002477511143858593653930085314116222613836469814025572756166010982248612357182622832349895658303488885107268943129337258290081009640048480463547318473596192339641354292221176464052104754540469031128762827115322638370719540282195184703441986109234182157715804485949482200584289814264084479996880118811995239107770178655754290437643059649446569034478989227979838511119029487245490753846605260434488249812588908501859945774040250077745442116338812678448182229476949200016667009650589225201801516079734034820999385400913295613313295006978673807542294580189125214967514177982131864090053875018786917739227034120519561996074214972901512103565482362703582331688746811807072360369000560127773397466858834165389475117576758897657417647854498062695565203162808593467405288876778985758686226633937472868767416685528561272729699348994075796471973090455464680770295765634273750255643346763608913703195958081570425051962764518993690144807248935885026604122898554174726085988979556762816566375462619340785810833616189755379691329830710582522775828474354576104886517766660731948454433961180913398559074900417780241714674946189375944817952118616727925485051723918170668208427529220166339660700806780388539428851823444861999565735679546721430457658222723340058960773786857980698279061923939843148128744720376311805003883107365638369719585982476289388183357345249029875543282282467276965244612285951880966627159735797050679428026583672761147599148211463456873903562394286708923189076411944323374679274182251508628388563407971734402882366279191258211550338113664547123689403040126219039709804057726219420563743504713572048191192049387674757144304134002352862469843133598585357341364730248600230852879745399704999173958241534318038559159802725435717213249503808529292327716352284372793356116515633166598623537763603654661377715503468950588227484088518529041329090962108835442858761305391264052730040039845731331812188387433831572478222711767055965374058779681294229532962407526886260009626755490774380557447247832782228876354490558480147260504057916307275961043849708103569286768702480669385694432739314211623516049940625161402601876379172672644196390986658629786204883710974091567246770810067637669457481355524393674461514221766470455196937988261507587320582072478528020773785233732008241277076320137839300358478734899784411040420898341650698919430186791936288021063983710582615319531937070613760796003631661629250162770327691314929782744928737010899758697634433514634214687768703252433152931596099026056640961275586622136052888271321334085530910841865834713571251361901061656040491774407340542908473890987739989419787221962778353404546883458217732916816493972733185658777732306891203088089742868927296747243077350562837084355345325975531123530275183021702880671741951171722222116873977866138498399837984074077275075511108098076791857090705658600776235615148160504378547784100462678701435631740151230839991050409608084073176507543799153086266243346574310734460944364776156253718136692478782368294871687145324950802351546719178378473215647253917673472043967985060480020280594267547894994170998533126538955683957003029294362143770447911624718878459519093190539719972374951566890836756302736191352767518522208324988216493234730483302101419735181097799330260953856834647767999761773601244407895660648412878533133183809522811349871761039387398146805038892240513747865951289664405507770136690781318217432222925848315393538624895066916055627929962237085763599123232045235663335785577238848778502051267744167361026878203115529381173011448743145040481646594454060023022813176626176310694064917883832439239391609899679826887993561260604657738674842094349640056443126825031236989782960812161428101408362776892536204233380574840205277073533610847428352649674912534645793975902273890886587684862571916189447606588794264779709466285126644534238648025037871508136409495569752213657307884681231886033678507420540516153853073698266767124871427244940177627193619563684431683208806384491669956309909293271256043282340625847432495002994642796660745062295735979152952784564786621405128008986729125651934174880978641393611158536710711370251250759039649751262856933944399988729665695445426039157325224958265480303590397374962510678080388116853899202003855873788999830570581387827478937851116256255918401232113783578858009941369335223832063339804100561412727052379406669496837659195025494740421846691214920443561610502228768446636695608879274754155178507801643620266438991082328580349736607498055339037904718804976709375677575627377060512921737313159889529126762608698904303364698815007729477546095886265862524940944487695123758653297803347715488313552158298361575267112601782304543341621076452743044064189590921129061324663973854097137070718906714984944868870717878439228831647001702045183182352753021295416824783617822540962597572496239862240970736386104682124466198675847982426133952350493972291560819941825431344712127509400015524061879342562459517525754762658182156860185049750203656610332955227252869711252153669116605951167393503510309451197844019205329477693984829837065634550527269290574619545371610791288503953302818246654985653335682328248920670498583549919304793163705807951769369442367157677289733834644173886678146293153881890271185673864097876110598985358453362871647690336897358455091420352279154073758386321327355762636105335387562144534491111873899324139394410398521333181603491992059279797528504551769291574496937430982246787966785422823406823143067453532379820037876604966267280254354880407863948348970941714179631651378560406345905885058972294268155776991484529336977979184590153875632663636963112271393663951667492897152620847666208084543796945309350963520524955982245059327078399906770231412774383813789049156920450661647359253869741162893249548537703629918582057111990123772536369770101703617570262850300054374052429588353619346381286705350438854380964063692178299457973238419369194519790581782639523377897102009691707011850914279514008835832751761144819275642153552209726760776736411885965645834808990849644695078714452648832870852784041269700418869068369886063693560266106466278540041134784550310996107757721789099040903779782025122496437141919419109804240711148923960043590368196047471415737614423478372131929480379960945240714538118554160617300440382880782255096879369442651093198244748538383038538068598801806943267812805139122147380425807924682809574868436002568336677029565007211293715140335844438971024930099981795104004376339422325567530147241216849502888160499609082627336332615015083400998901699381739785741549367632412890052289309281351831452637851119704839477121705676213930046057813710342401172713972604315428437567058398360386012637718025428544410108243892159850843575912098898386378672012815335323046782087126808541008175682482481170993188299149558617457517277911909511189129648223365727211972966569725742048522338790051973192432818816904390085451424759262812292596818859216830235809194616882411657713629773825190337488262767103179202581567363694673230985909389765232422446847510940173581478953470073335993081423877071161394935668265788953298161584905010689180381908319835715361989510517620620061972797079689601453488239734357227577496725283595108684088227578991763684505185377091974432906685944574831975959054711061098827451457016136026783141952717351432798211338508619229917637531528082589991644182709822445327387583564961422382387625948242223329573231272572257185477731164217036304876084899163317962421418733399352267823358519241156104769483549850962547316939753011972631202325578441545792409326336455954501222727091866341054193188228229469593850826190728470853141221151763347675834486408133711208056617154576057463329754084862531102737837079004571722562251935938513770917717994770267314515954627082562213217264277561623366851007122424253347649695545864805900813218085444665653384366774217471185595981446477105825773634892395831808523061306780039644786562975709644552379129363668643671419939283947717923455645924834774771900134586184210257558610208259646753631691651761304928713012412035904160483720394006388346883980356656108172130421943579436149726183550421499385977370346097114125289220920427918318585149327878332044970418522351789827211105170251776349845897330798466550864116824691939167016049838471791272743833842328106711179732620188556412580535957272295215555051334743019479831398202353899862567901626524291430877154733929834059552997878727808766446538164620665335078385998271891040572190134409032983478659359150115699750581800295864502352482243426251299598105414520225845127293219322585699023250822976026247634833144746012985155830268060581064407472444023380866283056305011165409473550828927197504931148111970271161906441312275655078088337771219848243970978475282904474680493002087153744403488700284541488232349865503197680863409353844061095019940665968221255182133263175540595494443023887922975706385631852630475934311462593272325443902348313610998396652085157981777654778504972627373542895107398239174436701100925382347365104463033371650480554873496581268414839906208056983581663397501393453402403278693783614739920075754872508329226492114287400455876147033855302574792593371514749470440080789747797009357930713634881470210127822542225269974271384532323802355539365473273811350862514755300425457520269484689694449550635011804534712546511855881842188093577143390599850565237361419420202994265835442830202211431374925333640558328733486061150586851452258634935792572918900730621756926684627437327543129056889789543172092287181659050119755588682726189955154755068409576230229821170944194261372117844629276650641191712805273351741717487488061505687042636715686350840952320009163468611880344805979369337955499158022767223427909148336858469470104869715585104670013405852219721796265475124586573428131731133163962844181965558319098064110207535489151881471178332714617795233187183916786163878025479418919314793918028953219216753059371379960876145096778387714108144031791961871108430029670949451965529806030625064310270188863064087235123281004737563289543713980575188252287977635742442765687770404242536714869091525550330790451477609228184513858016118477937990624242159817307798457384622524959996452383719073004673925306890629039093608780069926783926984962627330421929379090482372189101862409214776954655343805776612941939311475639377287372670462968652463427608418797201611187120137234566440747261230843612611028027150106268816697626416670215742597926140620117170578391049941226451370682336596788613529712957980221721271822628482164097923385438404969240846100517595260633415544232925470603639843406514262272915445500813906760004605465809543775561710581219184420017144403939697752915763848428292663935352804667773335066254136187365383446643957708043109398974221430737922202563382597713337106857279620487214444371907899701652576016912567047783427718055513542524260487616826362933673796305265323808859776732298805505266697069001691252386722805545077471105070899678143300044164411146544617206152768297011654208780245556148173244499409583837810893694263658030053235810859815566604039751541582321771810871446769957291792887177646608439527209974920393907334905160442718877940855586296639823536024227956196444222166092871098448557508470659403696619335245829905079596977996440034603244465432608814057930716242404112755039458851695763827057822765700706103640666165359944510060765649063106574658223738315438013058955556177582840730984514401400506503416177866438458946393924532337509993312394387999161625812971784385283545476204108836077460446994216638709321889285957726333207616161583603366430828823016469413164638853431539044515319467514469445068817468213699797247153752227490170979265091227713440634452313218475327420455001091241144545102043454084632978378692332678901966373602048115288705676378211689674798099761397242925147310440524758703971406122141497847294460861517568065579614650527286738298686281549313332171213243166047735642006257716378810991927001791286397742953117284491239966495892220933064252058065072297188934183031851414399510316063624297700011118281852000908729130729714893270131310627826662072837905474816083497251189054144895459023232458299570905951493410264273615455513049888370794964540198696291461954201629661059545093713378683362434293365775624354237630336008616194343432546551271326001291848283876838400875165127562372029649451047057182745233159456151100583562883726792528190148296071128432210342044548424224546601523983436477610843656039964260167707537264702997410355541972901512539397638101130357288313132687413024935498105441140132981069505369242921086543557804932190218528529918022802376023429407385744185245463477346926199573250620453563007377956116332274112763698353841660113282225500664012922291010164966880571738548579857946230934250325758260183653745741860830572758956691060484581431188072141075668231077035580026983213086469702992267747399984983084146734968154010293492533277582942471685546952053429476152755153352492847824553842046037717224220104728376127914893438497174380381815040028512394601940470693027257525667559040097996504855722569804504498881662318834921336925224004169684124948662221737281183334210726489824566188965491007577627744719911619042559043787523787246199677780657436513865289526452783831568267191114247465693822241271385175808446418155590774909399101135239625966819248214454504876306891394024243299955274524115135949192288385404485373228367176429859256636716790348906406640637280526807936895224408022489284886847009976020219568855490448740651281090990315197366284506930287970399981583857055425544131437267663781390192578065689362929834381892874115175961709263010390345876159037331423128581837651716575537334528998022543759975208067159153809307305559994782969000910099730158533633104365575405852793687838725228869152312669959546964007555312602191421285031905743701169133782265824089896023026511708303219658880084043045701358132980541921513450656716635155054297177833192591149399373494188954747356878462768164392793842477430965819456345966670057484931113120104322127280822205352406554079855227047282973444654502138306992242023170916593062576505367891227333066889000420983661320648116467220110549113042335744658816159054121824198160699987155015698089933006448201373681158824013913501767777436703821753415931929730779012826112102139742306536622097422157732718075017703784366740006743642918998736634804485458790345548565186771886871742159788974115703338062771686889018071855424910779167169139336202179334475828705194455778492940682008139605812587352164633579147549615697559945273341934362156878336035816656979630722140778529958086869271095428387596256582973231235139037717358567346430290949129555212357453418662099746434504281184835334388453753378825920033644265830736156508858066448440391014577729937998327788173643857115383317268277837579761002849804716610119680574058615577013936315102991278112766897644769223683071257073235047618246838271740491252689851143996067746900829707430642936679824377459695496981796246993149718479116760429405830138747387746148194584417673450619392769867495496239678143277139205555978708868487173769202389549196750059656069615134721148693634855195980443905256917411925016425456266688613668258246378198766747721526226802838245427277763340062714281102010032425001213176221482812959692346500962643032619564235080952003623416447393351917826839043095513807124152557991560417525603317989634980948840072023206939719092100998648097965550472937107506220601446392617501261565731164351684827261658913341181160082648566978632651000386704146300593247955771092619231339405358637756830982543796937064457706722706748793660517785450000501468525952194958976356391262007330689154236788746442880999387093192022469064072318151758788860211317233196124428184466094272878585318129174850519841476041061225557338427533819289840157890638998149715492558323459049424053231180887337012745270783947640167900155423852309761979988449711740780830204135725010790642091818796381201488093597762833007623452285642375409729799767815179544102640196275480421161691226504142341528728916216487019692721648632618389182303312031373255719301907878818439858819019764187009181211151878492355176772423705623883278949272059348901463612684617822131081215462460090642794964521864327886996295886472524352830599791563524255849880752086591875560094974182424033853403296331749445690141965671320522957464700660282217855826908167651481271131819043766895183204188966406547721755545435593641801973463735749234630526848040644141108628738262115103016803145511972986837033168232405457199705797514374924974953164202779913295033102413415510872963459659123197743807372816119360793992302373272549140069639887231364202088419020752489406315294883197756207601843118844562356050491570011138692249365183548726368208912955509183527933690967232362366794798782288732691552271510202409213566403736597248707486950726751346062167963870761081955841424413617156736524849769732987177643723402860608850129783259567678157057946280793169247605896872169071274564146922792796251726838033241797987183743757723026760847465227430713527775966529556776395674284689147400076523997105317928953166266025262722315716469797074945976160796422134305429303444855076740425100350397436200106976511669278025275954859671763235833186090224670541004352313427882538748319713136950959291047341479553072421995101262625782913686753004135148162323573244207390657931498744642922483432942266158610433875020538781507286047274779049733851611151687895448730479371389987951313497284799762089587146990801232663938594232495062937630352639769322275925816762975296017569087496154899204808996291803496762075869048036015480362167556730619366896656223365713703320275861291072135303339733388398642710807862873639806041651479238579079138453442072320889641388007943666289376922388557635010687240150267000101321555208528518397880520979466812723548735925441776593265658272140838020296774651388247715041685132227190027588004565871633216400286136097754073778002215172056700667405795633321919859757125150874545965177206478734978405500934934637345102982522585218293966008000666833040271233457238695803696447266746895537426997213441322414997015178943162749612736899338061477735913725047871193717921304510411332396819716509076579114921081197116301797934497831781836722944677044294081411011662797522806434760332500748475498633812094251708681708123941450831452732482694185643520882393832476969637612446330932580318471480678735554941944735026447712569911814726622712373843134220658928296422706428324778230937061249191405479681186653312442046573652168593485879321184483201662595862741638015858691202754514556842753089927900935507842093668921212363055639931702638907235702734917112797546853208471341160985097839489175699797770083957660261646040467708351339367702895943860926972599769374478037728833715492344606878615388957368794979084373122000469178303164823746667367833423993126357342622852690899323343445613270202611774117589934247723615058744595436162986070504504164155493853586805740385619059225776915977162945584167929504205302628728917762180063607735058822725921734922745105627061262895855119411236122489674774744578523431754083272794768328522974028779401313941748691309283214814576110531665071307865054118413850395472228528327577517508908768726338936786302880050798162541714707249123031232939356573704633267952527559550425951888669322999947003445613846514401826178760938228763502662379210479738602291054615442322465160856437256575957389490850908150737323400773218394426377571573551545328169755575695272431268297888740304405407240863571178217869124048761815708648604583497350643108680558800112763119005657650423520942527716953021388775825298860383394200722877819880301341200962086810761644306428385940381494082111260866893764911404143094604231860825281623159670285069626461181316265768547987149497307374093425284286279105188257640017356883317846283262747694695620223332254921860102238126306213152871331350147844941383770015601553106491600296614569852364628143812395437639510218329684173436858155990661954229603226366569000536127459812926867236780259848076973489395321654985321091019185042446942282062590120974701545513262020667882834053103318171107628643326457171514199228585180278058151995256805509448412943271489724204210355846686989838351434499744397100679217280527095112712759086251056006133259886123063247721357891460817497211865315694977351039140786002152499771360756125578682670818140451867197398241312335805983382594232403808847815610952594522624235498619251896673089034473087469635041396738090739259336014497792304218828656572919523602380508604045324859580026094112508097475387911162895623302800372640654240990438909054644859450232457848221113878336027567665181886789516430915738248627932217727073745755635227471121357907968758381381953100291343763581986846116704706855792901336239949183253352400397510607719685966578813148152184386245878484778726039556061801458126757447283001548175265459178129568420755104915929460705832977115042133428802650940208496743068299239194916982499183984471053442919370447041319057736722587914043006005317134969652020176756243516383214521606622528121598440369073192493273186074912496617965931708475980861866564523064753381930803525480117590658761439620257453558256571243698610382192486491451753086816134020128434614800396041009507265326646999862617261038978186716313996630853656006218303727551462456591632185761800716121281330054733554604405520265716655204150889057312095396425916825248876078303529278277465908090733974400018366727434643612845141168336609505341841932290677984814131189816198013642503905384583042905245394139013122448179334069963167716837317352246396318388551890742204471486577721239442564629272698793934216444811683134904463645613165000790687618725392883092196749625153288614409183590628581303335105223312673312844141828322786511425573526699120156958259650090241127517083856285969752573502912987955014493919361556268074066254948781808897773842331223558669032062054512862487642922942394226409325853686969512417921640642738406457307220737565179018678616586897658847176097363572280242995758578254089835576435718763567767879649539692480468167061845415719843620590667757299816013690876721205138926193998573596895124218184835480145028085610307584857624312582757573504419040758494233360896904028447640655850689344859035698263508881618943753445131419794593373123083102347755262162054234028286010238933323066889399389859352668717184861567946619185646633758112978064393698476406785917237090181674370267987969707044881568758009845677448329075838876994632492373665102751105906795927762373636899505225808746335394654175063042489385022300382676677521580117450759159430945754209692148833340200619791025749778522684313449851008894548427644268124994586947414010338235658337444953864125494663360796360287242885029902339960530963906979268014485804236691053172921080104983802181654358324457182477096858434432865360110450941211149656907028259457288779500115869400258351284884139172180176505577628007076102042218552634110779232264783238863598311431874759414021169339060643633456338569871128982444191596620137482287225938189433152248738024548720522859536203751652650966252204630003401317994123398246426865641892353437565394466827469622243287731315694163640986699231100156217287936150402424141369412665177738878792481347838081011034061573826289302607807881101691261564100194829820942630088974291872839808730684382484346037515797566445345793542477424144735233333208958044997709984101794905091276208821272127978493629247444528846845365794899932309231061768367246639173591774091952306245702375950407095582623464068340601887078479192128299004906503766139518083593466859541112512401610367537276038362462761472771498224341290683566059471670337331964946257334245066145861774909397632388644893991888308034165362760439953091136761396906108273279174255819158419886489327268059930256860201737450892650999405759853853375153446551643164787166742724438523435682535319673577136113038807946890912398545330467065963259714388811617763224898635826641612207506483347260306363379002299471777738290007407644522760248203811207778113419444562309258127347750151592099730630495557598409967890689868845326244754179664145865971780703539029560494374486814982481062371280228639548967943205372043441427501117600805891965967144133425041827951950942782713149848957605738513085163079221696760837844599930416376885627713675400277649268083731525338499703228794254548377465567798655432572419784462108381382656180157616937105312816647758057292592353426643808283721640519050567252160544495433030474546498037451860203945892864486343330548512806450315337213791145774949220003085113321730746355313374531872670288187289734420846081519813361809854068537726808767530037684235933369687115364197244756227292532206423864723350788967102861431044767704470718224302881121052065066855405299146020108110897495962773613866972327777273924175679196896711128551056902015268541794798950716299658198743543387047440671114356351145728729694421538751199813280601829183244184243233956513073776833891531328076232880838191977584031291484615267179556305173607218796901908657493926931298676244683791914719201854881598557949095232096524989955293843049802915618226391473703128358310849480518443440790538999656349121289880726239461166602871730230646106501246634131507365041935832874659818547772102564330631043330211406880126566941273754348495572255272559508968047847011346082889779149072059050657023656235192641408569207598913998562641177903816523835024402399928515135296004748641622100877559615541696322944069818932547255297378551750485675804545225848347860834307589327224686479982999462564268766145724414472249320720037566739279368691426468217662319669271597387882049203168978602732235035309090559544864043643424216064891447756414746894739237205349207575062957704251419293080957413893384679850490760032307462485216937112653891440917104543704012129658392218564144475353927885817397200965360812506062350514018165275538502474689706238832761313936015488626189655450595869704956533701151775892599817098495210504571723620922423521113633455714698461800472352560854047512695489359670427781335494534621957159007283243140516848395817448120762002749941331663912353382335648240754745048173347097740894849891700883394877485397403589676758503458627986656165157170716633680697846085025719088084738981414386376626476384953244072978467759705485785617487167794455358023420869995984442650546662398116477173261373649796640950074619960244718722418975263177067669221679452997892979697073003911248746490521952397052185303645104415016996394135363702943665240496520967420628149421865472756309837459147491514434270371082396139556417473314037241985516495535882179630379449110221588125860922835300661910283887564027856653300529815528684264058719088321740639120635560658639112756161884185257788003779378427933020123474352262081236018790023058091705173731920490536005829002105166932549964038379599556149219608499128483442291656166523131642623708728705206224693453861386648403062884221089492543584931851835791159175969052764986618697218151748919048328291827883973457310598493936236315698217044006995995901411945443408977249564773863549523918414102284822684521115583465024926158961368760171307204651093036997022247326746007735034410706687480889006250095959903870269560955991553311672914003492547244351584679885722352149526155795202863356514144635940377073106370415214907752329995538669735281092514809973059936472852935298723211501803131084170696393243688510462673327873212547909440448893733209089982335080437133325000320991836792665984849771907319761897156361550093628443865099093632437575070038637508070527176459446391807150473431222141485138274799203220884327188401529865167585612461754186231191636527632468157442820904062723471513068977066080055722266437314201155313439291196482881045110712551429182129158241874255666599135345096717103594043016940039705365307441614109269399945735410349830137232127406306487991377542076096093682471612353113476495805110415430356999508677662328146791018995716524731400134943215421904308042450892086159537065698674541951827324726077455274242023694463364551303791181210881781158335237983930970468113180577943841679877025569552118199168047800441357547452512599150173598159480177573986199362656021133538158873765140772046860709814454757565982207001447293144218631233404645034079331592905611981247965657691641593450494871944822323934322120260019544352195887150465466057825921348509047003472462396605872322587225457104916537733203032716343902136706995228325618255197644856009293981140455773248975663934285283620395798115649887343704073473233415741980839227112756379159338208108632929635785737651428388301480589791965980026090218669549943325677405795859338681499203393125087684306943247156476759026607591111041859115609495989938985969269550654931039473885042464340549869577379275376327422490717420570047016683412879995476499353786344278402180956683456155865958632053766196382907691801958748956938503614757977541281317822027666120951059913872155991528066213723347366679239287543471314524664261004015160855978589520524315161596919178747612931950901675748932165903042217397735586362869416974784495845997892100161338896949103948073042708474493665190643941745575642001188477391944352411442853891496024499977513232134201573653422861065888390949068476288233403033303725907075668001932229507448865178373034538819163685814389055885296607033237908340373831647149901483250058400323011093741263996458181569469563827259253153304679344935035168691400045161841768476752828246700580607884689901512299735087349508766795177432134878804579173152308863018035496693282435018733683274301929681382961795864005531012890591097305273329383399237053643398230278473627354764181665667728200023780607400366051299241883451664883544701018411511597700598212214280955861055492355026853287621525446552991437055487007174298052872249680628000836560837667991844440588364222699374925992082018304016426393802167438334035953994269603101781472998410757763382223247646302336396577251030330403506524418245885425115530281264078838791062695534405247881054748839935934455101729965293586520256844965455616462211611171664792131340697705863875156444999657017759429340396468304689077301822098542197679400750140497723992984635817263045968956853224962167739398376332329943925068496302413725826447522051703631782847784366552769304741736879928929396098262077542096753580792129297558728029031995586439977444294432790255008369246782466356563718154035395618925416837025987685636990597740867274904525202381512221446629202487106983290693676585588500104283359642549136349833147247091334818103844144283836717734086781377376932700337556149910630092934916820680068635517400794112083637507546538188863407665862418534170834269897870663998923148357302136321914195416575973857618144413321603658832691296791031576743404049007744149991281430108643044709253632944627519832902455327504287989759224795519941450280527581381796874475476869480778289389853730293552054025917833649269564774073596088167627861561048717314599367237380106075729344985445639648184674368084642440265849827851757214646195673655704886730911157799991055374772809556000709735534498760757887479416251192816576099757078393348396231774013789752760942112537242770305442195457848440977765404063282156681032065598133231662802446724096663633614080172246195749424995268690174979817108850683380019398696958660166764462535495258730244711821062281639579452892950621761302139643896308755971134884150259992526223614637920099952870742795152804544910951675226435814300382675918016726217079281755037012138177836677810089958540867313327163345725799048800793642739660318000421630612550382383928073364256440959418818733405514114532963765724832848480782881682897277268495918247444719519056497853637935542298116916287680170143475280126885447158202285748456342317775071202423008334751182972856016775171721515301063917843641543163425987729369618835647620454162311110179837263575269143707403178289724719245437004448229551441930820824713032993884261183957320631699911511980448226065117547146264324197440839213059618565494547416546885174759449204583817769459678783031954269454681980103029335075053827606086111948198512633236485788646190501601942990201107865069296128689066515171977005982866574332801189704653441425625625364605115932485760648848949056527714100040736207913398163325752208530413347026667551440094555297094971276960616740609141059239539824034392358823776700014310868029369449835446930361482241880581823081521896151733273897756194189834433641718980492941364247605552303703848831338024302619029930645533072326753247490792986877915495846843293825367958335937032182670751686847332096830832230229763482025301225031636946847834760823060390203785309470743102480196432119509657206387011152307239703450642048750998388355768023967255878378005542717129804161506913966062317222931565589182386880928262647225828801502207160432947948391097467268043565395392390875403333495052316075630032956442681433259179693234210133221545676250438891570936665058536618514197948755796955435388766325912126812137167742195665009746903522871817332014874711183596911294099076794803304217207522121726011335500406372465348181678928075164883403307279804642037852799103507660897467961410232734714359883223876244283325185919511828379748405148187501653097226882223379863107838447301222382259380831033112086060685255456287951956642122512356534085194711860820444515371190810558623547189886963649120501974223917805195398237847960629062490057402720400197562791851774325920059481189668249724183855863815095425838060669600664018060888963289196683842397354154845323372014768134480881380259168067197388371646675588975598049728719889276591790143653189560990990508416298325808958828584230478189391348497118784382516972452509429131243196873252850058464241841550734687670825624006950269482440945408065999771638087389033781140195197307121103377339219828456813887264778034625870381561887520350294159969801310582070054708718196395261495255386738933359094574250092676940996233567404765189049909020237080263861507600141453773098364350206824782561138166654540053645634689371033470569489699258379266278592384518566907414629497739223789808763836534192549152248742693123629539122961964430190461693276716812975722107845441224001570539838643825926008557667185532317818055705839058583542076759126233013417099364484041972900368407541167868312110846915131702645838126503548964281345845185717781286717795247138429383141253980235616782401714512879459307082764883508425131470769888383761278996515487402061244504044511379720437739189431575660646262331273502358427634898891247361833399212125307761317349469456127130203045753639436564985145177279153746739581242806648370540281947996789463676266854232448090383627569169542898661175246033701538452611880147220211012543009186379322532322800641927967098248083284148537303781807888909859816368028922898155663289338422802422113408653811287796169888715649988146847633004437951389232660201907938943302458652680560754450099463354546858331570562623494851759478705896706436025567361475361005950402964143953836971862791409777214247433396430444199286419879974455737810350169172740699795829131299261731991220415334951906762583083973640844552847056674084285729091520199570945810985319199665174510450922127981154591562023500851528128180822051422500937647829347495102559027101254883199550666226538779494031573588145690539922397733349459052720633533456484105757684257346917039106064008786652386098755621551913171736382397430195495914326923228373703363026970885360688943972665625653650765196994176467245067975192159688808591375162534332199028175710659644236303894018411468941170186626955905124462817352260939335807869757332212357263752152952937495662252134188976463828109434152332654356897899792905959041771748990366864369897074395209115794222382830750690729038097375828425903529621889250446501889141432172703810721735709390548060750509634872079746530765927270105104682451019054113723848621472453500718980733226184351320704151290655834925837711979831738759947083911366125964996533127806460867679237640121267824538153576023611342129984758646009584639670297423163995080874721507811201517120466613594822018622533836150689808531484107034522663258261027421418369309335254803052138415535162480651260450730817137032623744608672971002785177828251953300669875002724017566113744274756532610071844166200633526412405780198262115980552221073044035086813635407739856659097919025884556843355163050976661737667066386943229711960273091727379861360961072936819134440100239666716793290953005616503823412710626086689708388409929816597507606528238274936617320732058703431665088304483516986379032718072620798066883452086334238342739609924432921509078273709599701956933316005876377102084612392314415734453599029143125277564005933670232784623444237416679525882240720742937142602190612559105980881814513081464784217613299697056542550633780417148938806848866632882836683610263771099956115860082683644909531591332120225482803785245682239346691108122518813923793411273539291299691715375936219905383827750682744550619814485033517311503695963650548493860777220168236905115198593695520035724122499489363432093047472307082832005829949693159103916793846689791022951255972522977743561704216622337999484414031442638944311699551349529541942966499861324525264018765734072420461079210873271740429003084988417740152150665718211282800621355204780411315668316575031551192851431931225649108802480783299614897185022094141147921129077335022065952260911317935621233457195682606019535325659946492504999775569216816552650275383249923035136288709180140479084053852195456642057687686907562802983998023621315450418901428187654428572273458890914807910767890101379564069954151695321818561790244914774868314986848969033043380181792463020397882986709559035940469531831809510678360545215394846209867846059282586638653893131103532608928779056029569300540253656101586263583815577681478415194950914278676669286232515492220655489354590246558840152962477949682138716173988155061699200358267165791437408222936689234283753884183335410741562163296256331872238001404612788107675742950665914263071150764362883977798217142099370119214121634360621554151797801518100526502710748078287882813895790448482756273322841935648266191825479024698313959749798203566514449472697663332027762318338341692885131412146420247025430103135695244940080264693647416597546786405177218849568454186120938863398755524681108078855736605598976589813990949524956132182371457415155098557262234176493008587426412599851095828774594616405620715375309230266498647288906486370256672891498665549737716574373191914337037726003933200820999932528287532092364988532079700830397675649818374381081650086907484564104263086468763959025707116959538536885850158834234718804737216176938504067590908914713884372056302625705402242956083855458670955199266713930595846686367284367170217576405103029192857261378676631854737862136470655613727769769105609961206951475937475483400504506198426304814753019927716211532143819194388041802708568920546026267762693225879360099002884026488800136794171737399811634002561088450637287983075444292170700750158309164326222882972872287399975888958147484203922667856148923322910456035618320091129586705740641439645557527682056241048875334511113430780656313771672490003259634795191347567785702254097396344711108472056424510593374718161024201120725289814759959675971678858626635897250277069641643928400215326007112520975088356665090406991229488757446783679246039842846854508200683729313193750951492840120482592154919718836159041392217808020344753241817403945593678932473073211800728641613162825035080220142282894091500130021759321684633453126426682754388534984482423265403430678290531832953146882697073865700617672210415548077872710245734747863293287017123095443174044778130127238487612494335866568274611544891123782108877735821066892119991431355726123135317661609851692280064135447486967943360275376902647226535516742826230800473761433206417934426780670455439146179229034109939520120768702620635466768314508549788058530543728819365216431107400889571071557237711076847168293701508849494824900256323028753977311979400820941810643959565388273347569678247107931031758206015211271743302766632616113179928955283964408251577448722145159208452932785064743876204305077962810093453275021143660256841528766937201116024191044600732237239188464010679792276974865097682896174340798249226792524667485752080566054066949760317772209111215194065439541845549292339235442816188397851597073405655124185466672276574930323004527309150106284673392104323540407523744673719307181058787515135481625326597753253717089277494963121957640638409848286605307429734723501968091135986120376216027176746395957366433833436361540713367978976182641968622973614665825508244744241333095821104838439046714772363545402260254568840598617449500420880906998408741131803726504225215260760883284604401468015344410244805200498459897796027957834906767121200312580993101010690566883907065782780102161641442829630093436658311817526894997352877659659088397383108464426989446513207257094222361399731084007431486156769724486797937250860784857880161809234105188150213461812332185499659835724980235028599436261775874379865855532026467318985866149135124030546133611138207955828587121031052817152268036399709216855439226060557420318727440723193312209548816211008335657698897951060788762518914818971697511769739589212904295261618580498311600261756247344978507772753085833906402189673485240670002498357672128045578524373573393677567417936199259335635530911943181664105975607228352152964411936527544196018107354401303595689551966610258547910912824844802155116318510706355057214039382747940252880493409980843364157893889548276382805537730693419727330092528976105072985743039953635737701980464245548875847468128666053693571191439613886143301890460127004059570189501421699480347567258539893772201111466002201335635585016680906684311675433264413224390810737886709680540083686505841577998148751236052417132500460484583430822956226882543771991138431547940609244460781219819951934620284053822387187970194944076252191671943288314213008921134620380512273285286396586181623296794110133700567269259894068563684345568418772639305005907698516989070929737646684263835200376155089381697095156661793801279580842174265622044447950129021780108385529678354209693273903162813489681005005333692725192182809952164507162715939537810133260645300207418547440438839259966439821977368864107195172442034802729857567986825480533515740541075751098934489693922430638097947929399689245184915125911361805620495102232488316300967822885966610157053282465581476451785114279210180345182632977060679139576497697662343893251146497895953285215323085000182352242989773489170358244601783247224155007560857006892586099581611534929738244096721676357420606070151613555191576287987500457012946132736285901564648357993434833259766605701991123892928767277893623597721019317232020501645818928896394122348637569575724566420248382393559201245609936702034797566036628799906249910482584970462738429512165212913355198046204598637422234134849111721790827233453112269312159983966840252425190248133789509637310111483404226936220107418202670130630524985257793989218052439350568685679133400241113961855732841916791846474648521829024181817866002469770493572734644327076687071015568273919812974835776933906265304064838783328363892958758207528528946623202846841027226532573260189434686149651945401191254336794277068544262471672985675729454852035645187861279091152757126893534694442832565152175713583055881149787659882111388309659864381989904065319776953415960961373233675091352946273685547871745143261318728322116460376666746739962653016001868720912920011790546437473803321779925165697418857932438576820266259411046760454137558088942779911701087151594627956503345296007941668984096202648414404347247823664084381897959133865121298341520177863136729043226851132271922410011675407925737562335618638792267658412592518798469354341563225136442451416369947090642045639983096658141069006446289861771622902491931368299965853517097768990067054950051970001120216356681387802625950049556647561172813131953268897439383666466004962082655627074284870200833492743585388421130022662559900726122984804041243402251368332521282352019345858149453356590264996688955474835212471220540513847910880512292511169220878882574934135055940405362558620103915665426630012649867563876839550473165061544914176609932041016797621876896799910347423971832063361179438684559070499339785793349721415733712047853775613681644168843126165814523867721406325077895783228428078511599045059508510963854089763300242381864272878166531223340931700208678121926571034380766444862107783395842884801021274500711761687119186904222585458660352427987974426715628838817829433684436962240211542578095732148940577633728115716421719891165282529581607506072959229018087699107443126083946251168424836418973307344569605543958714587657204458668623593377671826811607235894220361333147769313558349419996363020606621633665713220225328907779740160620554906133619517676310934606320664340833798808275429171728485716858750295758779518244074430189326424463028718790300813987317540442885025461290776300179577147112188259864760818117232000628122928704312467499259132816432927848384664961013703198189101640015134865624466546305694638042926526414645770063606676400487606234799168790945968261675295778624148856087541539039905596662665079533399347493511431069862763790992576481277223932936854141775458176279440447643976538008608243878073915553157612822857361488552771484623175434664418042997748846636378910383790226153377019711330290680926340578920642358876271479709391395767951331176892295297359858293856973454976420569922531047486569372885645575394729466034409791080874501576847301702504620837358184392820673075393688552872303874077583359287061777814913806232465234865793978389226479230737205512739800990076174014786339964932324524256201200478935466745189887189693625080868913579761705188622625563199015703198893205052607143000697596406074934647905239452806217842058471485262755594840107557488012943826718397177168112161167048973401948887100481578976117103058063226919428865562926268609229825163011880198400542832407418632119659101937617562692999989605753162935463049448409322183837830550395726288170112262547784062132552431831664390073175043658373382180691495750658308399502591832071193028980940793859657018833984190382850899731756620720900401497892038510709374234577682447809046375309173708491059080061981007509437132765982142427702307713383071823800364581106976559055280545257107406328976033292898007299696926725768790283615892126220785125325319694113749636946357028171495777414751086799087809348995589525385331880342291525115222087902322916403797368231405033404609161184129270649526989462158328939573469529301739751467617848200938831304333927777934194651374117248535663621739263379594312617699480759999067572840226361200752571260633323677577675847584292958625171092762000090119983047941273486700690521736084124794858154927185884106951359301409899317917788148660920178709465165136776353382647127281515776412292484050762446124747756097237250487343929623919385073880361965071887047531860548973517519975508793929351730824783016367793314021107849794825393911175781982015124021354316243796141095018987727257868440045642750552714135894688614771080766725332717686101959422000230081040203365311136188242419550989598731722492505928214110502496676652126944805243155197173138145581207067307140034212210373191927606087290742419645805325109935561499573437691063004984889094871084756929368309052237839124927370716466389333054534212247726918449847046774522060063444226026686407806037781252021127114375916082398067699734445124113704278266765258059991621207929562675933984653976853856956035339533521649374566629465303107300799506800559260739615482670401029649621454205016709359497317017919047655101626871460400408331716971858851451256943707232620296208488715903045786005891008637994819955630529303299521019903197220940733183845080665304182224378107491585693879230190931286998930750777064452286886864289324403492901206230493597900016466136338802753522516330003016111293941841773106518003436980080198473807213020050594881856179272115735979361934794666201033027148078432346812451723583929829456405389701466754902479229671020280351624326308487790655942935688201707899536589945389809256208271035414385079233947788990844233954336084235731772246860096417008611679200764281900962813750934860048422101798641662258274697358943721812403018412378383678183791425683807555463884333814577129499426312095415645364181061603538042184324023907190029278090503790283669108728413543727359996406699006563611864012949200375664591068551049239512522668499397086706356403861422147876984463247651764924564395033394165152603076908165703459842864257697722519655415836937759322527572914456231521120594677646832469370115505188014543153293206502820594476751192848975647238166385986469193212233203573222099187677411837706710527784237542072691469579984826303277805255064129808100772378639193046476082255906501655354032395418408713231324839296008383806694067260537115302719356675212685539824521572808631706491989355604778732586851883053413180869825002367225339171258272068285042768868865109807270379433451419942466312203718246507639436810189758476339432507569709048400827548047933945513990808563692484645953794522105122668672638612202995316698195123243931391064119580731010683574826567672386111932664986471615066746104184587803334208539807838536127283243761950864349113945499848132509177490575086471860045610376152554960433622216811540564819664164022751572553807036253305574747479846869916214254742735816821644935450807485062018871545811928914135933202356010729904935318927129815791605757927251598948533969217475900993191324975835492264284410959981081457994345269328744398694609411714762356163682702915733517730308749375360260245126126186366622485090694572226088548148601944764035318919050330157858863780326489273844433068929774422963615677764072883388186524544965678369887761765727059684802638151273055784121430815519447526401862102676967492555111151199432145236186625547460990270829489027664223869257693087519679305910622199462991334995466461804695641428374963135933811974588656640616738222122275585961344279350229840521430063496205300626123670944309940306278388431651474705272959985788109531893181197394713324337850650045759350222331864521441501068090804124661251717311359370721122427260741402222565370782575659258313502330694717878953753392962968081128298731186505397620308176877696213662681947027070354778047338232815081273850765011355617956171189191214628218160320680468706279554243328686537106354445229311621851096042803229497910484020511612070802819867130491001103540407260104875471529201540699557207365848860006496536635154642705619282028667254507644082429742976719207959032547951152085600057632089386852689909664208067428259269942599322357077081815847187741097316017813470231714137860461629837332605538335432546275132278137184144891139904616904841432033727822433935071133846040096228572027088472601266456379241175618387877751919672360471991764641641796424486157930715130371519774880033103987590691009502519312584745465755991360484290645164160001414035050060086363347891082594230847964598199810227464538323660442365028468889350195746849528173686185018777178616181855721798544868696789138922014083680116751320282822732737466610562251979633693745812000956379775988174266060821797539360375401216745888562269454332389962851702072591214657005405308806441600831746591156282455534451711056264955288519832121200868853467131500620777376294202230196876980795938009215849787142068866995440829267040140162151746782673454062889009661963890839183003741661659337466552962057451816960966185016777228053497305280439150580209592563278818819451755283838228040689084711970477411790067543455378678544601253198295863088671471375871795559603131413757946708272662633105345567537531615447532482391372422983637902125784546941923584341385074582010466438229476230014811734272414186373875060471958458300030636932213723520028375167269490953559790240754517745191980384750962047478823169171747460635983606782316799394696360382940993174504514888502132532219128104355320240018578399136754827565802782330459506902090274136497143353817232284165078799890694675366758446139053208678282328844970398716263606824037085664806559393144423579990459232604267438800293865126944242026269167088311664579443358199881945467844264645004576064998860178580497131814426563421138635680013912568950232959316264051375891137332558776682883945859400671179821620594039944693853491022861445269695280810993774322597187737870314743185300919235941079295641045012379816973977800326499158902190084534712830933873395406709201281933857662392595935877684420145076544417758971752615324400931009370388033394335495965351741315973365491867462250801568599596204545268032959921370725207033949998103590610805460235792362758649462996828019281861671748288506794321317929518920784614445860447566451478124533082910280257813092621376217475614072006111063780775523968709973641296764832157075888481155413590519402445195380409893024404710388980672381146535816225720341492534369192632861883522782770196262772519844516124735267516199420700180323853525505735348448717255736402759660844559806153000321091165385690584976385341413784410197028810825818849380720079259522782763870563215548547400982422615307383158497398334029141488639598610742594821511478701982326454819275858563899040372627829711300102429067793705936711367863993920041679411291510375581892803060051007169329637761922193735657656401716366571558431409699301221060837628597536535714668964905340915506095260431502091523440063712902766598082409435966421767406881890955590521969620113275972024588265265657623652208269845219145850427875740642433653299772027209815762419627933719792314098943963665553895935405037275039014711142082847225624923292992603481058857074931974111422988107460695972836403184523410491670160817628493837044814129545800876167539704211358788937192562751514069298418144439772483536926772334136930394393529151087402243242797316200648373390796562261034082507054478744779424880053164817932586299478216516867604973863135583215091787095494804275262895547690853095689389070438858403744489803975703676662605481073203687642889885170064683561416312314345918035653338861053225273183876363889177950857475551681006755056718804749459534248206859313883642986533794992961477455127171869820889963233739624710860295653857810865916480671339827444557882889525507750853672619200749664417769980556487069028779615454235188734384845509890458282035005280683090748657075663740961747107181497580573801732359231264008273111574215823001643037218358264963296394567858984185757379423969824927354412106534527316500007883560586042465610321257028718576618555070537965583900691055151176170932962096638417678993237969126446211109274132610969692903050866959710749905566012732687496771172498778511262147012415060321454044064082707954190631066766957698620084366386822874919764311653750722899392065135399611936349975292294853604465855014831972278568015214708249162523809944926808062756598974902273919176510005650526702715453949679770768982561933320955227042316148745914391637910778808873340387899429984200635182125028757663918858847189800830792967589346712385320858581938617440910513572974118666086372574898281166194727202440058415890894387909743841294485367715846812085317100976172877963707449015461025038419393957726636030255624317514231418558436484091751717002391906440001046187041658322330000664046190343567899251023245260167709833810390012934998197536431907380045107628455294563677841186622718811221535230914585112373313372990901314030427691621867173079390403696473363633010186996933659749712005359637092777527323237042629548516837141061688964746018616721880096031838093820706370585263959519031813918898634745834880663219006536707715271346943504868601736078218850933971664143466318702367867250165982401738070408507225358534477084280574713252826090506226895939371756777064687687683544363107479653642298031815748132544191793716673596747505718274456980706902800434879901918723438887581415868999982165561490633599220910436297498840775721877933196297194501301129387453461941321454741879174519602912828757711659910750701915719099905108202061666333317262439384785919232614025549632468215079780946516813001627718034239424306092029705544519321867803596551109915532819100172730986536719756016379670471882619356165852549536309145201426268072616263587488209066727600401602489569608631160193432817070163275441172763238042879521381672147380331298288162958147531933731176111334337754644097273796110848015095179363050326199070359256519534434876833371334653429548379922512226200924917752932041274531787035765061341967447735833497856277368827769432377771394845876125914504797554067702914621659235808196557466108534212641827430902841551507757390280137891203217760320093027583502967684212759259802702028398703621993217355120767472166272877683452691483914365408650875617980463504651169298420597094275398306074933370143382276641213200360041087675389132827797703408894235780835283692543660239329200478963205576365125769906291025451282885275647776212715289169757871180168212740744617654030757237077036302340104976073690393695170712063083067354140383772938269483092502713328023639813944940582223234397022668866886380390466108435267809145830731614947886226507048080897888251447206688842332053389323751435777223123807660035992349702832995063732969107307217723078637868699068998872765389786136155477616853401182667968757023727871191496719053272333942591436801092192603887866864135618456720903495504759024285118407426645146193669417752198027668593714847068799633660632700093895924513948217398730681705112079983182590617126471465135012786636078306961650494278856006747265638850577595086483690026775113089071397636630123277165654426987211319642427464446344880701562944885659366839963115318496820009239046590213525796165639379490783188262673973934708005871915677638534916054826080688810192425628846630895256071367483642860858110271163115442637067453678923235818269976808750431116288862125836472938536504609732159080026473702552584178544927351717648432244239734176816436370389144633919882199912456090713741674371259974721322125736937806104053899171472518262868884600302313290436013615409900018954046503817587539887957674780036528816471699483852595500988027237561295969983052468298922906888161040363663072841497470699082489875443240977613956178619920411743523319718512786138321911999748841900006722823761469558171895969812698364921579222216994943046614829532737911288022604783789561020087510772140967120419474366161280318776077841570722990039768163106820190367125611015687021719665475436412230183506903787029497315429483564472914395336689683057597235250050320420481950692055599918628620751717219132820736705524926145436793470405304539425653185827744325498365616949006552691280117035724091003659792268721867431822077232714612870393524636283790032041774818895917187332888871914290553028107875787049177661002924512273459788428834214240029498119472914047148773537433914562504758272496748472198086552134755234758335285257495073657284510780201618651709815034676247394225650833009001402725234118847775415302059908942282900630869671690843456457660645954248561599280864418217290173949549373878642060945909450858669750880157939375942385799718529589717076810541362127283902599754078138299632864273884903581526305439258988794444653721350430135081296381408124428467013716845175663417672239322148362103274258826824147301355025268480962060146571473131641083674509477202460830856782116170437891489988197360667984267435356232658789424166775002905494641727359470523088515438707723179911507872468170795054013293345308046105437211519209503954615277059803660100085706673218495377997775328096514407836781255315238632675179186786142699398597125219637087288869679067346482589384744183280643662581481869846805734796648332423409628839794066307745075256618910047499973486190048857785771305806777154620720439670782274560791245057376163309115403824718758708132133680188026103693025892522210732910043961743648791221848113183654746737378442448144589849368216451575389442070874571936237851873626682033541039155692491503898012709004161104825875903708142133144853691237083697702843134270391102438242198908251218069554016941026497363384135795027339663907037873070253804296582878602988801824314079218632268707139335107804600938361216562193306427667294012502633361448935507820754035692986843863522945018250963688959734981377587421532196741059250093701104797648243850101644466482024345076893046080200990780864050949657330315670118188679610326829778650179375958895628648438209276013721161921052743852064919023223194587719390819574469808334486835807552096643483203594916999072002524099085242597104446175476990340541663333859908963628249699118189605824811934372452912589329965468995882596949994991123076492165215867183813477829098562556721545324102179954756803801915426619813707248132788208333028058681131530837236682646761067175953712432969345467892931246173933548727603894089548660828688527663389656591537323611233276185992861733671826750004111380531133970277896307169611163254462173065994949306946123794226957952985340683682968458518364364026631025129818354425225744821269231827728622855511070742089924516427229020020049259114194134794056750898335276178255811996958901200388091646112781609983431084752841648230401254701594859301084488600553905943625630101682699849002383873686311029400784376737917972769009065756627730361496648832292696467121851817564139036270482497307453831929195703876006800385180755901630070133798868719451888091465518077634304909016733968771647543118787903867176244841406633359413452635737407057523669999192788500879724743603954162330808629535603899985007300776574472222760950255122434161154164069125575020217369931897447632609325080546297288109209220238129986044909209800797143969804899531926611048706943570760756107109209377366185487655681752082790356291179548592584086176581251873587244370360432539158520486927517291896502451080574244171169798343122664404471685486542158227051931723437095156797864101670869558989785342046837781366791226288509339272524359167073233784937897515890215362957547791135954284967884685381557263319796043346082264561076268948144145773482186074759839064843773790821457869950613004604659887341140871185478208998190837360299300119463568159255419599862868777684827083573319432226277696657122693316488860614474390245124431675631114774911853203798575874534099663385650599943720948307291025535590634845752239434189928120946732750421598789048491249298210917044289056515917319847705813253073017879475150291138531005966658259540659920040889789060721411395095596643013188594993807560710874315332649238643893943680549688319871534286254429477371412691431365623229876247615409911498377445866374189368869785262428698411261195465019136292471078362072156699631826077893100690103310074322174142527650403133708343286654673505414291106937069184149063707084440950638497382026156513296128367818717108115554173592065037883349315756983143536538125395162793732068732603839203472691285003125747255294383299440923554063389274954335939667321949089242336073118339656354132645643520677024069772821459969358802358803600617216787909450632716747128543158968274845109675631090537912612766226910980394973179159177808919470651825999808686198756920561209256251970956199092754803861046509538052753903484532413223335006236963443661910080270324976649220388481678111704535170561969352103275558038547235091623384765097439136382724256602718812796188653455305890378488428758274033896203712151216298059700470031866226287571240712091693825497871182639417442323313231849949958252615301695749508080877547885333594434872114427832651354419173153383114138509113483109745290657793527211544934184808542083006216748133843758495495452657764736170344756178854110388735744026466287759853602699651878267169945581370599515181906148389030073505716671777599301447610642985747302111946608092440035512183788194616511232422532364573611380790289003398951022782487933003769212293921090398094861170389472487094509697091037401799282444303366069005448471416871482340448802492161812397458488637819955061991009363077456417700991270311355131091835103651038441376503684239954822449271254637551830821895042801909186239979738617541688003824054413493698873887933106730942755790942243229359192921260066731693210711137522507969590984324413365472524659731918267091572049361664517553517414910219528265137076641437235233741416564930319517876782882935000870872043445567770601322553610762984057394479896899059284568637690178895187427812749859529181016604665184343287725658649892795190780274567421457551473909871223012089204351250770035582882563945419679636185096268805949268079694974637577974951892457964144826251216791143743047858830025751068396053372933490098497066454382328683902469594662122212904538447058567367431947588300871334815349598267597493354127018605839499163699374116541990563636765855970192528892707330638425412718878197105149754468310715717107577821844251072810162299961819766719696123938402178550623500153768228971833587271834556132783522035302829887207490420039958666800926444518126647257017773794117334232878057782744891780645129776578410268924597535104108236994616248481102780545526966269960805916372037186652839899688171732455219291252014473873103659517616767306064728190102542087064677591357279529112389172837749667314179144378956193658495485186050642641943686675397145766327218427559626651342779021434253590766360102481195208158192288485019252132032810729998222469615604921931529836845040300396573746378785472900699482215830701811368018507179931755219983321391997469090406465909455017215629652778066264735205455998699454039038792605322117992634161832244804517487122268769150347968958203644218623379508879316396790789230799310292332986702672759371722095317400169483203558821196921663659696922203206142843407213461748831012442828871793754360860821698806081633756427694241903221265756807653950731533676970773327513440445114253673279229031944744828508731427781248153715461619589460929732975750788866628063613761360622353846229900272426574322243857986981527499297221569859886916738004559885057309609640090427481430372632338957152088814937100295131197466449161314590091316048924425625784553730218016732636872910190972821781726138420505170272388241660496898211047378231800864677062454120696326421002284992493576446562571880240149510591290023372472780119036094922526049375532318456345333201713337899865130768674610597401273909067773653060086332646578001538096337784850478422860506840450124371324168877686284364521414181326881846476480423223031966949950768187776096167902305732443332059268392606892191912874034127309342799160719313613802005673665624589807062061648140383067097040016969482009035590740203322255593154825015179838760329263911746698652719526284877182315996494227792131045698462596268664203915390586461533031987683643044968624076024009708951412026638274098171945356899949935623326677651524074169471270569040591495728739762957625303384826871911685332508393257836843757498964095546853619586690626499387285968332967600923646059597011551707617016049281078226853793849270174402759509462364244991889476135894508861725414130649589380166738498078879308400335596881549790549455735285447619136861451312994650790846484211432982815633749496470602172665781948492462281480435097197838792792241935418771181169119567501592633368457796708516909185719434151828254058855279781990202754419030196010116945624446047945640876697947618265245210689403250265998677214460856993106960980783504485551427342174011608913367186219858198899706371596008301974907502606019650356677614526993123581026402562220830806392749956455454145643180145853837492660055269166895409170664693338930152695812585913655722409767206013218383015780684594897107867771405382990504891494016122456591451425788569077282545125666749843350725295407663300636582954484133491468619768031035653650673130537036043190484844829453133748520271135343386121522485478321980234856820203278030474997595455277130488734216165808652507435774664475160961835947370313833561537392123187261721092985202793353389784880677974919406852545882781316562069804477223221713417419658050081682296990733759082717542181340900968457933031749356638497013842032448047881919235742218519986190950664843900304919729956328861054209174305168691970130585188493443855137800918457445263009190387951872995179983758219095839682003289441750182384104965829960691837994423512320977778811058846806321902045372404025703872135252453879390084678415218819195008840028154087740659558771829580752708270063868599888773428135302129650550241153938438684909348570549124849041538815636312320580200744413800299588925100982393531750004552437384005916749836653564258031817060781922141186512482680708433634863839805113552677351383913322268588600541530190796383799279284231399698673115653313747773287349215719968742672760637821844945572483462055049351834247617293233498436247109038810866392696907309502283454668448366652358786584402085597627522969748086278853701250549380227018840406657431684279112294969236396408153455063814158465193127957746910047991885117118542141453290621449718560284543857272864576259315098815011057732210451304806774077814205290042427284061160737527486698106606585615407346671902211138985615144367060581733370109098747813245752454924111945905641866654765693969283687783160267356115661370645715255708393095980880446225089518783765583476898998641922179749621153713947464665434146641223574817169041587372839992633481726233197019330866569976967903322091808016288536005118773303051456338223838490523114874755707877259759479436530839170935369285791095931195552512811285914021461703408593342624678871627741425987011467210816979182218293638765721906014673861223343703251723862536789938685157581408367909165225141011783356687582820908846599364041578709663409295374255502363322498094270402107947521273602596476253494818349837960254070060646024513092710749518775708197454577702141299324227222451198546346057103057194618340628983495538799805649326046808511147013005730626264815026243801341523117874979358146491214512087590985640602626639101458309210942006974214210643290767033651528593999167812523972407385619654831842261807122747277472907744815316123014357159986906678705233643979260867590806554370114774108199706540081729127869421177588402126442142769938348647705505633771642188407634540643129055121907049172986907650310778330601186668839581907440242680779286950961324382650790478378066633194312203548695909879316874867967331110007811384692013865268895200011325831906476608455240155474628869931148861705256881244693497493691823616562931981496749499082296890837752155312821475679273206837649993574625851530568961458337764475740110411144317288428673257080708117382463213349697145805789130226420090491068466528265469558832359709933137157456675619983464890251722775260927361039868970300185240683663315121009413551872156560201914055526749022826416042866579661525086705250587583484564035976336041273814572682403356479831270060085043643616330898715467096711588610303423687562490925320615656513567916180468156405387655124438473884867515772871868405602468224709813477995008356875270454447995570603556892089100361488583442830896617373907025645668025070845713248330496755097354998829924826423583504973968092255080537681400629246103039595558588892527764307832138669633271903452617993955227342616640789131076849106302697436942134952259027298210178105982572867631402702615722968586287047198668899155379027054040395755102241810140417179447003914194479323234054019477043960194432370275474210992566839336749208967689711794928609187926331023534892632026886393695407775573731562244312716411163428248427309974637177115723799790224029017601343340478185349983847092821120202563469598438157263955056130846427873540631553607163505288342071642157363508509032130292465973001584599166516677678345646702676935436205726108970111190780268250364630611799012399815525232208475707090639199840478777869150257593282379063219083404514423049521082239221207933827108795536347847366293053018235980664002115785899436302928113079463886651022445567536018787565502218087183576653163975310549765755701191301403513288390727407280541734459131324077837293290191275699000723077889256208681104490822147658872330044898227175756636427333170465650337866797756018693225405641095765836828610050300596107591264803751500522888714326768926260936771725394787634571967906921527153776193184819937439512178956788734144767034937142838734379382140561910450310773074987422540848118408629599419239391446851579013726036552051247248787853507522803265398326667844362670798531540566159347856916080028753037398922263408053848355890808283784588651164003880380082742994467723459738479323407319714014537020586206168882848133638409923338994239704934855578694129743643960176492957901760172383111552708475425351164184372587990942861040218925424682311238797511009336327864458753801201556581333476054532951022689945367303093553628723704563710842120437380511153860935039888988573329992062865949985414672341488517926173914118636061075529677924613493176667375713271849218971531421115361193317411300319730502899923071717853084909562786599952225067336471004694218062538308999713875541625990878427964419884277495499177659491361382757796749762075807288395036512293227717935342740332191065585125310019896201541746848583095909423753035601129033994484657868635463833606984508107906260942992815691383689924662188682360168038137821280618337035050811344064551546836300759851627859047685086326974086796944264307824251384112863949141888450410638920255941591387613469896363397546331372306658073581302924595840618971739352562948135847212967255196039279350413603623432645951020697711499361983203290713612858105391496232099982720137306062706988008157539049501063648981679288352044438684186421250233710930951054691470372311832792365490130900158910070439586452726234156009957922331847035684978643054089693185447811112477144370700937012139411214712129480539564225138999172257668423117768438704822361937047909750950323919475971150116899531939368656416446947476028459739769246957719822822542745401907896028475488452114048884668755002880877009217910056848252494325374139620085224942023528693979150114719044642019888350886692675899593768469196405034323131446523284944337695068369287438875999268162779903081732850792719920807013674025514259194409332358350986685462867038782322066507570573649170581977441421050673791443493101194834664486988401044997593758318486888587648253405270814120332267164099395996372154998055749515085706684640994133416152862813614051188734394347258199365256922246708816066191731015757998261677927700851616506307408085721234651068561298535763527545091344888963703814789328604502698243363724720101126428748482292923876529773075982481334585761962855609300129218640406711923935642625760373027703102795562324550522723424483800416259267805624608166335027615055312704954967149798307024450581766975711131788560824243757023095942600387469166063136187685257803580189214454257309470306532289994386438113529917027563158798709066966538163561117028124646265035317572954286988929655557790026915106587434934746732557628637879315034482281627903422033687900735963009873932097485059910430583033140808863717351708313981121745649762527243732130921450985547418389841019610203156608113786498270091982691155131382986727016019527983040549252112081217019493050019103492468948281563456915615938885275127392912925714835886965398094467190645048529998237746277394836336089612973437430948890861160488880455745297588874496532645106015074015946301027613373893486448883161168539291016118220452097560585697069852941291118764109072200644513679572076110628176560774225921988066952842921926615754825579579682006738179361531250145833936094954921515783812653331007507042522296266456054836582264389671938872818228662526467823719935667915315272649305720535524283733698873251733642749522958695425353274107712857812947684598724304194118912341236770162749999271776214937454429781560682429829988255234178613454592618421717030588213655960429188864644289589420044206726604669462841604724229944156371608917957308025875036027228961442665266151938999940147705963996136630479559424496227152866990383537613220883985266222582737846354016685152540023982645340145332696866445719319799704693735712784542156413648982908543724220892493452335376954346640236305841514635224536809965969274980521517395987539414894869783516401576611197027265525129936380556239940661599325778806041017175894853111291720783492193285720242556036187887476353543618085665762840195630368887610107737724889097574700556305302413959640211758360512665354560520344847452324124549100077083210530134144639409511640555593325965690516018630786753215636940376477180922524552259134468386094575057674939179745939041832713838886139490312798670506644314776582116350324572196547153531485887029490843725285066344707320147230908741229891846260545907090733502133188044216823650652579847985040961124861068638091357991630352820288886403501487834751426389722603674700267753766408061256213297632683245630754601172409878859924666522110318865168074916931881276188589621199360362571414534179390187908139329415824575072567270605162173358190329862826328240250155506686169883806597390258470488681149468320688388707108043855518704252742289476024351299845167105568472519342991944086417160585824097143295540045950980365512020280043039035396060331902679472714951378197024059789033907715655790794707187908633873478939103425197858190800135606575459683330020871377442237003899427267909433244417896899801685742855034176539851579846748013757779109295126411444857051608918508690918544854303407910880204126046963288359860842543770868560015670704388602364575495549281304895006547501528782615492777215200299607321878317817281688202674443410590527767584219545224373082798405402989847853627649217602555121340293176042093785820156525482733956158420340000938392845413110911637562323546604270498516012650234828011037388568982201330307270327200083389631497284326621544386024048828071404072901761367477470599759349683164213244731586527484138203698838262822488659733337397426569743183820491291224294766290146586769630999592110767460342874050890278558877993203940868412760721971477953163815845285825462763763498392164042673272672661985764911570228047212252835785239039779483250578111491955889743404624870148315097945198441531939216655282277135965124407331179579095718439641681687253930807476328720208078049490298454226433564308006071731933371502440226825475266221471607359892605274818488970666786014952965397559934232200708366580128507428801396496493591493400032095577130866785726105001131766436330618125226980205344521364162260212636299673117777129637330194695683813775747563791615602316322926475068702379918991325641345489421532084415941854790888852793512486454296315102337358285910630432785112586839201354971714899474377325943536257964718171933984823739816444077598424271774995395371253049817862833207993487790575932457805528946177562707278391027249450849735724275657473231295486721369836595560183265728593594955650133772622700817664391002691539820624492837197921490866565125789286621498245119094242690808171699405386740653771526896385709970990748314016835916819895446781432881196323133341628694869690116022797586825923605513069284532060530716470330568519749373106932602907071974901971721594650769597788361551843881167330727531981575944815464073026964573975231691656805407175919890366813813943786078750834982314268479694310082976798574155584751542537373266504461918182051376148601959283280136455978358837147098864004183539655103208527982978966072333391335719365995861972885091975387996657338474299404212674255236120738337586712315110255768094895884198102969888616146144323989433183531121661932673447182666504527638989350408146796827353393539638195550724567684495164316714573933319910883770592214424230591773754006637999164255316649000328562164678633317749367740378862376250408991966581924174299574815466237686933658734027314274245316494462716880669292782036591911892796540946549697255737496182596374335666858972055212841405889147297893121356394746517400339801880951057932980831656083005102875204706981873810497043421551508631692766827507823948953344793683214531312582109277329587034647717070551736597606860847024887222131185715426971697046565552269861628325971755241787703412467569060986839740543809929056992578429368864024333885946210607633254224511495704163171882801040026487972245050583334599333183862576289348998782342010090667749077043217806020569062498876002409029878357397066567177941910036127742302869772265891639685121092209018437337820029062667183047949936676574642697334575419152476234669694983071336493026765730120312871724166163291581633834749139169847063701044107415152035467554467548566282490016516943860054433458168200101450465564774457135558511982975216817728976675156553450729528514682294977945908055125958338861173280462313614397582036877223337932285553232942616559223375993743344229375228926554517013649580225043118113981981993367431688965248190853841612289319014885072570504356764612316079580583820309693730172201282867654982208039001090404588958574537384804930243642786147558359624646450904424112291710125388782525359490285088302885725228196039461845781549445442320035906036302996458070252174248557394487174230005548682746549013288456162081874472650779274217424385826224346435978295456927512492824452465100363709051349546560972151017310420360590372426002522312185494090935083721309091459074378986112754870841954578952599280241152172330997813214537433176842994157749162304373153262686838110586328820091951609199548195159978824045415850302524211331771583456370374058542115543758783616642430444731955753617777273936965286006242484246346373430623049194341110400700093476850236919391821216341258209629681007243309143683813908002551797846066592000715182729249489752510385677384983784664496000451969326820846501490409182260371181098927874307039863092660306024848778747278817960091153129537169969015580911943000460165844077765589113965917690080539517045425815574010238843073143027498343698982978428408416103548691642049269490591166915528016242121030739627513537176328582277953231295604201064622662634644051733713760804618287923565582061216295067595955586670851733088333170872476691053824799012902780852745681490687283274802108871291403617002882167020849016420274611084522269635800937385632757726499936156765890767658742078269087227528011765109652521922188026825866298180052983301875620868972597018532914822846708086859677072376292258374219295809600460785879476092386537985951806393718149242787146161147446932494341427660215514783219865579421254478617063637695553431064330763204251209189936612471698563761013424580390122673593664917549551771227618395324207840208370073211352972482227344710173846248220990790826625557918994407503608160498879534075000956516546491310770328935962218925185311176397176668654368680787097594558250302413861383649146838116169245354096514308413270622288030055579314298599965970937959790545067904591301381733787955366322993621888192235275138400516119891025580474884812668297446044795057120064845122678330400828686718370860109933170921429978975231088095108079303765488978351548164931112455218477745992423850921083207380659794577763367349526026695440921046765279840793130572291055781827144145388481955982589067003812659562502791444574722084386403898138347474212601706187944070912722851865725108906840415610351925752052814471043942034526268168376991344310225490626363289606125338200467178734453536973885301111162628012701178416405369879302866107194709505630534285579837232544212150526281481106213665999938118684674552623442415207111714199973481749745942855267239122011553467379411225461117489140719287753678222703637526337305209960469322294765176742923906158862851048990355670976877124440875052263847911974744174675049880173420716185263576334259149855413899284276996764002480405035344356330991854152622067916119634641958502746096823579406335298297550142957392174266977346496172515362433081715389758804651931890755880431918446546187767098200399205146141718052602853377528750646840104995630919618747725943964149154526076415581179026487666711852863083812403072162413966209663938955996210807939108453675826070893583572843782999853427744959036122408935764176219014767497954769070806727460170146144455837679021795863939060436127687828483098443211263406118868338200412165722152781050863916102005886103454601177189815271580889057308870748619947558703342664575638601492921718799457199524641960289236333487126763288856061314163990393525092881849939241919289122310758946247304408486317529380411252550831905852805813597380093668664523418127948724849209888283916096961271339156210802066267688187006252395971995797907845332245685952797770455483359094535115668281828487876658285520625824879295350212679391053643491283045388673614440353426636127517093916090618838145757279462218792198639528376391060064168699255771470672338596121047313715810011723841479841306596945817297407013232934234142858586579267010668121451976089410174942741115772017865423442334956170066766296689950452756854211111948205264661423458523370879696618405021167271808850050394143484643117525820383494253890613613251194199826279998863088114280607378739026968193211238139490418518411682523596167771237077235867536917862207568396603113722547905311771567992814676214719752298669205769842755850162359606413537089702046899748132415587581801456481498767869664381345844310324189965002636810855650664258125690903664125045134417059862762975618084215302243140906966330611439393095454523383770892057493757407320860675279627259335035330706475601617011289501574281363436688463653005583911988421183685544920222424299477365363259458429550482006444079041604143282371235667902196495026097470203033429243394756964085592833008485430269245970556148047033584392031433746346515495923664201610296270103697686104807412688044964650568895714124200237816928104857847692124186240063796043275541674473663897284253404884018976291320566014614717288957781285102906719643003215900687730411905413854629391538693528928163532106102563401546725164550969113297620043025412164895227348940367113004018366452668422756632510920366378066935170507935900444828272764820840693217604425273790979843868742640396933118160538268089105832824605683670548791597398750934789968021072920248352505021626964738438845348736201547442076172515539158485809330724118724169906273228777782632087026968696466543138672332357201159261875015985598169835485836691547971303191198206367382830956819498237047283766164906639373942703074024650607372110773003159177243575307037640361318477502205754059641030196022182322284900067717205837511208053476654835406194795540180440136180943807158528566008686387022414894953464454088080411448022886055620849477072883028923204904617153921713001002023881472962858378266237615173973931835651767407520591110823884634951681048631373043120942182899633049769152652992058863895002541376025269917212905992178905696717677089212924209741733927358564922494364177940575976299353404834995231605081921855325625827484818111434411547288996430361582872472071006866268249374638784496823654163478939629528660863648412645753312685933061273178640024619992049522974735788550789750151382504926903586605619568608665013427929049696164685900221079438093227784231903474284863666239858380022919613836538781360204018037197311639003932697366351585224866783046664978762863259798382451958832088608799619149204253143130693827858651120298202551719324696489517041601410695560975688543907726035515757079588542364147885727069135866471967289594168343656999295209356204984861600762124190504462714271888346006448942464118257882220879624862887847277358851100670856124315091308453555319981372157087052228129755072428641572551893286091950369829977167871124361554474488002928404182286778175710727313239823980875898481043985274424948953555291615236667600345651208083090190429166977617266909467074566657895689557662405462897522774047526551198193062989144456051285988760466696203405943072719135668149893908191429287581811347070805279139513966087598774705179329586274595341627463656787181992953014613620854352676957357177523584138246472971375642106910084470808223560688184230352560709193640725788443576540651680606949206998560334849165150907471370105066667434105421149150469882966758487036118265928584130988345366209452650058409494272056911910856336586299043158812219945290969629901102783161548865216390839341225093109353826220099171226717548813570934526789870645862045442413834121397125272789287554644133317135544655505472820561477555259035674824298006224938758543298656378300628395145242143202772479966218101418666376447780714626486839627874461789124927590411917123550058715242095821385737467830060926844720335786321588968932151113705517428072776743663015101983822398526823150662594054539088561995435492095723220467312365502249906855950639763475383565416142622359922751162494043591880501824289817827539504321299067514263340765540021549548665225474182427416182821142668828139079280530813640375079839965065885137594579546591810692572215104786680123046817066733123811205099553979566879887398707991026709780485008932137773704360093206319616827986197074574554694003543870791760042633994710587101088282642702292493107046810727698614179279456223154354379879801344930598069505950419646199894811546533984538596408289968497755483279458648211486796111169670459721805605774676195740446744564226931963146712030867789661158772516622374795646544742209953944203191116802585826802178568248569047064379317162165610948013044539564630705748157148307527484382453562923330214676006259565647457530241620199444429130334117442229016464416640276729988592913151678901611189186550913995876983401183662390827588632592390826568567747287082909910021382567342742887245049718708038979321838709793129839400595885571445500374894870250321900767677045907757171965109781912444727595160865606318770287685038365692057939517255334481850508233386390843650490481580019819180291057091568440693096227024900258122730543707114583770316599692818543970196018235709258202138005023067146302614614057515637395075217924705266923526826201886188240844117128552846666448643823224397281799776087639958964930318199340178121426837897578993293516762037954354949416397728813946134006132680514557985547771456824159286233749973859184753055843598328269631092856509769897016843855580064122905556298002646076557189151605620765455316460798713207946990869842168612705471752306382193273848922914292192373790432324297318732426693654748279461059269108024972912984571966437567325768346248696377778049857918037223831137361477046221880020282104944539105077756248670594848288282292035046693487153216159421006528061154360052646873071115137555965869809180157114602983260010423149963893966585369319640325569128590008070782545780820781163499357985810238896580466931770149725645720176396426274170911265791839398347038511384478660286296507486168713434574576302039073507420303556323786813426828343566231638387450976665681552050526025366068147198766532770828194433807496774111987304648027132839440836705022459517402446395316702374699661075279978429158986374947372295645970964784389420632142165542884818935863260563937344360248104257651828517728588939268273866252645959084109663909338875344655346878731968980931440983136394748406085076743465902341925108633033965908821434148490783630231350854034992997514436555535534224921138653401647949599285250027698382763872091593167099789883875034434697888719245310894138771150565196026956193669742941396022295273667330810748137390262185210269346651208747070615806342255062771663443238994778695708447677690345234074562410072271253951989569764379532033549015992144916454545493371946755059480831982234310388329890531263895864355038866643176036123965008342873746301874240001434772824828023260069745192323800900037566407882254062042824856221501339653472911901879667520577755879124147335047857823346681286099141657694104188299398723936341857950893604238482021025598931224435988733989800630382403287345724658808692383538240420679330749531421355992793318338948983961057599342383227521030088210983502580684521199194472064459384317423003073107806722373831064753298475990536361810413558710203175350277786394149759053853072056529099566071524593445958431876007077541617216360406815890336850428575034448866361925709742598948786965552413702381706996394736054479636240325410610197739171309142406167063346102841825980686204839545470890055668098091593061755392105292853374877571220734580224524118120918315522477306415313784309558223565623483833515871224376076343918892990120003730059288279993729276446427113352747677873196573235020412986103108105662411003540247910520487360225042276810394095957489116441814496759747860328536529940976104414502786178028462999263068721090506053053978850466736038724006081902299749537638173701837135775633103545825487866066664293986785925576690439233580681944206240981061388781361128186583730759097453279013567052729342709115788666851691557806840751264197464174201044323124722269686970998276762863436085823423081565003243438760446908480270550454835888249621813931666174251631322458265740102556802966275403612450311458399242484932956246522148681942231821997360676075337897804013089780827127423143797112829976321784311437280231512344844566142871970130310061657060150948943248645828581003002033611611382937768582949892457772570037791865875827912429093905748344001195455869709306306442511758727501927506769919864254054279583881069535917079575643888071046667367243972793940669922655877314224988901855274744350487323286153348261415440628835006916502554781645064851988463006489420017446702381472830819476627232092811468310214357679388014651720634119862613743536792755918143130564550615909575750792063392315582234047820445329909439716734194898561796759638027776967972748564180531887955906392805636817358022914277294154453458419808960995050516706614814534928408989621980981290613688957980734908166659481566857642233680055283129593331401380712965743661604199030316980948851721375306302622613960914408219937914191728666974386285639422933442598026913472316777864313341693861615854183755408815951289328834986254748280800276886361412556863497726330319984501386184617090714220985639232802955982666179520881325894575543199079114778268303516334130272324391909145008356474958477390625971261544278662646052314180565099953934888790047915775723483272216569031136381724752490154899840542749679694705512228414865172516160229511940551416901289064573806857601088713088960762176246261514341279365652084231048107608655357713007896507519209565902275377545156029846923510124501360969534411523465649526371120449775786387516359516004104209561435750736822638357815545494368309219613774643022748542021535221508162610027770710215923900583152820629019207755597656604160987562701702053583811489104215536836410539802122031612581850624682773159110571447821452965922525075554272684681131876450474365029478119114352757327809662226633102171563746153915875813538243817933069571690271980204591337778077456156152405514721100701705928441185601697709174898834653112150462845831265535384668931603560285642495125478368569185134125348597798020896575402912619463899448402874342862293607483736539130221737628948908751370855377964533783461719873908154005075352396268023546332925670252979671103228044817821617680511063044575589622717757304452435039932291000994456868050495377844862827385866737385833409982687085507890467400317508255460691937067103247415756755288699786006673713991955334036987854338194792344156839166992074824021908133008108610039097861822881708345922642565663437151491094500093754515348975747861418405683295279259317289559722089689986137749118726568344973733705547875057607952725027296893494541939047373452648220718417172960247755183113615416198892475102787204189286181902654006828816360398153259519103033376169705266983345299774554027812971307314959054719002713419437732424445420111796273187684571460937587526073826193906994354705203283317372943018173380716782150268662545153508729565503146888951502830517115270878630396227228358905389598445377497512368269946918779532781360185493520459282502683012795263433386968245803686052091797677777743588095638249070700587675764461973026757682235495939709676636707256042524904756874528765294395665378343489904193428623996590881022929045777567394591973559573265201766441913403658806814527140601040501101201332797918047697458688882783565327982509723702010171913513406856431893628733444031863936929360562640334551162471606038896621315401177089965935281943718224485013684987503823764691694602621935707407940450737077425811719283823435501270546841305262384623019572235714245897686662434423428857401801088486257849314377406034544842335486986193376055566440474398960665957703061157075794623873483344676108843645268317773173014373422108992455354525995818928158260262515938729168502881659326897102982757441078484295202268483507158575108603694623223748691835226158425151298734876367343034566851194443728770045840113086683109546013380456818057977572092135093863500344534837373962181503464978401300630330463610942587513868868332264632839755070528402818558506459465143327544258758405703167545024586717137771229684802676357119950471265096149848956152471223502526749748605132714280524449156131434290924225400854806921831264659157305055799651123162957338919336008904262165604673134560172552041733619240660571892261037888360493475382320601039806989477545820199837904757608312143726509627315994757267510536837592256520985351248116489579796269533666209785989673301735970975432229861923107681445049669637843187894868327682097486908086434299037543180005482449405892519510476163853688715674526997090986829372181366162679727033804550082615081436637371092565872554506097432975708214568228727046629204515136557856216253082677010784201181980649880184091648357841976972736309386728479419436034701826416504386421342420607884252459162852683185602237451514696308116041154200557165217160481519013004889512144541801911480875489888166020727602344483384399083767419681505637646242869798834587384955961482524871508592201493117097613095590272025705549974902525806966135207480184162987444378341796055985243144522386698679172592745486782037237870206291254050437428493759493691790848844782401703155533809133201856409115538575416460508136604656293493834021350691624301722960790459427529096171025538012557582162162495016524256919174742207140973971344924457079951615293852915152682759296489500220105404950016539654971166152448368037927824622865796242674749883768570799868973983035862293713536697231239762772886609694000725735364177787778869513424128510413068852391073694792167014116990304454900660120466152900156041981753204635421068343898651547713959192929943190560680439623706567245864700966566172147258542021430297273109410996732787581195059731402644926462445561776203492301820170030608260999809663444558295520981002394693439014200568896476231922595523849252463746044830985083654541025705151083272334471869100547062014875287059457392706024583803270007454914753874131724916245549197779713523271528553602377741962710324099059176620069730837434482400177933106734625271283917472579957191671743486502147226788752260424530155150925834201078161258552214152751594608682522746389737928608211412670406189296631861107151121087592691949357509407744858741755260851664272303633808780055180406380033704768360134413978656973780457708081631603302977796871988776881721953242367041927103208828837380525617536463602662900537687184021621280294079501795473698704957000346994456500618425187730653318918866612723290607484526786858956115971770053276886889570489433174772098386527434373259020598981597379128938594104270240870983165111071899268702995124123985158172464228993686339040021072195858981242599168745917301918226802723944251054104855147809855030759731523852909221439499691278744214633303038112576152676488714996303504854302037267462487830236060964167239230643143049772489386571849646793864664868166927194160938780823398337521608277985064120191417450008038664968792309763451452489669556577644311585458817843557116871978033415188913906934938765535649924598469561789321700958301144382960980345334201011205688204105711819312390343496783948591415236589643549738242028524045932168467009077233017759585369851414201692595545299605308150139280228889753387042697916226331701855900797481128493921037988830496537541393809147570673493936999295769567618671984716880844635762889652011280538663349273192314249331401862842744534344017038101785793548762369650902574399563194733395588346007228902763728195414040655187861947258929021691084489620815168800998177237866944253376877219213243532122602777343040820048913109276996993714573543115891231149412439482362394171890202075323121740816352625267360941667098961605881927171646760468594783773204413034036882802803843416468231894898191524061768901610726067165434614098846652221703516844797175887397645806163223342865159528348708617613094949534008548364324811615945754255076672536349971000114003572500630306276296795112693830695963676553436695821918178454351634386606527882305703342713168209991806798539114717318886334671883249315047106737594911535088735034632625973079638442324016861810742554161744182243925046170222111969049172218780300979091984917343477571672772195736607363276778635361558043614515458061828338693858918566560360526828931326798097758821168494287129588539617765775826791918535477322831945000734417140622585814365359237904653429542884603961985339540745457445062919719510480540757787824911320856396151490329045425038247377894876654567072819805905159401159626365666243184606471787471488164648564380182280429683788616562997127629402766310826319607230603394115838742395893046762594743925066850003016805347672278568317563862429915843569443735663134700690559965437712688581033705998291170904628754514862502308244908578954168408874723873378567280292402297968288540463713399967062501591498209671773474836382967386995019323034777738389386671262197938799739523520985976146034950134059118276965593392224289278234635880407476063657842909588991664468130761600550626496484418951989893722414842531031028591689722381987376498351021920710048605370891957582671060092756648426007938937593037954167647208444374885311510820738791258731305367984378047859080689366000257264900548028932081511778295198704095078849989820475549440182543104723822522807376373999571914327796975968510320139456346236997902380096020376899451241865037042301347439706432511327572165799640972166929017744648211672770372271764077577376747392832842041841845171944867389717067644457958051317371905338685752531080565143239179763363349897877031881231837932008367059605811080532579313231137342892000439847386074861482455314084996970811245357300086564778362469834345119528315669605295136268490458549015848637762319693080671167550386068173837845624076431412928120167273831838323555080663572023619818026311713773205237638425760612725953992782034298981501027059895659561535648128378769364668902188219097594140132623943948189710930704397474912391947278430916495363221076579133691191623000861308671749788551334952789986407874399373302186304946442681589611629593351273498070377290385135816816526916759982651615566490467389322615598934126209182215960726203861467746338132121078684061852945168092359041047207981602646830360990980039006940268759517418016415263800471052901576068518226865192565192434870607592692784038997430745865293394348432342851262705734656565063801839313566011243703922283446316896638067835396344749556437211690844641220444913228980349533227979086542236325310211669931467055853109635638404622452981625053020493952315621192640351897736482464733160760338509588275574020556724011611056127197952594131489006726997658493736591999095711061357458520562819706034078230692052502762761869674323796603774971301302252687312214875291111978083796358544333131245240674500476506348867148681954919806799673250651831828699431917656635010113482318877472103069576892092177154088673176325643000997816405940631849400574969758484681876657880771982851847973798369233333856022953993640610997345487733355152168984296710220946665037315200961040054417618921621751783458706616855795617232862649561102440757381965326558349009531929861415735778333140855314957841112476160443217274088068059889143057883441521307407066188293026519958715379017474249507596603291364140848457211436589777442097794055480679307655587511867365389076812394330493727146991096531395301069245679746171782303553079876138301100266499056545462323331327963021566378494145624230050753874464826002110415188164009574760574281967895925417161937401076797936071336729158705445608466946555928287342791229566832402577586310807398305096283205843967885186884929693926476215005091969989142881279469272533560694119927682917537771143292630804066097646006479003733674488405391183502793009955217993262329822953493056244536362754995057281082640892392386835227449219296521639581434825428998097337486730203735336255636215660945956498330016147834941200258224481352212725548194284928250591192633686872370028312188077662600490841869138633715650848570979005366178767602659990992845465144205811394808549670114023401190715083369618702679783425672767609850024238203225478131409292373935354915935328104215293747059753034425447651061738310437468480197938377249612840230409708992367458712494551717127337767515410120185422656747676548696291173368784117088282290752649884101449579896890845783015255994999883727994211403403208970992866533068254866437309842722635168044924938815409105182114017654345798609501093040788950454065126353019166984810154658798200241257226924378767463807717199378406019924894682219383914355423305086509604996663559531220919655228905363727632053639567834017328494837077649730096116149684327547293057511913545810118517597782452300108612219032604744892736676033034668597552583132664140350116486994747861883082031398046884068030383464139921178148579716425786723850394417062937980868122608600286453878903103230956109403468819383413548407344524408632194768825177566702577151978800136550830407280286648883982633655076687454633721610523604307333259848817542584319339715824343930539347065987465579024000109864153865772616698058111422603369917237795767063026604797044921109238749922014240889347288972534172165841918840492582252997744506560160634827714922960621946925537442941021351685316109841932504780447317408289943228205691725245529022789184235905415345280115204542429763425172245910698028747487518925392253784108048537605977013381695005733125657659058568940250353677596670395871806871577147620719505431864504364175859583727938366890494090777949374522536495458696562186029065796517052473056949494101750587477493911520124788176682483573066468006330522491410088988410181942261223029650560280225077293699394784672627360986103406600927033000714951140239145105156301759544230285374898966165609857069585284544682980799358915165485167615278077449902936636968965525619779678711896047498643923136683444066821895190034194597317051302291660070846957062796521355142485150851867495415341210929479185220076286305443107994560202766778234995296645058380664822483818150810800702607930746090661924150126285147897266300351412372044024097812644197489709522180774667559227269805092494934169537055645867449294266551876312041774694570159390632343337743065180996861321046704046915942842674225107706431355752984112566471166405556338239265809157370108602908969189570125987680145863977857129296373515400284625220948877291589308931977687379803337586709329536079691978463062686697081200077252481650921287652037321427101482741638625828367743096534832712907341621882531832249702633480689555918997649712776101023373373927984699198397837358673895695837792154951658978076169305053618425126163030222840121230338315824350950090044610105607964618001880995313775386900114679518029006579038404855768328226182138955460262889897762869712809422153114075957772209755887890159043444840691249359848707873441417524915384691239562944755900775155901648404683289685503189132848437673616333670160932941368150174845760217564253905828841707446036946248020818001704683173726840202617248847481575036983014814880239076490364493869833037463460727575095822429972937463860245825903902079132325778102675010257950781864248073731953883766376398813086474395377444764592063795148167533159319401139938389054997767663607900045133026685776183223741087203760992256726019911569991584601167072708335898945246953786999883486948911015519009973833505968289429370109255051789271760730667843995124789001744922905051183037735816353744294649801131221412859355436358091928050357400069726419494036701629899347530879065104657706964527418608097624931087790428876971764730568182288703989101594590305847348099811889217777272495389307102008662727456335107895509074180332340435594003978977423453587751589971805243504952410756332054123946844533086168634410576625449696396275391351641863605106087210036282347924904200054337321663892455893649027861318018843652923097913857792730020747133102510469722261695143420090505209983323663663575118565448527405814696314670919576865726205164551440075613461175281229940505302309957936656202800108989489581052552050353867749820065084373208435799820034497761115705871346228210730747225723981061784190423166770762881371450978988586354639210898409838636164150925159547221321949285298338973769578699848231792189632462821019623171528554615078878111785341060611494040265038724315746779888456877864251495898334358735729150567773753526366334072467749931300967019955889072250906846676845981202957597617757769473282275759904546531102797148592887299125394149223852063465001487393503019233613501609194080806068532653099045581643854954247938960151714814721533627012625963122397472414570362146804102406942621088996341871419603571746799163667199838476705881483589920588069534071692950836164062604468036897249581003103449492475098996047510353791268761763005757345030921219151841508321163324131436151462582023525670556514526786286480350778806207726286670715544109329141361594004102231579380390013888910847957028187943281597576631670561855325343990954553922847979384159797445091724969687826267021788186359387709423434912734839269686862553867214116753934361930758518173346653595370387386025726417370860959994433836995056698319182717826254844003560881030215047631786573405957785353214528267915307826849418940574028727915200671383372747773156888345647699482250980808015932362624988792247104794503004021243320719566242971608787142913085524502474716816722852652013382687978283882538822287265046255240472071827122438334783954304948419549280952923238836866302066142392793569304942908465538962616222119059942058713444445644072315429790738741574777788023361187166808118900816392670744201289966561638208610604568836227334097226853347313797214179041485631337168281973948983755204533877972941123027703309448811303671589860912950881745035992859402373758419996521534245702817011789949208364637907728019696016833129033130195516290869635372219761283465048607190965813939147201456817861736284875131034679900549754809686686259410877932369527494751486046188884735846652123828138227409315181750320211399341087508761361784402005031723464356704405614951084502891253305707054947428659036262670657598239820150015243258441431484509764397341630795202741397557363307125396719699909954834253941320458384943380664281632212933101175319864093989350431737284774038161576106875981047039715403671346553117123292306545741850569213034385969608749551579671163180839890040488803479464443807102349289555499662997510050669428361262934372294272078018889303947925494907502842368287905462445513233449579231298475394565738747423191558623239605888474685791542115192948674667554125803504263638641995469764974294638964874756199794222155006434314285009372762222543232428971749344615742149713739836206649398889467948496889482700042378044982311071650033971025724315030518061283729288921286445272271640745163756945906905093050397738355431753907505167091850053817659302458168936159331091068263931741946769371308690976989063569272503683281211313020467929957369057684007579052386825483936206843775739590078061408826155096891139404111583795606125775676592831948453716704178000917375682069390695437770394117391229905674287144686631454332525716132124619220602416308067562021954116783349934055314171017937835340090691803587302564980069586339360004242444479181895248919395567976629664914604910827394654409657932551695091783103222244700216462478995002072180692341890322681361096421489158918850131891017868820713620117591583780620770504871614724152180506727851806481351262928766643675966896859507933353087227360299660705080059911443200675062624596308278169746766670557301115111502077301846761523521692146691446713348547844169872367552941843490162173356325726487283789749080310570389378389747447945463924300922424841863355872558832624438650351160615509356106569623716777088281720333511310201536074422216099502475295568589798639043429712060714919629595391223404308858590224131499648838931089941243719274625786169873951545646150702213001814255646852347828233576781989298911895121567037557286291564626739902217083749480445026642246127497443654166975432066503201557427544152618732990463807346681083897614190525029683687685875138778539953436985541060450703571411533277073689617413876288808923681241435259325727015767057008298223394680322780024205594854364647638938247111152715194312524475712266824410707380954359787803960725408925635451436162543039624573128167712660524764289434172447509928942838085133662392271839423621524625138951236249981574079232006157597176102270665172486519006254302253356804130949194125639158113722732587458063738348012328928984130869065801891638174714252516394210824285579335772532801539498582841054818837558300109919707511136624551967809067635925793539766674925254177900721900123584535328585082390900793565358156893579797453531589212188997266051809588316459158468053529881786878595417096033445841754698226999104581345041499766368693689906835573991594484913099058769330663652347726335670730838070261848666670064773488960483883264507331128923795881997106651566982733652453087146058846030924934801598893814145289796043518564758646651810888352117968293396306265042591674763368826468798365515432552212844842573680318356046809595187656780846721640665875803703292540093942196919591891716159392140614141191363509862481072162326037095409854443771856579747565186672902440900910194520967217600247786118164506658657058201549877829432222480666379815512990205791150378624725501610237665754266348993454587074240280604292931231635713831886708570421323535377107707204373007832793694566469365108828395593446852226478006739679017245936813382600225708406828367483764125101696939526650163987779805402740868200056037123273957836180210883301177541771618475889624524216353884355882470342203509051789463718771035380324271442149678657016667405968305146519672369378934906699638294357420466376569227075750801729370183364163333655728828972276137734453229473585487838735957339185822246698930639844724205992085259440119693139562543106839868748651547159471419874983762913125208213441384128095018856855445310529146640801514326388383680592808928778323092796483612670742967000433552604783913943202262449947938179046751956141263050093295394880922330115767433795455304614588814348134177799529800200149120200953903169827984754379383459429615117677786578675589257168438299679835968650979193508990810602994451569307754662005287124841052221126531770923566941765559645596334057019129322581139172068497266215857237055727654332408409832761062135055211588637219666730580453384861858265324087528333946853763571825811197160665055700833585954734803396961512212703873281502410779825884138554090824322638144254401418507655193530274817421282837005032800375648530158785122644965637757236210266226358271842383530828278629097896863968859882453532856499548909861494347613405291780207190822140786009480030051494419393561608797028546665751078311581040878847473538900989431313422536240335786339610694077712340368656702019178372482050655039949744840271973781988388609316178416299667698799627114083463010568703266843156538527313553350969983338292031634331984460811938006162144432314012014880304315945613001378272088871645088989774735234310251992536221937667634676951402759850164451714071297814758825432653176860470358399048048467061903886404817861099084592838851028424319785330451812149590146285410144893091198130734584508292673334635627082732921283139979519551240689322719871788228056952200436814045637561102641477815833770405347274863590517489375693022694401902022706989548027569294434158339916233743727346972298992497230937839127897559768259908673951748362983160757245287112923574275772603159523794343828819604797460923334637563115356470388261840667412545772314841698162429395960277792058800188298269105480036302444727597286245338130988006221914260425181053074406920251650119541226967570938037207305505394683636300843040479932585499035867465616079789379021192400910060956065999598274503534265905090571940148020916978673222127537304721738240167693851919563758851615025733588470719241584473371036624145606625677780302494722788155665124051152938029140514454976566144591811985246354110728066768967340134008201289204582782403215314505328861481800699308574644408023399901781427385013117961770052225569644852534498786522280193300201538302998584766111044273608360909564576509598590426076057872802827752752031342099657356489040064345022850019318015240911923939749918519822206182792864165395975616740557031825759182806708666640669518981141624420512623600601547796998478547713349757727964129643815377664822040144558630541354209825972783526344361767621392984236334331078007754876556803791143739430282202217713158861455321070164657046434410216598532782518935328089875783079410763152471890614973212444544230243112817811491268807582886414293279188924577032453164943910479483216907614798321193281023488127121380825065387363679796285535733863831575279382395059704218003963507662861010404437216998867264916672868680921015533455457326435837598657890066222716965506849248049948838976962283217456829592193733227817243848501180088370331577998108614943781777427101164437254835319927164737940762912370881028968930661269565281627461578915630241936474602314751701896850622939469649979833233345822632162455478108657407359046317469565342286515700428916522807499483853930535275133848991821334708558907851842354395692370180960049257971967857586025776335600812679420099037888819048562175704280084334413492351813649689146607368866273773608323730401492261276494318497703579195135014502395172963073864868067109363794573853831384639778486341217225702099733020266679466186331610558082864047419869568576835817760007644977152964134391610596337337477785511438997022276940393421542269556279305412342887689254732199701638949834700233474309415367195067855286792505383370475034121733710680859525161962876674243007952830548549450352880788289402508116011934431181057991356156947800690168888561984933536735346414470139841137186410863243356938458259158519063529808839710106960508778236409251241242260815467342606316800439241548598097462399515193727599968712705235717372609597538648083387624699202989758564568468114287007433866777312197815900791615863825823273067593605040895554140060908375420050618486517441779742753497558520777743061066543095606502778670307556110205540738571098149709277526138433366329099658094030034393484653026305805162593391865920400482274831008558279892951685650030740766350651128261344267968970698723330882915923855998844846644149189088492829880353242033596248122513785177964936786047003410670282001554321024109189758087728259361224947379650879147422166894059776924738609143252872197001299184573840171343109076467051794413538251719234693589032103017133020918547770481390708610117732462411406833344258375213965041996899751197195042667590720919583537651707093760345911358305789001089164875274117743894299994993358272105991175113290124505688748963982297778196723919519477651661466511029079039987501928801624949729746250764782773753563617383402346922171621241893889970638889463443580825423982360473201711640684268617237982353362386156154621110791644384004552991314191067904639415736333819107631104365315017514949981976725263240116055290034519063999234694172392905297043259369127694275459507304091942795713892126141529190069966845297216300181047989254964185106300645287693707987496057779366990309382499634113215076007917650332321736523929713213384003413458551622436843599989868027897424358894009922434247268525529612298639647768451862739321357606138002418974776747240702693391572845774364664204077227441173633952781349903331560822031447755245096079808170020798815035946965946521844532298140256174865835174911272521098998117389909842097039944219449887390865179589198320129450795684766449594505430477227981948284005542682289411905297173417157158491186154172429354838059785734611817544115111780054176500602992316039360779474055258667413921134012188196218092993176762658018555783182646044867951074235921098800812269150548437798940731332594352932484997660553835901065018948118425094114756271591460141253223239357488432437170559862583969904177261116892380009934153950990580157841907906705433108096180890766344796152231411291866222321165748084588856712343470927341598194183050178571893245143777114767303990389330903216076479695213422669567336944138592841372634769752288448426195838992565940370445153179218840794452981849635802648222266893146119969420425868886779613534347567492967695744023633457037144250337000187966642748033906477689910584302238862167719617285525215537957623879244353335408621688473639511696104478912838149144067519216029428849782976362666901330318611477260246019094978446709213290720013604199028970851573877663456319510080139714145330113034463662387524789962447338827381962628291456027145144889431481417081518923757073569514119172897518959695866359124363416382059993182040294310003970865646311161553711211329016367547213703430436574773840029970477238169314868677708364833885156305654076007037340222205025060565842537501733593737232000280929953673100711139883462470635501323416418508680336914441501544441546179449007865390816012938338114738967058728467364921330160925797368035928987551226694827536615946580244795156811324321558852100339296842267081244694352428683363739346322493878536259731876161719117266578118253200439738118452097082321375255614761064940692493664080449696699040725136579032011877218765041058628851063036903881060066058194607880936152543462346760064416026403789171948527091210976321839753615983293089984068567763850118700177190054468913036307237658984677290661533318765053990431690431317081117494778061478733325650390524910207640358764224498586969896969176254053951247074703496510540640870677674255532847888108152431489774938627205243867645874701873396088298133103469475142786257365034361579414981370735938260772016650289268841369217347844765416237250935742516262463967575514453817321756325965693045915801551224804602707151497546523516561855399763573056950388158576165007429293018237887797655271427891445922875926405261147831263490397996783632447115197270255243214064785544070813266078155586111438587655075785602830218531663598927616919178004295939690144668265409453205796537319945053996772730004504148463154902763569777681853029415879497003973049206704046184615151795990195873514078787416553006131808026108840553861394220582623185880329785260182954881355335534313063806071650666594526571019843935985504398741870047586036000486634962631760346575127031205290014910126307126105125425752688886794174377985756110761726779508332399908898081015712383881927351688641057501944328547427048813086230578392891617285650119467016080438290366855511462202994752821812590038044487201663422960754885453343155166974551856365648374555730472045809261010515284740026084007671633159125269280454770936684878349317445281896338154830139269738092018978175386471846284703159477102428567766772178283903164922090234754179916622359063262708838131433134598184837741037543621825319364724149040853078720151077416789045323425376813020333840782045981611741432870314867295076712913431475889623021334516397552778671220793931552023807467887063187664068329762653433397672817535608662944855373948965845867929221312112887721731681669655749450152240284276581315886680623160934533761833295629868725730648625145345674951063841342245612349508031109202271897356180568400606483204940551817855192422967072215489951431211333004377749726200722426835061095510578835962926866351437210961418880149843688884509624358997281515860458966579651351834241532200120855378005330997965122965050613194928122418284612797599942814047831203607858283310827260617337868171857109086824168096023639765126245009731980377276354582317491971881018459867410178647014657139984308030123368368574220695300450675202631724709244872642885505811604136857216851312157792946180844658304508502171484373517871157674533051819162177070830430086195343168219389687417019170301081370126606194546398864102049341678894436837081265952906166225363486625488384588509037439094892119712680171899010221671923257230721756028288415701369151019852851774356846235030465893083940511420045368073250229126455656688027225799879376312284574127099823780315895715007213422090016424729477468422712172594620485847653102495093346203259162708634031120409068380514579807774325877178108460623270243248123796074846647971489828782423327279130581233387212565617845548804158729378684161235926093816060285554620246717017208900653932164722075183800867548353768508813019440276447095765358661375852585931476954894488217503662882859710998524639144705346327753332995184345350503468330062726184791568654387895920183624785819609482606572289208781013865484238244934705183890114017963966805992609307986836967540481285207387490426936612078839816348959515479868324108316235166947323346569664809528794497219305406639981482735394811045013129680624332275514217771816183465841251638538096374546527503625669779589314019263035807357280320927589881178471628238913032910647336403355788405663725002980645640235943951060940804724448553163241463747825938387322178836111976184221629588265684986334398103151881911263237814325613594240420330659867200130373765330822019103286499322001335237368081892387538128103674475715679400848260135278184448783816317772897049945962577939953979867329147432335918435616565965574082869231372668105751539643948576508782199235034216631614442094573006394221044634904849590156722107193899720555912698627708129066667371811973871587121911220707333920880748473405785977679750558222661456840365341026009728722463878786238254918280281184745403916565690529615705161188297750680974855274324242477417822072823344729661201796439410272328123536337484058826800030752683123860100671240480586408840298853397165048516402388925008708606169630924891417599193456670102087749930848559306945015059164355551796187326206474546383277935787423088105218544749166645081311164924536487290498049516845822462123134068192096299307094072405903729071809216502467649316743520804947874924479235755451734169784945139958692376946276419238484790306701393154386902897855227934371693912636157230304321102501053556150298279041264805701325553266151135507883487066448284040773613988263800171840156488371380994011448182714526942223806990211970700261778612080308102904053727132923345055601375284277122202521781110547393634235258899482332753540162791274545040089404037139561919280782649007203615297916655853706964497647028587772297764274752615000275986893114964295505856988892171509714588880333495220812007534993033827471437874309742308788052347086552650772180884144277018054537666662643379388051119677012967745885788964349263565583253477055293331173444641488949961895411871769209212802287546396025719369732858900918580437788008881735513453133291030213646036109378074479398836164404007614468188229477088979162837374252664426194089620463978548168737122929018672711696928586674828866237734686588828361356126515599683145274517503113810709000228663795697678542838714411558453894280782578610274587453360598405342572481392695455833287205288532547855427806415407616933283643045317812964887526761961201887366933336703755970895036907869301017328029530859675823246628604673815156709777455850960003167422175030969625845516088909661011107755230500960040875219739274984226736752557326053744044648186612432159494024918664412365214434844677859050965691179401194720673947505892433600422717298714112837383594269577409944362739241524021826688993067066491534360501871307010216913837366377103282137177841338835514809137696401890320010523874955157831492623361332546842271950787076467258655036481330028658452199675298773874763242844073494269619614198995067706207829208295075002316677111397295637051346226545992754011586228483982541646193242307169848602486545048913822473478683396666790247299491840347266627940132202289846918046813597826905176465625674350859028140009322947829894474851525783481136818952859829235260114612347673844393253704314485395430938214314234617210900276987396903944611519893041370199919459603928535475309672998590716093995611058425754610137987306602632417905169816066680205842072178273061869530174819075918961534784413481750125212946515404791999361794014103462479063008965957594107550125011554546934710033841580745190444421842407363695404210195596321301454705712090062744690053796123517284008365479322945661515507915554243786607703407634413391487700742040003123952528167134919561004808655297415955200986588700539666524796564419244791263260468283325813502676623504487738358814245607893847237293430991650685582980471617806319035392708328993944874844169928220031215192693441798927332313517125662517192905371373921309013304985082201756518957023268180802145991950061313281133362716663898396688337318679544737927681071937729040090037650322356422127655262658256478953910659963970271664216251433475393443565430933866876974193282835071564961761110835443370495519842735424709764882009385425180998061864060378446437378230388925525732807373786012756401363758425602465092588888013257857500396798646557048824806244682386824524500604260849226516612051983582767854332533978756413676014967029288474322465129876599732959194140759469683547606818887587285027165598487716014011145455175773979112802150469607397094088012125061703354525747102054091347761023918979480823494699203434842614007126266373271715370728441813474583891070728667981825933801149157074625620868760806413992945675216318834634640847570822816911856831314678092703553079538032964140317525681806299152629993990852539938977599258353135682443667129251796098964799820212287645520888708374447827758359162594356088828747580438207453739466524741439555860446628751733422031009126606366245030461772083626868997505248742725910905147112662762249819591451106548658592645198203438672140192988319257936395100024301131770359254640478210172663679799261906246304419197808884593609817824113573659526844736131693488360658663300700600740373463078588053868899221868726017420540683903614872314570088354503733882272641107846704459389637459122599022689283895040043498634542879493782193035129523577519618407564091930595689311972605042211464196539918817428225656022720058913635230812481083005978899574139252069917397087012738047141367557474251419060605150257111176782833629150834385440989011308777464460880441977682828917460296190490091413357044061961625018039309674890015638034973871540704163279417776357220464285237945174611840361672458816628910876231786695878608919551108986949423948755064211128181899974061627966801775057474875956346554462949219251329841531161660493868047822605552542106906064718862032274707755917599465020154956782369983689979686219778987195729847550378832366503491690652473436185932209068803105704794837727761622539971529397209770017348827424697393032672820750876774712029628730716240967266205139616752141596980386285733815360277122206812736112271913351072415549463920119986343696430143095741738021485151560193056787623367553599617266994977941075645827691168958728264326952923860712447741246869429508267558167009282783079163973349912152129243939095773819625322089359051210135719366400674689017146297845041019967241233792855062194808234794483539441456234488635279145993607022663145694972296065920618691223413984676289534365354040213491364586612223539271896531405047923628594434104805658449049101217994408481536549539049325244626297256849099295572618965162034385355813071096178680145862074129581877697426694048754091225650511760160002586440524162822778297044553866472457810204956362140140261137188448020605143626544157834724563553263423841611677106716797651612282868965192790906906160803527885608730009928304623066954900513511034817171490921776198613879165549440430377034095352182440573366802275919703671853769931721178610991947101347626983885944528955485480887619724126944453807172217928581096602166162708011191261986156407209065683806684662710821437565196763009319467685306230534545297364710085019251851141796905519295576432349348672787785364925422637780434430182731263668233184563391807640266046557984651765530882419874638635894841302051958457550366505074085400181755838424801182633864181567679163333390241452289799011845429445683932796810256681530881868017298875250069969185589794081335041236001010781631057960637138852740579087409871359250229419330213281539116534051713736265550160270059721950225872986986688278342600097649648460084341002878814545824054358433788158200544732025109789536461273563443749604163103171574295368493979372544678387139818772382430015846127568541596337664788127925847635336493961519223565776137870135353218165856767465788842638430056471719123219552226410560647553050669547938215231241403310015298375864582118280562153305250564581603380119493767575306300240565878902491072454364512020102203823190378913469189990947195955568971051264950151848753598986893454147008551528576838110706354537346092626755382119317615008084650631571058561017922862468797668650807184043201226456968078681286261281619308771798322348225667040561929792987776078998544193043162505709755699615290415986786181931731487156847817103576775667005347478456022781569032938917024448726693656022590628914407513104830202468890209187287234240724552017401815415252099321344305112209437702968788931631781805614500302485622667840060710264833714815894157089856553844783298413038468478968112011757327598474965241720392496254990962669123960046564617642020079774315414882252363353924710379342962205920801343539494628068787576010332298334078444078860182918772710830842441078903048922047228919423930821538640061636799581868705339903623148776228123569003674082733260713957258826799800499131846530356676916621947550391636996509184430784201287772788757417106072003583959143005161490370126730994405610974908670543886463728160074694898860634530418756037902779549705758133384190087541202242336476414104521024957315605130683766379049325073565563043677164666730951896569439844277858147974514128056581653273302530039547673963139549912606558311710942864679945788439058660257268056702323569632960732476197423242545360619844246674441843783886898519878991505388544210824653059199954864223533350761352297284104601659392053150977427355420285668491445238798643519360418366764631849642937655378880257762089975692611369464379750569610013480525923300692564755362997823296286396470299692282428544993794273929683967961213601991592860484664098142727536246531340111610367708102353486570287065576318365242197533142702053236674428229182996820131592679171839752856122130551272721497329632738800492822224766698907521759991164230416795717992543207183712586772918348068218591279824468092841550846906449522047398181860358569448105224472319390140896729321725841688258116407154256398545640341090208888312643865923863415542787068660162411937591395032959738542533130924459587988226623169394499216156159990186665114072242939973493916174300306365557353464852668630022889155471771124203859076581710600203420538764852577769737684647938043414457565402725193153848420192937184514757800832739354413839274363616691755847318471159335027826811464738886866084899911781631125926849262282923559335997878170181679664539587905713715416841428275717080411083261118779541870805322081906648377711990039724233133965417894425252406772466500840620130492126075113405963105626321265422230160312735873993393682784286399281481322892657273784338322725993599039450525766766897695688408983661937125134202118314421345254913462735920135572405472014598644651790240602238711456517650227561136055565956939011900254702514255006036174810059334247203316653723971446298791648683670132391604795094346647846562775781134952301053146556319905794585074863123114391834850860682107453922557393814979328034543391620351332652733241165722156822359454195993151437072902571738293211844256345573238696177981635976471337317775308133857450664743716831356198290858053159823596228091567081912159349157842687103407370343337235893676684440045115571158015172854059186186493967337165900481320215302597782096823960420152616725146834330916061157173949188872521596453233363446668267787453705559244519037896301393842528175467203135930832690907633190776112841787145853828778554447493456801279439564751305417375629151034431813961368388950910345819840950768683055161988893689282253721598229274099416875133083936427763889056146117548595320491860900421375232714786260229830856669626017024712775968812732925149711247550272643136865130477777921593440467125555552966825681265987352421756697760472129922082893265958389972472544033413409109144426897980888757667379382551571123919886629657576879763331405939262620837310157386170654604796224058933551603038857138036075945700263846361237182325086676113307883583378278998588242947859150711746406486133255980741879320593587710522683206688662583900907173000698214214546184853802758376794343232821274121064819025688559718150967066493235987981112223154705958321559050385116288982849618752255465770508653553855967746505304603958905963739774735784426282731112847863347794058327617684090445697728059332970862424874241112185077779564830662826919956128419655697917300876081931473138627048426002909993047822386918067484619994825673191278375928836220040487026675521485418872377135458312558878101172853678525202401154858527640126654218996388266145385379730109592816781189810201142374063746859337204400631600442610119078219564795361225786465654073777288198463031200367176336222153712981079067371701246996541264942735553417401865903113255869613945176354416891312688884301844787501695353725661121671066975658743481414849137824389990440238420547072149371010054175451814705557174059798581892852669838474982282361685177957733424099267164418104381646179056272034093907163553736371951591885646575584528274518080753862555587280508597854097135820100669463540669663109308984495637190460236094860266716826701171838249584316237426812979753643679208365071873851392835637254269469553829191301002115732041811145249201838687386696668396626518920073672649645479127192413016532387924588449839707775257577458430037663297284401930432587112193522228685147356515346470144653084632830868743740590943652165639250267216598744807701885886471161597531183426913555304973346328777493490272736817285546854774258299353957964329716692352556500679083699708152036565865854486577053517857892854038030571808089484606944335531645698356116957483537375909400249605996070599749382980062961851281596018091974370268636278036375822127844685337804174791384322361044136971929767426959276481134780823687600492563380669763857620601113252631646124400086025366618154790691149097374785597172851782300510328833064172176372263058624868123136336830160048967444878098301296605810795471446585949304698925188944385198707745947062387496934119892219805445485938272232875759887738760549539939170669438283843094914844907299980168044958818540587374689243829847063942327002891439816139844984784251811266257513040126259335082597265694156691670809180328345677652371563023100651160871123834355853903428617486806295787650074845176670874401249528031324322808573603607601884147277706918888264918763673921681002460672848133555037623702854782515490186030850647403339049564595461029425419369795842596981166421508377295895570255278282744708929409729935208809583901342806971971126999455359355351165111150096131663450909971480400794280045939779835319905577117764557453733715900912247553501406484906243205314740728768780453415366332849854200993989039168262179757509992981567218472929588439813154378785543522451805847624887409002412256587033122334219505451089543882715574421463045891576066771377283890584232453465940966272466126862519495226855295951966454548688639661906109706418195030743899873447277672536089315605308516203345585039552545770432361659055261544180831550877281032948451505610667606704303414789640927209391491714528785796060868232561207473325426710514030530062078456986504690778678559622219913057290526214862468586165067885113640935700778500414126334482872057149728439710442153880977596315100071391692075245055887364869360920090030965532611486055183857294918046865178023094325385161989339100426973863418375605043921272745691168617008243242070434366745444922432244751095464349797128469840114750152753409258650941117600152326691662590207112739394363827929297824247048425981604335703986047552201228109251857828025705638140490427184482773628678512571474809472729193426983209440003864637791688474760510111213101265072831863160331686437782827054563421669605602857198437427052367883131637939067826873656223215041440554798285133608728832108584717214387922335644305081866376604172975169415883543869738618184605573167606851744628301255408900438968893770066354725670926165570714508724634480867373110072225612257786675172953553985101210411297331605440428313799165417107473250247391349793459991441211897650450544010636279860277094597023280880287339584694123342706272730539712668310642798625401009977564329299940778707463291024744741418967234448128166294020355367643722596840101756634848815123635211235030129675786479311132910507027160430178028268918646563683128188173783577010304893777281928085688821276898643676656487433643229204128553237651661008969516374268834080165668145662022698490753731520862582185490155354743592923084147793055189789637707543808360739269262425842699409114917699821325401675259822175302917463285521694846640241663516472867835063053607491486985947003435707646704944362655469803300616790632460749879996925964916895527069230181118336707862370434070889256361385854975104647154938150087525488041601037592622793709247907087104474131733999081471003324040546489377375764082243281870530879057795359755906512042230731722478761753014699016534777572424854064012654122048134037046531368136792473782287725936499030738526531636263400325193177312545069501258528910244674561027490047982898212694301346908709392432213026448486882368431188886646470670737297837801609848452610973676933227523740468140146733280400523958706658585144053322772199084573149504605259755844269582371327314526208620357263643418987913311538647730860712305820267799097273116725367754600693995966985743242949751007494762562918527275894542796533841621075563242520023379531522240633916383449838573061562479980683705926251571925567474795527299234571789772239847005130441183473084234764975405664683295300499836793676219233770086348778596159257831216619732508462948842086801621991394387448331268429096772443553170021180609143487376153054625416446697860774390941385636027288641983005439299787628535466439990970489418414899062236921075518818063377294737828029911395832469385070476595233091454344135382621457623018881646244259993475303888144606118072881370415208020219872635960663295472787663162393114864898920729225111254434018105003241764891295491121809055359985924877379340309089396493345131421970955763427916002915948605836417840180674273750873962879880622407999148798323096277020026666818650389968099443248983713399994340849696302414540934705053237652010081465118329721280994083662482448901966838473498057102537231452632208751818780969008565206905031123328563927993423614651866187785912881303234009477624743848735092644611194467926071704817128110826652562230621838875925361576687713489622001086541801375673939801521352760046589708759928535404989790381849331694462258140669127446440667458467788187519579785079816725245388808568254373012360151846969223199497043616537780791719726646840586724325888663747381360995746243232001883720577268761737892951865202627420625921605199988740435303729725391905964799840478991293967627243162824394560126937701792895388342988966926117284991066617186841672383524937416726718734178153288117998403273342053385744471634264272102060150305048894342438535373037164999447131868986704776815302944740328226472134054676174781701629042253498501931902991459858392433321806138267788032740115483049652667748141820570460468006599660304222156105852469356789520195449372332500113762097638813361544651763851966815258644752770263681709898042652418546679275885338331656741127729767835121244692777606356063673969852452429699856701632220108763630553236229131396529491713194249500765082801532212071146821632938381322087142555864836782433471903227705157069451285440680089630712017231361837226714021681150342014431660812954701231904330383008758622941764368757088217558619231637060364294223208425132590602636103283887269828581035597263897599641362920054506984557994871734841513239310195198059990565833070594530260600153720027389300477813466074632556524915932317567102410044025761347034815869264076039186401969660769898110824505742818965660879286418824175982190753329187338297392789063117110047456248555850533341855412858143005259218803730911303409049624995781881684717761296989649966012234446769062156661559863831483094161849466406110879232053891839243230139726621484075629254606187109285998197118896842081760921647165848837821617886281585501191421695942796157124256398302369438768843373310443510619389995208126828279744020758018353774925565586183135597098841760455766340206276695579393439833728387101022134938286870060086326801632580545949200910850815886012009890131983661391426207781610771635880189138914209899677111484187418048487785461531671026901820357071151851174754128786086142144535559497007376187830817630249238363244853208100992433872495840083715925776004537032360134633901989314108108470979582192134118273832818505494824365727107834362253519409266812652424377557644798378694121028455510138349517029845372742666924057179480587039879863950888149155731596020771691444245480053433913737383311026412191924613606668362288265123677926902713469940831580703586450252522220223253474898261863482642980430897507668955733944817300718751964030341897363792441378147570580839788224864385142150771668473067904788467851655650267113996807854145772252948905372634651317949822941845502943836782510158983695436285696554201269821023269305223111494384978571821442288253822261796938373431901516076878555969495115852575849971305851440064224088565618122230577947060646800886165297143459531269374012872019046451883505933738123021934507653050510893555204724777113451203571587864445880334075431555863020212197003176863488692490869700395421369448221502345947367929226361399306573436115971232176372482707471684738244100394843688001007742502687589053914178892776241271480494833477678646485364902860237338513527342018998607961882693661311906087837412293850110943261527522566728505914413481786112001698728172170703764820280771532102718004276106223383234401375966471559534283320686053915911196936977448562399409229909908858838513896521074055904685621225144392508944544518181388025890923877941241082813848303345073423413590985091113417514842309475598654304360241483921303280277359794446151687938255818657354704355101364005448845371362340107859651214413220266373560985197676908318003825658318216552792621274572881615280569364762479412782339816740980518662643291644033284074293315320940211709799088568245076322222021726147984959391649128249575824994360738843871890903846330016075034854644491417908425564083029928354711295877861835874582718911692386784271217227887376497958249474314153116517088417378156160135864176860893113815510079929150490439966941800506381940584708687992631807538406848501338164279350646959982570372151514244602320696251914644310902124866198110247143016743338951927165760371794042018952744409504703137482868002409614891807465165447423370482715575035864189711725233225674358664520005709077374372552794860431537835668753749040029905516700567743797707340518563316029950785016063979549888634395291430118977590926228157192231710389412232308526426610527525466195477378440930211051909403799974704079955448447740124363106808980547595813482866104615083137983531718357942915267074534178312116257963942784290408254995343519001960763555101122479625920649696745368935317912788047403256686581774390935962647643103458562341705531972835985264656521357612439556542808229842392589938347649478006395492964270534611096206014124229566580666650504896070606635584470589530568250081805944582217434694595897476583231975414793221713506456647741065505057391425212250125071321617544257823637883278039334866442900393234824221242032705675126540636306786052603672444080254617899791329327309933553354058270730349151254687460635354327225928114852078548996055950891104273860300232726131818727086353804211408531583534132835572302670663021264215438159299595755837037061066703779947910999547706325901096088947138201714263432881238634494501622119804640987316808888517601212766017383178209794074080115746468889701367145231132967940227265395915009216417888275060089332971514076381465072639461792783759003926951570945862775752215565244402894579925305563225413205200954321792400902571420044793085190122630442619641102124005783205947251529790452918080481671218279125940557444017984283107293871295038129802344393555341980948196664336442266152121410987988714727547390005987869631463077261021763829562865936196443114226764616365362725974046321401885927355012682932264209029365437384025255105849536133256779822721466077779451375402295536248352200936518153116177460707547473831387569479690379644100857833247003384002372571731072999498132028699873408429738690038436563601830243476888561951629844101925978712006545091912216636176902022169261207021837623596234421483800218633643252110477434579267071787519308993511849992426179343192181630671268277168931153458766163768242655247991367768335467961658151485888691386136324737247897184943665585765406044349454261242873189492995988704344612967836510472279138733024708381657815755493739896726431216995589285522147910784787706979568805872002960022728004378053608192980433860990576252016452897627815181032378852585552503170985240795111738940833025810762683402588802965362799354128893153587883411561098959699393832962365838134153777655322034269803765516141100832877181813927324664702044016111208814176200773332483130737537136971091546607387346431112405854310253782919010638740015935583625442072282014433334973396296462430312702771121088107285327973673053228056439376442475878299389449045503015671549124673256784742275192733205854957493256009106987066207597937998927802796593163412468584514398900586260377258234291896126110810232470953629848826677253668607470866139439277910873661241300805934335243523964730671988737728726781916018986351806858318078277907734993694958444208485866280997616279782636743479719244731435246162333644678823854353482280402493664306585466885537239704409762411668814739813626296573421984573368683655502297633542804792391828212365026360389575976336720773520485345717829920814848798809594677675540539910679213603241855404913843553470986076779056286056776486136680298307069339160316850494765450377313098593656985337984654275414956719100853151534940556201094664456217640312904824785074447374765725729983611477853489570024987792898326576926789881442422083141044724739346453976901631975878847392883896386892432109188220576412204244550760266806036230596941503574737278184218396360341001152441002490480849037880762928168427956702380059287173098839280967970914562526159348162618887193314092126837049913097437256645417441394648468199799743726225600468767000187114962588970015781141007268187583332702959945529278430262927203807972460958212321118304314595572813140722049433778819301885654664357553674937885149823968497502592793277083484123788331704887553573228585393715590297239512439853233612177173517017265459138572884649080737036024607278206552304081638128846370839856727915950050456407857397455713848475006398251631475979836954047764476562812371896341512407429365535616565136934580348767495890345785387667542074474027154067823670792901986307790604747237172092064958671042341897402738316321281343328033989748317823206848491415353593420985953729382077375868205024718926977123124987201960093977306130091277774684305465730576906834240956907883537864356923961222991245176738857859850058331538217073802246390211977628942102643167161885366905183511291042817890377744001004374634949162781229180462758284980582602105258424236450335020856541869591943063175379441837185200695972870817575766009010958187631496134394260787633523843883500648546373366853857017821734405931370342460644516774184605664666638630697667742874330146927803969852424698745180264884482841366247495728838502764587621410445457192613055353854525486973821663694153089050231285530691977193109028966035725137397935399616293769890131553423098062049096366023667385977125057619200480378754840434178976955189632906540540209458787569002674557843263223104074598204630872451603514158201767647539461822412139854605297684317253525116754260345921725048406088584842425119619882408090658622543009219641812254009780695940925689912343080538748028146288090652393132662530758937705246434968387913989712677003744905256714554266663038562522255635752754668065129737258441279384652854380391974059515457167648959718722394620669188005972369971178355589955100366076282564768984614478429719634491262041892460804362939822908821993488675185167646011063157915512969773737247973516359856583361451556288893599488985126234297012569154563188304692455057592008295842925254554927131823070472258138186821173583660927289734822220569863707255221039008193896792645301502949348323491678212621474554291229916829802471456877678184858597293465383043097126768082345629996370015549759012179556923056896855210086570623249838595779860136143667302379613995822727799395942695802650190928531168037816625465624267460777563348757854361126935618738572831858056714119532346571198672410435302810709660128997549402069831629920018441740409272355018521292602505903282537142764146481348198742207619438575105221820056331767151497873103169641910050265432356654943025794677782677600808807023381544391761061130665587570814740132306773488057620464742570555197755555487690843601341388116744557784633119866781989395914789781541966091690772154513065367454133236244472729426356780884702299751997488081274007375564421163235142524165837216272140048820226645285129077691447517351675599331674510541660315921078930086700473514135016010789779111653676989347968740697482477134927199202690905258360411778001924249892662652808730927112493796306355158122046908724718318294632326595631951827972430864374688704151168167812641361451681757838049244325014399579117203450720395014208900974372621920265468918046714168866200379747549874909388114930000125195668312992073849758372208721568428522776103247894752560859752517803912024023248501506201646677504190828363716889091377049138218946604913579330873648571191250697592399420303660707746015206348405432142834679026355424363481494767622076747886960785980453855603105524388417846344941106676453894507397594685475362400506508614683242809422013524425733949113663486528488374067710049291879262516568145790021362109791618700269412066148555607139410293324651844451215332242812970808194901515988992503097997153681631483227488263113417888940997492008920154714288505612880017770355256025739314051508543046666557259112837716574441791440246226798512071537514458564817729936078350887853651745721948262005134580908434382151815354417189009827784884196032303950917817458434271454321047227763221429829238737919179092927382623343423342456724891674174189502886610433266053700609834847491837303198423872992507063685547474913182450310644929731831560949270843142268350102931632418648969456051438483467096629974449306689895120656111217128493501882214704868123460433564382869810846383669935905061587684148507193506706360154272326442803197346919820575818232124267019311527684281200822350106005220856237764689937546901267011551692040031470609037787020250096860772427785108412708338297984836315842612699728290903048259990643458801560322935579286121388187943129917718426943178397326978012857979948537271066567784958561320831869191874929016172499682071835346338687625801753959620055589296435936142000802305102776217850867827697420302788276049725861114639655986045223281401582994517509709777411999250292069031364104944080428773915294901026963384130715634677048559872894645862396466526507443006732299301933742800058283499442465798030892236665851853420451567865197552294710189540534113534597701235266755390627604316852471507659977672696693185520482546697191853760261082345249702133777186384633467370311778717234054584849166552307246831109963146534655922516935592664149610717069879115340013077021880507923972925870282816669069366997294309946747349847670877614810588295402164017612693651997191531362411595550181107145429652540915295995423952497495477912821368775975186667168284849609828405438013779540513898577639476608314705200504246628054353237519122373652275572797860873381683308195413482942284678766457137291787969258654728766027603500250267120261681290980516661838892894944910965086623096632297758598995483565479451226168674970760072381305986994615288433539748366398317733647759655408352752926728990236672690213408695707867149576571770893314659644427676848691864055144358284213786161028904180342708215318509738012987617990445626461564124494480949548894545359691933488811321244584008504068432901352377639372379966355048377800943607799491128478295321304556893962282558065661691785845263206345891991353051010798724811255298344820841133179266046937547278191446801455382772800289900418807963895007026744834159854467078953388298384547974596450103850004280645334360756905847280723811377059270866078204803103222842935832636525728413566349844504564308222210173129476592223002809708819613962294881496010668854465071599431813580509419930075485960105626536878879777828100792765313151645433395561607918624190039199363217644152387022831774543380072567872035673536201731461822487279464278618415269647515836499076439235319047055349740778108506675429030170010834503990110454804837383045869427760999684018808413350298986320799687876225371998497052036069516061758485103911954902073522444290605527937782369356790673242774150740870317655956851670982104718123195191490055877881147167822034719132947532135354493884792579740782467377384238896012173419680515075099566844800386423437852109355865465477610454901015052399364312538335197158912200402380903741502674422730459750844365099949715875469001662858071801537205238625864218268082531394723109528442850303040717524951497676239147290524613891596015810659366290608748710838845002456675575506186020839300819000905363118485231478845144228945357442043340116962666899913793164067910498564541065890526202660985989666074586921906008858786994944498980942614264441806266746616291007689436709945523196911062446554632506704975802450863464336434963002622579604501714469481695600419424433554153998517292316060162589418692468596304915372625629491664011387042058590558381459801710301011117602851908953602582131529705869190910281218917673606960928917604293101409178639453203618869194084421129534797570644305532880642507574852086319493254784744799531723502842429555596390936959077065744436374438473761243856070478296162987431803764615004670793670287000866570638748028123163456822224275317059843919204503165633650742958735377157333526979186666607168496166944969678433310192280283322268777613830404631524455334599406683164637389370606838455083397577217182791434423831687119416718427133264449398060249242383452689407845969363535008029459476385136177864819886501443964197300507977899226029023301158700456281782565311885237093904705048334846363093213585008404703546470106419067054256876564268811851355675328835536179596993107636602152851687784978274235658198888643867309171238491561971415224602368690909758535366197572105501673998537789573387241446665067802026520861662092189036286606864818531001529633186633995929458041156101011429985118167678694047619694636781029613592010573232993688393524221410368001039637138741799312533181785000650324210924789504115614823750185129785333747003583751774920909459156761296247667311993929328013989297145644038360016439840034552203678706440909526304640598844304093571904038081833379621257735964906299758190245574130890132283133234760233979155566971286391076596116362823090878303449530110540230237949421908813261262281970676321493415436967572997147730392092364572744796626473774609494730972002699715018071024166820507071880112556159206652781830511608510148650064055835407821066121586171054505201448410097464615332283025653590844877471718975997641197640749514359987685774859517250229767076008145429145667235490641710182452777065571061338688125779918593169294267037333270506703736611755012627761886206870439463868831969535121338500593248771328989132885960296287421414501876057976949336291349929698333712437059545380711883931693543693902841892103684877613039939347537828558008444504927527381373869196477694961110181858980585684731292742222757070072199170225043575868168878673206876376033540931799957287166688914769510108595615544333094959374317206001097040810393751002963397786807103356154511437054205336084927089444152543263700552502640172151595017875588140252758017060661222216710997484622820026282025854516767714416904599185494388208342596143772307682749074502980511806486308711448894495333419047193347521128858833392431287694612553600983314302369954624046713276266485472905774417686689750470839306064017309298173951266570375377032471236766555355978666532221402265236011499378011186075968206500829414284202691715811615029114907892680798218284846427004253324303852714500827935393218997623814473994694254571867195859730462686796805955421254129302524855650186986182801266615434917714849877133149382263871376916570410867551429500883486637197616880845235562245864127385010388659324630719337501834843377901261353076667145962737755078925124639441321876363032404132204347009577114854461037567683287259990415231209559013059484769892816763826860611199675746086068085541806209925004473456557608089831728046825336793898311964769605630968527103670134639594073324644231627451973829583001639063741803747441208990600205251617674440899105641988459878634923736555184936559196084352879601698241126620442441804310981166488395195030292283960782493153280069666657527689119955934142084999293791597587178757398823141076783376628673774908756020016137821578855412897451547668116757635240609820315602393552792886839330896458556975456112648100975181602359534135191117839027901630958932673796218754661060053816103125133366919834465788023461893519465951231388094325603058970609725313643216148866439324390926532661916206939693816671261587201312480613398280556155034960402203271124796736734196468721518858792076794573823977478648469184436582228567710225201305647819206926608318879038322210207937078393883078330847251588510011065041561061533510818794515728917200673937988419960656263506223875153011195165287854286927203950920847285125193974195130420642531331139562068137343227064970095433194818951007235511525997095922542920246977930172790700007781264306092102724584443526360967235574967481986889848140312255374272442653530316987237269795918114073271804615552864606534659637456383771789400759855405521073275989759866490566154115746299365855212213932728575371295975380437865155386749427933025003512810005265433138542656802012560580243158108875747115248530035075112276270032188821069055740801158533284105338061403762694560696067350777257948781117374748052041845576055678873183987430347706882587823135424794712969520443466531378267330617120277549525221507961452843736552665244461389126707201988231097672650264553830554122322230717368011839017090189269801672736988576559516450559890163804015619498355990893898697263715162685328596274525480381519177649711033391017740524540162165688225221611116970697393296076406655791474732806311125172505080784857499842307579361323582485483196385538794805160376661446585991176152305860050034144314030089541754254888248301988465781687527554774008653834306151903756826341236089012363990879387779886341515585394744508252167364513996567947161701335668167892156464140753292301086817178761412975106547933950039557818030721523469822177171808416429743759505839084503906057368097730081266734264845639454736692147047135145608920000498484899827284069981750133396985774048049116624581400651333343594757938475753314434445155448527248305081163564513866167148119275908850041444907662080397004575652212798904319828018299153929570833219345682518250982857829975942636368028392961152532986616042649139765486557715526904925131991158082616783369298331877205642454188131167730631694852592769388214035488570499341983566899630102773201163952923294140054786355060031367769880572721272391935331512542669575226910523711082928550062943915017272311564593706137474836288015958611693670335021130839664070475064250468074789114944995468936631083676917079575635989098306695768975017632823274191888244526129312291166272970971622923243126976626921871262965108314836086256353003776560977717413651842826721011552977085350414724404941412630728960385966151868388998148558139012306263680738699393136026348928800554347365091925800685955217874353945912678657973742120721289749335436539040243370603736693439214495359024277522028661805236612250468309279187223852513188093380224624420544493617061169931487344893060524067408702287599019337979321020754266727172413337760029299569847706709952224106117224657721488897241358249483840887702116377601852176444809336352415434597478796539446953407282449226038214430835063297618668764978120281063472565675708839251040245645252493392653999645318495553719920535620667969280925171678171056042687233013302863677015048805050304944896531576093005621292672611488597629092904170265471340860090246636677339526026184126540294128869744875528776619294133194585387133010924669540820823723438813031572256178358484905399337169570696179060381947621953657557234638451891797110578648185557557360094566600986858798164890418807135721977044421313336046334893450287264857871046500281182547088537772257998584892044236695070788070018125396626356822488435163239098200599337935613789718426865468948464422867205992736428173114690433579816085177106214105492686742733320576758545456977787281524398432932693627149886158671476900834555691170797806348704207948891704273988562337501864598080378717307428223966667368099595870601275380683181435547906697349639819223348302390889297787118567268712687656450760885668967376220693160178175916902952435531576366909407015953622247086034317788078603386884136768584753755740555106630893724809546087759194327284932030774164889743022018994136791175922418174425002686524145911474342744046019255019676740693628288905903364201709898636850184790619732798773489687459862211482415702809751139681435144608063009943128410527146855480101903027369088919558692382543515754778341980918335309523977800382608107441473229897138276318945307414764519266247531065214222401817154308980950125427318397249404620981890511203820305819731800864508174084880492021791546408037314322429793204930108207177562952758687717153464295244225735622555227374115664055380614551071961542473785407001566515300928237853705717464157169196126380522115956034151078165633415448068720722920569494202678670104366103476892830152622226964369003389068286678695858562217400283928677717935796658541572701694138104766015928606031275414958876200512894558554157049627108026877893889174846659539250640169798925011557408997140049733383022527018798947307831697347829896674271066981065090197151276867661090909572102697552418673283255869015349663606474209315772387648866214320177962430905582550588825998430834966799099432095510393236146133757537178395877124135130153745871589453813164172941183131126852541488134031519567733479660241233060232578187813669245175744683688687439206244269424673944168408189526133833522095427661833953570025274989696662078941157378805919101136568645029488968925592138861111565441732335394659599273096649750405432920321142518046018184778262070164861942790454088570031646142508513334768347041500223176192963785655074172603186632345812138432152504363210516163014987977185864488071723090347061625741174344228328515324188274932349624588780626130269375657125502773122673495143382834838479326666213112233673365729944916694579527373598075973935068427812714261699407133846397463001282669515796045794486513926020297553164533973919665966469466243211838517781993629074839719438266373456514919799683435937713142444400557484045055726855386756448844200790234818894332794366709517438947367297039855534828691996406313314528387601052080722431144262512459615638666339804454936519748578468592809636250558500034891748461077443316005274928035205060862327474695959941059511450037217906568517051015343236471732488796129855799267502916027329630975824584995233790927366518221385685760127403877246117076871208268806681269423091948923201276064267888984391488953835119060144865244382966648212883072305903072467615520832362301856085176123501749156190924502033299537921377658202250556558910012044445191812900901768017450235566675155503077339680024472548583513827592085953122947945048673684362222522951225686560440672297184896962705112100937212348132993574411049211848031943839807517230626070598338821438515736587620745113492313768090681472576048349754212620211715277845931889459013921029680584135857251161909063544707889767355666233756166223471555545097827288636487196857596905947301603628110448255345774507912214812260563048187715726930712879851726045888176104737614990551535569787656042690753247141192488976087985302715922553032846528366628082392405822885131313146158228755672372130418922165769418013905907832981946039990044828071960742342075940410076424877684205561206668517832766297719817819907883968072780457743752739343489548069719052548126810809394448852278719497108234887181064173638393195381016041870872018065621345003010378262047797297375133160365465123817206338380278977595489070104177816454978742790056947656056343781580813006506562424559063909638316496106451170245355314077287534443250800408732759325815589851077402377139358738897520280143473518790366907815456142828259662026352825462514650525903245658846569516601349177127202558838805346122218354171072318842614402941901409563662520667244313524626401750502849170687938296929421645745442641992866293425513679006832857707146468074584554249670403400132526351576492709441582160802297760387981123621659933969115925115093272605279372082014000121456912405729875211717692750678329309289400431985808675551461280681902117533069807532626175133419941303162223419528895625864649233602723176081940572353104549281409132774654244890374665611235440821225921119327489322841340864213068468047157912778306368060413128993626901619979298746128771604419611906365869181980031345564579706313047396944624076798816122182773706037640581914080810532238418981877272217434121957813396847008479921575582735252867087823520123973278729129833315660416647756753319808917032875915044241779161129855342438284918379385407901243050328923667943243992991637142685457699710734677036535273210479910630932998242391250750925583129483650775104596467130781448816486409766385694473109916767046517826341217551403476942517100448565634206102657149756853264789338639853056588059507629295552267157539625207274207639253971550905182369653475140677844493090005734075833036980054816753231944039185306273269485706926264104378101283624996473714313941468379163670859108096239987989204847466184971058098833595602781545293797445369090145370384095899969498371900338318680290996349061620967752770905462653027696586927795514376029465641773398378605195841447587439877987554889863112489723492413631144352853237949792786238193198331729467746885551298193240387229652176105192016445274771993302333403367976813794613937089128813862802687590948556864721125124460046888035375014538881800190936831219134708989926535355641020539062850100270633022946097448760564981697497378199106870447533830065061121705375485391547930104503044765576419728323524427764806083947674794787314408025537215797650324227870268361774021999935272552575351899640782974838903414624139711221954091491692401275854339812339644712851272048377035407675336345760199068716830096852242246172490490013180730955865323978046677907493132953729430824281674096236424529372263889974617031715257680299966509083863371968797674780499751042951133605396534388845196411229852669139596404184860820694017436393402704657427529817482105994123997168921880592501667375043811457654823565796416639898977199802259072742597992437284342721011417036819803773044395194680462830824666078176864170729039163574543235926311578405614854318435697249242245128840277869238008534937706285623358922700391606293870859751328945407339011974502277708494134592632815346175445666585365826756554871644661620638885054397369130404795887285514755740096905807609716061924846779681934001244421658890252534612208091404268378602754621008534976095133567975748610762621590777137233965559472053937388159492242211976094062456266513347756220096897084434658592973040053555383994438012808523157754176039855645857211858481918892136910365002142135943864267764035282884747491033458575944256663460649907485061985274930157166745877108432430141263103867436016659884759118637379181957316235217222135972871589774961562329110842995259626721361600705081588415696654497733915438886306087941197276139625127888333829968337616698097543123421868436954779361181285050270383045039492128309714720042648733090482656697838645313959163104528686566273687036478177238843871898953210107287607583467263657527933725232452467752698579418377956953561572221750374746253223324187445533844021808158729637987604985236947794905739501074435979623054232271548613649038881819206415025862459852933179302190642963158544611851005430219248878485569439409019744660146920367149880461113300841614499754598460188922678479347992953877962327744972342114075729600108130793174673575681231313838947521794990816589416990735967916634530138857130963989259689982247024161189109193026200143678133869110917689551265679507992111527658004753208821442212617304793536929135221293133982793980744626787570785510484605750747541134700320237062499188378838223239039069104560332118708519346264598022944351435535167244627893352563091135761841585318969771225557623565915724219797606276958011426600681994178161159468814057302094204841742092788261407708257694778518714672088440980555850819669130790192849874451427692344326074592142118616755750782242211009781318303554858324785040526738358029682117980992130158814338392047380616971041510038085887276287293104601513812782512596496524694454331878893541767408158884901234460534397649425055005104879612637080001523402122493371392117141871029159961704310523241524222779869164505757750517918751669562713129776707604691885994575643270277688306249949788903322280495115144916530494560183170910000347639925941374623806751689776713048778289714564427786529624189093462490277886835183609603603352150370227620163603031059080536582658492374273013713823242017446464163154516459323564084548637840342836111566919517096320429879939489430097246699343006632315633937798414477675827616286924958561372052559409213348663471512134095659891751319558899377407402942199520550285339475397576742688545002140125278252464409857433658963074496387183215911105112426349136840880455254984159225542985954038361938296371182940150877905371105456627300540408892074176979850316628666113810953801557942049625338298733916936694672583662898716834288801226558216143876524978291262806859159674356706082143420658297514005122779657603354065297541450713393348771685848501523066498106594602913324849504387782310747223655981934676832009596439117464791545594514943167876192981832974063428127170363740221614374054976279319582442145870254792082923591493750040647233822550924630099363816798899690495726644941797687244942992304291968021356525971326626395955195688211118359983321988447862584033498489680888513939418493275477095125513802212308008137702990723421617798958420740608368205759395960344126297388390839404381624141687350756886781229174250847264968250776012594783039162417982250601876939027353257299884236254622254734047730787135476373372797630343861258348013074352731790091668729067624499094981532193775336324294865524274104773062011479258741255234726765734693038072298262694402304082308563851109827666118198559484280586929377974402055470728818519084258078400902600324847025568908749504059580148733975816331186467431735048520098440782127077532981245596283919854231903517585492481589637749377369236574145271562805026956480208368980011423548355967681570328857724388119686167241847755006340649203664842585562062258803026259812543207274772756105315927565738715136919795245220391895927380643657632311168001746254345945777321445599730629155950638334090658115451153685710896514895336585754021090629343177781793989580988094802970287856919425990939351144562893110973755683169632030611305734424858882140017566859620026854231527384673004323924483530374314704666954949756681761295294410934461044443587534751794259071337194636715779778294442248695093584431896196472897983604027034244513686426685836443228638552936649642063003591610809878569014443852459986439903093399867689407828510964421719780813004398133707220770390728262921738348238261295027247219539938429559096242059497039478928627157961743911186551739545484864943816202645248463711515390123912194629760183955402428469976874115878953824544392655698341782651640265473909242260973639640229570481402886441982168775199802226222884111224904897187012465621534383130357640658044816498691001564915634272169113272581244643840302322530056064780193773269910092235227731144421853097698621542493137856492897663568091119551367208627974387902945752660128809396577685973451924227362817372265080357030397852026647897796821761899535620568485446585906173963338889799351046174557323401080236964445454027335282557708909251143218258909083894247113925179482529196415720167247776152639535026253040401167331486222698077916668152868877352510354382246914407211967930300696257594080644382926384370689230782256932578192243223946314850822304889808851238248987222229588533562262989247256899806290606472969537351437679670457348802808423743945306630482352991244933509202652428612876867276511780979361269190498980525063899195155097647326044559713448461091829326584896275500895735693723988809214170449798774979091582322955298189956399468481742016427283621278179969429640154572528178591625793091895538506354594638690118511696588661403154937321155340509378858964756318374134968404527675166368889131081258906297943073754182830430747905064205999783862835365203037925356470981543738185035209679578810555071192057213967211830454611947820113114016969901990209696512507322558957543830458953988898150345997315186625997375862442180677736023940780608547679800267575826322811541979205481076990725844022798296507681388240084614241215178440508288205748727583874585224032359557170291400886217630647942905451276444114835997367674183732785205258389184688389084930629801978599813368525130348014968395222615836143268521227477934534205963609706216866270857714294152964832659070667993346520728716700680198234959101854918526606576985761849842263146014811249802849620480405166213416268117745709142040435765193885505084173832652915627378904933127818753572997339468870092205143738824215291922028362025628726417329169758603865402570767999716204059445648930075127398444961473588324658294561163414745368756050849099749247704003457164321368566235053556660600690279102971716777176095203091392139456991667385283421743239041184194530205828316360482679438748388001112019807822452364487670618014122335230719129274180151737213284117523022480502075261732986468830730596190422265875517939159433601606527842974529389992690599278754610674201277499613189650472478091971156551252750898939804190047290981677810565872808560116411730241084886068813762959750063209198024494014257871698031264031852973801566027314014714059285929603193202928374135563355549145705330602307468143768898340991822028639182310353623893288092214085690226692493240289810813085910340148606332431797688500380135300805095517368199694762864356398643693646677681870019626419597082723573953701694051665770640013443736987637829912955972289469380175226919710026034484087490883305272983934575063155532498061220769120349797674337093430940286848915925113328900187314785382079047795875174602717267313825169574142841840814135734735781169849028539382756886884727358418207711080368359431446167980657260953723205634298024070607775922232881735408675384237668015508051095446812433479468337095901540812547022111999585133040451410699494069672380254641369302202710711080100911684391096269230039365580340878821412039033940520379119817444812569438294462674500122834099349403896101659145257122926152717331474499975213124459512938908474868729611768693309884473635098162673488663420846815822859386307256664277494007419318937007154630382157968674831139146048342565478533730941499059874564605890943424327316527718387081663604975243677560369642469215663679882018141037337636192058867148642072993291038201145371340614285484221950211269077167128203806093340813555027074749908369613130326218106982117617255843931809030733795060109575798170778492654861859859718191867432486175664896237484379980961590908271971553645755522276517619223841994650323670588889265317060303202662703167054374720781355558831698474606287863136840365356716949645854612430994922834884791830074295242491106314890738299258319729906305431048128169338914137828088768812865887399546536511754294649994543758546862202193505444409348431426837203366498446647993419545831184389628322674279676877395956869221275842858756911990558180245051890162360489592574427384239191741088723910173686633435806990746299240156811799927028501639643353400983578684388707625494265348444109393382838636418295919346219870137684621857964130531003634624751303961796801599993313094696572764666930333970906142202907858720158549652991599213940435699258050082078548745065062934750010359033914037616863586455256544590287252311108981215291638353368130529872512879012480836767503566277465077477946901118946881345825442506889488678581734089942163455587475019507417192445771500406086790634676792357308598310678157366655651306912493666589140056889588782569945789868382998637554164454235266975932311710810781152160020720805480840661353114605828335753925395226159832655406393355825241893362447512269642548813570446209596894125365637140006796952338815763229125938701407408203956248160072916090678019423234657289821928165760644394951153759648918321922710736233798139261791902660684777806436866925185149095491166258843131131974875725441284675784291429039088246149688049701257943353793762699132232915785322476081398312320586722213172316215265917541362353830739135876514757311357228931513412427259242378426295589784705296635718831124658952687383269377114152838128811009569583803609352951944396345484348732718626486371198242771058131610572496342438083938298738418982439352328604354550966078017706264574329726445912205566068057405628409660473769901241241697995795830092961189417377601569245288409660878230526660865970044175816990610690192693491820980767846378847101394472276865198705009480297764131752642556420915704996839132734598623005800384798556842266705235978338565122680519924106445320422936781823799335747094366391389217621998823667400481960269501229587195543451110829546828289466741579809782191161652489203267370284842992250092664703905141862402204591434541130666601595117267144380360113622025294837776524138065977164574685344833460065550564549901555549617381949967773507070232172392256526019239503033846298027516352585476715189030395769135960814983705238892428497570409400406403212671077304220772458226649798793386866236492907746103190794665976008196477482096304477999938231225855417387214819678551603674148871944211874502331005113919603635083178180094555783367524720523152171871231886675658541062464136757685951774735905390490257477712728669080715572488630683306516392489110283499064719614610579567105307989891737593160345732559863648627678727757464184054910190035824245856882973551152947972924328018706876755527080329056661576544582096057291290812781247298467075224036672662226843442980330680791782802607954921846191982789762283990624216954952454512012982287578902525995971166821722985618218255256220214634305914713268446816150562676958111664166040616961043073928188627354712866683716671596992366913129345183485962194928577775154379181472549349821715061277325563741762602986138804847139004016808679183907819962414678316942938082195210755091018007478064394059592591506212615090658099874200897230120148449958523674670865296071712268929575174686030214937512861999769113492674048939562380701475109084300632940618923568520763169819291232795990532510892341799193891876163876952741676723650667733613102478247712784961688235704716161397642827451439309738750540927871109921783241515353903057636373739253443528350343899028068901250618255510518866836796778452438612738821416660715339610191068422450008201478023064227639207008926317818747450117542403325863400700704764364291095732288837254433497156027392659130377571485254643793040223027427563516000107574578138333700162118329166598507366777188756622262424991561460617267454971843811065913174821825029013250948430119731221070594760988269227838311847918812798876719956460231325498899867473566237748126078008594039210745604217416529266425032184460013103076824083194931362020845983327870688811226450433383696125584176636210184423889295959333356881860277255615648098642237028248137247843954334541977152592709561785217833499731189412738608852482917136096219067584470966170598163699727555606495252311279512693732211125028597356761840202929800438697416972913755944539873855296408174264100615874516025844213792971316062251747759506572878932298309555065469144686515133533738248573088682403280494352969767360574245108310421322249409121819332427659371860739898662243367150176138770347370832983107612571494326582805121546470647496670600323278793900052430655480514650921555929755133197117739697221022271129891343843241933979816180255465569465424689977053538339431825942865817821499272748325386004604680163785719934470673210271182296860784367175312390351142184802260215110127025679593517987909778479896242981040809404881874257962481782753400283171074732229963579969439544071136799468755777188831984687046065471327136083912418701272674026076882234162052363794839802239301499041925280755734745367651330802795100626127630521195177069242041684951854008581469173520883139467975346219362598546704698551218028617474400946510186023181456027038629421214529305066553748722128726122176068991534847785698098369243699110576947130947730701853953723483165943594180905848347246419565048717301838538564315161493700983651009400990370521170552956687023521462292628124540887714358904034176725880830245514394410240583645433471757457927387721145505310435410253012537351034865773317865301003108451329991490302536262904408720312504109480309488879401182290217811691342341474429965819703267429387565138008590394756488919163191786675166348179558850254212581107091303168572988230836941910369413174103165247707877876809915945372706006422622626980667513050112974579091811624221825314532882056715898684221962970408175469506325098342645816491449648263900667175814094997984998942825742435771374177291228557565561173588807607777311756911627511979363556148867180089814896895829765690400707014429933898876629220940028317307532440054200893026260812758545229765505755480706703637709282880571712148365395123889706002793648182479263020528450879343990300995977175193479003802979129585727139813281302419898808784710239890138102309622096578014704076617957663387122927437128903998002221469298850981563199240276362944548780627433999758402550744423687187177457105708976979236352862263468894142967106583182947367072702986239878226183939762852662548332287065278095312556184463908569215461849865058359370295398525556156897453059254821430522955095674483891910625837158005296005930568294380594382075657684508803724680350924535702761814752358067788702207104607714725469023489373954833230832606363477160653788830771484375677428437652912699249686794964228700544224864826931748181184287579326657175229385017836999882693290377525455891320972903399576479573400463011856433174848994454248555717541853289299725153155495571669185356476090847463899716395939995933301804077537706705300330861095584925772396626216781535648891519545779741906607522145738532263573548139066710465709872777988083212010771929534904268151574082141200319401008773539696711227031434712895167319525320057016876656662177668290432126816538475273589125956533561452144377634973591564434213645619928118706975255429497840917848570766745078422185768263784403027448890671062073864051101275544547438975397934833230064193723482896598397610368338857511410997021757451890257406068964291740323792359225838508962823469840648127933918621894991256709393435961235005808741385811369392437325162059087462006570678214939058687664935685273391682875255833600435905957882411332617200992430002688794300324611192952361050142501579375207154756786059585783533906153912577358993264017868746040819604525899512912770096123903295479300383889173060644166143997348455091456888487016324910711170553954205571350312442569134365181972015764949045840436416394944479408300795517145225091281170745120521432292651692619171093645031436255968569762637916923917878323932924544299153655503593070232628991026721163889266832780871619263281750259978774734166857495488363567754995972520524204576018766105822537775345502475106891075870087903724106712633665203782780311005901712435705449097064931128837282581685550071700238334768447927166591177902988833586665366399408807570777579041027207975511627013199524037768430412895506416859952788829770795310098676495439153728639623221576833709841936440676634044075755941226552053974691789122606939745819192856914019494532782261597005922869489969310787659320289560818974261497021371666156053888549385060335807101880289181794727621509166996574983817600607177771797303881156521561530544699267585989005974088523505758713952953475196843300043057510889988375740979661381946244936846930236761720780929190757083303742613618111205713916838182181737159241488754645786750502246348790752211222420823259737823880057142831028631680653413627859210343146666881317862318318593230834496598532253907395119853048603119976092664986354153162927889763538166420868190445005621744984760239369494906221726177193505540334998152395505395567955439602661033854048970757289123540865967803182157942067898777620835332263431179272027009402396735581812862933746346101369296016872551736221615278284962820096539918950901876874261706057440946768560294992996690595627815897598616870509171078148637044203070778361917169855515507170075754917785590146423895858365126581522497746573714108861199321957607008367513439156145920251785790414360952574276268764422200948421275040912013101979277805814651766204615029112202161668165914204890342049922235862738006330865469654778260174367846148600162530120518623966813022296873391932751083983447852281907872437693831397552323365718488570435531064524998669774490690559407842223322391399821142614035971836496381012328719688152097499157600583061226528304367235166119177186016720790467958609627503645679916265343186010132690646889630211832753156175168654245748838519394857524121759752994192942032913995675512183743378537490342836683742688521403622105701070505903480666923083963757406863568061308897884179409236561409529683608810914055504092200188369661019851511573062580950325554892382958818391172048429042120216802294456717847297502112331612883062950685747546401547872012442640225144009965090604791033703866318542544763762722009013836632230638672355255626659815577028857053089450974811695351336295716604311782426550564708608826540955222397892537250940368965303821597668292444149525725575052270739757103114064934879967320132857532970099724413107049910543731121626808885970312360903125700364356538849655926579978786328546055566769733364230023382606504682442063268129027110084989353195009602595239673552256117735424201283614913925168700813831594314766810777584185457367697571893785960619490205666880078387410329074225502738242123989895230745421074894043914359501061817000103306903208249309134235959123318816355946300111316379691865798247856788457296060804223715632621052306706995379579625471981959914886800491197879797791741104023514608789346872115444791043711598648948368553235065439487882820925629481504163537659548357157671818319782351518732325828810037159180581146812364333907927229510728938383326575971077208087851076320705314230148405538370587356781914493067371179787644617609452409567475021459019965397594310253298460584419610397838795979311455465908244976550914806244522200853571019038995684829654222660495703292680706224320233487228173418826388431081300397504791174929778144409768360255007197745668668524574511570860780845099187139547324170024442662497426733060863689514257094284927523682212470981337488849318978688178422932874535531297685792469110210858082736211930716168785876395842558202142802905246583265137119222360488866755159416054176103087912354692419026017439731319136074496097620228596427372437905273787232421034804685326900368059590339539883289294016040402865425953338391097133522147388191397374093653905115738405768568204994101041267354367726873669683945278651314869350111287110944104181616259559447663871183910381560389230091974795539835600847614559160406689550079007882021664392619476785894344613720282812462693494409130201106379390723517414078530320289079815596520517507314643094051072265189422017322843344292793607131667523312744644379998625179227489244777565944104621451137635312345793503077108128384860289091255451120942912111775368715033491252930288590760068371673808046657869720706582658050705002438536833254303117147434997315275541318814823059597871118274776088754285709179739880011293590097943212774859686019095422913585287463210786575243195400574511912611936887713165670065289192468719011152383445239411597504920523520945366727761728780439880543669659546689773303108542085923500984439967205449978406386593682322772602759834856641653260691813474135253175747180004878194821960840104066113304092559153688479051898990284187653237513213321339708119205182002175791975590063156842053842428552487508148418377007696963004082684792023260324890974033863452555924841031479455634002449865269034514810735119058011648834925186394731676900948389481210019411397376502575941312675503146840373065132013872498818146946634118254758525172143933473667945774421774097732639859922198283695107933942838357381356804915434953596175418682380912722620091070850763986473720066657080575208063654629243461345189186650127602653637588591248070185442018544006580963443656484623968027843569870001927295208753484798308512101034640703015177884485148353365655396328166572196378645112647769555487036988336793007941930218505926351956834127903348932414888292563592379788153165510235403253189691429804671735161531418260335617644716617804627911182630108077603106420072674783176086705308880640090994773005452651761552223569977846412938841719293469294248582286562047134611337622748204810032884619096260927783180518991462507024116881093534896001328012426607967243653354503906245881555453631642510735107541884627185903332852362193614340641228452344687631373782522418789000982149606310908689198203659686899970504433463045631881477471161805360420006850390723967668489067006017903120159409580425326918710659665191669049224525059453873057199286015843772999031814418960319265533184981389717584492470597499416224868213666694437471994057389982371128574906289223509097707005798090821962681501655906342783672186561868193158184584746511101531067564938153010902168058821334647533350888423138590825261247508296810845508367577093993661955116302186070555164824462617328285821845713263179061865581468850234803284233743060013695142329475045712006633007893738740964557067791385285437177742603922483337841613908661419452985306236288944222182566437548758605263872533376915866886018260750529615755933676284597284541859032954097261321652869532735538603616300935715665212385532155018689766127496538697633868479725462756081869299269285022055966603995008537571217036982959125511347865147441340373925063900990034200864202253076817992883596518857966153657510152694420107713484272780264415355968663262955153545378624994088405038479130356270503601375057199812746041434494942278185533610307731999041438302871194395373174319490285323352441830895111644300716269038853017067374099184731526979170099501367509400412188235650520855512253860644637341264653852667754370237866886905745401127951272997713599133154339209464558134541973685554735905464435886840199170441515960890147218608175644169820721166655757341864156199403933774148932351922484720613996211909767281684119210605501035961865239250799673406620819580714733656515033708604098057749463610974482299699407071207443184354037453348400084880333330561872967471342188961568310097945477816601913085841306328335767399314165494502407355705826642049869296491622856776326303090493847341258871553679716624210879281643670368832053812628750632267204616904346529819092215232503060026996329803303951690636715242514014485627800137446757808760553810707536992781830426299137661270220755816014360351468256775737685835053159859477530906172585387714145368286276146899082016299610833159179523933476178094308424307129243422460190076939955698424947142493790063135941744736288301199862659040279578464064916997239407957637806909251294793747539846523617275788929529551448784725375118529830965639042253451878013689399300641244168147506039768105932173103992034723522476755903749598844631460161012231880753081991518526142639792870669758022431711952415463968993755028701783022918102318980979281360301392736477003113899951581050690405499107341967887494860896979115184144650455370094915253577799703365737149758602943205184128590568057133436443051574830688413530089745398523937364052630514159282794096930143398150175872507195830059557552035739541250225927350381110207387081492153699870845451966421910119639963328242613662194105091496295442716646813146890825161298891267112660741248104467765902045439691840940741721777179126465071045635816700318032235069438857056727420515860404223231404928904754970930612344267401780540959952518564208433379928433841655711014409017093523548085669910702832568900637321583264106966758254217185233122925778607898282144348435439963567184532440363842774669753811788622281770948895661757613997154356625467808821770478816659019081677572266358622276691511399015355884239078102553400431533097755800292233756987988823381971418773894034432418725624131967274211471154910979860942543300082806147061268896416841337603765128100726045415840266312171649871948164025531920731623679457647358120158003997186745302182379598545926744450630596774803198362043748588193903287910353876109023632277184976925642180530057303613299383971931943007395181835592053197946737240309586811643064791039257859898125435294370284369183289043040658817108002599839155648521304230262856615076948902263674577782855506806545166602176709181615705558703137180657136154105760793719527504485306204429554761809715784047737513096252712751671103618276815556756017207737034421583830703203924072341297609092470100453765133313413969168389833069094914436957716281290329906264053794986239062525813510642390288286888633840173660408170376125480301686954514305772666661517141638105746633797152577919141737123208871830552137544888996731833780737847950074227277925505950934050530788270747049375479409762186916595541643394344392440726400319626851353358288621333077410048451383923203737861435159689811701811491604580979482986082861682483476872795642258812237275710864959707800312491287093619627346451799645307320505550052967932273995487927655516548231735936123961287680727895862959766732454567139202930051797281353805834160229289466852724311084207476604846373478823532427179373982377513002204614102818122864562473863191332851097441232748788401124411517235920013484050322680532987158949094237713566482871502020369585278928699803611118089096202916485139609073333095881574844420331091654642319085125352872274613835731615563372694959751535039514572743044536868226347711782362792579015556563449406987768137020462517089606304890021565807535462049882067736487011288627694206046233486563226554674863756357927498416351025975956679148477583969747126155407704250244213268522351723789113198451440934379207383580392126576576782777586386767123289564814653269679146854520563025657170252842522470894876136649403809924901810901461279989882049825720677934904746534925822069054529232079620840291952922008542120056714267696693668824757442558767785907697736375979098567681753406201243533017693852125806127496637596614959862496302135253852459501585731966057684877444259276459674156285255679542483691897774078475242504702461060869318161647775530363269872402053526373462587658180691599428179198675885946444114848838672533560228963687212305243437056426416060939248118999357858620938973737261844734202293950601668229346668438376893695198912028569377898492778140454194416622277761376191523595253231511598100954186164750262386140579431883087538356113211444069644298378390844419572134963679288291353195773395422815182701362066439432632750440861382335642316430989856643865416223154265821959630990044578424398989552603312956733061659697718700601402226816626083165845746055836310550742817976023779380345883467308053729870837104804799332707346186552845140451344609161246152575122872826085372977635851302552834282171417333542995168301099475300807546663513401096210446342728909563526523840440980082665314762427742398078598613419055150698766012402277905659979780963382116902622387295214941514502220152943082661717786401845184595152373454675538081790624995271210613620670888845350836754460593758627118567142177950328278293430680735752314633390958469672154311556149084774767154945057240967844835378334068676039741513890989728625421509678421713010534806813527245293796178554876697294075948177816745275655094575076054130773558899564372359842343939961657145979595155736766183824412839263232861869641244800056675740972540371346241346503855828913799003885190441574094498008623162300997165312250114741889207590877359736358712476321577320658136267242789752775594503395464643939926522997170818124385546262701437111820899266098649354651377854335941561851880257016457182041448859112530219496049307468534353452990888762696342976310280103472081201353239682498917777851384155187904694284269615000834420138602585603692504380423290240932346471011631044805050517696622606603020701524590610962804766638980252607235229542578985463026169530229869965956007829863148452800795727632047880892299979808915256621450050102134300194868075717737288300294516189570956371826142696115616038702297444236235772255277993001382798989772320186588737332373371197868635119387709246376457007206109769472536431135950722281225059138950641921639632084258880926625867680182924883346772196922479175832054515381207317829386167087198170626559077441265097328235220633905784332381726086021044291551601336665720200075227109096721577115523770163805693645185072816574406153499333737983831927654912702568639231780064398052806762515185099582054501315078838668076001745694233634638687871028307733655072409578199460608166929029685815196614113421782527241789221093586036206548007255141116439010418752503771343242537950662136971893554740736468798963619924828235897008321091388011620353906332373911907380263711068246404116569648349686736461109511245438687721671470300919401519740201873503083912718220687384780585488397984449153994141564972077354961151787699648786075897888029359454504212207033879525417925991608628090307101744340759023570487735176848037854481286103777042843067970244721634397412610777898721409600337354880501947260772039183365080823567097406390255263803996458189903122104727855516327606047607422301379758065130185918819360686987526924806863016800696604930679416471555562836611237036966046869869525093915219440897916756135749307363458952782146613406673199572044650897927126947998347021428187690232380119688456980817053229693501752064933184851424383883038404421968332425093769514617065381245128077401228652992990794757601155708710536993504004697043715142948369119438140323337036529779805058892995172692165904601735543933656223119722511172860249904174887223703526860418734294716262558733957929849484000510681244645074678719697504430891704186006559547390185148835156842514990190903907611730939203205449263936531813267184013401693501408119605553304220861208670894052222981709112064775778189621038218714741458801911008362402482769206771694829084390484518869867136271525483471360487156761371833195577011805548229536174506809792499582559181969863695808698360412086351533145709393411511627817965791275378762470360353726785613658836966024405793262957101170658386290874151760226519032473150837692555995142667042008952846217510273868091069746453236411730249214751334968262472167969507093532065530101088548759558731570174483794352636710798352183662608374180352596420986204764908457384444439857639706404636858819768543737260027743288989647671049431409763318249678764835963084278965413887664810011548764675715575810452962657235753496515177943314254968207037342379407367844631222768501876614436717214524831577947944892226979590924270399047159828002337275968711368383068360877317937661765955715790164079869198232673965733408598406579404761147438692683047627756730472116677997341531328907653584997786129876446159737052474269896556801256910992014824018701280459812657500714421749833229839126033460905577039903012725123379933256367112955922235104574210691522371400165700234696931047300474852766711847106490385934579367338940632746662108498525960601600026236678086504004061079984273181929453525766591191186736642324747858741103675980657973003392936581953345836799920299048823512791868601084442490505982096654446949787065101144696288736464926461742346080119218915300825085600861542643206057029790683578035543576898363034828359621600651897363157308004335031192961712452480011688308007922392799846331888243211009035643639200781909938755485369789166344624612593775080300683656610958885666632618365160338244809256638875198510057094819752795156335480662107977557717772846702806468691707231295772899773356892054893416969219618690741106548767302780549985969477019493657636592127418322221802278068698824102986302132293866386253949857110855642921155045465614500866474141726285643120050088208625492723874838368042837765890210374491072795682815276572990891152467199570302206403584507646204116146346842542863634432423882589489154753045768403300213525916822070755228402856127977727037754092450343915809349953946138829173383316326800303967449915484145858710549323437763611208673490872109992100194648523837888854375349029489413840705979343838380879095455425521635690214558294439358991505028966886416152428239038372700087976467563157587459255390458722760048839673394871426354074816010503967569676261858766278664934114771502170486666001928400835366993362756579490017339111695905060376538240098513373569352809579376323926845868190283813012592489003884102104749612075104474253163408865720780395226342612415747746072387837791164587212521786009501009316875144814183750486414076629963491073152208295996707411523022904175408108727540697615671900944958719578885673095383885170337072191979981249311168894657876854060105976424131087620595024106767522931609443616625125611596156642375659792707896043567325319223891135350257732726120497204315716628379529234688673411336583468032857567040228481066541790402025947139693767928781166882351422421965744558854643489128872220280654495483017710911314244869701908079733117475465960640219481730320003878024502488386419608111278465997585751437357034927349170160255644200153417402647298757118597272592561129500149715841252040199100765110531662636358384893598714827977374807516817002797742393544258120914365717209873374414208325822689998151704585864908915753660012588271623806390675648778693779771921373381442373638579632959449510893188358217348174009688979325860109829674240663695053382579802039832211785114159567077995883186039524152793604929537735852614802287090851468349653548777180071714849780162634811604902490702185230063376985448242732402286696208969922215743528370679299479744995158616866173868790255740918414592104033640005278439633560381445983314286764575213610064991960071291702711983011654025755435750130762132666652161290525733795958507155677699734638629035202904421104317832315586833564849454658158374651585608628224134037387776630158390665631811411923359530208551193029950125498680622803515547687222832565510306969468438565069887760121536734706892124081072797010334482727339295726317135416329788053264384960293131833426123207773967914114309719234288077691758606710826219158256131327979608409997488420470191656409070025398684598277170558906498810300371801360896888008728719202439544534386939592049519689412282242014978702066398846286741861649633640702221201852352498395333244663039770936822474104663724032463961865717687733708801589234206146069053685580520389473444742542502786808290437769387900533384591082569331099482608591139534168114947720349460982163251434832714472921936425162368492719531652766698063426777134629584409652390726633530754166235808905381740054213704251033540278084145577901804480522517746445591874165815939195973227770474733176742028221047386999277363113172452502608692401402418620442910105492832657935403273031778032577155472410603480071550894392345521451370328937518309253307136097344937219429342985830170055545402045016164585612771236366032061796113878555258707081943666356206682658531391986314074687624676974380822828505446138078071599592839943853349769095157112934267959744943696668593542112773217230388999482744243645539312066754601892042584116375296188574920577629456592519930024127297657053197600187694685061488176919143942675447467590678082004751021938162247153116673707545456984857448321434255382586612997765117310093658414190318350006496727878176885724689327568254079551151382439657360747224146924026035268752634000900415245560527399313902655154779524483232903225620466824291846234990313857526199378187813419636891359604693459160652452507799508745330738401589646559148825752776442407641804534849313075002760126722982817752299540271563482826659000466273568416489855679492238651310421547868259257312462417787263706271383138579358964279608239906792298615982115085994631554087563039020627111335100870210752096268823584204983866256569934590518428647625777180205475730501471133912710281997850945447533666688689287868129942153967582560912977749861596760287472742216822862759693756698141518416453479733944811900258141692789358198786901530757614480899623238843366936678331861791934389415303953026330347356119878012617304868902234615388699497597825414475984776040768939379225887621093016295481768334456877277583374759144732561938047179844778134393662778685269109799764028777798980619719596569298592529106064856989903849577941054728298535590028886605047837749036702246624180005578882444182061285528139926201586496735025542946390192233660268400158963684421779976432639610916077814033605521859152471463223123728519318532606347867813794810576056574112173539851407309031869797999340811741307079292819477426786559406959754342681524029254035715254682487065391169780640600973057424124004854872522996851953032169187307192352557967000609406189242734048556325105263600471794892130104329122921965938263664182276363018352200747053967880037663050539129786369120750229438443363545328386160040418811645972566419915140146938021720503475147303530330544303664063168933762348429919318997700991423242955215561253988018618397601360214398281229359677817597600185955218943980602120445009710323621834129126931562853503339623318531417639132346863422989823644578239037711956489684556347616145956221930370036480197899684632546319655081287462107259224605429668836778492897411264315502726669925610463778098052667472182744386010434521706065160132942638136125872396484274341085785183478960805039668894801485902582983500452998746885516075429720288264620012508341427874937198139272846851737610320686899322538797580548288301054351542637879118306141104323650694489313462211862004655746550124689919500333714479940271093807461069461445681974732509551170510321843795779617452429477725727156684284681308430470299258465713137927235783680030647641863531440630898726213532728185026002321904268729625215478128293852049814366414744731036411862925778709985434839071374883535500315464137770228329959277669876189070371305258552696685694245526725511791831765995346097430203382599384507449781328458502897759734298983597163258718069692704786104043679115361865457928379494669085033681597922476861362931446313285641736161075074752073370144337913757274984863580591220996730178856243482100079378148491240418126566570734414869467357519821660576190611209803816646249265687742024586242915643275193755186959455933856946427155044075969263790053458336929773972964632352257695577387226325589100080585653837098231511131498296705941629133698537430609116539448687947973095640214920573669251105553522051848570015521151171817819812631605880458116609681530598423373843654345273116004459424210089365132959002077742941474627853418197329764229729061572567833326276706676761329350505450958108476077356954447110370070343470673247646519573642934109374635981223537769059053065475934537857284318182208741687894664039608611765497524747788265703139746273864396303544009512039346294085847892284523375946946484023504434797984062570688225921577650569010788898483401296628991414981424651988520212100005903514485922314423925008771731643097809570750292688730215812771485779319923553240125327581281667654526677294217059653176165673970675880029874749170400511413674181468616235469463409294901605826993092655955317961538601374369853336465803680921902522158856080465105258390024403867525441662133488452717189779652066479892763991717858845935018336627487705092722664699977577939034547741262095787422875234872978003315696471756370663489476001157665685801195480589212298417434771835546105475386291599658732175976323638104763605586952748246595961622555863607799507921342563921640696543695757344082668255098945574707759666838536870882531152545917649071942306005084216320621623727470156668297169708279970265413905476114968206731732117268884334948219777626702545846072408342981833258636763780759941977674064843751117953259248916984615787730641358288940741112770544861796619310756292527188820590615819372797683306672462141918692033429574568015322323681038377854484295474534948341400538916521132262183438691775836897381887401567280586615629317292737629999181085069866396929267962901456645523157307305297674377970542450951480732766087322313375501748924433141752735612714512678474549283764405740722508573849620080283864289597801466995385803436541794273989491890982120796836778931083576767031721386875203193742542596455887725616812899687794787641435879339957762186580004014686884114853610776818849371382048968736232313778888058518883938985978205695582333580045423268158055343333922551053875305109677442299162172884669331676206516094428032865494898048408458095859832212636707163816810727439229774558618940028378400664669203288134045564290028697952540514223874307968170975793256455828924077880533960991677505313165380514716458483028177010343187503263193323346845369156359217964101453494565287757007486169476556625700936991646673225357282064144068104238722961790646800900378652543816340653225089246552987134807602416364121894021831472024196484026865197653961081561875367722590303623966901935535876664133838976574131515431936300029618677786769839092660131685995489968427509376345790609576228201720915734882622212250799249850738078325473304306042780726915859783958794418534218923175936879061250393304644820407236098857185186205945605265280165969625960337509364074824379717925581251061665361552830424320602791134787072427893209546227790756801286148326155986743591087995367930093847852422052455628248007092475772561957611481026306344974558490976986404943701162321384752406416802677292265695633440284243694995408836380758871224939155751198398659378541345232714139849165080226936413214532726933743352280751178381086046368235749792370694534222844454803253483420859485488226112120664773622210833232713103059493676410942288961908176326964125038210652127048754087941745076178154498232479310666836977500590947550421213726609144474718149680731429629157186775903279638519165553356715098461167354629347071323481213752918117199469077952635106080060166965829695770508671823723458879590104092877062123412323291979365748460058920941996191945443399808477348331384108009409781948868901022716348052650829334991457690122841600950728838051431080782356328778195452582798354894801888490593842881321673202602203608107560346147638858243097675678579963895061110669294870917986671394345919096257761367823361637659179744182677231152505440142618792695427273391486911315849729610311235255732002406407326566485856502038926295136699735279090035055624188360219628206667871931743847866806568008595616336897449964574335521164774491269112796128847612036435900229673937805272844259329611571579683247768391195827232652593042966920691499451816645122410574793667344709282371324310613873623246304814524477181175633639208616046921453783808568140147829737859499696959451552725522361100552269927982985431178488143146249457183726556865329596253282246163621512149872696487676415917691310845490778726833489219553956867781855564273015249377681853230245158107205237474603351014280417854176414457464577425591699703711004995126444218565237038684461915988172420621119980315162813004541935735004614713552211779264115196281710392963793341702900994782291635026867123596679319670781705904221055101931775734471754718286788644489878319308058204451920607779369972759338769964808030434083473781963294835333946726736360609229947141708850382753898322592805951487703166432619596308717096382758934296299384110345692955084590921250345389109708366481720118921061725237072550617032373208936602129109477008704168141502938900155975890734295775726784262240047867011221083348107104430534175872098006993633734266353172834677280905886067489738708181882066767168824476463578620039215738354841794968191256058853992684065611815988185523903215344702843226064157593390466143019362016186831536016408718142384003695437755539236612472210801591159709311646994057496438234904857814662751806790122210019184883707428139477890270216561610754046967936868494982942828107413244968968536911799763954672741649048344059772472164638142681947837679907281366102897908111979806447859634628392172638496318153161933967619404739410170354785782079737177277650068218417452217706601218327865452524517293648831083064890768736697161774460827865314352184562891450941214311308045794205353230979556921547778665285739383843342609333809401416254157080832190783726465207548899911637647970121759512781475432299467307154565815879139335589941061773199436710961895433712740106085936729277117131615817012151315764993135137463815857939663139171419490250073662933632447938397141877389667712085259171248990416424115671676293233252980620230500192132409719462273790697359513285362513110711330381924756432856369565323035847764557572460060705182255407323460022787779448644015193525072537343639568675261887996432019915947411254389865633767521801414235648170831194754383772783049541627352659462916713569451760498198935318185810292703730257814531873871830110618821226367819281102429862309313681156787874543939068786959076173272842683799415303727491328520685105901605670148891932683910369651567386469858044949557278011989648329500753597852566288348842795219729786521195540190880007529301582926796136269272544442378943784600309713665076432997278993091411637464539551997527495303338796184020755936934328955196254086029280452876668825390509683523698500400013051724787457802082545169559411106130790344098068968317109853901608300636220128842745112918157066182283917581922285994910076512147852444214151005643051313024686617718724952300631890270899792480402405479402878928943646084577641544315056496527192264698579673218250315479510181475449393110900164425779955692820186769798195546252692514637858098425777979491311662163439588477535489481982427506588696421104145819392510006724621181583837877673072104707316613427304345940057151167541839642875537784422170392650804054273048400322225769914639268608730123704505710475314925773537647356901058055448830165842749692835057303541334997907328978964862282285272460664023001748953044334238682034897767293431398684478496392651027974387439065968911804952742669668674892757022721907949617411456025705177612864547581647674271446758260595923083703423734065517778530746630445701852752410834058595370416131017318173413149986063031690971774018915074262334066361605178917932263464022669122605898327912274822948942706805498565344134474054725144270775695857295562626406738406924053829320806849389479215058079191892501059685636606517648929258912946395580051833423612062323319245373569398188503510239232249170983723444366751916745704691948996260600988485592561846336854364081895909710099041101345840027420314360066376389300564537829628627186509138324983789618714522600924358308673730188531738582711896567765278762106304367579600182594321002789723723786058884993352801090182336635385323027706109236501689875557758322634408573019479751100567177836842875660608390902160666112298912928995011922016325797303010586254033619680621345637129654712746242153053648339666912459181027307446578551470455434413138861384503026571362725193489681787102206245178777994974783046803546710184894291081148870716966492199032324291429148505007080315915714755699449634040641910651301791437243286187743095398385008520933904710730837206174720707593306024563527295758139118327024065233886943166291326797644204607232393984778257525137731937996826044066741623248466168401877743038541810108382069070274786122421558309666511648719806523241504316628939972802124426427025206268522459229459744851207928350289095926749534844825227990444282946316592399808184996639283705058780255710565842299398998888061075465714553531393598716601048040293837508290634656727395662076280535107523731308807735050669028100870640756666069088279875647347425107170930326966124553861439443572835167398240919436304113900168576214203398941862239569275491723842486560985798108359390253245601179538814366091644321997137283415153670467030609035314683572040128477284059517359288977678162750390757780382599400431193968452493658879071979102773244920296415610938075773523425382923236953650258919934556913198234899701951298258442854118488180254491786332104830260126501269053430760777097118562173511065629266113232389420081578328085757440553193089336939505739312751787465791554209526813276168038114737806031455013265984116563763030122890610014207409108641988600788351796629226133563067633342453477391049292130859838488124642804030923826713898045720661841996061201590633308474305404764081193576138549150588096721457909907751625150616828479331220638888916694761262905598179061382887056766077111150271368241961897184477491955756060537188515432103731222822064739783414089717483967774250911174066500064627534878407285487803261051923577380547105313699309136110014735137765322834559062641178638999588329766552951025868392718328860408602464172462442785888892197000516717758150862782545763397474366189056377218510828541724292605590638723610757803620455346782389287730733298528995776168743014490299140543532719345970497968749709122941223141500337367848841314211701305820334960110444808908883099160715035496719888490967998672109905506713910311031458916676895672451339721356213772145228940933461506491374450735117462854633348097795638481915969518953374186571146754439525306393178504244235984977216928837384314766448802044922244662254497037573931519336263602456777154563611510919751152037618842576188846463090203573081089029921845790432942078524327775273985384077069628586270142667048988022455845023109733337534732236948848814417669310618099098466640252534938337396693186966009625004766037727146888423105828702874795105977726747910509503365823262018368447544762789834286990396137677696910625776405859486331605511055386837999494069939991893425140411213710736880251469598319637606636297568636034824692240953116845970850071102594486749163549315600634304958720494642900385147734395105601286662470021664689504158164192776988146254433215073933454491027437138232994898269852999704208818730678455581783814749297782500273299070211530680588383676783564092635508106588226273056796465341371847931574720361780547213284420231867749441981979326006394785184221797003449141530004742957200434822524082864677120876761604079511702750399327044227939664168617219243443162454415371883080976242561389051042301765191135681308204595755315957413521914947964734048404149710565025002793543651173113031427291134254909358069484165392249417067373005490818772020417586014381589340239766192675899986747883429740567863788118711825317961642339560160914268505908774038780046562398052967836816229407985980711105746167620528857727218002427462209288105171068678004377147948242452272649241218581443398161617917548364397820843948371775552382311695817085896604559136051470740808591460598603763952321509243340885244719422814696594793076891056609702786334206985891830351004347060966744442219001609455962924056304152828031370886331988010005553717800203113192270844814606250656302418990845760399096303787735811768624399050038154328399203204195602378727271062615978529934999493078449446254715731417608779326787835322269229689178090820482698628105285876751935869284020541706221519107214429421019541811879508314705262948935682502137383754303503718225799800385615282992685375919616246643465602116892077564279705417604522064240673268352361252077345109694102682322259913372837147748998765670643471051599425109585660543891557482570359753537654713576319393877193442457541513668415011254033389411439360411134330396500589231815595508020340400564211735346522431615608154829720060330812415169981927133785979316992433902681055789615931081631408594104614491372817643349628802597137240839146213852421149703169573206540818315469174836839463184904435933277455705628385533333941247662036867416617405388040675212586173296880434951699547509666205702511548173855281282199368981714438793245540067925710017586030222326203128727001203668074623605946216805615054663946394408760057374274115433863067536671049807929817712512317052538278244898243879113194389085286211333998901144409403114871712268130830075792410259347942502261716114095893721073690472893683618027142631175171392588012415301070616094850493151693011282332579666703941854800272171565049516393795737443973809841369921888981567752041335590819139506473763047166000034980862880813291086663495514393757508326871295460259254054056862181406108730964699284078758307942684803758578046855481299152039734560226838481757505792677040150285424380395853996972678459450936602167644818959214777618001039839422071874091305661633140679091819987229999395306887904419073107112357399244145558125816928086067185202913850269994305069390142117636313731460738752523261012019125492215424461998879168423132989191433870768402631809088187177101604414655986175668445437619520243420048344778307972043839975507474769120208334900169944873517659320105839088733130444267406708560050435325102108019140973121247384293530284104246939499100261656160673392544347084833705534006998815198009258764160039246009875487126693645747957012293744697435584970003432240268574370138818844755574148086585648040750133714375487636146618845394438676848579699953461677085256900138212303446297318685730258716433760185176772837089599527728592692647926280060351992641128132569498022959248769286869296098977925553849453381270099192374225230522110690174668797513272712954736176555499312815959660132723933605170734720056592679969340726360971251138958220301782584848190942614080073375585806892420807893171357480999445002719123702639162062502913073546521864024298426494538016626022958339306384154920999077855147072638980743493526893420070647236007793871803500636185936724944501319816859118717929674031864459344913806040825753353566370875337661136243655923585957835388387591121316309730133649658059275174773221014674409828333102386842802344102513596171234895130634271801437856880806554406844115931384765785510811475958662771244053234871033379166186242234384320383029861987666790933868488393647620004706000301569109152921367360891995907923268270232603038993445891332558611602172469477420507943794863962298505453919680219736170977016371921861942314468980391428320704384759377550514135257892647877175617965922211565489993724152837667145706186495545898289784288106020593098639768456582157437910128200642114778839166360206594628982404508512492760349543406889767072989590197784564248018291072863763375793144684895956582053885650794440803536287554610729869741465708770677310754394371257468682259851957415914725453485755614606211518324800850422740021705563922087033459181554013363084059623622617502775194177110051129993676215444516758448105640696382760063204666416110203277902531226191552019600251055268235148277951100868135898811477858737055394829641241704517340904117186598683258638907929577510672250053648719055578741381009534374249019137751687673767772452589436295749493656993088738225023617176317520998784670715306420203479573061774616712975944656037869893707362761941239880582421903501851297135245538367656752348796346570250040654528964011133190482187074263096761872874956727679571925285454489343821500175591619037258745663888332314817015550309987625584078455998881717595861483919473297800413475134911316135419278123713036264292945604301670170375611204862637022206588639521105636414315837264252181242542122406548484469896635099316938947680432830713000229067953737939857392162435635531905438676333194680623210647465105082366354891777736016473418383941215889030330775742068573034168022011760406351003125949909146624825946623722572434197567936070049350294816437637367864101612930536417544420155977636218190800054509138277929816433427625009005757423276393338951788250653457541347397323780805097825092532961939048336712230688733727465964246226420309664485128590961669047439662760391794805681397300889008641693187433361401811817409029365054938544799529233680122627144383050121384759611952050941427322496811625983497131878804009336423337870315066719824985344775078059609498878832881729620770243826226779058706517130945434504726580118075823060579776663124660521945348733599644935622281426254382883378075359614525038009309281813823231941001526486441149974902053831724572199531445940468278885409362596494541208163732004235513653085853351445657904770904224988018297605823294223743763182773134710831542551920599178498725683634210719570281106664638718066112004118599665817702008219466710750546674156579780132799005581208067279140300086764876574052048035506656230768749876041837331473273974998974932218214204812622340114611084645434742036347099520281163388593403655550597592598275064320014740523793728944755493875038382730057438199232254387295013574823008261581917875597780693928824304305590100751923171271527849033109201821722293688375260799539035823195051013091159943157356389939103632506391066470856624429423451069373975955408612177095554014490461411292744399435782254938021495740393036436521071301944426033043235726490078459087009796287768629837779896291350884016182491903933803328255148441838499137563706729861061055737833354071779452163736042324776984472792636502279073030262407912536944734832520671384225902203546649194475490210901811085785271768282814658228675400554125987434368282527390213469720951641561046789112985188164297849517892577563275253765474799203464277100296876126747240013625931242634326861571335845825927798987208463116989538626616039989380034761233632578056669185837296261169096089609598756749042141432325617077920641410847465895520989973974730335805639751544258298461510275841214005332042788850433815168628873101753099271378644912967064404306682670932055065260846316775688976896188819791991890733344153374430058025394480060920950213339894202764355431936295543972575429641683138279756948570071439194451607089452280059398195746216726347981051646329395771635722435685492442666124409597072163400799522195861720742659483224482441768231839177848137927546505965567910733999833123248028485462496431417165701270930464796256054988673772377911642841729072567918567420122238793406607153251384015458774968727079842608239559953463399156041944021819824616027597464452902101363057299504825611733037416897983479243159645506253912968919736138492431437063417715853391524166927157109180256361244644501858084520273845278490470055624583034007602451674216312361714377766977885030684023423361755042420831212270482690565177312207803736225337270234330481662379129713806461077422034651119846649583160806912518542320790883953973565970369850860253676926317869206757091873388741304364308466484751083493241120464473258691501293128354718523331827433925378697066070153644582602585295731144354826233838737339963662770585213876799850608591106314098413877335897684063963233221889955093491145541600133867600198315253874467245319797364093373500597331395097904401565061866211041774882664838041310386017364794383935295544744099367572981126219481091170798713660256637536965493189183207657590885231123479420942388587754890274182952269648687527445676509733090482855618189476920718811527723818569741170229945699253346425187155213971966989481715704332990477706504902744884078089393660356146669604187164242947093247124148936618990708535582129869972792865612261997977692097564791226893605942200730866085349553023459728647344781003707139507533690456834207362294204388288239248688918328515860519634856959442796747250650604387124899953043906575180052539184758830071967041461754853810149676551175424255286054153755709350180973040945580389335903113859522948349093978336698680155847623968488812796521175024205894340711409086591449969213096800336718217187445111380081653260046971237889262774317676181011809278525824577642158976044840414904079910989210793447257799683536035643992860695802115287898556673264266646823522608788740402947730190670375191505049877118627839691846811547945043551823778741046549866870803008264244374855978511868191517843240712311185675970613430966981002202436288442796707792068991738717360793327453787282576098591587267217899943193051967162784749447455682760997858884129009887071908650489529986878960963881272171936286636636435625566286566018407016285633564752711687480845218087485462864683028077487161867415210512149505026569257789041951831363128930399874317181796633854838359865159062216619474690814700713381130511939346993088437678215181694013577381769427711935180732228491483542328917340002495129331658266447524163435279191916055509808604469671220986867873027073528416852472459015009495024079583669336947263154901057639344886467140817448913399762640045392171878655065411011420170302030695728496772876134143256521024997272696638669844017358463543575068197912814336975301767345208070637718134637761843869303568418867210382880725376124597903519660309603661995146433116968218362019599795986931406580338492286942847994784707443491121291368493395212767368785596898607770921699703704970621681001969195840454394729155198942404349428849703260229197748456223201329671774262724732281775469358250710286281330344575206403766743028338918454556551773978782449203973847658918676286397330504021420358002538098199890353591067451425939590539496723348324609845410318149521262369373464510139478307968899431701617356983166156874544682333052367849728555221628025437978751491974798119128114405433978821638821923938697907741640468485419561164782685596422701627168816894920645802666341895941735658457246598142615658072795357495931873718901385612572527456841298518077513762225331384279685001671643244793347203751911218747587718567763174310823489683155247570867031602606259935568508739365910412217385452773949250206273306569329791612923013598357058499993254341476052786726067709510080848816994813503637242179754301270868096542177628631492004382946050343995956764179551208552498556233915588236662805066740974205193890686279640709284217210427106208512492892572994247578093602334368781415419939015745732149104091725975429448018301696719686073005263379298620694145608451561366628903419982880521235500616608399538141024007197292476123958296815880851692191166469954084700764820034596014351647676830916509119096486242901085990844993485222490517058133502731932388059301544652157764547493720680555611142662108466382563954503433733728091193740234255929950485280154896628933059944438149385719447390389082273073928090075973773028432872415934889304873172984632947609522574724548353075311495056528445963494223855694204459425884431680759061235804892827054677031328846027935585091775690932991205897435440647328615275557618366383458443862336843989663670716645117672184346286215431051197690070565199230971327100368351329680692324084133924240598081892539512306461955347285508980467555201915179736244989440212755649317613599604361481615550763513290269802280097065946112332534781961844941522480573849174461946041790244966707905206505361685351221084226261368876851721491075195469879419403305234148928680370013915885159899766169737768473134146360625406617402963499962852560296037364799136087400337369405871549428713143590678113954220083873210240785205549362474574855019806279341573945245444555134939373795411398839792997591042971558473301387481300017476319208146435656203851371066121625605348299048533770287153897946097771490304602561767193642576385387966232093755549538044760676745798740189390182030484500456074387726965941128130941178159252406129170985511534904331943676131507913301664912699192624126455843927016585200490585219276951151532323610431835103744267979721655056148623537106542118153594229175875487607408058740573794180120104276601652185058651472490754279604752147829594307225054116090211800807065076021059742483506720547948870876634339150196841985049838075002566716370631019578911289768062381495899540970296214781609064027356328321674084216658592680449634411811278264775002172965931593147968156648991255643284782011387232614506880263495608987398409166029521959419787214771953777740260468676854356054529644957713334711171537840088037848701050333880475423576152295033714421533596802669888739730100379615829626404248194782517089055199783301401567307253270464039861294777336504274024634027914484779888332346408270460240355006200511971925562917256098955205406884737187914765043522186294235690354107030998339769879003726376594261846678892313132798291568342142856254144054007914746275632188938927879134614073927334706308460449443944568858098318916314893987340219095669974330700480392632983325603292287060723724563285368774182388863765713740837770183788098578443562228918637799357688855672543597887242371498337795055298141444835688158042583409361316695090932975771417464994450944529023665429581965224101445703701413613728200730448934591943550048109372359569709452588234295612713443118567791919838583861973817107714074756271998349218826989823102072900193542034596688340388902818302919835588886831287653188823183456908198724023760653619396562485761772982220246670834160962488170132095181706176821054401930181050972339643726572446501976300100947093950958489925752033378135925621794042303569138388461416044308861892234814316523791514713947246875925865886474805239746368757759303876595062573136302074011509172798793713852862853650740029264704776079036327640425508304698530495264031958658145499140403472640444008544479362682161011592981100933114665051675200026695914257377464053335635533789902290671245424530033889349936522230953398952794061321432677284169969071395723335264034302971052136527384704155034770717715712905687020056332520749028343439072365794962839549568833348224093361563493037849928329990199459791339187933823720549745379681235050320898938350566965928914605909767210688299996863824257670164497418385784726573706158457357915712970083212468696851924274804514409578512222996621931364564300654819662876006105638066882824419131076477368616180147274711784298498359437761424956975239629264461746177055249682982760831303347027269666453274115650332433317681662525917729958703053041959954454308768370119443005132848922699922814013937088613522528561873103183285966556636035145183228396404310175149606991137809679758919357430989405597426150677839566507073694139660745960727042109606650441724771417160970307008798741111787572932333754998952509917094885306897160267234523350576118216399147918469111333650061484821458409255016421098508862427654392573248529378919815147049754672473430779000776350612592082775426680215233413650034052519228866665524388359499656568869726543138541576902253574066601815155843807773013774390446191238318485644636532834311879838682240452076871290995876008752060349753927459812517138214894497279796616714253472576459409243867164116334091195513434507997702621948503140163985782042269731242033969795541378679561064565406004389068189126472300903820390836220276417465197572737451819070426268492662028186024162570162226615053762602256093513613703631795206103010100423736625452132684859842043438602787630462206430260476159679664902566576331494978534580737682115536196371285824119154992885131223738921890419576713613535075872658284119952319190869253231862952581535959207670075719412873723714373142418413836492286259347401570394650279940778772000044469737598002370461470384317018628244684425144434339019026554976795648401866271335013857489353194825267385431610642677435847193625092648433845737327638615752059469413424939511301870367594989792720794193108364077193652225291056732127018721568338935574734841269567508394504302244329080804899828456533104235558359790934255649483756280758191888644669835199564978092560514355177697821888050975855971536076943932070674275572818698223200777016677481408870098531153367628616468695462127261633707821239015840631702020311222462208087986207187203577273071958928401642389855261282913343167049017432183206194714032923774167861599027211734898185247212232369585549634906650611885919058437704964817355360710324444854421726433226010568134448881340167168359906109291798130816139172229462621035444415467353062567946924034903581176994920512589339314573178490073822750164093477415574129562698525730734175542464107444159575221331854686080462905987013774561011458105808493006234473645874080753804677957468541836826256071006560492661971025619662020354668877492236377936648479333961269122488743335000414905975613156152565545570976827939593403893913184215543911795085296911567306056639106962868544553437897484363167375589938839231188863585090473471715777669056660615835885481330479389457870637202263779626510974566393338972084068618285834206979869154524958160336509597391691457143798496691002873907579353216103042952356529484588176582827396958312580697628001161286101792744463448463600013488462398002287917716125954306785939320184428916073482453250210698099233872090359545705404855152743006426105898072557718984577653248139519494095034002583645669336619190225632079456532124030625245982177867469819890462275408346297636616232118245835067166783241256323071057233092495789989735112925655072252530808075855137380714490678637973885985969599561602638576676743509833682559985461049529735648466205626616438554504502225141415143544187691280621160399766446551859359224610825637863128383715978213999559878250987177341960340476454874717865697430973909830480616688790114759007224489794062037184276427113991876267458834780870893259220011343337628499319865474222299213596221757991956425549083821275772429550952015134894883960475850563691585557882188425925637818934196993983644449741452645730107597933028971322346028024107769743535818579504344789831081507857589171763283069052483162473627483032858362161995950796025461828290020697921115143074510762630077898585939280154021352634296976806392855412457700528543377153370075336579013274461235324164956555030188536246926176557385233085629459392491050026074362582253783925195450482203742317304146783292705860916350859384252049749970954265995148955468716035982375096874594157628129114450776188785467266440646203921632110136108548620757627453879672274167180420812599835726424370423901381181477746491739604860470391273806662190212077217420888632060548800276236473372315855507504208807356504940981393827798108988613495652213090620228095599368055422431401037170814891403551320054232161388799124964033978654170375262815879906743756816949925388047118190464443423995616779596665115318201978059120507228213315514115055033998983702768333340197198630524715443032127891673079608655383655238941610937715607229091003907972911143580609267930965956121297925832813847540707066420125958010383569404724311609737283485435025345741763640370320927016432789331265903435386721790049230962682927894315738201324680742967911171012175069087590726031116549216442391137403275460159977220962211926568817272999073367677602518551596414715447133143277231581373805208825439712850664402701068426527377086758089717697402813372953189889238779570736562904883508244892975736658271263713185218678122466748464332357758252232586917821697170895090382832672867953826849764787338110058822882564963143896880435560297907198813205830806760626377954508023711524497428187039097351484423530221065016692829412873166601033172466373250333918425026723958865237786543860665966902666297413341308679513581177933086442696507140947732664305306387011503243152878790944339610607506829063660007109281158552481727213387778370698950961524406893493778234981906229860476129096415971044133262922316260903694846032206316958107681847985583842975048206162536561016595426553773816599866461695163821315496195971088270891945688843902719216447707120965158986929100750173143232693259631345217865300038580336181896053249856920317166887414899674435999901700681152844802166252391834085683022006840050576056789535949428495035853040768718401932542360086135244933014667564965533211297859215317183501340414043272094702037812221376966438767416914791813282097947883832840506270494726353231575522443153626320838992811245683984522614459799865358599327627538437283738449581336938353971257907930333798164272394760310125475703961043313155661253579537556019790111626609365672002278303091733765063061174311417108988321519674614367675656435021791580553093624816190465271935564467998076135080808189676590422781781603300153461055892967041453636275305252734847754603618144474707207649353315395878251033811645749584366477112624456714158972096845618330122909080036332524417540462548056160148324237116894415312193210561993401910689568754048525082330224297944587030127695172109856859990628442121493813258621027567219138650874807489791723707532994104562313152948115679724655108021036060792687262639994254755379769356876808225343778339902417008237930279412046166382181057583438941099465357311749026735398179442837510803056452959442832855199042713978567892042747520283978228685226501565285471355756132073771954775789198912917013474639024334538955130125097374940195254542447661489472671361070515161712013304230282133573649464446201789482990762981945874679820381526320194084699572411694080295048738690163628965750019792642390312820098102818078435298042104658520741043313946515266387625684542546580398546876934175414516917355264531049382050588686829026597671668975529822596520987761014662809371298175691339895297019013539669541943813274477722776813241966697910751600170968532513416394824867191807050283647597163607425682261059683517195850884152545351410611449332063978121525927037818913404927156653498688462650565601942072725013908396440268459630397719995214395774147133829939727047594245000373621170448304055636345972931765243709598283206648961960984255218047113933102920119313358651377817901883449742161318752716884134432948015661272404080642933372697756966368409382561111564857700881956607398756821590115162372349994577885328197457269545090957175148605275844573004055332958056884350739189219097857536428481864144730411056344788080727988664182570616113891726848670141324373533921217298737211108506458961274551802269101261744835298324873986269455906830980110156533630073755606909662967021720373820730129535182285101678670533517790416095898603401520856192571783174984683308370144019845324271647963402535114970046691935114422915172898528658937983647715744532393916965567162501227316915410439497059639124843479915307195989816560671330374300014418356985221154604395934101782929166219184558656892073642090060688653358174765688851535498917127479020961492280096988012689843740579869504011323513364896854066247549159585161329773029790928018377632296874712141937915553440973028537015259567822121109112469301428216157822238676702633402669994258179568503847292137636141692679317274204767288832177829598957463854502335635771634591224397024975362176823951538714730796143675341575385469589035661113445145623186863650577056511086499626510651734246979958315138941103137489483445665269278758622553931416488539452333650588092527574220383194593033282152139451272444765156890035727820415579459591969839916596367556961367694951134187529684720802367289258410264007468260856096479063484862630085175817068269871835045855022955935094642067952332844655709453091142935915045697879393878997002506378976172072667711520091928256460639761156204187468814363442602063523212829655010122670279934454835101689270623854003785397108951677054765708070027583140328055543595100665710183862521178126678538259506197933897248702382113035848155793391467105849382760613879541166011945841113357468995536100014416040981539436576660210993427799988872871902046032685987733210764911620730778092409539868559250032357825432906479319602167124842254222514714484636045950654478364638105221677143153765668953368744754015897921203353426320112500803458664238390604537852362002720049905281436979908158542653134226650507499488810681183405460585257223409918838652063607366360220792811268128782065866488711129909478977095787035020977872308780451081789023419801259148549583053937881187381273878588289430179814594251051310146274050337724317075360227200105215608834178339023786283944460355825781263940108402718596274121662786809028354395624664477478396975409323897631800580785536607972023196123117735165435250420437181183763704013314516360140619116767470176242107446575981055678468249762103068843428821971210694192611984283743810318305530267884985439255327190027056042016502152964717340531664934227051597217657301675331113664520944658358292002467595066672781962083371613943468303642184384685642197471408928818501914733357972984983396362212880499147216729408651410363709484194866192404839239095451512840226973551592247555548161782009051563922107704223515302805578659247543651612976834984869404751632385045189067332529213332286736384188205899086687808685645273433063305172134413372484920286580624867902717752598740894299873555491537724358359302816826700257476791343851759468117768701105248415810119024970926910625749951375562781195272815577321314139456415551990553404468913977090395116084819367723565913989304724720793269330838598989591992484080210253711488249410434548913433546748788889174557848253194770049343492280654081576117775315272340406110812707771924308515562145875714789344228335165446084638793651052895676585219476500369392316857169340860645205827983373675911650118031945664550598596413300881481769622220332349628609116478590406288367266892474923276061348377009585137405422284516782224522817101504064339479621480608938816922969338194060787369690040771812485408425418853254726463490136213231420092190588930846551016345832998343730002066976349517140951038661592358436389537516074115667403744908736529719252112339693927919336486906300228282059676701001676965920267850639276166675186056694930860449519002444218890780568621441962229277734468329662924856769938309672171731354684557824921293702877582559206773063431862246615575912001335814538057639623166554715236215919313494201632197789745352102275278924547188758407412771387437286360566926899738029039619107120942134462131597439565193018362725289941014097485066546507528493127519968836362553483301693514766117266115523076519688930328210145764125730427608084661767518710423429287363409093888046603277543490160451965227625981822041199751464204775348598109807638992751836964293003490136853700326582732180775580383868620816119217004290442364073050475109802399091443306207366022187576860865700502976943820786692330780749850100952649238321918476020082498698253141307990550258770750276433303000407719372110126130156532164369280002048312535138685754225495860430742420894915419684084895748296140355084530185080689257948722607433220603369567008639423070884203702532502397685351431151376138647319119111390132717197057771595415433283630402575908100866758127142790678975278453062401037316894233346062808268926076369670903613390595840856603785695894796440522587796636490686857902634597746309622153727160989632231803612104993402374132939662290601884674522361495404862883054409624605476365522049176515445809425798523906294768436826236235773042174496257490113217375372392113072230827382722958303052800744081497776918924853968874249831622366829805929282903989037768483453445917575872633295626495634722505759420539119593272726673933267838429033009755425686650883826228047043396248045370984549706118330987212539151473869382274800963488450614085368178309951619268413516763398714354377903721301506209765792602799010764710790681845174616949494256920954533074519889152431331305792522128415355837427011696770485575208696401055301891231138518890542594054127889342563466294306081014892764285149332549813214236501967396035159935421860809469823132784109079357271326678411862165912506524025262156617345361587378534428562986258881530270630416539039502796953442072743857152976721654482104670079193347827072093536695470511758244357339362235890218200035970343514302260796325158027117044984319924415656466759630416117124616505488576833231617341599892798891815429484827757565686153981336522355150524202327092534850940545104706000445575619742199141672317310507595205929683348327641011083292304022437138045986156826586636990267716958308412562035691685370142737342763636560277008680354239759128227905174274433578795537530773041910695829938552681701849962387217044604509609230821918873408263258529654491469886562992275895637712331983108129504026526025371800262674998953029699219022079465163059272974591819072770413764749870006700132579311413903079750215470489391196020610400000352649746573698671762748860906012413208859976759706443311257070680338242355479869067299589894951057976077081418041134010903634293638500540367614354638173585671604720400317969744499682902809634054516692943155777153603865665776736029621211453437591839829913869822379592739679648188329609449312431071972385030613270288147802929497060365065163083912222054726930241629057990532517911264904213381471809582389574621077206548283068328529844476117783685837841344081854445021397599808927159003789085921561561208394241771675143521778642702184557786103120955152946228072142595088932754844962179418745505643651652401084458738637242528674218773606624645023115999119757644841394482486022203403676640320175020078052767473851464073545126983949225766654955861473097490902782103990440826080154798994213011689088921881735421602176892078951718044722321441832560742139154448852300628647065820723819452376374420968766679956094944274658545029302486416583208060702816446377889670088111789492196209480954777611779197388228507922078981350232438179175282017566607073612814448775241202282859671639138942515590644789686293302705723116430638002589135758796934198382247850616671459762569184661649485503377257382137758885955585841792594596032675415115074230088114045557115726693803603822085021494811345601199962475385476242986189800454987036516432716093955566815118343412784005406781279730903559556529928696021686997233304877772722652086046514857532870999436386671396871591798706813699961317674878150568335196501187848249929733169857528648711972961825735844165845225875731784571927339420591792278747831503531269993497113402378419727366964956584446011826489358837051737556850562472881606835569943366305263788277183110386114752043638741469986840068470257826179602003888323745810339596838039820834533770950371050141949226057421355145001940319245100428977912570374523098631428718733187292128076889030216892674666751029974242888638586323814983612811709847586024286541822402933521284090232922688059547956104438780333055490360650598829903884927338345375293880941012249030664518649926772159205389770978404074618998412682450251741017962000931908871829386231922322586473004068850610571807739781379507943674548896900534274283890883088601014714590101988872322416464042237037998035884404513699484269110110023853802391695303463736047791049961761953414572905725071696329651962943890238929156872326115777815732961956993002909329696362594221180441739009815580054741752441840202947588654508264138325994735199700394611489427412177952568708745296908753552618323945130461336642653207338188341549903983231511162958559626234420564174501668602603102528968153108101948179673376507616494209756413039182272901303216693953778783801505147521351559787565335288047752289077215806693392682379314095441759474734504876670105956437143688987955099216948061672751957919939411241172389696689389819233576446291479920577256898494371613556749529248341543442702180874856638683386857585264346755292961326272124433023023761952728416609210101103035095146260111081662300471460820905118900695045336610951339003452386634018228927753751827575049651157089828975955433261631090086513845999923381484887640552660372089832023364225408558064826197557557101074994559122871613952913903441212579368481694863675026915878989636970851728174148422449605230697198698752072645596872419203108322884112555376275366585415646858715639380108901706526713581733652381140119679847883300860735605883643173583698943974963655610555765880884626723174030087063560602538693075790115432191243773586353035074474585833100510410949843822914653456878340002385208403039574668755670627000575991461267554266879039628537322155456144075293127065934495613618498966060595365503113476296060326580826386543910411737622168746169830143456893766417596847335520525955673851690153113538409122270706541119240057480227410034772285453513796498662995373126723794755850079949923676934281971943364962759772875698183124567841157610444369816981008471603330943303594676184422391565352683720359113599007613559758070713875910614456053102127967134437401390346072498872247694855200424914986473767285685450315328226139140936394477237107165668979252707751522850313288290889095927200388063905378216599162023341786784853889488860898630685784766334937077498762477575738169746141527883145466487870368411826883063730194617041444508402921842604790999954659369117133569298651734710061861253765342966118596364356015712829417410171072423548633661921625691859391095457158013952616941711481517329435603983855275558170779663006893882526171393987460230736594320295802123935673916095399133818629250653977615151366671903517543523779317480757935792200034778800221571343872373247381504285404559818587301176813272389152733723917605246778619767638487304244333015057394269474840301888496015412590488136238840858515485517025448870287707262306053200864102195040954628122745839196049744369074491562032541720159336773660979410141051430594326592823419241354649231402032448431570385695514604711812730140912614952977972797826892647829574608450839286703495100964560989796125869092669768105085735965092099890516076219794813487566018994573121704126545140164685663863233661758117172064821010302655916249859132770716464964727597313530424675000574049196803475791164566327239436711887204618710072133638537404333708548236447665733195421635054548717643354821594679580340536318603449761596664361385566441501603492991126964654585144726820440691942318229589090014882781482767002371582016243327991236551495937943890000115592734108267297551865952546950451048653257824323848598053685707064220520909057376086732210973293256400960651421059962067565822724739749181830205692751342058401846453844313875113781518348484871415657283837045294082008868817255503661121879968723908406180791478210513257961443736225359993610256230733343438735510018103604755976285636696277619433601888119680317685870407818994382919175874639841329980335322466102431825006919330836317666441072572723270899657460405438969599510467919136554461474955310502168580867452971880536806532445235937366104044459241823489011552626106447660298412686964290543395291556100836927861622234395786862324226156960295819787120210736183863486695414261346910712788075550615898785935381571123576579653375381563238122270482824849584920711467189129827490949838972637215816547108815752656411745637444503252710942994674272155008575343262431706198240834093767243260113900759282241492200038832297230368231834747540016725463144906714184954212388110782008928122751496861877272381990092934351596784617563410335195881780037732834079724251710440449467039311328210444254492616737646702297307462987991927170052090531347151157565609283381262016223135467729756515522926500838608522386572797343172910004557393097697011313109891382146179274401584090958303198331617307033110441319704700097411959151758090240733720596318317396106488945541097597238741332914618841877324786829579163573347791548840861849287655530104428746088735902050692602267178713973438554286179360687313220760798658712344714870310840181716035768388879494001364000654273620400137145533289790696660950957851775508421192069767825699659667478360619840339934432992360525949894648928046850480565180473259256467035556098240076961257543771337085799212385536838642037988742289875779747390194895028551555025648482073921985217986019500578088379700869634289378155446162389245761889998117836247365609700708766777122051910127719896594403518250288269663804523600546139884400916753566125405331674305218477699221551638141624674976081193010828293083867924490205296425340522546436351090855818011188449106550728788210544773732249169656425616720718868583171552178705145657853473329982846357323651095492893018137049347160903550844249311260979652524095015958973878705763868563168979820197015350803542455821201607907191554028605909544633183507665596250039464982896676769787495075394888367745674245950586887966641645665857429934755173679098086777668484154209180072631975111375359154324191869581416868192322275665448206890829075462970646701778698507639501864243813114467109576648901744426224280171401053591232147705713509696056839846117067356050410590438494791818841591091828920597599267778572215112576380130513606435852836904230936274756667870890761571031036594548275981120749229244899899250042089180266976923749864398159058126291342603309247276832303843980855343207887511190122079594626721394793838291502038663953780537199991648802799210989656764223590874374068343470840920825180955230226537453269961361213022600724531371801097507752565301656725827294126554094536961104413489180289781684791361116884066025819133894707795489205815322044842317345083699510970472815808201847792739224674179994178297282396220684088055841111751065146399283479356624310315804004058205966909884560289719411751304089349178573812271718644106337132156915475758350364150868949563073749642717337104255563929914466856483805782721937806603519049635795867359439943825099038931473695529222895200643897094013780768163287188797807333064189493055558083901066504183678142107773818055065035629732979035627793950578575414791872321607554418075820316945680837511800225816076250933619841508705846360040253427199963442799050343918283594911163774402482493561660928842771086140797662314962018055998995823663701142517056174070523032052277091400735211366449398206517316506915357305380231471731786793880183737753008636403911519854867750456428149572705054713800248474217501596286321701762416904266412197798513162645520993058897035389759414101585226487861171841694744535758088292938198941594440820455314124671094270620715301827521274614826502373497512341228309074838419788803416146593169271238352280147280846686020241943118747783020485169743544107828932714467298921545427476908681460193150297639491789953715436738760878226164314595982487482860095254106162934298758148791051131610764460563577974777880444250574129080393400303851036547624716202798230721802117407766699645201080421832585401365799548870856240412437203713722040444820969801667784239976155307613423365603862250370970750299396454652465718042775338804204038135464593755559498931040687932996284237986319731992643726944115722635466979708003129126789664509439142887940995847709285083128989069464982808429826335548095391881370080819881126095402093670119305216433598141678988545173189150735947701494291129242212206461136234461308055700856875234345483258025269114198509823844809653615530822288564216535726213588542261740287661474421102752639929141710867597125713260379741372682451447946494442554038489279523785448522667741094446565656442562897897879362209788113977481259604855779522192089620378108014112649260960466765954915871587550399915891646166603617332874028818695803097828344077601794725025185572792313786872709345881205876299048468590422878568048459375400430872182632547679542110109908788609905870378438223298169624120539075676731424747502173631102805628528136874839155446546202534583480454232510613673725441870015643911082935584076535475653882003677493276538540371633683011749741059320942818992228837522956395291553798096491068563015763297389960101433959645324607280973109077804648194947732008445068652160259720444439228644395484699754698915139751672051565577791466260661391808113558514601499327082340412711622405627463775767611142776964974811966397052407732676184988285275265946434763177512939284401947004418283051129640820685462794012253390001723665113514084351565306738627961210376685811299007035198743708415670569394924551015827149141491567471177007359732997234112138906673020908095035802173568718760552216716345603161254052185573079342846640155438872609685420921368358548171446285237859420008222398187415490310228889697859982504721483734749894042276631643522940974426049235801227263552064425192732247248604387713951707963991090350943884160888873201794689925621094840706760017288928580449696556857003074804641015760558527649335385205023629814705190310726095270909115094561139463096359332802876998030073231694273320422811818994604864139174350607808193330015134367777281293503696488500489065084929757802689573493437006766020811861348284232137537544392709984113286444575605166530954348292640196482852406965199650238807401993055428165285646717008229806623832788513838017783531258193342363753833072589573478379099562334005776017233858697379378133818863803359994678990463832136366492123245658052331456645661327221843987516824382595057584743240845660797117148433695341711069930225480258704245010783637678728438788974301059405489447147654425618343518590535769308749661084072181995786543271651159620912662720666871793676679671002687577574516247589580059656909542212416805796391848511547142453695595700340154317006854190967517438541545409366978199132770503618864040338771252038422142421936074125674448895487617460744315282749656886522857846059382340140091327440710389191759526528856760551592490025551858731191771081540809436996529719881913884076278012567592608121078037631689078468455228242268698731523966319185242966587755199330654673772400955245925020490316646051169441824869836958479098204229186784447635217400807253416769608364938051357154033887364776497135869800813367998565720153942673023502156267275929941311826180526695284695165133847129272261502920290609127683180597858351398741895484503660527706522186996746055516458410268063119288643034821465176038998365383949165603352929145140630826725756440724773352807098272402294480944347545431057078460374797644303279128455583943396612725618317963708091436071075788727648478283218262939680533727526219280351684901243090609870101151451453406800120839490170638614476545387597524039261670694005995543614907421700136886416767522185238885629470245022065205053696948039037324910422985469074202409131874987486728184375721100641884364070088816763475043333748593790987250304320858887976132197526471022662099075841173689710441816947349690755522213010538021832702695235654958100406408216652880635971481619106430288264637481607958341172638975727132882008657080174884282660183534024591076459803819798699432679945922734644132224381358985803714043082864316503227816454079260431777287264302924681296957766487298570118994184860705170714113737652388360378349933596679961824041233232125948053605889178999415900865918830926959724698545959601320585449193488977152920017121771299125346969404886518697072700735803083155203644426274248252267260213546967420585546656828553379701047054049030642649374345628251969369725955068552160539527283526585917355548036541513302384144727851384583460254204787950473302341066646444932221831698791806905319289444528102254188441293513075259368060639484065759772576151026174866404116149841545142923262556853154502549833930084003163881976979466033411521175230804074778596712958725621259571121053264913792895375514936324557195794555458672032229872640226285649309294324062984640153094024469778621026731771513548912561449160295334783724284671328446793287318801776817654399509079937197140834577971734408725563573215068839671072825758323715812626849052030472792921681146808219486120251838756263346612010679127853840291376051831357656185658738737517436633714620418022727725887124611050221997444521571082075434313156638360093757625014069670390070220779757629347459454362020887614402662337838880147994061329944397991958095876387697846889949645197091250235857433303372549233272286434227532204928466635176308180804430887271367844223567706867063529060157990433125314550867415894230551591472019296992557111787538808148888236872165438496466955376777465337144470974493050024200665757110825878753066639861294399284727053971506853917347983091997945274572278209297539949874295689699035847223688376185220213284231189314456285751073687111860847563142121186954352471472755817681313581251922928983705636897405873772721073792124937834089170323660581320340934345618867648256317440645196647762210371400776119792923249026522305260502578280875915867752473590245884352282368654153443654054441224300239365497295336527745256492839522145588870634441661948029550414552789813319224200165615209294339365812483979549655942930146193476542971598907875899002397046018223503069204952765135835975619584878343703615109869536360901752264006109903097246645753461775109464677983416635739816843407337090363898224129694976485458208354149457557671599372203807122130123027293016229095775263459789501377972150847152884322294919657829167751468737559693649645234210249052235958254872770941212130629282702934307583968139104764495031715120965778539295317216381779570299349795153366871924649460526457750685593271103157634783133119949094214154489770902817435522460227892792797645492565448884097585142918506162652668593905821889507622375728692496357893325255722319464470975033764699344467712521547691685808039328622776322828857991372862942549706249395800235941886261249052338684451809399701211191743091949614918557646678232030226610608583146210307208275822552549598975704323423424245061690913379566333701230793300229805611608474997752100835082608381542978579692592057913457642225728093297990509292065033103424584761846369678020121518831665854824252827291657121375697953853294093103898921949306953478137519846548756609656354555856949752116551501315239767885143721663039258756028410076750963868413357028455452153290562669588746244334637865974052760661738684583261185274811934063988430674614769906194271983480176228238449229997117858973576360845441856588582791567362359655173225262516523461256689670956650972211757457220990467130742544129386262772661509698735573337159822059492982875010181342738839079334992678007316411435747414773539074200243419777708386948954637731497690366681417377611241833423441612058787461010281731982809789116666604927629949855504151926230778664484158798646139933561785020997495222286049734717993920456004905757411670351889068139774110697835071937381774207733793894113603584914934018014907273721336385905624426779924821451179319248772243153818460919155681034559550338196990813228346983040172862783229561805240567302063804672615180603312620251397147155488351831238918641804014024447152598689582714778165905599678766999852337026406751786465032480624252859580687753894351154602147697086868928271599001650314011840779498372863823680285268518857690089714729231599135908368296250082864947730029535374341312787242896592727963297827105711583413525721969798238957573571546882026946664969253288401710904897279531862876523720908825673054452320331464850552136112984514669417295078172024023386521660320541940704378381240699616630318878348290832068798883982200602212681452207939849039368684643605348508286333106886015561323209082400410290413226359210554087410776562115315956387063431558478204097966744852085355941440151770021003357887572967864108885001548404353420486601595991005556873797366915637454663201851070554788403366577149890104555329353113074644470919810518519988288006505932964196873227353205076055651479038377177885419633590966343556465638178639021785384170011715307202185903415188361011353466643033215907832184698814687033505812091463900790856430096881937176848077660995196804284304921927105599044604755527060509423425355379944718562996757517159627500214545109711470037396564729218225967476763543681925765178020523129999811481823031127642515973053780728193651895483154447777618349837947689976659956316629613567297144569386384635791272971593660420518468396548921802933056704987444674818218150970787338212329837461135800953744492546823674873523326692570477032194446387225990819863644485001592374880589922303605596354964312560960753838548847454825479512797945271284489887316115160473259304923957114795641172434123866240739382821032445196504925637470805482495027173665677544406598557008916035925946259483270146826900394946766887483452567722441710490235959850138222136975899766125075253354781821121254652888603157947930169733163103269231457299755408390430825067958175151518106751755686086007477501928745637153148718042456137830471899352959503095307704513836696344223252164763567666328900124401380149082930199389253947421614745141711273644237347493971501174190608502883487697383636301956266399395197129841032864193006306918485426678007491150267856616864964821231159612881815405068450757652786255917682745982772095448180814875286769058373547989155229682602003342023292302333848701012025769906149686401267150173191382417634881516591423624649207478371490641920707400928469649236539718953333741616252689415854647963523646743975033739246367301054464107886746487190353733730374059130857521555255304204169741022313119548204507536726630682536135560765215072236168295623053743985148572321886843776960163463637688251917337250221799214434873084019327510516552245919926613804120354116241642313977228071196616677720904961104545143174902907842189000017059969741159639303647128556696027556741279438393621518795307250158371238319405223143585540531966829615332455854720420679937464977865324281631136837630739772405513810804473214935929820833961635216308529987573808484911423455719426812771266888116862058915852458455334933736359798501077339454598514201675533601727910115342555186935495666294671039100071263885564261208718935189873096973481174758134095593184026744168354149554196412482942683276707110164364973674024464252171951476300822064256365135096428710438857018947008190495419822975666942374642468838548168715709907060880827117763729024409534174308325015064314847484314057841237941793213792952254585756643946342004542585638715327370323743880201366508053500942588596083457870335200084764181558773926054805358876569079133953443261183421324222982950670524117306169921341163117719284009549046215588185821752813010730874774623633121643667241933977159648175509098856743581715623173426317537105389211241611126333317352019560887749621166084462248524620087356935522813110169636667495729284917233242839420306431606470176429487162324285730960115897681507535172737148186335067318471601866912294381712827067740146277549429987549855386322642023402411468198677471712501604437830715386177109501502801426733365700719022782259233452624987531378116286245016536740638129155318443997309100324570193902819412249448560154081976196165783093546717628866030882948438833160134093276354447665733057738234218835895440336702447488617263999567658415182922849677011556619331553646704420812976196542957270828199596082020357618781418814326371250919629298082014276053839596079816390691799863008533395995261775789808747528067496047975242471328527996836659924855573211656336092547048725390981111723316874726945430505582835531982120918293429844618902881459011935250544779510165160696239738865963300375934962734991913347854810910589017687302287341818370579892357504542648860282984206664873452149176566264381652092589732289045576839908292574516223669757041064471615887725102474670740506565859790122302264416798710370784985376198150069172451231120803593481809359287929532945616448249261928543057027844829385530102824984302771069344485966290838748881587868378839709015015756753944245112563681297281330463314085046354961585341220305207401835209033627750582588567137013684140343198942480744708278929041484137448433260357529451082064452166222892815581005338620673328993169919737899377470285138758478438692592809884512750425963126168751409634182627743549274914290086791131499385499707787707571485563021238984757882262032820935975271629472708102108422754085111068165892024039030188243949977049980376309488206528652461750825592542514779913089460347883339250589034849795222200856042358455964031000590558326830073722924173129712487212695574582579115620258279210406968733772832405342973374925533087997500455856874654267065542904197690511438275416384986400695041844011584290394221886066814940629178416367205483434505845077209324014952199727658106029309157667259876592170826652618836721264559104934725681856104523180155040571035042962251390595470555460872418386763903129219748559952149776699735238478932220623505384341257238273256808208665500936398349642962463566924513850672263114255118476089512912072112080794728113114452509283665552632484944221702066997580047275800991123445869713302089811049398237356361061544117901420432278838263653112914276988769009601042560566913009038257104838152288984227260294777920329209968222666998070297690259234634689190945444309817645283175273208134171669374837802111490761405164992648783991353156856746690430184498725201523821172380801862677791602547255836173387618894625937476224808536664760663589806828674449868063721718086202136255104946232881268415769330319616945315890737477692446339228556730296962840110518245857362847750022763602808685540289925237665925838829233183926463497851866690411962895829902017346176951835013976174978140346002846590332924771257028228346080958367073315084585432935711405502118821843748226311938604354303556527732650778355918784362848850271070833650204700675189494940130694676008175656715145448437839862443465904282633147801254685408258430693689223638094100901412780735674857583758210115733796896222036320787417150013573931514679273278163114203630670660169020727304072228319653014656128881184220875806469862731412170647587726324562688296523434652121820306351766878036902091703370405102288082298595073086549936708010820079961475229070147610726802717935283600857857780188031119283243786873429008364145980233535907738310349693339412522095929646680908039647827985487492758856534663429058590010668070996854243511849299498129577753325015750749852374247526714808906824455791968281673060739612466779952626881472858878816471829639802695582294849453800860252079366412227684544711705361714060394645580530787201037147799487156692597769594331971806653479312595622329006143290784849393570229384478476320419920924756272831962452922435883953030511968652319530056956539880737688923649634203121965159741781102969542217755454233579105301096478258239100557435266833771706748728693625561490468481633890495573892535939710742697832408697757719805590990844482538795496568161570399805694301909858625029339064002338905803705170909989031506574699731271568079104844702792794200596240160285811794724105231096433747628619105506462771156582924993167125053678872426233339752449600012742557103172831065557954141395479107841018683237502628401936452364768617773254547489834415733671132282098018893185862204207420199541175767323481131192300023930631446180947815209117875814724525715075383051483095948191453920082718061013659154276972399901748420187090699015856122998873152599884633452829984781108733857862323459056787659044767462489763459966051552934551623280897042821170758619930625976855238640117834815487092445669363623303203889408420842419092049763761038438204196838183513972964848518029277736306584813690832617253536317780512957906916964023808239187945581007394122636812761089066364347311023820532935958091039482053644523418228067999608304602607967664345856160256047305845228476292746533733043839904028037122192138726817236032182853287884015253701707281432958246978248059971812368738321156740499902872066384671991759089938778574830040872655680087243948421618364019158438857785538548394110409139167374298572616498629002925538197928434225270944043949115397268560997587863257598408198746433824411894898328088743678167515007879684531202226758466321805396054227057074174639043364533075159632498036090255845030191885682046200650962495283804551693872363561012435047674252103737453892238194155357471694422355547382651640847770898039374492380445757062374754555105519357655454831758391372281220330629235866828641273189083656739436320700151686894009460435495137428147331561691957712673722389649477058506868193210746660249385305569308520702848953157102122399919165425724341223226028648165042870971105244986835095659941665515358437165066496133557538848230692835763266620498462174288882582973055136680519232879243569312739465763670197738804494438052820534494066324988891936815420561470444050941453566418906165405139311684774238098253264724694362108334863146911393769833026459785195561437064660975864070806126235103628990423787820729584815070610174978963455283485102013777792267267374512823063074530454609682598662105986554044169992516458671690746620531228366323948914393357166188491676029127628310909748248946423320031505339752216021550270170956452114102757181948209252933727689905454822125913074217657776132331675814232122160863243172253829165853478816336307306539631069136470322496764791207425876230791322594579484424677265672269248305924101540449689578912830403669991376225012994841826760863741605894234660922012625838233318188932050601708272956234960911014202864379743307010945750757297383715326626664842230231489176174670424392912722021036467607560221469936949070386385510321751012834484128248804429179383930394927785609363754343707871540651855493834698866794850938377463895560957127451972206477695334567994411795702288603541185671102876021683509889545794714043280934563716932984774059702294027907975230562798361118127904616973869610202296994460719267992083018971779041660245979830828065688757530831849250288644890868711233595357015663722333347976571892870751910837647338458397358648492779196193700495242443114639569063271101237783745420553173741973110308031561445559398983332968770677123833687527147875402901363707482941887775213694388361440045278214185066846527845328899649328751358495492026523316451236520721622596395609138394443765337049787134789985424748322432553913655860420046358594996092308194718166463520621268432448652673419208420366792810520924939129587475378274680053286323048459562347680617433019713474750763753957332104536276283091950479775818661804164145908091601014064944667776790654937724963833513626891521405858793873474000273272799611192579980502444506848504787440965131368115455875696013668723127967483430218379114000039575148061820178800617840098658905686805223247285454279132821540303301876299055749367267036486515126117108864755398697343504482276961413176100714238124924445638513701405616760569034181649403256770128816700461520974171460064764374525572930862602566087008304371441651514660352776551518280328365826334095309481747405192980106653556673698428576365736479219551974963340467087236918679295189749676382850189897351514837659660127362292403990558025559028150730996664056844192935513402777789151961747376993177714340989547631308527957160275442896534850793093839763543710367023914792199838623324696688711400111024635149514925066321415217130574519921610875654092416199771988960025374933952925422032309569729944926780787277843773275991798628632490787372729219073332842425804029386090058519473434606422569084664479949896869910415338804574553345039631962632645026000561367181312379336751760840020306325501689896539754040216975632150866926378296755206573736800723763639312277544048361575888318403099546057401212409460369768064619110368238198352749771384942386493450036410674927856260559616936265194869465217604386141448943889436355207213135825008215925941898032250524437002865156007827405368122766892575269653000466568561838181451036085042293883087858987080413131224207562270515066589128085107334508490964641698161868264321923896920483197758150450730195617867973508533061072212407697535192248977432105641311877482638725330768255964151662214575068192656305685869187643859660487071628469120816832575856555274970032368065527703016345530034630662161722851301730136354445249672118507342480626137930039520625793786851186092863355869972940036709967326470112561893140867406556076830431927027308830642307903161651838420769248199098226677032910699467874788873059045303893058751261640514940234545916923632912594597552727795034804912959616317998533332893133135909336020338614949846713930120855556214323758551137751510543068012351332842260506372062971166511667437853216228014069050858765625917633481866032061113198878621882114394570658530451812477077218657454402115842152618958606462143797739073440048245740034894111131890398413151862353311518041669567591335186063604852994009222895966422489090383635869127971051496172471255872733916250306512275889700851085657399517981801931738674184509984004206903579982341859899414520731285446346529592043090428316432228995682497261802924632957817717932241173470158571075353899086311965762228542641192807852297229326967671549244911734065864305679032181823616192739031923774535053272815434900179816494294465263846152589285872112757479925075842873089277049771262428462238603945627475168008051429707149414805254463670810969736996409795391022269862940562609766504493238681283664365002391746982920599526296710013571619009173287076460231158976892150754595498683092442006654450938323498019155046898776294489607035717054809457661292730656795063741906462551506132173118342364531406053561456632864276666693868518665973212856215008241648289951139245789121916342057916206308551371799167137520216334951901294822043688611656839777791023515714452541108342027475059481396346292535281927021293578879101542882050545772946236493189732253388420170280091838445232996143240444672490564357819825805822362869322065735418987775798070448607314510014960381128330520292559425437279177784498137632595685991396668301270817721624624036559950595458379899133063126232353591288911177216405741963791132193073103946079234720784986994253608205584840847511998543580998678394337447678340122046071025071245805731151997078393383722899768194237378710892400893864692935172198153637008084829213221762071044889204112120826132934781593467073093741946326873514498577645387375626172700585113540519573180898132092248521804434149988529731590558848416124349582958697921972175282210733601825663458114361504700741247648850885288473679729719535222852953718667825376076493088843044900944127655994042691707040999974406608647729341655479895760412601449204614272984024200944144677357266961237043551494466189153608722350884983359709069470285130932418904465006462720756982286735826566673054446165731622231042859992030542936098294504989450339426441310000736284328463116774825565330370488526634935831221306964319907105383183824092985732573837581236623643034742597820651888318746792831247633667245014746956707310813430547411142129418684133445806236260075676186990732609468092407918356671071799279685332864335678710571699364636155729793624323610395905452094938266944259838216491952510847850685926103223377053529434338671165921128697094198991130141738725262658489397917030580029748433511414142647454232768317437396005081642981859422221171390292652102702962976863571453394780700905932683645245788687708842672827532488532057335176976600449232684654941481268245309292114606814051965634326284753091164475114345895473028690958699782792838551099106131487394207753447873183371674821882947963682820122088672095166921196308937627914678676135333170936396469645624861913722605452785054629301050199861384371916339433193968887743421949239742536701128622465472423566218429387414087923701744166856213460312013449968171856417885888296077570706322468971258197246512177830868934426499930341117690133655434809717818128705921938394001879727787355034350767981468829796770888672088628708424183862206250848386176175245846476041819899233143120483724061900907046558448497851575243659545445727241599493773329385430607577699308085700979238840827918727415136582048899780586511979576444341782835322145730535569924949502759621610947311664132425261157592898910465696919417817533861016319000224962067327038124687752769563556171769223440355189041386865521023826428210992268694789744448819246755395612817603141030928395839377409046895130060556037723984759942667175000622835145901665809618485310117205182625605176576125845743310414309666727194891579692820484861256447514532402459822490214729292663538185480554429473206852128588569290886733488867258287633984410133074311259822761922623180061578648853790809888064267329290781241230501398588345165226198637587857679064499302459684336110298684536218628487135506831497162256168266641104976876450171633679257617523430869699398026740302315733824201450183429240573437831582459200106043266868271449846514923441711218280547535315781376772066784946902720627009630109766281105867902961496500417239662634071618164879782087753758168926313584088658839215640181564397657872675903389512221429047929320817680822702274856202372931493470348891857528454374708071641003251127043222636478676635828495286394360341863955231216082308108105768529823555751005946307278876011793238331977589869318255051798001280019961860468256713036513670065488783271101383683146290949772643409357261785790042553645830710137390764805812418290730015228577657378558318372942352237200244823474066687629030150173371491965624276477284110970827960556652575964861157647706176163948855973734168510384092860066363417923820687186867603997067877183367713957345837080320433593091469857187403860628425064092332691872433493927202896460553089629209462844508083633150081617241495374720989071719931970689164204662122978710187259157165253770325017711339985057098378773829188168416760976615394122379025854328152164670913020187380575020806918598313690534482632799300069103938556447335916997088451772595991530487565116312940646763066539967444263240831776054566029402363049043239775828880057143387419852653221700620217220690605081292650601518116782138477403445573441915968617075526972601480831794598380124406312419685385233606940681580519941813390353391531627078515444541409345080080965139369581570648953705020795985680784940769816602794481959503859189177110253389847484732274583634967600022737858414959681115174400462663698376883315924684633153521599623755226368604683767317381264876606326439935711896027620694769007562934093023457802513426332392753151128592990377153635432709401432308506176425550150895242953027081721414858324046593640002066742097758105222365798808534866745213670742374834780228164521596718033694837562216803386798580760133199078456709272466990087866812004017963671393690321316600444680547130784462236973420657800423101264855578444872128816363492270768305691629941106300021083407993928022144692707435346432358313854874326561654387012185084791612285144500659776003523468959599770736918374534118001780718008250944512426500243956055519334061941197962379506955994277029117427889184054451232120236842272557005928988347821883461418220554973565682340345633684937465946487542052727271543607358258646516859963008527840328179559925408410111892653049938938478666767530007997753041531391466820483972797002085052269017290288766751325233019809878088258907986391356203714148713791247168314683244012124278157488083375671231632290917275621934325392177332627060567503870514280003079287214784672810934449315416411166178665629884525614766687188254240773129810991626797160852208004619768645599451887306266358821552771199093199674031795435743912892996883445724613500309816005405496126986555835811438936713225272481776217383462901722843937959754486083349332119409940232062295416362812776628077921043114008729429202920657800770408967792173727255765977081250021484809609563084674795954606979195703190793787604009873711385314071148084062007292418006555039740561332057159872439272452521525989172073223303186338250697556743899594061055172081716387565954950885079232288775337248774197605284141009257267427110156205070659036698342925905545598795997802333180711515076374264243308655101582322216094419636342122563146633592166507711941114879317627420704889934043976568199598820930332261745945541502304791540505401383807706099477578406928705227872995500447821125564238504067540580846506330146999754636743004036978765083257641081566595963243694617041361507458882800341430134181460914377479428579220318508076084597509984507525660240719516012262438104308690190601080815346275637346668259950345551323375765740114291042919150406189991634732128778349143323242211735692620422205210412471745131653149735488448615805959867506893163175741585720062025385274509059252285614537130721148787464739180440550427105529599796438800373574814431036152296447373067561949377064816733427671961561337941441428570002066679300388967586702639118823620576807738755614153065334083126766085284140486269070169353727239133157177624760896055829379973137683232415275980103001048411374651547002127515613866943811624075670564360608058210617041066700278013414863542103618645913041632950123634741847333078039452666345872842009110329057180616001932930322891168439209777765640493268311493353631019005911515287536884007491364802740686852336402694121383627879091458470370263465289985306733724868776480643371763488786859191279120206091036464815814895239516893655761924907189784630646643197931507927556959509546758010178187201578239982661224526989448989906840907985600925708374656095843569574443614520130388823698591105062255808904157759991058893783638756924003851519742091454486455874428901464114228860545130021762780598409214511079965118960043437416855465254485644440889822422933272949498842452048809490607382892756654882404112347228324970499499598594034465807545774787523375572042274480141625003348180788551332738422734363652241715859074696324245305468122893756950693676506546386929556224571721601883465259352702508846600996292035395512089112860478365359223885621798303721456378808227109983976129177529672891839414843497587658240651839331218220740894140692150183609811684830759817126145928187018227524004942272619216703854593603707559623362253829668801169778353137508102425232092415828845888087590310490070713381109503410839776744377015093429201907754017580226433458886960459123965679541405338160293196905477457914155727231982933990477874138357538718087144595732729868776320274354825619892866993901974635423296790512898543991639502883557109687836818036088204105408972966444621064271319564230565240080690015750116839236499625995801241519984852184779056165012276388877805989790524189506116913675737627664883111051752479606393225150934047955982619986530046993534009281890875795260098487340301049094632019782758644196042792339351018229108628643849659304463916446327990231356502448378842685143437028152709299171374833722993713046794404561136159992453325658650595460722727909343595623627410961096789332224876197189029368074572682112290668251823923403136239059784577999374802238165715209143879505710725701636647550302246882786401500995816631127119687114513779568358925160678154305410938266032908787446685782013788072947858608461645430243223619227992040614993786424409495310788359035680937705616780552919081793701800860956181094826857490709872306836897155280871153177094968209732677433828137194666317766288403122894823717455650596634348610613627464840050802395548367956200865758231217928350359252095809120458287599396051759620898463751951430615949209193430605890021632287245404163727967708273809203590208733116041719606985045394763002511980635500612579087635503523378081172125191787395420830707377559523556213976816358964430743218998123615816767490672687668971966194333622596059405787404337481167727696676404565204705056149274548531191256995144075314531942723150262415697036075834596476971193249384615231509723422469531171532757012749741307645465902464056434321781476202806266916565087860536803393797874830918846510699222303988059870396350100170256107249498913852875312034649901051943949509726212921007243721286443593617007801630603661754705068259935001816074550296130095147895388003641184665365225819202084133158045820791389694259576382364979895487542625940802418440549040102023432791185717468412980512137620626406218988979081408110509487353270567206074735131082578098673159520797661999977153499952796093559291428533716952549368077879962997686723105862979336490414176568349032844991098749656371122043775754904949836647945557570029775011074466227113528545085853052464636093317744855380662774493562974480203954558384094217836360530945507068829714750136403082590625723324072968832012773015515912356175164455895696861060636365352875483487153549593049973429241800449988986408003082863816358336067859790043727467606680348017760580469536814496079937950831577615658339921838630597779136126899021435873172120864502731014273651022322095703700618496778965589564352841084266139153176011003405360562944727273176624353553586139645357997603346143596972489319712221632959177290846622250979305278217202753000524627376641090708650389714813555756168431723950830056484158807254551018147513061726070489264638535802281730175808480289547673766076919936110586885097870126811224058470556272457774642720086815875408712677893728169902329523006870939924080249693053881124300861225618092354815878693569634184828647389480072588820505992009294752604275688999035843339694483202922447994724020050777162342775298354638081191495868032380748927710969600577828527571415381231079811143197692026086717662759767043972254827891042090036277235293880327318304769289762442451686794028568577386808397888331873767899278397500939504130048404186834390121041842153075433042591455076130318302666202451187760002599831503910942153120102067546641324096307992649601082237844849878805562371687918763244171549723893669264280210551201480789225442546168468059899042286128624016147160560880929675303748590124266459536083022708830094173066817786817646757015105610365045942289607275878312599232822585962418584441262056489644707735655343392334024198146085203054454000609716062292532424330118193230936169576439283205602712562558678115108421300929797665142007844873908649961643209427680900474591287857922183358556089198405235817212856780557213144698094040616957743584962633012659223020322448080687796255416403747584864199196153964522899184451225481447176998811052838469276807905559768930690698892479828242821567466421284420668202526014157339283563183498766629457650748782084504517765613082586204329914313793163805015088895583541873134050474498420707159345101940655847510272819320891743022270122410083186941601220068296617826917553961816540186766451799384359934105492376966429930331700768515765551641957162113490775663227027970020589302506345406844763259596563873726983186040153837702244656187777659927689743604754657867649754773255571221944857323498914248120810673941830848667686122379037926297406734778732912955775960949453288119236863516207818008484634477749994793568272882997598460961107742417146424859188136104112646772219941117040321618952591278008294195181409853748078105596180050753700697739925486380726106976906821494889015642656481759644174218453802527569393357800314190350856227318102696438583491616133503118024238769001927042855306087130992422149357429658536780169353537934616818313001439017860471154968867497058437022178566199672694049196769704241212803034559135993304573042308646075139018897588479138721506876940375212710667572136584726281931626171252331347897296498145640527441136939057308573026977533331973627694891855569779835254008868922145066362302627652696585975753482080194616471855862284744781265282550959291478034989286482689955381416344612934923821979659742467165003036694658530968869593309277230615549082231668941101456367124790907601819832716269461630890187771328991531058493776001739766138968751921887955668057245884085395924821097835060984249543522910011733864603977281073949286521327208953936136959943867541502751667516548360802417354132058219518512922754446179263465228113313557208156476408957460326304656477233448244267937420359925596257136542234427466661196167833557444649508828356932046856930544356406356733450625559773420684374159093015538768242491977687465874807452566503603980354600395472480861056360423528811922663125405547050167837177118191466051055218102826214956663012314647698044718078813732230967212866294445644594671650323667558942653789874616625459742525191567136471402653699879942006360166334914500707125804541917642437377467878556356003601016054988086130609609718904423711491639224495768449164606978893592605382714354694493313680932883645289416218719767746809752647870730967279990607777101957281042362282801928505143708148059934953246477397786062181052728579746753742364597228751876204523588844583777402343493005377971047664133724421742438493021744234431322944379862493188335130845308252895363814476611252174295883579906407534142101180712705207763556894228542461996224094327418640583448620712539312993238727866544731050733690308093149152015417886820046289138868361034530113987489921998581379078913080883418355149126899514529175593224389356201696346913137214782491309622367689616683096701686764957616380542928153002054416469574441090647737329465895688157996964171234286303982284827789531671580057143547642456422008435638851082115983088104840376193316953015952447408894949163354319671605199238456132799421664621947758649413416936126063532722031019072179734274069587883804440342994199287713885361958113494259734040571186039992561372255575004544621914696345677848235747051851743678579405519818523249855238328365967786910301428527461864987326471804412573478448220008787390632667102386696747954886417191822808162610092798118298979656550959097594519906007156301194910103197859746687653481413286739323952804121198817959036992868125709009324953266560102681060249280099081421228726740411809982378163813449208676852934203945348175412074841541277755774868689179656598840453304726702846336990923124708695900852001646161298467656572493855910632574790018736661418317580853871365936009014443752847478602206922531263901899122846490021071361098306493208409367302207390177037002157621917951883532838406208158874958175577270303649520785576847585036781647019938743600607169760755231700576404261075886692884596066341983010824010560519434152657973346086109535563423425855645991598200980389219735180795322337177854812371480584690370562747077290165258410830531154434832957534111482127747906132250003964262413499131837675408561867249480113902122979044810266919925260846296414037503090782814877950149618750463626118007248466654384532507646186346875497265438611153678776580223243444017224011011691146035563722179070731503160763012657044168105114389005393173932010686975018513608455164958755112450511739040731208507580281222830008491387127840558825096685274272916127336853931552951786844290304017328298024202397777631716530691376039982298842245995794651154815718808870025657013860946868603797142364749653934609146894076764043514661531404979790663249139702521888650339588448090426603129859319470342867889026391822485648584362880144028756647605633936957685327469289126947254523060277008382062184825012512287326149151071334954547953754161886956782364482305535003642203872424037107134254038038747218934617029602200504349041916396179688803481933830477349565759567744004895445942392392364454162347052659614580267253914614158207128787722479834040098703450022148243141066350518665194858110411606635750925134791572159787045155904177569883262907434968446602565381768154129305101648814682454939140093909510167662318377091759433709321299203033380426773048004181647716333973994852704425344959365209886481553777945014198625193538933097218913789978422622654528218406738657011896541412450140783221359294747600812951570026602293152949217270978428843289114272236827555508687363767390789751827924163879347577017980400338179983238251619805537527234004938920538673169621710891835804462806824181210686207652475337908130872610192963455036023639143401978865706225109936454751217867978690419644537869530821792144122095368774670162021185037657124567062518040207117380964858516051168874015422153613973470299803296449083076798432002310368757321390952652051102080555132914728669745110704084639947449791629952250242243936947887074110380471286074313457701420736885132888872742908318806101923314166112880481778758381198677514434203675591771277991282188831768644829519009923030041432935500902553569522924447327943474749898171707624284951825322574453962974736713559561330997979805417129661099777378478513240719345493958959977534339451094741433884149045900616131338907447443621249414497374053937705805580535315968107091954096095424162813016541873564456680373493849293059696318059922202468476836140993553011478739723986138954360103020405455696580860435897572240856674178165066327470208619156971860298508040160538014435344572953565755186481163829770652228813177766031538285818261906996195669684435264574619945557394583790707067617245402812696926317777667882954675482668887231310771946044440731989373843608571802640750545282765374888257474248668460209077502803027332575732213887527824332159917934081436191743425545385173355806370491182979136963336743655329793665701772820528448639694604534793669744786751452257136756449419475043349575089497199045684290257488721453587083452924242361354559964134009572932550343384642877877361341668255024815712327033483745521526975057603055688212642123029086919083250558189860945379496612959716471066863465808888208540272751348375157803394196741135556845451333801829561276368917572108940580426659358855741815241051091819913440360910179702215906210765994198402060242588040778732583499050617067415155935202009789033534884675437636129426048895302823833040990216290197705209762981413556072968685182192708906776293072123064042364984301255551114691252369257182311480861986343439236844069718202130966728145049122894093956070674225035308028977704170793219746129135669056476623922330825142924105396619523155942736009164170232123095679956361641182114229813111394333522473521042543698269182423029870986856824910956264647209223581255305315483060685504327576437202576970455662284264761132685269373667669299241187636603703190681394878152659270118467697694069547736259973927502927092737648536047044073298459631757781940258912062372197591518325289100081357049218764120578182818172988775856768255327085615351221124473662711131965305095609147989051896651768556226847697797977151235404669441607413064112012242991791023455412257030064807721104751315238748809179501420103284892570590915815305953863254163696775395055660940486569667362031190185079360601505343825813665292461048980908687703834559225448805125774331418182263255698166737812881310852759159932799814703981813653571016791152690625570069004099047121571612374091715283442466742839656969485747163174874306574867427508000652365676768741448138865000744435589233389059680726779365749685177967177901223566807953445958441393857979488604048379528047344724216114588473430234124212742192138346988339856987207398687506149543088086393924775789924726822668767885564541148789359792331005230758798923578657961481392629265309690596917382774416690529575161698876244994264908725882480163151128206851868202188262099795341123217912865106661270746218784960976428071839596725013980684893416711466060732281461984830759134829691800706881277309302416029832792743528651595684605159778018013567913302114144164810086353021335429452283473275866406449450627811403245401389183462621045841759304059960005126896351723262406340533660395654780527477153920202920175729926765209940103920955942953445220789553680890697669118916977250466260803712116240130491002687057393026544650534594745749951099185760670358633802537242206035328376693770388065186189601508217920392002523785313097717094650264996585790041920335622650799969919758230701153453602624428611349368367016748200107308645610111351397616097374190135860186649079458073701430555006026029496096879117533508503588987298943584540574769177878735467477291017755219759542516173351985743466531934940510949439596928622514405958182756197007316209549464466802511145743871551909992130723972498696723606177922743162595122300187050170653295068086687044104136122402995376985526085626345915677763421295609466407197259614845388235221439704250650936293622949264423434607910016942682084023864837229659978703263033507055667896906392946776692042615413168472159797505392875713117189495229927084181511390327831348208421881739640589298843729423772524176556687544830877071736971027143413204621468812626557202906130141918349330218818446949369261699673828479443954445278775295783162928680312071576570330228707613238840951725423057034672828273025608329197990533472422648963245007549073713975144925490556228354937062111583486098976279445533599681930045022322693377591407104235726821220950694920137023410188526381227017882221014868343588113580505625441484792588947749515902063914969851891770143295930958990927281825195584630572104407628961612755264068337486886404791331266318854840391639380993755089591604947880633645658964512025231589530485586385545208781153015937999754694022052506574943263563381897997478861678850811477470377779967694021923099854437147221913862758493925597840151782517855568073684404572218221160146779256212083619192032181329825273968061625708746818245681153883456041787475863373440899010090937495338605654376303854048275944223682179521356632344981005722169934370483035964768962671321244507645001609038904172556919553731271124650639657409896448395126864931073254419396590410648638160270882526422405754106155066365918569793167558166274235506188205599662030023320954116391833778485792466110948028876500382677694837722857887001474298561669887559225045530870618677954052887513619365096781342689601912015505741084279947461660613275420567453367598150328328252294970046274663801912562908223368992306802601989749936196394251866634490600278002742074729783318949187652558823870381385122610405267798245997114999381233046354930018206919086814347526786417704823319226148640538374443089763613336025518303559607539520732964214993423774653459680449120085672290193868833627637600955437693100217718477496260945411949398198813546352431439249109918434655172412710671657202354612908764870913475957832337234845393333797622041506263046998011771683126175073869845081111843435222864741611427714468466809292844926162965618980077569298848727609946263893037917759325503803696458061250076048952087939208197527859654909961329781194731437958540518906893580267054061315956465646881564374482004970771292624128251669595488683423549021431162166856234635230176695011355439078355449171096407127121132819618061577729601414836148893544521778258388650279010053020431892377190181713203531013246568980394544490431565732048237518395322163833177915119017561015813201337180050153910274305814039166670793643577823036969537460034503914719578554608962505511279437992217526065063289662917248187996238365629776245393173213641155155341013843976797336510247112911038568074936325795000941795951558863019580515646806393160129024950686992438778937036428028455736183411499804630250743174499448515571399777862068408686066962578059797478291378613882154661142845597760599686704585886433352209199419048547849723734713723824863035996914171881987198653900287700437102165663757293288638647361893232102466157617414928515630048491568611316115100421180169775770296517316134666120001400378110727598903531741451350662844612589512318910373479156880573460095094329454614993891793325563652675450201187422443014439575312601649678879225515931537643678215566244957636873617880428420694936776392108176900809427780326782823284132956834673167026691140112056532846552817375369338236341502608438985935685836324205618966493196180798616447212776534677380611356359500489965055356219688916118213796063752034103876976385204730785712166932886755164257586643729649871200655521009700761231839528097373101396010964674353077997560481580053435790393625096347497610657122438277953902350269954882112262084890023701196628697136227907163974247180054820892834332257132653321171627749159045388511462716011184929549452984454834288001883843904038068406831760847667099365982627487162783033120550171710574354865272159941474483504694274153804205122177673881209809140569630344358766328196040112326536913156299650966018065244935734187553676895874763161140022359522399478862701592307960598012157972546785088246810730752659567138721583677318842446082910430323320755085259082700408950243701660616875608230064781724594763062870187303195822280568297483835601912481338198005654350972039723595578135183820875684587683587162094575262285677154533129846363493927558512352201194767406225686863224372874632145144591124603652337554098687109983245888193699006056306372145571181966397453169592953092246265985867003985424313006985155790636693327212751490802765934256458919076072928195921486992575840914111091677016479350134894873954751800893640500484142869254110644887097058968872979124276065884849520693727915130257603677851894828340970627019478599617605348299062821252828754866255567185947821467728477554545496209721113565632390459070106837129896737020323659714410724462958966651433006744620083419217105972109773757567090451007243658878898210929865539864270754944440949109801760604924900931113476614722646763224793960332699711598111146451816556559992293715879338069596752591136724613254635977161294853872425389153456108135941848760667093292547468198497760420265611479241181230351716162537295257857916588820738132668319185332087381257390067830297310019881213262917301577556515936466797611520576933528258132270301231676988513563833499788962812756537496134465163071211091599852433501831581504992436029890832150684793059288956097123045690404902943116022744635097723341729138174073422424203420965370761978210333262652710621176541446642301024259956114527583663744208670917319422598696713664582238450375510518848958277415317208017063696483535807391220857380297149692912301368458686889532867763216732003799664589750718550893954086507632076622152869689284991098085140515687106662672622881305214167867796345410165257461454676305765249437739233929347477600445991382969276054131044278484417757744955740605896546646301612562688953035806013930505799494097590506023797304025076644697999584547529395452613034751881888097537538141130976799276305755181965101787729168620805357101815877195720900499359810525388868524131984320073344737997324403588438225902965428669222853276491659513543228298848964121605941593157573977835550715650568082415565395602001183300711494283073398906690237382013566621476739101625692148574330316133641437787663380218348127484854766407170095010217793661095673196094984122062991404063417953005989630715353446832646484309230864894086604177960331720368130316151746906969338175304261036828231142751234466348187782279449942333143678200320741984031951250367117243022362018555145074515785278809778088638040658374815957020975736721855534664039266633216900660859362237114884000630533968917194742084355043751423539395571166160692343773588922650538144508017610417380866118695647116427597071198350524784035165657747037085819834972223327230825922090105162429568389613904340301965456268469341022372620197651096811466372466409351178040466843377359288249535957917862585072897276397388194324122434679234299197793291881465677811926221595834135329065758618652073721141840264072812288513516877464867962302702340548260019407623759475218457589564202483090757528052219856443874331789464970582155731749550989107121786768429971934945858907452545559889660853771238618399557134669323629167449175440501664242989161896965438397177039058553069657277989546110945888423283525678982467084931973939257275664164052688377604247326089616222807005091058479463995797786169542643742886371228399256028590993125576756934702392556608446153624933878554261857086267296172003550235869021408663366026408004566546765778589485226144627129215817736708496037255706227243394622974269793112525460873484832371533923619780136364487869550340576896126127445893343013171350605152748173313275028585888124353582121882314386546844174537236575421865808134848320886610704894889841149494834829290430388759836912575130659790759610873738261285635378614600698821803207769277588499583673770081112745827400952209699882809792841735251972803610239278296720450233487367158683651631809363506416439795936399342572414639215746518884224206534994476441935955852732142876462394721296620018436677975157040770244915811456336818393982216275532394626522754092653208081583938894881161153739624763676517638254209393379821553551514360473748668843554561599292105265948982151555677683065622664301424627457149886506358344698208336275115043175354717109854314151760220587813513585816817396378345132390282389427179901401360428898297037869220363561382016399406539064827879491074101802634024995095827453404452954792830147356178336396554331821113837380525509194918306356414636037751317820196351571914241681463511433641045432993652649608518809560808575035207870568852326383362588859470038334595105709699595822825989747051560018956131914110710600709486709592509513560999963486712553135940607530926175517091322123355844545777848299608040913703654795672245894972869096111385587663851003275869442271989622108659062111245142062855920104673506604235258337784878613070383331414474982066116823140259005468199407350264806369084649145747461344246956733483269500842649041563228189970202814562769077247400289643189445362860034896484486561228150947076599576386484593212282636017507515502440081484284520070870293348353655772717411705041578229519735399576627395674301889091337588296614266979576939107902042969907232543707997864180223035613585295956813365146563225347268193826608796507513378962213304351235632770562083312601477802090831390352867401077683609990398693295307979802057128437182527129697855558895322983713720807761747420037956366399197896675622306852602673141410355769798329452062378607555870410602588333021972363948466547308061944594435582606073981724208439195721074244650975028220824702340766762092420899027020777826460922309864466973351719834268482077171435316949624078979657856124083312501349716404947911989774510836102301598580014563574086848552292832171641448134919971866554955921895308911669861448289425088078613019129651569047202600737134458360116738202631383117576675061810711376655446812146270884641696466218251891069865672926219716503983553909120999349058559688138563175554751386895817223642298127487181508926026217335402181937118860439721828086316994054138536373067488070625963559954208102792495801845507129143686124325913089779352834554697023565476535813921987310245510726883510337826984144130488178290495209712605300239126397075098794073530976237004396235212624283420607806857387058329562340733320573260858799915973766869833213513805446467663022455490289631878492526136789893178215348070821658145931757685726607111971586198155434005722457762668278087225026325549356110706484695081508111820857060257872452937375536112775363384477650957193278040756343910190906584049472856755473207557673772703178535952879688055025831185711273023394889101406300376040291576961890542130462198815349229725903637996118795077110428697545830582480563959368344568158471905641692086872691453723487916562827126676946778424021864389914675990939305291012470836687846537705397954720919430259566700052646467220315135222014846567988989154184466243994878653418654333668948884872859397764325350308034369052498773247003531860568824580800472566358073030926724245285727821457832912983983821059720449144559223516517917856723138980682666282912098536355526807709107314175031505701181410312589425791610779895575300557958579654195217159169065509465510635461266669577830264129993768873528435906739770068251917493737337838509424498762965162503352951171187932662487846186951659541504044758012031648053758407624570041356301427821565323969601631137625584816748458858341516485128071621462639587341491834949198194242802289413549857341784634390766806221152704416550200571864207600731433311848888655743537750793842411546573640746700759149149730307384102819783129028457563204280261573606764777037567509870453627081113259795398883131822512660560803226972100163942640109620695730829414216056425869799810386911195018627904761875419179666852452639068847790549122692008723710896312323606285137434285852924225788201600973347986155583670630398248240718661691113891504976693260319235130431832126252997357315573669184822597571758635621251203434827521288948506760802098472517873965626812465331789779890869736906873428113654447587859615741407901332755436114979535967815079918801762529343751339066496641015622404709453853842746824569462400447517826297910990591310002718474559234673950644062519316264654750657977640417397761544805276444046564143678176181906441690948852858676966840605458605723245053397792806846549016069311429706045327023658607256965375053289072173467477798081202818546438230697796467863686488367955249858885326260740168125145249361195640250626078175302130789795010535342248870288079523586295326127273058005072421715915380782333037009177189053667697489909973108995896064352909615993285181134695132787986285972453213816847117926365834860839040984305529953692785630588409019736638536766748823520474576840994170789887529945820642911975035200679885817881505670769033220053503284786309187784302223071451902243940252162044341118437702751584169871391195002362515577192723971994751838490517445154728311197227782695649486425477368731577528407751294944866765928069962762886009737248480657888076528557063897350722348607391558000617891180809164602536908422337512049504084026231246480319214815476559718879524778668269336294163811564738379165090913505369836709641367750299781804691646118456676370331833328595018608127819135705771110154198416026902442488522131658350612551096119760283405954065881708608964149092354754677481197614404140429031270173459233191952960320842682361304542654992542179070426923992684201033918993894473890687679607865161759868900301462251339925369983120336749716972708756765613769970986653441359740978639012001826853372244023067057033534565681748829894569378822568361169367658575607934233254143583439754318677893737667958176560417911405370523245871584550026377420804737390199561017639170184199816172885777454786521180401274484127282182514963644069275942275354679555073017346976005304899861099709282682747842973976525105159433939414094843748258204365256522603940863463231918643965019210258964040428811848167375519707172146763010603211094195737574976844260955246683344860938174136453295011116541243794961924762541649726013457836692092072747415695191319404934796178336434910665977442767725957625655087642377346116893146508798674966393878376102999019396294288352108367801722750962467240048733608789827562947100404725095676468175855144429195909323502638750676416502316974921463256482156414168356237660721746101879481936299815438031004461192665933809491023356404841229844743751392519136282744864173097855790718128220019073770738292274620805841808396965421646382099798097600759631542605957635252293686062384668545229903498036577202369030220383405727640008421632255816270973524710857820201999074756406783200279175957044863290341188799651711025853193595744066100994911062664999474391270508459612018303681537699297761052609774070022160554383187331427621878177361907400855616392708511806670813391939637936903036354554317533929051278714098151488859547840073361041492410052674314880454851597806081316371675143524826887929841456497137611754854661381360763558799904103413082507722503763724870948994979499388029839727717818025332676597741046080280850768862194463717977472325196983222040583949469057479399805201511310256344380947995725986286644928939397062209845201970284866716447044226444766861146345883908652728251316365669559823464646736988667494375618976875133124325441785576116510614075117749448663514197010875823117982493253288041586956738699772138152431907276626875253754584134214340484227694076133585222391883844652772275749434971014203365175744341378093847427141408297218379473946872202693786018116615589089131284814708409426493505438183043279700621202001260526414576804950778245993645625291219308689465558187069913182751675395407433673782758927684791244358516328997471357631663539503595346257135474736284805015029703727034783222859737461478427514448680903066627899868449818973019801658510595997201203989134669580052036277130851847516783943925923906259342662904422348842989199857578354959169811540034912192570360368935454304318028688729502746806819812522528375443948699309641173244633255684742445547028123800489073875551653334539458376587457648778184715536718124921737497227625523011797867214504233729688107183495382721536372199119146379640723273148166602482061537270449850772837350431625688758909125114248498165534496201178006113590794357840759362138639407865150739536196239982405549475097016648841515407610936761351540718823729720206136098766110814810755334899499256932240931269979112297845564783431315780110092447927427882573388818021934943392515550565064604302882637600391799982009396529824700079282604383271096482953876581882298203776523643950389348616206075654882425193074712995516435560648693394165081925211597186455094756869645813690639741092669932781412022523885927714456875819421001367466272608090459420970911627657743563258210951842032487868877148288675268793040602225192475542370867018534102677770195368603436392888848855848485048097052595575568325548239970368306171763708590303814832710351006459279858863231594623086903233677456604221313185626165040618447379128793285318230062833137176956158720631917902963143795829636459805334268561601713281391058463566009547649580781769035446296654167961365412467978324773355773704839611653637052098925305519064778879224830436321573344960281587393349437622401467038821631769760819289797581121562222446376247599189027532456912794177031367346593320301613820348786330363531663416283501330069095619297040704656490071566897380262441744214355946787548644926440866051001676212761718882237355597769518111050119610302547340177050716827923978400333653641182627237608678076185157112389648138661503463731747683600438528697623724692307057546722520296954213786138628045465890636379707147653062293120347411563638760019499193585711546308713532441617035840651792685341604145275202590251412675146224657858402618097004673511149158260804378195763062359134542398984993173455362080577484627564580918024389148277714245991211556435790667825777466473647971947852277682970165374639350870537825601585922027566045761915410682591605347929202543196324371993008629933013363716536999249271319567823971034244265244728258005080747957837877843748400868285576117070203465648677637105092981126243597246900311810212157953553436592407499172307548996314686379553493053629481352689893878503666824032029880228523225632242327302045123524585647161829611467370517318727762391045698225468209348832916825994009385141030916076906004292077913472087046374968784783075643088984241761900095985196500274710659598102450500396475162082827813667474563827494883182703209845265577947460193491530555096510217045930063370661051076927285233898268494786473693666752814539902130197997836413145619646119819830312431923026700345516970007001048583602153109678496012438687459492195527770445987331591936953453702295386540049019764672371116760731257549118392847639844946764957612838372173266518896986548576206780277924534558014071206488834069968856263454852662817381785289520083600461812530581110297424013613491273727663055247272087680924385597908916665113615676125125301647632385122750349268994704154691649986174695538787664891909198051571185827678327756455154694504371395928326888831770572553293215403601822426110359668117609396926909310355517915398466166416232306519021867738745636920922335014878868959610499697770062944871706198709422906980918356641775252413753224637553946917094393740955924974246320450434658066341367860640279591311828124925212124624887615625257576727560992748626852160518401601992708137976570759933024703932413291228986649462315537580921966158254010011164737934022035572148288124616028508327253025707432747049050758554410714060255966650386003595769019023729080040402816865278151240280498905601988470295359039543904957737270146527806462710162689413983065034952311570270404199788070710087812047703424056795756098052726235307163624268704682096497929145994471878909595522484113111680043104162209125057523434450080513154858956952721786514159097533814857198138563888822224537888222467056502639834435978340731119212543519396101305070426690437555057802355859151559078037534625193036900040008252411372180428548249136387445057815096794314623615311802006557285407138418474264815647754409634159425313495191022690449778307231467189164101804239185980933653857279485663020272182471096946981411955262806861514052789109712912215144749057988518999781515201200830682202556643226322127346927625649525993122245925700508818990271138686797073885105317296054352535692491285827032065588617201944556710481916167224121160742419037511353264827962338609630933719773956767179688388153269654674013405805069264668045898883798550976757064519417307916115883145445737439150663853500940385495745134575548979345041565608504173714003740541321881882163242604674144921354435404317371445035386225488592444282566467995991870550014934816297072869174812886817125809889456347480107324214978209148537035370516644053010721103541072340825853750329477960685783468540173577349038461265326276982980548554464179846522462075138268747607861222831925400000998080686596093562118366194862016550591558302088254703234358866920048158886561591845014229612116173987913245112551611800334679961911966749373059518174887864962103720441660323377105090412050580588363992111440813654934360329250305610024733751495516682995015372027698418245283413042872218363005959215288112597579790087989217180892420816706597828858765153364444074179733252367227119298383452087319115364876518969463060723324851044791115362997934792298501025682706675050273924840840342947453825053779991978366110026061319677395286124672830292999281301808533243312808370328840737375570479768994309318673446778744777442631346082620318638542263181167646041585558169866216271275921173967267977150569442330648953025502564332808998426909276343630441626652557577920417411341193806429699270076808478577326875652180702665153303238848464147856516322753884042071904202843677602142624239047874007564568292343287167722767506020573458786123295085225254170076882647628225920516490056564275940866619774317436289211685903555797870580267642532702251320834553878675375966990142707465353237892364481550408533634113030089850007607142350813933875505940569665630695692682432070439577344118445984556044110999600192417990970307505790503605106166696463037115261905572998910710295023162585845308054237531702494329172303142501523712053828457729437226880783114690490034407769376453244322712524502017393723535006931637159378876710454169965747285345295348812875977881663545330332281491886151342647617137418460441617060224695513615592758057305376995590931538864107942298369445272350871005030616035823844750044859211272163746833277641156545153008312579373613599100244964097235503227151945352239140877519256961725949500431072718218857586941019344895009874391611128973651550194842889995760459982517392477556564596196070315498582881409980037021211516726673483869223683694810480532355242610787225370587923417098336284725163893363336771863229466908374687236883641164000489497022640594748475696011123031503672915089739044723686456914726336800640808364482551555780838366196029205034646982086345530380869032923707989436631083363649960209708834530196883614699618863044469121391496486159522017485410357609193578002116986673806377659853321365884222705261959630119969580926517535042898637291938629115424241869416491670197721041741423801051753149655157271300701783090098471391064181444255756238499525103899101668065270506670332673947358047277891771861224452519784281558450842823133513751417361040191018142008284781904802286815509762105613919789854157274165807531889973420951494619584647214380743695125645561956964849633087550038473641782197114696340008070156961829727603946641646282248403143978734964666382097860344413685770758671708900722484486935075158893077941380824787408378074057526872058051819969277167116269456621048452628111495115724562350660435760463604069888479777761863647314877399811406470607434387115904028410732542694393816242312516827035208663174880141855488554048818959588275971386421214504815860621119644010851094140109823196424477735584700611355919232815540562317131383189991648092930255837715671247694126897109756113710567853994206114316615402348665138956243185764017800852514741700021009155950177468011159130654796524035393735987956511437235231043518901724614009161760032509986533285228027444768778243824373995921489935271828876052802812616370984164086890235342406886057085343563584785243633338270749425015492088875730086198840959775646300584894711497319346270897318653372650180552150604131041641255410169321885835343362149366348764353538210499295064746138765446215198096762875658061507393101882756489208051616184601661098723496640999115217328133032906583681291146952923107948312285928237994608450217715517877284241367629403446160352820220561086819860884912341932350255897184584489743091326534883913150471164598113780886603171293346302245894052519196150943563498869998864095663834546576992380525305361348819586369616694947754286432987567549429825091632943577079244898119582924765799475933491492982335939197635373965406327545146773055813378016533410617075293292599924411833922617905102735430577305935874440513879322871067061082614480221921862251271246128138810796957779852198600296909413866472585288487930572477639794781461109087439610309605658111241815087089898264923616860770838645892175737815734727588160543714385028761799169664598952624356161240885067187212964535765766961567128937649754050228566181757811905427367159363860506552224427018392581484748640294057387956869211073064075031625653361791949216712258063329549758968940710085253328037466252488362329500487462505250091535951595362714770731672556334746672033491193386784040117419307114919201414108389535949344163890999215301171952301252860981707791702537633368378247124575744256234873420611200352865956199692497327442291553855178449729533019011991827039201383164893019148557250264845717899603984497142776891879289368465709213856958176462544308823381329865658201927133619127778606079583202808295882842256437145847917475189389123305718363872997355476179677091453177394194609385108678690064462066729215803055725588466751043167026240844962318996973010810607509678902823128963737412377653767987533638080870728801844644848489821980243887880937345361667198145258986263558855247863701132354447524356634454868166229789343193533212516930127115548468832721516578071043450365498389599925616736592222150854830954949077516740989854363290729426518482589094648464044280384492185112383802187773458559730921525216413475727442163476722329572341326642651027377240050962352973044776403887297916723217046485759595876080951036788582335166347328085180477654113040178506696390050391962885875957560761388849020434483503176865031747140432449739249360126867842464094220940721407438854893031198075939828471201486432390407994299089538673021132117781517628187265191180058405360758786187212277209237934766643662488548511145158966406503116086031308292827787128401899782980100550250885484761970800839786039885839587025039991545389830189359904964373545529795731729476270333266646924221318811809649792879030608436865474639186158995153369883050184978718575142305008298403223197295771032527060906603498678041445131085850392655405688161063464395680254620467941262103785124482624506386699853183269949672563046565271344366072669035778696334141890123266199441571068998443294199414309604882018249854128472606831444986914609460244951771729376523584513841778213151575596831926989388640409867940028996304501298310239909249340505747754065780802944450155569446395552896089234272100450427739645449577626558432482541040512635877569807892267951117026463828581082383104785886998039110168886023593378276127962298353111709883962490674819234787129937527734840295597351228504472524169514627016213485769963743159891249969754805375999612560058467391542337786857828458612376000643242714200041473437347302290367524602039009630729227757302135929282865741200243229566065934502344059844397202288878340974508350604685997059194444969450467717129086095063834316720186604157992755363495643690283620415306959313238203143233151734109524269656531673177308364558313866749870117416883790005241803685662864068531412404393054358947000775976225624625286233220187591881817041148381843738437691308628451967770895385967273435315103305354613128458681574221557704721935834013299327406282120311616756190868592830328564040610098750138570687462979594462845943899004788622476955020952769321507183342155478970342243456094794724382080624570830300127093771803220574059853922192580626821983618533101038709464889149225399723393105221231215771155064974672478404841717799910053187652001886053070111791112899450852735725711438628520534247777835734602881304356990308162337724873886564435676431402651502541987290409660100357155147241085657424740831462077508369083755502077707383071171562299604596491589106809597075312517832616683015600408457076383995596941404765737807429149855349729584429208340205787867256879006203438424606042287978142642550723063426244630708418251142757865625035875128745045341167344849894684198765365755448737190434354183900011010607730364409178124039314472223054092660191993357499623022272819357156189491648661826109421284755414619630375622830043334016426833952433503226506050256747679883167623482087331101370971791602110467526491959365389569233767550654710798099483097611267824513968822876558833194888655026345892583760901343550957815189281042031046657546268813016830464406811760905590673590841434889259635382914211750438475638635457922071135990194006881727983087525077677463775116868386240862554463072354242703282565011416289467085292919013200079844600205352825687423344663044244665637543224582224468955852591908271848334090734962313196607634366030311762879182978708953780599901683608847545894447336400692516866844041916785433548599531424905781950854965701758929903475000068743534672653954416430820907396182108330322138376268298999150618454976033855398885785130592683457904780730834444381519420603529695657408873169258619967961336380492566187179281277241001782296291778755079950067739111904026105022618847991642641386320957216949281086202409628430807528923877994713655249220892271236390532147138910981446197987123744429979159206350827868241613242883096002985740703248532096630791912777625277268529014437826028774693217463828568971850322911080330029969582171561485639078979062769843447479367569461547648804405599258039822163600472028602036481784335981510439871938038156475349093483982382661130273273355890057686503771129772360780172967493378191781972673185868881005916681349963165192475674381128139180601852553651942033898203599245940799469341515053610303231469238718459746839449877285060227590929328380058627392024512833708602576146133993349231016399478849109390021657800992670728236294792278527344226386931126913993414653325813285653058465070070888799360980677079934980677441737059594828072337326436506914389019079087894696316790268409153478506396736524396413772748923821061222740518362247368765299439889912396653751882414474048222767134338126695885175179847032949197615593117504265381728491239699651404682717212353998477204076860298021138542601830638199383893893723960713911950558545716560141320562855150032371412074778094618923617950464247045730341956647270675455721301370438124525764133016130052582222796556985350071103828481559960294049682645797697341108172451987268226085929562201774650705723920650616083652538852760256665428277890000549010046347862593521735568472147875462401005775803648439537250415144069285774366815055237184523714045128625147411843789869315988596640308702810451058011537452567421352822583401453201290174351224956375735422959793539875284472071711499234844848644693359555163342225475482349353193793634427154085730459344654248810230964558510284963568227572819803567457019490422373018939805949283071435555740547488546499115031502011378103437542114766525185942802723299427544221199967431530632842170850828668918314173489271945741310032308832234540562674810379364825824882979108576726976979239253261034791228070949472723520319615203251865847189751093577931752646608718308654096709521788492982240958302226386937581450500305991061786509585087423914982329775520189867851715868904286974841058777008854797183772699377666985527020833284184549800368650303825769877818262468870560860231466276443088025073734130101839350125863282803539959716867073085108055227738817112690647147831806973848769654605661218233971866061673211262321947814821602614269501041756460454526038740513301216657130138406208835819345498858319669966465467924591609469626156032675887883656804823750406916247016123633607772974626813092064702632939686192605924155150614272113127387203341878104113372209824082672877553631614823731770909887465439334204296311905392031993297391422353871681390662036737770223438859831025322910156649364785966781466226285199366699101972376227460605322303474780376801695796420085164345700014359774334097515708095493105948022066405165085980255639858461589013806166084977185463308788754106976709393132382149072909996598224322735582606085198644003647489854158266660005318727537116800676674538822503142017641023104594711050439547331471158600929741134330160605866514933043352762227077885361801059446310927949814359729879346479384575743597349419591512837196637161336043666448005899874766159636040480743450666326660422125913933448791907580026690756258354118438006141604532473798979939876128667928201818384575420080675268622993949970758361042849145058888188484244990193831013532738877856788742995383977062579001368923002137536368961442294198178962636636189627238716615074286715529334350281135219426831129712706134142433433151589380742342853652439182551653159252325583132816705145424554634352197963891176754479374080805082637593150633682804754508057065551875555070836978907179554079315978184965570419188569218081173881865110887684886757826006440296496286117685359098027245953254562831906973276062944289976774938890655832642946467406664706950362707153681926009691255363533237602048125548830538432694346841328658027725228112903268584459679764427198077964766655398442148808638882180162441596285199511013870652761163959147836173015540154258694226395331721719218399993538905434542176766685496728272134974384669996347145448491356883489707107290356216510096437399428160595768441376340087856686826309334830032090147473349044809817261029875470865314116765583573218581482999279683674706397370858959365443949775137807145543434151814780853583570154492722527615077699935897636506652162135180684296649668968213284115605073039934438650131274509546529486456723149637595234196589835898749607282319394897585402261636895567290247465107063966456044176705462232247767510322135109079652246454718245738889819063607943039991030196537640882749496576976474394570481355318637014299060609939763977816600808644180311762576865932642166616049525133428671724364271733398451070547377354752509078789191041724860809189997333117326064085681017660040387550050557190168160344283049044806411790568222375862158476847733178380334945771595687220039617830695528083295578910463832680761168803000696569039691775752419075890566526140812396440396045257593246784548895683069340364396522644973190591291709439634607977172698454172289336825156855155498689785992613098212942184556493345759035545843719713400194863931064399255931829169177833358574148092753300600768425833477035799457365069959418293081452287163016225399665249228881312067769897123431762582790077197357047890455601514956608872269192970027064830927976615266709330735144359832770359836161823431883803699818396536968061967463040386346597247000699779200903223014803173254668212259189867761391500496108627134430290046072043332845873631629255075830714399254604650321368220213944986188973806603841739047573388933912342174774034688307303367428949321334362188227850545850636654643997286061674152038063213499849222024035234078938260823490109088330055918992290278794059845307031140383970909014864530976985365909479969380415235761843907720348796900346340423969504333401700329241186627033803451921083124986868818180593013993304264123442113243005245593878574260699710062586521432473804176239616776001971973797873701110973900830563787569672063430329484374978803625600814346696235977204858508364775184533435315347241744492835372277420482695142777327875791423555496226435306827865867816949681648416070552484745463893798781938289811318115408512585344697867241284516390189805707476032531804660362321487148157036385910780707770487430106425412105257451416569163317723407710415056494383461728101944056180136564414320439263790711224017651375556392999725675962050812567626712161025193436940192982467928046731389022916781982365876956875704311433687738148694870457818968586203208679455673167352232244423467554084869889232395473248900692384580865373206842919772765740919235300607946491578958918927494152836547996014046947200346276039014783355780203906725233739866500205746573651513867030345543308092949393392557289233319354308725302384432038205557443182941034133657920985530257008818803174376461318335261865777700269466409388585347955372150622630535891776770496946681740843127134205122736985214122611345342909223705050691079598751332717883515023783683814715085054975380582204114864318858026305964565902583660186453390686791034427260018234374574064412965622600162727244889369233907812166888163906809201408284631143925644722176715933369343974938429988038767698621615322856880894427790816964473437029911192433572778247733787300883556276373753050423747488761310101685812591521161452404919131262752263998742755138664580626379547688288242357845367447077280495228857350223676373975437739347669159814336900619799762385458061466821622345887829543972103105079562742583433734767356490893717743479965702301514771337034580903297413173007617035333452123457997887524791317813594787955824279895683933975716044285774181511167225976617918325175970684575864267353548233524708038216844168288075630830281313556718067566444711095403503478652668900148170230487748552544242859982351813471194125393370191783386128244683412050173500537929841806592774819940606056961501370463690208862995153264572706645896889567660296485842617694869571280095573582165553772881013338150578621378848515213059878329059809090197430577525791799219512710381349102421705259148285995260103050848495110418212000774895622057675015190146762163549827156166362247113235546867061319982173427285794689069893081933733874331037346932680176792999332783333196854494143035197383496292998516426466017482154254185690423530539119414310105828123718057963356502259936298321824755227421354995368475060935479378123517785625598368053035380642897727433506660141510255852775115802593645770254630400866769129065199813241897857769461714649415576718160348954804958064206831107600428719036608426350814756167299901602548696003425826658676205336160569769100706467098353265257221182073272706674979071493935000093999630172544671472517686222853072558406233806925000440161624348428324106618415998916543644984538518036246541356505383437581117306907819523248584961857131509205762274747928520665186017448155792751848808265416919372166332410992369962190764377037640454019698053938197260673204395638413270214478452460980272686839467409245309090853236347813790954289192417727277091075295983032936621892150439671666303408299045474084617484889867127443111822486249451048831976259232886186311297132166446364183585361956549250662298307483087092683810267833233097581266108575952275198694444142475738347788705905864992958345948112482447514073431011197594530102000008726126336948386185075017323660842846523309231140241983540647754277080429189490237190077256759363922400783212991796560368616386183989260041008733886056578072404451253032602514515615018112256009922181537986977030023906779421958241797975504886765711547461211967159095705479417787081498208492393423134308001037343673780734027133073489274899396888601487002723029747634194948512538801901746824198703808632327709320933678272178513665673830627781447476285668468065363756960166666661578248148447271930178822164132766866136957547792488002098229086052969502711078283602532540724657061999463756709925911330067699575872152662708248470450425130820154967113368664390781346887778645653294999006641831269556075351710328633056503716999064317064016409206439834176587964004572938825170828939747114621170010105402210688177407201713574425094144371740666677976195712941183417996462182360303636887473331696348048384785958867708346146232667636981686543767293751402200508909373888671785144535316152203254667886470830340733239663284419862352528437844676002340596111121040926129454350247738221067617390129051783902962228387598973824772903937446541209040705324622344920920285031532843592222589949933774937523038902129085860093694899871868040795998760926484170669015219055084049118766942101850442101991560759451340615872531973116551170939305208056582413520749313180561728092065748296097381755743276760892902891969352976998278154316967878497589303899238311018439833755444691562139783534900554468535565068725099461367975111161725860924471828612713982751554972776762147199319441156050844170703669848190798512106215244050689352766100712771562348351269112743589780140652798976401494759825685802977285885003114463687112788934226977648587114744045303332659294169079577219948152500804803551976789601692101440902376554383628006534548649239265381638722463842339588873760797832176881052293723552442748753322004517579620745180258939446885008492993293341681029242441879793728654438791003867163751541770549798433093559243645896733286066843373254386170786403883707449918023191037469191021204726711687212656396284830227090278717077760527801958511655361115269689165621073760642920248646352231999920608419210792577767963245969135111929681957059443193637183773856924839092369939434526418354982874630571893125855840670177823805857426316540909426454779442651204798549067856252748401590910073870226475210097505478540606060129219585625858572020922816577263804454542619495891403998887152696579850672473185809489752906546169578229979445950727661809157072550631279148992486974064205104545239893774089840613525146681810839366143578937677513092717741076038707304866159714065643836089943321872276895435922481412162748362156458679141074187698477539814696300154217660947214671092970126570365510498264281445807835607339660354604009803470717211935743615387268420159079788134932088661408245326195341765293709080190960485829611484405978991310862405388862017582462439547483027914012355423771975509779478177269707360558783150517642374314585355196203638589111503521035128451063782631143911010909989106971062423281203831922211840674566127484988803524126443278286119514490231993467680334474052754282830914519491736219983893943956249281383238000087818016928368820944496829405373646725739801425264225754273348146285478951355922316921995022661436183553618359346540573461496979816450367079511773875777979604225773694897951566377704783978671828172721689851271603061904763927138238517904990145581667685814034057858965210569813718254962226179914012618618364655615662469786116433315841973437028958373459271190478986991828187392545813389784638295921306622659826648635072718467786285660049089561072519591931840390968142079309573429840248768702465517167755915995155374756004852426512696247892552698174160224548298287849687281080181976546344560509989005742333573222010334995864005153846408524334934478553946081456858268669773087504733926510079917064660279968383668165486172299733576391308045804967012947237658435231290408083972028384792429922948234926051131600054522485884296079500542790679218330031478360048952818829617115818579664391038387921011785766601023813882333431203873185391459798571289637709383934621890693705405415101604018046855467242920052548590918649719333304557354443465251429330026410405201969088913239661318756768292881445445547130714836729435893564488071332856307257083766811387620685592177747716985244499623451928698217207764864914011239386162323418321433295579019428188730359381044088292977371057817061128262882439667538482781246159411079413564005146770985946685760553952799736684150953410685042041543414262963548211318276684549722749555208034986687188548108844188076673406159910755318574116673227989883231302817652726927727937188616891402207170556889195507920639021148477208616610207800471111077193746877265438425490071035936974219303358777004278713907583207244158429289510146405386140926431299835878651142199022514592874644812923097434710393337210424767658322248828453904272301135942358564879572463246537303256173679794879745348643854953131731774811854664967397740494157114400813986572002389648601500848046696545889372777719668189237260153546744363705390777750837605287399913502168341298717885190828974854880554672065207720052750029892389096085288240956736790353531574913691719462087721011267331064921574194933504255648265379161497561857577085912709921390386062117918443339398395368429492521916791692526418720880184417086894363792533376337678431826075828486271372348238647049678361790212572991261476690894355439772833227377590897107430726456319356635268698012161197223119313819170086048869757192337554682845642845581292381287593774880390197995268545617532119544720352863462764334870918625662410456840544580728049725921101419081506061668832200163666216103314362204160936964310395907843433978242883553119037783415561820082820453700603317396625417956439359710007830088837144392529204053766724341967719185790136309971183267798677697019327832211403979749089308757113027745995307640754310263656272240439542361831192405324819425722478242922876724532122657905685839693754386667110426488137477639077394123577387448330336116278270553132537388432730462621518332642507768343016473160952974564018876250976080050211673548667759903437015852339698599136611007678756376445975890537299501551244250283682670975200657092753264179985418204234444950451434832612001249457947923638743525570391090523302811270425680972387856616613072123934385306715611280043738260416574064764479151657715343221064122229543279970002220688539137976028848852175060440348940485549973995855955808020795051962753267421042808009228992129495293545404452828597134090376815891531313719100517301195567631807136215583108704789104794370584731739499308941363789911526440974327032196092140083588852083965227710481678715642666755483069145824841366859848146111713784537908357577938101304308137456691995467416525291162213748074666468198125799115471022261807463541287623870909239515680498090427898532050932117783138545399576831378009979424010439749079242668901919190116528662814769653311128880290449670416909069058396699806920722882595786515572933323214187266200297445593680702645985944848616068946817750031315303179756757298895764430284908250032725102074594349024692272312101031942587439917608272332796202201085489666949201336680606942100251185597940044830283789491129562655583319726718427618800825173913352751306778690135160748010349828863742967771917286014860980643625694940756150938715901528761559147851280250297540813993184813828809027807642831689514712661484909715964980876758334615454507979551347551202415999101579453059411615453119302630794678498788412943615598165530139906453536184888069499426400314742583523822723554178409775233844751825055774144777869545601303629554694104262722446716450552079911250295181156950817058451402621742756694430036271657813456962639428171383505175774451109242133469104023802045873679424489537263844784507159081051078880403548105890016794229732447897271336763976102320313379351934368499727090817585463438576239114595367400782770960027571985282288211811055473690022754737246868473207567594243242162007340198046904170144859399565598871262387429832337834562010036173397859798739600095326304092500285252081821626307885046200375269832085374156690227768238223239861949527366948193215772359471410338635402793251772942887522168677890216667203011609590642750235156659499180471690046859359064513283928292793180760090164345122561272685048109702346798397373808039759719990470951685039115195237471447706620792983151976530704057744328407562604149085634557423073787342961633749331905984518668277760834934635382348325551460110565200714401630055705758517828183117111197236117717980828864762824273670251941076141644934539784194463636103721094189461473182637147729551549562005953269604303199686934426235589674303499374061730441513300007041420642099412805659213926048579200750772915219203024806909798712005148542830690050443938067424183649295352597546152113155566861179904300625585107020341118844553346544244283974897696582962208323966917263610304045787456737566407245975400146039198039538874154580347284075687364151193650982058479168198599985491842953313377669857634582569714690667996113369008054057047991416773451705196461439521859915660927206483450853414461518853527098893123197029257144421426458242423012943537798768756294648959884192454823973059105428282479440382403568737640112119822696734914313093251454776086428100783389130072378270605371862097370335246420235199298870122477540825623314412346726821597347470672764223404673180585556005115844038672727186409017747159594400032880227215171211435793059241997759306797905542557594565858914878234105021281900551088663748825776380297939124481160372019022545086091129885107256870600473876446382938912502635579396332162791253958315563072643471291583418712046096360286538029200426456509790186327416173977623524459964842054432466470355398152552918835761868197951247298502096466223437847449548910198913321604024521012182123401196844158393823963660264198114682546613387051294347373590376401141820661733177611227192066251310537347847506869710217183355485953564333829967712673230646566479167440695128611588235525131427607097807408031689665626419069622375617810888194935622288607189864501139081697350315870941874824531198694998233670390603679211166150125114872657404944133114720879940283542988968572548128318927668812391726038017820415034192597274644064548175736512314899936839003813930423183021710144613361537334067133204371033999206927916012658114900358517360755241881896604592496591935964848314652158873560376821491122760249981956587320072195818770207285251037374278735054441371322193239861850789079966868113694587370700089635502945787363287035953272119704794538744502781252515709652337290016957728555874483128170114845731409301121482789679379706605875046579282574439285750120241204929595694125008317996282111814084703778960693733176392625827792549394004566467147493069759475595165667411486470461479093277715965289723128407330475908722800764374458873489081545914125869079788489981607942854956858887267845879960562309123306443476290881415312807210961241932040716974846343515723508382167365559494685904958715817013498572396595030229183054870129284015326451077659310034349426401064002187569239510859002996820651109287551376244390943397909544427022052325758485824152141548480701604663923183025110055527625232524458081357950449003340614237999102681518247281156000998824513659320677172239355792095378082642863727524081495063119676633608439331208923382966248646012451082079569785397993110098493506573141322783651364754869941215049355868733614586863163265123126592185266476091397517645719660511891949742460341135376529932722517329775211459326899952308716802862174839905020517364621164498906825398644069074834352945640711167878704604078794347184800228549507573731421260114305231404806904383160251535123033840666467289337825795003582429169086566884549776727165380720856789549348798298331084846403629525235701426622570148843833234293192932457125979312069671256286445418091493030800847959247734384620767386602898411380646068801053010523746817893261367777439168093005636256917346687986144146608738787982234431951083163884779914684595489812208632880453733354681540670496603464153717589039347531439690167127877217967180310594597025252645359371167656941945971247880332552769040207803177030381329650577294971724205631986386473391947133680904781349306421607817383694093123473587859900184307661198250502502261108561452056881232194294464639561882738591616704740821701421685853032560577110150484423410995703936124258297247536199596976842140299318633216103349301369098936357945268894142962156096559855628171571034886396122326201155688082281664223885475125655162505327910114745944227811269884935735523836976183904857573128638085151621474729027441558159018176520817047074244052041941393329158287821368269384942048833405921627117391593069643429094997932882248795161708171902417013182283633158076669557474243223551807026295267862396983019769305900526230637438491834025803981535865952394506160052683918626211483245476942642491359111615456387914133404142306788482692691499145356826991434210270428029698953026135929927530092934545351237584327046165221491734052028853527831695308877801364957973029180440525319479301359910244243434855509160469223316305752303583025136523663968225526296574772347143884358703544698056341591350188208565636211076126542857464004424165417623541558492791316563440245523042641626405882617655107563378644274200413331643187364626986323091854959648916786643328725923416306675143976995327368197350738369393434669314334552423920243440711831199146008197035977533103957445876930683891906532189845607524681437017980293212365022445425702123823827491948184721598585367419531581859355852575546229193132917591283873044121265097884206014920561107267665172317047160581519260870860416238699513735220176382102175260437937387556806298752738708992747600358539269842063863076722266639758628890456217529536962511950150636969634441205400172604635631233057885602530634209269498162769513730862224894477214903785912332847392020945256975427704205720934288292529831865203267547173863236845676222149100775507518012443323643849670241602018150240612578757056056255555521785691350016256341461878088308527767195197292739604945964022278796006815633220505449816360921344813176100084378942953392463764489230208081072205068656200490243517546002492209772465682724293138628883593800226433420722939154354471423823854502295134549634325606512270288892046883575499868563765296922687698698236799701623741564315777629765418181015036114738507376673878700577858920296803003861534838851802321753083934549693508043636182826728144067663064799479267479393485366362186032487336007134798157696180730141960459853785992525026824841290352391015955066779558368553052284746283873817824537394337294190125649574873820298366248882588828484577841597567507757443027372086074313226321238431388288221665449039813485011212360104272346878303361703657834945434808513018515300992149069567105066907274096367546442743773931096114216480194101264818908976506588223272036384979206667586859597148627226896521222063601822303293649440318511890635203555541308570445368887135191997038848265435981664308364480110797910622696069076923475606143880646083422052323765066168111281200135510096216620377248617008491327974220426547790991270917362113149713236989404623528822784496902499817634914412349894127532128436407267476353394333627650588241378546950397371664552136073133296621880813159680982177467120711281839335885087664371418149995112304472281219779733254336553445967178180631491408859955494424489522774380078886344678924191036979934797866348996831897556316356264667640560175467604200783227025181349833400493291483231413358494019390723133991256318854526286904608456893984720031708228506695282494494066251983691820680480866304297202295948055457877185980704280141429375343804058407609919842502214469712795800105185190569528693932030147262726275311972230992635513001814817592188371250878174074784015536928781193465558720696486951777343123895088871188897760575345590122805508246290581122635434277121036740047892106784983128184839044464754546374389448522078035848078130455216761430149099415477063324665088230423668814005199862840887503094177694021720042824255758116035523468150415667674421638391525034181775124588373427119652836892997183693350821299010022706119941329959448170925112891070093229665041785970013709431087140792038615605635218192310448686820490605538335972255034108374745840785045937629970608663716446123408372074975546312462448612748551634562277794917639857364945863301445733133412215944077947418942252147785388710729644236815990438872415730953050226193279458965034205703375728069888476678043072471629303084686525470938024806643319174192511266747755754932611672951686269549735176936676084995215713278315624739064799348401051229813789082728825371167038713167072120027214059436038687088566257934831004737435639286111508925994723384706446827863808792783268410100106931678839956747030548373654801603311946981047864300807375923142957723414234042546406252645764210996807342063298851056586475115069550678962998728728706591365675366472201532425412421170314701705860692001113838896851978437011431616958715914273285437583861446251401951901332980764113015401064807050396649451713835738352618039995040489310399906850501532376687502468512593072274554954708863089528656125209863484099044122601982849552448458192080555841366726381285002245216848482788229494223159028751714801782300959877751680745487521521281337570586558355116808024557519303977428165350558195654626961555413934253797166688789075068921273699926126085630282315620122393787726461153583345806360984953166361061320748249306378396207442559722352622406355469390377095670625189211540495264912543969777756346048028576971366543152551904349455737211273985515611986943707703843105483086901034948810509085105539890476418052817841533374668309792377011667214925925576471382042001076453597386381193711037172076412664845299370497514420863972851333703996916004772106853325619550762889927556856733180382629938549169164221762089086165921822407029903046162031485222325011146372855574529778749141454465810345040350525082056494800663272080561813149489641679372881640357293787345424210956786357863157932393932216656725939856045317644148635781399832195801087280229087392170087996687099339584453925101469275447734470367256213007936400651391564565562988801443665246661407298773581033010875052084227214823069989619091151699160669422718791144121609327578310257619911873583588121833683657689843413409530647797249382083580736973443981948903788797906852060885289820219216767344520396929248099583190834686213203508185765000590057929363709782449552811277005693649613742823062833314109240111889021127002233661307419291444059357196228037946328657008162690270215602991762632586861897787556336625129945941383971135011035064802863637003010519018554679686877619527359999825196954074711101710725582853545389424043348517487275908432807924674750127768148302836124162301498163949950106934191376518711759374401238972493440274279968311218142227125917547442124272194965072899478249993590996670654374240508145246745000906411275767680773031839854391719344476058806634227028360630651849900845567816589190284775491459176364034736909118680504264518781400191865943099612662481206440311396319392467953190128636036705542532721172919937950563595471022590668198621780402193116255543612037379833234259550713547713115822207738913454800658613257407127243576416682362011445249475910260335505136671781336340272912685402721066918107398618980763008559189923103431389363132472762157724511981407447429910777190968726011275906163755009100542496877390519491514415709950392648779904684098320062819489989345524062959025645446033567913819023201580880840026906279281137660118558109222657890549976725488021747013865669335046131045646713273235227567234355457347899603928646060202570751814932609921393409602261299384726411917443097326575958082983094311906319590683296884418892586701945151253959839216979793079818786366709162355609950578480586426831741096521560803535575553696842554384356165059424665779382952153223970677172265146816239730877736222265927705465739658870114848597519477771257396302101054684035437275381728088139451669015817220510588649592062799771244436483689813594473387360295086241979349076586919157343654934126525317156637923791637488489582845577465071337027596299316530325063717537493361428775814426786408958396701594855536149250657553827500579126275199549758611340739496988450187110325920544590136929303371234726924588036161786272249336169343425054381097202631482219127365037187614090327025978759413918320377161687145384053148027287878332876540311679956242124366062585012765179411850144943082162297795650348898389798267643815186206365933720581760071425207037013566498083072515903403508572948723353232615599760769964417357135561444416278929536467150727987061978056992806776209569950175079456248097089628902713483919453887531859293674067746381001376560342293591230519201139669259414563204227052771418571620863337172404670168433619971247487735249362017950100853216444615449155715011315963358032194442229640694993404727199763515398686183107647084575788616392713139676324072365899419987867944497100724682872162664047194084531720630160083961058221209503917633742993770579911851107477329337333444450366207372035252141521863759334408083841521285437037670744191275186501735643466089975602619866228369077190152949102467902409775470830754680859424066505023525143233369082179774719425778580178334873887144134037960463376756850529824735939548208736804823954094365851952999111327343641462798498041984579584371258175256371911171050062689422568112220728541057551398879268609605142950130385189827824916924611748477866550388868882965938216560946037991623732237460471682078706940492705441172098221173390177517366748010278872105545149977532864448295398401989306167146906539080832215092865248372669486878334246935597433295050290878066498934455198523045984186383772094290689531039796053773985030432575846279732001082362707146016857793943659142965940176999853667967499772949489848085534350730663637758468731835338280421098471630992833623692757252648989616137135338017875762972136422253239182762970873275590800912097491161332942143768056394286262394998617767586942550848927731545509760606599196211692724159872831280866680908688472281259304505700712014043036155257320543925243653051915426519504109256160435654491621660899094454590080239092999982120082757753424878697129276738902748824653794097382050258166776323182465358812818095155821039758748775329146996220595968000223314388029318568542100391977490400311745478136903283411527215469087344636114949605405373237181352296277274608315023244539149969297925042748894704894247876954505863140604528222073247991076652788200251746034063230084806991145092100830635747000922659393912640772328652490683084243615206079993647093584328889602593978198531448205324047565039216833538788737668318443603657628468352417159478896521731888676432528151070564695285522220532673292976873986586448813173534523387116903820115845390610888306188776230280020852400756155904918186640434365086200439665055830787246535293123051791564203586958968224256098557346239641193681886454252869442923775586253681663034765061875222144385048973508169414269248524425448812223929399112679534600332910007948363878063120656896508347665213506079104889287871695129966565894553845744132323155817430440258667687649639381925826144026151984533070936995784364500951732065591827367710202743666065942304503941103471343404019625804322971366227126600030882027490829042443633359751377407064551840605577629524841367447122375842128212623352088672435848020227227373408385022759405261644128764371287795091729266554952455813239553303842185162435782209070668309155437275724595670395208119011913992841537894304418394122870263367771839339878638859599744276582924998679736415168293039939125232116631447219892194808577995807370957458477402176545494489786854276844557784531680013907098201119637201078646440264744420233540576808196898032122913081145998484185627223382221715898008783532226939190582625295766331172512992210652599688979530954712307631710126731808441620527189620098776709812504637290949384884922992551462358404725403924461695966155029830913904065962766085073448837947357605593915578109577524136581639222922909573536668399793365575805878844716612901076950510751774446512018966740803839716764332232951640553865781486071889890030098414605837802423225733510991119291420166627978583751337649301643856402279314685978203397420593917226247883634840646743657662655179426314174128396963555508738562979161435703493233899698658061652793510819435583611492675426363222620855029110545726420992452393376597530432088539879499413837262771299767142849263213087878069373059647184429765936923538052243488490506249648346423006932770748346939653694897263900536189382167110966632068459301550043516648420860401183734720493468824525582095098235157598717617342375845801961585570489623547402220987534077439773766399386257209600194150410965909964189217432313777053165912189896834025788746703907469945345555443745347857433516718139605178856638690286994503094946836973069411422102103106892973187373222373713327018856271150885602053213622991570377660165474059509699907951600520182031377026162255717196194005294373268515797453951883059821703275632204936929995090854929119438294082356344771879000708184816308441809099078638716343808995046788140603491627769266868236167955417506848998628476287135807518322916640184502747122497923205682404220903234745010763003888427243658977757449116640347773677514857924629187688789888992267839668763327536909140488637100552667960555657508727081341811816542804254140654171862831076978855678246447899821814251648592687721358460245208458503652176425347012060297770015294006201346384750814275488889774291542005450250651850738675278953387440530254220370424981302641412647423884615925039424356225344683028038507911623245428962322367962416693921118810171666211145054606306372387761483427038668636857878026315141182540814517081847457249862432350773724647090259045857058191305453264038031114521394868492464126369434225119075987378187669259813527556996718159686649897914961170109338159347836803418609600151309653335223438257140170951446310452934276709634885994385793614437834575889229733410028384570639374979247068855847614981708009809965190006372332601623992429325729515913209921746924760792870213197139325354377677520211215391558521390719517013533311096592928596296556905680776296734308109036810189651840027275954354783890986948612714750911925641710194397152400810369733156302989577195561605736550295673699078921180742507667334015607891230223377038870058384829762696681735297167026271923451054362791239999155286699571285593869468125276289638988798014004816660521480870099584775936983705280819769152190697666687564625027647433261189909872334170011272063739813903080496125716801567395221194441267303712987240703734540760914428785303838033460900838343263672392574521447094957933874786451627978647938417007631791999940428297236401561739632639432196827086036020955006282687119292894967103264695381140086231481356732455655636698838378175897229045583882273586315162197647083739095126562525666326905970579920180500966120829856965658057224902957644878102582507690246760455103609723308390328322649331939113304387054259340985791245666613640300102327608213266766185508889284080724910956307181460332674730468566910292017205638361872795548101597385148548256817904923349687516573646388944091819561831344287234479151120635624396071657809358231742022149609357680120321061768302962288442375501635049378809425824613396572441947963112345617874932115703995200710769101228447233499953916613566837622225624667502222274424394552164498232048778581111523543969859453872456112241706843061958621647558675938656800574226379347439396932024881554151411477224890118233895797645683425311084833250700140256228020493176779293781623221359274032887290145666607534314365371968257970758652012071620053094260133423199619684372999529078390227435646648902985736673252971642538390846465127411312333424215590363834641739448946063598351311737079964152133076961249393406573062060296459161843445251035933316742969459347461913211993971283668904122355689490539070544289147221757980455339922152486060313914507964163498599549248530271756452721110750503064361156795219471190377986248630610716694689797439165735347399885326045917677823578830684815442141695538937298775571104128821634025378121061259289296392634902999553182432932721526432950817383620224340811283242569709696149538079901509837616076986376929255776019222859422321313161443333425513219365326414033323974589748394220895272299771780094711038823669627526286504063662191666456763481648252945858927323308725730470491245956260743108830223648964332346759024266869969211150363855919993241254332376005672793328190016358856843531992201971589300881934182354238285316332491938335485026415202180561966595045117636109691958920703877431109713814961229215862746388762069223305052064581452697692187995309897545651536778460397403081235913122433954866241406558353433796286822888407674352905894742260881254738385644806712873212437113808225185761252063719353944963091281690282936390622006306299179258884459461740044733500372341866500278595323094889407991305080745401154307834977302431917385669659594706606483601012797868166590403837589266543073432891354940965043087653505952549826202264611775480026849058069647049785769105427099298155900462265851142110083249199695317259180530200533599751832387486303487741577004519802576827629408004298089539792311497276886561237464005462714385782561154582389429750354185696292448287758730247478470905118354598530473567936853916817968293910015538012592746771715947977820712944957745932907664339846644170791093121741523582340957959341640213128593018977847786746908244521517870014495415788956435870815320543005940150251339967530604799944091446282444472000315631713726729334238417121584858110331425778543956939347489384944965402944206741198752378209522280270613790700808052445825275524855267527273867075991496746984561433534348537806586473182887327985618314708703089281788887211248094070951781187270648763426132859466126168814273709708233978842998148088208287391817052686340700926146726012436269800034214871557886058567185311823476474313122952537238184626861299610476867952870866552082107284042177626083727579011776086703813473882234958696537407003382467485818434857817518110262120143676317396496523272343258391486900246281363608290402084966398508584574841854617664343319915854061976203686964901384820667803071384531731715017282053847190893346634378187731019726327242259589356983915782364983575055781555210274612566908599330571315644606052112525298428815556474847506550731810058161364993609175068197036857546541186816562196208935571358473567946752878313183825248671258316031109573312016964625496604657750811348723021716468897332275343197378185062280235209348818646391939712654927172904392313646628075752958195735476205909339069909756839326609951827541442976753155052689848384147389775805167584209466230774232830472925311453943439790478648493155174328716336278962940372597280061041364010253931414071405976406563286573398988855490657005642215032443759299088943115994290303626874235806092731084661819190085113494636853617576242444604607015252571195143851275145712104635465930509411729571850062016747507818085383637769125421710199470200339895474072765668599938116995852801164395851965009827520546260908272339522082200082230715544915030445230526315822853704455532645496693550907667362669859021329783801660989613702806275470014320292764216088495848456088254288107644756506309762665260008409803210433676072493694011484222372410610220282935070267777134406335046820382084368825616691508747151641298731363697754242419878252541504354332438708224240954703280702454440607211255804447246287111351523093046064091847322415811802152903772427078490892439295968002040631928377461569891658421055695638629105644946901663719931204520755613667155392555782884563967978427018933293419440624017418866324737254675929283207429189170975185795094076486321218813608114261160533843934871053703453479656087093816134192087349448268980274782823924610190984590653441800017624947900348811393377627705341151217487232116277408639236063763887889788487578990651050563196592197293865873033820716773462540915299093581767779921807467589448582011064777443069693816714549557017108702994007330268931017248306949141612105235143116430001292148558665750835626962072705273314147121932306357659340606031514362087879137479992080434708679630045058478759325772087566798634498183735068821680472529994831735249271172962899860377091879253099392698390794814995337579390033376472030546173388059678363413203469608006929229534227404580172632458987723235718520641450883339600709761475360319404444198888764631538387707622586688707208400140748542392839232753724156645524256214055820203336308307670527027264450688397639712902859563502610817932836047283417070486257558040221946065846262693902944744816737585008285706667224999644332024153845643470594953588522634812813695646344162628724499974316561193724000190534477974993931208369351172216882704867279103197233727082644054624615121967228767884491714933352397667465688351485185366134881405006424044587856975826387752820984438840606107460409863905750423185454267429670929937288125978089360314752014246067689176333240178379459476439930236610486987698566195466741391424958237714992429996470274421183343592443640569058231508129313602834584031029393047930910227309108741712210765640131504682811407773569481764523196797558698517921090861347940898855265478910520301388762534125918502227898995083097615863464531150041535476027761524595048430903063855944995063402256231052701438052549903818448565299064966786003951699114890977545038243151985278584944084707545173296341016601015008636871785012167209494861837667555333381281872142423092176506546747906870197512415988812458988791358029631968742013503981391875421692344003069859222646781155712462898607354108796574155723665114635190507606793209579687158015680356588888762376520271449522269943858306350630338434117782407689088491437008021500286071709705351238277753717500898037279388552660268614120313213906226501239582926772224480769928577892257838432725801614400880716950526142545029692740844565763071138325685456013758858244359426641300074356418498415785058097818353618930519898631779090337872645749257394088154101945484274575169525839573052321570099837030677141646913166821774895206135938441204727332894198140378815591145975683140619706013741786386227941478693530455386035986198262583216952579706410393562786664734715437293786595374129726791130570830866740963780270075419865129636995288904141156525030365351407238699175146962059586992264334103157097425454727858954391869597957922201343433208171435948205667825740180163817423099536890422094093085994541989260759946821168335231512628806472001881073389288720746020829931293953570947216644204916042746286508428918310824262813095850758262615619449420188004953242926895024082541473211047638156367545619002051897393465995905289976119099873654432462760175177204557973748924642870779947286806101751660778982964854022637600281879008293423438287011513024995591568055447432466503456382434337858230980327235149905211968562126591632860282327968717050489397194859438887902817786696901360389728098637038925045559151396210422098109821374984946529772266041421711547347144810566442968433539974700067442122716054642124649503714371638376383211109521912381235177836353684993830109563734237062740148052263041313770707602310589351251221830614561258951917360892031495510035419818582377977184766796046526327746701157703287316674044817848777853872834644126927361395574555088358119871738995127469636171480959317457280637771533736793187245267477546732067063872661008192224043127601224199331680586035202830950860680048433837059006461403915875694873898575896446624385811867589574246954102039202355539748142461495574575019417163003293178250929678872001129444613788466770275070658244516489771293652476295970902085655200068040572689778748486067148515009924451581656183221353929144879786672595575889164551364279868950689176558240786066900676248622510568354392225116392449591798517609432436229079395986461541961099749887861625744444297726234152644748020374182955612392284644549605479817631081949663877261190527707015613875678585369847802688964106760351410937543068798388084496272180686154799387952352988118436581971547368575067910193495056251407686563280587951297708605168151974504600386172157683323240768149802522674224907108231059377103053625148641742381848802670881546010729182153076470534405596608573765132671892493107368156659121059497767677036063438872267888430666505217154495143866290359075512826311816169698606765600172103720217791064271699636904404049284744795834833920648709550836073857642991643610472921482266096663357844297077773373325869702191270672739468040198513095690667002059447562073973551192876867649691438150299081605944824697927180945165900539213042147330270640385787433993881895278369434417570508171036394077140085024951071671621890605856252895383976654500239003215059872561537728456864520808171362995721925220837466124008947062569519186860038926199080968208075819339321233485672957400128731166972732078322685056556775487335906061367392797857013559654669122545586821318439576795349008908329474928895080951569299343780375469704693596638926013942509225122744427821451088123028174569330712322150005956739120892207767687368236196174723546327869508709357605836486348886402795526403652820395034679361764418475460220228473464291474076674289717996188738214555074037057525954584088367642149762355883071040460767887896082676860844715954678077957793289756863134717165120174161206635598443578123877673128155964618192223036226006289806038692198127209599716949595618361289515296293051717317296573544193393617950864731430668957766242865740290394032617198112664745449724860888263889133242585695798772232796245775657956314741241602819770877431844293806067069219023005414666675558276138933812648349493982392313455360936504499901681579897502350879836103484479746960058323154842923010669216428992863439569087931431401053032674662043240723334693144470782010383023103390148299511453998561853884476937280248239257462236795317978962554218549152913334257060197885252748237212887901626039242240718178429733801291989155066893363804947511346718295770419403335356446034388659839715980944245758690679892142223422554381007300471085619269775006486072478130875743603671687892270329714178977870032973489136931799725573195471686829647729640813264531849169129170429367757615599440025382330506639816953594588023144272701682495954428108699948519376791855359227756595278345703165969035360835283853637094294149206207525813084377321380036275772061802968704995428887140745627611683904383875282561356358471203411871187203943096803593676135812689357288943372573672084509576769829857186306515007009727391772764380642999207822562634674703658362707218664328772417001190838825894515865551809042201785168234821655415191568697164905214528254569724505510426071593773362037979252053005952268446007548154948522109592830925425610100569083593764577983636196787201793878603949655572364643290010321456547556375787653639880571667882181624138365299562059062845451650220713644526552071951596451193786188349570673527729486033301311951900640742057126049466675642673020250124019318462374122672118908248769689481964333533036809841290980860205879022757983417867821926101957864251066407904072922573070605922882524674332989532276744960196399573393864835936844330533056729956859272543773083635354108906087799760725829032533546739344682481389268900048377431777658306285804151445537209700826481899799051871408976895897516188821756189284414076466874333048513956899172334596773014076021671271184909242921437721547293924731956008615275506632248696673825999083381396765188139048768473986387993088839055486695876800264055947575676597368876717979107433651447964340511400133606330046108752211922499724339770625175651990942985183092423441116274624285581829974240781881948951832140452846953893874215570364904082336945924489883098772234046613014115981551117203050096622182461331657767192573639835042541881081507922561288700121274520109426097003403801947327717598958624385474124340737223121595455333964610829649700129050849535619602791344325806400733226126542708343782130297786469378617996224690426420259509948564163601781634301147307747168642010056668453866676523296087715225970478417365994038589315755151815491547432174057255161111813101352343746431673048601504777856011637109150841080897081286529833096224144335431986931821532479742010624327571354287351353573424242018009679588782133862457196815852666761677820945929282203092172502329746347336630990725796818591700513172674897156025792194311206229552582052848754969095308968449038964421249229400349675510372414758112127124579492034169852544728225017385622431395368877277393991834563479447090485592627688604304003008103834980411977796088482617980307629566166116798700492356588060952001112041445724044633479138980240485790967751499195864350176832491129532382132165371798006736738103840256726312045799498602598529137276489243152127306675574336902190086837130004394352623624772726330413465931601836541846782914130768323082195011406752560619922983946938685957714252233915780217899925928447668687839127850167069299272331183044670162391160503373731231261729696333750909005038305938054137864782050491478057732066656682820802994480701462573669297520960588090934837193202239488153524908105064452742622933986087520637862312283234087200758785740669036193559119049440052569459794178680876201016888407949224249944786339478859642237580390099224458432389439185255707697335435712333531914611621513195659565665277416037999172873208521866284661991992691167467944888897356840517137912088648404273636338461810242842789048632942253053499643171894089719785010638996990205528995781882364163390569720391190761239710831139239202129884073726367808430086001950770116079673199276027046063185770435275858294057024262859155974880588032784513635031023905159714361674220226639438989076802036257555197164868315430660762332705504358647914617449503867135260878413155426754396543962021438871038455870505831931739685255719082873696634346596967550882990672904402713186668032011650061401754149555871391338500079105826368154987476717914159209084486384531779962537498797993048570532202754450952546365133328100869919137613936030900595722210161485504818514762444613592394814442632414041424910711153608410244171498351776542989674016399554517698145960277711991294079014108317036756077215715263447814907192172346345267952172072600189701754173385622326283935539872940432921856492735013666558511840111372007551881739138514449904302171545092104259812180837665982359218260782564833998865807899388925680753520308030038241360253415993090342680044365806228316100972124222622749347918980897672528092857229301134792346729041411605040051983470266994960136616584021030957616504858997896410686926088855903908101510897855079799272372684678475292119276291745058621861906380339763974564685474906431243422846747383666464440089394100208032853531955132391965796699120454657467064136227374368175068726432451384726308207894896131626153822746688469444306355455397767235350418302507122415097600584303270482690811166006014334802197505576720290202555538946740323931800315106006046042181210088072837705795155171591783115662718265717480105575209205171673101503540792704645736403773646568426276114545192965881270725999022965119520983422059582709734252079280505685562829812337228854422214618598903621003149357703185343849967245424652647946339751791188500842027048522160919443166978182300574141727464338245069348715734725985725631783593191814846577368557677573423883839936620383578361556007072795396774016176831010544893630113655330601345035470342863851784014353781713473539505979292168312275167472545226935119162374208914887766683165036695550562408984654115155701684305617893719800343698649352812766648009742355704995502053195554703502590511831702648927234680418052764659752295204633948109136141525597978865049154189944467612099541751103170296716551829932006050548352738378233299324359810781832238990258698285053951472957723032640179239686586985591031705579635964412763994699462201560039039874627698328302440355422498849031465030246120466499144918236115357635084809956051704934802920841257980656294446597221972520774955091458482546771547486703024106533382738690365608327389793709245096184170387188314083492924296643225446185661716906570467290766057470399410933722763616448780064421148272068443489520870911256178469404568878659333095770998605089501699749979692580300847742395508380080371065681990596177747676450173723385621486234489617738347754265688358767726456792855178724086943435587531226588664009097638407046273064038692506234667452013517067671739097482036909929449641020557264214762293503754250847427758807710989144603013040008811168699466310546590493395370454137615940265292114467507158849117545160853946385977839719741414980713572400459714449065104047636290352356900136152570641036601848325387752521317895772922142488005268230598844740861247533946661446480338832597349381713129298851392550467964600980996243450565101501698614854372366589126668501901133478411135765736905633834264630983371245217063905513591938991356701537044781460796996948197475432954475817547723625995342211633378310700503478198326051826204919209030350489383689254643913427288347607246667115434226530772297964813380405155200328395790947646120281698487080177364560224678059004293453202454656399846870985695694505760108049054022371817979343958384723176618483897597529188665527881697229103380495869735732651425386763896852081505933804216874658648719431041361689261074650866481620147138009598238326019706642609507733707570410744946317729789633309406019397391795032312828647145598538158918567904887188553166197229755249711613397028753536696666397575827056838550563152389447632135365663445940545220935297955098066735035020070650317057638457601198151670863056251488619924182413972109965212870112734144984948722118182856768715139243492489588351391705544310386931734607703429825110235159798942940524260041684561418605955003157266477360597941867940549009674433907067341297872378962985922829778688065027356364335038545732880460570752232463292696629435129254906084137558383538991244376165364424132628015954046108924720337072218045295173905113841662482229106456404321605014034359793336657352246544468092053404535472593788855188172650949507700316162264521247774993022944141051248922505894200277630452774714930053736279952462760344503709811936521001543141834772061188096459127927848440947961874200120821103015397042918609748114219867184344167059455976278978329834748306691035590131526623100372047988469262049325390560622529338632364390979292434517937886584269172133593050048589154830902331838270173865787911273209783536554884160036327234738154754856300455064416669607755381272456928847455618810732249352951155295530979817575109248513497855548116475650012710537925775438249658044639079856868458902508080223608294041006133813660141344535814498617741191676613000575628695757417006117644265940807204398629233895232514520158718117148910810655608640699619059864203239029043771898240287490923617289285929425367420862701376917776971596880194037384941379020012647707421942907561980327861507500412001056288718611049058007422336481018322992850416737864789035034007766412040740310363865685782587592464384063287982886252028178098683265876176862404337469915562072788054101061951516079862371640671703561637713841251864462596687246190953017126433158634453089822071008117871802691975344732532596717614132417540915180099953367710210778291711566703389743570915969028773064794505989030252355626063270046898321625492429246879774451641477650218271384102254837028169080585970998472139943002365930442771113092833991745327374059078614367868876472570654030796741730006087951798138574053540067630359948317383839785192784303440073785859521102396961461643031939154181457647903694965707206519182087695806549721612080098285854402068834503655976510125562821567707606445406829759979632118063946997344406546212890684493738950156657250465712090364160286663113749236672021367363293245387466864469502575393884527631826120003658387265315787027330165641451484604663371427597018981968576490354656711118601880963206212031354888175682312697143521809230520643004303192212837818054064212889727285359000556288814805319305463644997648204937951180993035124636889565295494957374966469366013536369583683214876796530651555489200721956556822815222626640488597374329337138365329535867811223249622083071753557629271174149325233249674967624329865871609021638411913088150846910757450229856395357843150545350501565992349982726605460224591027388512607593969408984299850516655750394445679113206526271551285878218088702938365335963425186967939059309172790517487464216715904573895698527943586474927492135561736991197552229479266688071089309320516991709698651912308665801842706667608692911690003349094490197730237574154990863798772346688262611642019082545684093904988603236669231207298308648835607471461683987978940668603296691401530916160640962922584770885596065539622655061647688214127824963075283909341537096045706662336918415510045646739541936106629151639842562302088254485864637260664499015551664981510349728508773174705539713163413165646582293964696664974800733362297173623019399478257845043474509855927557547243634268574546081571735315511433183749265766506050044140145125484608733972197488302997129535319618969306454762948220575381699369369102968545720617494484111056531227655578550136445894544691143048224442053397850213467622234889526271844148157458467442401928532620101080582650632797680490661496752268241511960774276668342813226004082639020835888529318144201991244921038097017554616495104729754275794937019339644233590419330699748183946121163893708628088364117736960249844416937868711041700130063237423300815078833239625284125379805960700996666654366525329346086376450143610198762048243899252200008041634741665540715529715514886818432010903317559131230838237483531619463085159162678016675137186319129485477510068640439994464477056929491743468333480421533021436652449658922499846910609542453936154480473692007283515335704204020112061421212711608754841577772227565494906862803780662059875981980102635812265065171025750450660065178643513678337528127653121544371356253033177884150804433819906570654506040253398322939622366629352716326745797315741207588633726970430889448709578782566227088228481239494765725260904602959096351129251571531109621811040680181545739004030684751132024464263967002555980187513037795410024694480995566390434544074612986330245623366688893648970743108455508789939229552863545127506157616852293305176818062905272980681326240586938225487138513951378485427344690073311545232549077383994928830257974986723645803665623334813464211138953493160199630795164524262891047992017232364529376249964452191123320056944314899274659098285840841387191494229565966403325061471949499576060485582732852346640803731419027598403183228621760352351250396252492326644793630274604623108939458412250227658903562923880438595346796977857001170355500155324270835634243088653337164887479818648068919096866961022804563011550469942388414719725221671146876456853799599227402134144331428027079489549712958384573826386277251124038549135740747880128691077536319084859505200033137240045041100781126629531741215922583266099589816443240587272001988090475653288300739219007771755032778520307120069453895153769920642746769833724287653955721626599995021569049386351142163299579805242785619723029255955110681065121952023084650035633540804878426698846993636463960062752005813857241600736089014947359193359431719739072683833338697921790713500965800605352771374015499644164883468433969804748945549801249538574366006605910134070045241529398501845905911298319603374874682978249139489681539158667209506095378651977760595408700742930883943584138962133804208650007715852318521419557302064841880179531218755396907321324827354910317030248389149122270419446575834192093160226644459386309180572064278537161314135153086128405375506176335657444106613132126172844327461298878666660111060626947542294735880619548554413479172631469840526003181221471717415855373921959916845181668343532005824957410673246172797484524174196068500646719396347856538819360649000212041756831879085172405788575013854588124046290899568572716968618485852468535563421838124066199297872811595543735782701093066032230368903642539528909495274258510249813772199556473081618795704952262782506506751787664336765406457121211328766985400525659174343983044743687145511381732513983239966503866229338647971287742344843775465424635096733432488206191146944413680624568708422710329278476434136797530797695375271079927872032845982696573885118401576871775849095066080683128842960683040176825210635821025037827794228167398305786614335798173848807561415998712281075775662142195894875833792281700638775650602651452561014320640220799751342302650598454878897505967702025761820762281343497451114798905750191018134534928378229226753355390498335118516094529677004204185887519307850809301225195798078814486161284713637296721536868946757605694046473474234061784747866535276834345152203922764702799171911840492558275346555058037180222733787489707172119492226823715060122615420355844893655370553385990033397105405027787908542904592139451260783494944667772804506781145777707785446555870163882607111917961153357093060884205863725432100143358858021834831562230142595746284703366250667836615466287409548619216756664527691407489936569208071906369963967722878416391722259507453591019056547118239633768020428808851454248656513060977685382976539044871908195880572731369825642875315495957622566513001711271232175792706194764857099363182184264627318408107179238644542869416870286130101176663139441748377177054161856318836128410659241019192502923317221937795156373637399983940954327828607382890028812163102741276730816735134821509757096774294188668755804092815456477255870163688009063071122522893219035667214619718030267918552378346083104113771191178808786204744554359254488827219794910208840726498560208653472385801627963256072660853758629537366974111220790579503353639041121790229558952333440415285666667434096206720239209877975072963343856451298393382599284350421212530380055732195414664898543504267544220201183722027530766882773546760525964251652561616734367151732928557811805762599442878844232604405125312085305656928902050168180403561757300162881991301787625606704293154888144759028332118386537467958760470696277924192831822613933755339939768468621311828019824880883318665076366543079326848483799174006296181890978777033605243891922267358601600374797353498580355486823604422605957984379540422667491045364736859514529621535146244241236986353663853738986342793807131672402615529245526487469692256824140105437894226814639426377490860771857597433058929893869606559168626865394544672588939353064352046797726285078238054326319070940251176020447110413837681188556330299458768794128758641976587619748904565127857457067811080393167406363466841618540269123404636778329730474303438598973813638286615405050159061985792849426369939514580532984104091108996159458292595593537546658773450474938471793208545148371448737511226461847368152239830890368618746900722214669952054943463880327624046954127974822097088280185543812218249577108678845709144794819713044218612772309088932774156866866044374645039508533400600987991199736705810656470066543734740328732275384740411221454297650991010473274321615423070310645997378630981943068645227934124567822728768740793114015324006208303067822101053958460944031181218534944212429630592564193113351640604774583980349776550754534220258553613561098204884098606054642833216070572876425499704299435596784228669809051061077676359452298916210069896756765849248360663003662633613004586526155164967998020045686555441670351253678252729892505711766360570902050571712147419231452580824208994577154214880847268309520222505011707037029202559989583585470092121965661857551564684022617623980807763532161908229325559774051181682291166927563460072043554015096335104630447139737681113533841897349581686951830193461003935770540575381985547070687602365763567220847667643535923427667964250075572930289035590454653594412233571074666372952254783761733790345769112838558573997032388978037985288947526329969949607066985491864664370681251482764601697893689271463449343472582973818818181256764071669942959097078586465032106282821390350940417739299203855563157103625508606611028749605979653103452397719634664434174531943523367818451738977379124254252536594390147243582631132659267089588052543694070852265933461076056566586960939347127798408027298196894271277350328801124615823332526716458377771537136380620145742241787527024068436377015040733347316919631187112237775714739567467386375914380583080676445816596281488172409140759476461190750913570038483687329651016012781712794893174019479952751472168449848925860716858831142961460077449695188157902733522436492029153376235025641979812380895407993202049544955696905629557551049034959921769232980619671028964589634078732293261056455974512700465441520600990280476017993350930438578576611396605225351633573049549248002003540890675928318856149974200435707880624323996147623568314091395062367881810730760149827156980018781307597371104743135658827382867957322624108597811658730805714981847080652212766841929506114017397672020778870987809476936324124511873638255738453289349803009338857234292694980268384398858354979944908001332356435452099146305106233278313154700989688726808586934355255552447031613889554813019851976374184239647656315605738228401055428419418891810352155076936374007658456629107570899682911084376790350295050200943802001197918294519520207625848864239989896067562109253298169942387283233040419767174126419626551397663741781081059361300175749829443429194780721551199930977391548495955445116513412723798168917329232778792574183073885961831550933223267281881515228991118741107785601141313291899058192652603831894487568532461795413381052047937789022269787084936779809910249317794924856267996386152877723467676767113979864046745943348252588795025909368077381754351262907194236672980742901359563723025140179182705712155087342571468322993029164528238927596825334664704446562132475688386243289787580561547375938601735306322184306369056690887530188042648159379451554365813470778668399108420901476618844887901410519829885667568105418853622071477875999421557964848063036396100901823080578735071220796930843216951773846871360179494355820384995978155085640592253143826982374818348757357374883184927361571274893393544540197494008245000819826922870445128475172094803002855168691452483903166666281941446055835977447979333149800638770178706959922109225151258661968141710687573118044043176830101998000501863911187698990409495862172134246971815229218875597109313337201890568065350841801414498659091553995237495586312918537057720187117535627677215331340508249465714009998925657418963100341264191246712414468434260893265138784719584462508533731358803032882297026747411376723098201027656210988432087390003600574372376056496320720967529045707153935144517689959227724949406174767029998906959529789222383113386972539042060265861228263479596252961052773124065819374746303861147178694777526970689965463516382690759134609617452698740552942032333220117936881199736035943134129369520181322976827507932512745502412476562554538983667061667217996194031572082014048494429873186630567866122314668336215950680956602061928274915412291120759836630690765982361901495379977136353298253403900178324259568762860651104788831596496028525101136622082253427560330385735385243903367449069413912767427905927336057267498446242716213036556452324052529661813317788753052202193089437261495946962787648653408129711737532662563441812151744776393934949491450674128582486519745598665920573296002990619572909252436750080234027364863071674932930523828582564416039780282198321213842464708155819303815059345076540849503965905001356351704571027535666103569979280110175260324688159645798323355630192844395562150321636355896139783124516560220001906913773185063015963331524328630305892822448737577561637689266374580081619972157940404020398733262230155947385219291069308219480736689105524169682382421714653472314036654004740266157424575312492881875616433519363205582501126115887133793668290109794948142858473202832028961070210121119128590093757754673688059655722440806261249928988763956693002647725776956325027493984194700967609110834172325650798047574780841127940747409785204552572041886872066985347260092108571198595743539556477612400449254303611786153595740452111459742244501367426642336479094270010106289655791630230983086150061169519129166530839641455051738781861785442891044580106860177246693895197810506281215102463656870313098364924470664111845810191523156159556696740738782690509838160040117432464446934980143900150082305064636539750743372673076696869197973492022133397432353043604429094622902919259375027371709976340946457918718059794352110003848340455468034401763003223739318737493703421883469530599738012981484339935950067475562452211881807671340490635486380451624413753730714706206557839660227166654299091958782906325951641502276780305042559712347206821281333915405700927851686308774562370073492170021216978945377133289444331980896651463505885354860374297579983692835918370029128421830524588498942969978617934136391265900209223109336752107713928654739128782858616817802632453788263759123020961624699421242651210945340260777874629613621636701076102551597943849450904168074651569909287694609872202573323747815117197402598271366607720818008531848347254612544204534470005225683944644541145342953067742062922458187349467453375588334011962983240871852498028985323783379489674780353230417167334728496625466525895877913797700150798580765531303898794684405291075195464887643630048865474938775809137858163190048060858526073623488616157301456502863492512140957103605485855638121827220874150098842107461889926905921614758641624586613362210609245902076318914109200328077875044372161103420750607044241844287834845787056537173593397602164900308463833474550389663861467144676030555649017192626613631213277136290292573629251602899817434166522257559310439758086730761977281599015152166880451267292070309212513115952004581743875829286775049157864513468477401416978207876103882168074216332936512648144395012956472918107313178044687508872703217844784457349648782004732170737083535687597843259395826141030208282344205543797391554577327113298784615629903737442971777748811665839521395443043701763727362741134822773972306596378323401345793763998365598965543283600762865411872096686837847197250036919368258286139181957101217258928480774720128243882063288112930629046973516608915718242108378971883829343245391155587862464522135934624839605131441925867817415035668935964147707438538319449028315920208589457476329927923397202548307766049770906486453780861247010075565009631179091319515170510794250165568146080225882342271144413631576505849174692795850788142945041248175246593261704578341626051118613894066300489780076072365946137980448924599173167682670649491911330166117205573540884180414279208268085057752216437646901474137052479896956003670521006783546152659319145468102863673168609519915975418563643305072741354411916224700124164311839320818946853943842529372723390524568887913908686557551138704993715593866844498715037380101865639053279613317564896429741824093339857982848564459298403235256783336173069638899937803937298664812122863984097054230336287181467714916448203630320494551076036753464999950109880764925325155244772085186593767953753535082385892785093428631329494534324788039603700936922299984509874819580258162554915872544315271483679086713226161966628636265696057029658636995015775553169633783018061371282882682624349059245124060812415834410692231257308546695980759451194366087307732769902357574873238285151877840284666323008732882601243771250060831659786883903595159350640788319668939473988990407428621550136339895610681119106419448021953751141253714120520188466531177790570336008545159620537232537762961921505804601266009820115168616479960469206157007122154236474293340332405935971329152237348838809870258343553349892981410136335339017565009819863350590069256916167311130789855574647874367355523098755617772477431285929966781756125663297024706942971791187051283023542521697372709780476150527362881720217470190907376147379262205274295835167779018772565774196601321838494716012986139236962243680016271754531820164197858618298078060995767510345915349392803929056719350903215061003880613337340439069819612880715982222610022931612246175507268218137326533996108266873373542625510219230733776254719167934751706229805699892078781706097772305036039798518316999496462522878240645087882523078059408102970028052629558911039349971744371828448235991652714498060382425391758557540476083279532758005975991096344399901941541431458283496340727689460577053802512871713863566923889079516799687396601905551171872203190905400549131087417813549228197087406739721966732194372689863168968382236913791427198889928509979658343268554355038253189998672604426134998427669821123040115918257002603813091780539120865673443622305804413978746100666773819639393090529588437971096862823524638474963785170705428521385109834325095384498722499650214848714394159709843382833108891809790355874215510741024932419329617633948627362542714206620743330759076625682305356559877097860593182817940388087747854030150390737774003894980502400472726368129651217786990448712729942095281748827016415836238413598612661936602484299607341715283089718033913980841880356624854880807306318987711831543818629224981864802840008735325780024214122360861609925483553885161770122968779804390467566687782183629183700862855617047020465085408340966033589566569429859511241517615063133572281731001465501693578052485308038390730695815243910261469988711306413355460158392041834527871469898977474907622125679624522127357172635404139978445938440223366303358958758363085976090295980561474074152983413279805689535502522067138829779380452507460215411591221239084951586658721866266344567836544720047315450270530952171274277648362887747918741882909285047192321895236000047396027288573486084835639776316706396853987674901813848179727942700640315088248177366445556697176599879211924312176710022198941868790756480246520862203982774958367876717863263209682496698583902381315226843453517059258513828415357952076336485679422469584537226371279397261498151725073709828311191625334104748077994840486399437644426492224976391993654593699284645073608635110316050401812848684639156380869606295417488315407971151845724946438368997133386485073241463221708715723752218712264255559570748714110607870285890595030246804473917092612617924383331464966706325875199068509691738543802571201433695666931947586278956076466177793439817743238259509319003333868973044748469605515800597253419879817797312485447905354136796690333000533883792725545725748171227669877791074537966793228853049878835957700496019090901675099487637035737033825900524958819833046135082293002219317350739952883430601445180143024661714543910371143428104344464034806397773041755087194696606066164673254566390964875374635591879638286820004347758309850881128102906813363719093365025845368395838815809994687500773656171573911618145172486171892043366163489008134160999934512569292299258768869599785780466497623080350476199132916395388025356899780988923072902189801699402557838360515882439685477792236472986254246190340936352925459660953340190253716506368723990392691741119544093136541544953803421987493902105652977325990505143868253113820216568715053917079298346277753946858221908446325125551026606433339021119108476967849705803111414423606327622662813419165261437137018739790853453371435747651068065310455946748192017553314241314571104441476360613858208970468407029409075930312669027430599194903636976176501553856192966233445712699045896432189128661451108252258871200583253430025010424768738864163412441171868330647377466809208712496864781499465072651187180556332629287614807240626013300545155360082985892499958914618234752143799873476492196510006673176173504565294456468493879690163565652876433466188504011128372318655774901810711836937152793099925927043332916233673221769139452690543222495611303637537460927321840298438086130402787034013069658033007470810569201652831273902026784535044643537775331462567905794956976366479743584408303564876402464963911453769147051338024920001272037985952855698944471396838563710649014297452444298349991756348692282948246718431464684321245334314638775173259420984199588535639337062096285566706967351963842356824355266680088544845487305989181344051033755678945313028074890950008944985779853257124401009893430175817151777671499207281081986363325129733278078872728762121830977809966330477581676218607193221442000456880591934280292855605346709286474136273114386172731043148592830166020099377380840134921970412864807385493707711279042917246300950835124845685771139742398617147118032629622118636987114775064741168722945751070665553647627438461712872060796620236020283496677436756753821131967131760568564500989070244340088565751075024711181821713162190037030236713957276311845504091973271547414899113521507189646349872355477904881376303502780698461149634045978159740213368776083531289646348806202637994401343882562063692047370826087431768884195569725512019903214795667576356713214038803737280495281132058983901550486682012000597814634793224077436454847721445702769040069337646600225861201758255511825951211187010706152791270595948514785822926037070650184942095581182135656310901197655838846609788254289187590251108535830527894894364300253065110915804971566288737902413398049840329798968356102909102050548403330980720132233504812150924785611046847837183282006704016195953083789177275886619162659321269487194347745804076335854067440338900809339458468757270857595553006351121036098259088541609924418864702938185776571731801965068696389582677256736967079900957811960969022189861340466630706540442766454274368360666459272022069905383610696551622239903386257587164455739988497395959571129352918245497344797179802580559535498717070812271287532028874422006084373601910268437194050318290048388336499878222358431132162291066297894425077681594338566290109935212018926375530685613586766339755390844143494799845665517124329106036073228451161451621574166791334063011225500258882086442717416190955905902043918326176468290193914626935695343841675314038341058141360767629611415321130134685290152742764125514814240134286734626054981371357179676011518273748943791502164898905938899856678006311584652412543295763323195514251635417083846299677274845936572173954298199530941430409820638380812691403853050420055014635079101176601089974961939281154127532263622068876212739126867942315589171874990548645284409870680954525228326879555390985317504085882176587032190623572817361296995508700519510657620790676593545925534561579178381798121602039250495205176088255127662418433101330751395259090080316345825287460301366898008613631607667326390299871604667176492074587450817749281022075945909739552865640447330769975118394739953104111224435612912021930059556324273289534143274951714369208454897707021444478896871866379498102742680530814837035329415274634485696190276165426812690672848511557458257703752103407074066489824884929027341644299101226524331195386888325165618379701069930857789954318900518254793094633749490975379209950415164559532767853879775152986556963693490981931704839508703098995683217252238848710530183676137654867251678274428248502869758862331558063915695305855194859018379505670727196636411634899255520734479069367560141549801757045108201185632443826871920957010477906404076088499289468593850577417181895668410454387827834712029257177569970900947801052315041653528363660378838190967133258873426013244816820122278774539500667459613124195503478831963221873028333800326463551145109718264616982861480317161032963199904108662348911724492638859484814869997461149408903059277029308878392621121825191487370898338718445871674667311771799628908441412754196569783480886721752351235504811071264910392416648389613836050956157761744556089885910535595219304304022983917481126588105845952610648099014092481192075896442499364609005110982062688326684106987370203724034448541927151425344486092197786528549820358826946809964315647384734276582677615611036112375503485603355755264490876137715343057415069845066486565522825332476135728102156384640539307522575380967424452349600004486352401387793986156157881303432238367228485716806906182934674976967431260711394357960131371557725104526743016572599261961080014337843058718096625922747529352164034906175207036835350991749272144987988151267217538799717688767595933068782203434379841839614273040598626347747345970535689123146786914203128688768686237058815550534151339712908323572709514870729355493248083416941545124422960061642271990221340261425937905409497195485558511116732903371500151788084146561357648409283591039783227589307693976991634887005953955487457458558182880024715417769302981138143565521186109652970103855178024276660709663466246552381622786729225292759044513910836644699829601472724541087117491217508680753046852142609840102439426834179712977754400863710372904582618181163403257474340381939221106814521994592095521321209208381301163168968333766348395673153940509133537144318719194003990398242407422102806473907077815653165355510226625400140736501629199691994386439290512872527162761274139854954111656309907985863215925514357849357613037312874033122553263284860846355226740938121667497139303066872397704930028788038203920904341899865674966981473863857479784419343093770340030333866365224282148172551109919578496381119393494865808632126055345829814926467327939000874009408215212089345130143730603450995591507713712390234817952316304813877469327874486893332816560504900937763704094401472847695681606748411214779939725180746823259970439944782400345708621846487898856365041299527862975112916460891214118743069162194961477364632352025189445469223742603411260552884298129768862019678129544860739862926833832681398108560289248978219455179750203700179428677616691383871865723873033093573934410582898491434596744569220382037234097803412671358167545874738842613210085949432475033447565368184695062598424186108260776493493704561133964890656191349769785814590688971891512032389719593185150523156550631110483115350321032475122288114172428298931805898677699629972907941441041381828653846899752500550774196514551501667018630452261238961690583355147168715583502958224156351570303110213241256159757642080145262628482546433206131141902632474329217749270045321555719552182188807966045190665118796388494026236269565130099815352943833896804983860421150160138452432478998526663921635690527102819698257479257831372655627984413503071625950206158268988464730939968610660583925833424813466183277893967754596136115720584162215362968077027955143575466947031221963551072015019746989367921386579452500343724940695290003854962486278366645967234439918973509784453332643546658398136746258713655460984955706406141999314691716662322655421903671689937203604250780144401373017777390673476799474810233847719799736619368050153868292016690979098496019295117301176688864571958902777876461978606285032761154566486663019866124445911142674675973752058070942624129278576385506263268386370258615937212824162877411249747971638851200337721574379462508545594412758508218661423764852535018459683585425137871288039673562585013002572038472591946698386585324267785263577285216568107624669821937743278211500579026875189752125550858997222747860361920745603047614042084804245342718906283590322585855877972827011571808436713158655097915157772185050606989755153999840077603075848698761399212558112144274932258486070358311433179702608445205992520230311514532097729750155751347523913683283490259806014773843200289220449586161639018557393847613393460750367947816599659048784189178158196439729563160004524310141048018701655273892393208671926821768425976215832714491998093887622874241678472535742391714573561438716252308391116411100602512887264660475331051717737050733136298271486387979918346226745337974021957659034936629770506777448693769715410971005742289463357208832162738097936191382606711855342625164740825620490187161016558736743812182500738889800750101558013666896262630901589201556193438361671581944498859222543424252682947281795509963066364042334214240046758285422676189894568678061146788641745747151783879812873146671641477746491078843672749268624222749815896254120146886618853390625405984106515334939552252891651285582043257771679359218776991841764725355792373889965984868015068206760074626391124310773559151334425779432823757979705720692789763226208559713015306909175302437197163049582571149784476472887000858195155776239401874882393979417114020574326066601509801596458302766011815695745670960456704499295504131124072858448793001319202148866556044393201257494327211156398828087842218200422950057539158681402908261170766211513798091254427826238801928626495658042621477157315680743302967729047123170486664240190387586657444026458820144615325583076740942733724173728492915139008355681407026425879347328258631525224309756374135210113523935572035327402110267154933852541116475395641036017990205408720345115983137048530205795335262750667441327178534555613447289265835656135848504076354497878080187025304893668380936992796544450664262163401300250307977733824914004551469702586869918463828799113082113130668932241857767344183201766519689363962914220505356687424403671107861683634795884046591982534402921900319953703503497251333710008225263001287295237517405625633136753343706425405406510032545187062947130215259108808306593598547084277425622424537994856742974243436234394848973472380637387989135381026145816647539688720515101311497261282950847326067279808109725385898628355286488290609671058367836357438010402312998811318748422491166733343610478871873316392619252047933599662900803037782888168158961259819292699718532776304206856444525229058177440940289461019935218116569357197677654172823700587084749433644184344732195364576200021785843693688458304973854903826540856298220396039623528535058449608324602118007876562215941970770784575691939253552493453048029847142633833321924171567164757500473103208315308747695550401169306037846741957342227373597825621905429407975286864877633397962608050944510634576695251772484230132727453590445920696999885565262252661596219091186470182994807672983363443742449685837295394272424156913604809362985641876598962834644663779454171894929535209093108115384058125204519857101893227747538296574426728976273046461890428389619547872797771671718206796947072792956772860879083293038556833454070809567502750952959977061196465771659293623040238994570294998221278670506034886407307190920627532012644205877368708813208816575963927259073898280050964207787118117795487642026299749630106132877779797263206515257847219683311788373488856849118757152553406380142782054342721920961259358764870759556527123720384961444723438263271767531651548984274614319005530238104724500414346914922642145316714971320253183884274365519206434469501050512750711312684024329884656209521814241268634916322776840466869596724297488806529489897775174505557136606869816106249453142185741901234109548142546020647881460750886841166019350215862137572775479794808203360227988891835980913884808641099861174750778706485122982309256225259096320531204932743729203900731908223050994860530528528271921207137267570418688446859105365685078300073451066283943634067239571217446481749542387822062789910003699997597606621058193097700464872459634170355956555789243874445436036022984014659221538035947344892546376840974019301670903344379011084592814694236389235315593501357533150368038552320536397111606967096720432318627545299118072448026815974731129808590780614466492324565610548567251777988827723360991968321583213178233699505500027322475685319682827003910863604085119566781031515356254981853292342464364611061769991568773530156652969456991653478148446902592081388746168834689083103581005712826210827455605579119693249367752276202605729786208131318563909112210651488773839912377344137930922389467471450236808655977180071425241732355543982158804224364822552683132102943305742671907449736929475664372466903772236400695222133975796586787265110483789462402743852529572427111764864183841468799428113203524391609668440438484744995133598811257259154945456545512516444760323580766599948662272117277778356044774865981055404578882079096608217876865624123609445506357517644024023503254705859469056510236373459507601590688061338727438293502030743023371848409994881153187110215361322979541794729120965111555071932419018895307030322062745667689284490611170188276931265495558635872041247261691526446206221389251387122751472496782065397614669271949767210575894930014500397896747052995258240991352515539732936175393393235957749278472737233874670510295333002421598871503045412708888443822095776314891040684111097783577654790105255709758480231848808169858755811847640968173724434564591159744320509550043992094557978526106960159293137131022666802566953516098052185474770576447230556344714960044329461133671399629239942836104575344280351281835166230381070195145588136458084562013444287287628394165857549327064520175751845163271804432523368068763049316279484265794260974721288039427733535703250682706290726212513903788624457268060779319754547554409930825736066807068271995909144214713795085511858359974277255362288400948232484467789674962603129842926767441347051999659116568244761733034159340711928961561652517180187432657700039852872941139990801559647272711163545416603878572262207370790411598004322273503782237506142388819966061892741160286180750225731835338543006624408820593182162583911083721753917113727328983908745993381853938039866628092664956989423195438479609946825847233547945486944756873208274103318699908573063907959569828038779389840276823130720840894701046551960873108981370431806680655948083884532092821890896990747420986633153814362174362579086952544926055206287272509690656645176752937874923037496786988268302666500832309418041912769770036024009429423687032215424644245196369791802408178634205544896054772406753594727836691894875015025728483607914141862067923977162137773941127009791652597637548412927806291287365505846332690238870069095690251764641345640277444187750404499420220376846681360546594016462536624026004401412066382959684225109265511678493556627776471779079870981081423505635099986131330355823923265579541422533987615009425637120529659266942084262996568557419677646737412257150160147495971135576199656988523590833162103659135154328711454211004723488040467141739099085435872723950406315962615481767606027753781110786373195895001305129332467071849263104943640618585933267209883120929954098574340015035005963969640478460557789533983337150208335049832288063979471580996910811864820538121191311522217284800900910542038553444075581480562167987760027132449580257051509214995317744536153697521649663673660272412384835411994964026965909907863181137117928315451824321588156782820321612561441014840694416558008855748625514667324071839289549462982146169246114327979486334651639670442019655324330735335667852282707955688151890827434591187919519107460329913401771487203765163645135342067144713673289780040045781829866953654472825208657436168011251613573418699835308351069016429728376705484548590390465657168768427838173701076969117171576137590165268442449551404848315101992323005392087197138195098513399114570993956288116440520577511072506393288286469809698145871844319932736522877671391370161999469860136465976401143793995864727305865800930796094001549337523650634256270450499884450131343909959410151583434488663948893513828816537117590980777543179387204951095156414981257092954121485425622439741826480625652045304562449928105229366673496206239947108020603767419844221382477222627200755078436694294863623940309368076521595953607087004682902674158026278165068613003828431729556672575390035313713691877622207730803548258989724898178400593574247791496862762525960839994926045911269800160441462438247797546823788926670029461159646895622619067482572860490692254436971301722436461131762283733400864404853129135167150122767838921987355851511795030879226065109862753414913974545827615293907187450552949200358448036907234045582690652312205890480808766070866097382604317554646925528595515894339413355003411059378068225271011868990562168744383339578060702932559748534177713215108472563115524516959518366623078656439316071970818893222675553306471883126422995506916252317329684805641153820795540441024351864606852196451559835283558380070400565521025574472117281580613102459589903268759190147409910118332372606914603241471338021478839226986637942617838246168022656905931487302251225442303824477890546827794639165420395811369457001896229055995085588926870621403215001678403946144744717874824394817989061890557560403032100685451489311118750294330443596451239923777320313791356549491889596138450608688088905657600924750294261783428616854362571579420340632488479202608367709485853455975288167863001569783351340699735654826625794429238239815199505558954831922334000259731779044173565851510332866272164689651085115799524959038640289892159943006493639042285122220759265391690082230390035416897394388265071900513534946286872802759366663027241229232987211267033502748764023148541779453522032541359192294908067148333477601463265989217391029316080180707582277664836832389338585907316686996949228798630759821061261626407916359581675060611462949920976123070938747450679151817261390082408795369611110515446495639201477615102367256964837896336523574571559705476543063217566399507055820798315898514207834373482260367776575351777390757398275713004754343773152923671785406538090602884853661856656777259119470130147335581729138975604071827534166580674227488042782771386094836739224761517146272563309678839918701385304287803089461430192702294238467185049443122632253802123620624624609557060539090270585492533967256247152108903679780106756258706419192810833377453749560870936409864031646592758593665535728146363184787627841050041421808947522366116292494229460377163277957313874131102405874985295790372180845026774277763886341069199084729948436053315291137499623443742445529521711700460229065124316708838449436869617677627927777791755017805428890130822582526172006472664099643144164575865841298621607981186177538998700084879966778949960637527381861608953682378344311984102124507661693316304887527919353348149125480237204226374683868661832948851098117841956353105567774603083671239569552034297249191167177924694960268381101072244292289215967959856083076644612059648425184244613733126327753055737742161154543699182424589465075349288810169359595434658398570541996952769699014964840247550899397444775902594419575300440660044412261995291680392192546303890312573054693095333099287534896755114637227579396588599790346543762350784575759571280602572150671776740614165549848511287025430229299495178251079983156486484036971272014730695090125292992131497232519625673815419983273411319808575859043949025584589073017409170976059363964223841742980613989717477430280834506556518188560021497109168791012796632858372604418174942198527429101383859698550398739513623686711235213255005391094949752566212806868467979488894482828158382868651305382991151687849571187687111955190764806920150492706420268545702281357651382312133871931549934506848566032282863019014526388607870533499432423137513842787883272469021564030806565824613346539742246874160362293032394548032505932973320113798024393865600275911776814241310367209549526739110916061060154938930160700227971513244991646248774375879026804007270888341805789875401294826135533902756957564619091000640981473805736930960197460341179860692150366525258831276398069948018574904603156107878979300085484753542869898355452207254884733781708282887216613804113663309708707839640662876314956068099419087592017859637752734193035006235931199824799018526792128694560819717405159653641886324711273780957963745676599467515374833736965817299971601743530418177082544506207377968894213942835697038026014848138618203771234627016529884364376688731929535219561063845066895074711319783802434447102591937770867365190052074965814716922426953508461058458928916026029794273992328203697597965195122311662515826275282065922008539698731274733338421975569917723433898578206313506288048956757575708527805545875432786380607128118539050169938379059230118485393106664475164177208956909075317891159547498758370752390180685732936373985269606610127892886759388113535430460440843782893675447386507511399213840721461615872083459736510107480275388185751265399451624042511933379705127113617686059701869205584139274701670809725559093131784653247986335701039936573328103034788507374730714377598112275600039987261037933320447339593176939434765047416935887770926838988020344560160255975214440307153971833144789136780884674680068088036019047491331184279811775983994356315198668372675529395309086122251666728909413418626408098696682957150043750881271139347304460528888068526460992410205203885508386515481501890904348447744500372325945802007681902681670483783347803980224464063410180658440543576139482842133658694178961661899338617130243607571179381250302321909888621721281507123817462725659601306644894603255518607898146880820221009042717446207188277182979063392451998664083789592330041136531132471950298175395336041136054494588097235895951088679631804854594600230544660468710197003443630251236126917990854614173987613086462654611109063871312371052355738578342048328821474329802704443242208945478969888688546081543792828936765119006498464461766687318107665132086803240159453750506589550194579057154066262544896561035585094311796527440374263896918347871049036915485874213347605098688854525402967288304520622052086174647178056251353143029181441650546996211373805651312791824689131684857888689149085389596333002093068458592877380616400541245974355388115082815423494152948129535026578248733327239221434409123837292482256649236810162803388159107040988664138540879350909462019126759073514943777616249451695581492373585623226634639881445782138731842618461041790041248042900851350622690535867512157856813644991919077377532861245613494847326689232674817405630841472854423410029065696695116214875519091052021277820208225051760447425431348883498420919270238126705008374294979219729613259059984080706505116789364753719472546394463301946902235963139262393843287044499727006896455251634706730669451382919083746409662337892845496700036757357358429726788238161574102879390141258679134591954381566829124984538990571643790681514362289391826194512920982795974714951112936551573430057812563405178962050908923707441776686107702780906023858574450327268794351931929668719821144472884868713973191460201737476488505923444326948408469058307862885059588678273170353066766285119135064101723266559665013138202675979006151505441128105111448535663663478420593389951269839225262441371591717063059383954446612102572334900875919872137840225597535940991137186596741377997515716667245418634307561674100356043064982025567756011628783514208120290678772101461166521680805476934942555358811529760790604145098900493941996606956818261172944722324834970761788237005699392966390607020395160427466081871727080153171187141346068562401781013905888126618407790488639092764292306626743062745464702707974704888560784231479637819359365426048730293375542170631742433995596543404713589723145643131214108110027142111122091422769739373724336338106722752071555185722835455429560330253884927850666446394636971446409295391955329734836861966788369121010711451050155751290024159815631522167017034442164490540903317182023527515379718804196761338150548975030533743490070350955924098315488514544892858671385805060579744542744607523472930618052206365765856587371427681727389803106288318985094978347078001786848182774917825550145775142587747169554033269147106991549212559234529410249725410018618400427003778964916829642333631263220207966465442637018842470054492699943609828628640453581855262860884179812665823038072260212007767299967900923045537565223208799646727757491049227982860547263065596579769747687139368078521076319452413900346574147937524401505374907578174317603905503443485879137399906985966936032182408214837428697942386544924913720318947436654571674489061440668105408999503601757554063739709058075992625541724920976957841825157130203977008320938284084727003896364094989490272325084888923641607553525295259701115287279102996279013799051712173449417652140919251425827590315285921151367696767382058417327977033935720572143089580896055154902413453763234397881317301515808167129720579816635349729379318002965417403123664361055693510542770692406612483258168941741904870933457013187701433891835687629159022542247725612725111686990370777804583652535785410607367104894410405432711756033642184320067182003895801451986060299964317568102295585826868713415122696753329912791953390080400965346409901391066380797785589767781930597754450183952114665367479614345193570015667362317280897403807265177258221718426488948895679734552274316612260060320351729029787066984995942871590395490881197587919176301284936590077998363467494080047255139431643938620109584154488566802479447703263934170203203017113782304894208331384639734738581599919783661030386623536755253712301073216013143979486872513765583766240441866067707490395882179114795186271518837311682935609793692556579068504037957465825143695476650850195667521295461592307071879936180803673637796753666359067781361849360076972303239860409305770036708871945773971992393226432811986737601628943738134306396999841582016501314558436731677113260137848106677265957304546679026284634030052181900996557529072450918055815822887759817389848659045536804892464289534880004008642770416104963410731428200169745714475480904288560554949168042696587596847586733939510102140684785038829507383318902440262032289982841481555127345689234747319666729272490170151054685595102875709784491434278569891208291373974791765535777325284569394625070688867623030197364009265940119467228013804427542513248465541554022099271789163436382074622474630204824702815600314748726447557981554279448078931561724249995255114303894694531711415354010784902799028727440073215456262919949638036616328219534605148750236362014023424127196726220284147154435428675690233884783982571389702643956122833065512973497612676114254771217140022128716888759075603807400653819635917331446829210429297440956265355444681668096736878159237398775230946267622612040982383385877507269489236241780229327533049904422095936118500204907855597569760393867482972976304249140647459515679247190477890137632313078638373569349049766951551290169649577969026342061525110623218318139531199155345990251905584768969565930903625930693543459588868111248447886435787504146797135711373159262144079951605948712611615234672323442272756251498029253807875930945953536521311945172889851335758773654909258596291345436396410224577432973688595709127000077497636623100687827431303865291129181260678384056868397146417068512466520253889605325607682026118852108129543603757933037209198104483753420824235027684925511223604670119054949596238591371188909450708435413847309662910516888708420789364052301769294925385273243405050461917597488464709817123698049008757465907178733479978340281945693857498756946062710061459356378761455190848365788061923676120990404791679160430703133630374798688509386844310569000606610107626072929058374187754359815535528021037920022465603699377650293525473692661273419862259742547830994822893173551908202402859055246192014659537263346241458748618348703361917815579242733982045198809429499834335912631679066528553582506424907380317271128996429648783064604643787251496414992204801875339762843158493534013894646500006368425986939975861323008760504728692903913961858928970694605990559237317088319457811166368844071824184072498868494220475427172961153099286077302739681548948735681103443042482580855449303830847185500709614920387157458499781202400281349327277775847016898833862456264671386601026984877916512525918016842776526322129967369464500680602416486414041569512095412515544529754361845849851546996426292614200748782025989942287757683439850735088226322495395281528849921188708260161125789263600290340563361100720964745190069912564549820406669346668079344020314038685702413003148523772464219009191599362886292715094692255268771794539120588651536257599948271359485104542062353227733871185931595459574183709104134675831019197314033433917908417420613155903891730113927795573382820376499998067679396564476063713523369235211361373917864209050435492634260015605338950244834595303894101334134078317556532613576364045360732664479824157283552754380053489120221670869766149345682854582896655846816405660771137901275871672541405663631023519807515015232543326495898184900811194973931356593215861945223957086045187027366971900216764058035311723146520951053374183432941260262648371282421592608046955095533664885605865226529125731944756182233052088885132192809830396797476669347377340154505669595208823820770980058034152866673379820853329575062165481719662523021517575604336267761805594426067429456091512441625132988329127688326641198945689349426756230260151319863282019146488696533073865806531951758053616726242260413528950699975296163362134237509227984353684666451496726508758932454485385711170419901870606952873503535697263511467869492196895422777072307204278382590960041818622873852427615181821454970127653624351482765254426118157639258892980593930542572594972804155778931779709068110335858006554215442113041824423925773447854202644482414958227078145893571906598609348776620772575320054223953789919175340006919153435997694205367284292712100584861834207991268651957238849808634517848203888669299241068584652346992737149682554219548537305443509473456857808461086973652922625284109899462602731522962519406953015731010272595005036401387376789308171806017603417545370063333238158648740816716353701352773085317729421184110111293216768560405147815250465558144319317448463011620702166038520063943357102710267612335189438927972101039722671470305677029984983880781159755933182948927675862608746690046552124625333333951091793577251772071635704418957873561090987551279662540856905085681456187163456809996653310588093277193286900623381412881720248406010521563443066063759464746732159050417191816922038358948782292820693895575948414316527947829578505294646943945199810274142793839361712143323361977279666414942096307920427091034143225670554793739206155417234443266403183215070878611338771806754562141518416256362558123757739710668692163767495559083939907015404098825059980230274703403374458599012711204626120927086784610069251518394972167378533123951847294152638327622805281568754492677059027814831752520951762492718158107009924470353476991202113714678580252507054570349504955323045886271291137053851505923904703522173144159022696247121648189647521802237188698876424399944160969178209266527278117231188721930951093582050946060679435105389204962174624830286771068430422161193509560324239498308254998998361501243267466433768457758588287817349690252456174948152641247536790816335292008687970287721923545850886506057316103355870183847706250321117513230130063948322475019336777752880039291314614833070042184871157137107552510039539978568857259407255651929906060159949005262378505637600219740485343921844406750610225184896737192265036289700849828897789908520458371632889459580683677658117026596094169784049567923228455178022403380789544589869572302331232454160455501443936856841727253543402341341526686320933223489714263322890765187792977335780940035114022271051719716966237272604844290671278921732705880791221733750824008752531144830626550713354106408718767831776941851713343104389571404962944567263986494306968062047037725297307474672216224868229362450941739917261831773084774970572484459046583595884715319596784976807799972879112196257120484874013963209066915803766422351915662790083755737691232058372163492579248896043843078554972316699424794365918867870795758939882651709019133747405467772579598327897101717089638918701539365524750912091196103083675597304946564315848684013048732463996171834936134679450557156693632027750316736744960342942806993598779610565883158172316237499621532373186647228312504030834171337019431916764466897702407897067234743508786827757307855189952701353169854341120705495773959634321503474326332404792463239319802491625793166899985322558381101701385993551076681338952354097838820013952005195511940263839246149860280908383304328648698003983133180562290017471810169612044227751314072465885063651028792858278418648102217921310953426291779578632278795661503317028170529262381178332294178008782246378484620790970812373731345732002534858314474371887143367386087453331493650173805876070774127716205432823561541881761831108952112464574025578125275543254099887537173014616705261382607860913066431863099420960290486369124237443679983027546982301456891454185971780443549747965165537173682358070222034054706226719649750431238787607076006551526930602124561902306780049336480628829591368695486315614113917921106251813281245076013528536994088819821587323904146759814526688686998416524056130163780100566342760633593335969217754150914817492930054522589608681422474128716498630634822138456206056737409967202102409988177378666448377751332828390573377840148851763705495526518760614304181613487888119803116906805532240239514737641833564490401269091295681411911518478432229470951612482892607115330610631209345801681675074622923619716508957938576639601074752449719164006925598113114797308070146175745788528083977554920459137145295627766430108595862592338804825511199452708123231135797181001031567306546327043702329933391789824019236126873770855623629252995735579508817376633086583148474162996026675761185649836985790767742853763646643288819912941644930586961537061214257048019479141165417235577777614205354187946751915601989291077212499387347429990150372364191669772374344303083441445221891614281249602703924287802852866502828010192930888250762154231957668842645195612013842301735038822367943257708624967088732725505966686029109207941047500617109129668018612106356343991944967541985638750634235170093702167847573329574730029368827909557746839756026217239931184125380260734302548289110860795827346281606404711669431871093151903969340650348527416019481950730467516003364235848438652355421537496105666816951427549650758901567634764536020723346697953698669565172347817670972920720616678521391233565367871006948024860622493747998288989354348843353125403019075419458686699784556489091668694254538325246186376647497217872500017940787058057527246152089061504260341684548241593625540628819514934619155046763660806481027873370089107739938070672284439397879981381478612224380977237438199607716362915658442154405605144445494444057434915769887182420526675450102300908722752464796946520088648412790841925968366173660479485043997756072975105213377370230810694936861981651330965763058805380322003254284577133130903715947079429637566753087872107962514341493065221249456970837102780694470403688307252522831648843077340034348984577902323596128151146423204630023435036144305115924309562264747062071017327059584594685238493378927639124855619416696696867102262070877785480850474506183496671849833450111969103547892816347529174600690662077817304741249905999621377328761950904779519931688062609262177254450618694111451674434873490430511070709305447471571711046982452046512703447702305296122325296455032000250334719273869454460660943047353349012384307158574175635771657830545075436776649172246596012747265251720999002953153860799331642435863914903027443633077315172519889836949452561174123306194934988368409178313433357050843099614874943639532954366800034639257001293464836110870421285762143197139015311493131211646411021487802441102071413973273870331095144650934454979939019245054394210946866358858507411130112551600697525468005081215310426966589479129222468069310897252038966399417296058517404595265702286142901228665191096536547087862993481013978609083649530194286240045490952584592192202719868741942218820420045418771954827575475385923577418026296737689633609489286154582905516370277891801996251811427453477307425629868493962621835160419614294094436633892988586095762774538810958572034638406200987015582282464401004806811335642231815784727522750069742277931133828250468498232875614713973910897522975332991120382310722642584226420873537025985413903307174179967149732508935096924672611141202506471544782638261151403971674924214234104229089992835857082988719611100704687336097061020952747630986096713486626333722778368449153808033923949638759477024259727669687986832428624381840997093323033522724433560641249473026354258078721491849395869871414198307034101512324424985788107385972792038673602461236972358831763352922683311349088666626850941250294157689668172018928987931056849329191817100239971098826443704455943952049256163438599791669022127553807044921657815019859398533383935995100508204611848428018427988331381292534660219947737897345816216011744539253626570645466886686213824786435818268512202252013619738224461840575925091696377668157374523405164166830691274140770303752469095203661359528052314192146477870628669033562039447691609874819672599081814656401372156859484637873080778157769312292398258078797253654745118473599716262242464868372233725789020176259365282895540995063826535963471436110825495377004890955043293827678099526318879671240057266619146283447233488056743313722043373435345467589883357616687033037901409342351069051507927462533285616059989475866793699559465379680712759152574002238164037148139127960979750215646250428615211792660830526074596488595577399382602722650624997973285875637168322190100894221476654491978669207993769046950268852842830704250609802300327907656680598292055732996394900982119733392703415408084199010001406153138064211123962548911357309362713004539362228053714698147919721571539474352519967773118525497487666410124809854891622835456718756295268957010379289020760276998528699885612701673094910459361669523324779469847858254635763019408302260240811748426965334920817963142706542625149788652938889183108397034460721406275944910668198759104518798793186153361937569513155835693429120517224619614107841388936980052200871452201469494661725603195898068571061887020557926361447443397897306767115089503820911911090205633763368006092521632269406707222556625172891623979659171209394277761224317148635508029689826115226105714695158773416449323318340286388679809353074983690913220532534136043433178696732358537033420013740224037532449790807315652187870335937104679395288215262738693107540705800425837374783220713122793453057097720442030118460603826668135970887447178930021954798785701982280181826562409072337114667706486907960447432167184300380375933837146890054461497086414318163624168253782827757101418242063803803410816929774560957928134413548939152580098894621907554102821120966981759502192375912368409586155504161914082278624698069724096483355070451831677055938474870151456071628850536321223962842418671783655794956782063819396184847382389619043775617674462854551515489803481803536002666645987141821200188720201910094635621264930241009045914128659190889058703555403229486857226699183084427044936843173462861788295727855400401144337702707805443346654392586291365220499560780934251637546442818559473391644522584970205330765888361725882636842789791769017607943633742766000333024893780267261475326277236445525101641909009556424807718189593081374670521616375576951887600695290867376338874765887679153378198272098977834645018338120598916956522310075133080045000135021114723867936752172730887953886147566903800005837385073724540216661959901606545382302823057049909861319421737033997010912051864648802054584768695878774547531536018193022636215034322662586182999559781299672593270808557596389369348698578757660740692802789389690749685103582807204594057670028507351697230285890572638185411560769268183905026859232146138535437142954444053464683576456925685291114307592713235401961707750882441182345039706938969580888809410861145667785352340126087660177349894128700308509917687718882017992447497659664039595475247130757776555660423617092747608106693841281645672372368615206998541102684083120836446746497804029269904672687138852092705341505029006692809174830843684626795847772329229509145367240792173424571549351496258522762777071249675887597052193522034738682058659334724165681835856612706059824742741239935915684258840492338012232432425074654577350119817629312825791401512332892336814551564156578366799207302352753507331554134442416443488794041257211355139886432814035241702948101575102559253874580273567168227940641316827492853641089430746271786025563367634772204835786771904740217757197174947163116772116675658944009197795900174401699269739532136072026794180809016622010764703879105904371980552844554311013689940795776836553659185601688793807373025647336309555722388185101508067959659095766470829551932036252472248592088244330803851673097471792476218497669249030073577281101284637378362118747260824650973904961185031773900792468494990765257360222632640682327285217900016370105655829229522022048720036243758964232820601271765619049898512927188714006292778400367414356965875221873177112476695767485177457890485468130374727720146499603005961883853493021949541462662135564503353092275677102201861459020182080171991611278830514851904239967953073754361362362526077382859594041114842152937877518697147525770812562180133693223380666785836094686641762856151779724042732679771358918206653271419589817370787828489146915209044268169010531835676889308152889384965953489468910403858992950200407721139837408011572433483393287133178932150308883386856777887803497832723915303134063705291511730113153321855918785018494378587587757094081297930871836594567008567813283618433955104198096787404165918810362408009160682589943504112614192893718533518981824248446656219046115666658645618435832974824997042918971878550450896688509399006672265214190583020709728340016836479790319146611267798336765798888655298119705141402940168910980802873059893713858209923020990292940033386799167058677231309810121266409584335520791125562242014268708464659751619777538628423220094465203529109393335219884649879370962908991301466577653471418566378109714536458165851507234156163188158665371009800928617575939761744525823783439839435072219817222345022624271573418014965119955086382012793717861363764634226527588205768261772050633120729672869365370010112172015262089838196716359797942096723379758563439542757124809052046540447925802337804772111577566890278161959144784242621371090518920405667441739839934004843260873834735065524245935819234712283666136335908193548272599049885439043360851023455521065352922144627788951768989505572890571799412767999201262451856547033149265924943406410441914947673748206409995786053311950717695843505550719218867219515900890226843167824907387667256797098185356751388229718568846681113260164637078423265045870045264650107758321529054575671496859455409922483451699116305979828948131210080365619758177445155519447376020263693830241261743899532189299599350992057988505268855320999602151523387765480514622987767780118015132983509506586214841439325087895545689520208631740221851463497218704087603981058595361731837944530648436906568244887367334829512812928793650458331559145042582830841919001944360904485568576210294990836874271579948498254010126223684897025584016746092129832921349446102178683755491341888178796001960493983913160136106304996395875456107458230794478128444226149648398868047312378307141254147240725455222770668517720339249977063143188105925911471495476973548296272981462819129197861200202943500466266550697764674879660031605327736874335221173860525706140370789858415888885665269422362043601042322733525385312108769468582323206567202515961806577042631776552635914394808136844506669960267848638733015553622865378128247966285684075797778754162465187324972731954662494699796824292746988150458504174037123181850557273641665764524097353374408549234305106432935794322020289362926010912103753779103638400891816869851957832678676421382883726814866739107963402338497068548323112388501274249809500348302795797624910656109343377945199752228381255789198211613358258122180054493255634774859874642876888598942785021673671444149935163469089394188295107276271478953852431328598522908767587893765741262684630605756034976503752363339317167573085946361351329258135981890444722565459507924134572800675992743271085695147407328333309261498090566953931092734162161593837108413067747379633195579538681496237455446987784350615316564156869677170013248458257581928585928856289953849645645367698273715426097234741676659718938634010955246188194443359334425669707727274905141745478699762039881395942797794865825000105925428602554051840508213874214851555375909711915187248028223092543975915937287019930438070034409353708956592166966663802028443266334714448953243501146159148205015709496873636177500011547496751965212934489848352368173905903958121709158678901245697868649665853245498497833968247765570319545936784961188929295870232460809625964696599575924124767234602838461628484096193946156176225845125859223200133513362116401781739100000051309927148152738456832874963463069544823851565735569370285180133585762055550907106267531286054717203299470877441107669914964815565407220309785608123438643817698063291673544233764102404710801444195691592984507983100491410522940749022865209402422865800360920364826002812469358998985159564021480851495655638894189821192627537856070707646641161362767171147437051904278861513737578209598682969286168021366584011157434357654657611521009869826626460834558585277830470494108559709466280976304490612592558799673411531205282292116935809738040483239944091001143918112854955266816034011627364811761695292769760697042461735307992399325897039435437500233426081089242514259370885785098591246026401798573401511668228072302296184915052650758185000366989838026735603798964223659625922094633492740096812798122408389881016438514617285694235137029868685215274224828517904713986240816005161048326034737284366838713583309902504115008088466381913096848183376537740583325541546350655598298108968719095117906834845502647747255985371080237568850546724237269143493130998915422313193105468104238815770886908119877789260961530138824881962536514494929654505928014480662143133599251865986686341657559606575348787272408554057809044874154719687732765068751834541003813556281089248330363546540470350217880654243116993085868954541122182772556664642892117970936141426572383666249645526701654653596080526882712058649517940900747109856806802658914214980869460559505648630205830449974996582409463636816917965649288982840872688045309185142683834317102347984919841004898550855137039074548259209156340439849813072083162253794875779971153388612876817661736607044641269255511186514547561923837852318047312693885537738471344210715117217345223756269001517589212789019937326409733637375141490284358959250286170462876496774249562152628175301358074275068842256724790958011673310642966621182818323145412194393977077974683667941304041722825507290189488990190117006793872476067343347617454012547213460318259238402495870478599404519164343141165030710655311295923453054115531366299072242313821100711934361249330464810633990561803282993868957293888315688210371035194952919207283597912072524185675523584228619749587126287822563104964797833541816947721339584051416219345089200394984527911986289424987531101695300813874331406451587519663414479067680861396036007160184731996898656765230681252449332368547510769464098720730862265076257284498101525836205979213553044844794627238533127631869276258515916404016766511720644102146636292280242328706116948299159461873271747929184222032195470720453446904285416274233940057217334920722393840911288452970334532234719291229935406128837263838472295379091648648911828533976653612334954674578235045877688128843778287144161404809090071421796253347570828091148600300724276939334975989300074190408771579877301506128653029221526930275482321303664918395221422799177992072818007938491541669432712068823896690366494702495739058989060258126724857804020092298197439997359452247864586635087335705436302899589294312774884118559481226866501648532246355666518095421010128555538475677255575577728581851182836050856734506857954643992903646175004424496583145618569044916758640235960057440724475718674591944974114059038892861458974002770689944183288519650236133924051132001397475492216264474099320285018481252921623374926115984830899663893357203459667500085516400448037301317718784554067334995184722608688237094964383964561362701464922241576927675043765767981863350588815854410646612716813847331778204290377634102644615515802125566234228378431531710426749652361623606770935212093255782904070028922410440991243245795940648170399890258756980525787761233494995591918153185388557784958227894944967685142308175023050558941404980658376583067229215372560031034582606040574855421653313239395657149400974926269418734019807466912541062939187761209722141768679818358155425995573012299363976063607603880327531213434200644742681904319972696745463033737215906091881108004818919484274975570430292154089926118194956320368576976645754275635334485471981554336569987197078073809006675569819083298376164123774644679613036059021376114810375539663938974556927372615243585546370007534738832316781449182290338679400165879378857779747986172030672500016041752926323465129236588913048668358614942901485391062929991413652585001940190783263633987529646949152274647634412098153609097744398710565367385309042768307785153216420143880816925312458868288568311966729317228233498051661570146627810982789641954730291332598776007885312119723140487761360955822197868977490021709985634692125643489629943460610730610967072368673578237086274107649090500750121460853047776596098474277154441097291988251225743244557136921444573307914334426868100120532359360801192371573234985822413619458277319705533359218018756112576651972651602674004639274433379383718153214056561086934470071112255158184783487341215948078161261316794111809817356999076201119980724590234658483056208441554456528347588958896523608848950531957084036614402062263878129451911462877329918501856378721802460794357467449298507087718331450751100545857595327355249270450200270624164379543351040941807219513214635927313072152703720862002518422253635838230823991413444374126821900477137889748885971198825470202530030812821819270392666790806615752366027692502020574724434909002570981070670117769002397113306524693801265386816056931179612755167049932930729082834057240305362303268167236350886173072805012062989130108657151047832353307386684396382804507499421018039166833550183358475013869236018035640177986899930210014454614096613498904324933761971890863423531224600969275221058769368073333078354317709552674118839241221942004933912344407719888093305770092415501221118272868046107432027599163356346517904436221168639812807450979929595011493024527808563283803169960533084254120178971512287652738204735045679792681122899936976398453796616355754370486049306941641242815040521058828522819119809539982620348677781576053079490151598053275929577065638686198479196733774272702859803920533264463851172583901525735519067408561198324873323431389826279531634085171753359661161888267862617572885573477714101789221793909537361477766344964138294272761050808535489594728335380779822702843853736867746209984246198624562525430651400176146132022335574215934935527826412485260708891462936791527378559143357227219748880840658548936874807528662752570749051200903642954513905223089886921916238779786036714039925817512858569870934683141534167735640829615283087029255285387441874463570239303606069107647872736134665818312093345253376735373853986717770165051623693185462379102075726689598756878284208545820089758296937255891209236216567104721689406380140636251060772404496627675613686107353537009064946837412044123248765236640894560641421270031311089598809696892113125255688793638857216656650353722451648762380301939401902453986505299017842883668867705068330647882303058852928827766192674642470633452094615870913542010555619671054832583775608914335807821104160461388835495210386582122473301169707648418729066417634691797313553091614580684634011471243371603218243852580491338553340450002092167119225986436321541115449043313065254994135647876881171557156775548711938578942163653820356638180572307410349522750105821187995645247299497075546534202487826511444270249365447584353644544131951490155170165496587773668565832329946199154778112304919337313180330159424462592723482363961295212915711053922756363528669737019209988309689114584649244255300204214482393461181011870218315938505264401602228240367586761128976956828527667840258195701450122753155607812938698632790683559717682477639962094845182339070342866705509566970247466593173654614764485263728784269433774757088574947826676327567710720815137607376294996595244810097408388082865933775030323027521076567342956445126154812778670695455524573620038835212697220517250125310947521789734264266861479423467001009452738671818048525575321733145333571370880621910807386234788418362034435115276490686796019270181098800992732140983281991278116821614054340835153725389369756957502015503125874350260418332393178599276348318161761151890881978398391522745178750579030950583508202996801892329666109338359962835828710763362796752520743138235270043050627453556201746664444635949622263841877828249467902861534069926274363824755013462071689540536633237276251892053852515089769267387539889496041395324716612660428374879767118041424695067815450002321117357742748963365080381479927857071089193216715076478730173128807324949338514572363969216815466074955074042729391440793230683718031347133975794743168523977985501209177544744277846971216531755336065000060120751676829245845615141702911765919961901845176566771259072476871260786194529189366042949582234403070282857605433146361814750616504210780005304213197318068764284082586128507685471788707525095881653088526972017030886354221141447470870756090767047227977180341480494854046115145816478511949131714292551120117223889161151884332470468695540604280445235459484373477788060565459206913182652861330261990723499353301556967187073284920993802613326968934685564995374423344101288979851621853408662189884256492035541832381994186408952379270240954799260464321515469201596900163222376390429930319825107045905095905959322333163737705843367851427554108367566004368675907538506633930819328747890838415992112964518314987648701099164774561818749604717794323023024326587597712993813514651796662461164013562400816433985010856187917739593606094474657194077073071972574275054361898321448262480973720129107788308758333202002063965820017187751961771301472500565376365769527562804437732917545143633694788035337945895241859072516998970443282634105667731507936231464263893130565303313318589681732249898737593016337005267023572760157405081528173600637487295158714166973691173059839096330130945437427050147509542861532562415215976950937909850319192779405615079409594403938149349550277066397446620949661023989587029873913165545541361936745966663353542428895467530374202457831703193450596384830624629500649524766907754326721972766792974588470722392064337999567338381715359465963436683134620411578883254674349744279758681678691554407153692669303186037741169000326138157029195731897542285098749870345196234940810665543274118861514186615013125122889630751042478130186649350686566174156780187497603130968026379755998022969410965582879095856338926271451027202106050605562269350735932006469005021393640562553320537464499704774078838808509104529039257343608552085375066148630811678211794636157862821486936505123526174763967375620682741626629909131907020449155829743632333172128401543357926801845315266660309757355252235999696845719524194343194870461676327920745243976314183995717130642147518497968960824925363476578880945903463859730453296859119546681689320214398854986778891898365638159174704070786766838372594676984099012364758454033952196974658223875075486896992849964471919510122914137329378293237254107746537900988870406120824318316802787892596189957844464194836698349105000754029665379990721530081862198218385216489181908806257311966475480326433195460893235531106906643279265418533072250040466063800600204382195292778214483376283798170880001219662663307315535879682912548421063114284291623049297173844835836366208857751785189688776724679738060820683210927854497587212921372774889293137347197209501919571491097912892740986956759619016699943061619092727846894683064426550988298980449760146603192994192772219266377226057840975968645652474637019279305470591240359621456524605414864782303568166301542336367512931464591269458041892609550503365901713332170463328179899917707730677421867888623647863562558611948437215831029568040031462589532020991092812423456119672293684761225205743310130068768543523457478535008661205233326084292869331256651643305320038188636634934902598898035069219853812043911616303271328963677316716126349786955969049353012085401730958262488402474634327753574372220485380268728386808402472599990820415285734007428702411511365592111158604381650041955518537884546935160319675180633316252138075788147051951395589753519959335839242556954206898488009847128567380031023527813703329005198703229739530946566096682671648026332640572911569270585527187205649116864290339819616746462865789373482899800379186714256667739025673613313832938546601855491886048526445887347148823935507465960635129060429612213815086873955415250974919271732696776846637604949823954598171579674738672877732220404064322709371286991477142787546042900837518723929924473884066596220151732054225521189217332128629891607842818932907063984514750053756608058282397901765346048437155979313347094824587073897139184373158496601732397006812164948137034751135055296795642222035641546035571858296070761973497300158436870469037967851000716261097619567397111722500216457537272440519115823904300962972236404612557575587490751927252265835076857968480139291722981560421064825532554906683035749376292366236116882793192480189729299539930287822802029148320582204973529927336086832624520097411527696766848904383461403215610992853967933225681646388007930637692283620870078044656324198334310763899774044596098005186326046201513165222478294347452773480423717506233437274083913445764510995976403353512375525956276757760245936881234726947907463897024410176472849183945802062254951415514906452866686142236340252354174055248930424177155381887194862675982765700624044045893908238656715251329761440123106229608346660380840908492614617746818718741429692464003182354937808245530516622159441327178082097183762557406690499563623555070898410642212793033277154146035696740533052755043524047045000952541717526925188171461596756139866190277441252833423221372066059255219981047988081210653905672848475781341181747349685145868073116774700340272019412706314343280537979339839934342009789142923069507298158004829068505787026354546953107226453308891073737132312183022622492760301520859784910540268091877984988518705785285219011569766219122898444844389309805137218340968595551829786122628218666504854603268355440159538622039352709303198781424917567327992750023959303465151152860607181379006766380380169066731730895653491372696431991688760045071451675058795529082628825654321529217767697806993208741678346843898832979844070326131231916509836470944512574799825966286179062425164663601207753958599583426326010957465233841609995738438375087210145744078274441629135718336399792309722182269637502811807965260700762335726948873396119582153176426394286305866180884958417819079949817366048006432381346723489148116478700491336597330906207058321620910973581326933525058744603105364362363783041052343915099147921893222827908652282966640266024775996960957088917296956535390012728744938667666061153426102491789460782765193593330683351133825960517096502385105072963906444912929444018445033618273427951643555510039923589508294866823953799710787832607681833590200038280058703792824181519100488582912299210676512422416498473567513758132266264052860395862377033896198955412652531651826180924539408284905971214282394907906169475393021404994070180323909574905094011122766023732593278778782714744876169360393359592944624671933243606340196049108538597447671281130829397256845406277208578769915637294740536563276645809087147102114091259687745350842893754580311064474805035014545818773502767774657182858956811566567641472062613262196441187907607510371339688136615485597648722821173460967340897461924960676114511963828070297782197067763197063564983009982815511252199451199595584106528977033381636089782174551843091202709343346752618029197206784943610622737169792993758348143544735381690325006871989361366583876956198024876229724232733482126003874234304654742175788134974349764272616257128908111914533538211225041868215816614689424863316110039297273331249817152301467977817587404962567087939170877092207854239411638174372257491266881467324900558128453030908852719671270252767466344042872386282745747694632952859300926868485493338698414247004733390412392089677814449459678937693349356896316112043340927801769075965241517687207401704523765334275137877506412275368547237131060404219822383864335811338377729256237093747436149807446609461367690991372262812960084354580381691727152765514015479620126460582875647519272745353439880589644183295806772620298441224103221588035725061731578708961167278576969356132818835129220151566424990557715568883616164257965020007556580319704951670865456715910065967530863895760378304038150268665090654114276696165261896896400820656029097306871527664479279517313850453539457181295525313936066517775048285909482351765423334368827213886948693240360495707847462771339276370272624858474011929072073688151299079161433949427611526130731430652900420928372672989661595287690010464815849111762435594706327453885476065813309241255069063639416076519651516007291414330524317922406332116597296187537541783412377857532263426105775798940791583401717421056181308955119206640921020561360124837309650113885675671812077219300811706976907127883982812265455925599183836299807107998838661015593394694650587350049336134336104916802972286817398477963149646120147967856111859896862873288093699082220578217994618080960060530570786058160785708477732713785397054820577449443118162450235869561097441173529500340302408520456935020405205765573205171122183312506980172824082322468393296616513710250470566823846276361415405134852938723550927194309238283990587703785747381153562632388189544299987785921320544019250835978598671595180776184612646108271249888245501604523399213695098865259624108517076968079078025819449869189394349410153122721119024929958642195204930801090660661647976650509893384716802953087344531762557645185014775993201277828795031070562362763290154153702094494504776358836890780655579353125673100214237293134438718917176649991039026763749745099080024245860370942757591902181869136669076069759944633203747799464700764170753314558946611257803654308477716741073409630227440049891648639508588759343145784263174616749156819548791795656789769415918398470361517432431146184602495817985249803591666180825224039840683686611464483566108574211504903578324232856387512551967917243373796460197729014190877495256746321015697681056449372177374674751729889714168878087846187116132596466131450078661590469131189237721658532009065215012999252926009986915461735763156406580686198576457916650657146312018588562429314002919991943589032435468702256211637408934958833378449587024547096545047357567277192743090788463934718460129918933721947874588647387656786872006126793479342606746416140648666506243648654408343124884378931539177014804312540809705678081679970025570492675127443552180242449791510739486638996700060804466263382832432301800292286535952992483761781411640435142954688324590110532264332970975847565734630976281808412666657650071947409620041074665266817954374954172083985665757056890340287300982523998752203809248185647578429666308342248411915731904759085897348543839946550211060366679203970618237705965238564563645208589418451069007118729442720828176849533417842566027834282650392845251289502029709422905700711696087082282654531810909316612642180657695661888216843849413333547222569222512134929522873285060236294023688172796389889325842978091198087540047807516754739388890029258336480604132111046265642098894203842877808335801588473354623476394310811945728152571641155715489121221533359546752539946872624218825378351034292866515116453645668067993443123467099976262371514331084926273458933197364114308683919300142530106946465022279658733944331661173272390921706580993789783027769429994994336261894407777099161222419112574488031536948511415387027331839593515655764826615685004847806672476947670133891574718903421935632718728142545377595504270057731743569736470622623778942725965602073956666715861185306560065253120554866064441441959975465255254833871410144172222534633913573353365477360188648710032829133034555627863574160871489543258971022366738380672697735942248951181452557086045891462653619970319008895508367320938607862982231037487890585372441054572599798298016175216142046727999184529951196371195300622538191267678805878262630876561030796292941806790273057589652309261488501633438886591448289288813163189472501090142873717990839814492774853317543202341579440058380497567400765696177979858065054387848262259191820745816482809601608378426489430927234161753742539417848972365569229698585018765761287577179584470754079270285272374044432414617943036314006554143168100384684996814681576484737510265444251537334696945761605951329406678497767927605482410632292254953951472341267194410934789460004189752903814058072758640462185447234935699001381100360483872082631913125644893211828780216705925306116810797686575518089718904229679757517370326513466425988497766630826672798153447413857462553783231981200169839982561966219903685358087585415212736650895086302015078151622666176095683572574920825105159135959748834201326781933996967209752358161282435648544711938742748453251194681724313573810705563011141389147149291035388069653273076355173328773043870247543146494242084438939305968968858677442297364765795371165634567800534019423337598177479921646132911359558395521207231623919012974804302244243417713039504687969882903189259315781667295475434832324818374253808382392129720320598318790888744919082984783733513786502802072820818276808773046992387219090968614825804336268082558950848323910024944886793457087942534024116150140653323064891860733309936938764213776690283040205459224264367563991859072567241796517143496369354754351839669259139621182193315016680638791317415951975572755396776992324229875898745777445925281018273676473224698848183923468589145026787594548787962139047509385116872005313410315723929854949163712002070126102346545920487613940831506353582403541178205526569299112875522120336438645044958056917239401787139675896894707448170970784234915037230793761263885542730080791829124510600483469553913178447652295548921549090384343335498524809431499475751725497966787379439047570244174273814619243063385509260076204458069081668473963126490533067475649712353458643189485616999927180015495764704463409491448824991128045797312186520561741770734480465307616582078933139396445211004145127131486431909919794932366427566694471375719497181424478043286563812464081026557771353059296868480525829172580232065472727410508253872211125475768034828263045007155941378564498341470385349295638166924434551405842547012136201517997978427199385423126123314794529303978734170577633256985237881774966750685713819645588711196694384970048057317227913895492785762339430148810795439459740900884023514255797970544700385261407339148905261463552531861144950479446514723824802458021911043064151811202121092282353874334006089775619649256723262001341008903689186831194406944410083309730966589147571839588374346409295041863879754805786932139280298700933326090388492044800638928235580105633489746012177535701649871340626002203945225834011228949185856422383377590957382380386008754007314679728881670809267125865400654565315337786978597038986967495744516643757417883843928854607249918706208469672251282328206557807356729500307024342717991892922539708454685049565203756055471601452306074127921787913848805158550056924099154274661498861754810340589471629436426543102756224282773810132271031322488695951504668752210758520200009099205177421986713522554722298794778261263428183929866197917697654540649331864098738737797975693145305668126880173049164502674529141509474357191989849091295208651873549901946977091890135971666871249318132530845901579322310193007574730685362678290033898118571358732348325454087272729588842473160079932687001243161994148042927538989182551930465837486314487572344572828325255751699334801687523811834049766459353476301592541429217988541663992741876288020984848584293354128159799208391789073753111778967776329307410540921380777557685483281420121757884897814039709771113378529963376426044113958720466954018681021992537297545417032618580026474105621725394455107017022497529623294579439304211607717537228605873385947511462330279792052515249648633390958704350891494959863491521941609807288081994530567191965664653506621775523810619948820999853542952433950060435807314043167917225536259582327197267454696655197343497519756949910571712646787208942514186188673946584832798319297067117553642620943719517854139170869033943037384566118150032670267104928245201725584804741271754712745164403592035939008600568121187268453924229686591474550959811134501533611672687839743559158739219832708819260729779479211802976413790374677236340029728744833931020260302557742174157126178598152535987667242627109688730694809302251959874664788269052685100610549590071581333014273900246125559320373359172946104371223643575605257550765314043129049593909226575842088700585184093856533505642503949185524712485180092714257506119614095120965558830045304179273929290089877193587863751516354025734342826201243816178162738087898537828647452000275448816434480198050583393637973834584856765424979319297128124432892386093907632594323042107218215040033692104347811248064060136162877559913394438505263048541625124118922471477276151560477227829860520254388373006701062402065803078811679252643653075957659309438807729852580460832233391788935299029459241410877516553843259919431351374910143455568958625300260111988664855133080178855602640443445588941800791510457897740716486401312219998760831502819673116259654150967833437635317258885451805807157038050605443406590589296322881426171621979498767345939918252728876030183396307197374622420763055921804600318962949584403113123645799298179952360420839559103396641570079942014969814601499138608454817619909208678091791853025299913141333254073594006924657900502969602443518568723670260657008413208536459923402875137189339386074856217623324378089549336249553811238899256448208735798083579087315060185161645008007743913847942308564907916318623725121998366098484106863692948959983021906950891894679942086464819565424026358742873912438033949131215352335173004981675526940830921886770864646413032452236248556362073328072116197611687822719212496279552796000137532294160884443918884381014736975696975886192189354608143749959022573401890743154644418429398590607364788416095386510757250137025217307349647262593802166843159491832939650297154613338247150594132811815216473264979765253741158375813032713352482779878116515123738024643429486685110105738427579889872631597362988148608894517987770093398143457244382790434333221058094603413065135287569296804463782318368557225184194851622239757440548764015395720592362690957619006403127829045042950616795491975864299740702920793233183507481184962992282470264985987568607710068732790653385940105667955622404198532839936362038017576464351953410684430421813821811118817448310589919990614440163623559920068832784721062125834219514489900970260148298998294604740638557324441581741384158308714222229826538222038098181945269907918634274533322599325554446786644665392812396674042328740302963894064318691503218979129734819301388171509498876193982691489650154739723501007741166801479045809107135425326946266105257560661378306947695936408728701047541152379390150238166047753575834288812553259552308394641490332233174040254437548040044680243381589487046335449671052869198962794965604736733342103870789634862233406795545256131089440328853471445529113443278802530439536512308429806258819844121983273359521754828298102585639748497225076154514949899684945695917962167102907255243684584052928556866360464487385457122256980309663826558612965362962500993606259219223885924542428080629137730921901523621079407116441248690976500735914876546261496144378727694345376245434269654183451714449066116078475415823439129285734473568755350597388917849099399631810774410406953193766291138564185140141251075534823323258262671743072564816003397305967786185576435226669555815903606179400151893696527384394596261309960626119089128612440535711217702097634407758716120665023898176760649384287796873765317535943388069112043405216800996399506578951697354678281861998904908893290498466577788846507559586071454640440601269372220142013224345703222806609532002053941925423185946784765505716985909076328585612627813108896545947635782806183831051033267180927121112293639214277351072331855489681340038888547005729329815406615244234490163073821795471016167124290568754249764331408801348714989580740782419729998223441148250283280556948940934072272155576163288579009831583244300020941307083464320487420279438337845694758152998312080018710694283893396699798169968050447172359268539035340732058555965528418779173869260003739719070259490837464834196810653366991157917294513376762463058177455065986542136359129417991039767900231110067120098405845310968901683084748808704330407964992136107973508933500120493484156797927433175784012353931361656872194334378848282170979726246694471393774088640576649072520368383804532526090532040358895104758516529091043279610928797618102921218019094220324889344021261376013248126046679382959201799609953997404719178080542817074764718789896367423483531393248097418611211806329775131637799946228900971448911782430682320040617850234190857533268523068236382049169769383050472818359693210635244602475834535392992988083233229146274533247156257768944937955948752560298747580525248769308220939065793443930975709084044152902477625334592659423681708009788120156040244947077726004628440663359544977746406420295287117142731051007445261882497264389984379370944127227197508619414689444235638338006267191274961961465611792791316017391168853697786868810578069984583181408359725612747730833554028730078028779510683480534961107150271645937855988957911473775752555757230832968489982526117568435298203086913120072190969261954044243222705655734201606331664054075397830916733436922105680035841939121775809882662616281708983226412397810572633001431593791488423964405222188285845106427225915064940303748091951919895729445236921761789007369817011670083489984614774648573734721881656253187598484349961004193258521596880706624631932847872141373169410316945430081958799022643843616119265383444382405917984877942222246548999710798092625936329748929425566046219386389612847985197370475265446473774604991407312327985163573655818971996943617497510022967798207291485963126045926277765777882781625124852181286039414644358586474759446334010613648388896722605626185326984949798592462912353821842605782568267357228674302037117410220353366608277898214591138156054524012146497789748492944286133716628615746851840368121066380217222318000512214596261387282285442154594730183708540280080204872488568102663827416355408762286524503079708216620559729304785672499808677265013145449635111920954309113218875001593977436154675628062085586775299273662477232502590438241170458084186458223317087891823865254994641807380976469866222774458701757093330323932739446060344573632905015632093280159762542879353978981767495052851568118572054325879022542531314211883515260206329274556644705548249343430561217300127804119293123186601400881109706775469688532778716794079686784758063970834944428765233697513681485191455049227719067649431052082151173348808642059642530519218836057474493294956049149215168882874651485755954849399418900728919039037829265057450617655663385121540652471809149873746903882716212175075754579178258082156704485934885873677711492687360543203074325352566869820243129277583041580442174880890291893920588082396044526080494182163088608465655396630024498103665374144933995525040110024481220943489200555116232332473090772238873625212126519543568399659475938734443234879216994090123911209316314762872544491221318011816791206043968614762642447119400279635395022824973637194814317821284923802462901165394211021998958721159966385790326967088453722454842880924575729053601549267655613466759072517181649118799095528340718290935604999887815346092670179580221234467936836075309068157643351609685051676126017694198571348048071220460945678751860987458124311007520685576541303703757247042918036552995540406592215286127866615780824929072583693972113304621051046607997194562504942085571908300705297023053800497167083888986207921076318295518745521128493806402593629590909243580044337387212035431669775881209513798692249042673778796597186720956302884365222972771426238069679553921937234643435295985438118401976485810017638497345249166015563037972386794132730749225190640695195099959196600244690285102697554060163299623473575693782894369942645378335780214554458062921369114496521896343383684849411471492994975993677779110054928203239882602122751207473146780211265806122816528598348844698590693288576195347091820276991954035989384371259357439808937302153599402340177752096026448272102823084526148661355427822407264744099585405596655822945684369386617483637528272288670260314395171413694980097788249557878746737886223826925259363473012858995624450640281634642126022671973927981882715818608018051177433932546275829369494459444150688202128587731034834632157861564519904139622803343977378565708502333668347543235769252489733438142137433362019513673289982893378100759079118232000266680394011307160068356344784968097607601034177108931615512415608717742860785933202824776258093121361246977049174773487514782196361070269391572530092358180610753519509348948782483371935327866440848707178790064207308076921984962999093356698388424307588722765935654271074681269934880388669288962680449372221518510268198842247085723493964818112137145199619496216754489936242389066279329183776685500373403967602107870095150408425403702539585154340496027618507911614823329247201045162798874374614392830050799533626470991533998388546737510195099250776169798878760295204966910340735416545215174033572705148769183767383485748664359681712457802678084164897429453876474517853174471470905042735303968815145983866635081001652160893840610291981981805209762053175898093013703640184924286096732980299020236240572967643550931206796863239622991699473149643541669606892861092060237639211243958835214071511763671212753808627552751123439670447284850933886580600947954662653560020668260052087779451613160588471278168228896800914669534133248944609210464452254752610981854378009189500610413933654044141317105014406859633862867224868041341470791501234595796004826531807847870762286364236157763493465166240661124883285562086849172324904798190509143262289837390304238361168948052433092332018336387189957332057678625908205540980135993509637607090935308953162732112265356325538871334255099670580686602125814765977778201186279477691794267728405615634606095972509535595225993725008551664150929091166546223785493539291480957288453277079296076631024723041497653876006243172854975964103667499368582000569825841354857309940468792012474825098634303497557897178802661972490248137709712007610887751804179829055098148963215825368827415019496144684091706906664732692113063767581689399514614427741799341340222549641310762429971566475598306469675174490083791266152201198426272001816322464254145125378946216456840920336225248949101022392962397735351226650805489438707085731850731389950503253026406741479987338262421164793743687426545403649571300581058985982185310235774086772513025857799969111180803674746521465820857765774846895647300931310093202287189496855116321700429579248658555978469258879620426710711696377190265757366992203637841833598216973007192671760235191591886299739020672302173164997104995581618918091982098734508451551253096257581740174382949473540765810686853947515605329198901087778383098932819484393054709030065826915598659679762515292067866758269048270342005015439093686541154084716331570102908130583897121341556332135602300602455620617293004152773666713726636224089546665793404220234162782582600910216950754789234157377018615354195959633432221789597783090938373340220735840257830345680628203743639731709759098042128096148369501955974272852686098510647374099829347378210196666173939810838781205103125660021124882761794083950427325280083318839828970763232949586714900178911389522819715771908944377095018839084043492511816963739993567280142299839429125563184475047160035375143516773988441728311118688132309093824174642923619665469969546298944625006139783086804649964967497639408860855077447320945337217116619727336651266672953412488135523936589491037519065791006542199230511083472189846807484126115895640475735534739037754862417860202111306542203875128461589711427305665109347108827405728622949739888572011438415560419108503255409623508811112555908985753099783088497298480618519918589704302344198874354265363304531379517548999821465014122897357768362235990555953794595054848742903295317654603248862208147855703636289687957303278000946880467095445989659230663298949302656996987904803589310693057005825046557888447090266899526688014191840973560582592551893384488503051556883761530806037652695137134077813302194924895049921708732430205710028150153748951107497490595036332672134879717245712921958634604669730061358247685890639417491452684450559452106051316395032639128996150259869078846517750157575852180025311803460611074301800723167630470234310769350360912009725655032351524048449740313748924492465386771620568634660033918632472503079439725712993186116568810154391230717965117958760369559836405132446509505807362061024793717753405013467772218045396693736294085808520882654520887759212063416386964694129055025232655622632437372785178817749655425819642322774443674467535140692531223208799715030927238657722242873153944417585825355586924305522177976181420220697211126535892563257157373239779148790532687389067937706710852948738437663209377636072334902563053726519802000886673279581774926297249221319629663457256593644929858441035834499232196646437467015983081426769948357578732848959764631872022014849501517429613788857256979853992699923112781273999233449799882246411293688563963104347004151776173134456347957100935716753063328322828072581736087278329787270216521647883418284892310264176130623206817726837107207877003865369221164508064698769812352670374424379019078025201906656285974460883434654417537215522000087974259318234169232970932360598478344199755113487509615489768379310152873481428780463308143082816176526652251568385326604296204985753263044129375915322113628970597612629175198101418590544921442719146275409816889039673763450701150020928923326981174700937037684105652245349717776963750819748092560227893618756636818450384719715364044266014073333176813127966305099430783612076117006843425447909424790477970820044460893349925777866016127632287480063221292950485603644346111994976960857187075484385185813502271992498958733864899370294894973570522265389377860250240175106327844258405598835205422611460949315678111193320725231875270721231087005988504846171061963950180585846898236908821637018544582724688069793472121657949749542617194714129190830566776514703872776154878609219241462314870828889814864296174514006782839508020937586731935207124688755285974638006420813144151861037354221187593824446799097581274206929348757943377058828713725469703403160154764518748595523320691634670748109894848880946083260322519730694078248679265976276807404758655662259217766024534928958146756304055603718607543587232733135502566483548590029935505429079834699439974649059596454815120542811671273045146106779550046858344019562424406093217098967457034228268860789594116733702899838346671582366807252693593303319392156317300905583822771244623393879476507227506937504743163112539033196118370638299326555021500415475292112870853277514550315196582375307801244028231475883184921208015069766718642730409003332842782738122038436577981510024800781526250507820990958590517750232068845178559469978152441293324074855371285378808588067809595417101849918081817517753820507122285245090902480247762449278525594787041931579236643985547095422131606691117575532657394638223143177433934637601760846194751995830248013193212525145316875604864848723401885317823462568277848721742016256483358338917059815029622862031017769970527359855337708845298283427481203195417769966647378735139409711548510602065724234148044144436450174510637849530212445847278716416124040035690660879085884143053203581759644903974360933526219305738887034359531377649870641794425701818655406167172510349425177980630190505110986369115992622280700995811500100142207866734767773238843413900351477690344244678510920201551268349688856647030068239780524474178951055117045762095244389908722443180628668031262505222861575507640109887030763085611886779406699750985407284872190484624012838097656412634069893231060501077339084881237547828352793031775679875780611065962034649665013903585761073152449185913916042841872078671871877659587644429987869445166543398077798951441844934142274684033087041593080278721377203714288629771072036319413368361483052696284608959468940657455560733484953876933707962280480953301295604437312925929801138022681989372617634813278111666905535677483681209422926457518336857209960141546553417429197155434311773051877079199081149397463031434896789667358539881214094972386644201321172424458007464182609083739612847238227857068941376936295061788834225869242391705310540926179688508605961988773787046303698162799283556908418731786125963816612232405584967659619726358900895093249587232451282059640942246134332234938874127685172156465187879902992994829961720676884357319467035041065389599365438779841356250525946485382652110222441530504775989437664141296590480456601281655666049436444590324058552968420520434335619772060638883693772068229598872275860037964513093315718608220426516822810288656146623179498610449687451866827670820050790137285912392841867383231373428268567910397803631070703236420585357356595805988714287919491672884077934477187604524549213023186074290428807498560097958277683832058466777017586985796913819305692769749608947563941124883010263638716542808960280401772787900720960698555123650341097594689665317268351938397793714621739389449753705182499195791953397422835867953727678083032951171241336573295802071322604152093312754457381887117407784438054533061520069484355051097741437390359745342226026314776541851264098466473474485945465042115354384036387540584822041133952610872609764614774499246503425561158358297943248455553983978003135922513054279353664040415964499277573694679014497318098657802853433175334943244621124560949460671885655176962900891330459278326326092995180152885524980693222571232254920040262938084294614458083841242818218350256212625797666291680184401375635111248250286461614559572251394478859746814839889349361557604487287415052994003539326258063778198606333581977719436640751418741286922261444070485117267350640175901611517614786842519524329660886610384436989847916265027704338132659463242341425610286503719646436231148770774202131929280400599031943015636960310556906157663594442951764521295674550847781277201035027888276205226674742259472615896645008501171846287166156584836985514355229213518391097197347683255615353470435479623070856152296205384034902841129258898721186746044924037711857032845346073905214212309478271050364052285019644339217745108317478989500027117132546865676031200178028991687471611099762815513161070476482648900483056034697255856068603104730011734089912138991649089084117363484949828765972976292253538648056866703691264191462229731541662540797322625634113850070020804857098746932231650470305080161089861373131319676994533219012054194127234084119548876838322003964277014186246817131223106448144768297903760406599140336647893858654743700300894383423209501377680677426280720345126762184139635844092167822252168634719885935240776061245707802103189900182355368165280416574618978351936175636792332563325591503962620377341929404652523673811101772896765710029471172890914113509516779547763290206898060591284145814724760616614931293932089900173656098511900656772155143964544899957866524039412816229359851879283280289970537982542103258124446447359524772411381232920006701883622664522467613485024664561916754546354063221495780644683337165357694272746018814211797556291300240264740192470450377135062428638261316528905781046102999447515366814015679612699782413350606168380484763872786242760018510148200303200383079190188015132706901919178844339897472893150907454097779523495983776162624781770179266633596211595131621373679911454919113206886688198529733903820293876385935960962677461131531049434513482645330514164944991052868477454399158070997315059192439005225667042440598963528071936368453022813704003288863761544680102806238618080835664933749716748542323173678483595804568533865447558903255747669148294282985641304507877674877629686902387404012027415101368953732120935165634534222518580212513329138798271338095919402481973552060237517444561011733918745334198146262212147472223361919908149247323077483053046563760382334290013569750452545887755930657676519373350741260574822953862999716288261268381660796862855919779631154954455026633721518824077496227256602804009109711578880786247489914099344041077286157559881231004990841211474639364928192446643511127279653864541624265244221370641225248913407944071477743177565751937381954210029333927233660693154933889348020169584715747812409922763739574933296190571375420136624866308925928609291428055774354190242366974308199411769052963033750271957277702374327925184884321919372179939664911099397322669555756217702997916523660956393131051053638898915677135531990898728172496470315341726641081925572415932850467129188146956103687519462560749767120111265408732201588411004361095212833589349797757647592868028716287753657370897079598788872131432070176812727768944709193046660178348813628713848490333304051835079856644600021393452103632542649631486132225583707419601658037552933231804856996227094050137998066492842464577669197207449069229101848947963588724551375704321492665814890240009208835038968497102601062443792685259430818633726897423223816903911257392353942567927119354731378929003331267758840020566402799861121671311470780605426185575989527891802299202781356178018891297318501633212349279289715355652130065746885117178559603772388333547424366009318561990562395434100514362195151275306187368206778964231565443611412568878994206791808207357527418272760641076384850494149830960828792673712313013169642678111460195925764261564093465054946929722030669282355542308239358742667246858151688938793950163554438705231752550933857887985987200023960415765608559671837884801469438960227162372497460642967316182889725895654655320463696113467599885680742139364532136150979039099476439881329034961311415142207278258539835050460727138779612971239699720610745013501719639761183512904493150604651705343986069457635006012065329777817500189729764503431008612722028423845125686345436083615838895115265135881547850563858341116770837285796587060840821668412496530285738723491852872066280278511659329314486863871842310726997919503419982575716202988474084813606179217123647442513531248701980601392185328858300206815293406455359548855507534024837538754113758208095834042942772501057144369832064460447233413917770996184168524028033451613563755767097807089496641448742442220675362284838990460376326218472841727772290213571417206074475284731051869609230305549775795920095609995407603653140812641691130631761504210594693566679237057616033797362180756357498517294345224727689122704543467525083244698672344077431388863259978999258185747903673240262129169800672150595930897911835643062596582891559071364649701015442345307829260111868588444296271146096542242634365118965322665703868421925476881037289702321616389714679181064270544819565396598558766972131731968115783135057745505903756987131999469800359859844997651365158947286281804864746807441652706785744570133069731738276519480811071098517747747482031299785166187255258649776031147827489283402686714832692666823603290420263447098702552251382855546940705228886233379659658565161821110901159361057694608060781960393171076600107683543399131464429126923007893386444685390621611880863690927492028389638968622382552785142129898806397391904841332658080360762429668914962310400611781675408112399103809747766055233934910205429261539837808929277124245137521719743764547646378909557654037047065855773522001305718630514956555477131878527614429126080260846077560138553705313632302234185308452456438807161107285459606478346380223570127115891514127661884265000629905542432235744405759953921337266736414448452025790746669651762479826908349320501694119608133651607330997315469866361086674148621822148132452116828648012483473366228371904062106271746041719912714734542140605324659154519759458349041345348779506246453489697984020066012774367559386306141902507843779367224636975392928956043368543133019954120533498598477978610450266684674934332383755951128444977774106262847880225290980696294660057792292574772315707285370773927233180777896472353633689802748554672060029303040301044498030056840103163487108276198497863751831455923619163793631129952023430042136116141984310274592596989188353090304455037953052609259923368777947900904004080707254461260199920965138646644541040449466585555214464272650109429352905898866304570724564931498393861051561472636707404566016055922823871502137656475406622968294908630662253378245029268875826002207259973625199628864041832551443049951790898874723915772372069422556673459989471283554759563501834063942750917602264736762456919427934061988388015859886417849244204456527072097453483791873399131662436352261374707578611493672648418798895781287324270546009206405693005038242240301865508609528485250926802157538302795384814936983179617217319324898881752529391867886486340745830878508851827028349363543270092512685971159985739986326975741494509272124244746515784452451097386795506288689126332761274352193922177465461750595225411915277994450999879413413553688611940942638589164671682000138533870240812711450998701043633192113628685808044283868546766379196242823589484070013865650694572663216749320336890743622142057506131017352562682956397199962281176340329396402876619926008351435953178980402961069734793579521957196167614033655964708743742753088188920249097131587144319704195517255816582978725449935657005664228128008717606446997366128046248913640686524879605595230129046712068686689444751884610438540824584653524622775548077272188236163060848696601637622534423322676669359178699801609611584076665701566872388074360619520470228257678475390817264947723826453801366742733277955645988112707117426907700906927875037739807197800969399494422285577442123770678057513425744529684114820125598278867116306884262590604692584988275224324172970346921404501575698070376099148579222201432517224891740129717388268969422121801734328956291232350371461433457960554485125910620876039878141490359028293070841011047564969915379003790207214458000356509557683268655263800560592827324553507731741812514730206863200464983822235215818083209726517810214406789576771172791696987299923992084593902677397821492268973032919479886568835485001301604641651829406188729702965420673297090468283533895648711926954032460607064400747505350019181778372700194323203046484217605089107708629551468275551964826583595470132577450469128113226367062890328368145801882780432778535017880133053843269119029331718259827098228561022730731000975841548212602935635526380907527619000630572302993163497492656799210155298606407470379954050262697984521499482556576753369684093734558877511363854226921911533700754344599609323807791804869951099711502660908243988347897472506793338878708324123975109239143811622429436684166651717568191582980217634782636325901387827652943194008366940558310139091868803416842064900476147459675649041635257736725036357613740615903844626769926633186727708255550508513409313445708403381050835967847310478753474220707775925048181046658404001632030028183145456558644227363281786507560629682231953495228541343249342938755948562028822895133956587730219683046178946723494600915958512680995316223695156894139341949977509928535096944323842007510556220336673734148384257654926602628698363026449093434517264715398215379572556862773337116941166862332346950319728962433112285993821318779016553857836371929499997805554646476650237109700316578266677398104821540136845544687750640283056111012320897567372112356894752278039906847622564695527683985088337793798214614238259481916698823211166855308014454895834329169844281363248505487081799773861860595436795574053440748779063960614218910767649034006977835737109821548275117720066405339804018760033383364077341314806507488601615204514184143244159499750020584718873745322696869857193239953338390144081715023121366493887259744454410124464243308198261527055881230627225914808910601951933786718485719563513367040236035394024991145101945133284241395329223501777762588418517746398581577993212835379829080880333446020076751396674664468512545094512368017132027867019596169182588906518744045459147579768036222791614527920550751363333139946867270260142868529039600386904211861716582493992233120594482424143561765708792703282379909026147343020851502259879362892359025821757864503736115275606281598219998154436987597218658316085964691797329557028224996150820377201086147933365759841827442031755646054495276552795760215504347301147470414583183772827580533590719731813890827032232261826112507445301576663256631061931713700196850012534994829125739093223428792002612112937470428704998274169385521412124271694050668848381031071748430553181513112292443849745397717881453338329037395624266668897198367606508919334476741594655503434383661613039830697918902432399649661825942119833229532110274024370866683998108194007129048281989463657454900879324483119355650377511481810838126009831947005263305160353989802622802098492457285084871144119551396431850585460700949931744866401616072374071530096076498319640998046162104937047923185829601235634528681216321276369594951202860120403644932942499931980408120447263920235152402179656515524097461416745621534405480624681692096602798019722025358018734823090049349535979130846772299139437554369986962848750896499206642017971684197815235060004531305678059247484897127616360610078135349366148260284021229586009218678533972788185335886315128620842131820885782842156442798650249454124816952967942836803036323384934233914384889166569722243811090983380141926294580409357682801560948775674022291896626264744234697451207003158041504834562646477477087863481379950620598724725754808919829062317936338643808526252661788791280118411107243313134178564770547774156971959593200691312610625461604751916074098250289890383214811143791858569027948779109077663627048525019590842886259801946564929443200279926279925091989886861876093336405691142061615434126586301353252931519651783178134371538442055532641130394020840741063737377972612895676422725472176939948686754236191939071421224421912548254642617091529772714676274007833713632135855147513709157261057994085018386619532012384294047997173964064915668168597888078008463209483842234869632378372718494992511525385911806965321194967435616030978074063642364229676126729354719549715326573522989389642282658966502346228669575884756987770618633209277364559847041629020846715374168335014847055349653942514773744586567112036922661527513621214319332044279431118465097672550760079738120096236464552492058360351254193154938993411016649415600450724512104351681270819367955445112397122272047262844192421800940767208515577672921349581093285042886621811948238804433468070162329887674147650247324174653188022040199559866516604412403948205465247268025241723191203568587014006585791902934979428500578916305965454893546151917951750884685311648064571455990539235206825754135994166075898544546426300223264991931264411907810406395152843529586491032273061176088191279505011760064234862136217804786494920941959818172592153297173266778718211255723555216333920881886750593435697958076197617753250854306783328164369850040113849070210424744264352643859398545482536379511845663551859050397454429417427108196059833931885298295524305706234801336492763903642880983627868067921526598798168021858537472159656195906148670434585969025974191557184714479686301610695984226350130877079084874965978073895352876225311851974083450127662034789889962082966871070855988144184715607522012506272918523154686702734807985642031403553965412137445607615881150321370601973183519944556482373695470588840349077463331927058655533521452207003766656571186875951224912448792632867567891057252744676991022243944414709292374772537719529189330875027042308737402726026881191704444983491030472903419786271707228116359364059631644055844747607768917257038491314244642933389834344910862818845882242340229586714079674108467768573140800341113453040032885716032290126001796834651162824222676722359038748405757260779911956914477611901577881482952886140890830063844439783129648258725788275658304974070387296104561076343979598635910125106121658901721983531556557748471184089916432296978707275087065016363179177804500571603702677221260060923212760412724769278934971083907859170236753514741137080308616197891337169715434952896056216943576440550312147343773682839103467953181411838342301595920966901959224324672156630448124364387551685571444129553153824981077698304953199557352475549513984258615234644327396138335692832806820498446945480166736524453829670162108282128248506511967272688272569478104755678341471609957249834102409074224063858062660417342186489907459483182688750381622158483028207076063341168130800163566513651789105496903230717350380643991252067862558245600510580110125542028030698193301782272571626242188761379264163689698839750912021378822244747152029755414416240136992211428879828442524239982279160255348597693569432765083128168088283249966292185727052826307095823084070713974103824732850231153843242151578240367102767501166707133806894375106361323808254128579442386762046947985856387469547029991475108018457974041322928088536708532397053525195143311277786764716101623701346395040284056152327838250594363895209660904756802466813125785758592615083163199552008221089440257284743212593276471610122110465690153468310866338295120549661407684090429213557651402881621693136301045835135891099726710016512013914732683641498447608831740550866753647842985381766612620562609597709539822993301184366252536857578705202134951691413797813975397877773842462301581892015131663231794136966030523609519974210884277478560906601917078957232395639386060072965591131230219951537654456043309307785754277472549725658408510514634728687924018092929100217079186593411274484022312402371927890194888317729776590894238957203372837468827192690020814755043550895094088355278413908651723295720358145301586956630487758340693748063753337404439465436529812099885629367626920057190925218823100819988371551724755931395022039238264203709546334118873667640169850251916447166857448012649186326314844106551415277189284751964894566225538418867295915140049692758924347967719636705288249768627999697560872008649160669905883605433154686940381534460087693482688587032210982857163793500942706041996988756378852187135149936127687708120911871725938705557784870959862286753208426550177037708845506741025200685918662955686634061855597881667063672048603821808549471846295035456986747074182923140195658281006227014654291275753428330031692950552795184435360299653168930487294121426835875553322548770057823076683731112051823386686876062106933206561414863869317798857374721910127979527118975888975517744370915839283798135650189871291476443620837789696375417130043624791084636289333473003936595009609003426520507903861272793493128898261881334593451307933342784395839646192323502381848439354833399715767043814149585707273419001435500843948973363511442897671595025966336555422292199094720748358001369862797645505943328709738717192745019279161428305596278427872183185982892357382020941151680874010545193026828621721222698198550316366392204978913483519422280737728063979378656534423504950890480335426741275029688941818740795121051147038040349958498287937496052190278945646849092760067457275034147235965088048405567569874505377772951608867619055313395525411473861766730412307481316641744035552677362720937178255028555738728645319441169159246044467843333691637188190892982624816477891178678003212683073736396256925867522756165657339107160573374228547581705594318673095490329709984586077512976259600274962047133487383427126754077719506368507207981448333541775231517104323599537874314549754611435164728558268524325493331205591183704842116243769589131706793359591408527135108678525524492181488626251767219110693200650176279525497681664264411001985887876717479936945119508559559604507230495168379391189802366689984537489083577032297209634063410442612734779019965130795690016394647562560071731940541422317289500928682555728148767061162125187871929747566157442254630843778862895304528057832308984347233314228991229440232131979300401395969856099228988891862362902876643495560166370925501960279449575748023315797382238249019561871511300869502771720906840084903509902603757149649637647360498137021393824260296987878723450189673373694688051229711409396937319797442843444083188089183338361529467852091266787793660057199694117366312749172147315022068377902500284190144733006907271669276498679919782415384264958321448849908228990541998129989899090438832897010937158139826330554682856989189694118173600542184997111045841898719866521870037901770706244450860191707691559683673840190069882431360275378642931053904426587242509232940373309149828514846803634533587392702921744456880141559175709117574308074825010016808531048300233223699504546599882410962698076465812723002971577831040152587575857613508344010326855096551739787933525824529155489626438323366852777878611219993218522626957273398170061706738762667043919971517574597663616571795262401371398117988397942944785107139588194012970692144816651709434462058526325335964696070379967713096942389338348535119111551553114133700687560391094808238761783742020443678879920380143444533457844356832247710193710030748467189210595730452597428968713246654615099288276594269208265451995546510912588225241848231931096515438567375020157391100000421701876480699270161317731693975960344700340827247152260104195838125210646802722885717749467188536828128687191604353921434809911406772095597371500704685290172832828775626417675461133194590962553024161414821965000678526534293826259275798172382182254924089452022106608406926512100748916345759340768363025763516615356826717450822748550758937946651733848688817583727357839808083725608244674255736786106218219972557815305934582731700749043434925186035249090547907205817091593051904410540442321175895661107154526117866118284107646366504345143322295959479124394447222180390645351021564000621922412024275105006605726597500343929790348298413364236281493370010811047389603282480815147232034991249378964653157412620980593695314096996166048516796462362284558364176953177072857463301665328577589982543734147350434266492551951278657739779946061669154592569063259936257162655373141145537138958266387154260955968891290143913480855566240841847391461007956605229367967705607638538500915428629144749621139763912268377011013073851691419879477951078805570393754468105968417430003786525691522667555935117293517815998310714609487680931221860836485757037878879973979310647443044253411383532954735960697543343180075030578191106065360064396532709013843258592623041470883512121055023104658820146595765996030397901198712138137049548961983991487872022082534688577896265039015629872837802355322319362789845913427257261890988419007465147726976823470525476871846303409767077455922486819856112981022130166995863347451022772448628872919983482193051882553130912036544511844249146819586402811037000282336190210737924108998347638025851104659051570537530370787674428673133594256050427608813803529432534590340199439328256419992645395660203865072417755203483409658551956337291393128166613347816796338667776768526875319108052461569389038453305832167302583994765293384765653921878210610278946899690557015662910446377387198394885458211847817309136276747564347389606031335546679156981395429153958087807226084622504908944494532836109576078855414240655304549455412835184103585550085488750227783210646066649787600878653173787999787038258426570568143858970234188993509213558856733549448923080044439521558921103048230414407865567297222379015125966044124552271030841227424904841034533929305692442262085328055732555024407157979046925927488356533086193205502646084996294679339717557502775007445065707912625329644486792302581614721221576672202252316627741535006462245527742901642157613167493285036433302392552226797170860860705541071422421667258945767593259305848541594621607306947645467306915258532854856543031131649280820597811155145532766158009578378068685911019883382275325952883251585479619374727315617531942402516002347655543446209354483075965464981608171737961571890808470340250692925893118423386992619243540903121081944069473572962847556169496108546256434550915530044957275334671273017196078769391892947572117774527368991630858938251137080854571940391747922116693965037702695927135625347221892389786646212564629229200294276482435020309573257064530719992672351228297246334258323471300612596146849960214086825575116601167840609748557625150285554930432687103616856842121321722013631682129794532238524084523362531806836949633329535862864884139810149432782927437212739860009825275237941952837442203294772083820074851800547094224413138511205952259942944157012316731771061182654594911105734177315386670373795333172516898006410174443605577290162544016048255765937001580253486084036944956973786625360683979307917192314444789852714248195513407223798160975969533697199396725216978713797848202312392783638422563254697500385818262636664510109577370728260701838391746688431490746929203054535168679811488795677687162848480929024870990526652584750188628361213879796780321871483403940924002187820390354228899862185029462503530671330093399112892795023269714382767401741077707126192276017675696512933239049422650881911971493302021746554539060517000149518072385622010638746362034499335632392271823674323022032233684294359473076873235897918284678241687776708128958774335545398166791629705517008557370121518210803572658539792342410156864440944354047730149322254638497488817089638602727452784966818747864936498788636734746227623921695466817050140933936698636606700645701298695684377219200930365087492271708598176700535162459791642210152673397322111604532885020682629252872927474385938985462560653346976673048947844049078369160099797646531475410919690406747049447906635143807387074809486152171011953364005299794540738199419994689156477354439365630346774900868148449234647836573212457192125178035994022477328376156134406004821922985362093164001581716603718921540483993037440637821937384765837947559042075366170585702304667083921349376790081487865144391560463724524218022315890443189755157431447281744471890226286179369789507556234038010477473575738338029805603049324348256214804788887529063345300885270772296101821272483226628500196695266700491792716136552609778003796559923122688006797650719024061716056446569666305523215971419538901777514567781938940287423328324662199345941264331010580237917501982932785466211873486496147947526579008465978143690926566799631870355394695927205957975620679865829798134374037358911241375497143277215684427726315927733916769927549342235077350679757037408765233894008880928538138302421718142476127929024160702523976730917651305313526116503655172503432283875058236580446033154729166865393068424096431630719464782103676108816202479652978903512121293692221066309832199998328321887266540212675475811094954076692729870899225010296678122682124548362222494745515894641973517868184447097184601293986148140396581864882794352060481515544078870623825891896595999919359421949657743266537139242734537843913349328173803857539009337544357115736580629238969073878431857452726507342274383090526610419932427964357575415805097850661797738143176991440477796145349278719479738986434681524600576213938521577681091248759924159146948135980353412436589246032401881787419354934802562655837806787160907468228162295869142603482710178312706647941413757302390980881703747167480594392780457362056851172727600071593202569427588848308638243293004937373064427517316623990739019564328354151699084565075727919337709486841052731291739823958282335956457818970644091525273437702794268605179661887754852630210881115689452021370837354938131772369888148348710727226598622933819784966735495712086810716411228937792668745341600621571072135941065435609815533327910409363946228384223496775885654914255579570433811587558407867622465845106917865036355985483518420761675480932127640698655776960621481534817260876453319439429641781763103909028998231568493894530374187071999407418423656054461375294672599974833188852788694862977363049147437962881699649913201511294922292445054439295183042864932911665047041166478404522172980715074898173345995637780672758160731926481450248445656673172913938040198851828228925666145295553183140941228464604908957480446450570523186992647562302929402610391828932952099694869432846581764193858246262567160530975651637191609016130675486599788934841334951774401286810058289182061788820796614084613840164344392036937020089706208627228988793197548058438530875725444918953570284623707121499430559165986302153826858635745356891042048808731718432888434088782356010361653127741841597287142389524451043879947472099140666749016377224750700970329007907526596095294075857559465938982878857161242718454567603948087958678477619922132878328836042215453647198741569261571739355445749410386056987512322865594675540423440089269149423651079068927505359463611139326780705353866537774233431526187392010292944851770454167179695444774419472284714091248737154770924599700765485535318098551750971810002738064773688556522724678739706385556044262277652810340703041165937287516794282941360623100432648212645019042924700085646629894390269577262092430549258098551443223116974549785615347937881526510880250184585193105279829344981624702480998635503993067988548489024332222090184787416244394651844862636356691042920699920311584420637196951651225050090721677968915274394380713975087665207660717860446837053275205185597316215866191332597499397180393764116634730188890505525214273108776072617517477864931845300310186759610678880254612827510705613689249293145229587965721995648167419710653831975902429112631136915496836223973763381064180346480639963099157896281352684792001789860058514245423905361107450200535421162488949969179840266430840518292036774377320292184216996816154908062745306348083833440992592035056895738406412174882433163228494161442250416791430127136900290619854063420996839372111279632366187960162788252315785634420573902888968629324282655974844138880746777737968293761771522942373991607848242671422703283210949116862420375262526898692490358959438751920302560371238270686597002254561010613876349287222186220610547514190992575058120428170129782140997618287414198702748372448128006429820698414608171862421157149504058807129649349290828506435372366965783625334882906096831974868412229920713700165708581266390699379772354580600172750665405883751264970136393204378707877819019546847490497750236395371885295579438258047896498341961822447301725611248466720213721283089248704143013009297817954876728470822130708935294879036742304534626391687285427271226740433632370100923280423397657548020475685933900389422979704528089864266260878666443692583288130768664647085234988223195234751840223310368041288407865897255582252187278684569713927852029435388287633763951868365467895454113768437637934178023319338664271604084896959716086523169569958297776816553766645911992104419441008850133263520132855843762139379075341603942803857651152626426592810971545619280059454836582515975459753559110441994974391362696279941731387797437864564677766524341855661928524012203035761887473452536681050980232649878207091447287526570685577243481402245763282430400582086251308436551150526187021352031450852203583664839237326631746214421242165705124041930568892925814755024354172938263125652373704756483842557763998675273249130874239662558802023538639739048810699450618319344125721946128175094998412993327576505910138227531623962161248356989428586800761404488014577422953576496599032279485929866481701404512089923202771538921294819052027535779774790207551190056703139339846699592848075359128095315001748651051154701162040760393884647393724649655946401332204535460842025993566416741551513639224032352681285117818387836267403589949529866865665759056659150990810399491616177787620795104257078102715621296034143443601068916151790559955397181711220989804712449785764454506871648978365520909577594641792603324254140529929892600808935742544947267310124295703733929296826510346536290777824197487706283600361953081293761455437307580650872949368015016562796465853314681538212374849881791293412508649967929824643825531095143433069443783955749809283671966721361414592946250832421599902198752246998461326166845578140647172630227303229665438972456492157522253631784626831945905117327027052927722042657750304296587509566553835447146604893031429889034735416972337062289036537259122354133204384785432175521486737544818760358626452365129990691426207599749758641695686011173739713391442543507455826636734753504085224628456921972903738985579787956898834915036248218044916807317221565064747890162299706684898596069841544508304287904406500387341122117689945131324942111998973251179923533345258473887102222574499588675394957827678833148420992617678424456842985992573234789436432359593578264365305685709715270418270541905938162449172472011011873591232217252144065428719257850057021729373447955846087152323486171436394525115236979333762768323689445555031741382019820438962342150187366092637915913967678930006187967093745743295085320411999742469198883183594537786245387755490113327514472371601857706631794445833671989041923449167912250189425354379480121298557272372716671466303811257890851091982130262064130262238231213942986307423641858412931427319263851629931243239133763236019764341961508480664201381218162398488344897885010963649140221792277419804927149593235188595559320763681478568290011607968531761468531031072860768509721047643697012432782200326023997324654438265306875005685651824182249153877843642206081868770397659772019951460349602800727777558119251816306844479635398661906239895974947125402869078997772261995943142355096277369442508777216162227720296029909686759850901025373575601853555709928413490078937253042439916629883684480385032538143779632636922797800311661720218089556478902457930410997635102536189383264653204950478825566272473540866412573135546613279913426458121062942033941241384348628229693478290832854488200763424011980112638447814033862902138202566955263391084647985723263915018781944108726816480452260352523411237163048313431647556947401151675638093579171087865377943515586728241658343763923415224248624541509666918890248902548790972155418875809588288939331225446935045827050839610781842928865527952166701825161516249941925518629483790691184184076080964497897112141141255580322933349893002755667801140675405843785304204713075520258737848618522328105197533968647721778760554346547483685024873151777680866892224351728510830703676809557342837691672014284224504179802597498710320361510319898294946651797874252218368894924149042416796897799433363705628531640491236661777798187924621968955280393216115656735479185333101184308789193938684835313676503883014668769904084347081410743934759002174244310673467807876410939234019510195924014312325772244511733762553090401979724586538302923260172592673788417814268311188009700536048889088787475157401998208125597798711476222070517514594034579491841290929313992457563683003531767607736208312504678717179803938832635257058981634973525416991361617558682433213354113669368309864288928166697533903506893805098399565049342537759382283440127231628195209924361879451775330345788245680973877538369937737809980616021547828340337803681658461102739136350210025455922562899405036748769974533896242280007503502010487089606828909948981102590581926954065024788344286940814215410192838127853414429676902255317251364804620284109287128738668397017564181099344426031928282949348992648763351330201795132592679576678334368117740168158716853399097976707107248680067909781416322883217850850406556843962066823236950882732062564045451618659932161912261809760405851639198809822030495310417022130076919851238280167569330274891068318402738510731628803985688154462901983555585208480065348462075599184807845464324521858953411219179167653483347649839593654974283994718201566635021459024881807286357777955655013616268119729774003998549045020912841714615152176009289997150692945197456132370358178974272776227272025502813897317849473483408495674216173333861502856569353634283091031287190793918245811871114936236658607301862566153679713370121798446240033031920805618787830518031981349696324448774334183751621515277991616759293973209304712476258227643089634585184896474940295702542574627659422030175375062758654926851327514236917852090151233246848693441674511897038253444032536154920822116598822285355902112027273049168990411125403478374023269983753331366297065125624673447058231022632338710770163799265360086034148221894644808530748717092219098833513700982050531178251330204951803238987050305409668543217360799947068973334851008984849134537514021810683212513316213630780634552263951035837808860054093562214438930360747678226969674834726826047152970695935547230036083961384412440687101083295912087071816038941984671758431265340991145361018429192302319231025344661185306932820202257578745474562092030579295626984950337394456620508946237626084736835529919097339952702797446078782013321372328291442148269482024558274113441271087551222607719184093742457476300470564395357046823211295033277141811247251105511258102966486911760395251905136533315893211922689592343975966630118449368955025878984331253031908411252112105152249536526656714454013514638323358425485338643276370013769760564023664164612609371999231162552603901380611090675087872074200832631511605668555543018098082808828420951381468402009523009952514302305757508007455042252846654196249184009461319314226682902111487916613574203332552400486994386254938456135565907824102075424460322724760414330209229402578750066144234284509278178235880020102084760025056662684023683931797881008294298200321176260425426085300659178429716729598555353607449278993084394673129099368321347939731204050099169219524143611390746788581373606560727832072775647963172829421151962631498918412261979187718289833434498935159429757428455383941189585219322347559648514326842422936543486292633119920992682504702191875072349999552543059094489345429726763308619124351363964333409847575523111745702859032624161715669764337357464315354945337426495592368715771302840353438817597110302857595693731699492347242500856980102104189150770545034856241081053992679759338078199260235578261328450991948422466308908559595182997520654775729007181355746447727313267455482937640192657202163963543341981191156120086193023791893995253596099120199973162846480085104590151987369165328732099577765081536615632585889585581495648366124379021430381033200509615357002626109164869855001289476669043334222732656716012527989359564767637840581682043057828141715544335905435460894200375906848563670695747700834011188765514872742505694103089292493647674765820076466036175968403725996956395004300584851430056895446447712295139788638587426903078118342863842426840936660363095839737854656775776127756934454265251396155046890483964005212350861893882094628684216316032596646887147239484900791891015451766000113431994923386673367251012892753403983405401452710815819735028438065681725411532211841149939117857567442467798823700650655291735785798053787025133713314995674490303336781198591786020869581600812955605035985138208480789844929648408062074264193813561219153693799463505247017383061993384215057558401859357577846384112705812628366653967779850031630714641057761139536303891347877908140644131633936924337105137690145018586476548865076385630121856931415362901818546486677593879229219802681462605195477820120092767317641345943028272047201434416587572357979909871460264036608298382099097345300575869509035840884790710653868210364225746199170987269183834657115144410612182647119768733047471071246926656472423030822665851544089019796903540330516307681056819422309009267066559010870261006704034883024151683662713134724245694589216101199502832874237350964102677405643165321372779164942176612115605642717661183862818356288702898781191526191884657164307351180488959093853253469861668822416723700136625347637672053580711062998403320310276992887615120285190569289471867194800527925405716899804331038258622091768215072579277033828773198038143238533122869268913496486655878122574972947622737549917196935142294417459374173552190686351031220357298935711604812975612733475208858622787891023333157453290409733591971975087393452873465871951289195124324446615315208558333597105115101846403897488315354836283872567665647875901373904707516288087072175247464070807735937928397098299211305010364657383908876644246755724253166230328522816807834748237966725301669881822645792022129971198065694719678852618879675187782518348439784799615028520900861689099815382626525354627397326342401398157715055523726682330958379441343368666776356661192126293571210771140427665872967890335498882211616290604539152907860778282026271465156465374149911411884928891428855797567864356861317489613179748686085361941029239093233601686211702159528069977526075902598787214930521570513513647003816131821543000205500233884996124520731532504183672113974696466712645882224583483354405182583316796809012411726705263874798985247236191487607513815718757947292599824404389511288636322879950755472914046315031463579735788507684631584274238610593250803251867697140146055935280215031467617202500363284495993549926677029827301213462205677837874736484321911317651335675737919801479797317096973077783516194025004830745543363740003334356200062214164435658166569573039962179328736205194189402280720061462888445932610855339196520738298492252968089212027628967497124738727063803267160670777230661392497147463082254142658326753060425535881713741154022961961082395581178693336035497804421710903723539990357007204763519720004129229820296950998787557641580639326898092704243872002333181847453487509596042255211783610173053372471871964843289434109712571994310557402237921504637083887212455692668612152480402677902073099319451326003263069128211048383751090792902361274478751497300651651541417899545848680857571475722342313412016640121170208176275523990299909328667164816056175521192949630782929608238825267467834867067095961586852142416964354196822486227575754818360941684985021650895454950198598555367961392969957370729723401498498814601568922570723298587468937622002246447831579161820196755079093459228613231562213934878474520525738801593665182961661102008182824985739443724378776898144011699161023177096083374118299243507786262024153701615937881189193964626228738457187504027595224539726706727672372923855264836636314694656673308117782551369530498731599937656677606338790613296034027153086385445409592279619768281895424378263545671298519997509704067763443245538684887953869987346557825112000227895910838475275517133929109108711512217089755624804450827452213805595290929822213937496004951916247706219624827451425549618990861698509296743774362443260749657604185641589233991002710125275464541138573416590147192053998294234465661488954301522717725097839416779601771686124805955551508584645081497078797901082240345928465102963417982340857165011582340229452915116945813514359497808554141417074517679368743968506825203833343451649006312065174461065081680815159916372544821655440242597236032250777077701443353304216227075467382458795689028212432612148778911497736716114990785395289406689369513143346051804528544595444085371435260577578292140218060572978768868640533825382625688123198538561217674313258153703306050675910464330308356404843120179829803310963961574824565910560077257445709104079627715457819696769950092700410176131828875403268930310161807946405404206817259730075630250640055908605089703967141000631218883582433815962593165694669175195956636966398261504236495684439303260312250036381400671596325568968780092790020201493016326745794803446730989380906781978106898638218471084557971654450577058294262584270344280531513482786711249688251222166496798580894692351337731950453970658649954038508007517388241171664211315713567352637125447914489613425829102607654770619133741931142373747043267702114527848817706926244600275052166555453157346528786894266017085179863783667217777598054206296294089375620727124067759705225902196557413258595733178636591661515493761963736916540205909095573199536972573635243675953563680615687788108882980216177899805267902383819667493262240842766029854124982521468898728268233071837889169121697677494567234403368846989398229544584137206379304326957322180499046012086852936597891450650989273740011168078728800555659960693059265138067093244747256142740776584919319249877069756876014698863813859173222781656550913438490154801492044897814885244951347803812533573810197476354966990557135040384880947177114811947258530386065129458014770516079564325440466478719428908767859535090343069271068108111777391759467603629651536800300315021005935181865448015006394951146853854036501832192916531061938767486913656072804321906583400556753671797834282772633858014378033768121589700589967755784726247753438258021713757725211432249938155616700815218284780437258752176181038969124238571134991929801618279101288291054733726002438676162593944017314780195514077701755480023051724262350582901869352613497691415704530511475171411528323880665706298789069431772853754272663968253514644480386779082507212276337043189479451297994944527749050732281868800910467673263556409401924706433800558168253169532629629917728343655209088501175549975030913421084674098618523889750350005846834024203299341697527409369703704008389557536532106022946066690055757793940899498370482246901543252672705751486669874386233865475129357286966108096152747520988715666251715156157841872302049207526175299951737400294801533158305279385791254390084851536494766781880074382514793824758372804164231855239022385881246006033951927032976936313548720202888529227578552962246933887501357512678153080588819530986254669356776257287064853225278962927720622808661425927045863587896246731486195009661518302868744115907870392202440077026860441188253568052561997416037146085571668585366723214504488709835948084961388767295558653216713928475817123905708424857535455557221412927408754050131114134699114155321944073640606088911479811716993347237274371088466711307698918684235448775322443389115401883375003152266364417153479671219913093068423719781995738918590385748977202325468882813824402103974288363788063606303528199991729971855572937460234012866645893656325375233351139296625174990294977362591035362920351923412252437005096294311424423535414716807841733032328752992847606440008109471999149551665279043035900678900586727838258882272052154917759015134508373131594179092727933234013284924286180364340177390439179905381767674373799156254362335606618916191543902668769479644690624576814270785104209488956593110066420779032567334072689617477750878686846280419498498671325045126077656311234674600960342025219605998365937503899213461527566125266935179244931637716087000143743446807669563948528727460676654274047893937989276942162374822127404686883403950168331879454220010024993821765294565763685498784325763352638282164248158940340871647328939136841212708625865783410116073899362793627599725152833923246378490106169893759583344396577582243462556035168332547397755753550303202900581385235598258823153299574291719413229123556699346856315065439477210483801990046760361870397693881162180793076009979029735300165551430147164948124490824860048199877838568498884882247725067593447817661474901120415048701216245652145178049041251427204155592141292638580367659423610359562575710498954374446518786636320538693693034078532956906761736788100931495096090337658561220881755268723499882639166720672923085017634119714478228415005218986500045156848994707459171862314461094761880029211377213178002986074548529635861259762825747537924768840562073008006848587882647644470270922895314514429908935173077978197903194892268413215228296164414516188096757920416340143144705104342370335443559601648315415627215140426080962071236799564671039687591803048599967950729963358055360372315470654399685716958916140014711117640109100092917703063388562098150412094208601896062463559241992617837308228713697626587418612605029614659722724707445742294077093171890581429504015969807540650655755518487744780392747115058581790616786785576726192633661862007000251058145697092337245766079308919487181351904309021640780355250505310582336561700435592109432209207572189470951648496304450831884637959399927984181891081773768796419855908546751089135197583988918352917686397707291306838437612164269795704548539660587438949864072422200693612762968130144285834868379634685932933288638835283776510401499309731556054826757691108165814342865252385007807176134366720360807369416228314233524683811715318417469378165736649805647312654791508060804616005576291698036942835914991252272318463113084849338120080756657525263768456228042712254661397760798521439822026660747320108731382374129094995023677145685556313068204217995815461200647576679338925098204844701791098245669084386948690746547649953258308603865526751245507200216236348561227324596882317419872923466988655956305750517330418013412563917723946147381401890826636345667926671284707220798810538569163379083199909626996463784816115414867818563117409017263274040268923675461001978572448689250125851328139091792178127920588042349502319076725295027390514707767177587773636109974430916082322129095626891122248046536570560361422421262492953473968940422401386344410201729804651758989675327713007576718912908794011019033759947114026262622737113072374700428111259240386240559167905429119912948824017850777016417737857650727718290920535479006216565400185067811640211460239854847060629056333340741562294297595748000771297393689609582440820748748541201712592324623802091111747791063557152989838952516474411453600342829028172763355843488503324558832380398609945306991368289828357000233930217123477013915621359862796312076507843839131440436395999197034547463505861486706461692525149587922883595008619848743117472402587702255817537059256234526153609659785124986976761978675744153417851468950506597703568265147177255159556596833338013192119981957299797418770387440251881277163267069359280296366714382271737938691857156357627790986122287705169473861201942218122574528269966974448208191085166412409559213380333828474687469959512370507828963702453392966091875157389667460311392915366220126155341993270058985893750128139552749201961046643992716565660120393703731441293653217870073241403036634437116812139233411880536678953143235641541923009247681867824937633142459541902883512514379464880310536563955746861035585254344312034794341532872808638135441794254150276380373956043423307769169750263863533492297167789553576002912724713886237546554782807908498111105215354898759374100042277160774823757520034993558472499622711937333967546385831514336730825934109740577165181656039589391419305742432522968583814087364231677984056749530209393077921984793750333778788827227850426602118391052543502281916391970935883777200759499824414770437583120480980117202503461093925411206539339737011652333292808589774604039878067055520426384135466049548637388041298384425057876722094263448312423553535758725059700088189076624776042170407977730668176903431392369586021107874819980885387945477696126890183752718775020563463202757543963801764827953864468342190848227076505234340390135228046105926735545549682807183506409975708652192991609732698619229628984688454693355082382191461907906179357919609740584890795418981203076989043926330767323359411910086785339787294557323434879010397282554437677726791376650510517313383677459126153759952719611380373615717620242577405001643591711037985031312245607687837827616228659627256291643040610996884234815646261647242761357620315644160805213975685500578773654369094165775820450911913968173944764278422821080902681333756394667877711492737379652982115566984087148629027804398484880884113428268264776881161996258720338688304609355834105574530984448372702987008650140251916365607594493764670334542029761941850368760165417965946167324315347575171815673903546160736292829692786662485215491061256209575231385289182706601098987590425879518769171574584561409816577910736039200342910411674210516989934250640327194286943121376979558486008447679838564996797720517405972544472079563190886407565974798821126835676166370633004806829159355948786282282425451822971080542125293074856080112421679181320650734220075549946091786550292340430066562401629832358955260139475084750408410233142689977988630090721385857055774929360104933442272036611747288400451015944418625607947959782870723980987939632182573344590641677880075388614260517433540912651382717961588217128408580191903852504797260057119766599794154771190109881597031062071600983864817723522430775914472119881817021399187385136860095636523145835152269201007899720355770836315320564295624668198598371291792924095591182976557244291911927546296905464607713545636714117671530925086138119860570711154518067394032215837764735193706946325402924494761044882983059126637281337913843048807555628316769816013025928942449875052776564119019009679198363979211017358314017991433246692439993324345061374071888456979596221055035675518270920218961824044203921824746305180968547583707046902142980512890951146916386415846196512126087485423184609207688880814597095698427837993720465933357947618537167915192969116954219890008076395564087356627670707318919220983997350152789315424658514221319576407604121191300167158387485568049667625049915350591970230169737423770534191943358447501318589340167951700602453411675000471848302731702427573914569336277229004942094126317587852180775598711375148203784950912917411126520403851432359994126470312612437326407269702383335971885017135858853503556651803580231930762842907218286382931345608821089898208997344132650054148274163779848945245069575417918715515672640982131324000702043629101141885989049766826439418841035775523742260582484681865127950047637283099898494672990938912420943861158351847165434294179551703422859664808696060581965159655829158981122064599817850668349269277869268078457856401418427449174483964866269744885797763369289242836437836276704423509477178476273994884151148221569478211554444077605615003773859218610590264408273473865023946832027015364308513710950404195944070605515654849159592845528667683953742129214284588522378927324009555467527024022625264540564272627528549061576733399692613002952447884044528838234242849717781165249053804205138630660354013730340207211964225584579670849962628137862251018782494384264225887064200626127761660884428539704796219265228871587989861797335124127548248073589030153265745614881353529448895317753682026383129954020029261905799855860230311138349001709499295276269616867531638611606547425710660271033196424819314352403263901511266340491352222784715438788895581178903150173425527601355828109627701081524893962203028865779446754436649866901347517870557957889709871022342870375727035825574428530675250755282561861102352198023817713702359106968579352349750988020967315178664537236269628621621289099338063564581835007672031192985784091016070317647567008581970377107849843618640964339305157265289624677707506730757399349896537645292341876567773071081518258253804866222192301026664946768647940198197180090750140604151832937393039556722886832559905702179646749472757172109957153632492776831452883566157853655468935140057961867210723654607322738218831088722533449723802566398739786620054786310992571043208986902638301669548985982086395242380696033625601011966449506366913814425159756183027334535704867541833999854014962053618514814380671643220613672639043820681904743705139318220181555714961401510332903761694556898986273961220691636536174723788106563527956552837712631588502021110933361224563827328142800275608830169263861222005373883628864927924627685984304590311642113910495893783879218029724775962018558847095494615092893170176560354941861213447641349065405214566542268920783297782238185433946944792390686338352749760515045696721567637754555149623521073322338107386131937390295184610034069427803432225074128735324338094527476077068382878175242091082572062154250039044836181312473596654735263547800622435542053697038485337933791214309269188226582046742387358270180057649408444569424142574957935652903434223422994240331851624598420714674103497735194755858146887861134469699617147416473105701163176330005050472544385506355277490992943838601988642085807063217240525634505349629477846285868909613668434542170567587951294971929709289163499298993643711440616104844442938663196680949320027419934051493449291072708618509131596891435744430426710428187032354562885004821866657276257413424495598943494324145816087872355339614128915517563964955195745593379747987798976967524311662090926170514799011088300950229519661439899295021634166821492711105809145588422761868035760757104441541073116733461863342267141853590564546709791120646592691623143514458222193479791384834211296153556356201730294171373255019773367962039021019307098804844932375602677906959480902902171260851091014053137099306738228320180381725667508980547407304493279049378846963879947363485953804400833385287113115767778001789934668744572283032027952929728125288922494931070439573087711967505879635835957111140092976755615758586899756944928678242216642922739103437102538848840445256381625675937674015549755563027578844245698399779880254774251300899533582247004573266143826665177119198903914428021606673225484535619676516084032805515959167934468864579268973364289799386748945350845670965144685176971333293497047112163020996984962750129760287473844401725259019153486283864696575896291053629303433463803845462036941232000753953924145007071163041258234619303157125337415157550473885557588484834196354612677244702344022198808123717660454943285990334293260288311398345124094312910654160875383119794323071358237138248447113052456613442019934935575375962792477317413655886598578106742713737853378933973900995502784695237133916308184458512216836889348370379463953903580092579125912038866347244539436235273560572129413987863048939952775395233870600114530278412116554527105922658898079072083666228605510379518118334133255831807474175123155191004989252598965483812762222213762997965689383138592509225904342760316126943853711038055391695810612756710074202387690064554489385650413605452244361783349617720059803181992201614245628197598772736747376843231881129406207925533020229153369173345658499213907590558450780796467283593721770698715143042896352522645400727247969595104562193597007909389442402897326551258618405813122072872272174473441139530377529522590113313322574225356311249761292361805188301487801912559376968076631249112767061714908919743665799469656394794173646836515888189924244095872857051299009764229470058854699080454926565793174841158858952120131901982515649488078224576338726674914789780747105813028503145753796856061964377268952700713971120588083445979649104943991146702472581637485995297455713472962181579669798679239637650235128355439846922640395438017390932326849920965966752213751798003410914648976869552939581478377327085897254719960126853394639882289790096759748231420584480339931110403897173634060564323263399932400798503345895158506796517983274699360550027813738000182677537992916689024476545618898710944795696949571400491502868220730842640328990747799538218371007461276035704658473873470452413386044020361722609564371436187884907810874525046899268156404668811769264615520780246514255578785530364228980595809917322607500814719482071032922947577337854836099460763763036762586040390352519492586308779975755744235842984026986837972947336323915684689100767188844927758364905844750049902940079548566468939650380292967223144566681281784232276325253727656319971895389409829631255934060163758572295373330706047263113421144065768365739522291903542233327718590306637450832399641618124606744766283024326619198894574515171359571266828510938999087227839783652734438193295106547917875870083791449897941657904448366217508193690568432257622854833988450879603486907600247524683860193655982313160030869109569005236739474161024451660496242486575209544083024771892441735403710670947736810528520739494493005977330756045439899518009269268640862857855117349984900175110408883313578342720892733477848447323318676043186900823585052299072959132940287222286481539440905740470453078740423572339159758072440903064789963616958665982469563279645102242088867995567304620393891031830493310333124132573402473107433795159240136245470247358086866743508391574955491905137724162360074379467638228541522389289255068155139112531365417384895485295756417453996627680165220239787776970378672933065932720890047105682273204830962176958012233034883087010577106930380969821424816958999292241225906446235717964816416375830011926806463807580106460279572542247771991927830569426385302519047868291624692345863090261018590599956724526842871318623043373976083112652889685983061012325838138628394928047648741247288577511186593503512947346852241871094660283210720456936866487222614925089950530695993262035394127073933036496437843788967419466226581940814219698716488472539888512915880919759635989183955010596490674614296639827166227897161325862445296011266161014464873698108287017100015718073439691535294922382337517313181071309179107208988843093793529031732074134309421800209914846152320891652108809570474411573357030760499800448346736085826592480640040368055650855839326698565039038161468068756252803897608408013090154098027833432694822470947152028980755485879945443554167906280290836207950412514949252139185249972130299340934473667288718179290901918700406077012227667350365838374953318562455860476723163897099233346138400492850670953548228410572626908224352302271495343662690763395220646311681524123419597136996222298916981929214391948011724672083981308531259724710033620904194654864858279629297452148041451238628602875192941392475065831696571189812879024915168015818330578575897148310928376263424299188316674327228286753072641239059576147507310801767864851447652628726540198783233391281721184789263582182684369942372333794526619966353986221411186820812369626695034888362009609155058087943275898035087208435426525868947144839682706519578496676110191484741016896077358379303353599838088600003573226601882847462576970442921139265274368377578524228648091774831022211762408317995631932761748111155280314941254784062156517709509790244529495127158217188661068659281467760411250120331439722793158246990510788842134090013120459643590888033357306882185476368294352078840076014056667266089560314063249114092557267900237698407909864800512092767124800899526335189459592619920212194582417719671402634764961831904096714523208327545070675510040246183058844574661235494174096004719486479741278330841233991189327192309860235021114996570760342615272901624875049455711865833378272371594907301530027583344817318796808485491394260705546688664573413089747003746912772125864384938152213319619127289639903582298825802087959833316093413851517765103323573754825848918662928897085750663694696416058948775707927473193568461644269338554999131132789925515170210176708598831072841206645450996321659507388231539142155269300514851402172929939723237420573240153246366971212278378951555239237121247358083701599077445466756676761812761180373876599006883962264511324938828373345492213539392090708749495829473143380597434463778657344062893270505219324759556523608442542492813291053796857572222882237546562431938508092278356075838448627870042232574502614204456341898962081825689439456057257400683864438988914769308278337607467486292329881571005807334563178624554367417481973057122106098375603103965061354194147228011206557603849414468761730888472248410164079347378410849979202895655285224929562958772575026056441606191145874649368266582918528969065370332300402979540446957460721599592967367279304278942288434557964660523854394031726101921611354862874255477275419524096388155194818461232583634846576607392572027182432254962794037887694727548597546078196245244735807167815338321521418961680946609450024040010468927742205566628722958663806715718893580555932276000920325359811033576679499961947548838844686886156700393768465308171196435731291061642901180187671745975534756137030586887853967798019157929659731650482625326077697819255268031416761434725609123333987145120572366172428201753467012442797157901169547100130218884238656116904716237036395473029884822467164974356629774272901568735580749556834373900632343355889979783631673386206531792687186395205160599882683208002729649602462583933648408544749508979353173071400901759919911119001917737840759995662430819974640432718220818967873091127525582304785855404965149153636737120514897282172124469383051620574763227793203328804049594012112430467706078595673626699088960017742188828737477049831515268981290940291215087774620672681289057318328212025718289147797796924746677272595713640572866020328361339675169807691000567698952729202776541361588540451686648165741728316449655642020769335425352676533236408865803991859515705418137514782262516282359174211962008573882681396771124342734936555347727118995542673133239260318761074904826362113923480611911018250829727728091564230868684136014623280401265640383057248861060549719802684493319911920745490923990215492448293327475081161894242647798342488364972757689807164795455438147722849682704508205491618295867441191990653061263428503792662834193160436454242303334250786503597290304911811147511603885710570318852785940469541006750478727437887663763846580385098734653581874551803924718991280583174545812309747094598326946253344985823451431343517269745617917971094537452836238789135557604943729839073793952938004415719444051282443271131709964140748470301680307925163194389641686892985530759786662331617841803004469674700236719299281423041532463060833035490120639955829696046424761093695324421249663741612859700282831675453552961889301529107810640725674002160931417620950013325764551409285208131379475482836378834363194105716142037884870970255967746384056303168843895665249381876547461575237719598703426784341919232465608845993912631355941242312735437431679825791786955223876812249106858582670701937433084643149659429431493911762221671372910200697045230865886393172643213453745034065932781564311518147540336431968970753897469426315415775364091115639400942127711719368235768013721965366670258873985888381045060507189390281742608507804890777178581288424265865999915628237440823146512396598383648498468749739421692832330587439424317066899950263739619323329138709611078714191660127410149273656732021551363919994617258615806942567143500391524845147680760040375221386868068638849791556889948043147519290507038183119977749013912585810039662219376200517733861230061395011113114670300599255564174072251661676757442368860362836289011697305349037092514405214501439175479863803479747507557031469592430869445505005449964674254276675827881995487753635246279988009163696479206447579735140416746372813274217624811090381005898631536949046224887507975371530404489995558306463304852645580212317332711014246103176866923422575152355309073978409420952254662141656177904331846239692450086724006797682927793197145777871623865369253031771206569892023347971378886963350324947495108674186614017400442616064771211921759586920844315340010805532322555768024994252561764191405794969129408338907899047375345124165675060311119201928288453439108267008635011290111068768075862273917364420793623626853704278055147685468543513047662446562567653096996826647379526149541997296032055355927579351069405762007947095773483733369093875036493237765631646395828725074223465559150352381772878733298274171224224933640758924234907150657035530440451039071202403950739726122184884735682846168290642861142189377949955483361694462269973021710022380931159995779255287969726123550946433559486911742104274380922699124028058437334612461557992851617835198737138160565833426747861803333178451683790637554391622530903558546916655306436764800595017205683378525359397978028008901134247517820190298744959713131979378081432842714763645131520043727926072392891221676275827876214904239418735472530945807111582034901390731859093593177419607204554103151577655530580641176721165532116846318784728428153813543788049061432783124617109521521073083871235417030233202690126276945554274432396120245360794724682140944737021425089132850231540873879757921550911103026502751114746026590717100442439138670230404498901515250248568165079387646951096205390621558136342565228111366095435848860703268305429010844217822085716083925957273233453286346500028748994682985075075289735388040916294631621114524533521013350971383707321822431169373299773177492353624613361116566128537509735477285863278519979739590217320339931921348485600800703561453042909907135501784305324056056508398322768206280324960911120528000296167336032652486215214420839177275391057253147420317633560598111704358521033053727007667640857548602618970341879017150065149541795720502366632860930503382984899359933447883366942515904126511382278282640740627241779815528316338630578834197482183024402712429058105100568821699896708905346894316015692949876069451126546759643753399782814161395904681847310545141627483297114639556406462985774789926573357498074358951477995819839932095704214226364498414648331679668472953306963068940692286584962327904266996269861638079745890718773316726064030114947248186008880029554142647534224660690971848279766725020530468058193924414476096266332222475250271549109367861264988003425013882268741446211395931292291508866766108305797507135557289032167300914155452032267269912547121419611752225887166861585544571800341323050464126891331062431352886649543317555601696908255120454176024722253100194322831093793922803516977388228456963433209401171363983101123751400775773480002967850277634666570094783109733996384196191056637231118284508022979798341756702612996324220954803334502220560855018231627344185723126473497520916008001938041348428249955449770949158757682420311379655227223060047029698825578790699614851269511692760142042054418508424541133142572500341609619857744597578787235728389481621191928449178426219817926666034115537394423100626721514489375419234471309730144876831450774032717092753372406702166669474670386131825054368321350650734047557032166698946895418902702761715100536947055901319383584925506681528029604180439397838144763028414463505112356510951188438875273713226768397924169194715078299441319481075231829679398109927224791412314330077844111086193727124134619679684575156297022212542466911329563998278976663691526403293413269139664384693292361755211021125240052215440792247153428614647734694388728607396676050307015917092884304299335345120290343599777560840894656358620251822421009286737666623517553183296254604480649575208696571766587896291211331759725131278280372648346382167426273872614995869991993326381267852629451662543016890861507358632296260795692341674529485888420062887927987987106866007861722550618819401047303822463954952069359364177249948818670212324179406054871659467584363647379574279628719756531054654811592861580440393767566500076687439807012116349469579617484165855732571153546010522119422931749364059841435957090364947199271676811005786469867077532747947673283427054554398199090280923604886592309293288301651006893698773517750925619204059888993173677061674993950819816249710742752054850811421141389674698495443637316321158648264013097409355629040815670380444248640431210005240515624965830152408397836611110671909238617039916969826193049938690124833069829131090495753683942433102806261691700689011925056941945593978779985765959410944957073646173728769748039596200486766332127260740544966832027140523509195611139458305333977250528927860572558564146811627439284253752888572612744166323705153981077196196744644717647587510816418814298924961644071893773203562320807254405766528329807879069779268536025101788144559893560802433204423332520099629654416280623872836348239565401451422432874327121247991844857701281464417726212914750345984395629054054964984279106923454051590475094442728667454397542326840500060952266743250286797014219801096800938857439496361616866710576356137251575150711093986304402148743052179694588093261089677401921081281835718572845326179433930648364977350132459390767000971290634585102682030754990122763141463160639887525075708647183670276566168027453075317496700783965819371236142743879978551729576181426500641736889489439329479568581632914437694995634395536364569544832789595813250295094660301986180694731158361143186799141826925733236116863564525542276490114653817604207262486154022220323240802345084741428897275732859255901862410608909704912148403874121434691973458547120860968598213044201982529015197980386802334941111939676123853066098541540745360470541297123961088613339876024483790602260711722688488873000398118400426159563602872725947345887479749688429964857996987402569421104460228006685615873306995597804478714565806229699832319765569467959629440516279048173714485106125374021645825869956599908570267299171249381528691560574149583663111021793642449123406094950028381252293466276354841321057749623485930754958601915185626422450728440672364339593357646636551509594714123517567907784114432504580177887797195200245828696716076314779587658515231888463518723500706783875687173177587645610734138328399097681366755532343603176271482863981979211238771065036872356940761839331960760644817164380430365192011681636575656703280077151795222680586420918180442590939959444040257913950761640428074084011040720730399337482543724582212034357688322597475257948456155634181704277443503722051952468950283551326649357785956850774738375208922430531628999916186636117579275980315114620088516045489986388056384664758869894007545266212602746345874474130104453797457978612145989306464028452990493623890516899168334880719528192407497261758369496952642613188013894873616884793647595584550707395336006796830469619560460395865721809383551511122680813559910015642322831316754698568732178926827387464085616411700397937418333470346943030614156997006195275505828078374609534800342456836776236758797108838187826486225227899426402946923477363235003293299865626452750087329887891799037575493175074465177665162614144527566399615499587984079045311522773646856995592948123655498605406521814916546140910667789710440294977123658783843253764085518419039462534128309151386347609751313070351808831508657586354382360803127034832053495658769213902338819628092016301695201250745390664869717267953393052742158037925753062786348920150399763715728809811394682127989555911535926681799893986330365945295398150785990118007228354872415624101710881008304579031752073763089438447148370869164923752210022425882375228672161887672581384601636107105257923846401166715715038052482236495257416680621981642401639112132320673828762622986830111307779033628947738679387332486710162634223195030482502303282107265958447443757111599515169369667288796174846401350448635065014857125535749652961295606838125324539139285496115359441870146742443013988088355490207964092978237666760829901627146880498704717430121004472060976895377860700483172011698590856434126004716707056549337276307247048824010052702157423545404125276505881315709176726954197079123521671542192296571072805067788736787756219674051612928744970264541271770982424110597435404557625852227218325132384862952539684583121622637445253659232737692805899342001420786172916429247626615131039693577746182851393327369492873175872072483763741255117590378094510321334884927290636487015466181556583550280220987341071723806335637170924160740147562827889907997220457801335163348125648537801729823324629281806520551626027081942369748279833613770016631461526773377481745752606124263785706163646163574511410189083464878763066975820342431513129959275743641617574848911843977298807932751672574141914985204700639300863397860097117386563784275491451765142629303822231923671285994416424825175981856735874979097796812630568985921366354997059617547070645498669208229360752116295024265633581668615514047227821300927841296388313694499949754080063755079334135360515180002053535125222472739997692986426604401015502304222008035377044964072378993816143409971802843606877583076403301392858611952447444179361898083245759691470367885565947312633132495497688562588774217463759831737888131252739269343344499367555998784991373337352883187093037907526359315276581560189387936629167156507055545255685524271316149038541981798911927529676654288672085890867173768076120373328064622856851168838141384050545600639555168091373923064740452803662587527036729925597493611846388672333998751992655556487833250753581626278726463176828619540403255400703952373816611405600295524822086542808241961551931530177164930504080684477143199290882733369050069098903198783291474779881748327649610644834763109119117354475039863953354036463809742242508581138129812787422623071055697965602944482436889038089174169469092090339904812138103598870193819318234290513340316542274284419368326486377576543194403781098738404641698968191270435278874839496168806408421521457722269416344025812280142784152069900284924653889648362860486868970981677117005053935643211441822060715105267163755362210429363137454325880678201186114824612490039304502202417904609064103876350516447537436864497236491336925961358644893124192188393210665710967389801484226023029990520144256677001008070497022949528641620670396166813531052726683691535465105381365837528495326010129145588060471132873560592361705173344741607262946252769905931480508058038527530725179466537431867590993145567559638859411407370016094379266518991165521670873139563810491992876902928494145340604261987943125956440498305397342805445419082572025652011363116870452646281335279322559120220926723265796493562936167612689165608317533562487744975697547414204751622860608864748817404470327987102523139900844761976768328653088274701652725821496187955723072750882132082083079879079610953244439915802320639240703732417685818508313690400745581907424508174264368667167824260236591256615431010034862762663538584344949357559331236976065260042843165066420859643350588381520889396314674873824010874286934894764633182726544937294671233436686067556610568969850779524393145298153728144125209880527448266001259366704795830076637610888346463703360614798622135421005329469347424479867269263400430937445720721654766312704412253011022733267278664689231692345103434926975107464766569156237999005737775127459813072094576180428261675871098815742510630037439981879867794076994579466011697252635222058570059803673746910212384665679850901523065109175284762385765253040611353494306132393055520026151905140792078624440375449455518077312176560186902215882442836630474316215447495142286665840911188173963043940432838708375730438170764235839743327851800929131238146727053383250656772252132914726706454969449472651948145655680645862907131574688307798339523006231480809722965016760717778731211032416231501412326678931125177973798487330163109618274572316369976097381473873344912549450237810941772467630056331021077775402329402351586802713896384107473260411876395854481440660088046916235493291975292295190446915905808847986706516195414870801040573795458332986060681450640553490697966995033287356037834869787866418060252136515359966145703562078118797067531880020304731797083212275724728876956853969344421872420911123023370406011946425601555017514230951751905297730288042288887723060353631656412179288456610079703344734619181554600346378597846339300125937286740192581371006924620834576546512018039037413375628187783656435081478789688488779560602957503785725139295338987941446121653025715925282649171501338000627228918060973907639955700591090122175231839409283644920987222775499930204487154163469475026004429649059770411744663412544209479564611791030559997157481198921524988930886888104818409657727268934291621447549609882392872013035238417839184343620812900600667725109564808762658054040825470879505508883543649864066754103243936945872272041038370156612809851291875734203197831479110642805445738361619701423311342457960653464744415686524773003307386399418541173317701098691430315266495426751753810358525274324746368391411984590966571018735099760377548429905955730185995714509536996150695359670688000299333350037824248224447178524214141194241812003976425610771718813899557965825463025605583848531335781259032132029562726928902963416510746237264235682774999107704154769135241929700191718926813177602595425616037710362744023913546705602458867499759027543974354871520366164639058864356537155239465660870961881286041729728553870503202211252209320803308875132132832826178752234453478833264936807080535840703324801112507549308090959251720343578226233296169166325528330027545160265501928295929323067289238758720080941485265057502185624772456121377531756070692020773834984155655078896538655619755861525364163091493431733403457686752001080655709539472085585995740903719591831571521056081682298162121277264707797937652064546481374246997621921958125180990132584198773192186736743201212538149068421827479068307853825321486222038437906020483523403560136696178703270151357759043585509158832562252935796751342309702191719101669444303930005571770014281162845814957248760277026527330894918906324250056376484450075465389034816875816237516952993299648357372029661197147688200348711600411972814807532222623046288856236523588879627824037633793497903971016082091568567097294347793379281205123962550522964758157397192213102392033695746674657679867201451099359121937948684693528229363559999503936361156867163626666717985170785391529900602749149903813348212679555617620938015349864599176635966594193257868748723883821814919624034409679690563442010567776444092797035347260931053405110216244643829285656962060938378033252800450304316440445880198490750538826051230926375598824953313037188838093961331532446089157836682327156478051868994446707859391521129035658120342508724954634205678592609715580693365690685823710286692718903495519098841284510450844384177366238287671925392629391309550783981866691397990111969692222810517908193914474805569685857827709680168277912144789028776236102457463923693920409695273520683530003883245105570867777143551466368720643442099716467135547333481449730058880608917853812498847852992765626824704508058917351145579830128259375208554818359676559032940449221648035790144170731213077094630499366007248123787034586704161047854220697554703657085512985833936422791879485910231174733063350254974093656444433297501521061172393817583668366546563637280825064615715858489663889070333402603066039262088995750324715255693090552284737086245984987204034888597720925485679208530938689315736620663084056577274676449398400228964220403164792473176719250312537244925138096654168892536337671126094815674933972474827717197438580872157312837942986871085690651778768149011816665528370210566136435623650362275396068370461497687341554130131605622408783951549923538830965981004453951909170276738355990845013726089894098088251359190253773951865637061435832733278212182458984706772785527528200665885350829464475313338102646387690503352439738326150546315113078009209823490114406384957819201617108902941990678613426827932735667840330304384660165958481632299909020227378936246584666867252257719232413266803329392575450021854992432339401010233780993405750738730625893808882689086825348868863284390609309573441257593388528966963904323078840662065990699169705264116280439311020271828972933476605328394500100232170189045466844089329567956867495309223524762677884624328911596673463093282717716720422971807338859681246552700299632112147818537495593516834036158050022097115735097003884887289196871071488496217484216713960064475938682073491394471434435299954979418946874495711507909184333118244240580787981206544220654916364594291082565348163754603090826984759585540174248580298264131718634890777439845401074546565421353758891677020536841363541908383118469023061298534919762681909957992363948845397358949771245908483356600557713253807632296000761143837866691778711061232281583118329117729229738978694324163528299230796078212556201681226121088711072386613490175659211185024537640802183821670407828725063633175445868485260317612740094954630303534007185356689835410269039646545522673043397572257344683268153257554904209643313450389752222950072642852158376488152706465701760441016118833238924891422427511164407319112037428209455328992632048373722849476021643265106294912627450590079382960987142934149973696682053680036890553826518374929741853935245578179704936291154339307161770463823612363959938612782874580176436892142569555197605184150261199483112760022838754064891938069095384455376917450310427232747298874589818309874863197138908611319649256196061684662953230643425067089183692918770090280165783666112275415005166326242529933697135835474135232437504923940508987646586391448322790099236388565848060165789221648439723453770518910625201848920631945479488485776069336997349747346357344241674765683367348656950264430899817114030951102186227993008089870114432160170444330842767434070425419797966450395716655016541811895974218276798758847963358875719423519133322593477251373269239317406109388555245213215340624711329470778700484994054281703319817972628752398281121544436303793972958723653631201325096417558624990005853482047665195797030170335073373943653670197828172654799682270322405510866232508360197765578763102291819702842015576626769134094857823901520023083992890797546734023310624150924996817292908385414874571743623643577371797619594824732395116787156111775571071990203064009168709190923752675553748595286186263959003973757126662862867126070793633970418065881774483826309783643567690411249181687800919265447634267385152190312588980237430225734848727430813104151540289258902807864789785584616875097309343357797250744452131443081201484688599588757766539652934021543047476544444753152174991587743313348922664531468157329389145341584709076704292311017830801452148573094624658171439988901625218549733618706917168751186246194738171641152769122881618023549572767330345874800386714186479578965609931163807622621261521296670831706338750134618053827943956621214943106290531552250650288896638848959664276246876879845178886886819105844147262444657697463104209813670775605199072011471092841488504041316383236376497418632186375159255920953293639308948431256502913466476889927240187535861548657784993375997858178236912181709277194224050982843951825808438220816699277282786501293611936963352106828231621714731147049570092322118396527485435914870750133025740600440783330071483580618919246174016678567049337837036491715295785192407342432145962828695175082410197875609122666602723299030493668813886206386426819866466667900824934546897207629504902183901372641660816518011236819769680503765484228439512674679644446244009289906512726507170292595472716540162970314436887716295780183921453930292039532836614342750453747272017111992794489778744090949054506110652685956165509909699396558636801216365494656813773470566556948059429906499583636885147618746915160047450012723014509697253563950162440731683975202123857732902986897681872045655488416152783751423901311095401261877539687396114131521755762402366476298604460343093294044301119032328549304982904889599464397748885387338949764260862638245929002890038369250315411193796454431775979510666808375958619210736555884598093959052139382276457578793960034176153177075179704176860509280105688565364671810477849033139840437341204304872617546543465019385447247537856158356905475873380813342096846505226053757185529836364516209764641054129937983517435583784557950018690674696926134119777014584926785174026740923768872837489594026002989995422169575716049469288153994309628822705082707359085300805579273370807630891962787596913504482181723880303090777588416351053310747279041619914867054009176799324961852963539395552253179776218284068941371061453862974870828781495250671736162860842543807061481317111900846740265769387666495498871889284868242741568352385388187639519477469812927115014762666556128063247952960805308736297482418403697014693169875272847488413804527423593727650098771808058982663162340256838197617880455061661351314935725128928269035599869233229270726301343961461841708974911298582707321584032529509584968401136569833947659605521196991234836987959798463257063744571800005561760209518707167223249380859628619583359455829406792881560154611969972917578366302309544663985686805914239182456161729606743124622777786077009133301964679820539189092012235484686501437183506553676335704479804882511946477426337934770654649760590840525686366830805208936138345657191229886220685135627115320323906893863427094219275502161269694640807836936295333113722440697433292995092634460278093573880319190014350621365645226770535230080704093567274687138473300045075571796058602541145330663183318045373694184361025893506975827875403822967414516078937277608999653364270009320910512930162697907774611108180679765832049710467927528935362262557773750937211809173952788590841666520436851551578723146269417861074487295041920099627085023952747791177616120881921205712011196853520113982669989790418114329498557839165035703837431519531823665542730098270724117240646973431539036741993153518194228493008292377206424944021257629902060134344912490375207448098948589318024286943331509986410276053499205047640297116806253651437281295879808702179075036721785458006439584219423042505991011215509995265392321560091159531227904720678924410051255893353547321413275017870418471470436332004609000352415664820297008576439254069408675704820137411510100600734565653077272474298893027380298960330351365760004609798068635227390771641959967523786172600361701949143616355933771606113103206197737447500132535736597267452259314485970118612580618268745229117611615689209037055442471795810719293715376999643884509733292451776976926062467275039284867830011290833495425885479873895907505606024568719906488523561183335123611428050647007282739880421877285395994693003022307790538164053743591257575387344591261675996117609305501151059874176633346112025952649082681513169998251825107514909286622274812488175396420889169215871181033801931426709394085629250615938636088553642615427828100099737430608726190138548200483467074668359391210540103666181394825730208782428143156622606042123708415346165450226327320402807443918365634056083071572308876228099345535779667905842162700964224879789176457040684912666181855065979435763370941384715339680702201294497974058281049194538786660910762014098633097378126668334633015183028182582621493906644312918432929306951042643057126422420312704843829265644044481181224702928631039900827042379992662863855167715872864783277358572927610131735570384492440513826593497388325212319873410959049876394047510855998641684086130570271949738196680164781386502867640885652806885539988094424781210480199063422737575680385037776063986329480936535154012745025409491630064163139275763327226612599960009488275655278941385821350605301319792732297320948096039354360616742029697105986571303685347784649356189568343884977996491686911541629327102636703809150808448328257643782787146827490383183885995473801393812171431389793842713423087081333406871963855585729974808138812236497639715627415251698521290590096954902100546874428923775977175658239411653445614923912759418233638638114220114731486875867574439758374242236515605395633116770811146530245135054635719452598994517469635009381229554557738660038690989657587024287837771251491376287464202277918692296247397318053000348083330250608828372303906200232486584856219955630848203295816349512787148867684791152379704223737358266713518196074984624577954538928411559696602086044176844116945057764579456392122293437877958123898221271834838356221301470497605996524673124933609331990878014182022081994950772297978175115203372299424742453945927795453821565645561706642076352045822164144794745393182425055640641493716029499094153492744177371103870847258398895107223373311084055145776477948071475741653486795443565588111726190271561984489119339425506392804976873521032793672391442879985127947688148221804704823250942358329941919352691191813185459334814051082253104057403007960934994949305864290204320366727565206714807055088625563545757741751191688141345895839468747440106560889137180795513456842962182278517282913466190481669647059875894453002111689574892823623804685445651615093718614128833756597328103754762214977861498836468164642207585160061166202691651626926974560010320715206303462014473025328465233109277564491673553497930296982072447824438022190504800927154063736142040622783386961442286839526050005097394946772676939899260717510944574386547562508762077587796048179563581779879897295101834595421869520465742052247205678499535633522070213768932686715575867276223134702843175931179044411542123092684026210554333007767649992035718234215790515364284374149335822895613923898231408789745856445710975649152378751640612617612972555453942533497084814329945693355683235806021685283374542385933814474345313647090141766161736112822192129579903665705457987915191977465620101043801046113301549916461707212457402951793679760510993730771768383902537953917299253423477805178011057654921053317992395482583065897056407311010848640298086802412986962160715820428775197406873537099009898028298137860141890526432324925360879676096825280420115945213857771595035496756725717502787210452366215134794350097126674748070150042521637139508665795548425489506481420395440529952856191701017494157391411131395042405685445239092873419740615379625168139295588661829330763328687119572212993618715389875368838772626211923612775035014637451668613080420685400214041823780776262034254556730425088320329895601304011132888493987548051594120717636736375447764619946337108211128893074065919498617383155042535064903678175680327759015223445228616478508134778634135772162375979919311932115595396459267611136857267095002564173527412409516170236382059425203999601104717477447249296714753128320093166871098448465958191942014141536347602146941126075849636521833401720536792272981914305784648970774522729141674273328276337005381413425115758177242307528497754421347568652040556318962282927241490624119253511725951695526000383205565632129701925342975158460236904509409719178163459505511434973464681969683727984101886358509672048369521727593269544293990319832094694389088324452332234903223536345859821925415221746354952268917084240005174466190415986151738508598363171931889296763273177924447106062858832417956563768176647404221916755246926479894322302513598566885795401930986973937449639181997869335765311039851424656909592446205302844555112422526976708348696330733435679904765555109948347199192370460926431842916470558778121257782392417481230100862782015420643235121699589778886354457322416632550458090974913811652041221084229274316780701804950842065445588231082641690678614076278839800013941148410528139253601540995114082907463794229647068476693634058824807393413506662066870304744763746328549590080851171143142932540007773035406264351056582629724724805775228232648655675327674299840511871717624729750019838813841605707466357282627630764410799933309892349100894788031080133052465815762145062443038546200217170214421717856658067210563167338995319034906980838094977192793315060447171731770895777171644095967487171075949200335060050323480446658207525576372218153689732897244523630907426048059457084172858831875119134203023509459541007483257440669228944750615359078913423557997970617828298379150825744546823983084310984439019091494447052127462970274441520823208610560717129296820245860055570134968272383729314531144160824025644250994358313485948990239761107597805615698550534939151122427066316933877301022960799819203525598183147959904017669647280714423426326660595818580546391104966421449868905330348500335881814927427886143498698124392666704776149962158074259877338350768232126546867609215810677909168212906046018203786831415824348419387512594965633387319492859226256850060369145822067636290642906172689930119737002053836855384247231554074867801739716665082871928497988231846025697566412554030218675584319117788870397655311539408285189868284539739084287345744028000325025846175704955443486123653408533396930724154809401610675135568650143139793560079877702141679441460867346880464195042745637884055926204718909067575792622634016667698045882111718113836132328646054971133808478599055655173305864069102644453431753077296099421204325358484672057021232964597455934138812935321048602999939867827696128616487145782538955082575193982508702193278101636054295776832929962866108372540717007671846550095310272633347010988771217651342447781108120168164309872299067436361077987536857915125703445234178342404519556512041796986740181885896392904798742135235290595976722710124671957481114892273395821285992210841767929543603547513973685165341772390162090117236322572036516811901660195996659420333357048173324340192144706797767451136275545473604652949379980519075532729109468694000177667262438241022419247865522490306986065126878188331262986111685869783095886742074877183576737813338370770493232792060552324275020174130582157629628873212559767225005113183972431966407530757482624047629491534425245253943351443330714261742812919708085286862854945223480431196185405741187130212041503577085820622226999890333204723059076652120794167858718901154863027569981744366086808109936044819810268944104912891989387084482982548601333531389129808961503918545077335874686747260059226262694102417366166342008647278446760245521343096117050024999978789199210365136741998148334320621368392028081411516991439301127315727596969367041211085698180042963509597549407378716589708834592421607789068184609229205189435531636892278190376274111613426972393222082177919713989242633504667639298225041248499335697483819998000713968691353701247918484969626450152855992508787483495490665452868828593217943211292996801050897390952622071574775453089118784516690925183555549217271640082173435923821098867695732926566300935383714788928375709833111113664880987562541824758723908294735944556940389927653120904028978264839289567803209185470596307590445961959897984358282504958931528737136153578634583412445695178989125118305070824480855874619343059165793080054109163590092300190038541321132340646108330731242984157261734410079442675799672374916086058674019788560642611176476452658665952162636668922912256094822255517207385413823735540838542853123132515983070832546606695477937794457538319542045831643684661066000694986141041658102392385049415071011482664875307362402567573897775091164617945988451526316203368724666995547247165824664862787123248950037879787426896780313549580991951678779451518470680193587210542482345622953916301608880235520596014773965538094558945828384741203644766459897313899484077997536750195855661483337255536240107829693437558569036701145223611675982696303280760304753166479661708356244610771209878544509812020480412453126444220885703951077867660498431329462592862324293708707439709454712796103200346934872195151728104321644271752534317950224150589522334737933409826508599110544795698867583733620506639363878685656604952644997167413300946967873366118462450836300613479756074039401561446989789812587015556731898447128269815167949707431990762436528888380810623594249990721532294528671757291499342234127407527887667678656204841037112995515233952416518766814652125115097431864009749259144085524259976195225577686794890188676358773665155561617775057560144618599064233887606617373098668375313050001906502408299253304228717747667727377675870677259070782610553289987614879702984280700700656836361956121264434083946689457838428968331965374985106660608856583954405149011675166027292677697799634240511745391435175044404240367141680903003071365283479787536696540809291008711240967951029813530530295316943985161329723115439445249168570270358813250731074908536436785919365148429233066491906186548602696759915043232909217757484653381682338284312231009654207947102350452451652521857260372792313076777438685494080176082844552837729999068214295481099943808524365747843480527784787099944496369362980434704830174225043547409964112782940384549004699009773263000379007383834768696787123536167732760836805183071073579803606910274814700267928450512462025208723774142830044976756860649306388912047973782716098245792413412809908022493723975310583975190595504191285651831304535617160776214956203968112468568492808271144727341840776346549356593727811912161723747008069516387480337073390139769823979071541042062938047140553984155932468459634367396767602520830048457964120076789798849654684191356041138928684788164766843002273741056590173440574420576232512301921388765356306568214408609062811528856889974912375986371964817109542166262942080812113466876326773262614472688167101344154488302501357464292419270829051626975544939961410391936813625002358253688603819980858980557396987427468195514741835242452608891044517181086865344382959487054463411860100435528155518811478467386436443280911036416869363189292300689425268850970332802939715629121453524687789254620988050704529711134495043619132548371894908754512600115786852402342362941897498987791786492137905557916986619505671964362200338489365608953558100667345131640674587170147844194388102584540268684921517005811287074606901016836858033851748487067746643984941938376201987232249763355351910227923646991022331565464541583152419435752378121109338299272451256027194787962159689624375472745077161958970426572788433900839593737706759269918718774311721741537693963743842899415891949393945290998234474841248921108634554704887148737878291369710199181346176363790069544318960180700284054192040854765836377776910599801734336272062296770683066480265682911960169798671541646554613322114027350025783814240741208689339172960398059578841956753759946081420060872225317957336094100692793649541785368735634846515298143469760276487880396726371495988178897781767315762510099542050008142483573666705611002493787353719585762525381384507560867023271605500557029106394430702602254889938469104309253988013042382829244546769325441697299248402010303661008612724214733835705577817026557767226808733256298582787885466162582883929329186005392953168347671471168917608459608888015855776732380178596718980761860482792518207411733685297528597065513073580728606488535538822178616137082814217350178241633247830693074544944682251266624178631903488881818696301847074055119632215290018790970094385984725432533611764315902877588735893479535627143845152272112430321829431600395167647868383436334988366643332718314277967309298606951652329756477073714274635060476077487519345720931840953110477592959719679103943455878597312013975406244927702935594981606017222095658994792623725607466114316626078396630735237904743581299514686934156659500030867119721465474827857513489267869658879630294353551874297109488809176690297196552723110440645720013935586987261794332886268662137991355178143267685850316253142271609615224441475607851787323850101592916917556175771815322309284694727085700753497041822192197164986326500015730663811714862795128290139563048561049903524853893010166580842126853794167630853363004671772968043354409816397335402600394331810146805886115284693336315418486731222535449014199970312492064841373567141720773601116723595119895341644058720580033164657129889803770490621209881568114368872769747218683693604097880402152236169563704989819311944392660627864049729162704770045720995916836054720098678654383121191012837808751172676802722513929475689817285638968621186028982250661424777998351220438364719146292746532484012919887639656812906564111224956283991175227780469133655126900156582215364821576102372892497816972277117291651662305796164821067070929046193412710347409255667865668478900559543041268247241969602848297411565714444720022827138798734691515614793296887861024079474532806121747652106351198164493948389024762212053079201424594671142004050231002234155382648390315221493540861981394928921765357448258168648714875118939760802803055849180835578420809540310119200869069531676658701517776476400807875957242402105831931434933450031403721055111124135684427213852866000346071180272017714151915445617305612003197737076238948397959310309956524396314412421398394396824643053738002743638724329328611417353407984122451221309060149504027184314299228845996139866930972400166249731851187557877353877868204926960959650629757397781299820922257905687900323268603761480990754301968910274973689958908802827605619945300050465272718124874005240370889913990389929942642808635880649404543082885908542463811126697124455525461228824728839492727542211284397773382572947680956933474581448883033316844483591601921418039870866609325705424538812960989875227682209857888676565919872031189643044738073363119234497236673108079417616017858326024260884738991284456112027346211436087463448045933261788467031343606041013133796404962108321581476620940988515135650643238604249303741629371018767604186178321352836339775213242894935835788461499044962672922540328702549324540536017136598217531492579794095461937639039675836392393143607796738949680992526152169756118430269261645092420049627378257499013296049477000333085200734425494674817777839988737436687286084126672124149180577198534108266585352529573058888563470326794120206370402364083779087170790404056026755067381603746584258140298512566844886311495573154701996209675163715171082392323757380433797490277393905476795102668177785385761251657086084038611279165343106023997675711863817689647638529389816534337400534765198519105802815920981703702533156836246530317491112756526909118104113548720396274740453851616945490016216660543664579758099261801421896984321637287161255040406086053515291582906495328091490024918575787388443165342575113518619309968165105651421360772410596964711288957719783572550477171169736579004898932780705957812238552102599642447483876328840679233141073896810426027696353512350557402371232854278880311791189049041974679037641944057133105338496935165319467574302114101661173105316511498939140981781964527637265021294506772013442932955435595349567559345194847319648813549099831898691961647759796614544305968805019772897429246486591943428723148272849503437382863371991741552290499936019079110874181553636991772169937507532267413399350109682805064029275222207416394089209855570788017783363706354223256282963372116076690205973751945878894109237514588449662285688858114178884987089838463815176397261467439098286418200152159046653677016246197029989518516005095784522879680599431263914939837068105364772357371800310433161410826028203657800975707708190581417570399471399184325354168025639228296118480056328775656047638871480953636766468372414499402499186417832768756360156273818292962745114125411810071228482139517885370829755137191695346563434221998482285454865779058736699899094763642972433107807777774374245799598174865501633392948423680947004120358834456119660984574714624584973906592535215409993544391838110387441220370114981202192592296212716316560264808301724430772173195775205120962891428087033472562667158054076794622973249243673538462849366557082358135057940594615001911319659894963472924246678500667407445552697349819070966965140663692321802937454648471186697328422711579409205662117955971129963963246505729063422634359163666144850173220135124045725571820226819305011851687840868242513212949843373750308365471509522223606551958128893640025199869551001434991854660438416288286085500794709600427490751891575584702765888443032058431659006958080286743841636633433318347948799936453999421088416524395416219646488854651047673819917577742897642086733508271054349033006637992243967180957117370373022574672663455809132364663101451690325080390430349925636661359445838205289264698300849324494023518057306822721915670293775819724207052394932500136536359684624600965043057435625729412649179259695800646852629516329334839376608494755605142771819812277606263915313253808714142796841462326505193874392177388910895289719160564765426665069327139777074731290401177649727877431393381101709588721624905164350999242971740143778759092210345058070425815556211751839060803063313078511867844377079607182520155549811528729260356985096514003925894006419504177561794700681460517987342648832305774540053293581906825172779808550032533293095484679870550387944686946635961407640847195272222743115064071901429011324368689721442583782928771493155096549453791662396598354182141314030143937995318754412160415692882950123670864424799269431922480375535523114511049032519436290624258844624604411207947260488829829473902526915433645120909527121665079328455446058423266258643439658684911734413452299294855782105120941454336472020673432783801928141498693421000304881990341600020376861811037788513870883879863993966135842898659983378961745056731934041359997147219245246425487274311236334444892507626258693751756663897857423175794981827156534764635017831740394417001988037056699845888342293933425829122322931498411105831181343627392454500413523588322616912183448597645602143496722953422306932372617348895139702557257978931119332723606276347635084268762085285704591465503445877811481452544029146353638898387485770467273355377641178064816485274961404321783452588983846126889162469883477944107110530159007190227023012387511410100124058477846841823273951456375655164746600039677786861260478740770191337233443595202759454539743653675562071585903754190443983797330657106591496991604935570141035378849017783502630792825349179350272894504258682950201621056421493632201960661037122698028687858915155833771447647042502003769583463381305764175335618074513057833370699967909053797300333023349389926859263466522820939467446160798965119324995724843960010458385700093602862830676388260179047335546712134238799496552397267814876461214733028038729099792837926012830689927734569344539881729397140994092992684264754978315284802397609118923254324391060341881370927209049116817390861050918912021545596894737667432868729510750731610414320907314667223572725842011256740577946357787787297961301750197841002527598683473304424178800128229904348349326556127556433306880907374462801652864979641976613598262820109646390135748831929574347279535277693707978430950999574277580115781351320299243108798300806927753010653837835362397215043870575777567793885620106896759157030010590429884388198084063151115103126823972566611411320527883274427644711995355865857308864839766666547173302712415609046951022789309219059757263815100392483121449627150437811775752029925573596197612354202459397501956713133184883190832101010750689514879110483389084746010911238344370657786310158943287000151567640839258764411376566792000594633331088616396473371900697771699046759187415851130547534819316295205383634847129969947273404825730299980388987614325872687843027297634076536635848492975643616624526725564606966805245341999362347377016721435916272643347830103112803295670070893744727952713098744461578268264063523287846737328621057339159969629492516482972274508370378954040058921910876596730519691055874772917650029358053215079732287609829863962400938208898652771800050211661368500835368503494806916609842326217641542609193590931660838213130663104235668490522436552178960593114874428362266412659329037012876320074370151389082397077669767796017173315870014979587806040568127416652294272620986885503920762965609189612860230025269832280355616294708411886518124312432761867039446261903501801931504612379422327611041918985362339146992116520217705285971071250197145369020512444587497174475746841619777376877207232255115983495122594361027244698420829005904783374200954325451276515746410160140664064092247145818068801077579287618698145840825161008774141878768203993389033624841180962898265226699376059715663297852960691960210211862004115618411536951819168555716860342098857550591957829589850689332688639412117967028970810523964101286073726655860101358608577680277802310984216345080949911296680559738736651362824751959128744915134868256848444891195508471931935189857421255896636925312962859226443217889912737484598869355835215279489825322974546430284695381479175187845962972558556772221005852861497564261573852487368216983195106291583203789435057276147424336129438697087023516399544067652522462277999151427888808190314783441122761358134389056942585237583150703268628705933041393277056330665801255622149952256423853453518649148702557809084493895117769513666199025003231495896397285674347446795430084848029783470176470381683193182495681816238005832575220147833219720581730860269956434524553071934317316800557525920454834162947743758129725448246142544919482672108914513908409712912556827291505310647569961559201882659633639282060950068894171761195412280498608969120286297659976730414709350637936924093040249540527922738358508348491188903549965223223942780866888040962130638813754383477130831678594833399856313617674685120451165587681121300798797488828192658986867146929787368071782550282397044997840971682342025489107281690818246377113966242051913874233853324401241530959954455018730854458598064407345180776922343322173822977106750646621736827286630061153403220614921048436047210107426118522895294760781228766982629015542052509992486369492714469304821433516900578773053335384522594997698014047254744712954682962079254850796658840395435595313534192195906854833837033598539071703152174819014593195240529795283916212163211192470443269335943963815378683548458089738273022276730543810010566611791743384222551419313184683020304808410026578565363928091961490027150141127080762243437079751644615663728953947922766541808473867297829268128775002304785195231904809085037883588537500330987025742675784341579348483191908599963946303371037225184737605531679019668799604394761768419105968723422612728817079803658075537114921229259659772753922415208730484739577775080302597792995274928757213931625685656946846037995063399677507842649249217803103147184581870926459411036054059276990324904093685244319832770040933682202469715168544508584628648417802986175532080190575724331754484789196413711712807834192264510654846315928299166017314938641567535793314952190154875940937749239260173193272621509991803274138634716204992305876574724136589128888570583760608342592225569633858182263105766144740258852035587755122912817448582540939634771082521159096998911505847589903354558914672596730414102487627170579459297811166106498280075831039527345604902599055148530157762347562819943551220548081823157263347886918225668912804742444094338554863964165028837837558018819365822625366635256632079465389932752507806470251066904322687522636776501515504298027549382602569833458833722112313554626913959639053640026449139021909480403966987111799131216950072358818530052270262790848961433618409113022537671833535850293626913652449481330774386639339612339535536897170452908581239046062865202556015658427310479952067913758424759644668230451883539539442282390854210303606026594014315744203197820406681229569778881376115471026487583633819199716394388343025898566080446457002383049160141858585300355498564307027446098393476855838946975409975529501240748516836923876088204537423672807507829615274758183924387183162490790447768955656181461118407024481152770932921039640178969355569782066827109467588941874420307513064326229866574375676012150556520531167489403399780755876340665505843546075881353920116862091544933080965447805409774608705531263917275886030012788634754374460508360753988810629754990299152894156334247353890706210740459322081930857003107850283783702428490775684384895469959648514003857610859189272934938833797424888853335717189144155817513773098797512562305889575679690115040391521738540398498656362169174961455151414619264656228762340359363154345957632987133481697921340601163410458381190995954446964432161585933685203135890720654605770929582936297217062104476423122220684359913183101696519541119172492693417574792858408593568466206891783411641812281452730316250956027629589864525595684930744422387116247593147647070675375315214094725451009395298163909819121081281623050357667543578529617945567988873506863045402840713025536321952648892929759416388432783609327107835893439141053890141005696055795687385796709191760601103358754256314200292040053859649533982514495623427965518270091632253501514845831128536222697960234110384946476960713546847429223716612728406459584436880976450952542398118430584845206064831488424462495687681476111343724481818935659291906807281829353706186379877714866105012264561842368254598663460459441073714014032783176242514397699534567179506844268489764886775346072911714215191842772962481639373175572138329140867860217445784288226946446365687269880204408003249342898229404105855614746553671249688886610047751803148524022777436030115426089964915695154789997724425906933674449365060319374903208936113200057982838470846550118522186072354697183482719130195253452109259514272368096984651222753652278970141984992496921114749686775151683405479805968880075549679130559377980371738274709645170633799079713443765862416555054821472835564949599619883776811296489641914483455980197852312343816276468275283072611107866272485996611341430139097808806821802662656170573748676609233299255709648644364811926202927651588285120646753048082912214346647315973185222735507718822840622963616137853401094873645954213970303125106802468975406854140507656900097042786933731833339923553303424331151037434170917644221102061672748138726176863001713760655826483157248417497422385462635040816846818206973320154192814891664940222940052158837272584133129325383018756929160788232867353707846932485158004472499030434541964985691560363088201017597080730193122314472441159388038987969039852483287225995474098929274296323450021118708747911370700929354127422071074920316626172828713560896191063977810333002216975056272576288852127592817652028681722067849210601274020334205987489573557016842055400216625460637972528560899114240971808067440561277385084404355982261694817070236616691435783851852126646663492960082707932635940048954100787991068657684856858378713460347734830762124689077339097267891450531517372196709409567646715547174956135684314301333581083811945996930298254712174344655595175482171739944298293482609104482462379100080046574175000223402689766903834811325344557906921497357166431095125574487656144508328746083620701697222134841250721026674901711054334239032783445286795161659867502561878336513037042323288844660187394827504371692361689997194164096697340525872968572224036590702813377908035627613001926561235132581528056374452481436182112548172102517192089981809740657158188539864116918492348336035156654369635165205116240548458422041918023717431313440879296652485067679967369772986762358402864126872896334319001928600790500034468270123654372522560326713715211703385432124216144714598365119653398604612106410644873397284868382241797425154739831670298445553520397581180766656867983865912673854747555597102615156756025855756227765041122491432616091374639434628320583332654002466663718631668392691062208591996230763058393462837084679779892679404755314158750008874590776466210097405914052566421950434310239915612170898738991535399132188554081567700633518462116377001219736117590812037834031149511103634057690337446316440668084883374966364319931305896879306112705703148214413574203510415767806359315633722796756656322888795024900233452262490297182612349731443920290139220681663156013529899648533044669735845025465811356726352581749505484066499900687188388104900147950224303548265336758128408944972960741555559478675412149040517726854059515429628462083789195797917299097599280998163271491980491695847652533074581350062002378281151486847007074725867514503529999030803501465309402917063502677633197423795544691752265321758758880159154434272159948273045047891199237055025999095783151923817391180154478732823178346574978910009635590554711359052775838712968248345860976434203506421967738764826216188952693034376787355759149160891392365513419938177008204789680400604217320456247198498502603879134663661234117949183986680596193827210669397730819747777738903958313251998156808741403665488141443619714042322852439473599946030202059278247598537190372775760477834285143301597678982806334801501693558716479742067345395608196488808795895249619239658121934593786834614025948504120847595312731978052344761099128516679562049633846935535339680362883875168017511159115155226912288535301534496303336037772327293219027658906448375609203165808500452307438579004188978976882418478698506441435875974409803416561538232162671040212039606165264863956076976833734200009978937503444084114603979041534158810155090537269608548820027111123184870449901077286967718491376567606679013647009626224462172898456088185146312955815731796839811120920081514072673986520825214281200398928052098363399202612672433195585544835557847257763568279118473201070294284387634265002231637359060148502907330364737248688833030671579476255983745930377271173398744445358007723547383616175727059873577483863348372551167320058006301268963511773770767220665837215098520857434841563726531634096034517900084862124220771217560315542880885077880020410888105602146072886491571876636052842514078206020742085748600437744743628899162145988749126802962455171779585988278582969313431025277306970537031304285495700560256350268654878148622567652421451762344553607076370556056832114937216038773723012246466815307613102073748856724489823909408781417122845941896040273298587047285752035843067599812011264221799896761627094555030964992103774597802043428633056706887103381363571900286315376651566278228890701483659898907479338532611641539574920480162366896520994788900219565069655503903215919299454486445908958053837581135630262067547315917480771462560952072848760209951947678754318123443197191720668196266820159909521510442871126097287827599114289542588663298430763311619657840247591657957122144137108385031530531049567356186346617415469242382876312501278480157855765121434297808923986344624278778948489166888664432144861859300249020901013370363005897042572511967548135886454570363872940153366667781058007813359241249189600772759026303313555604873363781532127909567851234021805393427538240151527028402671289050061039389346996385136279705122635954608864330858396184543112679529680774002181923103305430684206692533030175613268292447025752360506645046775029285300628496065494171786995909403501798416268252043272071361995488178767601446050105556892342294519202086389951420557241727190633491632689419507069133057039483009767129823589480645732628939039565662433525345674579836015359122825414285745443909140078841651629008761171710251541754214011135753421736000879503565311766034749940880490292348938800399676222345386335646120578464751552887182965918202048308271041596778969365655221506975375579560445476412930575011381024735725775978129894326140342879965854432640508975676535829303424794123029970516344394025410498071540120721342645530283072162264474730119861227638188116160184283382580105296447829444775499419381697722511680115373765971904501738888251265212980495536810842231686908185079579973398894260220323762587240551545779617775077782779380807820219735800337289541386553413633162526685359764799992905301429632156185688201298477037185009391185105624390417218254844526140874370181254807821272639699489335605134871546261763856896097981339606637828025750893535118529539153301016348076000039500060236361549916743664316572208345870940757192803862976807495762590714865386417383830130333142926577324594687095084495425385511113914643473683496000794854283209678688363622372728033751976259616889483804648250318143855690710046974415352954902703865624899424137366224338439503447997142598163729339370048160646053597095298448416636408637064089610837631934744545043183572992917991066244605659679051340809289144032647065482757961110186649414900272194099621001997720435334747712334171730316224380192076808239409778864300322881149922233588487885388248783822818369756804616764878787940782536922393000198278274109128274032224142891338801886580349020069006803664621693633187280653252637042584861664934486669875215080515075376134105532341355003329346114947973275752150148697342388013594637254624078019757075088508489371065023004916910220940043888846555885684966635692632830900288196000230583034183540872389643832517099571546575308107424878692964718729498094186046113937525907685834171141666206267656338891462790410717541763965760392227782663423890718725813103254344479149608890193767509811576754712417410781555884884302609368047336667521994345504307989284849028288486514059185485446814713358120947823539429677093148351744422387264932311477699339429011366308803124628640375060779855871207570072143879694856725423638426944479466197929290152555432292423107573479543601874411875896499416458538944496425464740531071058565020384995954060171932866737103267063381958886257799223475189784904415790801462598831427525292471473570355833617738386600603589600134686388222431032906285355526615619164487459966371257956290340836917803911540971673162587785648996020951830351855395217345933179892926883625646393354497363198169499895041306150948830041079650172141803242875213995919759155623584283037463378804178527685053856064967630592606014122494934177631327887074594430120792816564605069492215759083585718374938200017927699750087460146065297033001457333507258491892120312331637641281002217486491409344018370456615224243049982355437904955821272183004642167057377991919659831900941667064150214367382403292706809940217036804087566239501694335422376740455624406376481456306179501739494993210108494089939868069313120073250281735509668112838570025450606120783416001885872960731430140150148296433637027269649121622919713415479964451706538592377119621799427511419586047794262281180578189565812848713819475903162219017815956878665566232807238441261160011974107655736837224399216069991923355656306193031441767143361947128249733659989050276007539659773465112927685683529906060551864215699217105876362880957563451318293628558886526229710759167661023396078293150749986136942768934822381725972235740716686469979514707064220048217246245033558210454999104103485623335291903774440312123004836716529628119838850412547394604270108828450510540880329985783429425805521097522759740852706036787426217694106917600718157128993302117963849151519065692314385255793457963195963172472854589815123339249350391388213498188403698642870809466439220299947816985015943952130541877530276891287248946393013171838212607016722944848540519461017202211328244162707980075422734404885344131456249668242060469076246994056192098930828925235027098974423451774346485941298265209186275464225019780819836379721863396025535955722022631589948896984898236411266793936951941897332745558628688976776665321565875211666175267476879870574535978484716781066895598921942487948702754399887372179418621137179621795169523122153271320407803622032790252355438842498281432531726055854391628362752218475900301180740539805961999523406668683449907963794803573128628650794576085854164492643589434265238434955904428028841146258603517304488238653210598452238265103415200727653033192587298646576242733410318559516951657940640406846925923209240959717336437015405084059915518964089364013210408624252126299896910141797238318226381159101870740133312824649284353833513396488685764076325787010056456824142963535429565105925188004184843606009029034803181354851946648793321888426281120568686870309504297693067021382902841523428197191789579633670016925194905327671853491214860299545666321044331495478620037385349079044092884929901093267329653137342555060931377755659070991960066788472025239795251920942533521308519379213448608570210761539971025077236519192990194211055667532191736859113472302992956882851373761689919477327471781871642592095414382867414299171725807321926214829691430297686857665000935252178598589594720861208928939078819587626447964855571159357356668473839692866190966943016446663294109997247602479561443207182837998992797177072091405204476630783434733698484359241295899664637612130410460706293544959487060945272704824497318782188818936042508294852226890299020691971590827671044805602964793085136310654950146416389880895928762957554636316011988532211745359743034518522669726705852266263503437056677780884889607484653835399527122483264302376840024301768074909817622826955468895551696055233221183086490185674224444729494740637561919812253571203791924675326794689191738315854985825962482843978394001717373951729222809275666972915924364974865221337461947184234793913349616878121465375597173544951962491490503065519503424160082511132971892806235736525665281155252212388820408618800691830436824295086751014140791156732731083732358989575088394786995976778405061767032511100515761788865694423345634835866766746845013128413298578165497614796775270315096538085609815699047257633642707817921628524944023594536311957675266911913230686210826347926996326762549169862800552231928182473897578378176566800469211828632753655589516809533282276029508090445449329652003297308961593542870059448099609918501632795792990545996498283605844015675209895625241188254471933551656830531579964552446907842773178669360833571808545293449020848815037549311349684822061673898778423324441578146282933395681953732200751649250295582237395118195584939285437864212650266792704149749332517192453539867038804016221832613662002099850633591550123728148848797265709694526654846980287989119128244925814271945784852949022247059525655235954177141343160621814887024338186706697604861742844928499797121997274044049382135840076572356395696072538360762031959047905064579690885145919190393830271245937395538411567323694524694254942465497078233398337188050276496567662339155252263824532306849011400689692962477203771367536413843998917290598470842555579359705249914843278893238437619599452885630424428293387667286571105846151533630050885229709642846501795014022840058631086779573785623591908765692371262680554419576633175535084234164746786062819308469863933227913219870501764504746369351359557115983092573713277374084370907054592671008799935967961112223282807434740989682926075548211200018844856926626782286181876594440314793130404810489909950008391423993800722862911754459475418009168659146734551716475423765757267286886327749460555522919201772240005500417486365940638360419210664725333330225731742772343053400716289435125924277696680989380394946122904442369597761313367321961465310736935034914565990970904909630639179876570125717311083485480912973743043424075855123159002911747468063687231023438696277669251557299382205140084502672930796005843670528981124840667085215174400186489261998006412898081898823728827023311602410051877063457070791250324073648889098821010460545750356113963051360027113964413359090255932180450105488808583746336013697364228903669493200516549498620586771843854185006595516266634666212786520397527333647567512498102187980748471504199373014250084283369207627122035220342769640469098450664465980710271393456446267351539492421303357083633041502177676676228280480071349531213007394566427296940316074226881781852476248511321116768460663508117524941948628024728913871258812316017596245427043364569728599753461744240400112760209699782557329367076549743812713634532452148526534775797342450087147240451597551018378121575538955531962005180578668134920060556805513077936209781883278316554840913391667186464458788996905542751562032320531865257320640556822500041952772281303790081272445878455162272000820840293589427111133855091556290539012569471537490005122559578479659861474689352363155952916758052469877748626376630169779957661569828888258236777304229825070365898008461642331980899110262277942213309218301989693906446214132106291557799846039753124016739174223310811066312961360690370710544135792778703690799032764539868064597243178522345872444369409518890638427072096784439870642160649325532931587471008070514087697219424809958165707895257642890370300596805526899904530955044982258184482229623423155293549826436109649210089790606896596770176241977900799276967908474774775954645136602271093271992834811165533383992650524565574977381127035192081225622788207253775060230391392601190326859318634192912732131651722081747811582939514321512936678420471244555823775616640786003879736714018589070373341552963107754777554447462042266142337785020607813316389365155506369540824175858553590240833489436927562976961037341429764767818137412038842701001223414325758579113507653354873479101375496798229741100314470742848740728174396339594854689822108885259662757088724460407320648474087989508211329880223497528376244864868054749000820825845820296309712750475651697649770139241620452438208438026614526640223941316461115941709587588069141399137411673622923064330682107739148272296796377259447074333351692631165071954742403563109570387501124425225614714890620397410274911456771030696668432033705526206532657144913606933617258930255752392775173415120154268771593748649215762569563876819391750679718916229197644364090020377132559273800160134002331927236121365904635465227490491046025860931356282198016874399714975241527504078495110838456326256438427480937949002545756940507258525026189094253649182987825347387394870975512378641341989098598383169930139222519023024585895737060787514162714112310869573491884271565988877601574389449299492198442358211898725136390692026799515722152296254128312502822044857981042667760239601847110554132124877359486026233461575073332548281398324520951334562207972731958884950794444144648990329923992665752508945035425434233660409993088973995878818436983879559373799348332416496567548799402215175756875171600417842261307240250221822865781341114456329595800199055960366753004645528323232210312794606077884231831584663053715434103072240718503436561339210984167473572160422986921713989641368592718638791067270852478566414810062488749546940987761021474806491420491140781437167916559511476886439052957550516961756933102796374024187286875071238888366473647694616233575896738611984572727756267071488171964006666903344488278555899224377838769524128357116325858885661737249999857007198895335527113283712566153863560900561116087791192167065897164051594306428528678313467149131679955016810727100645150026788526183619600496098001026162600350167389432395228395099958061290547521295001707484351564625193198763436987887401014175647289213604882930632572163968123415172907424860443448313912576569190342536324511385673947148711946005610906729582386165896002961958581172919330749500761764638261503319167210134717242853517620237978467188697454596244812701603895185990147477669957936715688621185004940147810567879720756342236889335306362021528847420149741433983395327117934235727472055277043211078072744063620019341031873317298285072071353099088307865224128339249443341089996485260827425175294076400439266352496598784093001487749510575900213226666295484795051185447566610919515175618587032768677488109998477003388177939540231936777905615307708190369577287789668481052784620093777440508221134830637294085500247377711166085527743653983163816400857517237638963558477217293377109487883403337761363523526826225684811550872260038734279692892559127164640467350535489892878274475044037572293512317621081828154398885877371471606434678456164373178055140209343971951816665565317182351816701577019272619266926766644797291348705638867905737220537472345984074531740820493002321388663006534621574168297219193757705007262661768173114524116026220753615574103361210340977004116216851346787050330018023442055687770886790456515371827758977111903421499723239504701731318658340171619460122229920568092092371159282874543518532301402326462585650340950210156571121222609744559836118532384306627193720510408221077095451497928970524835605262925688284892789745575456993129566879425315145976533215584310096044099125498747934063630843658994048211137603490788981313505818262420919301482540914853528638732318575938997652143321156045608781062633959488120644089294620522856458259248918328400017451799076708548244151259883918534265208750077197363391632390419215533870692118195910401053176096992960615901061391317296964210452545870962584854937934106977624344807493425701214502569574251982204226652745155180274770755873575966466276783812122262191898216613979357344567524226619052138444085108756811691915248973810101280778815190856113674100846896402116989834567722568150173343242425087594066403727653317758109733032433147654358680912210195342006151190195438852617321021295664269371344034515056451836100455221118653683720545251456202699037570132648683686930876068196079046532413114381183687943095617256365662068525986001597131967391812935928249696620721858368475727554718633292997675164996652749043911210726965468116965478706688131874606509973621188489499956466875091961196476807568406469968734464528847491988567311198326898355123449562437223876701101772364512529353716704100396283343585531202333058331422476620415084283660306329676576466815530456808830812470988276103361590668233961429244018779191850729758845125360921470300753178953448076322437030585462952842891288556436739708771778218786459496742530585958498489133469659352035731914626441716926045993935841399445869849084089355303600107475309214341783229978492439384254243490335365116998732551669824531019432029094520844095760222480749971918053412634519099084782305597090938588995361731083553767066996007055655147807676091899665250376116830927493680943096037197076279366896731708563882999557275773118498971612336347614828898335086215501628372197680818896845075997267506603721530974132165212518743683308151696059272944862735514367120258528067325006128655088875646204169232817268801999432226500074046764395912405406925691686548293010178173744452720351979537032742159754220445269088599369971012619806849247465472020691287357132134953985002393230240347967080066113804537239481422984217494801715042094466411413636686303445789541329898424016010202096554516133434323590020727771040397308602703325854656049482048423621681196099701768294134152980477867009179799810268983554125035759743675185850644775879808759443030783580019233639044884418036900656370212190228222450651269033944870728494281924892237050734116759652761953307588543645077303364900909643154536976304798979799157505044017507977380962787633716769193232404476254355956758379910706117174510411256127333873918859453308066973638461820017151508693099818421215991350128796142889016500177486623681938882337016167758519365582183639469108593848369082710891400724994114668748675811373147697662100802243389335040934994930124053181267291963033479258355829180080283394848338805362741835213457566649994327493365740176647868093240648172803831487521454229571423073614044253544260675643195603850892448069042296682398078785132221986712691897565020321526096920064825258381149163038788710593813000311842988012871683886621770142591675575548224710358486863028886097124383588266517622802648621347110642153472963532886007156511700576916625249719004759266482852701523509299450428179047843515453534029696772224486006926407795693744967082690593873182547550931870933401342297923714464090322334261657915490542777530518420659740216288934348305412733728059600212980205965168967337700776545599669098061360678655691792047816133451335592380023027842657707950952844051456185435374619929919772221699027857157084993479393079867251335553176137129449556226761026657729570417896538206885211145658776366930991797034329978795859930296613718622644346428497532585059582513155836120471594169126036118124085034710098884218127799834586070950554334632897800537037396378089748961984309921840553660668015382220328988634182653271189441842349827173848831037198691392006153638075975005118891435654687114596033350190239215206357778695043574718225130127037588372456770221299628602053342667195930019581382515904787129938997103765518146986694469427800813720492426885648228666761331600239404718601815490589018228432364938405256517123465301770516766403930402946230256353277897896928629838406528954441386417519394758667054576259429410974860632240214752349067915494432000186029019314593360896366239128212304660899034895066439835749214978942058599744245812477038242215197645992207681156055773356158018779175839586347829854402312122716708419096074870478438337677043834178333890500589564768684305531396180850714874594195481857122335685076857232560645915088054059561607240867514848327476270072536727454399054153552351292467746327465000105791400565054268957605155045392158783447940463497211290653433681385762324957889124129620561511150924951246646885855462050176679484425220967633849070618863355112370942069447703181553265299408446995716082699995303568381783860088562095352573490349714768748492576493680915760685822801993040286638473764497344105625967636259331283670280476354467460145155866451633882121089514546823871337156808222034101765233601983718054538737232414262211768704211640216493206502070324471780042464844996686470361652526594692469241043328559807809366972386340176735217399551672445553881112360796899022120013808004148597592221263600064976131647219276597746767478133976677886153562038351988892048354281562164713270151747300267363080616164300314710503142968181431151867644551826305334129034216796445590814916224535374259456463857832251288409122920041956551335089512519638123127947188882534452256476170900818743261296501182872030375688780347030643944164917623851663064514473849033557424493641770425492605996552455436323273487595903638285821952985548222952878570587225055085484479052160645335673584255605551581089051939578275070420011347377748787024315729597710472067524461763103047566829622805930353374669509894779375603281282195213749087971398862576834165088306990001572606784281706732791796603132528429246861194001285641469275115130507300613910921672477832187408482489531006954328860223547550735103584711446685637962942727713470200099820641338485689073588938947148108923145977958215953092700206655196846221676685931090921693299521281427097417829270884478146966598979017918133768558750063468579610591174146417089139713678217852657845961811527165869585478419057932255295167158797381737159387605845185723626450568063134409149036640351613043010053533759731119697950228631192276772748991052793739931903135968622323898361735901202955639515222004195700602862049953498351754878471875528968501031608372359115212510363018225642069421914309042622351059251691561173636594009123668318663529367329095611407430566159366294046767693060553036326789264918195425258705209019748187269282799525330221266653137950651089019109167857768075624770113353044936100819554056475649335362987071151879422544341896982500326061675869767609389837755010748464081239376228624038254341014137109615364829349756622530868881496491990278773860297401812553972080410328789309058200717367529078612742767062924539831237259300920676763617904217363547638094555518346182031311409953294975313347048504466888813722694481231613238620941379499551667987880680887121525503330015353405905608459337593140370616684981547687469743404147478557512315506901630372459225801816607560278400012918274550753220272864839819834490983408793462742675216708071530490747696672080534519224727205163313319363373406711015166608209895453347633367732220794784305806204228631153394957181220634287675821308939315274768483903503048787464450975245898519880490742860918124577067873449548060754911801835590606067348618567058815347110502445762180423510806833528683515625957997507027888807733967421869186590987127876604438044921059347864566419638726749931890049045112921731128066721536891646404491236086991878834767653836044245267302388387410243145550945440924715852720475265080605822720334639170883661136994514596207765557163920125480716772643466359575981060316336288071930947864123304532754164628418477966032227885076332991942324658659981448840771964183336731960822292801524681818488082991190210150235037574056703866022922964835869014614496348865222459529723185032473525636528417158824970380715628293395074165123786232981598734423261321454626887691208472775282053797647317215166843651361187552307991780100988405037090496803446301120601069608643997358284895088211641331815894553848473073152767574220314127946334813312710755098566064887052159238041877142746483292685323854726979659473482080489962075488235749189386302136630132690795334642213974708166409505042502990942352203710758869464160658784866975612549831319608845617198601025924707290057815902574098059669433773450169970654581500805587718672551506387529754768903801392935288127333941410155034192785422987881069955686088397019911676647555581274291254150996387715155662400418221517793278528799425387987057781476756750051029030925719440754483547460898649412502656926781494142209394640253833223965741288718392484533451046160694168889700250114235825174602188458188745135760025415025747597541964007003396074264132997721401074949942869886455256300706156408653761082609078211485716124972567501300069656175823407386855035830173542928161909876028166890649273870409806078757205540462954674452292542228039681842240433010077188918754483150211066395691800302095154257759923042114089327815633557571124444025933816179734619660775920188092372842949874285992355650737758583736051336312711485275957720083838888945694139694443104545021672297483272632204590862253501145964388408276166178267118982123616358948734886907207452803144362028550722710550278948260095121989074081653084469795280831359951186979620305457938266453133966462161200746364948921395635269226000674897988452609895871582919785824187703594743389523092882085185023456946906800512314491637806634154046960207419445892478483436471219198709229618851510222008882089352778498761804728292276419742852883934133680810722089297824062776045133156081654075282130236012367096040100409553952463289417268611921658082203896612814990933446944784002090030984713933914370062289988660841476327016141182591896366346361519792186164346941562844341545047441340862714081374346250256153330389656968011904258073500204232262196444828078333566803608145682156635678323467504563402938137198090747304944853448763397931069369673217960046369083883371088581038411352844972521272757987099572657960474779901704737723678966243075503161185776886837689739409144173275080253528220076638236317313094505223013710324307968830941582635095512203382744131956211407447788697264970775539065248065274270567731935660375863413342024774787773753536771052622926707842664116770717669330331641732876517974311942584986980253679492379621286796340538151824674769690282603036971402078096611063629937119811616038545507209638647877443293853844981412516994708423556448862484548118708715970803715147970360645461338661013597929626334262222401724439647483674988808851594283174885018442999097342866362274012731422863924812387029445469936584624263380557564649717864008068214762165425717153573095546317734408886429358085760968449353446847768680312940701450509214089598578144874760112616222566009209803243803840618134441564132267471993938288447292824096150241814241396240708374957711308717086231205256005818056824179422892697211522716891103096749662734410211843989244983181217752910806580432323524858484023158846692284647688064492572446986748123707053257106261450547303676014625257237554985670008190963131688956403925904889125909575288608926465030351683852669613607822927423818997010886006683589914310826587204509803999956844094774081180687258534109456280784599726578957824005095610320857327351919968320190802497466261150542657762619818803258865637013742597701462896764404875737379440583560512811965436776609473455622386309915788182325938326088022977315120033512812521025546230059097142295318419964934330473820415907526358581835768685803099358356287034879913521998100109943231762233951964300738203046374621449947061091672430740193250021004182037076675690144323365572866281913901399715916157132490498729638573560454264833014180388224633317177238801633620441650237680383240350778328723166041558561080435553789756441031135409058731563660712002294453828436484915464621773739859483415011558576141591677704163475254300093294192888290012507329261872037975895876386290437204287071503520263265700667079934956553915203061552050244970009071600134798267038565319454487918913189246081129376955501521386034071514223062810955052853686172092719874546669224961005282266401419655195403342027858621954747433837548982554314422912352814985782843395676054462272575084351941824822692672070390217664561123328324191850330562200490014245447038034326090338200308779837149943493577062509841077405842370704123296252776484378078102207375888235162012088805704803736936752850218697847747349928037664786617341128798014051928336499788075931442683699244814376465656826419285227500535234513362867534235286881926039236516043686901462892905706477252497355607755068275912602193324071515577361248519323440845802868964885001496989354795142940716521339337324428549607792169127833395108305675613237824475692285800452072736221820170027737081981264879990367357227114904077090294886312959991736635892105120033951901655707409002366174688521708708231615655774319183783079385189429154092059896577425202964576297866386968135397938540076021891910631543179473337772036117969540215986773423340582665423461483143324367961043995981680382214165771244927462281285827538683087541192278320060191394441674920427196984383551052902530616928280444977350825456675208801428569417790560148564448959698317146709401568382780159195455981782158658808955988862941095143259107860146599063524052982034419741583193723858587718133186398603202534040072348918771615266201721028729868924808781261487320443129268594157923234296759320178807868767496189918146289905274057874516489253707536786934118122643008002056723100854029143544674268842084619205359071937249879289346980136105316971607294320384495066798721940173490237835114268514921221904153779903216344292282908745430679263345945661040492873731278833975165220483859894191020838313116720358283124281485332701585484260411884049904018542782460547082926081456998261702392942003948321937099420053060788467826228798940044098012535659967588041105478124986139886436192422130338722369437772612294362905307816529744649573698782354890610695322038065134134525291878522471442451842456554137448288127823458671328402968948628861689294865663176825100344515465432832368146668142220944760863554847162139208983950523250961441368660961030009936810070116079928314497383074360792334710784151686623615368411815472533920975015036096023143930194502727259091740333236562170890155015709237546305937166244272548450646581171415370515930546186063063256761433793192616032703890462072511813213616515929998622697105300602499394716912823138339143384246989670930375991386370769216580596467222633386563654172045205192452636865940974207142742669806459354605183361579015116059147077817746817905157677668733973308155556155572319527901717890098957496410174859872058646851820704859520873696079989925061288158609515760864783596207345276269919614459011803611013441067372747277681996247618743001734571244975143127003162229065531619259043298929437279867732123050808047642690605498987299849817874613102583593785639753669152131166206657113111865305681544231281724626463728472514163648591192345259784769431994040573090047877077900403136383398381546703311863576585153443424915112703433783862369664140227601095898882276812824951551242254774249940091588237462474575644735268675084269152481855764237357403739267369996736369121596558431910549143450073912043847347627848936861702519403796674985453682470477706641284555072665427949724407769347214454311078918929692555091660028593124418839230761731032521540420361715419886279831763613192602366538710919944814523711662504154162472650821684709376386493812340783067568989636894224603765471162594636194252769065835776732003488266959989583205246072351942395727494841675177959319624499217851918619937643660822629432078529590756819353250605558608178159632857718146617085246899898423791531411062522033807211132274845036590292289050122516909530337830970016978690026774006411850266247553871598701210701537917693962467229512710259478417986176540045007109494672493651049923117944093544817574019683009701202524855992761492065866263770587477768615896418386521037710018231755602282718176926244132732170996365805860642103291740871170500874735631685233474741548293529415310193259262405614805632033305485932127173225671892809907289115993437883979335620093910323411561153188013406201395086622157806468463019128331712088215619257401546673580932326653371180422858864074114047508198134476069219723433791491687532775296084186816401188971725630772119089861393046002235444422760123743630870881697670210093965221388833613245261780180293892794341399715889521814529185046563809246438438502033657196736457012285992309065988817742435310389373507679288239497974174767739463572475620313542622912288294047618556900117732976755401130115408657555293429983994734814349762299645947073313601615042035589197918809050440519133772777540456270638871437246249006981001055972336531740577705305254040230162985010362622592355300343529345417432721259520457209345037785410217767962753651787597959812273473454781596255231330065325963555283699533261258519985853312762857007985354903671966096464179797079318103500418424966441951949493191617945415680816145597161484931647635916906953535368526094048740139226018507105708217938383383916254985080683259594562161850907036031902500419521750728275030557630671441691982330721597847016872177965193806149594476740449045710393477516818854906085514404502381723479725251823686115976917230020647603839104185830662007133884313233134357487262066989423008791330778366400273745816396967658500913043010341646306466758028925179886098064930853870543901974037086112438293142883485763543519483038661404918908979844456806245324761505951656162328862453000758292385557186748276965206079394543537752644505101750660276804941673952090448615188322563879336021843952404166625823787090634005572276372160249779162867229353996733343698045819846784287363702319534328975563641652557805593549027593480121235846840993008223761260818798180317795946534155726467616573579440586173385263938211576317275074220923947797408019970257566403538073576915847081794243411854527545894288258770746847432630268728119997298429707264360437332890315892929481854193462644026370050881023456049319361198111305291290796362663237676610380374037020985878534309407283622224623878457904590235239305351860275962609284895944211556027812260473905125025970108827120134918259141075580009082952195618099854665062918929002232249993328723743255214821761264653419135931661778194497030120710248266253655697879507403476140224602095939102837259610933479806675345581843839659914503988485219785591072308525078701140131557093489639189215384850993758367448712473953100860575289488047992668649872871534102575671931744787668528854353683649482752008611190620263386593199510744378327488417183169302192358587165090587365992396154558270343555757262554509932757204367997715164224644948210798183901792210238046319141217698087612049488422677410941859269876636166044936493914694512674130377361218304463941867322631160742575639392749074679360672968522159350599577340645370865665882305326999999584341641705571730340765879439710026963119841178863740727781732763697196403413779048610757665333981793814628190477701832736181259340132065563505725593938283863493048245223195928401460032175565917880871882087810386118539169528733507295123788527131105237171583176134171304331367987854395389129908690032547701326579258705248245795571613142924304940148380464377496966578141566368776351692291291201957501413980770252380920924554137219916684880144434107042745379029319116198423682352088932014770254213666123445637348158391907492830689131587191878705233188585874368913933715494173002836211705697635177542423767075242055747598481846776923911847969038127174333115441392157198906144052953286060176519793625233279835266807153078786539582748089768730055384528246095995441223162607248537301238554316059384543548601486857327459805770081127918172656963166474161552498481972971161697309890988489058305727689539479405203982560483683473671854140780771677118387546641473400012649314637269513806358804587556603837604179779488587665148481044979074662700201690021732187459335938875230885837821259912209835725993155913850900157058190566234346611773909809717647721912719203396576250566968562473060718748050517873878705774676778202776903072622409278979594602063557386525020942000869827217811441589000290151007998259389961189114087580061239325865621441605541243754401855646783588591913308165786105581674427579461880872174350154202666452374190899729273577465503745549301613592691598783760624556200759953863160845005075812313075099122466525683935320182175801428377111335504670754913694224518577772185246223299347724818411712459061761652560331879966953563694112839465607013551148559352518882506193216191644799545396185089970456085913903940428495346735630580687333202173319305454136126128698421639709107151562703342214535220603102686556792117618099651209883686821819197929751394531424042967898452352281996759546062764687339899866270391899171666813838654585220535360873763125317231052789126236260098674339367938799615739659518425837583831105222709122521958188099394543746589669456360966490699428574522014909149494605777987601127475222745605601281959627358013324020987721632128269233762013565631589337494457881136388744959030105700057746260414451797237215580351974174063571199200264906132304908034754100330874052557283392370144500061511978303563984438308861183934390479106504035063694749237775399010055987653158110968836694556334054025578121866160513217030824852616078294956937523848863530302885644013135001650856409004207429167895788957413083187106982089614948933684802315559845674234836942819054709117881777685578639266178188335862509652517841766933408809851806227608605678909534907289324726440360255565058569369581339724706772462591513376791133938281558267484195456158575271212954280981524503355436353323824454631233097866827156746548722690659053938259986930732801486616691888010841772088999957792231419977661160277570486750391478539424047316792914439337970526597364318360272197179602747060855484533697516837631409967684006466704821229334999632167591902233811448657208720370998022644327730467792445267816900641777020990771200526919749287896313875007415839321166245077615884163517256674214797221619666366164851670419151551881286399731440974987978865364437767655766025494423498157726663135835994967922191994148924336285449683617007818712535476511762918819680836069050075950902512861189096743779896288690592989577240282442494269725217070060150641027666656007168973979712723424056730607207082371082520375658423267785271700254086570803019834964954555441195899867385093617930621256628459254150163325637405619671336480071523845911319915337325847895320132035673528052731300185871534445717837290604316182140823409856783551823565557655331188363359952677140604370906667089612177170023132064038270763136231439915563620619832517626084606859353760949451888563059677129530144716479098236398974039947652400753488489319283173415201377611189937465178866615037194683120606294955844640873755693440109081957937474593800612435893988452137449706851391253732774784455493359093655482426334920773404100651624551622710526407051983242969390869235176864056433763422210308148132938212162579215503576621374235700710431070157882788390921710659063667477701037053984383433202608217678282000824372083318358597219438341702964039990753913800300003969062751370173176351586708771007267380390926653933728986946185575067728504886728380587361366905501674336934218643226708869365252259512316233702093285703740296866186719541384692444504887339673360342305809098631039810020838739165468790682640726095808437845692232850805429812888838257264665569064237107796699985354145687078141885421763865182679241076181531727303006548890003319618096958625958408581667395604154104901976997192377522182524181280226911047283048387766446185387831121548440661454129549822506661743147141415032479338163397496986969103499531243214850368632951014420739393112581612365411179556136983235193754367837170425406497115778590296687338873634599760764773199671600944666571475163561440539597461051294376828245073383574250860577480315769387360486607881877713160605137664871643255509502845937932290287384983051010692684260080052260892809696965620605133723418954152985316648551739505799539185296115069494321543300999930918838344060278727527764868701756543860881144419541041898523976989804185503318139288236615997531261457734639450884028774251898540362289214330827883797747327789610242211537452697833857982341474267373611573503628186425135994117937997662801570617161751914450380995263178730078135266963240151833439909153500147324261831711644850655493391977260539008669533622534764714905284425642798889170337051537707048024769570904717122632135042423836017910225198160191249160655509371081514254151247875635646112669540832234408624545690773008851204028658280187497081928424950834724555926798389688658541770298881465060754097600591462639835127085602232588238237316637600474607532573044418897284178924045488160048358210744144532047088301133114218061961679486658250989031393624287293597737216299805053289205478591172580110207305788449043910341101873751298916758171276932453776643003792451100856353922972851097841564862045479162902717644617096394909447570631614194271749146609407365523439335651948215203092753349565520516158059477553476354554020136027704634756939546844581400772677349034766175757729146191540691583107393151630522013071471452840556161590779127735462215371884309838343189349034345213220546465911288466998287047373008100712385649809807630583762545654362478996723137376209330704154537370722117126862568514945769057653931322002680299453173734054182201110668946451572431709330277192112559561142135260783293644335254320980628147423184983258287300122094189451507082621049659042107342880980231564755364938716859417446379405053780340310717838901275898287921553866025013866312417453489563194318138773957955272585664197287574170708718230522578338922168220620195387412335379266410160160938114676321077842577230577216079547930730560124713078639719364909855322403622853058248238158439857420466761818053673486085276491292091166269928976217410110468459220223918255177793153414515702628170607058475393754352037864488603783287949503727249973613749058978663034826032517903658089717575379795537354973712342715306460796215739483014811801852500253927059023892145087808625541603359908507249867361529394423152258677152817649139039507501168520586465610165395404065537394708316361715656078693698600598909814782752745836323952086281864667400511671009086966026401349082906881420295200066532130737178278513289520351857463985605073960674121146098334741429617466397582234760749432588819871944882543364842543982544221689894048991642412137311749201278530371646579028022256479014413594132382394906787410504650132507717347926793996965513323690398904984361219600000698255171570448804535085305448248592809530481746922411543829118679440632973357944003658015265617760836309070039952771836350335727496901151330335702883235635189300181493294290289487301992330643278860338906492356757313639543981416778160276397035448135305592062823174341561959556399201048018346032478100803599180924972747313761940741075098884751912659617827766764392792360111382640648183399832974894859830716134354358162545518920172129734489215068260141991913683014152367115858232670472429434291809720549003586502024513295879415731852478873721056852990419513120872297059089668718543344245277333270460723021530364082167609111876625950598625295399718188253805161333287092167713634900481559374190892945102805895252593905012018253801411929636111062762261666865154841625732584976859111751278411653735959740468453876465623987194536678923907254362617197450313382317081171288774736881659642429156168332676806244397280171923416650299367272778915738467070311374203432163831112320189922857855571874229291813095533783174183747613937957253201919476427218512800289698712344179149783494131707194602365664322625871685464974879938508044012922614521689657082799088862187062453078389786891105092202318928330422683806151970009694467159398317075542590213989063530519489520700740920548769541446711491354497129321920026781125469134394915945950917437199758443174263753332177666624459738223986653341750557384265573652644397983425601659266487409349553845422336817332994708949224315498681284606007449383508950228733454841117848693823037636076098498152376525937714367664936422962621208118919885378612809643192667301179960765396466755337168924879861699089361100034438755207450076451884451550972873398661220263471358514172642539438760365288492290428726816399160749369672323774193699255410006171368920416801274384265986483666032431545982733768245285039499494221860521357500574724624742400543003939846392413038674623047685468487484518310073624736474693931884718839804270183022861224466654627970192038011600126908468876064899560041530432270277626320056735070354127479978261885794626069390301190446575963837261919417551547863020544385552703340697174359392482674116858804552243762159331005615989471529930496460605944747155878644781854202012741162991673991173633591202808257555659956666709838489889512367372937409605093043116178873880404477441486898273901281278360926143186251822370699348124968917034548565042636338430002710996865062009962335645569476462023658983930196762191952914678594195814664346867409841563535312659576161793513549700259882366642403945268774695475863271370186778849850198341803695508212376060250859512650279674543452785921386161569786990529149902837381770101514025900982039132939226110700242985273801783984811517468267333275547235853701050742555816180274331143953284166367387841805322793368945881054997657238346838063517713626672393999409048084465176176269833605007858731507295731129965277388626315326381397262610731235188209814864041231152866405254346995141867772378733782045688978007279178057480437590806585448569021705460866028028857860398356603300676724777918032062762940357419594719968655752705887574519202982080499128044341091699273358540661650095595553885648734898192754959875186273854969889706209008884231240608758634651298326573380347589315993020425644680283272594685957877604176265949964878618978192245425468039328393021186004058893843422420566152559295340804260331025280781033208996599642431347890636135599436535813715306123292101521257351477738353812474675659548612765399161528469371060767131636123435703094623372198053424266002442063621276501920048675997018771425602273763085484860724592287991486471214194452309140299621239803802215645540157117096470491613207007183736199332098515984546820881183767503285902448873921838370653698406531414380478028889970200800850645264392119086952034377617128113835294655185129761204349852788282948131362584734127492187479611495835782881641349692706033532740341082683096628189087584575837453773414917943260684359519163146705715514934114603173292455589830159963430552230331786625798069713243082638755743922180571499058000369641579525030845671207337754422239067373204098435135207728704164189080500366480717877029436966276877283210697500347209373600457231648107166563139224547436672164143855308511840500613900619110529752362117758218826570671769738297955750592357702938312456043636878943636939869872336448698192569146396408471910914063915882030077901620502342312734585167959932469678880365915379321385409131840775162672945435717338896935086306482724247763749577624098250310936001990228355912706635823164334186575573181601579841729771820712615735448350531808042997342081453535794235494517715376139143825840357731918191411691387568756665958242517711296950028659541397344990960357475204438598788142232814460493311063356094571279763724220194125012665306150387098535487636886969863671339348996877928171224573113768361939044526830737808406502075905534889823782046187625186305191283101450681225577984269442261878727912884498166323769086864129416477556464579971808668437938168497231655279546271076570248090303862556097250412539252919381865759050642487759371776167360453898659575221665279743128192779651116333237182039308995535422469815704153109214742400382587105732238455580159491298468516177929996964607557077895489477621330666563697696965316440575630452308057204977627223455820772314657262076150775761184489434540577138311935984607215288934340315441597808808898271323022594218103621926928392996689758081995883767860870943851929448647862067144497795239920963383763298462889256808575008536072623785287163301339437263397732966076330803337506245914339030396682309685570840531996256625430996637713620607292624097111516553377065925658329783924482259930908705948045885263406181327847265257453382629540614455853440314193638302775436578869419662007365947473695745175727553830837190632259946654866335559027665475507425975820085031097189055944549022770319603622342351986552139820415249207768261849295283646615414684089281067389125090861781145797176077222818891395366983094865576823958248126929037434591608704903518189299769451773270830881861840539803162127491631712865627693412508968609427380117711511667187824686205955475702519539869562665460401697610706245485798674709242849896321176232475707499771426571090141581991141057576665662577868850546220591966621593953300694116584402852534735242157070201287918897716871700860705135898525560457263084342869918355611339558829047457040563680022255974372190629424193364904889376874261541557542372585325576801323191987499760539951193623580933119389629833669670074789091039248098995010732537582243548923983693061840121196542968625044042235290903695838304130247885911458332227508578991378667311185333237624947074308352168438684318694332126371469220638829403953927967760055345387924645687574280306470667076238754543984553610328213834272814192394188837597395982098221887281851346188437980183757744914087043603937065149374525017874693451323209152603543717472454596123756972706525759623386047144076129101089782802246545713793094221634698055597447649310635045478145000648714108107935349153421130037091914768376097034296765990363719393127691745263899933239543164622140662649490677491851111637107536594688993249707119684447580251096890887187942198173313927642709369693827249313333241372680778611684711830738147398959470070549881081128932325393704120117708359018645639163597922631121336886585773228049474335055123835707883679542320229834786315435715758801522429709781018894807706043285017604484009727073821042876540687416837704518415111225990745679895593653463711318071678739140924647264583562328921195163303509420139073500707822160376004878555970415915983560657682735805281604771591316670838651983267473662889326161293003031591014608095430628718270687024582334611027483983360894209384540251761096431524205629363846018280345962041593868546508038921886212404500078631392386127673169766367894378848611065616382283190326138735072174250727466738768522384160849567497944451180029363882846777410136311720114997528056212176413150698362280280162418787747024104104992760679150922449977644943139480752290454102021102801984181971412050000495602717957711927088848519050509040258346474975180006555763800046696523996684114080816117457305627823384545555720937627805244066522553546195960020450050792733583391739251223787547674653913729447541433638690849109152308934004482683902994584184517517655805360504280701523883466969818949735607825076239999120018247607292275191097744845639560594235914435262673126876606894687711697849712558746603079765047939466218930300798059999557441473704426295878899602692882383673543633135250008294593577390137241415623460690919406746442316555821613567719628379482106292912018143455912394306228717574773693379888355679825238315075890131612492197229770855920768411474873347289817271982484122923291164359011245580934230644683847399807943806219630093239204674483172629206111635328131547780305986023899386519792112825000843083972187739524985260370997229810433207910219233026519221986494927479221328389542309507142257880272807510986223218461649021778488211437469257067899234589467212185040229419201394176281629167820057228566020023165261028698375956012030484630116560671729686439027145671720071253268161562122524433456254972670985783743275362426659407735346146044437721831442357462255737518961077054809799559537204332576144364369631398417604108900601958066464502646963151626826336662579643332024587625667007277230442482752036623229658201060027980204707274339564023173104587217200617224510598234103562821256988586187351818753810168991353062099003903090124510557747473640852916852366962299872487932157094068347271480141000258804319652231929025584717372696115119009396109508136583410387725296869943285914893091813353351409760150032603275606513500105539003615841918532702759934001018623328073616110634809446284364451231105530580524504968581780215651357451282234348991347692574830304111588088266048503614060052626465099636408120549911211422126196729487573960077030718268655568131579049836283123200358156791935357286222913549131581518693375752110200121162660433433617165366926868013335762404957527406944744861769399490238820706769568351479945170920591156685269886428789045978526077912047306278759769631473558733300429760471406970634338837031101029061690436325097356550294462062939561109315199551505648892056902846298982158512469877039946599165164266517165849526045866996182646995351464583036922865103128873170855008185078962690509999249775813837893087635834712414825336782361385347497743865114722048756322342480877736456560387530094972423536546572514915663334678016539646016341403909791695084425915195288666588666761968432684882347732441446174809172080123484988494564750480171261899451630347794663762510708548790108056670921633270987668680095862347176944157154753609288382512199402430239043752941028660934178110693647224715930814774516350929244128618340753398964404373989073064508167337270058779730591000238576758126729117864260564551912411287860662249019901041636530189115233176420646511132189904365911328281047028892127417700761017278128005020433326381645305638061554722673312395288922544529674674398877923271128027540289035552525950667992865856357445109346274737276794277429568188901547296179687248129638351955872844874159789813523820856654873593412628675358828951181527392170730104371881045220633204258191837906176157925461860306232299825333790371261848817593667196464597430780215458063604082643779209427474575464432146997372223415090274073872888996786419072054609082906460632163090524851639848618336178594885723627105321414366845321466006298902753109910289448344924575929078158689701868738864550315341171061560021756220670010653708021814266403745859249277756962271934440038617908169167518135861032566150402644055026365526644637212661240292258941640829644033136654596725046826449360392234025750605420617533627982259912765811715239225434619084555344824507260748931714435563858264613908308162006551698094815144149900179268940582411179776521026143815106800906257328767493992142207852580209872427689212226267636920678413967101657154979750677315624774385712322289073298123607031419305356388521490580334756447881601408313579953907365444833567469490114232687238602228469454645688771996635209558646793470032697020439273527941094197643835628121684875308839388204297516920221921732255951468867627126044356224591051589684478713172548935928622220335554500150737145943961590587360948676272597184994911739148783263096133335962703779014120352412892240805835955270788143073336013473383805331602672519632251622040646339274517950829230804014133462177900824853146353656721619086860899731292238518132673463990096961851158957824891241282363623820982740394715021228513299528299685978009436197187145981358332366958813063503070776176198605478683325542342537447890502990573508979849340788236434218735959417330287366249125075753095715394355381173762545525496840073603741128529997122367047970736924429797040299628577639604912780648396501808793394585909417530440966284306078650324435321393156570687317960010254584995642003032135177619499147088781018750809088683612409679282729479306750469816186735629306089039810551798134260594721368306196963916387719037484851760353198446885659938641471024092970926726909044826911994785483153491244630589418972586023606679491176868909243702850465418272397522751396890882638288449176246157403484487955113862934549593037264999419244918100606962098470461792274531790595975473435694997505552104747004000068202901328543396834091522173535380698323754884347387637033267918375973522532605254119574624409377127769887898798595276032241175000339735578207780930186924845846840412607713537909898112897778509884057226479203655657595163226080246052287065599047133428957319471661854255301744151748847209893897763621453269964471268540756435432455149958241665182720263058335157204867340207918346453005365861497936354634927308263101544934364607124181630822850608613936099466773131163952779304139149662017541832738544079929366913490475022237096627005127909905569830584853823529891238984912471289980590658368066257115069842568891601296957784898976152089867876377405530223768892150732472661334035372569957671438084937673484090894397635715918073435726939224820088025442933792770795447903974995340307362364337537416986468683361686814592658973070027329107373015337018760265350745786147760624278932965001312263286241968002756196196424000046632418390131047101233435708083182421441124247874015578833578457097381516411836046858991826391241946496794575201905142512290983014036258406877674296237853619773001831591385445731882958011740741604110779138132939008935578456744701409001645132541593611281494775744382755913766349301529911250314303111541561735957210286766978180650147754678732519633941466324352949804329052580957677361702719626742773077703657360397913521799068808673197914719573273420535097359907660549360686174927456726247565282092487713607075295139701273291517990782153297719879608188208378434635133054273058529360840915496338570197148347328443450683276336405168889735848726056368907085813521842384809680599431145855205903912877747332500032793518182836877292685373720178096322356973437559146905190529540454670643421995368680817787560969903069176373823493248014262124597333942269720212568435886122036907926727532505160929345644141247915422200642102248131243030967109651638701336758592287980464368962024774263020642158411225943368024053043230465326516160254234454114737176299832312948423038708234213452657123875928653412685195298467667235610164970927123615297992418340949620044039121443591990776243603307188553195429824118688832605350611980396285892528510376062927013798693629385696204950510963116251342918152898725953615008296578533714344329685935996991011514962620822055145388146393072918899592223602706019990527388691343593045434833063046325804307533889041721194005135520214314452498715244473154233841721702915414887441960486662147906612238248275725837766297857134710617259083554851361855097780099469324031888610116222667828479949265226971858377229748539002325385557690895270942314363266523858614159544812792488586787590695614460114893650439110951836112077953977039712748325384861055134675435568984771688378102988609861082586227960747835278161687907213279866908376533094550904714863965116464392513293212991001175895020136129923975160568934937055633326311710493926953251443875661754555590310623000238740067704603475459720152962800980425291409575790395193526608870252545614711289300534085873986001931065925978773745231198860057442454392309985555158303839327020564073305371205706980236567655084545501100734988516393073697267965413912886728885610734656960445558438614079528519903048886114348351540130508089899219868146948173803551542528748378853264554430147842068411227231524921712886490810768775996023259394148204863424613834153507509816417327050737875440075994862751109237919881244454730151951724670118600018401448029986232271452968375718265170547366282777065749353866993674781685155678108138293477939233638355741073019205947768213715519819883304433818818803617421524666534444606287319785959412057050989633171154763233228358973965531087391117180527873160048246214365524269519117437600223067770108234103443639257533445147379031907755750297583037317605856069149400010095495628979900643124923157099552045280188351998896411153376376575392196916390514088941865942555487813528438960286682784762216393915163094535517668297709355109790788761504306540352786247382110553172892902955196888026699822280448829369464271790218859150569492602000636589950053561484436497803650834883662707480090564912633597801480835691195411803453774217133012848401917147820080833715525502913409728628505085384591756720941592115159506266955927533265040132161191321692461539652519688076243104054427489257784205663417691249218153331769464639670082160271773377023603595969194190152451894906754170705243771263288132708065203298972828650050685910072055984593766447732218281003836610234092035318535931301672075401152818846299364345568838981044390081440605810499577652254069704530386587529288035556019886542720554428762079127166819760834464313875371384928670474477309182357052378905387664507527381001799722573026172205521912994308388363776386052735283272324749433803642059300052173558179465858791993958763285770265126661513921010899871897168492231383655912770729359213621684780629382181405131878135672185957646186098707043499560207944731728565247338405945707012969244377398954014635658294526590798777173014126298671397568523283415767668208613996632990800780225757860202068383472868469320184242203393966817157481975389438187476793119636966326015760177457658826025956063242915275641313740643179449182506877948753737244970881370045491864977447622433836048237796346773909261605964555210835565918809649606593114617601197342792095787530872620449555443861530673196933866671588329734688603518083287970811728901504405278041180195659231212507545884503015752033365278722511330700756711380579285411831254948156931233271683252748246532695628335681882854060496864098208390366930355196237803594946207029430514123391424966568964980253442731282542453215236694305116064683697020631838606738689658938647176272732037597140206618920512157820247989320497085996130871966404412889614538530135733450735379673888797260806784943761232970886089531885205242487268240236949914437224888305978343270468887593660202852524276792873590911391334280998394378373139233536998020377826263529733155289213838580780805509370932359159733437007020859622341259090651910874985382160689522444926027108837644640048187340414997945503020807319097830301328200772798049681797580539967841052636588572886079144982776891244520662640887603253810454586653919779651961988689921226681085112396275762048940028452194012516393887689595205001371710604052462720805342870672437693030078182158371275354430935773762492353273883067914417530761652887856812964972883020110562885938565820346087863236202813613606996276320996551688078663994468015176182270547233555399566366506045387380312186842836464318386228335920307143550974273828552080317667243982346438277042219574966965619927712363073466512792657497686642532415399177046083591771864314739498957095353332551925794882521219684447175463588298067916277716518447611289433202328891521650240962458180321641345549233755845266161249993805078308599619253695196849225651663576903584832103108225605039237979580337388769231894530454314122811838648195392569986182588173619144013249858091234933344697935936195022086901741582886209805941246655314719888006663328248855571524636660352478040893142656989364693773962358847375061616120251456129711153055096066649014123925276378401494764490288111429144689971999520747824713343026887138435834509662892667051910975878794904889875381961512426347829680915674941610872314260351483345232880949495302864455306029930506581006267364234249354745599766579208287040028375850708761963970715162550590466246428644911355671743359852137949186030855914129393620993569382036003226113679160744460083090319497039186473845757774128863618237862024490310011518487191182810332589838510864082134685123115590129962460429911232679413466030075568561765366961500250297932372676784964419392813653358554473428063736987149859061680892658288597274524870811212630885092627915265969483544082839106798027226540515660990241985669602244452839003327781996122395266256780790298270933723550769737585666242907376078598216946069662044241795411621214255820888381545619210332520549162424793015523964144574131340779864279301339562447076373100604170829598579201037109901307642524488672473497532630859123051796948491776836130883252048695701799904646475434411388127882023012549708882679800590112776982092033077319132724144746897891059285242036880263074543000648332515802262877274068127000264557622399369921519531641720258480415570454976143881471218850025802784865455247621796550056572431066625659981213763710804432366286989266246552347241452267352399449161473788078424072046266382128514055843182948568782043249650693025906994192571787070053940165671865092117624515540236161226672395455987579169476266275119416766276187600999249305381308295854377316642672644567944661555944523745181228616534462379626705108793329764900753153319947028385950660729830550993886614052519687851308632008533259502870547471815226775151968366098572913262099545332067259608542704671781755171039623931093752803941562926009177900135392491001392394843360086228381457537946429305974172254484829443022454611855810316068996223809486460938474683695549068584321132756334939870927877307208185260433274093201325932357527076376857610946176654117984893070580395154023918593730081924027612029584536751743766788414153554799946695518915127076158680715049324731539149121104453453345221466612407104415033292506421943855257578157119883371785022700901630149013619306547600738804240752809449895689514989382112096646824342644770900598252292008833713131559412726913006397406812140622954532962552954690916928439475979566777835225809116690932458495336730029335080936320386052188976262487680708138161448202664092055446115260333390229921163146059419847648899315684240480680980046820417578910849940058020506036530067365453586014819305891507551776376123023535085071877616676440182467211798974992204695972265147920664670102450167990547808629019378713511246230967809559152390789052416010824416038254545662655918618640933267513765998923014310049551357683863599997323850075763998698471080439599591504261130344374149567575613744472017400035946663465209801055521536546835750225105169076257016048724599204798802995531046143085847960413631839962656123702074908202529740267968759865273087898192754141035401349196023309001774191692228952437329578549064177166392938584543814424468600552533432933819826420220346002005487484251545623018718475197135075558335228110427796868979011250222536556096534835845022135661862922525748642198592807407488140953307518735623090849325403227253202444334036258630633131281964590028034670776946060575794837467908093722440368124482980372147075314315345247529420829225554376440655095974143497106084469709650378397640320637662416852826826101781339100670521226679754728941511685361175433115924554383217246835251684537243730958246046463815062186503191126282958840365100685777554793260340429581484780914677730730431996991061610761495345243201652797348241769524904174379564067442166070756647223587003207846874269372041183656450889009081073580710604720763364277987179551667349626174264280047519362694414532077645688259224022911697978293866621028129292215106350603237756764128928932517346768301552299233530970681379637696098623965933663840859896561553782067667838563193425412297120805591577245403758812668817466083795047834613612749889832584717567246061180858475621119561716464909718406485797254992303306914523392871804392983809499144450002657549931326050790554222893828225473537343549918209640070742977640722110686110431980515228934254460827029307552764311744432531865578382098839769741629947287464667979561495755720001026105363980994996731293608472546622305405522567381603669813868843962773514528973959037916926955714941488478856304174001661566038259831340563520259208484073554146181167564665547987529062175437902627972524922845344329664955762780135160076318399974804873112850480217777668427995593707645030480450942285070546632828395807887958069654848925605790889070487311591470842081948614256199078655936861464106096682647875167857139856324822303598421469234518497863107866021866846477625605714570911075357026065277472881628168286830580416257561121682330418682976563787502220136962634411131525120879188549162925369228918324185354262777259964974542973826116889308599179908671128402585664105086597574430719197585216126875031539584846173299154518751025669778676224685696934019155235083658309386020573417654038588000203223315626404403758832610584856492423624766782826412588414442857980385029681204080979633628442452494079275184710661526058936027426372323036246257643765764522318545619543211872241161098791128765765583871966466666120757427867297401070172350467366079698726867839654546786821302465312529156337852912073810535743809713736513060496057291809079063384139463367636731025651022118037863115073668455542445345585686121019627379311732179829570436991120794593000612045217890491399086214724832477399169998371563470443684582000040755039453619324759918767154652222025534592145216775505084911381219884821554129099178405358787745129443157666622485516754946205690729844648139017110220493643666764057182216096805839276427483278883758359903327793029710344819746869945930252038357727154777843725578899888578296783393062533294587638400410720104822115582537635353057968143499571325604663458283738018819786617988548846913501549898992957846209002927797144584014763922669186044499932885789954318836483913576175659510215870583007021100211911329799417742724028936513038140622005322207959758005878873429450314488830910449448711531603002675961553888010613327584464280094093305029342159204597015422170522988876732230313117920425199256215845119165736401590265624517694630590068514500742503239995204352067493192923398282300361372601811353391952447065388890668713875106942413626354067936076112491777077282335651072142192867743674617418569927981420288785419767972884011990391772001026673064513169561689751942798325947229407373358981352516235383330466148750697590344347906547406148474608236961601927836640700903736732339884139863631028668005459808680601072075800033510923657183712053960510513010331166570756417262405168437134574169365155125580765032943698408764858046458323368844999138742141855722765964778972791081718558013895888806140598490316290372822842427834839267221435297766733144563394443622421270350481347869717719565004353283725397863894954342793486936825496096367310663932875049441735006965995029130166694943614680076804856095415155146012642243531989767051165767168060823569421681429498129214535180179371644515870645326759960985701018595456040061680422930414656834829483755930675552968783996463060214073933870652970834388198932392321855413315429000882837322808865975317379382578996697800364341670722103485905340581075259020625181355396756649545385384677468715793199249628127255697049397161467038093510410062104194120328114038787248502040586515752987839332943720414835907145839493659802968606911953613361525623422886657286303129504206946436399327456213160650300415218652426610713047191505908177407568740546812817870690828458406287632495294186110855098365588458028289686020302161704748850105532321002016144580084057285480668371279583914338353119875150096981071884381067760272706832012666583386507502165566249601496150198097361143630968400991952328635101926504317993202505798522115362341457544822945766711602376123302399965622176802472391004942582818869972751406044206715469791915054960924541215012642889694409372179838074131457029359776292862059458619611754326716714545259316962863275419084265370013712531846027451647948478994859488251804000641557309747299259480452456936401882252872669497796823179010050729885257514903092194855656977203048480289507864246197049277000675560852283696159510256933794268296366658198704387640061153591982871502010882452190536622356544242405569601270233497681784726150473329178238492556178151058303061229304947956935627566892879606633850949503391602048681648327849935068632524088037626885016069746990034448052846838427172903013179043924070189406873106211469611765183842123382727072930992351579587017428185969684307979493279084815427117493340372640942899135879132062889290718117100501734932774804225198892626647946212985765935248352555610949856021713206436395339111529539006996770672942053231372823168604225741442405283232050167800744925975860302376815556034889502600707710856296668056634962779175206514443501460433130170123574540568664878347589834179564046373055455016210141741040777964825525985893171526093597482723633795147602444988622192899483989605167677918449400355490975925889625903478258056867767595211944038857874334933967665821154341774121259089469809744182743589475151442271239100234558898491597035677544155136597221953702925975091101439462664720416132204099552510790610223479686153984776426063328359258143997915249064245801005555585147117141974019733952230221903405141935694306713545599198160927923343909327403677862852727205640140438987087503694184722992120015919089435607135627362864324205630515008518525760840152393889384211094001333456776043749380805484796969650702604435392779420117878049763872503183529747628050325601314714107125734512933874600299240922841242840155892142978072852538558380618416655433625038837680465587249913366605828575635612793272436940233308165487678965166692369983186259070659033105164002285001132797755610688611594660075402473949799252221072736354301034437758705793386441929001961988414916337105763091345945744729818391311711836123508633009236129863657771951271142750138235711123406767744136912414883228969228545406347023288856982058343441937840949504736832775462508966259412830840507960255840714587280967491339167314180295739506013608002481810859264534094583479583200699413561829648052284072688029382780221839747505527012452937092448217527842078882794725997425857365777052875171001711190920626434455224250323134262849299747200344047239853063786786724313217757225543629042582030005784530750865692683710494592384877613662600546104855181015650405456205196201149694894084920496971176385273407114494939673218307567728687530588568392633853433009227942458744780595017875988218133706506473964795449494089120790604940307348412522125810324853818937617934940768995289962003176867387947929387036232412112912245457517395962646496011038137972498323060325514112742898060160952050505998071667680000084588926417041974836528969181078663696142466065176431124937970874143389698807792107951427573153763525177113323249074371189631203472720172463144753313751604847263336443976058557633449521209968422994840240138904083815386392687083127446873679067050039921393718483496530150482861028879766600830331317077946318816901975754387889857919954789151034282502506239263374980253675785198609477312625346645344515579816375832267864994233526151193373947985697614915811468001204436605705283077477816119409762383041925825023017054492827785142251217228056129739853439339290343822853274385509975572846670909842973541015207724931876168879590718739424219995795569767909624203673652378975862990298332230302164073704405782042625620127415252823434384300795393702640101113392106841610409018624515242329529599987614163451695264508943851569173861318695100871608129746508362596919766239724052475011835847916364414332978788899379619700494818514608468414283910358916757308961094676160889536309390853194556968112134227861796811161176638334954433615771124966516306014867090356948396030690592645622664158546969851131367983811194917499160786270393625006146476540663901512210412790212749777464371489878413876936915628626372318216312889994132834383051114976138925198907670103594983730594372000394929017466388169844937653864984834791868502855278203055653603455430589987717098449268543712187167181019637199082040887386824608213979068852764156088430955725096184156676014083908388057424968481174045163163994414250535883183703618790457200373003825927573574030467058606320062043774665619502499676007423638171508952874512132520782182720695574454090441955414753177316657141327580433008831774944285417664542325734669241538756005209778865401122143441763426665454602449540857256700662593899622158500489594010451664623968001413195836855633474399906412872990679710280237863685152557376008968102433826572788698383099597375228911260189283930819016862447412530865601518907256123682324919135455955680303146779566144074654140591771165986812761471621811351601193833063441295951649349976751603813481359255133667091872274355650035189724280190435463150863958769870379399300260394310739575349700842815298936032826877303936003169198362609963529592852608516010316257745002892026217726041617963375630982173567981875491547908032422157656489161071538721487288480734093254905862330232242325263272658213881093118664159149677362074824992236440401862865420763509656543492897955549892186783745959709054845248049132382320003022447494161161734966151963202913138991027358958792493607635744137474727455114919954322870745957887921043249668767126322378188847998281296398757570493014920141240530145179178761085415918247698516982016029073272932622281066958554208012549878666348371198357045820301667802447099658069253021264200317349573968392096680288832536515020247940708112222268730291202059210076956525994987671988806391734643847170948341599360190383536652817771502206652780916286461603654087756458490748544301542431592958178486064928351944491698388983786153212579084921762826156465119453769713709029122189520875481298617671966416913467306062834379576802597823467156686411312079522072712603139424675472880086560285989140522241609818633361566072650828555683182641585448108014024049685259644780056524803179759688421035030930628980887371198961537044687108044757153731653685294714699857287885459424381826225395524026417193410693265104886356118955905887164971642847383178115311135952313179857359169034965462186558289487324927054725219525339162103053696524230053894499299878829412465008048580110258566162303136466401942826695840755081266376121543378011385096159517954094631666656232482060369168061739826619305768617446460528290082180426167553977818390439752590680993775230977360615779241508559195971524312194238064147360913117713636617786901570518300245715484556540919760090953603839865668833303922527338106907016654820809460776480043714339690664342482109040442868606289897563677324037709705531725530530329418071061597283283768253763377292340279313877817045772704064792128670574486349786658517078392881709126457694547473440298169719772443020186509480989626672484564400582991796281128827143849564162462494455509680646289538126114949914862960486654725242027104746202979310601641236970927445397161709548365505113273557111625650480025581685853721808521190183796328487549822567956966032757254457305238506817725533272249423138504717274995234483015731782578005605582484451504936115116492503997474956272114726330332531821775038477120340831088053609949311114649414591594397933794838465286967687449589423460554353683241132496885692586523446830600785760293301950810287653893998035571555790285480438343862235355607555538330462134423582837100430089982295370684469676628775890650031231934887770596786659405950149104340097665046760371636647497527298702407224883816254742841352387731926436545540063159295829686082726247191345912994330204273252002232004756368236696899176634171562724872263311650215782717928529166140882394725110321218953972759457956786073753202897270875142875297848543609623097445066068819970248354420608655266108015669022423230069346302877011551094642682680859721606226220662597060659967796930151686014361724380949803576108976169745259513524555906629008111644305745877068903999311994912337069843361556077792976743659632795667742155943527920153380531892096030390739586870946763269979816588788321445305708580775003512793970194548746813949001397659071960772119067138154648098069654956827939956449954325771137421446415604885596883834547994624703845609409259461155971739900554884020475214167546792462334185280788288812398605757961986274198151476445154535546388223545565601524069125367816099303884990486043942990381506654331262287742036907516591798599387628152808377280299045319369796483874920234237340031550353648258287246984307938116566981597855482807393816101999488216908279643590205885628328806455941696109488249657948812606021940350305881866502654756285093434472207524236014642455309514100616825146932529763198430830183752918367837830441350226160854637399959900536355333387771928716154912475172533412210409056181251087397531127523049080746160490600536973622727760178838893597335006367936966808760824685551744014575684466416875782001367701441721632972053910681674312059684913687690697206654829453762795694324441344380308316075003132315515094503203540151242395926863926192300953136101360703104849035055393828928115763187900285648212675052164917010652913719029180621599663493672069756263992318230015528750619290187348421247462579384850913353312858014102256063259940114834901032190535044718192294699336661524120480672939001597585254226315365984002861123775475686810705874466553388526644030911026048205793881405165488420214567664287606554179210693298430781089386681341608735871867594369756371035129408962051527704404883935212869225954491858575658956770879717019039853096227088584735419743934140968405695334883192131162526053604096323722070664682291226145954482225024883946741531918748534475481729093864713218317912080305711443022816441770268644659736227687063147283805581011587361189483599779893030364256671779409702097406769054163887266884528491508591857978917900592376099572227208971177340972949271011360256231814185055356510310259095327750679305193113275444148379530720103090486460512913665386549146339065876853106776125812474771306514395752507646330148122830849709012314634273890649509355627405257136408918867634554426760306886517548881494329540572397756503842380017468424996030320602351744964726089215739850742883371087448401371906498346847042638420413139855075116940118715491252391516082729785848196540788036145017023673833885450361402338560731487556843341207296551078717145569682281364296134318428309703710668657199611623504465498037064795278238989325975450580243626576098385714060797870687573251730671570596093381531646588143068178547465534833838545243779916677513792986916679924577191516901467499739632432940549218007696134464416597734836167946539332598346027138040710531694103837792693374922747822994512016103068010955527903984037533233112907047876487329586990267391127667008811654984301181281751085634245408439892851401160240973932426413097567190736776684676386855756797114754817427855670744627414059610548291507029723140343976953369474196246562113491342006917066842460146639786728219542740823017334767248311586462332311418557738260686484647535333171918378913095344850039748161915441493578358552940347981667760901101776474638697377364970863530625212445310769714798099311157305652539182040738571690652939456932482362573975520270779043895947122667665134850510194500328884048751022345572299364217766639910243276813053964835476224812501694507824376332839849781111689701023791755033920736376365930633531625010309484130109720522252591506958655511423203882976450487626493841196378061582669660647553673614413665973192887283448389409248427698077998423342217424788790079633690925910029013436171515646640481288975665815611338521733285671936974585993399307781620862037386281718901063232887855500436791176642663915054886673960509396315257028345816320292435742211031790799880579741743550429342465997756469305869865133499204958946937358848465099951567577537487925927652059999075381993170630935271823621087539458304043985593148488751549004859811754061911728842915896395826254556871640708381838784977670331018992222244000131081913751884295439655989890681870212225116879651547132320930865224612921856394713741725512175886196214470432980169173270158899309992187897010232868969366304640679292045355108793306180161183744730805559237363395777845725634497472527716377093852497414315504227160968094204747275402735066585079107961042967081286970916915886040212562330916045024373540291389140703227577242372097098131611991225871151712282690520872813231717317668960858658962619448559507137987501670412430503058353475594400512191590714497164263621390388044801481580557737358494538554106327370174590620139471245135158579880283950150052695677165576418003135915121839474388797556173164868378279572682950553096346827465628793598761266877938979446561841878074047440358507279433177872348090317908705880057100939652278010512386207155820612273327962085133349319388843289326580870318944639621343744739182736032125606109014378968525227066994005102719021259472494484467339767842070597153440939799138940778556888087067798794944581427929814800248372111912269477998800463029589692366799320450217835874626653975544511148864994205714850224320495922613443064781404724924370497118219961250283733780782244368773024890400382115427023999822632219893135366009881000052075258883727140774843153216038770883521675203372581576412517341469743544281855875533252369930401657309823595361158837515045667401953474477299128241390038961065882572836699974513207143095852146613656945395531419549365432933376449904638666225196053888702070788001883283501868231126264280486012743781487627375389156151018936906229188727216721719836362391757058764456946057647710874669332748304059497170457942596572292265233550334189209991315692041880144332584793834841910048836848310499526198971972515647116657805461365986189009959927185582755662556972339556771929964339007640034824582779570227499753250575953948326972313068857760894424744322394640473452368675263856801553643892927974567279845762290546047847314046571410647686784512557391382239362095926749098641740922523832478458460814081908682019652989615435413068527005331893397965151572331511428778573972105279414178980075600237645564996072585261719642848824265010380286430573711231435936381873587783089195482691128628074990196437857748089789149628993161548828467959060386208083510542344554339732325317720829102991730297497700822333711282010328564972203960951079830281774068038626603555456526583156585748445692136335179513228071009082423683716165004792756269994729099768188173358322374614262839757083883428478988890012440764097921275470940644766223042462433895267771530033207585930391533416021028747804568869284564078736973473251953487055509110953588755570584809555278481839799384253888352641569563406754075702128974917712913907427122702085325125827612653562833998405889235151204666605610152584117475510436713218498411020695891493375205840337637971157873060568294741881661788988380167726442451382039994567821264544288728425951251778683530723495432497628733777358741076905388050393283707069518334222338388236358056566346640955345738010431006552167547553398713257970416503288848538706400444696919238683720034055033016570677536985554757691630224726158104116945472557758145485943354671496077824995118326995070967402932337078427892238750930507858289733232061509553921838973802007183880075558812769074132511290602242535869427690705287922458636703486999131960576496541635453757238178073435781933716513733971316970073670329038673502211674399419372476094257694287714226660643801644300632777436428426882262046657420807571190746362828860874469367139246316992287032493823539361862602728500281229591828448792911522152277592538167068943386547573643494180437215981788597285022491472124326863060629721794314093393147575555314217935009390798647383593285576512582475243838906844295227493492187250740376496596860552862903985419702973315454648633251709100164675689482995332105734905108242797124538709062503975003615184716568883564853556189746455655798231953251436506311750411792738668301656820987881208503887104453553384927469302687704517571657915321256144648749387751436564213898352546543790582138180040725811511968622725904476187300832946555144442295565766244178916732039110271363422427495159358403025458022326337501967589932917214376243308772988144344520894081344946998102659591781581709354398482378012194969721030252672186023814923935943730602242469311061403317270950911967946979840880613640743580424185716124179098897628524553469495069087836319919116573095245074657927067604071512822170696264033222663834341776263811933304441701815420263825639701974303252680833438839259509318751008176576306950728982562115575768859895080190327220618477939009930415112899158360980281167278812154490403264499283194797894211307906554371002085020711453995289889114326261427200117854223245642350812697661052356164087888880164568669685833025728589004318442396028433734463522039087443154484783561273855783165103164890872930804205112645729625255278482364014418661430756411191717545200377188340568149113180019596788115169163550461812333822931817875370009799844965156890765811961077198756126162116250568577556162716488841768404203801994156567647541168478809214064438531887132036410049220505383297419082967652140125356544100585933602987714968701951995110346264808129506644109543268680266861850242443862031116664234089677535762122925532307418729623284283987955234928431807182669258203635545508821630883905923243281560832027794886632976834728136321324275547976560401845801155882868429471359793852963068934382520142084754971346679393589093263319093690810711747029700637795814825348874770025934279976748718334450440195948515643263626575173167150741855921655996413219294590162782214054349287274845084740454918049047834800772678750730350854566902585586386126558613847504616586311598492627100972797621856645650344191181425446268478266536189220160023818184404232244531545533779390791535553016471432852094726908015957037468060010087609883684757900498116561256550896808568918272273814499455651229173708348003197424971680790198549456581041740699068541002680282875049194330748639479780308629984689730094100506928870556167318864579876632652650228324178933972484473373693744671546218098140206898249113051078452980127800523737100433857182948088595128856774107073123612406174536528772529998884023214211591285259878664744546275498428384604610334300985009556550286303778309752411083451379653461523279405331950429917184824087958113482594647213299401022918174685860852649345254632640606135685062734928070975763296062179959188421082419778104299462449997028328793833372342087043797550944163208708028860453031188811320034047183198405348171494438364968108320274660020389389667816514104759262680717358709565706944758907824809266019802722954254676297069142186547819688567512159377054257566187984772743719565461029539772360952063919203615332863633176757212043004698417770334163077849643646348599373485825135577432788947125809898557895277704914672795507343790942928676282933151498072408144095012671314686822330381984676086657248121631430833461762842759949590726329537066477264505687144653263473868678845341239834962606147502091366619117715221892979302376054775906593310874846173185683168891977670119635894685551136356900784669696418300334542688923087742460944168655762002365751915434915483934303843377834251273238165330861839217604635739657501761320027780456929917207696071043936491751824278815866058310924639201049157752670139179073081695845060752241208710538002335741604780863067193535226502745656726331088408178500103315083831666877120680982192028277433466557565869195446330340820357212363753365512498607116242575854916953763425127814094475586357326145867839484413544081263663701230937450497739254207550982582727711163552061673151634331573744161188454663043051960103208027445154302925683015750509081397628442440728010350352613389409036483147031775237151231105961341724298550280099409975406787976938991673342163385527495088109766011202923083233134048306725499954311025690320621604723623572422643544014448136365189008008723585440705065239806572624303094550372386700414742192096420208689680138052253930348643061102457913737323909463810245619786182013278907378655897994143386333277858635792140602449811644851466476170535525659447326980609457795892747894456920987673860605405380030051388334728925153707247361740530714161108878087373848115930939628406642471944910275246321545008029531539003919083758465284345628678675146826688686224712977628198200075555339308057463236392051938758632238742243434165980988572101632220211623917160492191112208759413203913634311590645568569420357479678204429976224925355057410655897537362099940465704869442543599752733861103508900068139616523652489560647712180445535990849399316890202397818556799058950198744196158274482364582334627420911611104079603740797998834307528179951895469847485076472833389930347308240362290950095216369933871435050685007376779138640145406446580118266720296486985751503549452388481102304948115202906164777697434582757072827179929271803033631731275871160181584566302418518469975581938903776329108525392116983662908521330741481878555145132287599231889489479979571102761127667706453428604565740304172709285996084899264155888232943606236032395024819638837786967207600748469691075960593937080583063224358773586283313820995782623851696301156953069795429453594534272948188980790632960837944511496453025067854541659634044163762023613496068241341680970891404739619773757897363251967762837489913627956413358009389942092261793184076359703511318384504594272931536889712533846717893795769161544716502499440866197420887822376694474011600266067692550783830909846351291002619767038361746219109451657557980149953698812208446135203537332003352585328840608129123879285881441477197533154313853550361783678588070001297223059331717014591595838645168816243268681092257050706869597272342031128932062144260132250602922034261798030625495968442582522436249374542574078548381734181013628979136972364136232469115633213554500750695922672711886618261080572922632564876663105340457890575703599202709655518894312012496476010706921448182362476644808060473859505192590204688614416971559280663656570403393130680061310674939584050869952141732142516265964746837564096077253331258337683721761081253139083262301793167797678272216340760980914335181796101500843142857255733407604863715206727134706376576839283941619724656926933821724915940026089717575583710786783785060219237023212201773928015544526475293403489004077275158361288929457956373769505012515177973837016263070596118471320041564863911749605949795086944332686828245565447549516891878200028206590072587952701961407285943002478131647750297814500767790701807800515510641915182659518331583454589353266785833460481306402987081527492740901641730391074090820256937652969430873802391738312111784474965922969716926038522884086143234708533526644532195794748557888249597284923079354383612201310431538720334143843143466201456606818909064472712309710001126540906059573546294089835305845286650320989708635010351304638856912262546556505257627555986695297913872692421809145081211467272950975954916699917482828271519431766432679654260732768076635658372478522279868021062916185825662324834770162458054935402439460084069010704179759001512570244351332001590213494543002120941090150010816521372059259364807339373275578484494674507312874525840204553852920521610286862227859569006240127986140358406293750856056985795543562263300779255274067603686890158680113774019199011730437845676216302258391216613513907338946493327027652066450424883035886152463854531859810791726598940563415800924872334410730358276410799753182874079806872280350595784749863442162049785452914216503012354819579500037884744040610747847237561350487752094393522424339967083153381000915903603837729308089109758740971306894600220400598847830971729246948878454670674096406843424282575697517850406650844620763695374236403204313882883210615924626745779276597871271513509848006962825641127771935305090259219761367921302584536257443522230764433316550246771419314585030493753003996470277036821036879240338059154007757524168824461796539406723381441228815485006723772035249199687917410877666172246175574450298892209692512887349544410174291778807523727194869653329900004640748238766879386851296802772123584556773942177484287882419908956396423651790717322887789234220493176688427625730102767232043738774153341505263398103635014843926788058012389402864887809386952499583160625326869824230069454621801781540414748427891041772174445085500446557744769435318647088397564729648828489006911079218809649110778397390717841540032882273170855245625427517258622890971414771347462003801647487820166471803142033200338486606011334865493033905102003738730727396648056766002760864640295750567369793942713858107663745633580069440357272733661692840115632654207851250931195600822295424248011840383221384373266185416537140285380935737392932245257171247011562838739691274247761949501787663670056785407900989504824906193639361532013278611407356092439816943907076210382221437700874777833330090888934789135681872926407884112376054952390439973503547810715980427609118848951846748277584931119815602285083760875037883988918811545554569487992124635434346957321251836494040563836451698746575120305066089856765465442670230464221627292380436882728082721865530760001040009312043387254820906870016542605214531028013187263730327312127560033890100775457287332797809407830057146507230500516902203161632801789816960022157363730860007617291139361947211727140829418056751662088112912674365295220317612032821879139177080132132316118333322145708085070962678870178973159451623522620042650067021735173612128226285399468913978251837467826405153614487977877731683537660339002284013590005061459430694852037796344694660517624378521325980442170941476681225682075942674157039766846380748602994228247482531608500739730953402164644975010426194688429135174223108184220806916980381656808086957707124654154598727627985626782150202638522082540623254400246134970064503323287274356165576474211266432749851189618554725714190250382064405237316880484400098233951258870231700620009934421406473998198475234411579670037182468994560628054443608423044063007270577743774152628173820769443678694611190804783723276753541383320950820757308488005538941256989288203504619412669295694707569298866609367120383520044103363895858445997514817639522225718848657133437231025322399076283216163731595454269343791264584469260293170087739375529348200019008215259224345239379487710141361498831049640106450346922783197453211960683021405238565664886135839641158093309256789522746400505134211988640283079608409500831002490580783916117369126010982181312471545497192498508324169371607728354904363693015878797964540565244814428242943741091051440132624504116590793097706176546155949055099196874182966721205743731933070572156508644426469953199683732604032954835928061841280210186252772634948966509190531196200628790684332076373893737887341255530700934486465089471467271961742153647630807963713244386648001648552926458759918192879748699783020557840132713131789667230531482542339063867666523645797130358116914705555610761440172356349265230308172211482786977459113939441318912428758349836109395183941794748283739792328247791395321190337953506324826859719871226584945704937909210839122726247927361928855268833579917451744409455760940976369508090794426167077461751851593343817890213695295766963981265384042510012938004902830992874163722756965801009960340455341411358488152662725077223758675132206798204019569086353092686942747969523978555759251756259825178623652071083578997112676216225512238920844467414757332703526056122625447371147374778557634064039976069539745933585312748091317484539398934550097560835595190525347836610604350113035877726280788355404220375507537521053390484421424967244093551479105652694750862142448419514099354258749950589361665335560952927835512701076282256524161740670377100505222863632702328721986214122835655114726024876708707305916095126947903510152145716388873217389092547279091895016009396947102415132124659943792845826582040189411811627451957340851606559343295853176450462150892063881392825520906380017936921175230700041263469702510632401576648948586770658593157340008132386195271371328778567701462674351888245545806045693673643811983489808142240200591132585735930999608801294421105345029057078626149014625971693242077693318371686299302193516305649710379914476468285133952396832284945338836926423158115502674120429651534394820290805134514248999223055938800471380684805708696850697017341046933479002963869208536737192443544400520856237174015301896237055785551375578008175272034046420950264877257671174759662256574407597032854852930571428035733920503075687427651956491139899713090652426508124320001585388190729298249525940031144112614508243559415180764905002507436915984893801003814278778176759008752603725599987267770196747792475094938060841120730278455417128884358912324725516184978848468524908525046760713610624616637813816385376818183392209957679256947379914355219873568721459116869658186433266937287056695481083822194477093538318467830666374117528322594307239771140734301871366143417735316039365667710184131618702608772003405572572658708956845827247755554666190792615490601249959250906716616317161102993414103775398115872697379562787734161074557538716048034681254981830578352025117413131259994115565449989095677496444874630346467596407902075699813104478260961091192376468165188328510793494628058927340824436109858130953646946828415094433609187269656975354557919131581409530829602324356339461635123140210567500183010523308466763568607636993945849922200960234337961724736182342814176290406991200360108926107038658131588391157510809171327103261109252334201059404496554127542823080161285524445889047850451889060374152903602111723914280985581907996250090262685777399489471424778602305910196642474522415603041380217224613025884770956604378544712810708954297417690399840791172774177307189986571297524596803775196221493000823528241391283383719180011257373305568272375178541022912520422737031928951636920655773104555332477189045470483115211086785091555497637978603813034968698655861333658032192309658583526859027150757132728378329556337801060092723009749367731627176055357173736028349175809227312665756063307637122899720188551234229430641582532218343219277873950281551797674800994340790377569530552367275390847093431287774526129027990976331718059132412827076011294844725493285494042979576746081514744860375449104587628152998412448757674732111269636494674888288923659581345810561623257142687784871043444970024738948025122491824958232758977977603490375557186095641435248514722256562276585495812715095271598852469314971466949852247366203889556619999952658469074071738243541240481203765702499993708159809095303252542627268801596019264952306299188852593432936454491052053486863387239674339821878139393011783881519141185585504949975848012907536913148733922245093797663889991979703179608623344636626620880340846466217240239160249164817295911661651122139624484404085469066182482208531632874951939830411728930320719662281246941298037257753770374569984239144181773079345047394761125578368605375635607821461092922576536710108321257650769971123327789838738410659229825648266876437287259339402625313514710885956507462032264211787073718859665526814392260317087197424881763583315346162167977452519874408813662569549847095660390963861132258802748708901810174593860212151161155316061908399937744734350304249477555269589630344537497862888568011571568841477629788046012625080581394358275713334232763921851605664222263750741662224607066123632502440815072964959815456181791036471890810977348409829824344616697843183530910093858779343169670661369270375018938005725309705079963660157948936229909059533503559404712495618799601482653525169634432795859325166918736225583298507462343983460506090106806511659018827208309407933896689308640357517782003579793376524406490619650050534980248327992552508907486800411093767860825423367365938767005562011846781134633583851941938873011785670707858959423757919866909486743448584224301126130239578923031631622133243937928562985294142288881165290454312190190788522500697416089265174987096498187620843282658766790538233546875110760452053180309338588026290038205741122093087866668160539065022845910405869227706238606621892986782951841014693059311581449348492943878769331119530599197297389168438906086695257329760883465331478462937121728006851785667879539674928917033036331354786960779659661864943929649189134176977657388272395852528440245090000091321793228118549872668439597097873454239096809033191310106059578394280677678920056054823911868990301506363602009268278984126268194848529018179940352990821136361652815014886275915368574134116369544946251180730095145031921805285868974538503462706872796392679949520196545346147962091301155833563456744976636869701121184753472137770580080062455713252490974872992049128864628758197100778827381246897780566855106336589627214175709501723008003207799964427207302476723004845886349169976588047742445668040693677863855633447365256735839102481647233594355427118191088812287029276334221849171149460921135568996102799368945832690074073096899593326391948743757018067212188132888552639361289000156813186358339561528670991123646946058261872579877787683632029710304542035077105126378487084637526441985800970257568186641666609030397606118623935578200168699613666353246285855942638122814918547478635938947772249759699919880024873208404288153186544264619054194449748003045836810611323342319037324985339189464925759760478322691746289181199727598195520680618775775969807526169537104065193839753775034013063463220995419706096680366018766375638336106980742738676371288265345002213745854766590964900181576621591067601063909254312128504730026173277347883259209083377416755877712082379594556543514889977869610389409751828557106026522362160260869880572167798407508585730285044562768166830270684011772034837069788236525734907054437463280636463578891983880311792453587243628170971360334036233474132771554880036769507109374095085685605806749484710808428374897077893762433255536787913035802986944947812981731851088220652833832030841933191236284490186023877115307968284703581460723841253244330292249746698969623859720580470513236860680241008424848687559782830337438768334593027453294870940686646008965038646751457636072616602067841761903186914597854427280179968012220207653469250369220188218812224466922447891946600589838109710370329611678423353044121113238875118472101404772637142655141845034262205952022741518618362314332215130268628172482403961425432480700348303675753381501012538962377017771483530411021714397410168983277413586796411727368473365006974627582335423430521620013457568351403551719929785623634242934560176162149180468401729382450339159166519869638978987514153905803600189145857274059315299240519705340339967853252666826277541511994895860537561638961658571353582269322768510523412761061497509771932658886533784846295464590252007472521138763042992930863355054321320119047508869873564479918974090867279246005758101823684006771663124912382622987066501924304983074455759292255757066982763070287431264913412007416675810184192691045534221129043148623120693589714261098848784141508064547727767299864558070511377715597219815885394741442707857283499691897851270843467550698649301743986742140792004141852810891540751311033036765085077715869272984428010889602925705121014926328474987825209679542408681628411839947021319886838349766553928352082898925593357216463622822724809867684480541411113292772901313982182554161973128127130311781837655655859852841763506551598040984809529751438014350969276738660998960925950921004910478962072107892573166241122899672223912129894503741898714493622220022923446289736835106235686605318268343533211952393937462676621423902948955368084371705801739632873600234388777980317679057282239552401356054819900194362825522035951486040557534810143461799334990497159873114526068179913230389554325281479686308457367611564760068540906361836269949848722660331438592436396552673071426847475969436545551065363345081582574381161655903363913221936024299511778696171401397177043168011780414676775145703951356150643044529842895112672245303673680001609408289127523113057817227881176200555779577726849950676911706735169326690106413591103158613159394972886359220992043665984303703711557148243183952599157962597962830657617362097792221341977559891686414921549900435467443824529213106488232234592851071444085287373321953170710829149695110106580495220536011877736590491350661514482533983015700184825180545554989550473084872941784126250733491489686565120022375024932993965078213208404958816361354538804085913895536762747597360588724907676154476828928739810664379146966185412529403544612380152552293596052158183008686164741513365261638956675322119534323199618632824768112074640920583612586937987997043906794831045676023295739691148222365705504236021027112717297272455750058885048001200179416491878414562164963819881216223481968556113183978148442756880528106322485818363753186239660743994006634447404471659319732743469112473787401868508752872472266511963552838369482195503689378645840103527063778748878082498837048932087190149020337873430939651485544476672020600634730438226794347135798185754862773310234901707707670160826770061763599511941294322741745742761843504694147604341954320268351026517217388915412932162029381017919303342150171134331061777787078442095122750854417131946811998757562473080888497607909421186723754604723248749227032991072040685613266423899003703265832746540597830128290660188616155452666767678141514026456560019202228013180630814123517340200076220704040230100445260361429763493690091374413644033257109698005329086953675764006832046788170033508835640138590434252080011962284774852657070461021148071993701729559953022038258154778275019819700187959565650940138299916770396688154853588415111805450930762177015852500775034210077359813101092824655887092748777537646052495017600959979436816131538135054421638598746371359984911891865582376183385312569689610441447284296154346788874427739884683741303000999860739770308998460080223577694602730430095826155917109026404996369939199316918184118215438342680125983394185280244579109377198904042941515414984165598832580278105193327387005403517959046307651819336248075641861979373894735878988266832693940871730183701562910518600198234419991731326622797792512873172470829449142820552887323804079540359847160424967323628552594528665613755848335676761133819576754181252268512176726071150244232776020812150684953087835900441654307193424820782182607101495659933865108134455126285467242529004970940286388047859544132408245914566281172000052177519506150169585263210336013039244442487942784785232597452711199675690343222589076589353729027678923633907980758919146915212769867048754203216004203737322440456791126649515744046490835649612817827134244029942146945131961073165904175068097967311998013630950152480204926898910379726633088683132051086240576364148709654689182962238848670167236726289919944974536002611688076909823603422827871687438434742058986279824362178638104531577866317046850166868243682627133566813799044805814061056457827541425250521941388600342201833991514113292704582999869662752914097839282517286851763083654070922237028775921719704043007869543518573885686500059848487412483841595996763493892010509979917030908823390270874410041471314310480982714268495199705306008663403215962669273120576734220365803926005320178599891273394473553253594622981508348367767449385415933116343618662356407466986708292007584317574142023092023195332058231407014590971014170903771775059580864385044984264936227945497934266906468420194152061805280684404079076470884098836139590877928887304771398882691869726443488157972531138245746820649703522709375491635171614035746624840709751004914558974295560119528277629810311046277340532624264391071759922657017386914733432824936170205387474171222696993328364561309806942221987700161749497779164511128545074247153956163781749808274805312305616035599446588470220416858113227621217561616942869427893023600349400236667591543542690740214066446157337043780250033996591868868057021484773559021895997883294805367100548632402833661202942481858140825373431988612286097794437936652785920136272993930060638162491893939083508719933227701840044881917788741758367047454796805238621633056868981376073319483730294186044223104492907291519947363461221872905467750446426110878872457804634399683125803596230165715599956869063378063704158596816458384998767365480481530547480615821229881735438768165803483589034902019512847914083703361605483697739721136534583932876827675312942458370087767099519664745817066054375598617804729807386566125218163576394691656385269745441125714576139208613471132407317378841702444156897654234935866377994217127706384674723017005228395949483207885461218138445070011109316472010564359233354486712095426761064967103198274055658017260977307090058465127380938298977825236846539797556476078039013656583358369922613054893294339705060079103297931169004366616511848409191968835144834444861240117166209700162294725960865545326873204072820382640691474375024489928930573396407120698878734286195634492487308902164105374144880944024298068823701086068288959525224976737434942287435786200702932023171495596047142389339532026976903988672678612910734856728644217962141349978277062921258439213929048584894045353219098516908825472471593439473424166761740076715052066244182938459929492273483001812502855945138090144832540695989710593444093105260242842329407217414914014231236655065974535333879486686872054514788380580923359189230868820676026216192757397699112355070581774676749997196040727663182946798348944444591040753513060346843696969557683856042294597116331800615124091658132872472354444119122625513636710618993123013620783841170295509063201713051434553970608471573313825766148957737310666725115508620432442694222647303219277121077180684087502557754947577278473592774964459788495781026890972569471630280579698439893634317418541462677459238312095823456889769086467252829651980122444058099052479728706335579870584018034856148124028040675210894682777034838918863475707694161701331998714130594046374443404476168978440553785709329225741706309692553132890769853229228044050116868575549443565458382330708894169516864379152316280205375885749177317977709597776549192155823892005774285526999457629934456674884533976564228306423332075119532262041826610118714919201803722296532977860421386234153184304447902831978747970933562497080413005180441971423690176067693879213976534154087757634845080308050678886946026690637027959723455045580949087946537293484722057556458729784225858467425634526515714987209992643546827961921827563711303504741960069528217157420190572742937424489642749071768486614827600615970472463993909758582861009682840096092072121522792103243737712619416785352272600099961614643465401373474286277637310277396871631435632582149485138198063288295878653106108383542671749077344628117347720430680721461986944816681579457730284916202052812427819417007390570532022650762294655324247649579238150181207100829591039765413493901143494357538488250032579576384174411312073825481100772903397527313353373076022219277228537817943358528927555256408934090099446277978686442097867949479563802145137805837593237240253821307205936357551278174183475942223282571471286150622883481606210479244484029805802014627868199419308884380604838862929433195712119125006607238014295518261068892330962153357490134211471761679236212831924596354466387672673182846365607388553250373400602285300654121067458287908071715013187371131218841431489642004628978669646147029004020794304290016984946346116315104575813958314917729445782581576169457606008901336673403832705089235049199109222911705530498482810064449241176754511912936968821029689197673363935146896978776313472258573667845925251060478501513957831558964782129262812806698986754860009016566656608203921383499434382388588348556521677345239262211167593023235201607940429259013568705930193704504785919046420352418954157047190791915443460547264592238666216683688738375862464686000698378136714413936869307920517439063684726040971269309145963241013366146233245544643980060873877908410280176334775959472886060768724319452914542306466677852544299801958311387281776510513653240544778377588530509089365528736020378993304501277284210165273759016340890609375253467315906697029345386607608115560163196076754181072320379536674618679732310270324331394807609604131983232319427452420527269296865185664269514111436495782339542488067164070503873829706023567526220838801374215494395702105270055073852612657691472610983377971381901407578265495064354236634143638964805330425836282497565556921039890209384506643177570739555033965259064738429376358552779104393444174403016856605905152763980680107936159549723992113794674414782094355257030312259762081180361770946000388074930178324129370082875324974225460128410537978014040438806907897763480205978502829344421397548009852479628022106131782094294213869747326634057333260807074842239713524245942095426595009982752392705206517293315245236883853735211704396660694176007821667514113481733392520480399950248184599928016035652738074039689256454627542322484117309579759348117263262308219775234362067490715927490226677264870623976302005110199659370945995067161327537531880585903224119746040999410303290650369183354561418800459763350051281303751050123068823300845285498448980412183478315546716575286404534829062942832878684292072128393559760354424015348831016806278350571538410728583170008403749581663769566412769188474719903686000704576845972756575366135983212339283575150939198873418661608735086904801269455684827255280486259670559978475179342046753787383153579359579415249820910207032377915680608740760931590752538986105094808403661176845465900717947141473908580033787321972463744905251471747951133375095343133729927563655878372076350812739848679481109135900029367379947673630821098263250784363915928129200560084654191749548881244372537384277448114015452290602791299517398290457684559674860869534224676043215039820057493902747468451394792770905294643272626054605690387831613116374429269857137471107784179298747527559944336354656002620673115214810224837205650948399848878501774010975769813910372084262075590433781565513976684818840921934603950105680634389559097080240647534417231495642381740704967691385110778758599857116381667866821775459287302256634125062631548566744593753309876415202304816061152320162997201723399179023851812075146615797088082898990174080970416869998093858534222726207487792440879785586171683753372327908142085022053810938397085523908925644917171756927398829061419280433498839008036836941352901747009533700497754674219990831407008638872625267094716900253464940767331932066005554951817078600285339167024396535372800722464308123455181591616462205599509834026004057372435190837183786900479943023854822773558141952535861894167938383315706063466835658249647228417011325819877842599109287298817091208669786003948403873837619418227986610863141207895442230441924780013756557131184865100552375911652634499294930424700470379385076777944432669585614968776506127256253321687004297617529111853117889746117276664372225706405681726182002473393720069311825091030988938288474353142349003829630776227819904064793764105133639060139919480306524638805109534154627312514252054520780858629614791923968278627010648082139298731425208333261442128580337364290212620273979618946372769937495937396873814120975554718040698378749436899818348761445218824151825531985011946504349469169365819202020756758182815034555458553019161692408260279723746677958826638232246570143944719748188416410619729437767199236710405720292886409817176207945815127094937527348046351310022905108635549706310051442098624692421712503235379094301628738004766107196183766799850540190911496147953490584590777589718638049167988646297482357401341150005128390471185094528402748540308986212836779957043930822060459016600931423531917423383854474445908094028681656655281430166035384357742010958401941667914251510928618039410587241551658350624964978834608743629213665655066759567874344644882121743892579329110420929986672313118166288937390745120298657528278917816210257777735235420565402365760657823939221957352575426085844256150506950218634015121673270799852403482868154358263320559155678235191840702643879651630557343286560076070520173812284738625964416511399177186827576181319725201849710861427617993715390710694686168692125772228207969671419574882575736180281278628545187850808375820826698852642821674541996252481414049968306009356822771988191030634978565674189430572745144795803087756910818460631797876859540755289100480143008983340022276577216520913555931496899975068204602843024085152145348670749434342052648274542442148358770138909582178990637542586434818395657552930819133141061360294923731195295525934817964604800480939297522724637977327290087021834519293489399420142433801643324929022728064643938682111405168715397037671856638306644382797744125741993164810061956780801650585610067037693253396151619877094545403650679871428450420914333233597535576283899144495161253477815677573869154119913077607726021251085322319694642729190124431757049907768649465430741114854728837168749039349802997478725084301535211080689826993195757859317954528159833595018758964134558348624420296327228770025375252884453329564604950215876751005090931615709931868734130353153517299667907276248420030924178023193721743849384786377399899744457039613747958103886707070785113621095936739447997055744682046213091820811539758886562612644617999095332313886008076590478767360667209927303195143237283724048333565146855003304808103691295004446656527430349652645835990903629251132456803298208567795907424028292874878311782199172867781683772869300318544112075389585286576711453260851577431102920447484456132521388180547204288221156873771362825094754193155019717441787460592549040798308195552513159440391080363070584972494418581198009890134357372549673704842927341897067495919498792800415748428914066955240273853369314650314213447946488041924948376491450316532205041764557222318326217410216459340027079743038039518443254515290349955649744387971606646498675633576051006506150369251606626508813308783312779523024613366429992294288667454990852253680551792044509104952402921773407804076993286383670127438288040494694057042095573960924342291138372974704116037919932692385662570961361003814810479662409896914726882870190852380775647657200343922578123150513502501336920585280891924414087874103537738022130228597484641137570074969667332554995203143097024054816191660494383358491173374016170795785235522234566270916922776157980212226906376015450722026691894587725907987529827418132250856041319719368252992083274111043179443763194566956551738912081154724459121288423981126488781774032017000548310728277238213377578223993238604158422647286010044106589278204353058228327655288185386862427785250219256453873030800648518434325595663753849367889835374062174824710826537569890484682064715066851092182769205218864318202082619984395805954935991335528552256025737433638689047184222272101235861567830611305319452915472643734222631971199371033970328311826017867518836532029983204179570404731723729151882189791182157145512409239261389202739402255505281630651906261565537338016840645555968297762023344157857899040172905835910316506359739551238848850671006660558116224652198602735807121287921124934712370721254592879223120150424591389158231366000446377448028593722299821413714685300250176634559374920937498209104596554229868850653263873345456145088162714099289113935318373892162633848141513240106624788249398380662905150183173853048716072105179173442081358314579877279926688181126814757498130958994722926183074138612733178025285874410036391205264587278435314691074206351852451004214711808251691232014041472576028203875933814188063585624763789533593127645991885837968975623464641287353061874091278867499226840831166585944857149132192456131672126409484250279355536762096083564387616203081373341694344872934187043601300770015912430316595497309882243381077295424764701566870560635856885363458917203999487328913432431002591437290784375453636543858669034141376701289912103302754451927016542701653053241408029181061415876993088848237730968364416449425418767716695160057702133193560660046172666087787970153132616614285865752659361568231342331835292650900227981769629237507398911491393302582061173236625736188156297736037791656526521309577321247681709947022778526434563182090592448239235831274601918530137909335986859223346540067576879550185145393994282845805262758086180328327191769115269935266759435584640978949834373399785685373577813809242808032353045653961433721048728977791795687496898241507976776462965174447417846834486173773838295661156694098524300132987489059635672632285046260210850484356711931961575890550824670932012520080274345821590464355479969318839853411812956406356701516421588202513885692546786342436782601686460466237230097627508587543217985865173346832960486767576103415834978114665720312186816851463279013690332925922680708872104097629836897794219226509123351493041679226930687651560550200698672014928085520131794413601642169612165766270646147630800066252151380381460626313571780903212387440229780690440071996113673044553189439577984944601337548065954264591798280572196671175853212035064904114840983946005977010880769951382537321612177947606732916232674044010192631773381528163619500790376296176329518420152922913727014261001534161123525793690660751440570963469046004911436307549737163277043919188178694065004348177563261750817121621987840429325868890119777180667099261887785141574615290516649354674553954347248991033135530179668748137751383777592242005842721093738040314678347945614437544144152760450712571576234895058389069772329541083230258842701698854896640703232590354647932700012933214051225467814625991884919695248802400007246302041560169808704839589232585077372305341515058581433832590495447972030576847565435338626194938054497073292376422763184857657184575351755687844167383343725281893405078935830323371784699361265607625354641259899705516771632996657493259031141249752511963430002763488093439078653116927101204786642862027513044650635919435183096026991887753028631747322522592357271862248898228187819340280545096375040134298731313483572839851145241611933760244068488278816612719699050604959788631078780284437417635822386002527759970990353383087082805979643779858190045451353612854865158409479245451300306090241703396010238966485230601082743708706231358546794797146248861544483147837212609455588793675488015334509214397861175248981775842490113818237477355596535709094273627908930107143434097264850022739382027235784544377988076018746520181107395289906127588441981596366435656695877238100260738747077017539631214026677079574932050728646615486208186991642628114677881995006474089972305916868496240524338449535280149946851753466855990310756787927721116930100922697185831585638729452425221869218041253684273072219770893187583119874327220114179571828524103087825175579393390094221107586496411438113391911419498115680493829170532094391319080821799872637666334483165372945759952399064232414801464549782209100088633437691485917869445635586595620360302910806671366565736621831606056532687421533268519076093611073175212659834747812500032721490166721681235004308150708776295177529858254951411415135889209607893104784406057606656348082505588004897753799389516425600629240967073425899612374744986242331516571463403556221550297591080634512458161762901479274296172164527255685977460405752044026035121728026277473198706289124637518909927164655611006924606338865723907593794283924246485497744190920624748311575851403592455216960766030010538667478185742600745676092630156204109120458013471910763216011550143163143229614290387623561333056628905132353521957211220093025955237195984255179481855821250415813468461661226851571475389859166281372979696725113768338353219966091128570646050459840284293465125550043130236250107797206482433425330796676956845891515963615939152169823918841883640763491367978792296583805551018512785150394690315875233972156056155375038060865936636252633359013465209438023693001328288734149199438091980991774327656568059901555917283917936143369322217181710951566941977592684036425227280775967090904417861018836906619006217446454620517935242732339314784891159807612179344739851242011829047747408041907059371491750108286692867909752692616855138834657139925655793293190447625096000749564056942845951488153707627634734767878581479914293403915001622011512415461972940965681838152362576218913300036027729229920294294717030167189513417266690985960721956522835710963233373920899721636397502484834523458330489588864432865802423629483499636800834019053051136062113370220787933927156514434749925073504181831505499030487552164276304628713155826852829911241842100029454746353735600636633744679382968942461594060765321132187849180182869329024100077021707759099532558158520179545795480836228533534750964962466759181890498185679122493158506251062798955898368436070895033461067491410586745819120168545780727486507774269390319213363457857513299005499865664042265343714246366272314867118767938889659091647222231990894954860238447441616717619965156851007532655270685338387233625430717575974341906575328777783375893250053767031292093518305047628798749267685093899362974986815482169367095569466467780370677163783455104482913318249971140858385645772529096087413075316997957653410396552463658561312452262245344135268737595060409679913315186335424440769381473376855875636391687295097328835686144601251526778105575593549157415732090149243028567742951178279079965360091296148940229393455121527363702580173207097838692697216498610306763454099290242429302696975648339207871692163957876998892968565923514918886914810788905839510408427365593893091634492912912625220332930347706256948786177444846918908657435078530073470005677506218003501598172145901403389046447478843959310547771698918970800261222422207880802615019761245854143755199842638965704971611389466269165236644673370485297344735761709436274436920363937979305058383173642236999116091597817717844465784695545602561114308558201604908755990211708597426918449342782682667234998855853717228518183561794729946505739255689260389946329621695661271965525825960426151722586337188470334980739975174088961409068408031336608158176864799202602657009822181900998034686256632114626921462050748190340412049053824762751198729484472740903099559255870712053627432319191672821878256750623625298165256092832523160834428211309999639113395906526351482443049652536582580163143737393769522549263774511943261215783271669092660892462182393329398313457922891066402462060979636373518134100709218953306423859989069735725690184004019040309445469305237149047964173383216597278678606283339512017688340881632581168175052144440071738444330113822267428548208266792364412816983340036479073005194662327842280589079166276204787487765918531087611091731622537329758077842139119691816951264527342700420051460981151179778464814846234306124205826100155693799124752443327225687457749499072530634701587309212127587365086465588819348017021888349940754614220530518623708731324587488428146924903889934944052461462042879154144847832066889165092351132112925218330601960010029459099019795460289498108065330927540165790750351789850617150595292919340967669396482664984555666106776555155856418422489299336488394241096124774808735657838647304773311419659824555693284793802104364217438708094590182723408136316275285410216196491693872030024574152891123099302653629350154516968870001309549032456487507419807379152271868553127354588011357458751662707407305580570441534852069433334576515020035772156550226091605559563243139821577802381525604352976512779544305404617642363018789755949862128268628589240999330330760443103750839026198363795317611512534834382847156674494057589569205846191413356635404245159531072566432913295812408390706242419379275109362065684938802129873187574785714805035608215283770669361973724523320749939312458201800240873716460344297021885023260112395816703981181552376383439126469498071045776384967851641534044950490334560788412156023602238443092827337020618925934771301435323102959267966345511735771559541804899534842296808625403587368558224246712832181484957550959469957884472731824567004446769075475681368050492312977552863917277722983263011965668483009894527866862374788426246436986632738505362061429176352486443728535871693720152880600152633199646390748867150339716735844688241071185434688776825135083632785247468213888396985959476336265660510365115201508849968575174889455756268783800911073479675001280942754461117711684475932281256348261591299560207550130299542256810623344409993917851201223026063526660264741632706715531339754552773615972352327325399965452376344522706229151204655770588691236140514225470842760295015499205624626850126623849464855325458234693598640541514067326433970318214973363202944552589842301451586854471453447316187594114707265856533931565773108217323574518210979624640374575353321223051818499400773459022880035385430592178087252717788107868948554946512186850938026343715237623837820819328591107775590612781476006808510335455326961172375610461339088567310657271433018686355441881131928850119411724388322874115149343681874004864775673457995468976794524859403276126371808972793854064214792239286166678737928513217910447652304402191628540716220759266563222331937362553215587768286382867778236410732877944561873684863751150226610128886202924047574728177744351668221141713686703604980653177158819745961706011834068184010503327043245442808994818624691246061126652258376515837632595876661564622313202510294304588058495156267572728272296428395175155733228459724224504048770908594619077524858416320702552889440946248696541631875066845878346629929433076858227236562068962231671080305660730730571040602332670151025099949889765154393740835349370313658275749690152865434608077709502574813919642936337092057651753591357996550439986253925886905969610693724682643570285745826523770092035994301261136084904329792668254658727071478539621478306721122832204307526809918737780890648924277135397575784509135042602518542437520782226948757309609572749571888898726818053613462259868318434598113315982232608381893379307278172165621068832935727569445551909251944612763195614573925682141066511067134421171073178642779721038455636387803189120662362054230996495478711349751161548866967815970595636068108375308710895928458027924078560759820786509268028270496866191558801523994296702630700666854551126912075684597077628100797054518445399337019267967092493083828157273182199249392867320844521523779640940873826155275173381425831539837410475734145223748449214459101801060425622669743337879993682035268558827290737852789987148767825393204760204570502878098450094156538849622672900742820706657372527326240101671304779725729386315892882277086180684836829798150213029897177946392259242426278457586787758358400589892895568183885003072224628925552158088379298476556120560902914146026109700559769146248868313792703225020041937064835472868252957615108848018315462464594181187900686576126657207701111737968147775731756137773096266050650176285306121307189929603994404650318394876797182241159239599470373705926380906922408530241917185663426978557649440619265258301279850860416045782335098582720070338304393420396715377491038949035886229176533482754129308187708634320532035744177011296552959294931759144506462826100126713583960459831087359009276974376887035021877801664590413006496095236046604525039730640946030787091257760764845696901889094848865412313020232067701582948472005864047099591436999058670733914882508151848579372930642229645526885127806415497474159893289473008687004431394083819955672882166247654190992098012657868632916761121722222013923975208708547934033311236339642188874061378263686530213814349507459347461067973627165880878271735369578799288572438446933208395096737060843055230586674244009207113957354182127450516280348858538462607204963298959638407224544835317416362318086858096012054173273127627801656392195696364905376903416274832896600187152746796873956581112784549055982727655443513735447681914369555113776601620990241262577391585015145747108263056388557984419279077137766464692095798028187842992290897091521588836791944217264549833421546210327306714016477520733797733303752912082637152976149274065591066904484647942705766081909069661643589510002007518730319247813484873582589155073517535370012281112656008282148230548937841945271750300926692706399158704990607118841262270859007502428314386948431982574297776148764453694937861505307250632269867771752123207744981777642002168318551475321562663032607520389736270101614267355717019913112281871850597379414421202208933299265414579387264324663760277628078414139448787430034628501300393716531202543752220391703352371709503435297221544634587653789720140052485929948409163628329913196357706471330954602756619921229236376097930951608410855998126059135521048034505118327300974258322755927409863788441964888685114266804360320968305249021474254082904089482045357353129474965316090413066507931964808103056604332137595565131890931321163519513907748910103888450203702420522997298195939430602977769932825150282824042286798830526844510577823836095772468737022155718395963658156329282236419352949042802906675053770320458028881892553544737787049829060510546061182867771913384917337166169006495491401850160125195637765075764203598210554052095764231006506979465620766129989059977018569167505203867522763611072531868085098874241154256861271154624501277905744673965934845534724385210347026622061130484031234859906115053938064699475364709045947395262456530523565658580073480686853560663712616263724170176593077646101395703485864878741560444780762653205322575889515938869302392616116960643707154255245172144366598746466590656065857092593187205236698863310224972868528117018100944915172368912339152603241485218911874435607721625377359002538231504800759261297492112320008980647443166228470073161564316277167612041626849723104459390060698298114626155935513559753623417634570631566938736372982319088836362964198010895644525401947098737051279989992380914156372845944368776789062537139041150754364280252864468676746459131798064503766862727547392239737644362980002220630911027813986315575469681181096404386956361468480145520463551899963659443546758495224458120094943890032817379872895469856649579435828792877351274065430067976973422111670361953201913616970351606310702307006512717788967803013879518980803969405513563478286396708611002814052380760219132329367315493712237314903411401109698386119653017070059686252733455653290254580872096538091591228031210417714348193048568439504391781164008710301621626072822789589135966579921689094153520042664482921147332166463703380995648749208432643808890697219311088021995075253591346021709467508096045525440142672167243570730610318504775933460157963619269914706123434232782167859303813874105066398091121990352966379842497861601486200281047175742380230612194834942360559703316603056646483670360667351674664169539493358225051311762892521567517949178899598389482426200123151229307218311232093617668867618406948194541409170675708565928062915392621662352612735255867328245201646117030315216301512254090092318438794450254610081109943044535053331623283684988031801475560924817547718159490881350593635107553525699344455485630207754055464870532294370496768517825766060503131956134285728071709564632268389312459007251302823885925782465048105583429117800167484650822921272524033065906432942455802313086750077274826547614060909368127368894356108485199535366291685816014286589138401102387094646745089552003036099962573581167355063538320749908533663044763732313350684040168062766580534915445460778726532244843354218261621928225376892829843941798796018592110727313632971622126351284688280019048062462095612861118304187438615085281707394675252975854956868037791304513359643403778682178515678986696415165724034051610025918643686274996573233445076754325614856018201105991116580898936438402275494851323084176574915437503473118371011096136575767824645137689619134646402292766578227262100730785144309909168462157416724946489106775429971358721885633026946751223707742235634369571950695544857743266371059351530474699234053773153203032934095870854888338837485969643513534041922314306933165636603489897899913200658936905317768438425392789178582403036283190125638061927824429833940119762435016015795384063580925830870215830946210859239903426486550560265032870977742787194101975314948035926347135610954348582308488652278999762630399153268774746137642789171213523130061552941646051629123410029154823496109843508809023967043230825176039289693375018257427211698070111350362902318157880258067983544595672766523491846556338552743794743135650536971948809533770023935903959790016271167811748955787103776914313545625673439121664165962867995977849344777702118450606402082524028085802414853788195113497769094889028244802512108699270475561939792430514167545787779153124120340468032886480023800986495011567924831036753860734364743895449152947257952922790043917199855380612454316483465965331995281894967810812387694362762351699148926091287019227690070687091537270413209149653364037264617119001007112705757139343019560049367524414251745100280325921962866793410627499440800434260378510296595981285727360164691926060387214597271687988546524367228385300010969691713951614401578800563787186068298286358109049765544193506362133306222782037889269816842036431652878146587501794309762912495447325036744923458422846262512241257279065111851554967718812368931368302539457401444401359149849058073989069843572358715344835942676336406517476768256894793898150589396767342483523160664510638591439457556269367568265549868065508352972270196799236477367567730427049044922332485095013756220762494221197710410103061359344955291704332974967260681387494749701275448265799437813133471711979468663408641785642663054836560673721588272239765841546096187110699671012224601859872682326201383870545078956465067425779857160127720816468028930377799648587911893216983791553694126863144633545997834438780762321134524686445246454573337751911363906351882639545463667563555017871890924270320772881829343716306517274876686342563854154790361432903114667444132406202178332039643947880505676730326637262832875075019338687447677301497709048762901753805171623416918941468977667752393558805239287153528770381378187672815165466488216042349596929576105115547209640887603717542427580598595352399547844127635861327744304860759542883524676170006577688510113459311626077152613709595254921228348066376489945870135739347996187164880633223504632754954067562772488807950338211953281239151976625015292588232229697865402890673521811357397972226897919377871991759889984133315129176188653420320980849707258912187085776564498180248085399568150542144091031275250966807850860301281666381851540956390596055559777048726902446898104310188290373688030948942982206903069648969150126957552507117123942491295258833400806494465598427190449601873038315246290233788413890334657357244188566304304153001634884850832138211370464000782173245676875306561521620438841800257040978985298026496007163642809652601930843271214026085743653980180324356810246713920504489631271289977550917951767829985278980212690555424805952467584869859901580027334262620453878156286740278242280058825317233755114207691992502739236992644453642190298894763036482518799260737893699467976734394843982722636166299187122686034406327864283352253046863683051916104118652270843706346229640515377511847464056460042262053148474723906763879728771764015420107572904225369763597551868205750900935989104807502853513935559228387871715719673743702770825731426254515070229839246076055975973775886994273345604606423781164424426445528268339027614152838135734634230410327305039209361716171138522342846472550606607604581121511729237133642804670180725183698733030770337495968123425812803839785588762674641962201022520900058287431064776922706335279918125707678777559981985534459038252643910524990672229060228188873634254613666945459851287375615881366014632238919022816247970200010452172632898277271439300135090930907579110299652563326999314336796356734902136651632030577739066112090109333389337612883542216039498947682946418144741241845085761318602391631857374465827407155264665239042767370261443127959413193671964687306588973160279327401966556047701879836535917868860380032578408816613684928195871586346032363660501421307156189245516785642788510019531874422047801394235382954698663079804064092665126271192954236358266092293185869756719401693589199212107871227548728816736453000005853643786719299851659211723750051062236271657958257144303717210676399893682252179726910805528011131153060418189022436205134554301071549066325513474170627928220926267339759096219661061305851285730054137761466712805882080365041700484463493361811530078366221048684062717692244293162595561430504215312543846075771574328780450920189910849276310417875476063856705682936908912485078720085671875593030789165485617170152707670644113100593181323538289352842093204297606149393056016092709232173400197469193582017039223824185382261995050623002270617738123884014451248184436479162284158190843007351813114975244119957939230742196502109020924745302633719237797179784717207086488736223887887368923513486348189924377489858271709771069733216451340738112029492110235124849910946885067936430304891779713533495126011946537473812031815197343006711160792491150823845990813189735642278852131764323173157361349654190582712499904310796165944780843595784956405666324768096505752193828926339153499280771387390990755540225440646517975700712325787717697828439392147409498635691695532777392977319340596557573764562425317833335017311817655117204058186218844893996658461668537603447930351728213614986759190235640178208746184652840381361579519123264849291441999849831716998311921670316249668069263111342845830059634329358435395738181067872285142345951717547808991035090796712926670552515263371612512490413659634473976676944299467935075580418918896905181784328561821214707290796750010401948620796693234705010867625847231544421571405129521963158699390687986159118608055141255436824900841212362517317125356127679228090469374806944699789490029946862769259871461803937419881392035951820084111611333436576640339606021842647908329226867700025905311596106225722926020775793255938721656422931142431891000852861735990118588098728148193312937213926295691285427616172899873804047942883472756013656085174375487931783131429123884122616408812875895241476200588274042673454696312709753763545443662248351986899771394265253103677748780431130967550777347634435529402193591479647882048490733742509427957219519297593721436200513404980220202858369527926363117343809899477746457737487395330242019345321380114986313835485675843861393778136025276671179634743399243536284335866275170406155593404214396916255428291174743314864187732028986795793037151648992288412269347273880217937297957809243507096407770845120249595495883185267086157077058198587513043277541815112343931650842220892633574386617315681711345995633099020902331738622125426683637868695252520871739043890868697278258279740208753138067029247547901346600393758745918294372574973120243930084165541304498647401045836071401576583690228920770522124078658179985902679982116151780141598603000396653334950324435920825824152530798245589310321914152805442505062440664470642869548272618753304658802294659050806224967151547759581462736347732338380485056559968860022206102958609037838205268341930046663180714746649537492009971914135653460849819717954892224441180849552926087937850589260047829373159974226659466378389738965957098546184147830287309540276490719872084981041752871456232122339575237824685466084791298457501551235344922083999743752703864895031596992358593936545175170246383368207637748173081148919712860428564740505406151690691445523571394462874942675937095572267323803515181475757751267820886551949716613783946713294136316915010059704641546781011158674687761704616223679357157656393183502900123323295769668528824068294771399132837063190953665795761731726132673790229613615639083214574795839108911916288025000501608954124639903426815888306949530944561715405760928742245658467599632261775192571782626190265026185821245250527721790495192373857699701601577660697342145406588095860237643020111934445127782579505953468724060411249197765791173915803842345020706273187564723063887081448070778691663467186128358812452382588400471220989273458350764649861339641575825504926936466818688299594041049546661161132481930780938847276721690838710157708488862993161685137506746596459482764225558587755452250490695227809857985986954406302207005971495952901192710346253418301525552603395069296121634275701003431759202645637378908477322500652484405573794526876352761232347307440074399143291991583609900075141788158298296988314197822663155068499288458961239990548349017145604631201637831075993302119521036037337939071813110269374888040583561493453834700989697316783132070659940211559811894492002431224713678008624442733251071043545833047729103102704939386799233619760711720089854123845280674491375262349143566914925034737910433955227075096676148306735564007727440965935860394413444937536922824122376997149801318890529603373746494660932865655998927354823956097569380243713380586104251581164003050330488204166927384091943569141407435171968548296676284594114285641345151208003305606466728140075224027200953847515469714722721444460621194257113800174962067644748268321158489245672021851803934590762092918685183377755403790375766690304522775069449351501576641001201136995999460413213440626300909077381829942200797166990192013542728933395030240609455965384923718288073432096938184410145492758203115530514385491383352158030163771519806622648471935504381128485438091689375868817747437299976944348875215399720653620924428050510654232877657872738595014059302288430246966149822030917095632190884473206649993953473440426809072074298735837776295521383507326439308382048803801193462054719404311949916933215067256006845170141865196706549641519510723819694838349009166728595336090526323031041757136844789829918357153916618174511027419356417659682964421753932133911851941983367766713905258381413835495734601869895050065276140401368025076626164556119606192866376096109552627479038764116245335065170554725744350759115749580444043170703450768496170558596163534549776504411073462196341283174765393680205804864735042538809336406219980760293695483547990266065996765402026539454178687204052553610249379783741293472869957084149252973308270479611625342474833366914735869559513163528110226590583940997269786726151328321436073227557011937869729760758724453916493187242181428272288634704861139511228784072413250853096276132273631394746984900054732095858676944499165123101325574512247996489637035382646742109139375284014799879228876675528330306592529324738289677270645604192083216472756279529779491777486086330179309982926101959448051930305529539059305012116506659132504841562061949622587432399619827050469085247379021295377638647073274428450712255555971177373547775666659199158312070972673726575784702318146420599292623697366738516837411767047627809551955257004816694743684008374243873598278701079260322630616229075184010668584173584015455689839889469967514685709656290531411115356505999725998963627416042725689662383473468043458676134879022901336685960869295157168556151057426934668373917191725412400677399392939662710886523368980344667576206192846254087997084645212546543743001984549296567738365124733746281832430578710965074605041168389536228241121442585000829268947080288735520401737786749558633686200931284805603490447427279351624667033402684785246066765983448084355249287373888638000966568310556964295626449473851044704588727499167655665363862492274599199491917216938201811156777713801641495917699482993135067771180206852833081048980672932272127414538959307477398775725884110824778384190614345176894517803203593723128799146303912917695355297482900622480845395193764293553300206831745495778025641666099190542590900837086261277928496337495125542445359410084985650630428922358272900075290123761128039039640332020011286265961577095405865760727898035005870422229547004315198914411120454350892380661000624874237050739857845575212061427583054252791388638350167474011880868396085183834448895528374033076308116870820557040475344225875635096622835485452277619851567471145278516191054125887172096285441932528203277961131605367315100200706546661115234702068752296271279760938808345689759572443472058443977455926532533897640319732434939318127313954746445034245579469802319169934141960002411017171778880417669908249308277752593387655892346233904681922951335087228841306082581725279046355025683049700166962998920644217292352259614994452196903574940370466937005597053897598100388141666870003897830850576524838814617029498465750650648204275690413919124037056340001291858172061494510192265378101019647479042899021156157028877530564850665427532285081220713373081211540169167752271937768510447594271810266951878931507696072792742742889954457804216831974988097450162069995321828521329488368619910875493406693943400999373071132887017323794178034048828269609507481398311714802754499448608936471804530033914810450865814415864520368282606369872966861182006638830309874124755601057939927180826260015956307334628596293590321497627989111447162896927586052037451341628827322311722098324805538672692986653652742559583888821862181112799708756218093855554508473174039650233331805647163089474219661402555227686904935133432088790852919186626098411799787813687765891104462260643466354461294816580607141672124071945797172791399832246310746633337573482562283371267614479071349129838074479627752965204608079166615767014297620692421163799877326104878484158071142638080460689225413392150551428542775986077917290809013939959422730962656090247048605529107530949702916005315533173040327483976901518390060135378996532567930943367518158603581354020669479016970510327235069855233548689901392113714868378583267092154172981531727200220903892198803418616309251544969309624899844214582479280929428094030618533452064863219479462683399897215765544680791760188360658957613166889730601875446921251745441398845929244495728775221158310362887063909073348599076449080304612599726729199030795320311466173566090417992862125644243180724043287179275085100868365090414878395519295102732768394419597354883297979236350433353007269538485177496353305423432312196862134488523470049302586799637009728269274942217635288316481900188109451530788147863008016300913720726546559539399184439354459025128806003446003072227714478999547281763629289576411550657568560530869477944152771325628568059450177787331454439674410649418731605397647399845229658153774403054744242007652685986380552138452755350167449024724093591939237766769131900333391565182536865512991611691734633690536781470252563530011731042639265758801051944007251096254444884644375034300557198562624934579019777308955430324643923322897165022043591851303064282859994469028793638999523763187742296804801258709700915859564746411572285352362313190550521148295145496165181114661178940072817553480898434787128243103680760436626792360374511096196980630176187299991979199101005287721989710414489230422542637439753045242225884291063468462716835620811218211954700601978538795168133467336404215933249560357271037451565769499491835820912534512058213427067557522216028237258147259641264678180918606321836272964874896491076012919891829336305424232388119057126167047593475685973003972562779046580315889208539714297788486800061826110529364340922501425581231983643842181824141378501080041771613153074225866461835225795206301528725966411580667737008053659497175380519019634084856837940297536320370169478439225515679420957310601940255137861441069839599745935805059891832872285792452613119414041087672890550044153809012999009848853819892308467276176568367551686769017117661269437097920361430464786563582623886346939939232525770616652258365888974646272408098062807159236328193301594317013637674645493889909184767052251211445351589027085486097401542196895153458681981538645979291045206131191497344090962813995477263115234544563853532445557822450236187979227864784528919831642367019692558708302892200588834706664328830224084469722907587665032252962868406784591560681781762461397915049984380496141201162660765864025091536047949174906548876105422695413980886547188983739697163209656090403842390066864405360817112721425904401275694460365323315123036808574018551393423425473711291909464652350893195985471250682222906516535975553860315506350849802869420785662395898332244915683485919569815417158962790184025423288083437766777205123108188679559215940394078716086731088709919415318386887954512731829224413189500258817191814618113409704177256456323609690856582835245929882786972211345750194270509121966725892695128737211046503099396961948704753524213795679471255216522590007637024818222725859608621732860376884897353686428752961428383032003284049827964153209073988118342235625229504273761462680597532604734092105324516216280803719356056454572560341563701947046496100987532133840886618162381498192873446446821334434551056851893692981706384725416356982536701723434789946236408269353438221746009874107770807079062550007554156605319148909811056244113494102090784747259451363344982787643532332560771569835354157478927555115601784339813748809820163341244232902706254691534679461817916811822717045138695912240663780601651927667461706303019496215315075322789999224733056080855869924662767768836151067255633688317464866221930455416097570359521811526320334921019336000239289323358356246262183764225932399843323661772918748815519864567585367513771128163167166752410829668650491299887821547509241192297024291773586492128339444784321482385429519903172788835456936135719057915602489889485511527268848258360954177475334661458903826638547215462939529500508495113144084831752160779238839923198499289320990306745706656304233645411938233444602308162862806995047951727991231010008867022300359828875521500291670259228029606834966806241543722322623910419385757483119522000454529036076504771970869156302205251565574377249655533067138805041263466933606757544875625764192496740296678852226654829861535391047801281933783054402496608284684104451511385184162733806625545596168086385626849025716694077974405431536901268333306109053232264535337547259538678690066202005034962583129122190042901562230844508415509192261662300890001221748748547983964592930513706904027277329764416828816900222039018288419273280052632414005318510492837892934774062139240148836201907120916488117924495708961291119278990163703214932475892053281627293954123467297098650372903101811276502118312086873244315320458158543542127063807940191151370608751438526280102323989157667037524665606096723039487207324377701769834682038782205715656698158499487977632879708310720505506229029822980693262417787234219878986861883764510200985684230201924323943582418786824159457941488329674409295713716438518562366170000468854155340208565076955564807465772303361191098963463864134631515514242666640616346371169922045527536519876029339996400456715496373206688034434986011475105048138643949844273162381949461997178221517317963069461194271269100052404049788356512839145409443827622497523824157360553753520987532765973321348940678287865487882730655597278740260242568385001124216590113101078202030921045155492287889227801765606649344139544186437859504920406930519837067255408739394609729387501459616879208155679767005661430219756028136906743420120534910874719788575761224392465985770115921507105565993840676342125208114486794251227544326030280848126701568374493592717949655121467676799932205615918650541688641567783469588352851666580029489620103722652658465139498675973165861834290132856482433252808893094561882300477824083047520929550008240565373769791210203510935157189872428900290086418815787457347347377815344208490672511390989563565173455974991180100427254417067588668033199835290919728328345154778096165587960561769855902809831474469650121871050128774830629589646181812132955948332186132569463950647143243738445623216095798058070900441921655529212929394248178471670752923807956625837746978183976845560816392461103763844381930632556707666159364565255851117283664350456677331171737422563666815218811997795284540546755528501636439202131942848618991967561956782774462995401912076429291890069848973155724629175110293719180501565755532088284025074675465289593566049073377253289464369070378004763058157020454177945285434668091362411632518109073672867782696870842721503068488442347498211502830654751437486600201027276218305333524434717708641733666746411488607312464299303810942395682403154642732369926476955999062044461585132040428210709182917306736531281972287212199179959355530320962017685237888165508731833997405180853658603850261627555010306199578662254581156391399721382207840008218566484095472611663463985675632853405654477986711223366169172817981128167365012336379535281894991924723460974837259616728031535439530696090593071862067964951590605041857384703956027484578460263896521666444377695236505513552320317224469203317609665894034360881081418570325782572918802243402625295132367779829554417155938651120414959349851848300468776534241856165733714536043290516503711832963044061082389740048349667327772929929724704678081253576315000806575557647206865179054951191853100251188885598423835668886409535442487962357022625987177907734296755940908230289484649709845354854162275592795041833041357887191927173190989129452429653394291689286076659003612776539826395624414328970847104727153736335121663317951224211718916505181011608731786611892271619098814254095945784155797727506645609288164026275875420696726364817339178461027933097651643182732811605697642043366795515984412046281246012855056350890261836484865610498291313804998490082354331315224746595848652373437524664316196149829601879199893633670572445884787892595379709817313507398050503047507135817586412251625722537369518032615811898526026044969085781931671008230948523173108857052115316066747817224650676645272361869495953517951076151974542989305517214832794173670212124667748570607977430116109422404536040640816417235026800856950780256166199972157858754580806267185535160966949150283896830279778247468470348685126033460234971390765221701739086369008094150999163949902147925841615792945494630434628555854562501619076921459058726536447047707001131036493722637802135353826345217928650553870474383265483261661413887920828017210514979348410144157826053393233768959325713420417866613430519283689468825582509247738681406074917586163048708351743117979818582272217877944838301787278345951596028556221333342968236111888718163798324249974729810906666082537452873052120008398974173947407320661094895202465810424616250256486534877187273502290700569120097193225719615162662006101089990577065484385938484857245829283485533564982758061731739049495396907721800132494911784586858793241253107666454001247724061115073994184959953920510327867142610858711868012670647242942464616921665104533232519078919819538726022495625912497596046636796540951776390690005767930550758480899552600818890722401120744187594181916439086234741579407139940825810925844089194541128211997551255688789216149089564917466537462604987563747608597617656330810316893577897166796768001323053559574976968613082378548793059981898547065978967726928136902106444869014237256021004310552827811312542544961427480162463131483846921027369328458249146779075121651671764777769383257692998499248303607758750823674282877475953668076222137126933365987886931730505790427510032082733337775125347786051839726831016901733883715482782082721581442581209670645378226803670266514217379704404112830484414736266177893404887277327358419394010044684664879593000526989448589947254958982553951619188377538539055755514956698281677639024171337743616171525506034102080597612284273664701514034930783605588378570435394477446881399010022381922740175829665172315368908316083609125777671397391667592717448619218198418840156967433749522777381406756252143191391692563426754548206333162776970608361663028807293613118341046419681431258311449424555547492862675137616461763598790250059706924379882924040171051762196843286344215227922980885423151239009858031462898841550917460885559067232733089671070250310881639408533077643203928318823291530585099034145897259212430590365766282237494679303147407402227090377155720918906486402837267279349891533516154215108975825134149231016085270091316520630290116071156277905766867069172563730277664569334009944728618423253233626048428502231700725350470345822471741500021029380654716755143397536468853677170530987134175120948153290332019965541709896866350028483471938105168280961953847490520925381889952903599282609608644806653051724702681245732702536518787874375689758916256330692414960249091314701921369896206754397020771671227088310988413852325722970202380067399120557541633337367352952610516190961678497296285732367663198621098634974343810855544273259974043745503736756133589565423320499976978936500772349057527986430311861204492030390664797939188750392737617154966102326308208475669369951157534197588024428092528414767692152733927997825165719537725337596840250256174243731643805340952894014337110811130434487387189191525933847765013281761423555121802055075632124558395643536845078502999949860140486686024180072704034046324511661382413307699731587202279631420687235857515875584380134262387903130454743870271039317635786559148632141622098624342838689302573960849492908268229889495275704494802915102978808367031083111811530811985008650192386868634845867123711993549593185618559662532364394924450810664948124851480323861875217635197790096026775514239525094807039465361221820635351997663773475792192569685238026128834047103489082942258631909219182548865052999631744919420673297206511827071648236793371403326709522562625486413327530569321428843906278341386908776809017844309041861672759946919838119261157120420574056704295572587734396217657847192905032176610255516095967196409664783739405789686001061847677422415063506826671630365027434444956154097065236896385719464171011311470677246886547140975297612077590388850989333045636667427004632309577507333034964616197869764337698692830589018813445374146992657976103554091933697334588141577806529238797018670851910871032635751897561537722056995526270560074035425011592323602122149032935012615532729376532589747304876051884653006016860222816417624069122414635585313772002712864555098648348117401688831819178160987974520125705364931134568884363843808633091729231894997705705591283528542350820462850468882355075535424773031850260829864150218099310859940238497817556286289341583812447687539454094170011561163826834763042790024583716345337822622166533725098870948331341357029255391226288048957146067130360859937225330024776100420902059127780946225133614828219517941355642748560399143056078507646452897012657603008242863271109247092648832301074550772753448629147592258574860980182059530598477495768895536435674306092024531295977688444848895917031160715052698905377191576686298656385881874861025693283320814234721527960543404843692843246420030572990823390238491694226842153486163575293944041512638879763555852609556492631664361233224493093481752670889274650784869327677134916760096712750019722720581041991606176759576497477248632200000092772738500081232600092861200878440146077216425034784908852649531375752390678754558057511722678378165036706716964120922645385501856063156475747134060798917543376517601067257097858763111849393941816748364446583596061494534456484228586760263057903329577917711155468571066721215119602080359176752271820787839252834140557797884205458747559486008730905390409360171627274169822285047037870278964880092592145476774072707098950181274629953997851212362274112719434072877554384315752089784576122807865792891454162281162399454609111162852791254529321772422076125141555330603069614384030269258598263203127690810290524113763845459560122303667655592758769288637699104190283597268842386727209785233082431825706304356898551797553877981049360275178614799933690560060775204695518763868798783374305360770367772839175176023187084393665190931204514389642176916061190605923941581532463270933038293883932550556494035573250605269379538078001511316662721188384581480518332100187474658634797887999398876201251656143055169739602369569287492371720811167026606914704157156357583685088912173965831599933938178434412322206265099140216505451605107037811593027166742871765101387905394013926131100304189794317255794293632231621154137724450535593473067632570174746268433143194979650934057991963031637011705992928947801536096649091066214729270370794308384445139070876952993448046011802537496481466274816885627303421554732874124662973304743294006465220935382744908749024898061617958595596132695714506727675892765669128203162534217913750479500734523780595482283787251895451888236084143086131638023101520468329298788862399471470299304406512699831804738598060153188938205463146605040698722887174798371320713199627941121274327678450596126856555471823623721970379685049235963322063318131122992547963455563687610986867977941129661758175056895302506819781504733004943518993235556989466000149732313182256746343444044874416437705539513015803904310037861826997133186354200737561156059661372728073171889106579180416268561974521837133335029486302173820567463514681804758262544769291377549987714312453111036425728635870526823786218168696429010820830888574120583022877413091092649536818775954983191854211122906230498489406491493009071316090489326375733607597258513009971722143478829896203975827657716126822933786658473299333775784399748105815513055292000351518262475714475574366970746230103277233094411542748864982290965680116244438003230338644422076336393036471197216958907548367362939982341052630325149623884077962879886200973661875602422226590762729721835909661145419875076373544507348770589218571884881012525946070718096473881520770436737519414548927110865538389500155144306229984101766407240756078111511441911635547492046035062977948385325650053525208846437882088828176767616391611258860541891857543350174728886881123994459614953180685993938283235551841230557972650760550443646733522390633781845347561175157135074998588483780962214786898746327929225109032925152891099908805220076827736852427773203136979412866452375057334913592327227080951040193016151642327329795412908474608349043197899021919501579736384056308005301724803938913574312348517630671306441618748415751458260561473047177252730336428291988321713718255825933892491306813738116610657965175214041584736515222195812044393924049560442385957943359084694223277231912488012038702525333409104535841749611507535784264637264522043865493279833189001138126607748404204450849175883348524700972324312023058585947875941614393479769215751213297243996749458742808197658520056641621209855545399437777050711909471673419918397331461838354915302380588319864841612512804705882673852783930556458358125681747205059786811545620915508509306421052548602510922008527617973844913659293346766476508514761733195152686045608761845125914556430640726165719712655215886061309429203479187099791436966537021874626176741855939768096984398852256888146170267585658062003710914822278212048042094639014710692233529351803230767974554798093864885567347796649300299247146735984283659919950574575331543031457647146902074624810710292488875777819070453378688150016121919792769889415396706443960300631322666924281649494763983365047191580288031790829000009841364375151524783733540679450111868654277904801924067379185138841175830207606645719048076331493389660682807193813585505860952155471804900237516456190771338841844485772476649200070295264886085029416904685815808822645486228314763796847854546105110015425103573321289432785426475450086918820004351342084782058814069796129341418181216246280224940213973169304830388341803954016127748081201786078766050162953698947686896698156860100221396856024880752716791370456554567349373021251266946646145409173694846144364710718544699106982767206663273900923778277779630754008523001395021167398568713429458780381999924505495376211448550198159158158784975793323069769037953652375876341314294691144965000296203864910657888216901920098311422495881025180768268222106632456991591813704071491215934164077937687195165813313932410672925127476894225275592160632975253305718436555350535026717145061568609349187942265343666102141970892857576624157333821134151359410094176006047584775937129281078259034777776681474300568838351894070024526478706281244852642509428432610950177508283243030114843512830724166998427474903972769422893945070084273659269383497193770299664032606707685151690619016345142448954205516766423871466897503725973000595058413582980841711622425178201346352401485105770051874475809561274228801236615345388358622881474428134957320540595924457031117889051374789106072931608909372126947184112619505772652921682753290289980465855742066240625696168913418941381747005766095307294856829967669194046747183654633719548193103822436598985201877216190629215204634077376615415619531560448859444916404513862805190673819372150841760086821079187360702721540846857452298059685653749875253017843148367407050290233014285735012486097158570403180448819793037750810572284016700435737783274463501001045075632881205523060043957174292992703262173814916351335153346168005280327296198037564641356102835987921778153520440764196015328419312840600648808000247132308901456125752743141618437792690865796116751184755862125614916570013837440932472074405533943758552291075744308071567494396897376264308271770966599349591491654394366090423004188859531916793238279100162907878204382473987057004043054240544684196831081263836668310532088473715518551210748696781034108987747990077118226554351355737379040031434370040691987373477050700374153066212200127181621626991970332768115623020588093698042197646407288177501811618803744098520164348008201126799914147895825470259968558104275191830588822404592304791308908550876089432292420076996435877927049584803891053102227722595148068000258433653049925661844457265736500551124017565193611509520987507132189902063354129038686019587025781063408334399739739853925685456002686574274878778606326882005665208833645816382035485721022305786392454128129558491786293147692655471029415488829978202675718019389287806008828416532397397533139859235268928613276503997195218328135277362707640761687501581296723895661715407199890164161110231960940735438384325466260793017153111508700025107903439684278420000305097857479949920780197661816773811904821128428549499085371517781594454406397951189499228171907611990033732067596467041916466982853799714771413589285987311471215660499408326262337308669145274796605991862839156962533281662728021386440761142637138688604897218936206682557590963607912042324298186029016622917005621101370589023867783584096702401407875511076784454212014110011860640968241074029709073365192172384095382908617789016279722919429784717887865150813550681546689254028496612429704917029687589567723107032585315283267385911039035545362679016019226008418886829362869378045047344705923339765560145547957644185232614122004916897208524641193846569122495939051732915775201912980683779781769003082688258057352285013429651613159045985996508999102744678604167453414827679518361095704555568980140036982897582929813976235770057224552831040897549813293116784700577613826429977124738151772500201944168855106325241307853779955590936536173803121300481913634781613535461291594927454972226018859066091261177831041241919777193240618700598801330195023962455719022034817433105940339450285091370363339229869282951648987822250242438446011320517445332773884399263711270865890512558698271583617171049160857586746059656786317876598198023590120766966368451306809887924903671364826465663042229022945655318589495863547331452536052493170446404785261218212643088160614567893938520604569129649656500975911600368386983356097916509753702544357955474763052028447170289199697702633951694703121078991011843860235718092565976903081974137229531175702851238726387839752671247224064298078516190447034048408367626643851691411939944781862499003148330028215481888287082932658141044377785413580265197088273485478210484501831022816574332271145445052702002645811018172284713570032820302141932279340270147103507748254502157712146819351340870686239893748841437561733301568130641329679726902871785091043220566198215641438466006436983329944575194478408866552480552278891603257822757669081049854341953263832157958684426557600403311087506587777478845410105478532700424716442297396429840663394363888511416663110844836937136747884530637737616113641751297234224578195045788054197143484996488948222938773656031411305952646395260923170622763805617799180072036275427966050194717877038706517890414285330714331791738792041916754172958623757439345866981939602675277577429415982197876131161270002636070361948412974924212864230516952644018934062596774907209194021779678223265283557093882386442439782897376288813693280016454555776398510448354797717286319209550943463505258592408373007889750542210129378143981474068366607679998177063765529072373635185959217076381982013865687987940228514906847374351049420309167754467659525235623161608326019696331093273521133300854791516503652461474709587654213700604578692027627197343187325608540620319492848380443964120117592219114286775328571414400320510018896624372386931166145225967575545371088555650280478289293576645813021850491543853095803795358735474556483934564095960147774680944287037154907741601392431348406550331873420029364618861371996598727794796226939499361902754923805638583976768004091277042197038378731581735215090695572925295834486329778495322625468960410632351978791177977439828161641896640895492281737603702632837244412747139619261681200370484516149734504349824912030523967707117759142016496327621194134399464652010891421363497099751302073500408281044333573454363829642512152598004617426593689891662936194689162501928292810953262250861960538837829020358874833647839251935698607973018678361490215542457374575053563341588096874400252165362898565300716298019054293320476819632187655533318577119724777752354321455113192702360805717141282450172583658063718746884132092208444096180223515782837774731781545138897455398343265184305913055150526286182400165504759998037887735700439546672014704906400774333312089968927603711589056041047826176955097907868919035334939974240824268025548156917619727895776655273420320226752597522501281301821261115931296067762983112609392951006222427524370171147714260249072730547381669633024028610540472843484333368541516139141714937232329095374375353598436929959279111710660426310326220769066137219640047244175362684253234708371552816372524945440899820887191699160482935857860746106547480518488127528245299771896656557054229892253827774337015594857186691356605546695494553014156741904085851924291289388533325524335191248488801849168831562907293177193590521954795066313196019802164736271465100166463999692128841478546794849057401102776831217774519447145500779722268846197159701389180684595200835984166435986976684244550072323557303633302323636244681844071383939395362376136274452669460684963875719590428908283978025447502145541892560551305675195798608944638213818736250323854021641986420070784176735246943277022853683578013756680190407848900254536934232427897253006977114313336674679894295926695358317492478494081861325726627424787577361620109602742631028049791465832194195412172541079171863927581190274610786381450059105437180359118292032796748832782341239820332719303138022853975019612229332833976826664343151067706380195429590307406678908680042501696790834054731188966315817028174713874023895208640665512987547433297096450030154421579123756775524007988031436131555446516596008484167532893457894846724142101699505310615181847593152583015932465400128891050884998559933096567824485125462133791252762825693119538209788466254367936778940088790519054768783980268249106949595648044500834652278471156896810801119757816601282490780383157694243636601962978602254146102965027047820509954557795181891006166608701482981088977781468113273789448276559903249693154880107186252218624948489755493003963345025523969355703803208185825442900731141136012838015310831238285257320596882067072388115955042712264104329226951311332833194712256170843864166781884684592412695765894197914271399422952736764637729281594531023621690299716526903045796396061692130150781085677154536530766302091858969142993631530802973514473109517198260289515676773062641529733727670368769954023615257849384127143390061114899867212822645423750295651528220520962106206374597312506792034364251654030866753569285183197694865785894184541169243798951438306678699349263479248819914762097906731462378201614729209681989963910939227871874368288546855718618544397577403019529068474874287844238209109503005130687147182760997777820039198768484114624919876540033237456659963000766733928981611177853552707892678926172151142170372111320759787261853913571278168028714172128050042649070011499192694619111273620267652629264444890887666397292610974161241788506053985648225797103023942358780587100571393595178607890147857776155719236516946930651881560754120018025381520777068563720376352763421508427140747599352196443838157133808301569503499751733965339057150454956848254779308121518721540513162927015589006239280711085211032253529516613334454962142833086559551001425092318688225258315765402728865255744763131736510322070841582572772448405013777775760998732699150759025575659310466379417630717399297793139707235937865762872874377640207355659801949600152475717531220449395740503325417543339781425792592285935948785590895575503067305618165688801504329796019212771749698559902597584086797301595088879192887438378605044764169697887876487052052936565353461321994475869947530702711131173591108291220085285180711662471321615720129382506140383012179323711865084255320840195916082808604828511999876538875223504370238325709159413748522038009554821931363824301926695411094555520534046499625906620792231776912937398900083394270235206630322240942437478010312360524268379743610887404690144467236951601442325027765850930917390574191985348468057713205797666725647961566201412087053912477208762699197726056127397147914468047715045286708083508685377125276785806726440745153170020957221418253731668416833612545652657031828791108377853563160413483431396204094376615756571993912429346253934741436404301240787577288153380692407265782915544905385061630874646144679371842956895348402421597942653078466534734719738898146634083279819314723145548534231096849903801636556105293791605087283755369250824962759454091152421278138228568286222622635151370551368571365499302166808997617212244744603881106818112157494325195275516035285111292575417568634260727198251348484856421984828467262554204217978385634969281747199881448754364492653678869991040499663889221816665472745368186818910947473925285979999448827714677794748800372718481584654964139467733240263314856311256461071279499938588753838190558669612561482724316919772968824470209275878358501084180021681033219628795929471109351014265283233481815257499864080465969032037556556026481353895975554608151417135678417002162083016590073615993000088650474580285569221199151341027558731200518816865477973609728902465473310358305444436371703427873016796122344922160243729097154469103153656452617820979027366031176534282863732739190733820360391284623877021227202724533746798089602700406627915899224758047847004364592381604575403381627219667134635107881000901772165039709045123426233138036890693423058082647906624476462268897626025140086142738083542959824249050839254977495839801030704217293254794641958723752866689023989769960128950458302145795359830444694745385466602651728036606676103910341578737710194005913420482283222822934082504592016753615512565550765172873806578201380783386796382358048588746837947542004457830629785140400961579220138778631268441854327183836846956731779285990371723456588806998013604564148091979231077583018277194625860172748752960672984100120663512039548735029172170139514049688106090560371453841201442859653362880278260174690431334644111520971775077116805656818414755458144894394442671895531710470916937401496882835722930353645179806039264668023477987681160309814303511689424515514771549929540490846430081982012276109206741285257485235570499701103155724133367236932907836514478730875649706610565251127122273429220554819123866966011769420103862776353239029781367533190875793530874962347851182143857811486978763241827151209734557964217119133835333323729861557812878047659447832772681356146257792748274436111401254756005856587619718686387611360018984475682567710822129613518728526205090841617544603868172631630109233307006296289864258561021501571975888405092236336999400298988336070134747044991717845754008677849399778016666222091586817220967506103411279367334224057797237293992939087840655035458917357969090544731422090065261694733337527095496652663301917284997157327341493116906252076312658213278542479641737634848602835893953507548179829296798792009231116756098189706918602218481735330771674404124690808242879610130046038659333597692132341327850411516479197403637375282962960904978142177619857040181485916832851332007267367196398542657251740623132165010695245279771357897427109033416157738815159435130460389969429800956722674037056439945038365512993639430371919711094695453450436423152841018143476405421852670425990088004260285432307848685494449889951983196616564999682987896057810535098256056829823093970077741110591948644923967607632717270216068590210003590704035870730575590954771639778027108465118636042105581826031348432596397414426943529510897625179851902905387253119436453485053602987259376021488911205239955984428562395501043347902932474682104162780690850649842446426432344748810751800879827725883676023419846092975594995752932502598630217065953852740802975162391346457248312808164475704351110924125311303814710048342505775331904815684689026282875023486024317345985475357890864548348205979598623808569339750279540677981978618736063345409673437186129982509547663355107186136781167574868446683766829174558943017173245075235740670126600456999205543471130989625269339497903635925775707011056846018444659514056357368668699092545241522918659236091674586991727925558382851893362781713698010683039349296624981856250647790671228944625034688693193998848330715767208632111031121687985594452833768154598403812659941031350762765560235589099109859969700511176102312665519398757389678355936751501145289501560519727038766768291045480388679670545144855549856277290524105030347173985674968109293387271443715915672923365952939875700599819982119322071023693695655894601796241483934799953002006350325683945628597566456140482898907670657955871591439142907595467113469190816943691762670766700429829153569573526785863739745646724801760481571824538518615395905585851250381872659497174575517215017154242338344524903043396026650160905047216022517816575897997829461195424039917771794191261996981997207740746333007637753565949300280720876144138884307652076628797651652143727647930165393637325186774450726842583436672661433936214189482105210968468804999765672154574350719279394539021678972342844337503637461339877721819711813517553517032181793657010570864147106987394982692477102778765129113910351192462272959578546938412216802424332777495883419752783330097351359758767882166790034888330002897023905886221624548354103876187961792719088098333596464049657677195869857957416561308269673951186420053702498318726514470382849503105822476449964511812011864921818109842752161315693932160788222801368384492611131146944546600366299412296723911615863354364101038022047421731870246328468200429309055728744444633141192444104600951053043830421153795585367263191376591479687016724666227011994786347208433274485779649971447639730928621441573694987712403210523848865384377567148636174056113891912137762638773884444088503106946082131643169061233312966078097619028561094019142173531832934474291933984165851132594348883943767441750881657864533818568982746176989473288228196956535505971649240503976880013007379962611038377513453497417287786765688724675593017560501860085135366314086563432876767662317538770161336108117886875753499263892864879270396439571074959581270510799861868243912698433393377114574595606792799016062726768677308656540625532546038965266765902730335435568089580836669530877295224646766580767405991721700163370232324022065366785450303276173297191991358040761334894233115457104041854055368923663450927283446312615943844021958357546640978681603073157754268019902619330439274981951063463401180590082827204329592047935797137164525595718309860518095827354963954306540188072010255489045304571114117412699291882248321812641120619765998106919452458761764780594512486891394247487991188379554657062116895249673508248028929445972364030385093309079449412858777868714118610575979863136077055912165242390294242274208881857885750566275631293792399141073639655098614256602122797335599013265548505219655665380345454907049116340207943195368397260753453248769869253206069872893076875693473809347223017045906490533831371875904464101913030481540743149315568195409431788923992206791679484676885461117449909679871873634137872411065592099463309523723982655899354469908061881464420492378446288923829708876226467031220465110775839880560727938650528937607129376289540497329184080777919718597624269887868143499831199358210415878083066731792819506860835916313129465753449402314709567374663438168027338720405759635861855380957298104200633342822955480677356519496052610789377409241119869702106713233909291960693361250754983492640588211020217510567936224021833684392713015781676600753391952517418784645085395767606182310016454393678929535259757486925036259533204111995784483960779584114849906712564935877112925711735569130312052400817856048567342273887788356852000045687705565716931355098485747241787992976780095707798024222868786880463532271313683131549744904813711320868935268931433505622255086943344707860325271166124641938402650625990614822236891398260292904829931096190604543735259575690866701291927881030658324020352007728162253118125860148241394584931292247688841808716072139820772710735969171956286756311682447356650712709549614167450934389681094861370666807328955469233783988357512555451157476215044806651671583090937212057432729256968877052389647260547126260670234433007802198485845458465002970460437524121983141554079776497708322839899585069799200740086760065181541700338188084078464649178877170760862402305564517895947462472647112052900129663097819795971509659290474026429377287404298922657746276422172831133273070710825908744777922971676510111136265097917361165682567980986007017462115181477950510925833089193748605921187760756144497525856908316233112179690493358897512663120118365454229716490026102111493888883735977042234115710811454785520791757902058936558689257344229266912175829427394729143414089814017420570581069268907248820259904970896522225308236544531729176655255289006345529264714061620413323908352841351024714595436778373442929075646707070864735376670944044931938872703296050734153192469844046438631672037584651276158010346068559849192765128951757402687000516628609651217240812711988422116887336211575084106729302808943523300872697046391294374470840342376280576341121790616486489586382875396880151645803925360741098812031218636177567482590378826808516156131172656805747848291855850383460753183378008207560809677448876469626341645439515467943515597834211861123355231034643237552536081319538728861830996270980955450441383124042040411967062450463672790494055717070260428736739331008944657427091672235202516723783067540625690918794021875171497632575577857021364755668805410033174053319054666649672378236778198048643199784132437428803877164289008692443296553464103714590231568452877088091452126555800019094353168253477515944043963158900636484164139471580892968563273431153147134226501078988757172227876627216094477224090963830059865172279040700170698321956974956273746120519173947314537978978301692131204428029141050013036126824961558976462083947831746109399057192232795136234429331929468661612742050219841131375428163347677992013640126874498666556488152241980221207316956616035864411945043773744772199094206922624017709567031819592917668297551985230457562608337510279556138521746963949559324679530764072549220748184530626101941362975170728523447316475485043573658320793496615498689386920785088097363335336358861786006873220170733803490339587926028592355237568504744139097713433935956888890679510960519172484024084337525760556357587499036709824985192468357829176432549028361191067910487706427907154554217609643826519905403628483366651493062902790308654480417651874332977026336154821217651495277121794923988766752198644819270245369456740819353585626063580752957044101518362290679982607308296745741327367739085953130109073801959237062446379930314181834822376837839678984650539657877625650077100828126111995083928952822809615386251870986740430020108600065643375729613116165341059488239273331456904240383946246629969443837113019217585775138771307386853940540677402657489674521290198158918530582248477616017205420522691389625641095470416602235015373614983551219942771316129877445303140129550044126916302017428853692571284116282355264070328059951555094663230069412289086185450461528429784560389994827580510740844349715441621680462286821963637333767379532726285255851623373218049952951376165872887117707183682479198867853537342507517482081857723811577629183019026702978720283282105761127789018506645487457083331081594192777766202670914657860090196740096692789279181778192118019803526072612111648707157434719071203198917669312124334135833493211024485772717951253852377110062765021914815494433015592734665640479734435289742790561776999909007569988985224563449305502831099714724920539863068692855103017817958973183402373855947283991507996176838869383097948844078357287463808496231363891123908722666349517952054291618744243971005737249106943136321694836056950995513004231924061735068827459276536901338625514119820350141794835850754097756500162845763472555760525231255637533754052208277228196697201399478441919460741587485807181445180660172715038310790832642976332756628520006193598334662781617602407357202514856697324544764459793120830195246187767745637716006719987939521242317921271591699852282060101064627025731096555185433616270871966829307280816365539166666243498438197288037552774383867167014440519944623476643732320350219385823904703195295199515788844124018434526201380896011062003639760726474167967253272870332966185632099803933506784308666665872864858768384617715825564821363455903141035303076355370439312541978462645767034438061925554526707318353143226939887472185768177847751041048631513841821904143471552333785620104224014934007494514688707581595184857877624530647494252953134898924403651120809994377928849886561629559943865005343174353971976229362160056478459382864774213027710809586308877100373607742478008487515906377700899436151564048769515539020777395421705175961216969952176161639368691855571951871553220312838845665225196315480841745458346664555143212448724915173713817698021621652442318218993737940505535973347378193317749968213606856805918467981114264253465919376971682235402959717405542424903359348845949002494856839848335187302722762601111121215339109207617837127440982895912831728858637449449420501917222331084718854320637366896615356174592795303707969170411546481506650772581740736501105128037001082719160492557189163461393085555404524768716200724961843105020750584492534114021596324254548078923638911572423782655504453735902437704367113803574321198001005686974572530987005260467519054141234882904067757101354050110782407213751390013987617528477102058423239262157907827438551085831762107617545109594512227299937895082226861222242248087239908315381008890430471202102954030543015889375429909550589073039090731195771758243013813285647569246909729038536078051119202508470260320631728366507069346460400296344611722778075287929985309779482013799770936876573248916408652184786909271448651231973212128557647441146205807624448464063769042243492164213475126335049174767906637066177811499582816454245018038454205235016775838107486553293684217599348769277056109620593147398326784749771651560201467991672024878608260778530662052065935118276531835809486836530151905499214472125524963030613933485801350518971106793962264026205879186037432568931665599087672564468250122661183608747809550568942009009413925060384667590627185397340873495981662791709099580357170480799339696409618464970467347106924386277152333750447370431082142390338076370129864485441585245272921128611970808627957331152778982248688979854445500266758690526752343925939999255556241182439145243565278107428566982306245067686802726112016698923777596163869776934462631633206040667483341378093796888522460160359713721846620549223597002366252062443813675625241953017304794748511103091104446093657303007739450453579399310335705020830556256978899298266988351063716318875929565354083438434250991403771891145874868923597630581456694497330817561807905510636628500164422943151464062804229234510226902096689798225259944599003515144453724836266343078565275777555955171109069104004170382975971943100911035754567392460523536936293254659078849821842577271350580423047784247066437991220276371101531516512028148777804519058596767053082550473791396080035784370382917919354267176393663576987196847238774056162030455801705325487193992502778571731348638697966442858116363379696993532896371588875430300596680465153197079048534312434831316178319448436788683108490104408400231343194979235560776561493673732461143609387729020203717753567783347621706084769463392807362578092568942576087514832737500963012056151105100887525838931764447277064660819651039828874584212917272427898550232679383675360917620956742172924268197463588802769190598256808519532884331722728835923447345280996701094239737532641486801384131181285521622510729021449917888839958099645527006639002929759326709576221870614665212181568474325332819357312923452525240765344682045129955635939810371595971391426409034397070901283146550509651398533193283552797439130214443213281994604840934471496759574490408037901214206448638161684586170613357876731383388008764527145107322451278365865052543497117591911402615194685955679019899122765696890373483122684130137653653399947689949877704363884666395404588822351867346632977006132058563682148034211172475607556509621155499545482317545764681458240027637086918684786632849335492562554361383593436645077468988909068667592188859873543074041210243536599528729400186743080152891428265251934457421301447486306655947065873475908783729824774919401013376962205897799163736449907192160865775240931427987380095337278334526126660260949355668794715528826424626886109827376888794983706257072613010266085134090339051445588472271388688186797438256089022078630374122705081974618468302865929469333782565403132961036653774534576476348565064038419800968037003662342876240769958718371589442824438509445692138249053297493745041882876540683906318756689399261175611331145121103213271526140705527461845664023892949179726873883094117535596540620792839790657736476408858658181728312606248617536940364535504405811630113230534499354953707172487361206296582713608347313077116082388782508300032698342192790968967834118754025102691058694032719659584005711654663126225686570457452558940673087757843328303493814204247264994168245855020165706889818008894437077306335634427245772667488388309855441607098264457057387182546813411889450635210505103021772556455516079306921482587375854730414308543336004680363425914451711794277222001414141621659180199823698516774514538047341709716965045103414485424631354569839901491037579788188920666218023524503137033570439968775353747139533265251012785847726350441655244933460599503093768040970088231805534894283494050558845476369493534138123035167133828042062953769185323667712357857444632704974464682736505033246569766735038511313512419013436464315401911135992272238104180606436782036923084700399745839838968673669444338408595951476966762885549326792484035374518839405065371042226771038118460051699766957054710806870047620540049800879666387839161259427476087988801260060053422577666589693092015242666485126534375287892832582368372678754741083543621675242546109955567972069704103052556833412748319382348676599973187491410095782559874759555058950645464670971886319165363760875864356308663398896737620811179722055894322568576446558626621739521715214413284697589814591166221997061845985668962101621971945177762704447244750751351388927058068025707663754155038481221955505429184694332301014601719742053489901940760739302054105587882090943833586547694578321640194860457945492574234866839786527973125167351346718039266313622888770265619263449932334054327780243411828005960013293346178369820338379794122050269280609890003934317183804258802190637903793202711350974158650808036728617535001652100440638514089861456443867066914941624001499114910390453800783591010952115600883194404938949901188795034889641060814715741160990112506614209858159975364415909102080705812485819744376546937269949537451212342111641769893931902405175400515808027132375026732581826315413326255007526723929267657206362339446161243177845247535543460851090362665942934243381363541813691217102047314706222978963174128495113115723913950947415718912830070567087896609711991499673410672482998944480541570586843782058886105792121119023433340456275169466924670326200314232151188472667765467719520437130035059691520473488276752076779656411491155268512953032506947740680999095576023230930062520886015584322458296313903833173928744837467202422767953081229293048150804492247340910689141848554446218004529103410222862936466637686443810260709146844241650209575896562571160174941395171153027704818256834990912671557421852618090901412513165133955603660060346292714014500192901087170072740681082780574103417160817747194679267764036367435985865470028762628615101344366483121853553262324899184331756170839482932764719078153115225474290084590195030184335849997654195272171129617901934381408163627924607387355304852310902401603700679394039993582643845985162169343560029664343517218744412656956194766127760813460687296672192173344043722840536753987680641421223887371579490613051749217864986444998043235521833869555219478366113497520342487039373339706013173474127632053755224008483268349285171520552205145235290445367056409833599242155418799666589657565064406266292068404725457511346668959901029977498081195566690515980347215019303799166272066961149830964104500550067640136220941505788985751026590459138089344715789401888857552858547895939838959577164542132278731309541444030404610727390813629357176173622238958764609931778175574950883253823485850862241438248695082761710766618243749988598690720601747624428351554175238506627897424624231532791923136186901877131451584953056628370578284713133124881502630114523946158216152733265879838536549310165169751104302700351825979832162018941654120514612588334044611091613020739459431862858159256679540640926461253929424253712315518794446992259122801963729911894224820772876607103256562822737535641793018273736450532859197172232394186124343567208971832713913372355351202032300696719314786235232437325338607347416959902071451245969062549176196015955464046492664580415864497684145892218873421484359690977968194265765994362129401883253589686636599180748642121729941594079649142533909049332508098252036072898030111875826668202865938836574190465162435214399517164742214515482313264820634255295942436665170233711640229413743792898840791512149210504360953533507030811700404884312820974004982063700108167765966171952342542049400007793768555037695146810504430414183473352677949000611948409343375602646172731305008007103774194076110941000061764619822941561601921325464168763873817330721603077018086438719228557702358693385548272296394308217316479184661385922068351119717468189914363508385171132338058184416273154329747957053899035661244745046189206315659431081537922854995605446720355396855966209486915214984831662348285954745224586159864375917741311885510704539613519417352500534188046555328641654088820508549684307246239026111161957025213863974442825209129387248058981084392947347551511638593024257290072733991424395718977997204100492889713710711917102852704521272195479828495078205956865094145863271775484860898249218611309791536946086731232998869766601918761997549499185761391457786720240101053578656105883497275962309946762168002697882824892275728421001717967104457191921258589535912404230826622368667466971643128129060623933196496867598806059719569584239044132863709248741797815293097686649128791298678175844868815840026045345539856757461112425466696981109389934782294091167391600525181583533568496595686159320857079836244748685470321953178636112929080322250511703056164491655156215140072902559230266018613409495448457848194502580606566005492070849317836746414317360085527560019027870238905338969961340776514308246648146990947432491880405517466140036126939530467061750811297185848012925854906614139877774965484328457753807955907762921446427633162187203341554921192515796123098918619203921232304279039350913425494892833857834359890822039675398835673899113503908229444435873389173892861450282714079040417219058280625738699328442575179630234919035705911284692052157977318110988441894499728597176109110895127727652473210597623714388617137671717079623009013751552292989798703481605227929828759020855008081881940458823286602674257179257139183827437369974602879484061315297634334985713996123982593164636054308349590744248174384460501007111710786065574460486923622013153941139764151171144183504051805109430912431158010344244928568375181638249978164247724310106071143921249682124458012663949107829680454035920900392975963931901974906869177180493700587649131786623588030528940507226618047443535693341091837783941969066741241589012106209659200410282721754392579438516463109279861270366760519156864829429226113814443685506089743512237235241091278683707884921098994703333919029670110534707147018798633295682705072550475249963802031471868467560722024403287692097240399762250806217645345582768553534554828872564551662510572614698270961516043356438765271811791952067455301184722846479965687617045003990398849930715289784586657051496880926605582610721470840057419055718302470256732872821178389704383528598204633881761489167897474795223382458655656154087187319191290222152799625950922025182376987486846698565385964497293085942646856994878620819852681726759434923761380188114878637936788423563792156123887403506956737345477805995786979261497352840206628454366357863999640341493197421369453293880067520424498330036874406204585877498539128188376823638099025740636021681942836787228328601500169493108471144973870231432675707496180310826575228665190535856903859648919912059523162031527552146084525004500588243369736597836664346615193795216481104328563074480876001196254523393528779712360188124253491677503314279046614916879229083171773070559156176950188414217339800744570992419250121097382992328689806428957115696748270766852864762556415787160314716810870639497948321575340339621638503919475945322664006740857633489336257590495609745826760722651201453889024109957845932324479330276330676275112389799203029136407888145817541281697377676261695187307681159380388091528469438962668208536614102645790796086450596239539444118221633528660857037701293279298449615201814889822309422136066265626387189934645318929264914907149696591612636438173733876635596161157012722842819310231018068404934281795206994219250453213241011738478741783985655761144350973541541509256515679549625077834238205455506288683082422080309838678418811388769158832987327939071597906595307913962347965182758497310950475749515271568147862564285395225380792983477984482780316967814661913572710876780816026887062077192392694241305319255101244511048744451069387120389819230739643533251447683274380126019678648118001940061887779522509831122904842006875526710903059928123200511354095408131437399165572146807834790773541146590581997099874787006424163859134504585946677368476414774158927290889652876725229606457940122901487129003902257689817769827363911625436269067534661797415432705618072191780827377695552901661679470519159163714375262863984658040438797363835666095174064791009547655919395009855368598552465444685708771372070448082590586261051451237202906671782693361713723129846173046181373763033220230192692981202381801587944065340892446184274423670260619627687496171878055918710340149578442052721571903868734777086064642810530233139688925479329097799583633719991210401135858745101293094300433526222488671214387307890604655646854401465719875155424383715557839955823034614813277287711886355275127877670547851531802564314373519030667532219115199686165505281200880773351012472587715600681890797258280464328793190827677914399382892762725588062799256197279660284292095512136048544319771574674455890460798790873991058882402009387962717962009471077709354812855201176218961969532068847804804495884555282990890819199045513120380868465531864982568674045892384263131862669095274262293793424325997248931499443194057830915933529098761033041538132612421853579003598153561400232268400573532292287825439184195189999117806323730209082552011013730874894136148322549248811554248954945279549893538569255412168486669081431181502757497388511112491877289253002989541365088449873615222661217624424180888290208705890723611530201591786215881302943232200104536728832708921650271406566071043539395026196325369283833054847727866568184409221336506383077000258408568216511939819195946113406210382386078678229660866440639956417226306018840011391601476274768345156162152762266163113417591158661934254006150828787005049860121183469406180400376918078643733150615088583822355733011245511862292020819351577229884827846048806980383061978630800361531843989997863815747766512785733935845424001472841492752258196390874596787760810043381682997262778287518067050196175631187872150635465102026535297387766371740005197482161541370548007532365742076805391060310340531104198903555824305072795458807608303351467087527625983146043058481359989830809782625238758144512825091105202783319498486068998234727165192582461103199595621622728442489808906921008268028108741912419162999696450324266438921668633814087380362967404673561632890410509623250101813273812577580821057203084838885978702447669827187089689273791860932794789951023630926793336437847166717756276045744028615665986982468006418139707735323327122580097282478305173716498119462575549822901856609756480437481422228441454207241324646528391274305656131630073612341135134470897741847024160520398744975044859086230449032689032396438189870041040484570111231025820433875757085682575189942238799872519123483275446544105571138896972674800463871733663291683509539570209589440359534151858736882463055773429913681024550470955017835599811168996092748121789072448953246840987673363181993977843088398082356850387533257046820891857992735700586351690101290107146289069453485585786409104924208215528096377583031294675560975719439205436325457381121250162841182384074040955764205910422450718054307139404821569306957933380644924070398317104746896518120935999103090572599860052975822062460084331824743670169416133622328825433729441928352469838252806870890436057133020852383417097178451985335611963623807813856947104548749009223052723934987114174758334442600635397026960234889109989510234124828810859634224149917508191340651700574048951463862211022694346347302595668596706692431910583282709327106334285242426925523085057954955099053487080599632733320917789801881965620037844132844484871656676500138170755198161714633529653746436397661940375763933309276795453044014055381709143271575022347131166258107547387358067578408468602491916013386041562760638718965877068733160937523553522833943367446885454688317451401779793171099263479905999887931716230607106965582668283243664647741838199387428056796426944188732354209400344243109330247958318410047842099130670395354718378594260510580068919459360338069230091703660525677101885399027559541783117003515077100005622342758612570867253193012084334071031480371558650009592879208053355774382783645412603110083650413226924413741887884867020507577681475372062498098999459586692700649475447418349327614492799202385465458557202253159041646270651824523311204970208526021182180395903152423073289752412201101946996319049108230478201634314877721139167959316988376268838587713013306804048885121240916869237028958701069427914048168315099664275761663634510587599339782839289776191418052386773496612689643795703406471518439883880743619716599589261682776721954976482407406037053248374631202997406647293649239541414417307751442782964776545217116921587626008145712040053786709961839547465478347413841194536418045967323141712792482277595146789698903612153078443465988694866603244800020058564278836269198222990378337026732137959777487318599665495493190253545071617430549536823601094224032181098107966814817711976015029425773728478785928506307060670249724128059639123907574139444151652085268307181631516050094594052438056813818981444100149095034362144985854376977175335848755251720492621204458302457367494804186490273917444820349076437824360163701408307788727891742604198084247844107730214614202936208814969704866092455281779069573329289357020867167846227465565907231222508980662407411306807530747215435283969635742365625374270680759069504051729244131694789158698935265884430429089429865286991211231994222179636121355231478029764897053979894111579126403006953811482982076888637071817995470970568735327141646272246987090081830658306644169991443748282517220731710043960521085878410011667540529613188883511623224143314418741008329408089305079324653971727642915207422847589086463738408464730357088712619757054960213395046826037446898991241733948942855855247624388716366771947496373316966382255018293926571270423608120248045790142241744871600024208788394139151295728258233552883593727290852658465058686473616947613216879706876895138724256113476960500064375554966319574817871031989640311093421047713006094208974019547727849638254630728730994568985134021213219620811828777633294039289013884662391219273652454160524443362369861879105273999358820979576699250752147271612175092667949709004496363838331700331451887572016381186379187097003581926909157775481976123268830663204177537911536901400893779990661510589943722235489211928893474788855074035504744603605301335528181436277257875689263679242923617832009328580197055030128082422600677737636207126962331152580175869310581884672060971804921926367978220932137947685033861679491829021317011747885321973661229632891811564458327476408160615805604475001829806746536472669462527710899016970909271088458628533045088757746739981850714803375082148722937835480616920965387735889769918073424696727715999386546362796322877645727612344733554653198665341515458416179387887743530009774232267137463397669034445601564813630420240784094164206742769091288092431036029414535891707074776575986073938475874320399374474921811431421102740626725164431507978828100713915107871173986246843489373911409108254851223773258472417593185038125530240397306658846844332082586059345795092779447916305662966839910060244931451834286945294212014825261538120175222648716358761557104186856369751551698405021225016966621602256048375562245599619021865396276744385123131823034354178376287579552169159741020393507429890877409614332657839460492368684329578152820854410495667687096465976842978036210470720268323700853181005888249691598810779872874196159145406694573348106456956469695119808760829600713616523541492691607220253078135582853415372305808623292508014081887297986144795721775032683142659733172546928276436489901080342650491277311603490977485649414610833988806003487348726287786955295096899964203983606022588273583102830385288696138894494918908869273659363692534251612406544586143904738418876273485925651229064503614536662660657526424019626195813141082711157069894281526973076309521914982772149376991715450208569326951351524835301926219551134607133962521471878507795056599702263389189292199184075475374753204334915068989609720937743562015864545628226805803224416225314432825265200499025480946977459820855489137024016253251841160281057148632085982951961535877558631085671727530584636506491094590859958711281787366150979016551442386608759166446960495322301495057270657795647565005057302051050363644153793651009925769575608536953403373181730959192750221981945877818085281809161879692647711620409453627344906431244318307202127699472177551413216970638010153699675956365181863260947387284109032679907743555954335686885392551781122336342690150575369521124401212260723389899603255923695703945884509213349931519585515261145879830338095194384444891013669744431744736746699853504957022858258730071673834481703848858378689608469577007723473989191264772838536131730734554364964475848140535593252274298318115112345925411746076889040755388423750378532707902612595274615348546721755860460357811053106334773890670398530706848717748688393736356611965621161073824833363721632121488136394403642239125175632377820873165196505345800594486108377112204436361818038078897608931965611431458574692375192802992383750854529212983911676489613122064725619983285624500869283255819051596388021653859365535437352215864055711756206325851891345967453105651714733089179740395973421847216386633806417311763044254212884808435436825944709222085637433115881725044741750773357848343187429306783676046921746848223800147887755592865756519082286446008826164011439259056321127188145783218950758356932228246389175281954319598555716345729322354927939378824928528566126342741619514959711147607111831100721550425106401021273828201448891712626437688755299850621949499003672106866959856696343364309766419662917309101280723704960526298700273729370475085173249409348580311476228821021772876404565845206346264588654242632760750197599398259909077631989103663561271201274038168788555265312856853749613752957599470547627367277008878503551998928719422387640713023162500011046565989684636187224718206337671669692440025965464535343004549074486959051560135254584794692459193305682750891408241049209174463271204796945055761593327749724251972220380353648220423138170080771246112076268848351234584143385337255501245709856925493342143707379893778617021983145877890882724784182875605109507856189847169855257779723201207098800217928152309227361615908425492866716785479850550635155744081032554314297187205873345251920213097274826417254346191428322739827408264415950256763432259012036515834415366751994911137694349908913169319796439822741982238101110920924093176910862465576339014421347182980494144349983849971876484777995078142633293551721702474597333256532053716570779828471253135508151604397189222195963296948932116079916513905469686808083549269422100274269298969357867745164350748432533318973568374786572600072871605498674671322056744526765019912800723237260734830294425289643322791970950844528953165855563533354591427550835411336853413812802247807254393437918866555834675993705387589994514977624222158996439527379259654572871818693136583863112601816465242258289422433583845161430386486786054710468045086834129993324759515920565233600743485591804786297110811594021466719776079227302368674724317918413433329624707177071036499808368382893381384245483577500898590473812787867699185425298950699792902060956891467719059584407149629115430557993318027460383171765415980222477254499088432169192973313588672626278058743171500829796410902490714026766594378343125063201579895730207917174959580084003252271866506284995575725276307028456509326065823816180428947607902803005392566295313816728195441568527038236560786225078466855446707669773301074936577053858442197653038795381598281709303781697289867933707247572330680442324180715128308204606184492072818411901989797958233767057563521022600263094075194533669672008691760550441875575632821412679258159585666147004193607374223985759367179453156575965546632126519356574139273152987496641043931344882940717975676638031399788611966605419237005691525937215173844683784790660573299869017081573416852023669568080281136693432181433966124147863149173988621682318741675109915788353996062393360197135756271425367462694839887543327169825282336042311691858157404303589423886754134632507440977883563100131331154541434589569649056614641386178420926863005638130786999489572142148357069423154027854106239271356436569641981156518756620209163744013790277135801905182688044412172066940495998859886757491105874520810888965220517545001074221298511834040348501170970527535639618328195689819080354495370118023036106404824545274253156019926589591392958165994452678651897767722064712826096667183155114673073429321884828625904888330296521439531145269038921835031869636090277221955177831498617986565219972047620167219200138311183051662241778440904077006409489846005740170768648372441936051550678732333872262225995189489871114933460711785403919527658589574265870003325883919240984152786314857091090685100836215815306266880633069328812426771259258687556566595496802235103445594732671250462690020912632009323719134545612760811695584867444760989694200524132259742130833459570427157135696321859101862520818833858879204577452417623468779272007176609638053534084074424861300816705948943748976942983720801457895277368568058575609233582000286049018241920448585908467198986642790765915375060423011165788551198700572057733696766733252978020673565118004178805368956251466373573525117555214019351103922434988358738308398315428472119588555551749822105489358673740771933658383808824911297261162956072455761819043899618117719577378689972637161538748900667963528732652820633027904005987145030723993481643467149523115838578871764002174630861569626108138804096611374176723530137002325419935761113041442510665755082135825026665965470181568872658703106750560595419388714347350391850138811632428796955535188070342110798514257868502439653505342903533365910786165208627148396398256400400567841631839740703292258366191670450659915887453290157193657687602398364246441959896994889204133565972404954505894162780742026826672787624145882262621287611176961994959012612394866214094763279962561247095444403856105157159981806925131294598672380960780475624134228894035731859294173605456616104824053171558268799877547755252881462452326733089490947484435483345390498250341630168281667776110050930737191869019852029825713429324823120259065590443823124623639969408279839996640586850483227422776626805761585616199659765233950401772475894638697897371461721702205294264598763184476343510847477720078906459141490332548989243618842811009098238664995226968227319303401201035564667264510371535246605612566314050313654933534580468636128592426709428504603048069358559555782428754017196686142060162471030922938150355625797916368592008571455429215089471401534438008571824323782740026154576753299339590674577478897702700493250169116402336696410695066352160495887746732658031034876101520297696645500293898135239065663496633076548838049438365154314372384826010126228949304883212706808879523757351694750874168176476064910852204203346488521725001975193558221544642340328864248126607192242418481478311169760092965225333283915396364485413289581443963491807987497498300303186633021216844967272185775611326029892919937241526040718702919075426069410842705703149937232144297503589017115217501152229407209276721294656586093480865104078122993455932412688912770348869541472228368851867206937923480932895972967471949822747749433576385351905491735576745986653452052243221133950914536260380916979950362170143611594821717656476376849503766141543074738050870785002413750112883427122270745590554049734404170180922530938781210094916846756198220603202222722720124763928507794720886351295060174850780189468458912719529601800096975872237324180452174258727403987139094815600771870249171278236350484242647626393697066795070358751111920098344233974416051793263734205669763802294858018296958699541080674818409560650948967808555571202738520075005252149769269756874471172360038186397096284898919495565955053497611652108009246339102678235605526614392827255687306750101236304133568306643665744834690703754604510051459498242655800818476300553687407485889232326319516473956410188019217336746752841744173372854196322616251759797226300286467587766085311817585156705498599329362391699835525631351836796420289193900325400953597152760800975915997986298991464433214038195564299491058229879599882648144164373846887140162264065540777267407424974911615632296606810448320988618638656556031350436201418172307134865921071415023211933262741613497450196947672933516440178394773583931292342550631693794919549969342154083623701470641128340794698938264886717670071172612648542911914085110219818409726088138701777422447960495100847628398905767064291163430208829452999572690835041629017086568512298721187353916287021132570088428902815729106008797567819929592489116416601553136729831899058839943437200870047119513242960800168691865247464939473676347718929544830567294424654031125698430790695008665568153281102118125714386621001991263474847066002234860527199171030481183171378208498609162442255525771339582747215249689427280756274550494102995411654846808305527734646095865970903986318641545804557068986104803516485372315606694268640913830647395084952913375429730843468742038071662816126672251650674133635371392434857352875467839292379951428427437589854851476321191669082644518980621257567917510240189762415467470588515419740993508703641897602000138597063542908983056925708119566432186343046695301386236961378171094296472257957412577789216842150943071533931508030060250225619203554932161774944240539876532213345669929882752654794350019588726623580041277209624942668986150609231076377274079098947053110963521874000658181347806953961763245835681715601419592754016076145422739989909526949791513686453435807810184314789016087161341160363254469650688713633801009024147560103566785081333818133741790001788335767998310330064799924958586631104042040260527634503865306122587671017366262645096505614264623129330997578302215081482381388069435680278422728397526849537789482586133191346780111358472880065661238323627014465356752241636088962523754362058106776952029451154369920155128990176806957567597531324274541123714862585143958787615626800127044771199478980049232603506967812304919339957567322625924365017141679257267002794007587067005704304387531253448320515049115352478638095667450750966827817935926067335420034159211097241789088269567210893090977210175577956990506919039814037455623259177405327192068628577313421521229612431509573214141469290859834792168485753711151748582460190463461283820237803078566605513841361410451542770984104134369266949691091046052572626370591060804448204772266141392419418424381679867519166400199076293754307252222527908273846341192622016625985267930980296774375858418236559630954181016079934715608005668119900805937472430669587001082374059616561084092484693004982706739661371964378319942798463040620392758327365458527756019167228048545761866721670047036004834760037123587716589807144328310058624833247062815079856304596316720514367713261782924659632046910272131042004486850863443894193386704178178310572448669222741041752018890308916776946580863763569896806531950471072438061421531801149782408335954849463654671574635963105817023270713047985648874784095543558579576905920019666248488070779932200130082981528989596469620259884694406002894920141512287923212827633001362715921980871902895648853387952513540589648358746235417378224117900666627397697423594812693063342317003202189938177462129868096911432963593487767765239247938561188872106316224315801006295967933004470721776601246490666724963412390376981269531004017227576853658122211707774074570142832268473367933313581566238898924907310022669865581514876031046982150778210204960210320250218297000091336632295939825154656541094085344536744883786835147207899858579529272242671107125007875970971967374857351714561203612469151499243470586019700045845047464767667631675390756363512218742493212604111681101083993867259910277750069780248755841036465015747470580990470682566218324725431990907486116312175700054874333183978182259702642292802877186739592397502467405892826658745491803927426703829108954304054625627672314794899926309994129553382313481189070196348077572641233282520231593203665568653336703046360151317171980597988404516547848949137254820006003463047766914113453481669006510397597531753192957973772239924481093963158095662325329024652891564628914982841948440295373078880707956640875655748020980280869165447971661359196644061887231367744787101677979496428374057605904967533825009137394450377248640559339664840076395485422844770052898829267024744731258831909864206427059449830922748886291742143143037853592387470204022088918363570179243630661519827918140113721358096892903470496534573869942141134525434482319034760512307207132411069711921737726602775988492898384603719972528006126679726349785711075491375402128892223445422447647597831999148638089404379797387999953606797876407912519754152868489738670312696991033520991659871254463726151903487083722891710905976081449548516371229704913148194252432730339794940904634575706413573840834005010035202387765442588049178259564941985739402316178679200760375347852492221701781189023347253242246735396739902161597817163423704301596743494770321328325637543251619201218395542661428442036706319083989831323069851429631986301934308309065361316546452954947288200935609264061127951054169344489056046555282649723886969360492908716136917998598889884071770320677353005985477184646766203830661763872046414450018485583955365752042146240535199338394231532229218673121300520252347272190154288298694011489437426234608150542828480915311478218377719046397221385629245492410307286895813370282819674873808868812397437785634368378195660419191990434881219706940564359169904359667906602810892227499616930660100606340779823749600308835516335206819010098383819068014182530800345944319986195600672621225847438518762688045889256415602364909158226056231690588183606457115565092110778707989001876055847201110774113085256655971452231359755239098086560625669807094497678508965558654346473361587327043480247205798968945066496935867428581909851027621503422708190176582394942598716747486636194698490716945263567534111802247889623775348344274690813825699591731505696418742565029971023772410841844935749538597082339422535080099092449346868976469959135093708141985846906570515768729785703129590969319852146890089420526878477161434823676114957285311890796345158165304269626281916050654910059077622076312963632155292161445502443492686374034095666017843422351411192473960723594951763949243329360362892247489643875821074040187662917075659583756268913870628476813137712961673194929778649603715699780526055688860675831463624806235846070898410889528992422482783074151049867392514254010117126402002863554644493625106811668415443655868811481549080598156599647146087431029673364935993332868569808760055533154878641211917455207003539102053449995909512654931276965313485314188345934749826853495208037989973251497491057650771444906829546476423956112080481190933409257336631120822303822295315067904535508806560876715153888438180361419460734799363559670054194490692960346585858182882854934604513703688417040453912024331136679288479436507345740183910615834745019909973257772093430077053680424642403531487319783601752048354074855615452269894070758273309935980829471321665639695950807123443935352482471965645242564248419054861887291383859445366358434345024834647015782505776615204240693251124102040872812070570454569886971593788444752855062402681359933657826807081156521176803922134948296179971782806727505974743372146740099249902393028634066341365761713180753236448577091843195859380737636426933923648372158394018722394073160368151350324140741872107584119699474423643006676883183002913079396685029554591521128176070216507895923922946357454758634176137116959610549099601823093038437520695651770313978295607854603480728185053143390924407972387739533755500770897554768382020825380640729265553450261277706600047562441681119530043077857672657432193138340267639310509867655582975118938417993421086917505018223213745381284460931573257292319506342420312832342611659158114235797508767933263462797899288236950132891562938781400044022247841243799288964871937281943430882554794284457372818751355375163118344562205165593758124664433381734442684257443232504872645850433480295972155646729904024305222767976970698343756386686412876442511257536742450726151227707175322962492068188955028801561159256558024295529526202114542207220594468277493330748661572597697377653440301007372199434863732574145906829189771883297821393105812772921179939978160856693030042849645079087365076842075272076386173629422374508362155792499521717618783175426143782164517419081306606812443779495015147112295071312888887583617693578277637170462276621275655151114384289959266447506727450305598385764576396115610172283175508860137158364815457463193769454231665901489643195806306620395160390561547347593367082909629029179611028903215177461257796487873016361521511199502379871249338258327238833402036254843249125691528878660791410411051267819791031129362182696708005614338706173732971555120786518993117870131414239974494318426663336113370732172600129120571813139128658740817407359084312994712129563599723303257457422536349430257599711478806618267633284607721811418155293884709742330906157542714747703309533640664222092893772900504049610582405828782153481133156286320706595219664049307861290855426188282393591616888131170003323816710614437663100351307066112130405283997587318628714289086440088465550399644984435826492079395160531129330973536423064604567704611864460675374905171932789802305169703316431667568740099590732331217893008164222723762321238019648381054474655577946075050161793434768556878185272294413091760706149141699359831131202453865520459929942569636225437804880387863916351929292406654063103831996097021509338335627641081954864084310687758336940368883209730780915594681400195127052231573975959702760259452922248596944873829573988349951133200198745772239114978508848374658257283178990315082625023677805257285672862964657766838700037582763454412175584914512729189200363390811175777647610349059070657327401617362556140472847634509999891995251534252291581292804700397373515783092847690880174610037765137694576444874999136863947146658345301551276694826963912139278063829946848088562089023128037183679111022190218062092716228277335348703867654257429915346693509914741891675771579370972919344337129983560788158015013537005268840343638538435255672181962964645537536841868925467128915260555173216798530133961648752400380215169235588780024055484827023492663004767373045258104710983584060941183405440700748440729802302936813079879781902347943474134048189725383657638614690015339747179795066253542779163119620487351901168554417511501124828205745892725117981278559724592044602261230003345727010160823804153212444668222795911458661223666511626507531041657569873518588434370315534324870763397924145952661177746105930213840944977096745076703440616572086789900870142018657981914772278539414201908449248570930288886094231807141972758960477077857827065889642272286657702370889397566575294197749597797554036583530692913291769284629467430249624280992619767313397212687650641356369071666040533010801223593178099281884939985420926380351451575457693718183972741120710445706928309900400706304084091819132841170421508508507033682480960619406203311939325007559290269193682272298962755838551712804644313685247504991817906504813306799687074497725981991011609889923773811084653941597289295139579648096800162688701538829895900570463863397196993886341510140528335137386997711112131088619268923486917736597102967696721869549758876108159251450228491259208304262062039212986620787247204416513182564905966813759196294650113115638074486615965513891980683589346245080791340531334267155356660115673933189426213274158020332059068827798398450994415659656579198830669730444332159137137735205930336477746259395478897986257081228189416535000073406931039539522428964348578772689201521911060801063813806530693040013823794626554820425489050284975940869687102355668972694207703007967193517791907591263129737545875417782352997406155873198405659879457634951884804761706118973528273452731815408888156517811671528296546015444348470313113304036633091600336728243708738295327451169731287426643683348086521816239035722215577811471076172151702137504331406230069707100587423955382874652984436396368192389679568415115596798780319786274150238170799497474637532231942360182883548275058819434308292891774617049653283695426073128440936472555619154651176289256360119400855261172758205704733040832412215355508722344624629579129415665924974801892529004546163046541790306152654041913127196947657274443884697558127125922332151319014084190423956367595287422566700358636096566017629051733282540837663170060938360565647142969381220544446835466670410256356859448942462492924063460420062119572663827448582295087532855967551168888769578198870187518945099805841902500924746607743145298193816802292198225951791007701470903672844958755280679431007510503442609722645690825136568510190614725284756442952455772257762076347261828342246526242958621882740954087162628404896442691819616002682060323012364704683566086792464877365043498687174082085816287365999225474318230748592770210841665506396870559467000979893194680812702332843824244696971527086139056009429554064554917016590809746326633465945001603539799139144655167877574785124493708404730380623555859809684487746270908291348492723431909851139526466557557179780168913766609299274075245979078383058598270018644403698181352351588841359593930156867792801250037841096028464937645294667139495465243190532495149572154667022338583997136133013181989228524256612377449290363163282908526195760240109178513843183247864974027122223405880868473974748767071911341209939635635991785007891111409434802797671697110680872846917335408644794118821510939158671911555581002245052730965219687416826890829077425880638715927373745424616448647149357189197486266809395568120634018724136428884491285338232659981054292885647962480929830065750244931844341356780987509762424169969418174502182019621771924456283477339525737932234377568709266218864381863381065339028622268317480246463650615088042954533038975682481469630789579360468554962535448611407458542049655817769931157911502044712855568548754460967596252161509812242357469081272415309826346795147694150393562601549123609497982528441411583238940520363553646876359708114154826724634597472359709971542231926087889659122516876802085742372385939762197434196263526778053534811449615804910108308554952148631617716403371601941403345049182613382507186554674895561979974788025377712612717567500488523163451590595185729878418778441303451932547729740034164521962987162453717289117849894370596218269009680738102097585475742141735708465211378676855565047652513113829653391606090324834184880077396415551574500476413412880309458639798707132534505472707250348771775910158531514406984152047035844760619584753828168809020144971741817073896078957702820386877532238026246026278327354636534000926827659540398018721059726054219420280362119737110510016577335292937263354930061196096552644431343781787246742351071761879072481241984912590332634502714753893507808903253703722475783593875260042717833560865497012421787215788014596982179193627310423145912554365381191298406476529920246022945338206152890694372117683899903190933184941708864245093423120255415417998426398295489785487679780619381486177716001054003372985755120495881454163477850008761994305619982514373966016290311466445781414839279661499508829904255421288906904669518130931732682627926708415507452860388178249421047750805814259452762970540005295564820622932715963176152445548328898701988664752404948990501541970515260993057541882726080101529252579783616191513073822165620407529146323109706206929206251995491422832081333128636406301451917689553644614918452049289775207316266794487630462831156583475457758536678837329591483362260076593820659692138819646183646388093480343867513688465510375542219794548735137630114930385931461314691857198726399411060949010949183504041993054881281384681989744919407121645349925592482413652345402736176034759223504651431570454863825720714048575866816808226678442104638347608428426669944616156180072782369078833602708234029237917388545998152231114077232393385197900143292552042324237172189194201948062085390100875858928329121925850274072339586648339048318793652439579843214864312343912269025689905890335135785997135171591907105591588819307324269512277580311788916026234025259948720283825489629887990872747767998869797215417565623917773850825859342084068296673647058652811844512687592132967170185041993167052924296183335669970140438420815826686009134841727987121466180866119793514192463430230817572877014618436837827924414520385799412388559233084357974435122288498935369511326770527261144712451474739631187089483933358557502448776552287015091377671959562629662611661755678467292749230137399078953279957617298011254323018934235336074565558439368320188051134104582031863818699008336205624800088698059231807330883327550785096297403514726669316214606706620006300989794688501052779699134935452974720308745653016713112170572415318341370136715069950607883533049508060296787176852395000419661125723833206446097485846829205397379946265164162283372613731000871636256120732678958791261724277625424016239153982606578882618671877080675850182248491496062201236445772916131317178846724089851256658285889156016740000760327468367497885113937333201393978545656157722945655829610859427930945426760256392813588121949089218262013866479171567966452801094488891470148922475089667293309030107296444504458620767504402507815767189236436194261379176577123412256381661323286443889717867729466914341304262238306913625894470509312129067725029846542669087236857180814129893921677092037879509486689213852191931347559515964409656702525276960517950309187196079296972716818766770795048314478448527032725003270685819972608952817010840405620096922313088688753055962377423306067041958739668165156981314476633495640961873081815754463274160501421211341399278647312996105391710615335067209728983370825219985271667206327135729697717493333436669046866515256318696566472901037515914563119273996562781219735130031794606560772432078723419290409884828703069967034214326202199824339963981282596002770821414212549820992505423090993345772798458622917537304631344428294700807165859916588769453495521237178253352136399199450927797603234886505051674853284288265292058470230444081758507531738022841452614332655703715992519155834100461900607579410835020303903023762907089969509720549429688461921256728606326078045337449638988402825395103429023742538227691652001602743844508609274668158268455104492575729804423323698924979795707145005968158006912215037059215998044549394808154959392982843439332375839699296446141090851695889891671731059950566596441829089566764968310059666911361086639614229982489052739493558994010960976267666450194967216698577764496461046016129065060655614616239844706841884186485983735746053527092046519828253810441030268566609296037649695306251636849929651800112020020303880961298400873585429229221259007974565072541614898468256631525787694967855727277536722539781647014062586482033104590550998076649826300166308129267094918584222387861978505753897837141907255971748539748616614607678243555728949911456238880692326403600885151298474257432789446791304344782228368941051354080757302431677058409086318145351601728453036371055065021404894554279553953275075435856935315126039083980825365950072092983826229146220617668785122735887516731901525802232340335330418213180572124030159402224628625029997206088775945518283569646245601128515859538397766824912371981922504026717301647395052224433241598260187209031395934383785801552262136852455212462457339905501280282355529063990232710770965473394061455611112590156414538829129515495266024536189102415945662348447328288029129337486757504962005715831941263465560251017263182527238695003864159325017004240232826962187812712376402746193748070763992743378472490594895080203342139588320013063882784079575822961309974152543774985584608088058883499981067510633074862416411795631091900217447604930949688786198592716291251424955941208862981532975734163235990131358572263778304659071575973434552280136801081154913740832010414609867959851002560010375973038297183351840917139136213729586970464779480655405214826773022609317690775539495548282726822823323488462912657377132295755852929430247698750589005821903439429765864593764295896824332064102816845790093696455353097859977353169971807078314531640160622365969148613237332126451835309760558142522516362753516147968781347811366781501464149560311524923461236024185704902260369157961233209259215675990400674148033140812199084938168972773179811640213783803500131682472539335612781791074781422705736440118153534964649881785436921820060292053859634271644317648939940667553537055626124046444683396262770932788262090297671049625706877282991916628652657811114299018573227796391392784762380262330873793186524898867004002880049425761085446054111598202679499699674404685774420953441139549985100899283328602875559822936623762397755063225773902139812541722284545644665809543633829206867157228875082298476975178167269596459280185543131172117212253261807282524813225911863188302291660274381113149433518943608134889158378176008437212911355589482183234401445393399581143910225400796552855988600964857604219432160497645432347603324970126486679578846057593041707289985849653046102570036304715795581005162874483090946862032726751746589111202044326410976433070100160419827260374856376563102624474303579842773415002918642843668461970778084669860092462502936839726312121812800681374079292926603273875904962676410102547968713872169267985989299836325328943087520603844539685270261835819073898775180142454801222191224262271892579046340475065950238976645620446912581758868929328494501666426335038940850601996394121987902380605520462052541437644046439986318717387501736163894332987773536127966427222195215747425646690712416628610426383418562406338993022606485347210221821708629412667366398589602198020016964298932631585056461812733125711586394232157381374985785290895438531147064726373537138301856865829755588155540300279366285807284636477879270196658608421907093038662423207625438903759591694981922553617853256492237437565848712930308219224422026664172683011243239003637852568874976571526674268442786751757695572564579037282465169760747689874070574368653736441171248057095526556785853482450789393489466037068648595519462053133489508443245188718895897814791957904354462734019210096560951486660235463370692562809971654053900272349793375086479976892737064445865468690873020488340060257783155987970799792686407484524676312542825561138849786064460734274691107585426848642501745472995547402440262568418174857917650394465174834888475788464067528406678320997141833040522797437120031203464820998896419975349218768560037606689781833578554349847502533519644028211494269054551432452696161633987837328392357370920996254980877730531561608421130181380805349243117735906338523129153972949487715064939422007883970410948032200776470469798107305955759130513643474152065692060623161218695661325806778215855682486960748679285479487023972136491716582697020436423527674704807654693300947335360797877811554760609882945380279348672857872903792222740490880982140797831781439983448444963164478216443453102691151379878587545667529023956937668892213509109971898719822068068319116197101704019815676560087574711355105178405338518035538021334800642778930447913215320765445678596278185666336644137434680021330757965939884610210659395213917878773387068683325838702208661722199011716825028705903927990971085181229193197236926598038652387552732192404356493628658175708689702261184671044492130653198790731757878293796850866278973022119854754644483884861204431255308997389823963155910739205991450842297805694201921108122800794027271548201600251366372394445326428816818410209713207668285119896496683486354136475048677598948548636440993556294940445132228898623163612749801453966171753242031650059769471859276632257280198530192650924250020179308007567773157504542225776410348817159854056957582008015834109644527036404293858335051465446920097311672862167283305116661858405538983835152786451070418101073004799442354527722116281155034017249770395475126661761252961180507206978205074561444996891814969361140619180502961582938833067136842561413821502733143433346209864051674589193999798355533509842954424624710716084304603756975179374583546135844381381331340044529972746239729983480435379600146480507484473137360710420229271042191423381454605917347675684803904551158982748194411847672613129206778059420425830387566478377281863439834695771020587757649317563845221663203571592944269931416473062217332420846183158965354427146202053429330210996671513551066317180011223589765554647889853727838521361211978652413584894206000336404835238767971216592564465583838721172211140961358304878300330543562185415041758470345497652768731979574330700339340157306008299296621860417357351106843980798731467440848942416018097576050586255981004648639654763846805391780493748420178991148821049179644892493583899974942046093219339336411491604096027276897670359357090929885027288008586490910968392342789409474728169961987133995851262427250435624660314256523711231044369094252089492854930308205514214795665519735235540719929031739112556681680590835562056139241881641918694066103090389048514309585986868690151490556929682542998029137226815639705007593065156150950991447834627402113421054334103134808650559052063535333832911103414987690257517158715000089307638659754764358139457511469120276931088643025530029252462578050676890123029902051948526976218630048434584795707059757634510632170260695137918927868902166607236724221402942564362321093187254061504385463874237728619573800126426557738628397812147204435158716636544954520621635179415796083976934292064743125649608962149991182699985454708830239365158917662984602419348544462508849957868725476119982350823284705392673201478151019498606624561347842868455413642010512858068898133674721739187183148700307902505637754788304818385661925726647200532360272753481940017019283437343508498271652119186097266458936079057208804707188442194388284069313634431006361563125736137806435128092810179172489464349567558334023967434228391863723416629843410123762040969101339965438927207754998894118371166268151806091333327435786916606757211171019575721422541385926529821924022234240325473154777580812876945655439500726626114595995569522246881975582576414862561756184810013412448970885605778824665899323209009981774737368958844929217605296252857351971127287312073378018641256989373770664813437216860507522370330100628427199004292076022727612028353319531942131687179609790638326121377267712732851779949220148284460476185320147065542245693142385540438796433506033209986930144742405362814422093169789771810139750134071838395235538346644159559799119580087951143599332580401617674548632077242066521609190859077642261678031545262177443439684350646658504526376361798310209196564114706795955619860065190790216998911775526827088503350866394765431222581060404716622203781206679440586600768520170811676352597773116443351723602761160557171109018075745900533840747424616951731263896357231223924680281953476191609817821342799831503179994721547022646249674416168087290755169879691731645103292882097587856572710991534246727265493264876911752263420370159619783986999851891499350752880005703117235374169797817182053076534352584027168485079331020716599130865085459012726130836810657009844048867156602976287101681326139205692870282139766323300162010066994150826100753262509773030309470648490335962413627531867896303580756880386825264352281882661026721594221032537508687869258995952469709548001730466805213614076894996760924163977357024255764731090090290141442353702345461107962543791109860576436857914500488702248953755422159297856590658501185906310422693899572958674133377039892504355808923234470981087184505737542314372467140199139214568615308303105277210936092030220565409945838317746282249528869363125666862302239331204747383024167060467663585834416147502000567877352672774178679156879201245202610447778618761633647292541604532449377390201942991176773677062916750429863399271033306906826625964995391500560248071488871868567665259722321249093252655244764425799558154199667582397989466888627593515784269543988006875860284114840513643233546316340851096410666606643083417088321980500633470486337939781908118509013900113987611045165673290435843555187439518016918326063544869575998885210486185150441227474255276250453182223763489304813951408375065806203686484156968998600599398822645782733821626821986884377246727125062782895431259779780112220816851539735591510736609797886068143497212968659368411346341444454197583120739109509446808324570591500249273273350683154450773452675408758298075970918722859876601716020919624048482464079067236641380409352278598604968174128925627381294152663009308163182638297342846649591715691354061581835872599853677630293724278768845941399090735915924653482729758716595672221680350058506221843653647171585812017695507638185376826897156249588986755144483899647224752329169993947372640683642955607689191183835556063966851369205647035889639143909542027429575260547916932460359820908660040576243875005295937312801800748506644091173251500009154117990787514580427110966728359041257722757424204167353423055061922884183013724132469095613043798590999381477861014776755059416132956702440187247692684644436609973011827108329804156814429938233861113135811558491145289135715634867189010915943094014036775472359836017955537014203834610986926955593667659027109667352480296556096623863904354866685007803493485288792176290703500382941707780197613699418481466137126863655263552796996498075587093420826314061312471297517912419941869265717802103228110759665957513105032855433703763424263302559937368412596554392344424299492276175714754826310267829884639505369255925015748275851575861685339705597011579015113425904314866707226244274057659931749580754049901282941861093847236425395450628704851997356266233337133524485917239309906913865717034089446920861164661191090485757355671478775738065435729600906902266711256811047857749839571952655005455732497549609722505265911975358105741104022034786990136763665341283759649926568950836792810289453826910622098961810162030578766125728599678859647989702204008793999338083266968967673498885795686557744391809211997122671659374179781312924827543805136931474344347770024085509399562910843298821731885983252458160445682148332906522605533382095939340765351887307191573777050446057012823670521821755785571997902829030451185594771271802968382511068465791482765252162408518443193745203303376046738031451865187804609393058822376403151765663789400502094072279670802642396919665987728994892513494887209386071083100195644673971395181467343016758366992789533225836483076319619748417572546643020797442123002666524919154765413843098560365862127760346138504673791356976603911320566819022760303292128703907636625728665516909964450265234914646558160062508517464999514327663424935165549027559927888769776771617077658020056887605209883202831865099087890447419856040935882417933381300487086226531340394973559381296240929988905390626813113438012271076543698441390232018746457470415092013699360325209006065893218318642931022675228718530345990660043331026318134740856425418318250255918995899398930101410820865273291984936002267832088180456737593602160265242639430555560324154223810916503316021406044351634449577795802043399777494089315842364861129435082312900828881695961266383045984677346392467131359869797000043822170861306240085787550334872843861193497705088583239666964511886179838248917678306584341254528049105616750185078417722197543591387217485452637929877279963836627245471650562362307731190064304459435813761372453331309509232807229567966180665435762503103128195803269643446373104802907032183202992613223793361156230510378516340396879741933172831477250849967785468457388953773417386163895203230917522825366318742559093952639318901218990530938100932493446743710522849686393796518297562251106180698428304192803298357391725881984500387573790027312339696359322325486468381942745937924002930088724853201802795596449140029906087337082715555107068262113995296791604461426626497848545767678791130034998487231500710051325271517002530137526941692660033383678716799149651792658904329930228897656771835497821287333139623177977337176676148229092501941840108515838091450199468684941186524658461490459375656179774022210723260788637263242526942249763183527104592661571543652120825837525570659950825689545429349593803169683103412910575956140481082433937448773842768941151598323946121352157175805390629025034428316976862177375488760216313370516476824680407429362093346261138600790097308170011950768647906303943640869379654325209018146811913704607981500985613352702401519706715108994042045314588840650961475266998921390499334484662790335889536150697614399395675321142911700999928983057003001779720351061130516868365249822980872182023777825418434044184490547090797549840261291109376852928074491877001395627712866904978235564583107578634556304340587286696361828514240999165953068910380138517536212435063931412476987980268565170801711054621499400602493616789220637189186547820898800123650888386181215842669269917456169185577897834139156100348140922164374655558363201581894802070484936673300239448058741835310774648423387707203494030488236056166111450077972001039748979023993483647535350321717347806545347121132238318468948430467738978281381530285702472295892514160431146495191218505947042069360823590059204589040254204673673515419437813686181898253315263866439916978942174925310993520037799760479499439767726678459055135317628440591177090038558904575954044296804864522351635190629447643150676698300152260247524949546882099637950024789675268363773005121290821078533501801503365172848383354859517374022660342348981089542655563486895278563265440851524457485249121998119881451967555479657300999124891979970985660052197750353291070518613909120682365678273046635485998276263691082316676636862370644060728729351986359840571632742001076297598207757473341047846778446683122463711157572859468586650375196488119002922461833706245659704478190279010069040543516169601011460494319509758138860042875171762583047814507519509885746101096778607300308371888496389805009684986121597867312661568661528365977183632253240925059963235357406804417178587279349446207584849089099888992899491254441244570094467584768935296920018450030206299588432996477160227791874265931676766551855100470932526682806084409340659839925797629333019192454644712669921074010465533959937170128064055520233575804184502036745671488996735972583149146832067429143262693170545315452883217744539913206210052166275501631853826154379638815507646643417313382413561634797998710606221750606112517351813475527987011661676865317266418966688721178445933669477363448283331090540620400030955951576135101501288244876609291756624014370081826152802389638268793176617108710777088443644274564968056091363321774146054513691437178729196874020533766210265395382703793177183841959344589834911752815983922445548098493711716455373476022642668012874516936878901946169164550633955731701543554715741626458491329867941827240529672504235548163168347485429526669475753404394741261554699457174239457405301932260822182742690451185322796896438243840855656171396768751250843875170161438270267926685255091694001344907359378197658737406818359075136233537934435673517460414257738732891905716486797742815678403552150257967709843288442835138591342686341453607653737822983952050435831933942510308071880099802814205097840463792839150023700788028090496799314636581411562697358774373588948592163370054123059198139640091517598791489374111052877822377768282868420367136204732337854283039411603047984170451494452264309585895931018185154788123666767429195430285243388068222418428518706267992015398687084136856849470505651086175400398372254428157017852032604052226203071135534981742800108474293812599892330642472467686824396947667727326898588797816574198375201317895031954722931738373884611504675557489804630288939821627848806658214438919643851430049223597639294548409543903349990175287864326220390766921088872882872657794375455788281507496998303603726944848875820404011891391778480496738838744707764320105253890676966536285112475008120155216635143907137437019807023205469431145940519326772877643695934915097707827430567789944394527385209470322133586848320054629790805848419054209291533610793601259753820776510870721002291095953600737433833998489656040833255619104244560933576836956550680856628734330714762420608077490471159838609581747587765932357026827827340700391383033671018667197184177566320712825201929334147930175048833878637810727174219837778868931254981235077331477248426489572679906530213731501038215173847865699172581115936081076897770906593208387947074703441823272544973088852644659231070034425918493043280248150891762938174399020675535812086222522634340840212890411028118380867982866114718434562518515675349636088331342407558325058985951965774457856244511755881625027143640930617812191453055832989711510197164441898692934445101761507655201252848134111238390089439664607612885688899985227344725624142791264845258376760694472325859775273129723816932453407901142856566624543419487183450376293764868548474341202419635944556225749849737979323092354854486975334636519100180420845790694299250884122925498535799042686702293125396679540346412817579577867786185805381380491395159433734722651114015394923746693328602776760197344677315456636732051089795797184989573347870105077898195207611860268816268637620806629695555189145006819383478650542249363545278666451815763096585093982470786900512755418745599345270000100720440578841294262175455255385429718276301167483392023232883817848612357431136025372608051852497130877424354954550432312490127238619350766513569582277535462483119063726374543001896897492821834389330797444464226146055940890236732544046555999451903179431166530218528701934379215858795778108023375841478635299684225174251497082223475070714584224780738363765579279105400001550936697478766506540289138258534284449669495949634781352063117991521181062490526148044690489161501198765018986643678919030024652846683520422376474681390243400706310766411397420696551796628085617213002241519092196506780895160684113825438720133127439821291085619148042070370717496665734282787764261110162484247997461630192976524900616905190249560468472193642419313705428019672213248610614344426270781681021053223843018916692192423526772563277047600249389857390763762353316702866277456368993598412626250790676276718047961881409075938398463827039562382263544547691217472325742013684909499372523070046494682985626363705102609548373712952415710264666271448661024295816036504125963450330092543291409521578716792448247309506927585884154352592519819323070111265792411547384929805233996006269334196707487247476402014440986334050019063181217880402304373151743004677685788886194052946434285285676827481586931719872105743402178855107854469141997857132213368720604092940602613817255502620074883804904194065078446014081431047844373066868649006563420852849059574625173355940639481731221737853270932970777528643307333722166078004136821263582555389707237818180111043435311896442232735597318621152573326159502369839831807032900009785072112968305234689798957403797188243792630902293619877296484295751926830591505860073358801205186297413646345860732263595848268262642156739883357272339158110755162470756124768513253420707894798241248300268594517425973093807922521031773376332168917162870069813969399225047279197479008338352789995713711000049529253900148349610705148414224642638893254350482741434391410645498327390898749258945798521982805119926461892197152413547359720520832988763823554085155759909672686883546239408245084691464065386112181395921594068746162981451813477188736962073800139352182525587371634221104587919104912683632649625536876391269529210806097005143239334247044234594887202728203965817620472804326283399304369630956688390616546447280648902901413172800661914728235971397781056659663621807211081838733393058506285280551884582121687744064017884980112770425165947745879335736691245397207019120723853971314017964416970777302399578327181221908121662050580124910416975428101263676864902577028127177057520301568555368585683459986133103682201204239722865372563609185082765057801901149035562330041616261657018476958354275917995132216816082374751879897059056133093191079401547599748836065268794011681646147066494780334712001439623055978332746824110962718050663550787139860921938812866808506599224526838019457032452669892162899591890883626652608960246447874226724789700498872437266902496014722077390195318556369922556967417791645181829401122447943643251901380297048564512454620846701371435313250313296539599899507770382045623552261437032188678457459417351693419884820168282026751518157143038412476106042090379421048462703763984480602647429643766889336949442110755803612351229515307362505877843705101273753361502807964528087245708054637745777953583943732840602930642769616159641287944823878298337310473980933783821761118751689877177534071540710826383477973747908204032635963398437810055524133277030978101128819136043611394894781273144696743541742248863431658677617228252018382840930403831414191576269208382994179282238914666218269523992707449104281032203129475309312850274742418194012289337755477296557132277246013768609983319018879244070265689503762179973258348926126924871352631003267217281969044402045180044383972169081484876437643220024467263675480687217549729856002818906758013202263808403875328200589565456975111896731737282681385724744877626827176069475023003479333027224103982469614838458147986513103877036412299784309542183191211302756961548427379837516490533653031436005463768835470517629166581787321570406257413452248203127083142432804488492548775895205209030314292336576833368995297615699734710392593061987049994084888157404781762793006740020136755544764305966487038427840711691319781179942013000661790051842892935183229356671132820662546606421591886879212666456760650304354052324933600999058660797119045443046781511452213014541490160498296620885061140118061014369240455806841811684460271602469732645939746131791659156178553625236103122634707665554242731345238159835538015787425078741023580251805748026623589650097186468462725505564280479210675936576175851266329036879005941378447141600264205979553721446500966971361659498495752340004327900468228146124884661269539709446366111305383759094458454336516946471294934344809371629037434472686903551504055795889811605078314629939382412659386270820765945984885471680230270199906010289937352091553561311728532479774680214450156206412071636711368366958717993841698473677122709762594970492323736824355133434774893347750936512564541084413302274825668092366576355549887603954348771304427926023413951543815296767903287996814118760428882511599613589154219966231172193774173490084885163772309943140276509557779204261999455818740556002779550919730248442166965257076563462819513293578865188939436384781584051521000773464327315080945237916980853111452933744725768489268677639757889346362112101167826288977319506801424385283281004829965557958318893643287680492503388475915974810436786691667839180306356518086671042646555820210566011582590378595593223107252138346753220424172408307327558398920844834919317150220784228351167387712941699550558220201177414550114398391438232933958383594992653521298997465410897773494029116510494411249680904956949040883058485287356303777462817375110193174699738126775298545814373557990978152604764792508349892572963859724303822065010694238840464952589387858328301645179865653510452339676217089711268476340318219315103720370630235911020913710959282008807218637560976079670738863841393569447442173811847095664795966907317024695593912078772566483767976850393918935895646362736433068845079446635570838171251831409390931585637371277597516662501136404030653312390662716813718644171623811680354979585137509548222342316992999147134719285847084206624532561795629388380182708097385015628900696569376493131351862689625648518799786286376924376643369698225255760995991496671352112892185569906013380711369742889183784992937738643334676870930541867084789030027532177321492948593522399744896142583484178606570694235219653156361729276199293796043416637374961887553095401788053701998208787499952131878836149423502876692207178937986621248618690181875818473703141550884676804238927783380584800259867191436713300869377122082686356346407030582695180984762654959392705246500790314095208106958716684992846112664572336726205387099120639876573821971676326575117778454113613989368171973505810622279019863740458155143328631260941909062859757161091513033719440165053093938273178798963113625474356741909851551244389899890548507268108121770812433220845152974519675573577816453393098889814357188056023463805542644621690464035352048675599731378911861853608752032114045358929499803151353881525601679960040721624907828902734372936510945490130646719751697551602960771746287230591104883919802945791091686744972525620271288990911600931129636379605678370226027182973761661014706921642159915081186449671459387030008933611872995388534699015064360152901429328883825312236635005788695386965365563432164625978238727714282378092602057988586677477287158389979100669151565250143677242322760021055824588306097075760183668279418731192992180082907185301349307119463150705868181030527354497708017168081453037448454375605972590295213618490222976010333489737011272019855291799515640842200913696938607088626846972705554312336695346296648883969466537865686980030636088926114011654363673440212385800750990998172498950411132299843536193622638116917926743240406726831538048057686236100759949589780720084333211987745577012477377919969820830247806262567387276327085809683019119748825642012855573694227058090752351938818334897455376584636035914745536038287078563749511605011699398222455153870820817941225589311222309497187165145047933345241330475161976672575716037165955976440565375964377823664577604782636821711264422141439174442955830201960560056095030417785611410760592616392752825023896512940883679467460696886125536039093125867372956385758278645398274642899978184135994764279585546058865417463733845413537503956622716863260463703151498184700600284153471475367531978283995404274321148867917396300919548054293769333508621321206766570250485211763459439221398218373601936964029778863566787464432753846388129499695412195692672724621525405795113840922691405135018694182214271779757884967532411231680978702476132503508128626640608748198186458618876130927575289756477948635295575594876669814437226952933067598569018906751733692639602118841705098565564480824406189697320656314818880325935887547832875750343614503702286340094135626690561875605519638986635791615929652892973754078647203442996681576970982655130471297722611202717658356022000955849548645498796050815270324887233370160595116151877467545035089760877818086628692853956638566175560911600438733878352136103102652443496102835199619897914987413067028940730205019679869660618076845962196676237897764343484082439560405080620273781938575179937097389061345577878790152276687913705662881929651025160572316888187286075184061071248499323764267140871121146645085993378995042296726915402100276449609346970219291937357409167111891493565655856697881859320500588843987692544296366039375243210288810616512353077819512940943894967915763797782386739903699876127427620700319461197483615061517904125197844260044177908651751434322038453921182894209142733651650477873721280241848810550770307692850392936984318534483460669351670382145021520623488407102916463462570396214589842474530679524059094094617119672974018815443910300298751251179862833561198214752299392287577889702620239771048998433680557858378410530460760446985228837387729653518175455027145684548520717536840683494410760601881298913946878328040893036082828272452058360316831709801027325509536423918314200645590580232439326437099764387046668965361765466748153827420281257750466649938035791307357195431854699102839167138855089775923489616041404118466852749505002223095809657908048473320799884377790512772009684530888538985310117024911723868225463852125245111896278220651117046987425084914718181508065029080044672294780319390894826287247955810679880345949493265820601993021474665015961393729171729683748179297966587334447054772307746031196234008450728872412640085703085740968040454930512074794798210370689735756976148312961172117766758659413712085754927779419190459110389994176599805399222489804751408478298975461670308651770858735004889670299625481829315162809895360866653163010287083416438840446174018504459331669798304558750434838203254940597870526668540059816839237091202217865274409267657138373139726892731814589564066520651131006746841399592589115142995756606164281613863482370021177402478213148494780878009471836303257548296351989645055327960363322656436213041512658023157912753691014657848630708776276722691036299039220721585579240567257377768627223353078259891420526382399103576320698604549827927662338727321131264171432818678914933324544851071858388449342470946698567769626341271830011088376056224465610406976241264000662758291978349041243471171261270360825622317372537830062925877910188117153834083079121020819699925643382929190393342487550479523724901205131524042835721864205271236396897837860546769360276890207865700538177388909718595891199672705662917867378037308948855549476200619505975309835093651407336832046696176246927641048770015301226956219341212443541648767689528928174209688636855571802389912352249134047846717721637519229358837610468553867897892468466363428080876436100112959453461340315235266347494479254549846338332828118115842243331825750926655258924618470378525730314909777343202809874790868189593383512339184262124084607016276749953058196832901367261270909430959247755220266356197353693875274279517010985488157702898663662571652330155740567977695524614366534601264951826649981750928519306785128952477041876382590627637043528898966873548380382126199858986323333406652364202971773195872531936036462080797985387796859771187354637075264317701754547516024709703087901912345988118414006186377518853939585210846675159531962880248159169545334709199133009789605976203699773542075714845326600468432762220649096958616256039869125339526268132267918824527819161964753802095256461868233313336223466987574204852086668365991792553187277804902817896895645043663078550205091762060620105515489019785591240499192897014135105683181563729524895603390429631293786989870378550743725074430897468956761564688140614744875914649075726104960826506109851951764126140757404772741392078767428040771434194799875628357959282576753490016809120648174329956511988437432514737399658807681488131091917103374599703827488505654636198086753376394597243500222359023684453249944107066811920776770015554456566067324775775173302497017144666906783176673997720884244668623033708485859133134018219141313672849994199648928911250845408795597115053605106550334834209922482003853614773573855663750124303848133028848940399510882123987901049806627847815903089209637427164722041667850950418387423821627917372579557536043620460236299780609892370058614082854189888676284875339284037046686762160787630918335019676641966148751280209354666994133636886278116547845612420386634791301269815701692816657997919591656749120090255401237727739474783286231920829417681629028528225913433776842594306562868373723546301189659610917267562571672340137582326125382781698658853329436247152472851302372127852729653487600632090019946949779588419206740451871998591798389201832584429536563068418340069819048952875918003211813126500563856460780901073956091654533195186862531584232190978712214729596235280653347711668541111282190389859439563034017259640217127178410628930744210270450291618546432855117213748170450942356428618876386914689247894490254512105590079028920621143540043689181831907713546879620731916834779944542947667950432668016477607588950058329503906358582772369690907034635628027045522277880879909929142533715924074315439952816487381281179172582881588111103819657289874299868260811973809408713500044420318488411453240230822753855629436326144003801855706381499242613274723715235030272789519494142027275275569407966277872031561107072575867889083229344964438731180491395467415307441923544096364422614079509658732751167428354082472407213580509690324338830193036528459525052683167928224848012117943949516978174271111410600808344589944578797056630801164876798435029842842256691637905339923711409441117509814814544417259488814246347744047557843670022433581160937494076262395251960772758947610670687921220358952389170730210350726384349309643252337011100352008152210060442748252925257342251201902558125082612988277435622398368272643097390092700081164999842829984149724727043051642225638959931745522630008304153462520886736115049994999690721763260493201280697422887958735209494133870309048866800626681409067322863421212728639612114903153884986996564774673073418792175894688677873699870640751594010106920574085955568131742541539624183528869192317975352123597334618566342931699453613453722575247535211838437270880827702250267254491962045059304388115284371354246270329739869135722391012074322215900866465396929070815162363140889177133532169491830851028594483977481274776458901727386592145211826870609735079512602688339704637892987932536365350429553335265920200727140815830973392766019359225204238262929498638002432555839996775460294163884433373164301267797730648720822115455713787543511087522753574425560784001594294374291443423672087848103944240917065013456951341823731436114780659808259803579688504458463265219270732225350268634415730001465625712946301598324586226236124361503089271617964637001888465502040311223338203933432826461291989603007128649301468122848089094448299855872237755218594688379971306912058814256115505913988488106271574101635355951474747733151782435605102151533666200753103809907926249186465757784016673720756877292275395046338751861911579897688810306359697791766427919236771004147608613266509643166841634106744192072983917680161401953033573707431160600983540309404294664736803846863644536844085647432687290798723590822286347039898483527582909091662187554108306253294338322970974482282009024824672926889603621731347806944167235017251196158768902640691711197800710440261912498939793781001971363229573750619255041200599892209580916035342798654094925028101334038766377468710894118691434714752467996176114794481963948891063384135846637036352065325229317193435191452770134607161839466300136679480668181250463284920364930071787235089007257705034862852185071913800841263798996422805010029565271104402698472567616266300580836005517902511214115816855538553176328094414766777687123007519214510700546180705297504903087338890133901389264346410899029568457984166449452241541988895304201153335689006669178004623845558973023131719099710440361409657207292469288433572470540606049491126493789217125627238109973262151766335359984866487644499999233960901413942834374254450736191619516275024547590368613534755644668363974688292168270362030897334032297292040760897380078378384098274297300180243730887839469896945299352565100290227604408779732441500258672641667073502323825904066001934711263663974746155633608179383268330148064895647188789600185668393393753643303196433642005266090605281442626651823650425025031653944875247457534425903741426965937433815407887639761588326515579365681845764569470215415538841999189451399795810927415877654368751971945047176438103187030410513402135079582847656266800858864749171596431428511489622416834408844818108214425145576648144336868580164686630910541257603115552178414448614282989423263326423823846265180992668942731170862956010217402349685704775021287700424988152274696776153873336319607164484664887556532977952432797076977269838026011947082351230352040211795359573246058641360302081158947943948147227304955977221013251828366948100660549116329725592505709929742345528628043135547893784333808070746288114381569498166268561141399761689721119466889933624830310805155574879654306302656157847231438161918541020256323481613875099192772454856654241148923427421126012540774741988084717174973198359949398661161535915727141162598044511741799595794494449783747582759095423775987210493176043916284563749124932876898113890663927103573762794927128769999758762858457514175781985499689603316237498371349940087209682085913265530750676614829762109671824722734083757999472999170096663804714464116539463810515695336442791193159204715674288820824848278390006770666607480171758088787300005495227085331979519738923752371798375219991119954940496857441059123395477686147228173947129633574699143720292653618502467459496634348345301025006551298742336332734374985966798586833168544817261390919531788987168536065973281049914296772590653677998437382291967097492497241052715959328616254242801307121828297164110704993993338834643368253940907983740824085182540639486208304084705145144006211139549155469799143749506165513649177960173346335287950710868444379298537603032133291502832321247668670455330683443200634113162139158805032142010291353278516625068212456709881856451158609197822586699980815762801428835857829734827619964546069095287097752747817597625455336637823689819386245837088374330590924348421709796957352933133551798706807055065101162514613242535373312996152756392671823918353059226165535314541242852775628266289288683674780780107088579704908143769755856069976061582950411872423004731945075933598558117808423961401161005790069773321838160232489381244861694826428814776817817778615580819720458764461251774216395966094115938437848801722857012671225986736733277697867965582197435526790163455055455560387069561274896846068233393657834549482732328203367377827158841816417801514684459784339067422019921674231814879274390238573835441279606771068838208125273921401567297957449405152206336907803596938042709382131434819593993206054986980491115811787774088643753160910414498154113841059759501923699858560773356747769988511436913694355078445088121201636271433671740229765156017059293816114575700587487589269768844960198853423624817241948885270650624554013961852063482780387331301011574850235245474351910300748664006226526372599941386455663033862838718713459747487319394522833582146709730892068173962893011174491944593887347062170671552006558706990177006433593105034619303509794764998667515712051917522296058062329074906368991421384433397606382081461145847573646593955165273618717092610821267453447510493183622795945144312250260134127223500740520159396541987934114747623725960047262929479121485757688335691764116584566956246177359841064462362792141447661913385029433079611158400712253061205539743558265261960487733698378024362901076598653372163471435210336402340787676823815884311368659447776761085900787852025756734983140050296974037052712615632534707348656336017611725366194898254976185689100596002124709996835123369268058309885530825294422315528945632489956777390843596038970579483834214680961689719340698292455325569840070806781570368564456907436887665899067077323689127593525216906601533623804189499023057185131760942171900203224743874600855682891532330587924179865110405155465181380090183390284961407812239540075445744389523865626624500212618991616438731064552128342838754957232221368874321276928493467873513267186330832341349431078305040421581257304273257927395667679328575265017730017867616166752593909804391960149371040221180664918762670315267201374316991542824695073033481449349768861934897297805979442368844503034226079041241010771498954542996867213424992597180436012878482108547659382502222358831385606903136740550366127063984921657942600784232720076652422737645337676068052277236556738073545565849392239389714927105879221975077487716846724110825783615532822740349475605477753792929600420580288900016456415657614658334091002399921687173768780600422368438750432299657749115996891773277014026357276538550468188949709962453582643934120082454385364001422978686904136240794986876430253067334242671605453238852924263132368751606812150883030103268036088902922092099450015003385585186653969548924977393226226753678124922986350224470025715568623837326562711794668041971763262211540749091684667376896946622117236759303672939176469753567956386495993567420121758238015801497753539441049496687398199527470468106625977249919104269883126543653410139345550506593468922059214608384547940353711723407476760323332896455424715953726990852832122333247238821021351541095171484160937608810633304343637356043337250870226831627996866090874095083344361205424607312703927394776455078218064880536997872056228369721385225599330624438041586666330391635387219204613768272787903664712235192665791998874844355906777509520751410296511729431563688012073428337967727397375049994932687659071300249230457816715748301996137249905789339412281763016691399466796820094593654042929730656916533500714143172283510052088992286250139313385029175288844908465992849236649482595651504052535852874930633832641096769641865913891629443013800780643139723029810005965073357359952078435746414284603049990418910686246426508644429110317967954199130211897960911878736537079234132133500028874959734160033303306000258412779382994375792234256787350893867871613056394055234321827132195767212726542624923979911127142666464159701685016520612375732369757269135822556412028357062071447188714826606523165825582080078218417334313938527459199607777673206766304586465590754268291192491839441683198810135613685274581923797831334421960551354648968829631808534252010377863388634146096710163069156380650788342723471835836618863567657235807150902123151995667467356519438641420863419639748989972096708406106747861367173894208457897526261249704859283642682444949574059814762767721284730809792456215858986700371617497474618882444129583156866925734986395673679138904079659154397237655016400617572141981507385581615904521779633716086284676334879680434172987163291271059712853119537750644082432092362974719065623965370147044881827698471268948172353916826485628659289296431838090093249507717482449216001861798931762214880151921695317229437858418155720986386444194848044754658695555123911828905854802961973137908968240906856956099311828587710551296796918275279196216228700947827836237693703643566997261276028724042849350739207243638120950987269472397547931112968302022718096421311075410075546720690755348375190164502478953420902247194180266563872050372298346688085754370272656434530331256297410294568730202740743415131678440094822992721375718869439143736597342025375427605405967276514301067098045650671295681454678850735081777174049268649576099010443278750667233026601697767141853599854321864305976531295403884270098052665297355849454251240911254406974816671014496180488846538944431602212391767256803918280459450758213703079261728822912712429286013519728222189793022482149835730645583545759157408906065842366051459914654873512436469108251837250158965031955588408032162528720958481395293079427427305993327268904286597745883400140276711712936682298808491395084397191222880197638730867404566936662688036956819716887625457391270507213173720770228729032360233430433143929799779730872572863078237733319409077171855822504892291646252546116541514708559657646370794116171557885875386256703886663608147925147088412731005703486189537555089389354959130412456478399009405010452309563878875916885500892537340106166656296285186925220203148760826445746375652648682340816256205166888406093325451593349314398762678513962169572999531004742576278550918942758526735442344797891284345135327564138459420320904169952847921312726160120202005096039425559213302012605680850987694617974059229330210307021755518240109074042863791470347831220127770349258464751555977552536805293387133961452409104224564967533628896861839847454953753604842567151080657129572432443493994641414104705525187317937090362752676481815889579563081510358472781214198286001013641953185119538295774751606077150822001513619464968248705678552074149561221884140231542243737701709255054603419046933346939122867810459750885907437330545524592494920768946215222748666447390561366876935620221858688557285999735524318075746264664054142284662735781013269090857786587610050774390932777389878336364446394654120436959277677983001413129329751853232641253329883752667540198128506547753408017708378580265391563064684085225229171064412636247803777364884241380387523170073674921596030265321044499827538126089082583600340446450458136927307870011228420194021862443706143742633267771992190641658880232297053761404928082480340657630796855470218876229804620320379307515154680467342497376055707269971735458026545348401299753278430747060841008776174612178122731172633008442699132486883270938790535345684689645513863662721175903152712690353072653827605426811356509810079851010441647860477691764041247792520042114838363620590687701476439216929661545627241961894836801634001208052058649071753456619012804217129107352339228681832039756610500621101367763956619772991402756484640598648967355419770490117291708639087078759986596150802198826641345963964897078718148457236085313566411716718964116762685120815671060793181069325079071190416903466682104854632452666999311582762610896991294000727555916862331940949502057650480898016289610249305210911201282923903378989302502593096678643342268987152514507416805967318489000337614326569786692712081881631174311603275825132729365035196515247121348586047511655451299973441893081466908595183650067828580219348598341064843786323379783094985354545136161562449220638881111120112864412429993470717802098158418950730174273886441241875543854885920773115753709095793103291692479962224665607039632644464704382790861688680155650165858058693229780500235095876606816967147126788338497221785400284139159006142589886924476543492546543492473134213028662336317669207177910980402146127174235205573747214706849060901015724071898624779396326969806002902646056116074786726900683244417828873295214926621899625501906455187571277134185316003626209772184121448114055083707701089422109764267873586722868594782952335741021821195186997613581507777351763400771166932374841289042598468545765134476735503259957504835177939680158038035056922454743159898894147329625831796992957838515755683154446507762660127795486056577610207895683988593087761801798963275731217935743528139198355150397826008747791243305221195323791773994543718403060822018372216072580593526052892286269329607488041822208928762469656942365739937994989787721343347187327572411572744691276887900104101287276343604063088589228366347168856435608304428702639013893477574570282301297313541307969528990538165886809112333413809599508685593112751454404025345281688231149484693438780451523803482046336642272098765698273312219111493455054285894810577163632780964889590359546938681492136500465268658116091189849936966221520445163287434267429886963970333551901265684327711223071725382999168836917061269342508092066643116287854927713098740215544861061355268834808592698238032154147964177213121956184988875610841843809652166660942619549280979992504127712061416805271149264964832380851291909457382837456037331585781893321494991045399999144040061251165048219815782235683586255328140322378308866709321249853725358455671287011435275744602749976475939443644980941276078284264764756921455349744525357735867648899641690424613564222772805601649089517724402353176072233759382095116321812911321813646289870984536186743274132032146621861951065033754423410529234033742698524936036441370946601104042187294757885034339431507660918660097882200130371819713524837904033640277188851789104548354872118927650327394848744796360601712589738872029881264966846234226857027633816436006708391141262591942483589176179768663740289919402391139555020535427689341388585098178062388052684965386930733928484825551896308037720092105916775368043200993818320513111325102264810454723702063006376722342014316302514893875627759057010589473496853518713514636079889679480005073034523641483906288353424184474063794172571020674898753894369694191290546476067965346003962673343566645627728628479602175637324823875132549796182531074888633065095454820303916501734903414096727913071808880459137820611211662274450604325524863539394280540413005491648175561629316372982152329880652340305965731788899934299458673564860179729965880288591954913798534995220752677116511837137160662440762111516695793996886834328394734153360391102087519623922024759569656356770172842482107083854250234524830750551250005268081928055463947205215993443325571168818677180971645862832698800311360196789944428069756048181978808953404988825592354345215767565595982449876777328706708858804253461274965633118693341342837755317839180930199542911805451923773270661478914962414145657129540865453767165033875154416762888223823952862949309472078149393937980551123111519534620022910108154790897415502904276067231336642969746111713274859275151387061105043849146944049770257944120308797190857767498611430188724324297883951181019450240807262945189131205377448478627768548025953155687957451152901632006914776253113329724214474581805907533730780104962561948005788336814974900032194584643650033895540614308752686978825156961618635331180092767576829903914091696520698695193798340143700573572978993143448520420253522472375749940322629394174411477589755365954540431174093498589579196089668544183218707487535468468831426159829563964748781655018934789617201860662103008013377381335622235550663618621574143361039040111888601567892212678214036640786952882197495955137790173832390474725256913239651747227084790751583565035016633410391562392998538997776842350320067511224850500436896428632642297369848264934160210676683456692293865628343115989543713000464480505368779738131077324418431562659084611662497376226828745891589693446643527046595724541695896887493870904333406882096572790417499658149791906010369764103741183508643638340663800746360413518309111704363177128213819151733238405846891424671849040384614373899742882733508737463544960607932655498199962473884880617647969164045342657137342218861685643872088048986401875985891940825501838823811331777462932767233791496244983898350369330025471093003043647719922971426512942583310536888173263094980261065593672713332932215896672618338704512099415872106390372165747103598756995655344284776640429285542874005635536064893105280185661753228232919096886289328907289078564733667132000167527608593230794550727242690438419190518155733073499085772617890708702260619194667736335272983093083830606650639332618075258526854211470182482261922555175642167851154497922009064061627370534220416341305452972395228200335790272927473430891209970282594556037154054414711502149927941247295344448831893928500105372280548678424806829573484993140216474789244187932217779666729890577138299087167386332350308298392146963767199323413326414319787301968375974421842891583159809069526115512269921700792888231477680200626460382687104435123837737233469538990693382859982848260215879831506157950561504682773103404107898853493206543460143787599993386999158983066186502046808689606851169296501644617867627130326980742620714752178770634096096439350865359847776205917648424971660565470520395391107765566367158268098289099177915419659862337354234953127630864752752569302567685701634346814382830282827315283839768145604089160131812294156646856977041883986755708367089657913982343718820679909865927895067255599698666028016382154748133609316344863638998624505067502183494988220883112413166322986665084324483346574236433447057413748089535563626034078066487632615671971137539601988535539022160127655008706630228873720173873472878404132298967584278339682963093813806775484591605476860941230415779096922662390026215572141186743134621791868856935962578097040094225803088272874679087739720255631938823121531368559954963955632704506965097061311581648981031589583001714100407320034267037166411876659942105676302801908308524673408154018257594210551970673434036951352830976360430414537827883173406327003910751494006212790646666203744179151956476546135459574378006266659225907259406758028860729951209354976127007717249066200138258870333486044915939852379418263880565621190933462639908930449882281419397639146628632972006431050894187965476213579319824911129382375315359859736053344565142465158572278515691237687704334262277963546270218367853356346853556642065137600021629491136743900372219550088504624814008761414426527488011173348879931371737887050942608917850445710763278422841480834952413136507358146425994162574310103372419688390153377894623989376689110632659680101614217563134261638988303513154468410870854149683954259575736168215057178076793587032076979930864346297269523131947102079725860503123558219183965470840129323112047109278436793368454107706214716104238528158569803806256469318737026657715090565096698092062161484062643983266275541633330348080628139768881980955190789310979131378162220507376707247307271373042496898411721654661492426425419222162473588450543404532889745723397702053183239004466391475294164640986131340703033157259614999311723826608249929293793407190852796569067702960628376674563568703563858312233375227024230684225958415723315277514903979854240941212749191387589077503723081930571707651322245830452085461308062785384274071979322371648831200430376597199945818331777096553387488150983803688795177277111152281465098568748940685415864576696242637541104558320219708443055570433501095852737666962149240456841158566238970591614165276593339275753633704413838710867361864485141583572547346240458664141948655329492313723837925129127084863075446944755578093862711861504532228906100338787884087345857360738753015739843279321965125688676049868006307529396364271328845184703418735329822419858958137118312300023123103695705779622810822289539883166620571872209215585880835248747677243768119838377047827526059187219403568716178052449236993958328941083517774733888714850517352962949485274438092161569206910032334292494364143281132489868103924949700403706158594689683779678045873714487102639048550815597491525813331949271323185989770412750544630200827649319606045093625660922465957302548749374297378977622776565070880594420959757592268913595253476332717638262209995500014648308189490005375730897976405267519231975484051915289289045403131898422913843857032447686445136034297675641125426179209763638506316479451580495617715963613223199537489547162341046251989537107768733793524584462134705036211118334837489557025722603057071819341616862578044209850393126064812054975676477206863314193677523158416911280888565223547585297697617466330908603662604049009446028961128037709774637596106588816248519871591566309990360720753325594819333522953015067753174671842116678234180553299648675557246307541899104691821106024849450523388678854525120086800516329277392780871980503041795521785144043880765959346796054429977874443532829842784418318355891968688066064205323578085025174725500734099062076373613127471277682412207222040939117584554686269244160220162736573617897584315588730250957419875568982720504612023149420234589161394404765578262357416527934614501294686107982615680436545751365831661597644503081479593531189770123756401484637664955781490552111586231764523839925771019951736389239282652645735907086996869761138173969413529954740270133110864054524427994906868154934312496688255553566187847105247054587054103768330392707193497826489456446263854627253867561238332844834814611714218852306881140322639184219639686016252007133728688024086437520920281985374904930595193225104688795296559173551855589455850609304644384082488126162836908645831868167371750966627673783504940488048466438095706072644959917248962697049290652506156841972712754918950129201124190330744608400711556994649949328872633505275270659063565042401376454109291507646508288283977584708890387216714659392425662366171919963485500375427386802923698229242959756319576309667893334512718975449217370565273301112733527210996222493281978053633759516123696389504462512596797007295956169028930303897010134008150591985185411849659858140041585113395188270378893167441726509482338900302608446825784281597054810771400080484347420192700428981184160773425747983890880472385742061466368987867633697650356735704501322362208276540940199355368490281192454817910472558928672359509823663432237313595300126830076603208628367492187980089655829833714557290243342247291164454531529877128100315055046026599936053698817242403563049948043568102111562097115351399463805866991413824680836528847505784590573841734691121339232358308395527476997984861867446222486898262867746593418365997483146103397144651542805255561980910232101883465180608564923324083587812315099372006971540831571018389590591065396838270361904034082437425854479161209230516071247031492696526995398116315842669901147231765400134458680936975587687167063499191788063148798329063699391953923939393593933169432649608027839420388872091337903326570298867260569317440592572832174164129754362421198566725654480806132899896678089048167395901330102525627415932569939143391455137888454024419779978842138944897283868791531217708787914655631689812801234435920582532998323268216806142261958056191809094665345440933429451508213680242733043070127332375928821990496850878817034884897196383529125805671027198300142479531956669429145710334347971286826465685551105131227553314330243399334571830764815310729488925983225187848547611841744555616019976171512688596668043783029532484689467543791116578139800296541191407747940104777485004769818536752362294991502882655427334840393998609667985876787867612900409507493850260409224576648788099970164031825662389636465530687689958112212592229025518031562147422677211720914521672887139049052052294027816811561995399683010585142203041310002410774894961626472064620305171123855607774299665331934330036516015160178161235863613065619416995313858948923248537990599223199974778398704714858640492173914898115085595788193878061055459091019604914422841146800840244512210884625820713577783355547543034359248192667777076926473880449660223601178418766410201485339849042350818985964614236086013487530843816730567140058557085519012168698866119125492899842477347701548895684553717980395266837561739934140403608754801784984586154367174231295866645163445186205442789216015035809396165516208540439345465320667212680877652602518499774564965997068427128986201783593982556479738747967715452479008823462265103224439176450433634928469393502150317868749839771312588189623239020371826203236179965171106315792111527684612078100367599827411972222016647758450708859622038878297030468501814679966799904301244811576731888066010290081026567541364055972854055224179559646963275766675486189975668840369851492165269259758530877254394305248302085246686775738173452009926779921489236735436235919853887530423321597637061090585903907525639955687300979192424234172854329631683067785972364490984723352317784652112700671703415230062129570288935099807570246982581865559680060788835245503560058606181363556726967946826995752687269532541323784904105860444253896005803621478899141843393663300734804832143385183295634238128192572521911212129061871592933337340761948523772461090776322166268373136944484186367614147067321518022148417875894977206117630102561005170683631323630064446331821279519863471576313342651775458625901160312392718948625425258538007775087253336767524749537304806607507957719432083086022817929100835750065304722258972072183955062123744859690239103718396168625265249956203997719110015547593403120289593885432358034082556675497253703929144222201659149125909972540000928123237303138235665984690077167693669825134907826929046984034907497551829966485590368081814791822350698161821059303354197257568369172450394641159806963261270109102797428076220739789872793764819677050319031250261047162550456180690278438312766165496047304060356721070276663994044344420388899578753800997139175988461634594812056900845351780146032521838075387456746918404924509936534687303066001130136602448692643638850236188233343467658342443107070151970569385609973987704438922081702901949549245652797645627799898150242282431037528369638500126799455417883292789322502545919095357543530551846280945421663171768548610793637662387840110955302328408693551738501601928370574793937198102064607995904848727794581787124794050423585581427574887658975224512352505499814062770309580153126208558963373235804035049518200500715756819819003143057321883499199956390303605056223702767289510352699852385819851462640992944354639260844278608343962725393281865124212649146359174650847617044327958567193728744544663387088933508974664593000508341213251006622940689372023439808001420529313327303323127194471301796521618986039967899288427029742982115720022904514919414120098735332613730946687243747005990173250758416489219051566272348274299185714525468271348359415739455684375587435560322301768051803785532972666451462181837802961991286011622578092926791856050816260118401291014895240979924997636136543747949055475409142856063373739214545474532790995464380843263567050625656230379247260491034143348033140843467050500413556462878536570016323995875773036989959483537886442067753003477089371718085573198269805542288255976583102843752430071970018317692677741556143853825723649861022332170655299684120926096181941389076140372142546140401417398188811698164307719146093869839213688223961990875385838435641053555789449722391853003953687666066167716942544853350684744145200386127294262555414505013421846240385804486910086279399202038981615459313672661975371214682068045906670311292903863948154084404381579101083000720839105142887865909510700671604570473355720050342609359055086103934974354777534790563529199873166018867698627693666205297058841361271255925227039412281000578178581705599353755710743920570916064196753772894198296793931448244593140182136875317802157272012435453228469416177100903713879858111787511278945949577131996501282781292572157442680901477607868162017750644532276428973169536804983654161938435877942090167428395588756670056407311753097651561667575097399848033721317163966463966057672111776966247761071809457675288475881740367711986709078895165914929736171093618051940366727391429695103808620814327283340746691905956132557206302328185414675243389439638197995067693170359848374572776938061674323383828849336354710835112310512901428422085592163851675385551154719279934218445038903732642365950926364621915743058573410228634338211391058681134662955720197522771196469106060685057490226330362145235005321452914290388162711197513682436248498354019896229686914517425642182621511659894974633217059052877632004695027274172826397184032988856471635530040131450274296139619476548217778181219786494042162613116087749707558725366908461796146950222828143841274561529950968897261221244326864289048379058919123818867161215565827147702132307938260393462300781152516875325728158880670377818548773148137333798881484162192390008229435398874112261212903525135122312755756651608860975620745144372104046983396856896895981314955227514103154758043728174889639576217812297199176332248420517054175897401669809821434270491119313302533962976482415125700251069999475373846353154483961896955577516831865614482513934160859279461160413434808443146354191781009760961659920541346466990434974152624365697069598430616294507729687468991895168431596986642171037361648547326377092195593190417017612633823719015268366456155799601083027264701107760088140895063185415784537926508029184804625890720836470674362544716088343233490468670734223907521251926814972077856274173471169517470884514690770939767449418981307174211630369022504227642761060656300467520285145434239050178110607008077050861868884117280409045422720836228781131948085408296139331462492665096760280692607272020224106129354961826300909713702138722102150959458852903899477000881150810472442274633767523430572224815374520711320595165801869806409499224373216544210177583869087173379722941179890695207270799379978991955016568299374416470010124430070809326147303258951999760759863125625652006567259410459214729206428211397051249289731632151612077091513387441574138831552026094476296967810021867544062969070065514277764383332824567300006061944529849040505362362826374726256267427401813513956217658688103030231136391780024241734068979335397926152314192322141042267127229062680320404388654978389680149532397345092711848986043609324010976370737611636623155909760569592911066284693566227838782869457728483221997642416886010962977723482563399045078077564372174149524022288569487833355433261798792363241198140637068521305098741235545263075379620453727115276204837601477820414711726994007780919181650065413794652295938246673618145254020483429053925659337792007485487869480994870083345747830053166186256052963983844832747758448221326252176944071989600710513108102201516960910081459187460303565900213184008191280283186589077391004771846566517100423981033785935655700139254606285041599409182940665496148798561042787560654127430447090804184080001574618824234198888675441965634345038969863177410519476226653764130903762005065532112086759156815613421472778599274199899890343064249327902891053280564997978461689872091905139063014738561522030957478785462402379913565993512275813202798998069945200529582932420870649406431329638603833841014062937223780007412831300451329184163025383272494417478923785645159829961239886524853583775543200722043146642646441440831404314934678330663006940941953942169962617258499424983285349904247619501725395501849903852274177263560314967204949078141608813314748720138494999119697544193678084226974136330091100480176303133142173097907801499605967443992597600311840936388383290362744223145349738578364272190255661444857080331416265506262088205073383555876560611835684027398419574260100924132714398209705182549578338875387239135905634311478592278511023601064307332589118583501258310906374086987314251424006352545769863572268477711562392342558769021194875992052009587461849474144769614122818957321848739683604079204279714734918145849655205394089478554197049941801487313166074176177914832444159674235169925044271074923922810707270105021346305386502028349689713053740389197176859872196091819926658507976549017886737450671119598724231110229573577613706973012362578642655741503403534116197852901400654040637254452464480839032143891792964058297122591841055781228844568370887718764526247913835433267182434213466713572005074465040574391052723835450103664240604944142142528499240279834265496910554505249256811643870378337689189315375833312985384347290100185859852281178437908767076881480776075594702458094743885102946523008898890249091532413124392777696953494990479843284399664670235579701440626257331063317351146717979173001809033147351388404214770465920226632102287293648978186527586525576405596549689844498554531440479028597818696271010827706014245181515328735986293092804527278664929227598476837332225316248460954843093064301513665198567159762527802269552602178439199927286147675994680563065539403697898176270957916217247302190280238510171844546222629742599954295526178371413340699264144251896669686616556949595795564352016966615233836980608033186242326111126522933973263683192312016399999983895482533777466794839780453860261524422191660077132246310878826421060856549937597834856323450054181171923795182452672827575510243444406051507616349360933575594381485059016731084357995519483332834696834428506815755991252550108938210072301148816863501572654696769902384689274031841415890253787726326818386481620187516835204332769610957557545747204226718383551956266358325177201728190091515035723762517358274932672167339872579293478977235250049227715118590435924349948989567982080681604642482056720440557629262437481239183815596577214403716086276257197314962997425187899017761031802920698198842299271537162184912653034906510521853109063800189593277156310567239622157655598298509251577238488200918876757333406541719238767617028608514488068171441811086428194170870162944401285086223110058665357022122009973402509790760878301840599934160763999675831198941001929464456222926064796769737297342354808352480996923414209682709373727034616724282928305228198812119443286071737809142670704917086680216708840816514282935603409941772012824525527757032330076558296101359816982909039612439454807470040806050409373394244182825910814006113731338421208336167494750604976208452699405176268866042977159414366185204478118696300509012134047701816602426156237220480758165275138137028316891403252949579748361039002154361484607478376007816023764558428758760319894860836485178423077140891509469381345099235471495342303519941672616284757698265656028303208306113398370709333760467159481399365713874984844892267351757166740200743156363986616757184447239240023949228183666566266085312239958155176797220316088620756089879524677028309239816045212705251551638772771658871429321480744281257035033523392970740755879615883714624850075093541457517450127049543915695605341744249425933785066826534908302996121044828039720111032227598906350413261269476716909620341931085591991505793555251232832844720386839051411254955742950945335667548287851057762531602731221430104204400742453250944550286333776056786711047866617030189671326289963558450711710216579915424685522327175560646153830762854033456178270311298119185612323520600362690768740375291677938913028912948656659352282320207524315418639109152403561783607339724856768964843927815375861328205027517117895415069277898320752377473601537519628607253925843218388652444329209348418646756411667442253380968089158374187103720447495532688497882394916902932234655279349586898786186441985144479660811156732195736050414199535885345743149158407775638676720839368652146951671211934311611907746111249893398475727712088692929883096269115625466832240329846213050504632296559384143222007960613198692288746037316707823123223668226666051914790964398358811283510847648657692826073305146227264462081377194673745681355998719108689512723126299191555040100491648288450825898110236284877320129451573567660735472187557129495022883753378646244864561644576000441836120490416791265190221628127664887843053129409090247814989038998136741123170296309633214767587323714677110697970759813081067728204312176904844490517537128236159315982616199515786873744103392439024438017442356633242457635190807638004531835251285254288460718168028452994530694373236532612354994701665887779545471392856166428312959877605999537186252713037661761796305928863969077893950000109217004261737730253819631593717666372124362746774334038169074621505455433352205221799698266927150520585829731820129705016267084110441130016927948093312047544804328455050747200593056700042709440312999315246442123449090339936588941097536105649657774279049855405351638955593470116731622017991069757925781502047267028252068703272132144752845612163809506319684090314818982436004313979927029864356005840919686191242131977997486304799039233339802905925415008342563224259023278285117212488439562275032080665596670506435149949011889521984714806378131881672334023134404985691262673219924084347799112620277293997140062373439962132744846263493871960047976267571506102665541966168446539378804076532940503434831757163468875244659280108513610271788734312833935801245748866919334702825001290795550467635716808718965779504608874025519168658523018305463413108701566388878630400706746803821610995719498487187005414683472030020875448232665277828583967085165059460463719117130235437346223298096204316321453563803644716347259644057274188061096340694020106654351974951193311211013208984852848608924126918043153127308744704960948458826088921333613822408706848963083281502006238087711258693580305213779166487037709675681111505869071576124398341384035387664926145166264881440169957219338268019923217550968568912041816283548594821986250590710873292525914428200006565743578808622576592095671692900251023882570171812545483040881761165679227862311637882202211382089829123723466957105600244513339019061002372339939995238096068389769860191104837414927495331066427041461938712141903905885066799791578212354635945424130017045006722854978762231757225040850770155244476184715895535116939939936555393297916807321136677716976300973533472057671143472927012240947309046674475578378423974137085435737896567221318375324603704423476552111030793155055318451938989740774720791564753192079345749013983790214237330525774919360514776322366004907493336642632018977650774703415956231109138927698810300397661818847056593755721188840827444225302544793404552321893397540007589576053631371608423697113639663163537106639867608099794787554198183498302612524743584877108177875624344044882217011292001483369175517620534069083542619547571087035609793960919973678551152552933441152227030261567902122307801809057903285595641378274539746898354141935226693553553888824024723784938577253922795898246689404117743781719987565062346569509914432960058188793193000680628478277301907646597100477839063894738854766813486400657321408476288280960158110322953177772540043556059472447000959864317308163404951604896006689709071869857566711497564149947177555923179879689912602411595919905848371354550359026178774374162029810187928315174068117626928871648367895854157914405190130942785731145842423226206881063230036031347598886599010533685360713680189316459335014766726589999667811791807142549142094656927322283715316957303944947324525072924437788947817913417451057306421563588518538899870401727760040933349727042673462766499809862356384030166738681854854714000448843758654573445720631200516925392448256896532139021429185041238618644404017653555884150690408863141406496720428789066264938678025950400768891307351207939860359746290439100054822916578918208358179766240820238233373117213700943466530906302738298853402799043877128123785597438012269042858897440346818061227892016223862035532351617782507423944577333610677788686425792809350702653853792915155580893088763236219018183678369291440095777518471634164391630520362607811254383882766970493550696144174354125271827690243787331851280665907211096392011970166792027400252552579275284125641178153123149271167280040013017336374223608488653283992891073529857708719237298854872238562198329877607401326694284049053483580507629085756694419595075583408810627482324927559865543095802287595766457476976825875091538296614464312108620685339523592277386881368863277156322747511850818688811846584418789011230074950265811545032017273877966690265407763901672068618139335407282486270914577668217931327943805492397916453412373584034851842932586157567260090381363023635641089982864424233995783626543527640143904312767945792540689513865661154589515794498222212779475045908604810408873726739281374019524038387233555649265585816726574831246379984976555133308203032268885801741713833711997388563707624269656790904322833913013023039623761803728370017746331839270474385164538924447360768695530750390957363601947411961600690365226268709775895789336085594098053122722432195135791811355440461231464167347756397398696035280088352984994967438947616222609453759509701880951700922843619205034901417645673391330534258650977303882375270874136583114389261550850716357765062612135423710661447438255023667419943153616976661332454725058429989657770945222286191964085893176175917557998331735486392367628974308993657188830871760917518048663043264249063581344284488291554402492124271819799313620372116263242993499485569872060475850079613534430859732659178033809939619839927190777108865892532933490209706428304703707611155123818803953297557182667025256246091371690453608360126094190242149702419807343503312735383881071162340065960012648077662562432574224852006079399146038097130324766781104968001655890452273067016397147912826876247290095510758935511311021499477359300703045072035455793580944715442786876184985888857796809405005745009850690726890398727431683856066391498274957913732587108753729546236724023325011607093003753994509712409994530112973012610100768023300783880500266711983280336590349847352211729527693798058125906824716928327849949038065425822290221755256002697585968944997127512794958474566016822104082480904705022453922993871029616319889733268821748779512848408599233197513439063492465856970223410721798430483569796693788570208532849498255588248088399502177649885726039145076249557477286153134881738407088949783122760962443219526835050196457156614289605729336120809506933610375239590105137282367902055542376522220900885422083822800679049286452421972874091525750189028493695600262965504006068722790546521509524404475396200934418618294627086368537763471598721976050007553025042531492518614780722249529102560426101664571809604754288379057369008684284384049051626926424805062227440758708597914029236853393136539935854277737311277666105737763917980313556520500251250928741138617986673489402008935869282738949855142254821653813590020972851387420365179015781431583409147081900233523533180068512641838898061063585571618981816319485680734750025215838276344388228419454238245298965949562303757877269072513111892589427714491387866713670167860064744960831895804034389167376383208359647004023354709373603977781690040540945175250762148170078726781345284550664729816857051279140308333654066583776984453159230383260579443244678026338556971115419604513131320450899428020236428178239541304782038647849175193683537347858084125400444896876591901938887934086874110180550144499619734058022918809120319571354780113304074616116253154011909233145433216299556768933612725234290327312612704733598197436541442471878846123829077329868148459718211086148220125316142900698563348359992998296773332273054817242314850317457385774967577846798690725685732412764501797508633228921689863023943375358078879786289965088558751464853380521022683589152419217609011346783471066897778292027143829770345847222254881332894883967554018964877666460369498573329292951414883177087061430334388915660382735935303475758201242750534860902156241727036693556277126699279796878962357875365894011110535699134507606617456342723879274467961832919281299465079371546815132332756423719647731669566306351755292786282523026088734740336944308610236717938114020542846143390115558551754481659487296407775435288550744375745188567672763858890714808444379061684624462314052941432854914062082703803373074667940186200197823656156144383260868782681469570591435198778052418859418800069240521873718229831100071107915135819937609552394993154735820371398877584274943740274578181704051241365425333077609687789174187169148453014563946735821665641073899213036706489581475725499341893612516706240407995315610678409149980131464080779665956730112224249373699384709934218874044951351185225639828141772310886918484772919802143773073509233421264799556753342176944755972059724319054150267599534989228494245770919697286519080695406324591265543352817195539335523852456958979325229412808194465717620560811471498846370260032510254698003431611766347503723002059753157053882480577143225979877100911578677118906239599010169394415307183245621582265811864007165063880080654335714725330778063481626750651652459209423373573674704564299769066562409832388346489283465373592891394244236175133297159464900300897691910891712543166318399077111255392265768309032539506079932279597604095334922702146856220427076589768990210548842615897863141059686471846537736932354182162999017237218664809023656747446512370553795332866422555509669994561591722007865504631907866658977359413214417986370525675511600807481298294007132508032251468519519147845206152244939339551084294914392543401358926659001663462878101460213161448348309694324536487496896124102909755995933578540181887923290035551944352707667650509358221114612326472601468420261568920357568145443984149276919666106227371868631553219243122679608672895441089885886234496639931693252819650303817454899456122205273996213779620349551899168329676625918205663629814266844062994184574995644681175745333185841803301092667905687005887510972113008661018037225258181981140804779050994358187579428709700385203467485141237891332999873062471915858268875495569449985618611131568498031147206574448713257343715060537092180375898691587967725753265630252959617411417723512725433406342597597858346017805767587799227190759857264358883812241715947278840845082666981101581388137895429519352544562027564587607987810783265913647522451360647392136383473077287920957327891820225562202717956227692368062798180752683385496939577873707753782058873306626240243505790119737450797353364372070938065312384329671989112221745838258238233798254608433382959555987387865483305738983454429901692007170228400151187610384232411845857332326281482080334149983925299308837575514365195725201386884749271305552707110963171541569196199327693036217742619171972053105657089515789571090062242192732781437350693939159171102605451220745290237535835481791098186861025323534049962874358353029148944721636485667744696031536468581950141353932080903686272727508343722939529851391156128043990756320677772580937537001198969894426578041263435277593787626135631002279862807584101080138729190276644873273492437223089508655269328617669688517832564174808073573795484388950896829943637132279791801312565032579904039469198902876224047829868966086849312434647864269960593228507621129171647996013626189080760092048004316136433804471616518497549040330389569949089899173322292648433616220156436474362538844037038771766268619238767860595392055149855737348307508926233798068682221420712131258971677383589330982145209520974662134449364119445368065025448699820402711655630834270504723681347000101971225710680145130633176638164737972080110451821264210125603303087565862553282265751461845593713711577396671356440057972833349497869063749077981298865296086409978393137113819609544986076208387160601865490799346394721960894256489655767619492985987096608741515663806623323325028064000883130116521167110242751487689995727283499839914336675370863380147093986732415635038618792267083347083400177761569125043067111110819529292379624883244975543537063086261390990207131997480232182532317610369683285174019585369348986802503932620906216741721367706505454222752213918289333377186486435161765310468755883771239626316226573473460916304039895982289158209608385390752956639756238060880371233210285152351149699353475799891889367410065873816648937881211483471495329398549353210100614541253668198138627556752270537140752129767047089184528272555132598949062352426798130703338737837739435374126747995018914980705602643830886421637060975464076966686666206809599480230713466160711432602411488547385049369701579533540870252546812694511715022304647780061815777887039664295203027652341640191958634703674966693554348504142815306054965066943839034820639502539002348150943839472171469742800242439510591503482479186370804526123713556803983854344550196320154155008236222793075603822127410764170472247367419901084911907608338880214418568465459760450910466892034922870799861492785704301018809295900974736300596189113367546568745370502813272330839740292552742487765520727655929247403488817581079166068629522477453049628688224021246675249773045486421713657171199789186512035201320670024521167612766547695615550881744312295665072486975748133282970193209956141924853919417266067851270325556914090021536775440820848014808245974659132998274390153009677872832707224650788908455924293416423897216937525622247414449285561071185099703180487849162202066777191284563321683052022207436520788812223908093266001186138902884965556924816350758576394731783969023530031609716092682359378011204336833273335068451535022155891524316467137162160136997867942799988756772175886425490379549248441518411578798195398217176334518667019758602044240422587434682513023216804791983295901062888842541578179869838100571206865681106452163398587864586454175573723889359573760661459194118876494408572468391651736888807079554646057430685503005096824226360234115987948281898390617383622504689612309693877565000516413994816897179002491894251617419215031728140323447877972034405609684216774535208989540435286267856968282343424037668296043059692585446434436142069819944688789481320759701329334712003498255092412202100799987974649697336536248216511937261729291207462450606940919304197983970963644760676867764666793738061277363216916296211312399480804196034987748252066132943579445072768837949691605077382439528457426865739290132619801123186089425683081334654860414821462347885539275475353853588618760986727362453000566220959295972017925601490647690963253312527509692177050578212163415957200911622329368957164887365924503987596376924519461111773252339481647779955007049076166469371517618758315133781850751060075065953864777842158015318721958998937419083948744250420790999652481570183372338635249888880119343939992788367940929571399400188998239510358584888979554484918956644100262419845230212116156249229808775384682435690319425283558603316053934463096617247170643396643073361082898446616868726273491189875994500736231445839178968337495920904887408303212280339035771071066582306913478460026353295486919680063770354329214923036600217139223891057703852151694640567294145731285106876565380010935964393087545635339315952711115738000892056563513224454748913285195410810293119498217017713479545860185528074735756756249049597294287927753474276328293213670370185869388291605358676780179808502208461742626224522739862541766316051184484704631374820526222318765794052555952700868577574176090778296040943598724882783944732882268925736783615454376667480671351092167370485941502972408743799533818166415854788334266152102362359855055172588486210948227656414041235172185522545864246809297655809012417795046119508634821970343527636125096638973690371723773444151128843134922841405178811294533971472839146383553368589878060275039996925049303725056203058281992626112327558146835163277420153031089546243864458764793738796469026020815442458208024081306124512187370700256578695253461335964446669239286133763660245849656865654372358843742700260590811903647934162839862705845797974436478807261573266931971680638585315890332247718667288489486856331196675045789224606682935278228735518850452685366251590042970695776723094326324797019855026472076098572210491908257399230839268395757579500726616809560101345190073431644978152467571226929738079975210010981408534191417752777228011346004110337364757148613187617871099442302390337791495026521541675029201227012648596663766444052377645007819076320419825364889428354713630060957267636644729939041576911734107844060872540823019348216265172141683884100052266186597587815736349056653208068744659179819991249833977165869470935815233470242016146265519031750380464550208545263291661884051267753412135792025247826320719268211187374899903796359185234088544791203318301748238308686925985420147060811048051028440521707070448077600957614254361068930671967674345508194517822029627352733108845623007186304339794444139035154715499856181669871426151394954931061149812035325296581796153922728540783656783010485598860880731830093252076544512808844039303081035099199603931354679570134171697933663639047693350315554257238216221541203682839144529080262500212280294383546600816548453829572641435348132702791967375169317988208003091759731964207278395848263308421611799431157451192679103418439017284377760183691426091702142461080518482598757342260891104624665251028922270874355834719257431500377706224747896319940209286475839881325936326624754782801395229732888190534861591109931572194629406097327218489627744847266722775580251249708597861239397220007863731670469957319290902687428191851947131564030855658794450845744265499946210702794712348784581174978483310681161563523218884999578324736438542592310168757505594058467930621144790090575997833651815927266130567708383318069393512780264654765478875030137709578891147028015324114364117814445203216465688784611128902491136694060853494408027515465364940693420401682889390295939099856299630090968726513284616647493266954928176467817100538023582497856858181878184410849099976295365631389716002946683683620744071127978917228461095710992292579730194957866323659866485763537708743527330227807559752322770973409100516962722084919177034608338086819436564537629670935827230051984081896027597103786484275035881274745012786053347637681011575778402591603483452578704127890188388966635887535201398630265654987410109306036447598986064173010769754690192563816044868218258553099881351516984917650327380454214144776454197147590928839126507052422024244464852625360893718196324588278694149271672378808255664318625636242474536992072564990813946279664289838014869192145683019226057181377439467656624353146461354914603691013873877561797573786998719491923719878850639937314109199426983025535131961262809202266587986569981069587626278777159302714028520373867192628860856284474076126735792770222239932916150361555281420976862656975161240494265850707035107040332542404564715664311895523027687771850049449535343135137700359172916262710770128973515731872869717655351855485007236343255873376670040196058815543814313582659612101228872511039584447135281153916917188296752388194913173235731064944178715035617099472407518975968487409351942426267563803121811439829828314901147392358971479176821237512663642627025072887538265718380530540538136533850137237215659397891066980605572353154927094358740309948702566578035886365277896337520827095439157875395044634171561745010909681928389722155421066316016419650105783868214985609581554458021489510330849379326167758136467911408837475966973030348913233372072779628455679007916974407596371731522698658499457938192203420799310547646035221419849023040608665274942816597598794374046067907867418409388457846244232049322003837990783974774651933195154279587593147792042429576375139996332394688349622561120768349739379230778435229041927416890400118912827518873212517495322134300325025283187151284175362860089278472089625409651263320552403247787874020068289521851309538843281474186472703133878855536963516810873353427917419664575472364899310705391377210873667091143879794858929914870714172262385495698620727157498703136222234600972778663711682018459949820191693461113193808083538601588248213028877053322715909335149683595668240722732147251248320236502811656212407763382838168642734701009913305166268333226174810402866246243082376591450069367773901136617170880933533276294519640388506619664352657836258848615210359394364382429060116760454030110735705980825815166505162911447166500042242645766910919372754771774454315861533497069500768049923784527316030286209040839112016741219336957780049885566085125441395910166960316390183426635363266767387503928208707553412199635410504868406530820057294472651040522431941789678204994885839511064662357942362492817482085993387888423514744109008336375622288748466635224697530564836033485399851822258755591639314623379317454123645989075914659491154114579933895654955363079021637311243230448254037707326800996165990927995183195647264300133241032008460447283945074027493423915797609201356031387941013614916617147543840332575717659472491152508703034388325773305817316117119545300609375761766825684305953352997511014816543000705660069989660264123094542835643095866203853978652153991166388945051568951159315043956632138339913242249525557486928996218354398637619861932691664892699974033577493583467800005809814462192395007998737022070945608716210431106687765205294516457606803272851563628665181421956344764061274065251559648063054437145283418973660654978498753235800124535911562431762549540732544094791894731973071027192692099046452271664884312340317264661504344994579057268327579534506637881964331052275189192730678740329303141631536409441215452547117080851850941154569511412923756622001603795468014722015926261957007011178479197509786457328476617374353336939923454706858004139435043031293535142005646881206902456138295527508886292224473996247029667224041136745319976682197413041599013337043527640115601128331087216779331776179847008017110226901600678127457729965609305974644667451955180809451318686516298151404433819369779868188638920037136461528340764211147418984748525501421165966637572302047367208778381959328356967615388888856027459137264710500278727952346361878458546305993765075313055759044691722122615860197665670547412618728478692595149616155485028082378349775475310330637979947495363722971979781194503256389563164416348970524923011020036134169532765648500579023776937061560761739742929427914889941691335920040022993938141947247097146075252661082260342247034262722275475059102218086903056013039159831505668834783763591605859750253966511542574178415838162747685382276698692280882450160956793797207754824221548492846533772196859376064167161550591236990651450604336563454311288486761031274724696391171138343958671613113309284351409411230733231603578750106310251483432941400297075507964834499420054247517026734939229991642481608250571580406046125657568287887483828727369609213303211921571721087661641300055172744182396667728447507326197866353446132864686071465615541505283040243082346175348631789587390011707947895148983604448769730899866377367157117405811119934354014377211507776866433303348531293824370026513326897126590797278897785530788738783981250356304980685924398904829233515920894470900386450099324819238127345315958553744557967630143563770074310780808067173750373524508579060992187693336994673741111294011264557881960512375899109436412783968302463584163527536384169558152417071339555311327600508460562582337949033412593573530172580468069316201880314771814769311120873680672713845228411852812068474709102898644037589606837815783044628696764097533090437296613603594589770187562534938468976992300743578963680801786770281792031955113695370291177118331775912248015716077876652520457445373116892265448594008387351729161082627783601812685415920301068907938823879182701038693901791635792488038871842777714030116927456511759111084109527308110347637459410421745070188274030148346714962787245292318626393639312408669724227324125713747457916998323911139968245947451933935176459775265304819966258130811988675169689495018552774193819967859319768740775450182330669757806981539738825538285613415267170088483038695197552766934489989822273311473797113611248426609653196495882911785372386678265529942130696606149876924850561372188239578604964313233423143576182697457634467220360950318878281885218839822105583729427663370607874029856274799977425939484595146733706559010632480195525113955452860565156612000961506007663238661557725656524950445713401839528360761146631311708700271956689594009645379655747709578489736486535072084723156776725727814288620126262237241648010862610585042707357892442503538125896502959019307301671256843516313539801111821762968940309484343415456057364181461884692389790602648166042962528865554256009583058805651071292535750453836521503224959371565240614389210994209500043549176681257895581148297636526220100431175352016893594586799473424047343686327907373864402347566633600275628797530920469163030964413366622228679689804044096121623836990117749141043718507038417607947882167034291519900788675564664554551110717485441238204467409602744952177548576536491733336287697800425508162877014439926949578332679987816642126354554276907658814856770502227507478473523172250655230575386539503301092288075319202318548936729592801719853820662939650751566201673822342909868487347025906499313824361423614393853449489504109930856520346933242007720935104952397262096172034601964961241052338176099677404474067931788039127377201370264945045501809717377945363400894677518089132216161758601591245752490487041388835921767158499859929809746817546600664363834250211799136818599591983738229026217575162171951654695090245241055873525855911214177592627932539499744412147628213033576082179877305256191087081498188658303475787375033814111926533289377124504533895320713326185773350509147209031023613880040113075351027161799219113682711537824118904305483452297881923516399642089155812973333695293536854593247740717487071918373227497747414582954815038814575856825841730299968934330463556116332573282859316580940007900880056631683604893744422707612951630130001826104881962674826664932880264581845420692393185859648000513068670980995206106368974990751133074327748029044697018346491747776642237140006968067996543669216704737561409221528263750506401877354037679802015584904553152276909988893166126191980343623102303589810359774790922688834963095982292544644076182495317592114073309545381758779493745240450117062930692628171496449897700020647859621605431064878828053846781315364857400120635138022151105302817634523334647129717058626633296012414958435571783156071987478597317111149763963857302189887940237226498898330209449252116689757088715790179790270721391107291886741500466741198996398784384393929970239381434668831614391526137556928692211535033319166030200439866400987173208102191936257507630421293145211431701358001689110484217977309680672952189327472332466520748769455859043824468516972717043840443195822598411923737415454780471691337435725781596632260764345178580237574788589129543407293440004364756080387551831669769212341937084971950423055098885238852519728601004355426827296671456330483060980148746178360796989920112028547218256803970090750186770728987321930927866216193059881662783335161599929666440850425984327683441401547214124799786969117863827993855557305425845065242111617102363413939786253669979771160369816683367908600760507532123283749427635229005693874153024141297213641573923492893672212115599505500686205285803729086880231003846087028046724169902937787145546273934377105512736224794130329219257900356785439556055058477731676978358545596232491279829927370018450646627861974308360905372673066058782395770209469250761946088954901740552695376726673526246677232781373500099647866326286435856956337902944499623224974363307673363723931266623835896011127910943287709028273327100801729825551844764969876371656274672442463432117987815988147567142603001600488214164547575540530245643496847839128713101694312047087711198211825762492668297723773489820202482985901424695475828149669335746089789369985315479304921342042965533153199726140194907574156377524565959047257381844484075621150585611830442901779985187648468255087547575120495839271618589800420035835843708814412882751947787798225038210728749224131323602038619251422393524089304377395455114203618468616475811001743930062866080747025088227317563992136029064940989063125781749035367685344550599788303557596814911258584951759376043978551746132627761289416999358060458519962577220791065881840455694694453807646960879846403679422784833429291656481955832462080862159297601775329773337342743347843400191703628029267466208675969940919147049452146617199083416261456767032761113192506872912741679564375471936438210683291329687702101943323334716061774342242743470289374767297375769403661906991371506155736064574775303426474961632164364530598435025285693816664647895884670994113534885107944738053207131004810589255282498237826119333554223388892969569510895200257366948782039189580248706493805544321930479535927078442477340833384039578771674440727868598427950763310099974874282396342510681713294845345691456456120535641272210476396683674531410939428269563728005851755106660871214284357796169820359163873067875204004390799874733296681030823414548398285488154636405982467139966305526467537537267408823089099081565677898126254498464971370358997749469133726564759206912741065807212910954723669926619301700172657652400631564981385136686680015338104120484947221419913658958213368840648939442536791604661531016369024046595720550466929083483930300085510832862913773203880716116975989026880525260512219161900353229015703158769381364571594527233326033603695957508263017064596138546683968536324643592192642561799574957418850327267021444862165226087403940411344046934387319482625599559106444156833434862590407349378789777640389317340503727296323281457139044628093382248157112371521862233041294824058827987977092267422759261023471737351956945575637630452259157785715982698400692217524169024094058055310415912165885625604048784721132164850102572796846483651089181567950384222388845626912873589371100076431963916320313128562147633536714814373634056315567837628947257772858326719583777618630559564477114344221505469266168906804221480798993122419731959541040336490372333061770834843961896802401186229091618688710116689128677171341715706649306965965236168840857392380265216948068262391724017629397519907772850557731414213393826432847777549488203613865089499674976305261419695975374140192346045468114359480660082952260256845965181482431353380649961484297986022584053170546535830191404712393515791711816938901899082566747333167942102012275213140871544136166802915807366678106569145481381210106920967799500039806667544289471054116431962576455186932793144353230390206926205817248429705820235130795360637058205452992300325063353091819467859857438749561966675717811551012023677132487169167126689526560377238770664665675233065499203018368764884327867322018722713009915439189367227927112838384141507412737767398414863562394837564373661208675504420146026568755215387159383897913833074077260973235018162442114966686955832954567058617986555484246948924882087549683960243347828235770942764458504158491227164018485483301837532899978193419712235152940240062995881592769422404964846020973970458716101129974651440837608127901011931108598523621895505776526018454413718961790129558969359293774335390438855880344549638223918353759214556526757792217083225628571149427711713574753680521846525881793806421824096556507068306457501541143885759113330006605026167950334406505649783086848233464967931358418216302490551174316864066454129097376737912628208035161214535274351295551266072584645038315889149118623038177671403944442920408446518606394055059149329711288346533812341717213361074641872859575485534730646902497524284305900642834711202667284031913900872393566974206838455152891048398565755515251884061302841882056957813050429637075170513979605428630158649158312877532113165108696540716079085554543045818030169530386711844051812039298645250384260720553271732761648676405713654389408182849383285035619497516793814244099563623378011247799375269962944904482235746953358661002541772135590387573752662815433342445873238493760020929855792596002249891502435396505313398017022993396565669856346181321697604799289474441801788465678843586354966446794953476150149060849259354296589014810830394851770026013153958958726649475555851890760856168612864589588086026818225305981810458840241653601533785324088971317206320772133622298139206088877389019562727844533222227907910468437046406779547091559220310512758875704148009277877708465714150654474373036558247710710052842917093253764016582782945139485858358377312192022213031445727909775089938597492239487801773251563617469054613080906491218544376274223483093133594877805677851306666718480342255153788522898402963395876584930435534284078877731362321594411216522723396530824412550462815121692584058226261152811384695786257476744352645829023070302365564267290737993572787234644655856408229590552121568666993965429357093892202316914707205279711136955323952274233636778328753703656456940130886844503543040157654922200306827836017641679455806946127321303720672292919043144346039773125116274860849074201798433470949561883446089623438407758572389165781673213730693344795033611598493586415275939331720334539585116552865956014127298578931403121441521550060348376015381150908931878203545605353949970342102221007358450598788607115436846529608830623555165803807746550359997674533970766909947821313697236438088877166119743361352299773579415839868528048307109513274844449150661791191161579075936908756668441052262247933909272327516943390181297327266761293442716522742311526553306851815879519183264077544414375441292290854751843637572649166217018612884989170875607215837847354520759601161645034877728028992281066705306909146432413009056716224585143800696192609871943743399584408364639270167814117278977078491725773864022366721377701358951951989141799876504153506973623845665969130760066135556753536799361548221072089963504028990185925693088013761324079734970824843200607164590623944394801408724886707706906751365839677049483456450453340391497758388840110408679461933911924120577201383012682002099346111428412787207544634980529607268452969088500428132647569185833548646216445407861855814469599486751061039568989679789216270836678891240140792725181645395424326956254101458365316650211976651506314245515591591153677863482414669769695265316236207454604332540910289038521199236766943216060676866206166051331980371538092769177953246644705750208366527939831259476684177299252710009340772194185050577732536003130595649141200704250758411852019596564476487323395769141256338154647409491658478637603021525271827578358111004752755394050943012504750541147493977532168335880457440173277601985412594708774652106899142528328858797548384006720939922014065542364620409539357478301315789663394579999695171778422609229162149380429365551328576718081217052113869005691808739651249398641826261142419118045975539617717416661588549965435386054379122320511486492082257202864042136665046137315825896091764300839805452908514555072536589067730690112020914021477761579125425089285393468866627848723037003848984347412345253672097190210774464501328163832454469814101116752737344139731855603533600056848965234837491323232585655030245056780726905522649023937781215589783714966702954329600219402745082228204226692392989472597951588760833479009405411040550636402421933231280653289360252465577957522882705193840557593315783932125288161021518027312038408323351107174776460825642555987467631091090392548363190065577410630194355350733137026432803642974669940565434895332202263741654568365572458559150214656219469681431132789783149125251028472574404435071798654641987132294277823932187493051770123801386037378516837610402422663905196727554804533646944153120290379915136069546709026338667196194807159115498264271505311404628260772781540592013276831356299517060377622881345883720866306334184680985203695097639200651477360439247434835758928772904586236636664714619620653649426392963009865202114830694893553067724227486797289413542079201197708948721595225864597753481160117327856574323283347287577037807755606640517633814586479362936044981451142037760149577143993703421683896891261160426497658661442720578606732046339501377381323958627273269859812299449867508020944863886828459917592321356467339173473450050906842677424740671022364719882772036000535258239175810014902187204688537639963231817148119137399137242133753135950669811569751041437805902219046491982011110866033583142598096667544668961607654947417811310503946990517741294396113465609895803069190859090481784010398397794321697596367332638842582725905111238195875635112925960414379671956794249122053636026412440522474423740919747748066457659538268086911144700755990596114990634084099854057482131757398381505440633877175061608354068214905663219676188125836213166980697193536422812032588652326389134912364675893981904845609220200531796310836487045040410292540425353581359434861083785251493953811140973576816653918652924065531827150900064672202653192842752879056766313457051181025969963045416844785409435543179283905339480414762936562987713883249650369852329548650365776781289495323760179279959732973784698294487271710356804864265871754153990443687004523095071861678148376634854540992406736021345785419586313763690834234928724365888011408263784667827561093105317925877102495300565802340659760745876632171945170743584539274170879163641745304284120926141749254484385198244659530578549171014623834614838276824117877560848368058104589986504431284616666935053444339651735894899451670184880744688578453074900138149034968064676178970827579235946008927749419381058347676983417186682790465638098208515592078526703215325675322711200588373720597347256048726771770136073484738082059395239057985454028612276878224211398745576693574685188958787519517979500491149965936179225297070427888278626964416792103195219330057252574431862640851005463755808125848604859411305888119284401213190875449062000654474538686047903552826557147885310632875194614888188973799369247560899104875256384135050407751413936203575435986883607191615468466739591814274913587464630648781738773075239849824725267678987461754100616715901118615693013385379203009615806690843745064833828294626828666337930946266331855991177578244812529158929656413287874243109315238835774505668842937963491632416349452207461387831648658101287085953242269840309073602706541509262557045467818357690273618550367311643497761564923654760331702578254842831333426185381786886899397276462800763534807546501723849673200416903292629373572961581734529598992614039410941078405133778087405617229839663153781843972958167259054575034083703834201003843359445515134524821783822548913643475781884305467026612945044319688289687583126875580509004296050052702087679164424785669099085327321025350564391544154270429176488192026409121873463775593081907445803219344621022015738569451882504771215470304974902331962522829122136048269548149062524519332670464886655641660156957990729651542191648312226880343757911984736949487984538928512651036834860189538068861189159853489648090052280491220691749140164074943859773950528575528647059384252787767238399055148561224666747922745080062363836878713497450432036226979798219722641049162295992019624158858203825947777675191120876034076279509466319662163722322164220642125901318847442735303193792380973495455425213382044997139607735371470929937374466049290378698442828847733633669029674706857865986037572338050150069356353752763053664305248581159045934891767639708960231025337308651393273271420715487346761365869312199905760620020118710504247778005670684928353905782078763071928866290696537204709726806146849035836637584078018644521181705342421568054410774534030865086328961010793795233119014731098523474758598477204804266984452295227522162312628721874577652601456170531438479215521936575949592395793078625845567608280928626427345932050157320539949260228827661624728290188599052016765198346851454405131421236765650400403570302087756062169675586529896288405041244223626545492351192360157538395571634968046102917982509081793114817286680326448776363462282232013771357570882789752048524216555949457937577053448629334088185913560526414752786658442567928206064511701945602594947665677583285712252024756348477546269899645451282601468312915466527745142559889307553494937266954604550619820709949733953987819117638096863724552862129191928225971522696281689109886801699726175320961755495405136075588316393297423258818947913659596146707663130485346451241085624227518301457100325749686514203236910011458647013560182338736095562523712520003343485073670141140593817235635274404531894611589508208918440302738495888210292165737456200934108411446695283053363884651712101763410857489721075455608830819561203982264846709416862969179179009063155855932048193470863752699969821743900738255864313548777527517585512252942564449692508765125669179090563284806175350368585538925031460245725418859968459477134577844808776330864952692337028398331404003714815895827178320800591515678927274950333712823170874106183565072985637838021755416261522689903309979068666698407756416324764660370687738248680014287233028051619096632838308871958210894850045979189027206726933589502032563096314904780315172552474221519253594250050251808189435493416191403361961815414712732172422049965573043068394292612639458729180877428031685812186589927525203228265801346531679275740413692640585951124705259245762036695288253343803245047576173362999911410180314005410584233183373705842124169480024189025499725954025423921515911340183897876905152069488157902927531221770000870588335777646302586906967706361834444677710846998197583398310013106691740572804402984778783956080292765642085900352017700330064777011062650007786468472031148718973095144156048701003544274162799030044564426391876927277291952303124234377980633309963556096455964281226789106032660602687539523520387563663509590525163907913429558309083200320602298386970686811334493607710307633508255726317279186392880692300716902722261870270024043405927917759573870817103116190967401740536334997632445548617729112465257656643609725870654247319224233409908685032372932330348853284311531204517942014975914588587842359881037173970093557911552093242626691772156132445355670106917417597787422925429655212179398079667051386996548382082732493182214559012211574015929788529449867896286458855742453109618790832739887669440473409079974361846585181667844429797141467564330364142771399951196462674472537989966579506418811551660107405515482234428652827170431893315345012310485745024062955498897329004402803869580839804241413705734472610874521514611967535440728550083618298822179779396972036139090242213120561547270334254611090092579528946327518883855500796608259665932675332954623790668832627746703572204244674430588785763151937516023259398759472530034910233515423495759322013895041518896457744500072711493824883191786062799630096211644513310136910563331091400061466781624059271583753444075547778954960699224851295993183589568599623695242398300151713190673934620518786094979343513565712403060080041094517606123479570707565603135617750028342992476465537164778599536925499383382930042798409721942200166789506359703273933184119080560346871369922295799093146668176483151622084705649967268290318634339160227654135451966951638480142199323326761691090091070414833442241254959340485997192456284811061850644331085307202611637654600016788431566655218825847622044696437906367508837076835091235823672941401889784155950097020921355703141829288561414810558930222344994128794462109053114982010242411313938033819379015378626570451915659000286107886116727825034478456011971225105043346230684586270843601014598565757239275454944859019582434011155942715591845987034602504930844668759294483211577258832495057184131758443728251215709218488752019081484423853530959521517532515998680416614716910858093044600661270088031719986211198691820903283416842618360118935331229119288184159202426304305751660832103724870707108464378573926553192287121672357095837050632491716377348531268855247778588351854060826790233013759633130718824485197561978997198656911862508422250938636623742014775035814140264283387990713897686616136831475859480597800436799396212378661222512671482329494728804606660145883936772967224388483691610280548535672947063543836507921259055460181540718611131090500609282838981424223366530550146880910186197961378816024478596765092521314619132628004790875883244057305156990125309129837582450788768102808231923460954656257896141214130776822261500671360755128499392423682279914482622250528882091104425189219271784835779681575280586346368760425065800314236381090911457197704828416679118875491625897127408551710244395370922480710131909290866607227019421087069589985428456675861947709542921536421173292001973674799277834971701295085944198163232683670877809483085500560001287012907321600469886046194597085655777816949623077916021969954221999689878462045700342820688566537734920266350430637314072512063121035718228563586552226147249718544396098497157599135423949332364952029763577274881826479172732420249489065259340877978641011460385331498797372334904899559854789534549254677818022308208944769396530852816913652034323343149006140233586353016165673952617936657354498775999651613626905052653696506236715749535990355670213473980408939177177066521937887689381827521681832564640336616390727328300678913393639881779599717958872510508883817035905012644650903425370013359578524777220944178599797190725824130780728821502593966546811491109414795356601600742453722156822382057440269212992395567313163050054070089253831595920459486740745293826541243076085273108515104894979769003494266117496196006352716528689040434853395909463181972718101245148493405141391396819957099209784055214144828890611876142602266719101926078209682412578435395674605183339987884916514116045466465010774599452000317763898735148766537500126417449445420655416303048164074533098350895881650330925030009925863297102568997091321110121125624588567468965697758743742022669334551942680996556907161568124511183769336857876606391607078482310365270908113677952462471828417050631268754841406892581707629402799269399824723774215038885876422611981528874420112985581191259927285193553851402038590311037978761377351411629514008703491784041837309012127501467786020632958090419627959574742533662048495862080897103492267819177463664817502580902841855652915448383378762974875315808182962733521562854937649201024427395342164848679560269933211801464680894846834219565117110120969647654822157143989184875857941633796907144859425086755996564635277415623982235322230360956481607955009578583960253024922195302307622056749276662470242777273833339267845275753803966041600913349147026166714307142821168906070957596191749215395036218370650126286072285579723569048633111843425272595873914429791714267297255783990220015148600322803665097164332547306865022491715673737857697789318352475417748472776416484868092410787087975991546663769898805452226436161988614199926958381679349561035879220822553368834128749058383115234159016061791085293161121173707798941876951852204799643922027826112654474845429448939078581010143150016367456027421956093094641849519553889306476768197807022560245464695182378454990280817652270487311137961084928718236329835483658842033388474389930525374100198095402150389080163497141673429615841007448201504008616365740850954547560495784953129771986548732739665180422811079420114993141222633204557085248961433168580248354203326854628533567553603126271880974168514409054567988667381562857406618412304914341395212190996621084555555845495932532192961570404233506434339462743839516289829546645099229374703767008050646073591321515346251609993950046123057459789394509226702516430766628108434067924352371919388914161204506589094936239045551446793470875156777795315200639106067745132439891202662622343910038707428908035354593448228089347190532209178535825927997602517214638925144639957662411557212137964822988114166541993638615249631051415190616892354472954696446451490465645976878939535022503830935620462193792431582470589973853959200896898885435230845440619431902850041891036704182883829342328080028028871697924318422994724277203424273113684903351613897241867933409508979638553993941338607971517587204611598660126055501096991003518006813296548052448520262260793005134297149240502254174110587404865950305191258411888305484022491500018230519235314954399110979410422409332232458928110094055149595777493971140350783086925820347632871416928736111580130585427625621826448257209307220042386260266799984972345294950400087259834803669580958967380234937148073875663206338466190610872865023474034304513580243458458245993811501959544814496499822099838537168572123110958797430275997441639397339981018765531680485335597666051769828574787781601450640518993082821544011133239456177411732967395049410547691186466259038404313169030480612824307627181798734436002432856164884770942722194452084924084972461283233452676317954529697690515469744123906142175939782570903201514641667464165402326099455275318413284465304236923208527438490113744007366922112241887805928243139564570885367677336388105943911291248314410699573941068381739049470464735317734803111373936250730666360242242121598348894028165018834692944793308999092413510531220366232427996992920386227542625865775226001396120949068054233345691221292820056761257059351033816790328025097793365217755096590307680175926247814287881077960550546736143547462958932203552724422828559520259591958900400586287465165362265423224938846530863676997901377326575784065793472675221899463774463551419286092354445043977755248886707908774466140382195461287863790201103005805009005632431999373676401484218981266021897045802965035228132125306697009238855426511577142239816580297302877089769122472078311907067596824926251387312575869018482014422198888991179099210391711699119439781032630063715877189972117380059980932853684239046824308672586547114024350778529869026314550172103172230924124093322399831913632068019950793365489195163535363104751593023286937996049841705120186291127487607680557262631706188920176773011976314045047153632158746585065443862581209558400031835082830642533982406228147713239028112734779638974281637381512685870680331750317449099706915491298426454007525904545058373776444714934899150176804201581377586467729696582820326068336635539986064707801976811305290806617932925466467242540533102365495086654431371878379889040726951546571737767246930197149457870370450051119560732465382212482464177573251653369141242902516303184431411556552099388876173113619071147305246608972209600308485679889097955595349121072736922874599392526464207929002749780817387185406932081511642801973647839829856448008220437726933648681098443379243436878452651643622674052535088575849603467011938277805470546422198512930216862296026982136150213452653678580263537118103340904526084268503509500292297682425863728654921137989039572923318075918680283784078696548436763884480409407028034990579937741333945277710197587597730528205764177221596223527531994965118900510513911306452159317566825885138956930512562406694955990787785934718626847298118647718657347965140136913106264460886542535421078348877816310154682550787253188080014966708935706376727543393827221014414835602792269229071736031302174508874980719911481371665997254708022759886565192253172094349040399271061567622403038642960942392156355219304349715207594397177240843904266581286225926243506792129857669688861106436186525984087300942322616085206293791212908993464642877334451640915300803387575787646801730662564763185425364532980186513700500405267111198241320693797222801903006967903435262440425806378689006737604025949603140037711665279538499232775100174157128224674667298490658268784852319894973186398819410290455876073200841405112497782897904287834047783382012385119243454575387700615371697895502900513642808278491360010332543876247937299914454862559649654423527245587425083540038702872857076460953128484118878988369160896428926202026940835417796468083457392473792164413839485926108500798811779743146638202732718677954359886970173079187422880897361945851717387573827889382114773344777366546168022282958797291988933917714216840526983420621085474791497324498402477635066320150978938880950831037239801378734345211151029056623562426345684654102833319017014346766422233650987432700768599722276666180533289877707760342821206886727430060982128869437029442850879592751008884354005528699552971831849351354067356887958567502994859724979506083810291122466229658204317103315818410903695467216277680559439069144043973815059717288259350386996614485468249939185207139526093309681638867719527317518958244719470786040936464769805286702484071160912936806458404453393822505597530220255339805339072988716120681328349103556423252707303162116812071673779189975095301560770207475628458180916745370026620769222893081922896686590396989866682760816294254872644161261767136212968182614977103225221688402092861279170972856721344706037653276187135276693109062917563154430385863946878024662120643293924556051570032311145792760143037343058403525823873883089852138430988509319842377407401172444774629068588767330139904298965713106168204979202767077262855829750258786349706188373130818890360314494103248119307444829819542652523115946830688633294612476928977160396839855010156270759886010887179380942406340463998092135611046851616305106624045922833972394590699275060148798876742271109476091851611553595777665224318166132105370442359338638256723641530085226464585994631755832389002680715222992753279113153181292775112844665915616941424309369140906309291400721111004893391889807682731140943967051924487692364910642755417385012161771375215073429519264882070466080399430875832410593995000779999521941525561056439392450605821773711114834942754711145246480236121676405734826816761530130641923010552172230497205387793620685837376716801427510345752977261997408318887418982702049878235990596467174388620007865572795896868290928553715370581182291060703303863785281538991113295257360030659536710614268092940986667440513878834337604241216954985260152942601311090682394741112664337517596895081144901527398250570385235993239808387372407501513431584973971919946522055011440437900648706171616581969839965816583035122376941411105464377585082250689105471774370175821628120783951592206506916026865150237225362768161034447735009211416616815760974675729663478297438866105119604355071553612279075878906962776862376718123858759838559237726902771040046998759827233604248425056505550030656919926807234704841473416138332809151844802013558937653424944371552831574532396470988212613035179263420959142895909043738800826507661413637279870506549544256933702274769105901400942134577616621377783105204044278693022290927671894958127450927072397263888786979699042814410089373863913472573451938749720705675996963079999087930752564256597137285966810015775524803596678628851824523830886258311720083380196886152371417512055133206669776633662163254421447781643595954679457781803972634836124095544739170191895351507489828797878674691375799096929584673793518423355428598647304557554419444495523101397204297841915910847218066826482097629949687901061742724705383604042941109808783877410965167282902396233852169618711035689681748498358563043525221263297328699135536758202045240142066560583272605251484787037362208038949144791462203810576586742960385324315871500338741942729784886619762732352396777161460511504105808124879504304380124776117359020069659707465369407916182325446379386361227636438136660108125180043136072160170915622798845110701668284928541047426697044809934909378647507125521193755124360151195553375990266294616986430644648170681860094194574916171435250009247630015253142690557826615841715458787702925008834846588049873568697663712614115485233890447120771454219740449542068860460484211063028530509120019935471432177728113077155772558731432048738862951832553376964804626849830472560320804183181446115827178417157026295512499412233614074107309523775490574705021632461253501780828525534972175012874362982447082869683910318004119151522024281772221267684729131971688844950694818362886507454484691007785868826370899677882551863937303357746185633073996807349631857202603722861504721233679825799062623631548574553397272935733469250962726290487986449877455946287726209899814899923287437015935708901755140022214141156767307102972029465566723943173064394270602707519736296827403824627709388779986390996161134093911384766891574746470040751621022385645339593182613428048637260813114171370470889526557281028292579139106957142795066645841695463938825085343081488105672556626948292881585784369834649579228314248407577011424440381204027500684688546010836742601967876537408640827384378732849447364089315644984019757008262530019834879355816789363931849564791540624457126578831313235186619949859596334126462061893826917664222207719192491656822648242844962359998365823655757648802571302586891315075968201869533099158888027295856890033868734500152567317065897359213607514296043650798310701476218046718969810689183340085448115455620578077913612427659270917798231827937747175148382087873113111571880259441004726744363785277275025747062750936305754673663855730130112336322670326912094450782450062680130777562598243246286118925841890649135230211609333345212469084862591139369869761887353839180928777415121024728012552855367962057587631783199900287292631861417183531013588292646627600199022908353819324476470617534307380435491923126375165414202446053007851407254553910897920801193930736234810350877836827536553738491825112818164804886706851915487313101360800457806540504500560962488741309789191675332494737581773501505242266487887157809132650217416210007555473705614974340026326939217397071370642731693612626548729006143412406916768361173709072124232099324124352328815495698487471497049927892070900433085216230720258904568807762004328263771223818019270608219259076080356975444722743251783949443343658516915791966892973429823465604827571349964620043252853368797786478308837857182104779751803745014494477725943373464171157973972206441155769149109662543049012847266030733511212065423161073458400163248781539446790991090477569993390661072013428596374463203962622496171050635032832614653526642311269586459147737748686294356101114738461515940337047672270960265350881898342450383623883326816497978296346158853434088808096811911533728494533611540770617220755934730519690346823546093179400046878341929928974574429403495660920569952186699536185733833223060762001840862367191454211658472495307370692645338240834311902974042853797563104834103382394501120732266042438095318730371496510438564601657010552837712699986119656618686177902937615836054872603001180765689828079329697379123705609025387076064401366220915175364939005801906609637920498380061270269311077238593036719826048942463938250579100696695245712202672312780418605637116059609679510709274630000436329388566494334865015019520570404531418074019707002423820650615668199442894219453396790774280353452547807427877003797679140594094082509094276198850288209472175101352256393632132652457824473408515177498427312970025536328383475576602010098765747065473079573504797780206265607485355039805666076523427628545525868635713151729577714268659710120388153262757407993366185025176043493391012518153948640501215369589183310040106627619144116180329952399581447374552697355529600943306184174857849155274826757899210004977456856107553277822727353274725222830498574278273120341779306313975512576569765114560742317082739827050190548827507476969745325420051565674331161975172327937704704093520985228561874334229382277214724449549145419054356025330698405762856437492977145413800316062333805674685929695411341265454082191013366458148262588872740856410948548476055522637363324139764668624792265891627497005027601170699321978119448087329548615512568594231752650945469719505878512384108592039715405729283948276882059297717443845956989535068364955563514136178454928962899692420817656890303246779963363515225451527804049338533410702134354408245432659283728420929031779438832386359295854234863678564948116406098861715002245672273299334671090987574366562669330940103445384053435399885366162437681942893983299285432369429568446039870433086359318601152275468162223107585433294208324477877507185623175563868141821935449482498078906687791425705393615817857210831136876051473843277251298493268404572760508773052676942170750894050693191307326552594619437046440318481944512849484345103280840914137768490466531679557763246885440120336228513671017976030899422428250952766831460315636159105730084168685768910065692774157610235325114650059136664823857193141395312202723224154862166044905097708602261220206580427396019266877903370252442817399884465990377480281631170022799737348204497781099405525040379512949306543391265406038038782147325244460999997351788003794960818735659827429431518091935845072162520969474682450585897247204980276196357844291932418551604082930329300393706619039394155504844680084018159882133904911469515103622185434363252477990108006996942928542977293681675886645807550738855609964830048749856376195171925618142355702381437026410164016709175225031001707856415107976571397775484227232431303780957082145541505700887533992312077420371841905645133226883536555522133991409234653202186341308266522491989310509873938870043549619589105445391627313654164206718896561931623915581275414892311064932226942958200964267511433437707963639630486952690775582051291600823499733130137054495341094451993886897298113505188400578810234554540070366805785114787584716701616723742116866253746053609075742145671403227925386975068363526668437512794540604954678450594020108666493024275635692920834568128965080759405126026483791754868017961916327088351129941287480946264020134303771139131860766331363936491992477106949438586074839703033943408291829234596655733235078698462127970941966748932188852634857841014496981921308639893523159667526204059024284188313205782543608905233430765543139771899841445469184237903830543159798578700595810671670340239580991314688584771483639918353686639195011776458528073298915034424998231084000818657154415127140878365131543679458984963714508398955326970074865324310166976426638566919510974679829911893955644460753291480631704075318469768640032087563680566866533776210180197562170153809504946628492099200476109004577099578857590362585275036551784068053447215521570460545789847524557969211843262085216773189955253323441255995896624382970327091390243606587342920368321464509212334952239276098764448337953068970244421037834169516286526153035045425727582741348146907728955879131959434388065944569116575134908690030806469102387269411117595827968325495939537280076432805383469643297394308705884935877768220788004485522132489977928005205547312192264860864055415782653818884554838929620568646174392106957068541116136233273465621188427978680301457228156977198969077085481670518588092927939033390482349096917730072564390429728519697358322343744022284527609928123845135827415742806373324234077188193440177722685905613911066489211435831714928222224728799879170467137317600951594442252966334507457058007630121880647668646614102595039694873147717328257298942415603203778364119032666418614566541721241961011176306226879837135654275981253987731828212707671527219661664248774599755923168075997982649939261621518296656062795250685529404021018190118369059365753255817782229410484063982639487165311039166038058216271873734132647830336670772940953166672435432155310982932122687181679169162589346577392459859289161373687557011069798056443190895088859283186298295531659256025557078976542922163834041362431045115015364824071469803298954675128066715615652597263405541653553339623246060109380521629729580726475660146347282335892444087655674870049537137791677972043636733221855775283031018442855565496534212206183335558182826124569689270725310278113737555336600600663488337195878846273652981262024976970051408210088396876117731568592381231988778086092578278633646120072136059293485797396957433231060021481256916737951230564766568812841259387119579004108285033564008349607608018464017157932531606636700887088471603044869738854586525532741861882727894546909288802469148151579954956664244584897400332184326080962946050132915297455447184099852307742082477122625006076115957267801834298078588365533076152678023314122991180614536414499152781712237804096053985590255620782582083354936045151248862457973773146020448310020058723468953350386285354087309012361603540613454784241664272399560842293697003932411485590837834473809811725317491688280013540358773816125926151048878305175334438968950620898158691598085426452203551302446450505940786077794906645698744150290301972266263922543503635487203286334462353644246774677239822211492988183086243405504087553274622072741182910461694805666713848449256969919195884227815721029632256848310035865047061187906966723901856096533201272798967436187315437305840251414171845895247766601383888214048952496475363545416553423689820734565326807022227408546971252998598986594594815256263669588368460538070925992545331722982675334280535336798445598382427912966446251965337846479319861720049642984182650222683114871303539980348892378702556533747817160613864472920047573630766343391798325415192212424003512428402988336892734110971863401265121592556563586218681447186910062068880596912262982623043024604559265328531900907856335092950802445827623478975035847291072661082213906157345804166254156757979630156081470184897468500108403851210995915480852857123296124337436151554400621541176056192584956323812794145417262159126456097731629556827061674763718671033678469946673822808220732093013331345204943251282493262432990727118384114487629217327894539545204750640574368796123179857724949984097685519555642248049598264971312208208205402073189511972785589041106837516895096803802393763406051837882007006440118935876045040064007502824135277751934245183476698762820003735209209442951133555782671135442067886290460679383939690144235118384341506583935809079612368958072739609365575106305362111430828023913136642233759081872882424546266232975687767513452639525530961609476863411472304470432497331900694742741223896021421815230108906250203034315970245791669251395157852577043457203776939328072226451100804123862513591698127267193176566232601722858309273468687626376114786162340890354242797226360381708764293358858010289015650594789853096744401135997132988038869792424461291666204453937005846810997397065709743448129510786259537360098980722578254434196227764973264895261345095105578163386161481337282655519360884454366920615314815206998774301184698461709874609135344170686427549376844002224042746099471342743493164865227735347097412318029235395199669479212016864623081975246212794885185605498665364499869595516548150545987803283529946686731996957424749998412779278747238274145640172581275796924190521354163956771245554800980918578911617248182499609120797323802356186158267830730773070632395590258425583250645593168834752296621136978390148226792990698774250447820938746548114004054156236050007630660834234814825106917312907090375817124972827827478264667542328812572989166706239772790674124200405334350442775620726661145584720306101880547674654910449131407392690102091063509595320042010502286745058483594373454369139722058529837045840587548753885973750200399299217710545646286025555929858867730914649554056593424499710169634224298819483683917846105591335433546637387725497078356653126292863114530644199319826695443310070774806720013336905220333472133201729183721349823662996141200707443778127398246509420823261536593698464661803110836445210585046603409764605825974133952795062715253568212094570445437304675091127617011038955532629974840508869626814284487701634278260420644055513199478935107419095792830400274360080825096308520098174182873861269883687163350029180393562455061155588665650892897895009480444440073884614560343329106347969368733404173905465312382916927680816895906325087684216519746591352668148090179135416923020767636241427208008079598196886525766162397174405284024218514768236340423687937275459634433327195194113696324642773698899988974701638726146919299760903841438956235760379586890640531066425558823903635729411000434411063693150376748140921858535734107166825585737624101393811037163344286045871678395551812190092883291311055231629314035919509385887961676171408179452772599081759044691813159168580560331914566352658872536970265573777615866267071869698819318887276085466510824269275264539874548740206412608523675277333577104120674925292228620089604097512733471499617191020932639223639901584773278076843289022883574529936880455887674836096086122117705127819966395440078728280639782276000630135211244805866221105196918058605580396453915448172534958146057588284594453523984176581888247768865060616560639689506649469329665353570672539065292872434015616434142875620411934852525356205222301479818718815300790587682793671566945825428207595083601019956134120310109556607466220773147292435366386096935548317864326164923543237651460548391169510756526019648399168218409774771576072032815919761346149643542032613085762869346264155758790114331012108116228711146777217706253696717858472080541870569783749970201076971663159774054055802619197260354502049428610327525477251677468916712284304050611271418002684076931357591441380862607763964298316615953950697825485244167650582843944423719465897195155859322553829125092111030261706414881246610262385873947292189530648043871724611971680560183725875906886329151333718184282365765705718096161889850636236112718346531271333167622942325370845573182350446200466243589022232457550080576372776000334576523834240533845737919574894810436615565320660571067527334835544652287039846582503697886509937353412811183044255673564491538539421640352283530570910752150344194165438105920652705184870810777890369605872909472771574005831942404781307980287315917051748499081072252421451632311273293459074859418161728569621926940152571811568944009619635724207665475629735444217074857543854453654316808743933534192587104212642156164794085452872702202422298636510213397830058396540194439899120247521267730318177014099121627013187332024520021877794057419941788090571045839308185415693330051822270153315204196726231091129434634758426797431014461449229131171791734908857091196274687586490709114690933819639466895743892238381187209164340711542310808729206029340180370115441413435887637331390923198554652358447613565594417608809313580337239746881244036015304474474325293314218853184343169972769917930553289967510940357441789902909967837971969280159720349814601206110291835937675150471804705886909362905463009663766190040837035571516979128748343628341669496091197330739310863616488242564508456290327231365001489134573951278238940590501562754304177373529643716090357920393821638359326179382370896037806449310734311927565567301840607937032895771132204120847070081610737243060046998735861983942572479965661634052763642102544405363923855511190304258420486271705789803752759939751226158482046074996443742875368767388336156038202367201792515557124560716795042068217333333117546969679727225327836421349281238926324652772135314589393365640293962680876489820192949733973398888054445420876211541929549675341689086718592996882532299247902047918922224469155752634352583650378397709140346232036476062234245948814798899622881805862305288691940034540380912535571047506518482716020103639595939734615515508905541762019925618944525684997964502400070797125454055444473898886384623208414326842671888936502127206990328303864100768590627345053559396310623042677215759935106105477201128192048239487459651382020535553350069497875715373080236328170903591283654160493029584961822413526214752938376260173952833367197294374414619273749570617162362404052648641542684074536212839504840336092629977672366536353234291482063037845092881877334860137998894933945981192583022816000441855814745437483660545978690144034355678004041435263046408984109999951488571128633632763109350800149604340110008999651115963452607957362805778524366945736026447915947639063396986555287694378415307902936160837979083773584362401202946798523799662204451995462952184172396069528650413703262288424915538533968729539642744609223608583523193677148393830069913472159862712742956906539925336745103150243777659203703451935795242991061870157550813665581303823811052402005826807425922459254650278145995596144835523724007962715791912699501425546763945160324145275693964322573211867565647868485542378049095115982645869720833414122262806736543407883873512673545009729975747413277263981890956657915756875090471129821464688384435610596938217725551902191098840079058855747443282674251073745343013665009820793137710350244873089077376935697734065513029798475590273753814761157501778943538046877480209600554225717022206802574882197539717173936236048567963027665601012968235648945783084510751007178691883126220157848816582740514735073157451965752558943643913074788187784366557535094662135810495326189430396537140849060242742137616951074126629304075942030852833275390455944825561799551431664583162950605144229896822209718606687679064327848398006507986534663723214640744186938123832460687344031913316039333013801139697572572750666451149777600720230934414694288581392509821132714600202550781103311478543091432897821470630996689697930615794528359084452847542072154152615661887210058735248283822760657585068191050656499199180459674762147894012328035922020291731427764218122562846542903306962190065469595741786701628083746579142904494986109601357863430659588314204446782207741448235844826232528839504684551111630496337534001412578786399051546527785591556278972509658782437624036472381137471433898255651471756897103743037649062240108732330197414681831021694770903374904222714384979474739174369305389681745944620238515999957712359338204987705467828815163931370534255505964368202779366416669155038211063659617684308204846129090108053915559298070208565224414165028926918786759504289133208456396197419204456243779640011720780801552427610263295885156311623973217869861721523635361251685129556411032823111338131879537736292311683617820751339674258911006037909323092581853051691683377998595004230611039903176405042267607867045022100736516176093297479271669205382204918123519743780420033093465537304914733875700680278183911439650348338985707235729318496284413284501208067841655831437153585107361312111217422652110916002260509946890135619198846464986355934325612344148491853525009134053114651672615895089599382481556866804451828512864355150633759066969386699222156232079472670283279873029568806162405973059263311753277491314495498140421205289459441623650175495294554612588835594408723119198534479773596812704514224022781284574192307289406350143773637671458622834942664188611146415144555057285768900170433000431801643439414069112490952991408146086217195009553894514855600136206397753814237612200917902304724555372878295630916930786545763056257743466371050077051766681938038333130994994258959629766819564921807424145362537077393783313075716814108971859372201123373975324954228936542905869943834845889265769618518352697052603171343403442469940331080785878879554556794370214279893166967582228236922012478095236581889727595282875257282384341412485599366111514067768154612331410893558016381954643433016660921920605808196725237400852529275641384910312394153444574524142351829197139255094461937474144838777334568465906057533552805223453141508793001914883815574311850475694337445993951234335935000459833725557385365620438379463653046210823489785200184527034650937859071020609373889389603170921750964698335499183172754828425660118557324576363294450344526516286160028359051975916492735794608821097815054452528419677610058660372450372764715481940147160042668504063396069120476089978518477355614910639531961495369858028158400178067872554653518384128701917457241621005317038676225052162151718002556562420026162974920160681401861875342496136054756432365848867030052079976233299140885124565003146443256728060367330330549465522270160507719565580001752351510733886839279638355168335962624177881720799710600565044335194595355007913441252797609356070407660726175237751969439883843461650634791419743272929132990849857932560739059995648315510520439438008522186358097548306676444058867232807317690880346136244904997458839174087710245154378663608675499397079647483087770316216797512899211842792322017313591113113303041455827256319650158468527676197246679362633212234078835235460806127239917280496151262224075635634403022520077670283174813896717957409217339185019380103921008063168532963222507183853858857809503831740598812430066532850486957813761090090657605186675321314562054354924298351620450281591648205701529886458723111176755796911187792220240609075146387228555878632112721154689925692731679739145748993476371846277890760236951851790898054045436874604342196457764720476879181547565264959568239418219548599705808061822418293439056198426219477953340360860477252814515852356497677399545095681190484856001341151118951527935150924772150900088327418184897120748891345848558038049441462981302899430482568140785303845758298398233985895588505746263857544817397366846379907682533352266080660906832293156703917813743184681476476863191260926663205797402981480968893191166018071573488825765315546149132186687608609915944168906634858248397397504293770881107506581712545362100006588096818917677057019604222580788365209923645105379590489042921747085903955558934419656905386012124126498080029556848237075928038924215118416495258023211129226051340881384486992846935828844214544054838082141603158978637649612174920798280539874144886321547415511700562020993718107375008613903890711157090734417085116556079927377884143618968392925441806326752678320034636755213702077555108001718296060222299164161801671679976125148571524649072924344744172536302574209169614219437896503046873410768114889893312243819613433055474875531291815230824051419126829745014155681119468942675532370540042643957045367724320150908967808333092146736421546192686861288135001100595665818526562404394256630709629905034637617602463314961782387618595912476015995268102908779572099820343463614844274683918121142073326122067237831674957886778466075092688398780298446675230768314491681138046431635004792904524114885517707069576326459974520257876677604766778766262396234669579436961775948307321944266912658875803610822015405200362511603660830207402239260573928729865647154131854499293027974493846455583314265611202314886546401097986155290354381772752553514259095970993986199891512540129757441765602974379832865719081357112736856808165128689663062111173632214792384431098757186312294887858110082635821833577667123804547078330308096138714259358146797681671722331508501366507773982981255635988512292575108641337527879102298820261046297616993673458657828121138933195436944954979200379603370251699916588462448764705425164752379254068016999554845408906473519256061566047241536847971872320649101699137444511909649641941962564861310933994548615569651448866675937904625142859222587777083951813242431157572105953453053817249222210216995948104706780268779458277953991881394668768331306789429157586315047903997509517180069044539764220657328649290912584727049152338113869668974117221059226647215996328061429036019263546018133312700245119257429582446026577748387981428557496132720146704451052104801491188478843737293866018892948451539938645360280231773257104497003156625319358326538736842106841094231893655153423217611913475533358642307523733022360518353543679768795068968345796902577550115444240450187574374052815204186343992995560531681568038179352768023473351665484158761400930096844874686610326593371908094569049417556093782792133580097409719703189587269452108260382975835523091479105338397017001118975703042334720625200722067627706565295354764745941455353321279994023587372483745996018171484559481974615213863481807899499759213899323085765266415834211220837707796579942824702587189521089444205975120419092748699545723362688714743310558764746343776487404029086539950795092881843414577873780187142538798736557427158850963156857286695105905343957165175582802683047354055546813969919561816915066670790476481129193082946998767871392069779996486932652705554130862868413546252880228166102818184962666698943198724258987859898516919876264674885612791269788460794529972597468703753837797735200273160416630127462516741096438782802556248493699913792313440170532957431813978399125108783751437813231387661156164246165840425736929086910165591146712089221150257695451975244971949978373549704169997301933622934198185534419846930979947375997659695043000712050851527458002722232014466913174270068072659544359120569560257619539881813794829328246264709910989190196463560816670547406161229856867112743712495484063593802644899677344985680043381203448044713407127925108981812789370019833553842984227947067216657353243712752477496762227649517815496696655193827688757783264811231009630378697762610346945079819505290622958341432096954116164960107847705809157992981194335084201398110431778881235971248801382753263180633619952295655722834651263382074445220587425062977308929572515737546506475592516662298010108506583444153766950085016099864967452274949639566027698132833651221270285075158651111003552763654838869755440118741286012427773889341540413868431320842384030837007809681613271205956142716480526726202532942002173747670877051633936560966489326018420636409152505174441215793400146136187709743056269122612914035819932698388791866684304375000934027382444614778138040698113411875816276318446021436354240392627553000818407699346289318397507658057220314357929589809951315960673115922045783122505219705262063199217405328621552340388667362025761599391612461620355920905110384971293026822343044162576662276763642333859729014922696538220768714627398140284662804689893862668184855489900176836096302887111859503095931382046807221703597518706382465658380566303075988889365648171207629245274881450767074185504936051875730572149635993708462461171538308930742884340426341173297270632746511504649660645306075862015406391847096243164502803879372784120808818303900069690982427668044744452043090504354632565692483479078888511007305085312957282768876037312123009998584736323721424328972871882278997237834240226999766179558692526531266313984785950092833431658176382653750013121875372195456339902096907537917306701430674514163600530770305432531075572754792118179485956974352459141764705968654122657373627073324973731378637561157101873016710223278168650020649605817646656404951764649136233499196255525681897138844598514217317797288455570054409265221653102752055154166289548465650147442130831035595531903815201533109033605477161628621610232248177618031077808753613195441593559046517078791397424286523725449913664268890318758692462472134807467434286557761276948396368182848257862438944918816900712273314329264890952001775846930364880587373483777125784241538109074683446821776039959405483955325412249290744207633540752379808967977677520550045529151415733091705049378253968879456419674857362883493040948372043480103171648482184395516751588798717915217862981918442992844915451238099573666526298738177542547251692926882562989230361888184389451448541742409931592698576392807428000867374998486219362200611137248353097562688761609211069344354823237100656454846880173664222255330738289690480847777757745102824087801464984376528371832334216592809630513981150486907709424216960462988686004583345298731889566591793152957778305052637137511313754798411965067346141279079066203396621227840917814670748528321081312823416993369640869168796627268291900100566993458328224699034273261302473383713234613428227022585267505652751932176772155907098652013607489734346923049851403121791465621143659778131471102718160404160482337681861516829452822647671694617075888975299743330167999729521043066516654156002799616506191515671850885959502815938997864309160081146650094579537868383112179375726713133496435091606766817800259765948157782755723213681054097824243842043721920971446812999341987040147348450135972883699894887989919766468458207355318707942356612841250725419956306952929555588059818096317144206097124517574522367708045571420995011141562570376439757453159261343503041129399687203310631611769151957613836437895089265225140426947723464451299556086197073158999759288188877325443673551037429515263558962249577063668028802662424875629093343389525050533384339878983677852814377403004975493550872385123069418597945252537403729796748628568142163098712525833737243441339936351501581827791670625535019169512453853657052403384238458301767496644714268970522171439150394262089125727982171390809723869414317077352788253293319890118456189673608459609761296643961570239281857852573700136160081302752721561957524931039864079757231750206237071407008045958835023590922080355004188450254186817845266116540152554147359269766487555158279132014119408468487021558998221977175521507901981634956276808407863137308468043642517082957050764125262480393661408129506205115891167217979068083425201232090048788480219620511262651966905815308179148507786752891873879563380230588048911011425602344129680030319009388429307893686687490829499480815203804125109604653697252639353768347128057949895826348581314315767479559807258479409469544620948817231834363267631343197766814314826220380234404861773339759916879194892502411822702884583136694642496482158755380539850138783765526786900441333477700617498672340216352156771916160544465565662774277671047575271648798400383644683523994413792682299470701824294871747336741263232300159801741311509762465342156084162270816308500568646583210188498285212724187076469665868652001769728066542111524002337008069403762032290715110087045329724956224641414315803026419008751188778733123157821562564792210163637802861162354806558633248965067781337019431960238036499135087042996161807336283652821557093333814399110561039530996804441143691692504219716955772021439517348850304587505835229792778382587707684410174323707347547030225998119879142545136549327935923332029826150754298539495528416287845396365427360209221533026325881831455019228739285817906708629370106455793657279489535546647150899687506320486690286289050485965543748967180068885428786730391274539818396825104747818058619063542009873565448586811684283482215321738472672056968828442901650417449978132911053601998366576129625748282745447745689949148722767082965397602400296418126532695603404399429805772961865745730664458903697270339193397592909635877901217993484351240941768695279012284049552511469388405361957384339764501039788957585953689775485075449042598299704377410157605501523883820327107389910255667070867091922349948208356416451918999091925403178195573951975727990792857073889269656917631930787708611433590053422186028570280876047887042290021089490624344929340830042932692105068640873422940068076978027222206171467571447284758711671634776287802688149991486079989702284245862880275711389269245499114160799209517422596739960493832305679155429554781660710551445993634726603022289830153360765122261011738669180834730556701402762964949773968266975840508083107208886791801387649611493487722878060823018190180778219677258741557793281199191645390826078493631627309095590910741982198356244560141762019913271341272902609789588217486331370865449823039394425952582146422696830401983935818656865416825060838087045790467333670070325010547479836032280133780591230307093292155701899540538809517824715853874642873557251481410184710059295558121613749173994805582956849776677228215613208080786878643992134951718083152622736447869843375320629448933999817546408307513176473793482058658799591719252504801702929243520213485452279263360669347478630082940826601668395377233002965809690997874860990230479674000123318466574567375568952051426848137728916839712918795181639460918392108051363903718394483342591174915805939826097357047428871719409409973662399516253448736463028094160534235342669500216205425914411245848683355607908587276849539812791379849885725033907061893003201194486417139505388577964876571703697776050141401212383600676912289048285238042408947255580316757525568018518552052813699862775214226370411160663226519126266610802102816854646214431110422011415673589932441545674722733669940306479303196602475871733712670968828800269607859139089636930336800907254788628171005996001506963718264937863576131863874112326082877386260108345005456074640219108683000449911889453499949848327450062904316947600519498057320288986907260129686955566788233590992180282464942712657994544273972724073496283641895730445939869047997059449751349097159127877078266553972706068515975469615035665480966469856491460617122826513580396556172052434333270809338535948790085032717362388469401537273829882747938523799250955704678439559334634941942440722569703114816761768105055096229548532022768042739729405688410427842725586266304061240989542314799388259756409623554727566704745687704536157406224638811649854414140594340516406387713895071177410491585485181107215340364745412413683968520973500777063739430478597446152720311194300780405468267837652732417718126501995777725642648337595591458646438609027583100314021511736803008197444045691618555649306648866750014292507025323724466942017722028163913012266688017044150999579580936827056239799776942051722693236961913469168894307702047807168835088331716989114520115722264344123705378070928177092680103105175466735068476467519420393178937556900651665673782925568508331635259866125859365969752699988336345099013799197614964691732524267092436006701578551157256585871250783134742219616135701214799834921486355633563398327089466356554999470816949392981546707575820717230401261074066726529852990255585458232091950157900276521498133238769044421650126645824380183285935690012528823747027412821485260598135979701179111734426333493521330103885916557500881125520820526504228940494684936598517577718278248225144981214170006921710279812599679776919373625683853240064504273458504199539854417418953452443789453525322112855640115761083161534412619697652163470687076883288362429854450809367945005236813496067531377467010137743192796971191771753192953951667661933743929645034887113885465779170600212968430227415985109426358421590755544247773993027639929307448552978569655136773508465675094807555370746177940815478000237266263496251277447560369503486098179366816817491082686477393620657722815698465920988229970249936712176488689641622877692295307698994753470514952496821283841489081988007771051617722213235847481720032610775605858345965818360085876418477210248766656260533912958819650026218282673109512686152963281494184557906156523824200199389081506995276418157881469956673885277973396355500087840233909789572076350686950190497914841391587820464540237923612176124857563207878514981500361318433048134379377123456307305526233546829168813633330726167370116361388209671420061814666968074401937777742927984844079421970728778910957508164489613841197490501188779234984815889203136095828857970384955398058042217132542660362896719242834151361843809650968756244360015856100680596290244839103049366215370687493729068773161019341093636449231291520590817137300883872046913036373429216939630488805684362389869861306271991047166183679078978518306363490859813044696933385357361960330618245282827693199272335390285973583843339960364669951908793140642198866213636235032844305617984739926305865461791039039052878911116791039757179466795792198846473795786267855453087227415975032040847558888485872634447193906194962303060580006163135177498631622569273677194250523282508546815463562885635268233515324208647722143619704027304294888837848021244790421514005202146190256352412345131939822034046831172713048438661368048071709205584006353544743921831252442600851659857841713760886683443684348495403995728859550217664426615102720356470841966981939633874346550694019140956960520091474164926591508465746842552706205668611223258382098263446326111554051198308567882397267253948065140471500925309591463376304594635190642091182375229030503819776226083619916915048578314715227372582724622377056318493473634013611874688789055113021704753255443190207231383470941357242434262387830967169000699303155671950853545179313599063929991172402925173033586567618994898748915888875679948093729285083290752140630809333220712494733149247855387731657777730357187105155084050942209061220664149846824300509056389780556821808110240649991638321169548497478753884037900665356319008915868484560024244625158991202660776336464440062024997531365798641563923248614075719442039705889854793797390614158978600711743968359947051815118368181892789627228407486834266493670943985521806272708771978650107738045644693142682977701234866379896349021468983635678086950170388752908197280389975754360439462329711336692532750181311092352658909721628946645019529578461925847576010180338322629056839412257466700416480741061624464715143420180031449500188274329779884606118475326733550916273119095768270791294137793364247671063773082352908814497267538204062221104628401536683837739151637612864620010806021188440824556562934757293900377095992590351800269271016915897688783750227186802639833040860663941002954797412799147500117652320397820091858582692115228584237895786363997313657130463997352581195909536319968958395447633084636193955951191066083777960272755204847104201214741655742747334593709778325572468156716655741000765147084740165366173100757769524655548847377978308172659811563482738981317221404228850424248549976700803302502884094141742105382525641753418341194013592192414947127163710332361728802147983965807119003397849840106569805084011474505875201615740422801167160569639654109125771410420859565475304298761888693322847035898945009683241873642841742468620205342003674565018252534801817775956977558075558449742656421420644223264948345290012497386662200017306541828582967099152134374812397565410934826020660519816336060519191462357638251148062257282564963248174895163712175815196471819420139868191482259012054525130832883486911130639924414938271013821567411085473094346949253150549855866517081450899068448409102926605814814401395414093376013779635823514523108861791004299895415104404298707146910111102145937003321950465547339127390609421731028554577305451129566100708968991407372985037925044373401404223854046376943220964490394165131262223164479753510499855254589341946551204652060304605888359569841838249222409359242847573766725483090297002461550328626255387284624575508029829720162689979465567137332452145408029275783035372766187804167115759302534672042108723782097387708528132023814245077688909092725987659613521970686120114119319439388844160968390639695865189599075546084621306851524314995366151006073463148647106351325967268708622562412732242302290016825688535782503882183078541639571764680173903543353517840435008600393707522389670303552852778280759605392787646844426365937200934617972417032012389922337266584017319711560131942605523707435554122569639755519746479713466883291783553099680085072164799157267923531028036700780951434251343737116299564861204730955516542311635827143843192072727303577039534172012844949861182890567435156119640681702977908165094668311685127894766627713551647950701510345736518980345207717664661174185633626465487002665906682544060895503094555053294420664507174061151826187433209600536525337099410201372042246503341303106038390941722935191762039653355564538859070290643504747913604473390511083445902279772673156362181031578849329755046940196113485563815626032738960813715367563541588078593529669636257894716653767395840648431168989735075808328413161587119824420225392014168705990933682783258594813052984566566305535594571774715408608467860674703064511880540926888533050424891212504308216824980702996215571072940322326793200102771887725175157032606231526681997363371020697672410699197717532411726291038616430236119704398666576884769704201639655821676314570997176427940899348159508209706988490497995572286264044944243305621830360437425250035395845970732423740885767618690963330024888821930461871277409933884868769665980899810589900341879044206348717383061470064053294938128448209862415837810440905064628198914577958458268561744728094640964804310096491270070998879486204271822109499633584422357875218280213892346164427020353466146380439150024408839814488841908456433250500612247944985327046144179509154224879431636480269812272643601470757965279412422286564693017655430227889334009313546984273219611802678434918865778687423994299739166431832697732556073981778507192527546913772535039347708347415235476692163072735385300696080375978644416341207351273435636880361654092273236222572988163104624602562745512134228031760887210694884562402468420643958333354929642974657104018155898428401480359106279485705698957854643220949495207375814354223346712723553387964988630288586901062244481423684282699398461032978641065714835007163965414779864490425243383358050020519611982528989834308594581860714358702512963893024959161369634451428866048595937705221300001756618048797955754982495022406236755444280858252330335138434153801841861723798629551117720646097338437491484120469162973029458685266944224573047092098112451481498229538854223166160560603983405513328338140102551062046999817177948314598077039026358631013094875224614750342399035639296653732490691641009374790463158214094635360707486709501534360009334051941385371038820680229639214036641091206230871293020985902514866945056821094818000713316681333142319869432052003159557008407781800582197892335934573920722048581726110237792815958024705697632781172051892049750656973362203343492374898402925370477426894684121266077080353535897084867452185659467071048610498605457628152638218432654823803321726461876938770632625008971052200881095701533449812702133258646602645240614485345777520192625974900076266002349426267902203088903366673267102434983558960919589613861836062677866698797302211751321124197653108719979834193677892269627377888622065117882008945698856876017225179188059826304897492791011389594578177736179672944472552473660744518083706824618969902438255843064175734540624594818945367677958487026328033841490523423847613648816029531437067807036529317095099650206294731950411739764403355247952346970964664080437810684007637228402519628927310572227634635372630841210711786181462921743700138174142194482082353018639353340760609133260080692992861707369859574480193671457230139008423563736456175079939279817814315070603667855421395072875306457990240612493930115591701395117471640612102673586767284737111387791193551183348913243544069638611267151353298277762310244628630872836973119445911791060076123379644686662227781867366321234409603494283942761419368129667964981709155307628347996923211888532161558736387316756833374090099273584301497763820124988184953558067853461267624025837930734808717978960923185611987522275410232690887712268625412388025716466738922159051372288467516885946875924069940713443048018803269718667087191772832647022067077547196025064279870616534145820861872519518449689510382648629256198932492107971524435517088808655457393659556852560750203437292066968274050530493296093939869032130217879278491086000527909256495393983842327516627853740937546860388768500253207015503310390284847194751775858236538253524504908038187308921055050577722406955214224436726854957159385014543696781419084928864948788554408974464729032342309814529306358738438348837675823328525940117917158409344915839385304618640823399128207521683830016930220047214173740060030036699372649702223787282122314827979147096934827911985211846569425466232742162484471030767625662916312452986083197967475757638836544262490471105328733970067907142007690318887880413622982036236225472021391493208978262545952184855853976200550401925714684718755347818978958729651992307015900815498544614808540945970344924522875780222495415336196880502752349853815918474457152952605743373660050363038610068142709185304572053349653623060071041394254211218993603383345245411540436586467259418867394556218146890532311981636207620762657431459725401921221310683983662367338323601981713267400516668559484289415828665568408179639322249753898590667797506648804013962642933818829235185127824623867584716545456164175149356002463356782113751769326406736829358953837704472294318499201486164778915230663742574215222671373396414521930951972298486546036936464586172354886858324506398599937992020236647363327419097426023119553571961936463318376001160430979820934637447207004766858454831532879682677616581508584385336358237508043496581293639576421380072601892710595615022297195155439078225061085989681409516783289635974455151738152769713628662457850489577826513253219707133666018429805801608898805164565922312973421721701049240990251183879722312276795975797772281744030270330148243211367265737477202782175682384683812206625449652253743148751534444860358810439081549308190851891871650176805208213510798982167994954064784610548945856841249636911915645247209508349351606978788289397224803825303027602854360313821541320222550759308323384939197349692086287744052521630146376437072851595080988272364422415449535087868794425823254764641961932284798367466505401397297130236362286668618815976578785788016543736646043216559588516636967414966365445354248398370917970418902244728597881600046000114765540202683286158801645104282145862835619562658573994367619981183265631541957796291140442019485911820203355711189629312941174327327548627454259686341673393797954872850618973957289471633483131877888853193155392494840718293931856829540817258214656885572214095417028103614669107187821842098460925137566590999273803886097763625064878050063430934510041346632632510253038907403144643020190695965656886183762243859380923168453973288740470404960487845214018676508545756794134964019281404697753737028708640169316242723474271343449651501593258215705153193348652935656000287251323985858332591557801518798893717004810477027504358284159611887605735529189304993898514917125790457089690196726046442502888211690490532165631133702135268306299061547089514854854219838801267627349168721903483992883343389543181866162326429987902855826763835635981143180833428562068856427896892054547897659766629044518725743326762377578716955357267674126373711816213785039634610539870423592405005454208563568344299439904985039452306048431361949517479631023229605678071766856935110809287129614832098694709092990969555232629877292748243081494125033474141640732303585274937207446995243132663556011244816564580904015072676463146383674933814237507700399259417417135584309858526708570936004564218786258224269783677211893006158948579226871563237226685712278971007845013335239975392506602590206779413236914829674485369070115903691651737390549024851918950604915237186124912687087253124861555240797753275356601324087405277422125037958087348395959402527561595430820040295612511474210800190801479769678193557510429912872575765603200424355426962619235299142604642387578416116123013206705926744510962689000429069471420943740903860164525496894819287113703913693790453150871150437249694722244662018231496722170525210838571019805520854270226318064505557716991216614258019588911518767027685497413209147490232791285249377516191491041790955869563307899802350677055653655965541219886554074930093125345511782580009298690315971795478064861068321423337502833353731954438406456635875661162309312928055666731910351439989501215080976668573342496121472765496095625739786508132425956238974154482974287731622431887222719816670334830735604458413318255264759208647921760788284681573259124967271471088966171060238302956206300794203671802488134557399520961764254501994222378661996176683501036425595197172232409884876816379803155778568325907265459992744014280445446167138480441039813919584948374934462039944035837073825205350846297437840293098638001104013935234155498447654552284299771197974719171195805486314425136917110362698940296039339469440341405049575580134596189562510388666956018886693473406833208511923913931648358088611539270728979596544346126647607251716916269158899091723613289896551081400467803979317079951960111721315858731278213852077636857480498302594972547393505224201750319002497755883182472479223436028019464257600674975582588353746845124540268094100062670211568188328684143277184244902613912633264951290906706514249807232659788518237374434513581489457391379321341561993047774495894244946622373697311111752245542231268029822202151376024453385614097249703415681574183124615480802939029864255576841577781467342108122754402046510304935997813054269811507002147780302209624571703574652186145294697074338569213861253481867803582449854550234870369169133519376911160125022210308882363716856087634584738731081997325523109930205942533237527584873031574772204699429911889449902021552339289398738182493713833816967349212721994647852665657209151737530627985251435707343344124209066083887024616732802390152475754827513200160956736404153725974529610068859228390295527772349944257369489206831955943649550793253997217243424239597885674670818783338484333419289599582064299609573074421782923070456226477758062263738526257191244597048955851186709450119161560227826882109404509273415536541779842875096009800717856277603192504424198766040705668148954108633979738212536926433343093749045306453282990142293539331348700082203632785838316312688734173957084046273714566068376979164364603473992974753830107906073041161638256957661915133419740257627555200372160164748012116638522070114878726327911482453206294627838706390974945695434514385203941772775019299371460803949757771092751237411186978918822885842798414749717088290576848439225044003862540119782022601786672395282833970278628917365727488680234554096812022422039731292227922264362767445559194508079906154378371232592320585095115904759961313823577413350511260518044629754271440125923400949070432282651479097657816483565731598807203736801426562759074524810409294460271739988406460996152680728577041595258664038774879485323894145110513291998600812647802914842720348784987577465632612760016132232357836068938871651246955404700987295847364524901842716225685714710416748471691127774171856662677911028943693502077373519836261398814747479041366395923240189075275930279354093077414630888293859292362428739924493898057244101064391107286127207908692795395067591250931613933466441289803979335319709407009217836322056886848707184180713733461608110189741551648590953795381526033915135569039771720074910928237530498186422444426161798276115338359822024937022215169376281416552518200102267480457037787979200266195868777819551308265524991333593870002958914886167904392451281131982053993507374489245567251492199403724885510458217981846083102770936026306269812694411074042925414599948880819581259712913183736911267196700222763014205239348301744670176209164928860852730342824156253061734086665454041590417404468027534437871595945830388715829558469653895181657573313866356988786501438879779814708857850250510352425613759386588204208927710158406500533260087978935163005083261762480688681801880537922734002886094509698424846323533307031241144656696663915816349615076988195237685032217132788094124302507044676589169616377513257797281120919841984572264257932091929193127940493364424770774744754396941290755765133588786511257129543588446098531314942606541395635572617925584218882706542498758721690319123016349521462034613211232023187826417257963057438121926240772913159408778050476892139104706924535536649124688487634275744711724617150515437716629971869374403406708622713399350071389343892402333187507758018161988417133025041778431312638710925760937890677241222046211358103004620537767877142373392072917521011012639609726199651763145918589827669545466988461830956926230761498460932116438793823128364147353557851301875087797081142572524581608884913028368524016679840348080166924196472200320859680140551789166127457479424457485048459743231791497520798261022977080963958730935810764763250033941764768987837959907421377421687000898333742501152876074050294623187414821538155541816317551192767042496949620944842415900705910671203671986335294785904315230011079957005141532446096952092240054840312811299741612741202768817029824918711020387566441059127900058180526513772648819314140309461307972666599028239694497596926098564756514242179357433218831310849906113086455049635344945977343853912036354432376390161461854869374230317993449441349423174788021852549879054773666087856030106567919963480932859556416148572753525689406283093472487636690298941183168395129938283470221414311264995981443703230578366041775119170173541693479725035697493616869533657977664190791066623265138819759832947192041269566912836278366647788332106860915901995501849886280125671110630373416297344727842956720305248756161646763343503845384088285497671004388098897946726551528097113714476907292077232621270423415958879156198274095682798099355051759505002392454656454027818262049179574142141696578045472519173105857967856694807947692730956300846954900507040204082291203967091452429672091784125214411849362531514888005165473904681075451810815115612364390818851780862572117461036367706495036126097826829913574234519661100100584800005096439907589325645277428860735655517288734409922338798685538885262711909003397490574004756143137298144256427635753136063473003697108397660584747152434430197473671901915621541705675696009398385538441084233871447555820330131857153329230778213633483763381767455844733381639394319016918889785139231820486621015660486210321355481015027183176582001490230738116177575405706810844815017922887351244895606473442957583029580141406294473393291593107262024208352358981640533348164908072978807569272776260013666909810057853597452158911293941391523032690342680963618043705184359805143812020241386481354993534768746767464665519726350002663211545432405593636874182620869368217148708459120316897894277424781066969862173133633519160890238783682097718844943120697398992018588580389559612185905393076073509846882503356492085302672200661336314954637422480551841788345354271155460240594147023500698514185429160342819922198946192427872572560751792597701798611957682079538798949781411910278426853605548198677293829075953589861705089168870904310381711550545695107547587962550869766047064804233616078264800715077609394306034782009176377989327312001009647619008430554647488724641005841306934737269172253038414961364330724549800034300827480707944675499380889306778587245036427976358038414175140363090965137625747997304270322731202233339543915238058655272709241901223370061565512022548043650890369322915205336564567644530400687437466278116281324122169437716511572227441097768259912165328306571588587417542854033566995117204884947943748476589351789618788999458780293396999303148446462985708667648957737650235397695245052976043747662609259607942142940509419942517015001710894742585117177058758191541334655409768276813691406367041939616612890945693137473832194336359939060484513844252501289274559746430255602684708625317549978800893527723074593372642342004760226827833264634016819364304497456762037864170854327003784225381765751238056774588775522093089399667690547737553902219673503918818440295688292119607646465535067906108638301761522157574387455064427345380537453568608482497689483521650641561858895665903822968109521019201331092108471115658685902639065451902826763605390445124569800895661200685312066396725120856928762499962210613259817838086878984453341243720810421002065633395508904788839644885295952297112546651483892101821240336479363562467442371280099773784127408769499552001151516796308094489402699138158960878744415475651671933535388303517365938987333483256203433194900180717442117911934022229836126969566087463924509555796230458663046645472497840218242502593258255592717349124912140688701785355765221937586975028148883469808786075910414883733140534702541492405918838734292170088352197677293228598890474121019210256990090964291883601226642947520537523717029813047160643614003790253087275735334821045484755968089955231959037115254467750370345909240212590355449898482941656864608336926315142201863580959847836676772285074230655106554107759023787215749036166794792211692525752010876279412143078316979506354695138123278077424338924646617473282956954294308192126352608593002436083277620471553400788175326068805475482086911945456781100705360218405634833464488850997777323011535672112855658830684900713963321182379385925419681209160081355372089370908091144105984719326863073697111116608105844714754434654748487375389097536818523362337239151425336202985585830801479341680424226121984507502719927290315901929128813173041709873828011142408982702877761587525016382180361621799334973168702032612749550587740966867264742046536506300099515672283043235602137562198344943248164948281876901408963314138498480459405839228797288425936526548726568551989319869586830638099450282675899194905431785280422172744257934265525946209579582692786319907728683797678622357986661430016631807522250748009313427110347417439451721879196578185230923876223531066832348115667153083257014999290189873221013985600417310417573871745321898545119621258487979061015041320827662740375196338930528725960323522175909238454988204090514925269665963915839867737274790437820661583058555864531353770108639113081441555213508426802398447802404213450026503705564055426852187916387160204301690472197046989445718052047904707603704893188473240249245480581915911856499101923399663603734022363494386870554423149062453934345480028596388356842529349244227962913325000158543455899770620087800825394318496217646099239584291435291811495728785275225036325794149483484168019790784170674208105629269881940106833195317538478334478892583227694460930708692125079187354335224372916338588356991006824107405164777845033984779784100063104574819508187883800480059362005431349890806212112707170558164096773771980747575412843483679440866153782766739167815017257648459135614731074085739347193388863411183521192195845465271805006268251351364619931671137229501158392378449255974141882584588554515583567260682005455442024578112844781303445772136725986971208153221229638382483291918867247824125066546800870668039994814563189372344412918185266629174624819012224043309190169813893538331617516755489107146270164210051551460482098790376720658089655035066026814797572868695171696180268104130029464230733022495749139354108048402702376084227710476991500529792920288481555385825615083143790516702732996331095097420838524309492265131579613449351761216198457535692403905287334293248438465582430619547681869015653542503900073049413529985899504036338694238464606402432441925978319068143096147677598845204005091626758665650363242186480705249131045067369475583197703937286973268085485143228819400201887591118081135254546783236707587243531542476875497974858848298635886211731518899834321124530939462875043812110663285417196187558378286854034874970824066967885375789763037856369172293360731393433429615587744088586960002057359112443665299499982849719694203174073512446233154360889012815493086461520589962350225950048134847400355673753842072509734541196861765981433322787871905708966646372134321727489220616776686864061004001783874356514756448202681692887661079930405574132072780243116395033652279604132153509122255035947035220427885981421802272971985081529825635931845723494370076113022390615917326056133097364826583100295039321141346617550942353768047860845811930905999521785710846711681741380618519096145294945241637977830051587600584683365177114759567987996338243832183388412059812675928401926843178076053939665119865525702315749066366821537269791476355501515906376486166300017932916539437240831478394177484676234518707753180957891635761895749666754627252728919520930967220660751202628123120702656410871716654793830350078120808165326298285681057404790611849634688344028403364299090564083179418120647753686876425389906313722401908796867303662098708006269063064674483187624066817039657787446716513416460203741547359256363429746813589451116292367497874619651229400562306254414512163128941584758023020285233352139539362651543691467315745078855620325897114712398820836251387711180714929779242382465846387720171001919844026763172059930295935543250166111733294106528426618088786668575784368485174155930243952632367719624727735639337224445869148676136782818577181666875483490995054870256331280303226632617291940972733190976073700664800029559031157250882416025906877666198193866745841004203622860998573830015885261715942550239155476349555786348376067390792582515667041678375103972988837357562435120329527665676746153360243902821678112285936003479284800107168702420880139157536031797707852810093086745317091461683092522866837125479900797014742694129311105273768321629069958191803110373424614387929008714978582847130196834749159719285111294308691438687637390034501497689398297706616964051579108175867822712946519448316811048675688277371847624424212203853397345587125066187584600224845983557203724285758544472405099376585653653162830023344535681385790483995969196641503390116946609415030801192272909737123133048157659638018673947982451893546932027199008946283001565533143363793921214333576857056220600241758303814573603544891684697572503893862645831308303395947791426209860723816579697936646874079979737428571061892387416252100445838936495284177276399474616050227305745952458729082712444123262580485585479364946972522933968778014618835617246903040294380548356395367826298914916137094931862069716478959438085648751688925435994195844216195304791216432360058670184231268856952632861762874581327672153442853054841592720995586805031014784997873963617625698314695882905229186170436898102442978345664358018269368107362110508909724943772757881918694789428616442062263155555533653977762304168107352553822483744577865468221003140309212031694734308581958090645727594234445992711371813625119806828384837384308291955437303471111441815472365747134107000126555579921062899111983720435497543388942677618954933499496632020272177410978825443084366215459026193548823125882061322522700993683315419792139607682137724416703060793631911249613712072266968671669344140480896926496777385450193895315615420883224730253834626674271812996094900610865053790743985408455075223845454920577563605942867694062530478134733607908349837535297487850702476145152365543610519706918132631200502701414752634694289801858072525502100069964816762777324460409041897330262228024249851928696949288278811906686615021723587658296448778250289425321347474029839560725416997686549241431492138466036644956948955370379554219822709035350316403574751616600456645557646426096275913340007697579149031509430474337616096288633688141998004609599907343974415126399731172043226405371958626969560767393232816743545555308532837860592594032097414001909051972039334718622929694103996933453617485033708612281219586880725801453405383642888690497398080015698858121939397380231671739284037581856353384901005247236122814687871788821895299506716403041490889723886865611682023139482233923858958040060547416728493305066205984089085249557874730116813710160408966627277435183660846527097827444846886114043894795627255369749349203747598613041982352545153841454141686340088784356689350622669303125418776229736154334028546600191473206694864366856922903839972095595641377570945264874994149551295813904953377996257069415403619281345367421588294487754570002889749034561020752534988635121649977126199290545339460427481525330342978656353572656590388553397769719784577536648445423712570350154662557479434716377801936830654637107678439358205950224351824895404315996544961691783213969335764541787875174946626619595212441025341641620820613145337443076956777593167014595118501876688267196667287834211603871868675156775922872949813500246907418863706585038264324142800292962547551668651709115726456138807770383628122222616901641305308089409701249489418525621143112113337411293559585090292331035761734825636932038108877020486227042267387585753302684825371521979590262281537764123645644735533408798919227640980472762161908133897540191662124260765644868533810384232727510801189975313366664645380327789764236042479133379228865229295203337827606397095952702298111501063561266457207832359565262415983560466326218347919618155968428225157023393296292803786547673814274755343584712448289974662163378017604750027536971277331704727650743534481179617639986920006602985234997153993464904190580165160417934603210657012610638835220458286220635056846604247394371611456499806962392943567223150845569166700869985156777248792874377528379931052200886661074840267867527037616852978826629382869954610586974807989950357927878222922754341773458311811063767921410492535727333025828024132208667906103835041447567711372310393456636159878988953706850148360442560528517776549169462793736728201537059831166569722612495708575389205822505426917633557387887806082911415822485410416003339682979373313948077516465752840358692147926711159977421808032500531643898824278792813995535833039530713050314069383011585625424794731699932591439997794149613020112308591874308546578224346519300797118468156432421176871434479602044029657691344753743640732715120763876145686380347419399434483722069898993706134094423848854681994786802371592613596870274144056862325772455911200232908502922997957836901907325700486980017762613993534993439327279207990701682113832728146428596397443868331308959968498905277185143650802777851938402694839609084295963706766838071630791475681921236630128552339326116580023085476074190593242054814405827666331444477373396445959633367990082334225822323977242370253119597943103792794364956571530750255205070892996962094034371271077318239376656076804742262500835594622098716018741686921928689405043769004014361755877863243452604954902978868790091452608136612838001431930613668947716329994776335481238293369124265199568027468535390592595695735714927341861743340079892484790984747958913089951390488795198019583881478848030540763612098759103310969069262365712665619560219311468424893246662800805097315111586428871475696027324415425192800760580543646938322183563618966755176743601205672253173678604116280028112999237888131583386932321909448841587301579405782974508979017546189511217411066351532981539873034853730595112675948686674544737746633602122393761501514972565697623602574676547814933261987921670928285461432299645005891496037620281578845024940304081571973340552726074016108399077531331813738170168325480000403008403201577988666602111060432596473107130539507688226477445037362556526455062748033924870781185734367059657236253430007328727397659550530196790489389923203632412686000901929422695741853860949547881470921093034334847772990551608750001910682931979950365899329592604560736994161024058104388184632070091572149921571678253620510100196185960528665252893781281691290329518593153765228540876425597370395331452427388294773804766697542719160174816159216991913841565254807451014085566917352071204593712986886504715331781194904591137250218253742811330838603332415294669357042504168679758246063296276164069502911539762825343767177810528990515640995016846835868493933914377936100580706842887409424725870993243364722047899870571833648954560024773810582000978537196983335758972191382014043672649205248015342778261989996481782380819687460756341104660871806065022638332750315829401234396189234685040422902288150538187020059424916139158841936999590233702867949806854222540973750548512487941653391211630977879297434994487305974037044730963791654396002024584901917461638259580009045844825624504450279839718620336829152516232182435370656676655818675976242154317460348103586157523095608356176200773278132750307840324492710284673088406243210788775889941578917314744589773418643302845742731463531431802657921667896117991502556324724731329435589454436291496517302402771372454928220612046625318503941573625431064544707913240392175170434691370449873758298057670600276717584627795223381162293341401996469833492505596427500311108596613266549452084225130896784315150066163043492673734651271055296821718298179104316996670252750638818503716967324149668982777140826896692791968688834406374530876969651311885955076693444298464851800261003150269205923332929622501044291667411621061539160735076726841573447411988207616521698554324249548646510414182011431598068069152861366835127136058099167257653311277811087792267609887607014436085872063411615879012636252579895314834394369215379332832525745353101646935175409670572479874197921958613783837024217343089988768062430561192899612120267639847604952282426944263578292587823375743704857125733916037452264120700000247597420242390462970918817984888536134886340044759417381321325048489134381363510692156955187095129816200466118772956695821984112859173730798727219045244277136723927756068907144196452568505403128086511570200328609172430493789727516314923483901562015547819803292952759241018795834056522741967227947574033482725824287288530649922821479067165722629367567438447411092710953703842548170023595883082197363210402206310059105142130273621949845271182099719615547659322552333403712346721773940016536516988872271686993031725245124253439633842994351808826201481552052411758506904953618624490350305195563875745785236053585352134088728126487862833101992353888223638095418079247255343431887267470994756645491933649589621743706714893206561913232784447233698091032762865569474156198115985204326517718957679628734842222996273077084696741554403267616425064661966081549607517865276245568173640408395354921343532080029555464360149767699544163544300150314501218459503393044454424996953327924234890274188006062553431507323595645021690366436129664131255453345639896315261131808571340035064754495132724690909348236052351144118240110371656778307905705619461405635389685124177773436461504398947013261865090970772412249855187963856925362101218836265762350896306976258141679328993625824416587158124808002746056187892019365166127827420588408539513559570239405361731668187212599542304192688230694909826654297517084267108640716570443660123481863078577396989432178574627720017459020339897694063255337521586391355485208311264256888578444723842988251749838646459630669690328281026904492184551915250602966871717702301018504667343826575193043813510487978717903230596060708358164905174973028745075166427984884483113221082391506229309386059301710229907949774756963285582535054478053992564489237816590552656620629748255359126032005310187671332881249299156332942497219820888313625549826261075055282816964804013713565731969391036061191564787126438277998234443701306260710852154344033753403823511605419382303943782312010549026930312174146756000067394749683628963392148437952809191683322968559853641210049092063549735184998613983704107896732070494257611370630658595539440815515660247357199270792020518018466328917923430567440119635245145337608851931523447003926127166508424116740973152920735108393488341820855748737310598080321839907505891530987655747701464601039934202626147578890687991128349916542192668268579235411865403847355466572168582844812231397818515165615487360350277553000509834915645433597009118928652302037089765338496605195359045560970468972558022127272384754977851211365730969857488982450930161698859060743322845340187732276139630529993750943008794181253998504233127985102470308660728852428089374959054303560576503259117718884710797943837783922320413746375456745269859005610954083646918105568083249042533541432130584417773725267013142878458962150842203870344701780497804427707721100605107354721322800874464897597269186156729913950620645072777191673997864067324464025468839118249621561484609234039938576071813047847001484874603353659150376725857295697599481457255745212422035303237233691594596097618569125524237931122038686531057812317684303386540269240432536660117958662414541609388237511416410283992563478016950926469601493458071214246761917693684939479214381164732568581301397941910645438959893850953993981894939760781040098049719490173199470329218866558132809254197106458334191842511293583607390380802210520831651923292743745059084302793532324332497414291030358561452798336799652440571559454209593282561962280270622041458369501054930832491921004147335958526202828107736632920818053811731319045200441464592907553035893762211824623704220877875889749689701841712861961215414233251309351449928899182404099996042530211894845488869944181080606887842723665993024479933694680557159899338698999822211300163654509515045871013260970510835665059976141238667651742505722997581743791344758339083458495435453280295636468486999304291745720617563914862033685250105542773341233248201119612456829312044672949728350177427551780887062226105143387056043003501580762504863922543334030790652232093655178830237052275990378628652838437751126319349434080814637673169785241232492058373330693583365517439767233937240236028224726987186099995732570616534128561211592426125102694945109151673215318905300754576118250464997988530000298526712908700289705096147441960325445448921812614426190153839868470052374918511821747528263383280376995882943482424133155612468646622118900629916718679985117066519931651607563045973260893342173446969786784494554969499116814858002017650670988447405678091340717632430748003992020133401481451165722323811321038421234142645992549951801791444553080236998344254475298875007800555846092532850145770174166357370859980292772931532327002055662780201470829927106806081246425084833755760506955417451523260824828018217399260373943931070377142353093222354889324449326712966966307648512559146464014269953921544276247933528202794850309005871489745532234688733261701149952645769865092569966059586116060896083919641659068621880574572258819143959147372059984191720920627430501966836506620247470422781792030187030479009732300487676312808279178351988878627263998708168385315845692839252316686516875212439107804237470447842927566510495679566001103198716974589221334637661529348810534665725285566070242750720281651398299687174718934340079522181621249353748748735492696072136947899039836191654419870491298681981467601821817496436653083004040268411092109807864040397425286271370169018222882878513599515063459403762681707486913470501110756858933879748170492967421115188979356950204149250161934862392809977617585487806184351423640420920004773171423625719012706406454313299634666459892442389041594608229041530162552053482091328383988720411369835796970085182164767894061725069474941748117989197996697818157224914080481667192379360012766740638630683660876303275759274576691787743016971383544333174736252908790694063051025702384806330330211637187806929363092741381679459600409266748764176802937811202627710676343447956346528146942658190177257806489095469080045995324609432846601213795993912062014060409729434177175333831425450060710008115085799852783048064287920093823407828697766700349057223393979373798618157487175427658434909878188266199871016831990742079314545074891984968338198206674194817425214614137592835162598004302164369506077280618691334046242768339466219394347276219706226269462850324302265612974367236975127817296074929604589107997690506596106401418673668833369212387284588366919894042885142616504030391741466491288944586264544512368429283800770751353729653221833399667701533850635877432440061491824565528167021319381511985474649610911568626182647040549649356270486310751391331991134919916712070120507049672793100489164234145378993709162182553824807909835288191179013476277881730701910605853968957671505669315363981294194079003103958608954728077433377422353097810004294633365613289636156600326543922728514449580419555093946393136278636755921705886539336497391630610912884870079098820379673738847395178167842732939958896455328305921264760012037843274353757846437654057384806931064358670330334682725628711117308608699583096000695763489307895566096035016606477530186203021484593918162309546908256524227301462349700174791565128589435129062794522292159809027690583504366985207415657028780374706413775159019209829613208195136599157045925223668186500659941763511810625340063820150591205372501261309433290204924735589443546102893653135531025122037662391657267441764106691934058912801987507214153990165526461746992272183637477913367535299137412219192797440880454186570552021850323931950211738044092170531938005968724406469804803147432704278271590513278764356461505564654510761955558062451176100694539619560960948503413663660666973392865531397289442434136897611118689202430812127512865622678113643323855817950784108400031595368867965624647032272365803116572453503822456839292908586048131057384894636125653911245820341713647361977774975692801064241635090169340801119788927069522916425684465670558447399667795103505099028018649070764094611553083743065387907861384673756471736143346577055109773496956711807344135132176589540216200253882930690316808673746220622491512357275509503402042732342799513718351027336240774056190272422559365861827640343572650855104844896266567336817205849129360477321424470734368689919031258912544673704685712503043907493898366550245514346885094603727616474105703099195545396854747731289085275158144238472752181014873101768890638925121870549126961468604876749334132140889130718672234647487415740941750291543068084603518141344564515661398680383414812468874593373077688052247637667451966263356938100602215096125379736317658553654870230329092404369457559853991588408310762212350501159225888321257505488020137220158219852000571982576058270454947905268965779783718738728624013259457263673232223009435127346399090020742259526924452754644935197602876077065423528288295346705926970050976045303655240567686992510714549315646759913770420710955488096919182415533930979395177129427485231832178871487048336686761579542170189677457637615106686002150654029601196611689998602941218727375663403105354460552710663510171534262647505681072893093287371552031783026257229472403838110262361630561967930759227105937018165126793548500418809149703919318100005918689440286534848732444167449969219760172893022127875877768864599625760062660990511718429543529829407360420369230650571325113298114415757991213544376169601163467826985485815658474899293094688277232098353799947737485479212179324558195037522710039672556409036641028264038441621559411007543061306564131179807418520461994432672023782276781112425651388520443388179008952925113790990709664722100733002947304466743624148728734380556927208705753037070729199780276628089049083617430129337016594821932278506652458373926308923126450128347240184033176851220169538169266410037878442450254921737472246542403174241587980529957851506651647031953475064007485298008216096628082323183742507907278805689860364328040893310719776528727962744189314991423180961010130366913260066718341231126852745426522216071658402104946451135469399982182650627142751509530848821856454348163613600849880816740941234030723223297971520660430535621487285038837335040018010586188147892428671637955810308719972852545431870787964059439015964344918323234423362384576629417954298936451205664933713726640686673975025079099240891890608306214804983746597711599335860759896510495779567702487749999663661945766427398554340236260803835660230395170236646225881226795008413069736245692966180491863393794971639821895982191372605644921168019164927049200613678398210262129210853112818964758200721438308102018224006702337034515933296067235831880979914864275377964900960887894434652276354235890353666258320474598783259132102607546524975501847696453082948465640140763284579500107984065063249995939445786309138229710246521932050742360587105815804624545501418041981457493554609564223929585839818915582294203726717713567227264121998721310249256462281168007636505332122503563779830408157721366216510553744461090690340468871808903335075969561846649192762314701640260023672977492683819532179027409810007709225721273288327409736291986941479442072645388127862085645473852558092260703662213175887299855725779613154996696544690365025804545160728490612073600200007054506369122304111642752369566017966661533620942871520688538378304253711653590456321945805875675763101489796571493588636233448417269909298680961795681174267982313144625387413760504513006316791606942364008813626997800602057171703736424735648349516121546136867595867690113011764073018627065590756570899183383622556220731748246076521803678536702441843218170877871706748189067072859342999377351939424459445421602653820551559910525127752343964522394827314341854752893695191979066269429832293835712107484480039827514626616262136614646960985653680536256443846653541706728534619287269890397516597150635810881425240464475554987463544936995202335742822770365055103443665214002393692265135378086612449111243026080879214838932207175771878215633043072873677045193399184360928692316859765249781249551438640478969551063895387846908337603975138484318008075269013644557743235693778338457614264250373931211043742757145917261733795270051064682242289098334377527871217639415850021174161769119385841530036955762342192525470473928275913116234957328616909318425534885073817672249994775751468140832854868329737567667882398069067805390095579756171534904363822406802426798710731637060017245472830077866303989167228590534014604544497496579700319585153465515290940990270540903030241951154545851587949214799893815470894477248584464466972876254806467579332186439706494316440475980008798311005162338554545790958117095031391039866051074768235251792888770123877649433332899196050789805967882602143617119624802516026036141760796219332706961243174976539421983308313396064055355868744772650069215447728919796469622687376535674289297945157013763966154882298591793042656370546091977921385438522988994312229599889333769252506117042711470914165799527101778872700632771396777154656659455837463447191312154131020989438296772561811245531234808898580736227531738736405584232684922867964247415011411793821859642868932379624946438356143951608730499962547075809017095011606551725721661484546546240205518610563033251690098940160861230877211473706806706961534825335391912708704315887460331104891674393652757907445862160443460255513642853015582381057777805016154102472700617910098685718063382214322181759166919171512621607381434938259800021750880631733313999867103729894266665418058557870395221354581608523457096539123757466779427427080612783693571740136022893995109981380591214285954398522433900657919623270071100040415449948992692126800249286170919847995428110393061600364712691730587158365270588822126142673349402220794331648718520643996479188044612898159025553489123693814572924038543748985739286499946716109445325299247929639678318202021923885836518210259982708591872982756642214879130343457478160500201134014611967506874175934684511810789057046699669052720335736621056058604045425252817699469022677198014812389890686873048605787361088077184359908857031986916169244431529035785209723026945456316587204921154059520465095089205937108027063726189994270657930571821783439387552852525008228341387622556392106586814040754941254934807832359248391442228540951982687784874610415314049073117517402421431663633496549051732063954901885805731743825762142527879889064230828847671170353424052770975238319303773082515068491709990381890995998118665855227024122113999365706392329173832828501522025186396374479188369080647601956818843564638593465036245827675479061310462404082474596183754097236733500961052080196814228998348990724985915065145440015642691571878344242807552272406436620600853363850316848384784357875212424918274278097797661812920196613525658350781932035513410382509119847599307343416259674273546455128878160926146682091338200010625290747038798775489318073273693035243119462870153351692691910730679726293252689103326755227226026990355358453200572835941484339108821641019884860553113912957919884681435482145072324774643283326370693765240994090965385195560503200424514115600733493555274969453945642222761749970453486913978403823972838972055029483850737380617003221589762194340258050611097780081680720346768425374280886990849480068746027415726990436402511918706443223160680115215821484685950188511164729349477941152171921403286896251443440910185672321312445910501869046216590858702084881976796092155456088055796077077690308282938526224995632957494680229932689306896415794815072102168564144407061128756668487417556296817342996968317975742399259001814277734153881456217506041103324245978956499236948563930674244751136068258789076707554941411454390837961502574778438051627855570652923885545407147339883299719419362736927444975987150158050183662070740249146025347183067296099107242522128363421750282398735454435839200917621170839034307373567999819796128993020034816640727382954674314093214910621164533040429135953672106043701609379040204161435747996357904576985657678494116741167519063033399308061692677054452369278313286396186823853060455548734670689583571696901494616257902227228962519885931676372697114928930015773654678967367324351890419363560260349857021768086620348297158036431683301132463210055270418238841266217063684718228152518278608392010013646475729074174756419106351305569316649338381139220230879564787184831563553353644344237983689971481867455736629981600051847441771943637612493322114654602741018432898701536984506579038986275703158791482424798747040599166541103872059931501857231622419336243314659772997089507434779743482866672493191709795871446623010320795389128553363896096022451833943438610382232677538011812147913832731844056150513222779746346452938056368375357104840447213168230843740960461690172686486300094340803049841422067136266371246750310787546284272094194784768903931090821219014483771533388144536896989584689712077036147015465904470172288764727903310954418934131239818929899303225282350145750332400872387623938588572614700682916737548300821676915366391392925495695554354743935072957278968714903030601563985243031228633610466967513467903389986376091473686747827486117883519830766173765441621781931188038797659681140107911667575622462978794613535807998279788934872964166489673910595141646842188584422472509981126300394271119428497916298805471226821613381209121333419657198515718187439691422219663280883350964615259765561182668171650974633370654856208352645119338320997182371844730182466663854884595195422354703076169560881261473357252176468722438411321877648883920253615845595720970667963771125168875603690851517505369179550261528449240170084474559466893989675999208587123874250675348538619587702966816779182098642127234080290944510486147219069969496220071892229847874373399346046307729601064548431052598830939181807762503845579444382678638694544311001370826438018179852213192773742488376459757312610233402249740214660058708612677446943445226407188007537967566311630086226997442613559555827645953216053382591378269282390176874833371879793404560831854028173559193220511151435438799615760372778577813785478405440857751885921371726882299038615510978291607658280278372626834362743653754912706953940575096536355586294520894240928880720760458477450927074136266813654468384460043134239518200441984683368272111439077710659401724313107867532201016088106410016501819719962183277784470152260189644731543116352871057794715861228464905601705068080373565608198352329727294406793443468008483029112474498130714464708818493186234790515154547406849528339516914425107153198499330252853494672348272636520510317667709359520793161091037644865746536277299446578152732956044689380325295124501475201236397970772579880117439203234124671570174595037632990543790879179250656525417799495754283576514090711115639568157739355139219555457289991905526208217977902931486757646230536649839252445035700071173466939813486874210592966253335205877298187713182816723134292908547958944527298063592735349671714771452464012746162041226079696739598740137074411503199417084093501686471859450380569158209052164843627220493420261161941526469746941323962767840459297233375748675414385157541477792379390308497340303664745352073586915754086476928624593980987423193520131085115126178377791066337102373251725739649592667457057964005186690544190512315728221229989593663923195276128514644210253956044828470478739489778907198439662938457511650578156603718076291155855796498316062248057643675105736109470224195132985167348223812938183347049825217854760838060944400351618044812083526512009007955059799634778504607426020605341109968123611034129037944212908606176672830873005304992011882601028424200047109198512484074097469006023368305683767346821930022183591091921605976416978123288305110401972178986985052150817272730843634577396534863766068984689477611431262764665067147909194724256512072852338453740334697143546974396674700529019539823884367917900423736167122779739709010009028783213514387760477816772139379317766420397121291545358466336357798428248419235568166044983766187028389553803478294405038164131147508130810316573430941332579056976559303360233818771020223789133893239183242484374227445427821372536487389718430953397857469854674163569234177946511006760236069672950639393942363338200092389930200525557617282851961952667777985231477126075872347636980404882790247107188341371822488616626699258866470470639377054867074607426698854565542747846455184328450119033464080378836806282824716267099838869645806750282612999760115895212622877721872121965564152031535517688057701885730606331821957318636754807531979175082043672909839483027256972386523589768961618844916365622874650975502599927527524768578712414136092766715346962593271918642827263468053928552697546483140178081558450832752833562556127593269280196826762952222189308683917836875475999265809313648882967977747110486954302790828444556276788209920561579148338107168852620944375263210008231161552818826486265722096501036423121256720732638737158432560192977287637692512662459198770702145734078457979175512796712850384843338600394129267700063163338716754032924639411444533270365284655771567042141636924770897933745991461457747965919118119934718441149993831049507499236487393731331968635849754226425594975311356463457150497412363376620480599052724143713823018351470347346063725618880615153786996178157463328844768277860244289982291519334050240589507542080778753680279522474177599682798501673865731268748467952945030076358852809700200583881012621202550380488603192833165406625902558408159339727921570861350518982184686315261136014978331869143097889400155748402856361174783395599410643305396484603103923133304429730054250255029501244095115807612373514739561929308064566332935715599164102998672141513508477314419741115939197544268300846965737017200305332697913594856454724790122815983390075627167419113575959638593642986514590523592005638425112277236299274109753582714595914572789708020140751259556721689968569825999720345493950322214794642363557048297397666642292702822000414425422160020864846985578671926356408838077156583345553660709600762260329453134816171841430269088741134024323243278934357053793004398956658138798794428228611545341351540142435970736803792370683078873242607352370952367038766500539377828318742419972905210867616036015912860958657343012228450092786820383649836860884184223731796639031897171862949116494566318976606488585495880376231852569956358822913894296207626432882898933439810750048704858842922232156489129388637225758799795571484647250345351060601069353742110610757922296724451605329959347653125899062543771665404351064318174943753158060953688073693922668271575772903137161468877487300852410147738807920500921020971257744112728223383888384043164371230610818955855621787000148360854520621978060271401457839322019307917237894009413310468458119135062936524514240350419434744633829211933075917799995364084818002033149918983146360851536813605014048265157831101920793752933389949573089830623552469113628210437920859441877064413619367045888778318206954806208721094531237569623212849896704212735527277677875144883019324213472148780677385004463983731618679095914950154539790986780692336656221347682574187544234779267979751897861015188254954652687788467223948971577449249060481621925836352855109128155573281446771734635691627232782151418450460800661815246372126780847117697153351914711871860524196813584946099579781529952426483216995418463183875722388262884476806265532740089159662673050331751199606674094406415728501160182380626126603524218334376626976010247600142319938531694847326214670826175679834406912095777024449196385759197101952029642158301346363746449006451260330469313618862665756623735161869516869420797541498772890887244871266316692903698247385323535608995594217912547870862202904051917071005364358414473655353526597771920315293312172762793384240791691195147997263561823339683404212884433852962408916496228314120721281278193103634439363067038518157937777790242559713092728347342687738691059527196267718389305171772114297921289913328674392418637122769756471373209314235787742428846859026115201042214758028406479524020055154288978224037362541292967166817055672747768684545912249698124503629321375022083038573955352366598228443472081049469063862882469715559000800669287330235290339228705857576422521316685902947387718286886485390049279572535160264561213754320809010507822058135726331154473828827815313653624902245416435015978767324864200094148223829801412492959401961261801193599972608511432929000357250962328468691728475419280990677851152054765282418878037496382171337279264579051361332218443484585008845726521343044609029546357491001008289249107805836651923396449187053124903959236882262218498518489879006790304281105867027705620558345827102755289640053642121439613527295030030430978707418546288260103517445700953982217233866896041388358431231518941824651525886723606143029281393878891561337225302283613432892534368345361901268868556709433784473547120745386684398626298497731210479495020326643114758358134775715781691843608896647422178267176507176341858021779725983846924083614785779090675268167871567783986472371155463629371694295936883120275485336542265082019026562916044547723866596482762799716340235753880616030287287960563512802463209970709456666448235915032224660521358139581574649019288513109413791617087397977817551225475682197329180370668883077401222784783795882552242347257951278312477739653177986408889699898347314431466325491411232969090612953049695901116042933451747619959610410545333228678913681400958306383944186566355617599531121153703354357514838965833910097339990190083017658921999484133691373320776889766059295441573041248050134998475686279025618256747426731400475001525322715626294014253063158818216188014637971256352152223061831365826191633497000222719761425410766172408775001665238672326531501757445278731110873320706046184804034703847307515354151638784293891177912022579370028590945107493318589212368869752551747134772397750869307218390020432951693856735067948265289115868203816831105476136638764662796696873256440982685940474680336795704889917622503944528818051532072500977103081888282973243216714996776940284819720439718597532029062190209392707187010485886359226617910169692043692694872944869991578782296123571829649658324130094549078150043604493913509075409685807466617163792025842037907572232673352767614261039647547484152730899638014774385022496858575256514711476384958741858395389860302119790726031249373112650294520040940540677185516644352568521985265153489591768098815458956540467949369583681929676631251154217392092614128563595644443689808124642584091847467934570177984298629086390817279286247103494075503478265622866124075256969770079619470161589029993795176716206274305122713458850808514178734037246299476416361049508193080340889457343000708181287637362655552137216101426789190921635307778359900838734925619450926798131778016239103426676246325195534831455056208619061265678526985208548902130409647120829591960725476768678898289690525183958635244160070277225716135446693400163821959069243380184774416489485511755683805907041705603082547588850827775166109217579589957564491855501187855263207090062566401575466313543720133299004017002006952453946625641419755929077059458799483519529406013891971228992369236968893302057986688562258904311277708759437673064622525325974530733232996754571118419060273392769088411874957896701910522639075330031559845109254731764832127757258340936057046686991592603642010690204694506715368020751082476964001220483534700294477541890979750885684775757717149087570134589232160454444607500048903773696913314214489551483999794055879602998810636744526061665029547550594999286378865083127734193685211378714597595897526128059677947257433313461437385363092252555929305049211129030038641970863088003712499079121330961606418052333201026375180074536339472689254455475019249135541738685319020060709384158898369312106360640000300491505108580509660243148931687721194981355912618488784213378735442104538593849634006094522428439726774320420420552891564761566031152423672216986985543421611598296852381219703340921576861505703057790634696411150768616348871827783322541137113281468811679896130946701805248002980951378031637800138143900170102209106513524823160860683612926008272012334697968890528888107659662952399101231399735462988152979169291770924274663813870399614542892798235547199788103835526812110231405440315818902669547881587415708233142209290050659694252339892670499448482004634875468189885098080865143829209424700967467731145743604683936535499558886333532264683638000781207259541803421276673524752736033284309731652449792800390286463114188962348732486485270943780439424427052408771657586841208359701765172408469161207863890022119904211604986428864656523980779281415759628725909308776398913931087731066724163302148436618378911520731639665898446611430801116688098226757184051361513565447625289112499377350534198041361349399222719518912939575156909995356119960691704536536571501673048123368767884058126699595220329922892249934712917348393289774017434226774953582570542845735869559416561889524267146590515393964877985940431963299072113895342013766598774415814351997941457508693044019915033101842586557758637437658176941449048493227359697666987332975644295492462020082993681489834911445930399702177097337882158607779285813465680459480869149356848241359818592013261908503287451574419187872837360729215049442643944672201951237448986094968341435520454354214023661767712867043203301407647670944687890148978605747553845449806273970398350517806025312550983116639526786502979898676414957300305977835873315444835573501426276808612145511814682375531112428499659979989343591614079628385866782895230618512647348253831525465202816242386861260856328266693367059675934068954829156101805442618475373677341474556622336691096411433516426778800479435582673362435013722268744036458095822978272852717030683329556085513187452311288381794336388928779664429205005357476296843075192257995411275216927492280862188862278942558805591649586500671426103725375252537529703935548782266999475648121246288628040127997973082509112386820992473964122009190228293930246088301291758677668387945802336890197589770146054017686957824493544538990995517109973564008370478973112924557604517597774879618161345721258464892230896741527555648022967989816101209985827429556519349443730765844519559667923255552403331789174971705115117238482281183584338528529801410177375047176998750438361543792070330158380000808278077604433328582067985821033262293175427821011324311503995915339876477038602643286910435062599952672669030174409579321576210787564314263507350439026855246081393761353714590816188554219484556871277734012071280644013317487760327488236221324344014813138937265415155783865537816712530056566800611316888725559749353460890931910174573657607948057768531721626110802705419863945659569619613056410950302780932067951719458381500719907036922489004891762250456707370746693168581587295396136214224867259226272358486790589859108719201590167465394765274338990855075145089515278905777325282981916504495269865856339654728036290805746137656181528286814746944100039590198305477702366754567947950577939754828317660235418371275918900961362208195094527801033005037184014617519484869503886465432268606913126514305460959348691919580516462518020597029921957909129615388908138467288601712153881541081063461261616168091435661662298422102303272114366350935185688371396240721213199969452070476507736583945943218045589738772614346174680293220152754640922257259135642433166900857747181643119097714692628357536973034014964514066854875075640842097009459457542299193849426959302221327851039165644512603045671629178620937497117451635715246820986608589669769908679355038188775457297353873371786038542384024464854589506895728745628456110989506050889735948058755936857526874048062772384576414041401715147711174629433016030810047202540759907195272887317822567064021807374464354724422738721017713493639452083780010296446118489109123606508981076577487148063903250297731659054207385772390176561990993960150846681522228890160936736495165709661613394578607950153697180973942736591561917093428078441303935464872226019490316376065908413113976048133377718686001925064756515035674783992893856404255729026310771945057800387307168796305426222105160668468885085045646789496938262647510897758513997702585360915022434081189194278119166803372502709359290067067012477382650981770461545930536342897413333296391297012484411808925724390274264389143143085868444648281447937547669059291453542120500562540589754594121856277081450885492043530336126124917606471767219892636162760993851442329797456044196580590818998909391138390662241047340002191108007613127965974320684955477026863158177681741840469912252100547084037024943291813932037052864165066106811619514748745038923318437378047281397452366933094986162363082313489577787825059482562419632116808535897536632394643221165913106739850383614234794320575691556030064536556047557761926032444465214720266918334067671299598304995427962512957920604538507451245569826407536307154129163294647456141485651613692632316596646557809752205994029918935452987769690182926613194307767814809927406592172584696149810198927447481967494029349357024003012035476504699977609585226968033491129532026366845654026226892692556413066656369036497656486015257956147598537712762900752968141992210727005424142454400157790748670462043243736887724322941576058996579802993881876246616006900319246094913051669431397429296295625107764319819267912778189562503595349389352964755293053047427384235985626884122283848084591728607803028658377588754810368445943326982923578327990477922368369437824214555210705411875282698052953911735966823015981845985894661720267291000838671762796201446640815276624696276745059811978407439032065601410802925726404950370300166983514176517597042560995378738519481448034418552723795582833092845027287356886880081215114053543032158240595691704520072054069624633835626473191151725973925366018014824303909439008266333961071552440808416194948636558409478108261608966310480671009784663575088526926216525895449827814873806053562453535225926121251232248015767824424579977150169555868364917425458049186752602475215126167352614798593610960972081334598956039145340561092407280921374672698567441760506411616111359018873593303010465901624599223671875879369742720596587994939238222460005540203396788472193315508155142485407628196783234165514990637945907666883474186782281258776306086596028087363572289599886080784320288290391128594472462767912778702302051848739739339164648414681584170173782131995594618657363480098675596158648238043535108064959134616391748037242054049929497768420891381352893894774811073680212924405877162248806256660553591519937365671213863282099661795675335302760606574846555051384245871027437005652349957470021247851403381262552342417903261957437525100476590897555009938650789959348913635358569698807884563084442077399208265490030210805211270888312295066214459362970435888209353574776514036329023002554152196381099975594970295606207378369897902937306830383986889263865831615143761539800064771064141947843636895129936728344196151084817498306371570976185243613611139619396048448328241444659669141893753989570242765778045539072322110537102708137185173779209663123391834105015829110683852768470621983369441383704070339754982545585598890028986365719658050169551818112379327354547360117786262465235637883807081193892809785625089363391822726296726351800919580564077414154154007532876587591506684320858817801736683644908588088510307938103742307642708787270872837388663256515039667537595765872823766362797301404375676682540118053357310435323560725378749740621310375923240427161116937792222333352734076977975946112724776446717033869190014723091036389248666508375378791091264697680953513160296487841761110157416886924072883822748474977963903664120144516463862559175850950568505686398088450547059148688164409714122082379367929233244757157356737032367541845627500810950720668443362088013595393796106815575936419557919914727264245927223628158127492454765319196765135837449770023939783634026870713484374405241113006569097332819928973427015095723076358075517636952498174474722345803471689882061927450366271734475237644338799680937429118522905962320541830062572708219272877122187402912885190412188523925912871070035571936094589544335005912610966563700527166847646729675627830651185372125377348666745028462322901643261440402461500712614590687226957935744810764095489481416053798810353927771977107009382940516995173962001930106072681042297363941046459857297368603179374783117130993002118571769917350479222030874544038066980813716833824422024243604667770899755549956179142735179073903856011653883120221050878924876014243233014810350618420445893492328304504805310235520703351469374916886662805324593885945759880626176425198843866340771189610672416801863190013308826668916828327106924693532090152924689000406857599308901961276160552957550798552579649004620019845899478466580929185750439149392065284065960796132801844217198869174416643261156764422282018976975341540454521453594660942465692532224847280143729721403182644920559002283927171276425948897037726652664397459562979240887187834837490385450835015751432880950091735309656354341474180104202742078129308014054509236634140095885786635497870394398775319900921622054514425224254542848818158220917125739901937331059195928473635263067733363064433895425056408598731625160700877167064592695045098688531846624337973740527365984124195446442754095569218190908403540715706430613910028716900035583317362243555560778803956311138435419082277486659424624950578137906322231390693923460402889966966579033344345919231502977013428716918966091046599403050796321967972376535333333836798415445253119832917570429881005216861928601084457880857487610560997714182353616664492388012038969311877427438185756655160114318533346603608659314212067281922836423754773637208251127695105069835371174221452660485940029616488950832350191900376443751874504027144229408579765302091488154550401626329175147381963570641074180622039934154550255276527222345518610027790460295966821033616579787442589980933547683796526660803717728367604038069104727825962812321364197525729065697855780469172071139000646402974547116140240490020759963775582106267478710402595056352155923153070172985645901919374672897952806200674678406889472307054583382116052069775599151108854569001466872527873849403899736231559004673150368611283836563583215663619978848848105575610050141695481136905586334912557163177958395507560983898064863430703201361186860234020304629978429448568470092737248545564986773331548650390407358426582060918052071990113014808759451688601465132929310798958497958815378180311401364802502489282284177425568932121021811134051140257547717564706999211267044306737531864032631200494712302138042627300913723719092643985861359211865906982026229770005239434271539982424627190030820905955101721973001656710887776485370121352543088039236294311171897370686598390836323793626086561374267091228367137210912167714765820269901765304956519318810332850519940335296959042002608392225328706367757317295144780219604561467256807925290594332293638122686931964962855901205213225529813578761268001930904991198923466335924510671449997260518966457478082033427381208104369964884675098290373449394437390226835603113315075619937589509008346829521983131389003774851908895524941912142292788011027548442081675971265076230631552352977006542682905808781685037115531767106640483477036885647229402842128402425321418356622101911709945969708200006047188721309916867374019007181395354903340218344558005380136207935395101298214643091847344853612150592027045171311639318727683125034782954427247725324361067643143901079230776816531139677918200191361320593923761463045624318434150171908343282173697464634060645625575991622312622544869321773977032236423706012120513996314816471597906402743537273642095654634457254759079006848126142094967814414987866438563003124062750322875696012706825984977346039353543714246349754752909200075358388880691593692280998643523846526592031791983287491235566285465664646061550546715544782732401048416060464084774689872293409335819545805468727423375415368226923740840153148062872269231991953476849307228121417252829488118464807683032355253937252202701623528436895366116907886299386522930743756111609090978898581197912366723188389047629674842494698607541453318751532537502387305275521658358497497718287776012854643083935690867852652416952179747976238308288848287192131796828133918274721200401784814492562560904263424411772719608617150441913733301283441584773301968370109108096628790311002414211558727859673389916670069278366639569917105198403285964860987273634571697048036994705579131667301458883196252503184259521701590411393108722999535911760595628175559801279181334437841475545985945057561475380554194448184739033973413520200812121393974151238764673796127917228613065295199661088114804560592851296168461113494612635759639524506016873080780553692272720075193118704430923545340694987808897388367717724711069451480007943728245729313895937198134688274748678735193895160420450244703011806764566326133467334160812847235993054974595310642542641401143016168736514841137354057028748768696464366266606479631385597089648884327497600818190111421775519731419362736724160521691477340642338913173477586942999588576142671154612459723874460258834937208560273185571790661700743469185065690699358637011775670856490253360484361133462412227207570443163554834804036593200641062072426372616317909192511914917917085686767031095186582370633333839427022039668608222233131312870951317560044600697964245066533483689761073657260824877817472979143803785740059868470734259427042019890000050998509742405489860752234019774462183881129178805327706075301278966674833138487829037713190323224840090902359364839605023151343034808431093750491920910064076752644821916554731934006775996181898587113928337877926907965609303933146573588970392122687055003051950977799979102510883704111385181407088489893274814891732989924477194582755085228263516804033474669748294106178645609614892244291465884367889409826331312787067363256633322685393290801202413354129077935889069467965965982243214979817882935118905301634388419121478348843393405461713293787339272649965795915384008081708963215888735624143325643438197189940694776524136900350632165424244016994461760820953995356887340186473002469287928013496039673461971869571551538573031898094178165823442170284687773845571327384069299485727975092477789888632358832629414986434760611084345956836371244310951817165228243109364113904463796238476506027001446722780385762836719280308883674591030454904133820105979597703807632865963197688380879651976211874859297888406714032221518674622858741230744009987122207215155003192959737612512387916769392452807749513656700118839889249896902285696317791791906019914199410423673281796286335349190497950599698612515429953697316727666983027836964901500056613362425435374995721308339149798049378023497040150789053285279736268334341637083070655317603560083622092256576987792113321466558083212150508626373417640901324305801100120945554246919268803479009593544179594249792219006821037587244282129631682298777846641140469547907180454667235935008682771050316220909895868014282263287949229655053264756204246843632038341574355411563771386637556629540142323270942386945522141289862996927248762119342831153668600065495173501265791983852875359904773292258314621476382954549154456342127184026551558023654541519511158266292481471368277129153702929170550071496144106842845013128972919802781070111672579422029706862236341469101632866672907791361630565335946727602317063035839054161121978057404234867378342450969880196862486861314317961586397916995184483292384628158011753451588115166196804014179167943528494440434658059566836744679435177387462337108393452471398601823608293132308560614412106939388886294973205445282358762167954589622269547151189993305450442471177537200189471377408403123494296466731196620225009171959914333579331132770173725618190838052257819280048511513462193378019566463927180025146793641431788218665569169758358851287629759590949168937415531239338572719239057005770365242972154474796561176344030887010992532525534945469579457850278959272140989084183548477646353901649134932529759740904387989143774482952574164320457170483683314982818542389599593446868635750703054206389662730914149206797393370840526303378381930347990821518555924443999674089684706982228402985584045320272658491906867298361481686587411741661184243667959393321965801476716682888941392971600398643105568126804518824659654932458925848759617212052607677170243512038620066315344149357054069530184907621119119442169620389952697639909846532696076862736195207444947235252347417696057561525538173494314503296172214147977351189883705219406794444187811114574821510643106065968835861654660113558091102298149613494108580109581995027873032319389830282667951914756276694133626891081158646518979867919970863829868566825716748052615661505429617860097544856806400089598663089522939633773748038381079091890002615979851790027949654815961469501563874392954995425565660036715279598893423098365908641126706722983462138619106199567403744396505385001905199377773258571913127173025524645855201890465995877836478672275223743474054998428917245984498258007404909517539907750972956325536042553502860204887754459870742794334092396384396401996592699709536213482809307141982191658361567380890865635981251089142049568244431345453573768235472890693720905363883975971299166867261670398539032107447525115335199727321207178151024178086117718750507366170192950354099214429927475347934706784633635393565970154793204090916192417124916344428653807493596811143346696241615994250972326433408709358431465826161849244372039877378007010348805288175677857938625428206537468773643633291730513521110469911459889440596711956865627476282062708781760796475830194362861738701231429910049449417222363966594277106599823225779701682294514572911410166979592500199464301650756841854823090521486733720940559243720658022015484801564417117666904075587986146928487271490058749619678946890498484575414386266381188697210013783638896271117249227170798146301633948780995982657027289538748521736149654463663555109731954529111948788904560007173448166694689881753162680944332772123213428136421405895308645865587602744921985773939045561590654072989056350498808611739394337055973381994346771745665529319047880646985821654251670669680126419167291164773659101880968575831674413243920878379659104680810271428681017732303272006946886642593453189776527206802555681762115807644861505166971734027458142646100522843981704187581771585269974187051370876908758076524743294723720555592536503127439909899070709138474129238556919616434168973344637680366453722388411804142373151746290203249898437394111271608015943118181804568670294706462121444799439281617171355196966914313542508710070543314906545465730543219821710009012258238667010199056839848556414475721769105418295143136859562051926682798717037216650642272496380960785542927556110612297475426362973120542094031819719964629053874909570757104952632467501508970493085607221753079758319914553105112642729035157193626577858772906060608703476971040379978102358482173755113510643821473483527504474859947897748365229007095582285685154745661427402167932014769822821843400324702047053402250113723142244989830772874879912351696031986378194081641227599619030507900301482043534934183207421619304621881422992381091934922189017947175054582594254406426092139122559279089217306674066187922171424739813210145225496259403063184736171704994583740896012492943523778964851145665417448153808805805635608474456561037731263201069591717161863410208964683741707696048981395805690812404302381744563899550629102484240034730993856541495876442567491999121800550311028502618319408174978412493714137425373932237212141973237112582191854074000953332740019274506875137900093797350448509459934514628131752773468388940238473918571392169431839736015731436408970504599243321925691161054245841908415665280033717509023469690069584264846659395049993480487373678991088193304196575072241736607669743461602356723301617355633238997646595440006066901314989756510223745624231707113597412993704303070630341558273101431176990481348573983039433632866665765959879185896635093351394729994237467272604826184178074617949929303604385367301816304556066685453991868398248597062151133068923425402805076143310907047929041969020290467984067714277016112734691146407615977615963964211845385947374774424252621235797709247017858221694117049552304618020370488699266300841091907282877137928530665207475727581713971733103310589837675168910094550734849409094041928859047329559869867170631718901344240580774557866397486154132648227950392575754942832049892266906081512263623443311876160263575008273618284565552420709727444665651886775296117477776355613978205137100640048294825502866991107310866289702342826101766820375795726088214225715513908346749955133319357022313316061631938955230943817461578714104583919211072459223345590583683513730715468396082212281385230455753074769938941658274516899269227374887732666638444528284413277419205598238077721977115798159390082952121105108814256968237012490547273816068549167651688624945170667722869666735093235455025196997096805387907124995654252495119758472103514123404195606958404662621304556871028814652276000268693791188655712854939019920971159404442345422606793297903476310140390737599193716871154200889746082457304679602159481564037399398059134056145475828668992653867008020936917177829147321241966352220754859063206096841860908074833641204604560842256096514627123355183849792344503399913588348154362848715746453202525066667942273635791869944987316854237532723538794142196985948203748236837962133287507784869559465844826140657097944874953753482247899607344817715363885147928059133651383736550290440000430722641045298793815622458487423156236510476357866082767660980581616011698733898140780334582986688482343142544997420430306659037979327174229563649835717945922006235144297507579620416045932881881004469776623913729941653670382812000996982305316202990923019620155650486726303386781287616995777779874136574415816753741170344438507078142831630309109738766039270174147184897513629055379382041838494696759187383490159955471601446549178344187926607161464200295722118042138685365458375690210392215054519680950856132410479530237071149517790187715753127753049444172316735871765235805476138009234585716803225011900617566428726796315543835698189030220047272150012263653230855426853461878312114977057642997014567874689621652922570250404408123898163718642257711124141687263364080907838128205159647530336918307813391017876757010034968272171873027261476149124525021791065384225988048308657331899714354251058287683781992441125619620866321174887047349974705695615117400166233173991608801424163683603971440200033100885050543389284365740795477718069192681570878337284368425329339152206381316220637283357198521875332155570636214361854571107124866895345571658051316324350151473246377574974040904095184685191936949898285992124622982695175278700051049537075450915995540072345043186927723117353514336036089976280406357357294783844250842607266088880815635029273311282423092932680022983309361638361287360653521634057915940596912094600931035577942662612417573639073564136650543771342916228766396954323528078982604912825974620678439432828692419446924739838980463575986556341678777094832531052858097852204589584904688935189302995655127177222434134835704236391906063617473017277781299543402290084588804060740926417637486906966964019467955294761288185839074970936916211286423282494093947026165324415343383038081908419335556012269032193766517560337315387015427414772982081967726464735003383836454858723538289388536424180502616995856824937390718376565175538502908255018439827430816016782388166884429191571523878107905761535523531539610229261177622812038960536422023855436949065154164362480858196790957050755814046519153866904465110221402380803698442677696938424918785204716455466781093441531718918428786165264489236968188431790841842173335070123966227412605952752103914997129002577353618074004158082163071052858569791940580803884434348481071378693908425760428407612831786382900691081672890218890396822477169547374439469058480415481180624333697507344013011683853180553639667896052307597689487512216659689587876911533362345709963208872243123370183199560185803971966146378986664813420602844462542992979542649667278300473628695622485500941875606429905575068572597897266090981298841725567665926629398519162290311982497301014564610454396746768075352077508611391975351092966359736860604639250637569045205789154342444586336433070545869540674936452013317159728059398118768149434064047891435547856796717869984972954349759195403992479758324774145887525833607606100144492013536715719476029831753725657994719466215117769234221642102640801409969929898420663382119846922011713208647068368624059079639065825344545742747571243376472600573647445756432789210619195905700755153350058852715315431133950133441304703126418597553827772995942176086903329796091898702432926197739256689702553017814329259476723466349335825479765694602734522081426164407275966633925926731991469524652022238204319227491384394584369255364661514434286777077694528386048436121983041305815035897311720390435360134893079367540649953256996628864079125477737680005201395801961758583742435721045561581861826758477151992076014824811023048768932786035785317419351143999787180995231123776781627152538714961717292396369243251347155104083970580574413816481868797961242584982189051181380311245785017952464506512857898225301653367543974846392265388755534285595757713520394781529265650697900165101815965731894354654464974223052811358535238076400653513303502834551131061966759012655071761638048888366118273342293673704699700563364320967050941202487548812949780324770825108552691499222102474746770917118974957840079594957664733587648237637407184782779264681692547161112276820314170358272010965199323767774254974849870332472160804274467383274976140901542509922396455281057472465360446888268621569058973059218277680872220432528826561985323359178670051014957547243806761044841649767117068999669518279898637771463328447320598754648728129810159317387258776579050612936741389890402904418891911017202544861296580180680837035176893261522485936266558922420440121731779316137166836553390135689325674241463298534954432525780489588204145528989554768260531035725650643502869261484478968213304746552782354928721058480348943218156143241398349361134647727896211570277986485922927282212802652357532153974571430043750116077525021391073160088873960239368695565087671971807390045080924900161501993651731001283852439772168420626841635891511732479616872580861988725324965895707173049450686005178995917587236121340599460914139673237148022022852996358352441137084403263601404264960320255123021933581719753373022440791105874812996017612132155667174564981973623676200451109315359976842584433372331997456366679537308022191557095495586032771664749767265814870118997561417877763680886021947437735095489499077911026224818216005784607270648402206247652727505464193333089683614957541607203772860488197033839335603351844463179468382359641036431795895145369025897739139132424589436414239366753411695161750562144510722565961191578361318555943291870856270522064124362656417352762153624115749439895666572530030784698791962810903378108682245465129959962729221427233228877230280127752081719503949270674309226319672183147664384250041057437472370702986909009515113683854317990803004926236641521840827351853381924810133872918918122858402795285034847636272701222413788163759251317267113335025194465654645705424109641320906974110073930401472728831747047962163401918294589351231887644754129261005786024475484633687014128212260062577300277903828936499931209967468548893929481994519307579421060006008771922124899840619527057736516634036347724771596896987572168064834028686988765669040013433002337712934217800088192732549452817730066887920776548524391542896745431500023242168280162422418872098049100759954943038871903306841083295574490784236492109621670579652064051730730706432858321112869695083792865168618399605114106095025237660000069883702745409652981256585596015390366233633702878190290313330931309931760148048043959513856815033421090895508575908898715226843257230752551186742906393428304083903396922901924349285594105521803668608861104106296986257612655701397324390942374853756486926076243221196316491075957223834240880377207803683004896111155924814011070879921831315281138140360926350544326236730626971646424707676299977128267534338238482780369277671711086772163319060686751677614931651399008626442827402516920467000116961907094862331073768906487834104893370922636034931908263037879908376007281789883702060558860422857403298463252075541148754971579633859253559885512067691184453471624241654569694627454687401544803170192658634408548079735368159397274710353534374508896735180800013941756575730621051752022707578663592638470967437096309093654640873821200597859994412762713445675638808517179887693081272879248725523902860902041356914056531811656206826681152804408716805739153870771741537353364133234817232340611374160097667777783064995728814716549528967053489841820360659200885992842191474164899621110133688589262311180941963597902943674068594719459698273730535348462733880662465562054861410364845523596698746759034515033098513193323505505978979695499374493334679380486694542666997979278387990978885433425548847218715115940011367940764146560538765108388691352342074909923638845594029414249729734252099058880175842566479893885000652194436929509452465924824656531243115442366220737671937790277983985841994972520277837154281729047101696669816274922444638103770192939879044815988856160959446020678402517486333143791286339068069063821250356466047762967322967743000482534457116092060118874188722950506192658061224697922933767528138405792331005452684932016287932787329206607666127198159679292303447627038387011887115961926450782873108187082797161746697367855130914629076212892570944657624125358373682826212885771434972142470304887611617815756397684126479101431793668955316395026510354974645510988512339282494256630713905377035991609957169899971319610209005889706643125950085972363103547914813452786679259519903692713905262567592973246017147893509509939992292636511085387726859987039536532592312600712720886559551682699734276105416831815041844644513831677537839586657414485150327950490872750614677495204044132753709800848655651080537283578188307400141149133959648601889485440881537120097823103208610181517207098797268600380007596195353212205221545959358496273199576350061027556841198746188296473530701160997095986819153299373847715084785456439456886289450105238694993926149988407233942471172932460530374313879208337883970994643126413487672184665811220519862298986186273932904218577734633708345360134689175032849060777012795635965368640691575899053362516165915069541121723466187418546887584899743230952436845320476848972451100985884299072786628389543316170948365665742708101386290107725257204510161210770031516005047533197634793518573940241258247663653519965568744062398919274195437503130913908188150540963015573126608219172968677894264425282955919566259940513916958594608632159168713288257074574369827311745136777687004831199636945807590356106442552911537542541177594595983657801145009916445795022734111044969620230749455638831630169258016152168430490271439688661882918344358011450687992217511821936590621721141099729717488206637040079893012347891144520527607634757270918448434561060922743173069531992806859423854514915423688308281995089757157176061855604406471232010972837516200822161087964897277599731248293184146565642658604607367151432458008569458671944600338672338444609667195756762072309172584367531795004915309763600295749278673083662808654029544529608491744184667236247945414842796245412819945279552262374481015870095652358385643949839877134463898633848022585313592140033402051497990414115510719962036097066109119901384746032621317369087615795425662745487571386263940762508937994566386271714342860875135993226264534397980120901810648828757937310722072583130055224584947249709624766741673664635213232103237877105362921717669689546516770920430835172157853836706807566190143583738702624628506379989774470225943520929760271559703404542948575227420682539166911534673531471191992217384057977034331156764933568336277893710286570718087198954053215374745565907401343092745485126609293791304553722098383828913430147746507094512223160599635925290610411061911182102937700654002637014631016628733319972279456948745677485688519452050706229511720667728720829569318880666923644541375181430352231024298503379164329601744702814200914346361397654564567977748043369655710004582214795050306503456950103282825595094493885794254162856063589478288506106633999360650991135736553590000190607390765654601528339961714449385745465804862730433448847716625975826063318832513079095907369748686815337022263965286742579475065819469067316787780999158561009856988584564690403850812715767186188585762344350149296420245002825258094284201303353843504121628014662470331893531251024221847582344981925069553652700773669459249363495349082513610376464804822723420604854728149139946550318230355321671042791586620728595774340275582913250485664390783744246087716940983439873753101626635444491222065437292549400173675285611796285165404505121830862991408367231362932400532964759103999954448021676461908829983204364987825312918225582880623386084769406956753210098774691124832894014322927398789687579120649190470537385125369446278145123174313144300566738118406856565355430328108728009956079114583089445387651370651675219070411548318344629045045232667176937238306843416808435388257751450259481284486503439881446700006512503656970517310018153512455384387360494146552873463477545239924411050368177428741912905694544206746001105338214103289014067465442382921090977760746578235110191691809158777036269828733635309255754603690282410625465736647097044424184308328762824429337881119049851411532945527755313135377820409908926586093237835079425610236834210364866695624151513359959534398157666931426618621604261608572101616440887304817615321321039676761617678072430677023720762368561410698882373211786454598301688699517121094179654675367077965856049533015097755529291801473884835440170795343013887699837596610486827718577291148752791484386711496192873087844230195051092546765350727990302189514075471161139983990076587427904423035456622311256216366310047802854580988128410633339778078671362944701948610396408711531701589917998631426354634733612981079499640961509277950302897323743881067676187682947578703802832872048777030055457691528753684684321648552653104660183281429086847508519181769182336543865882168729596037694245929016202060846886738997626918409984491352840448398972840141162925770117553008929703283439808309493155117803084169135012979641824635969753509297051378570373917287113768171282539450188961470286434287752912375479133208260361190641827344676353972071883112648258521926210142112336617172811148263772000351834918285378330074414969989592036237348226512038328431130480318803515582529785713256250458606455858301564162331273879651980803599068106193672634002652299494994005322252834751810067070969327071165673373122319711241193018698461876769090557203752824409474984550773131441394296372838399490424088196747394595154355255625459103397140182047571527085220027009867522312158432758953794724666760166440496497933997348321052811238937435334902992400392911643517682608848626168623398401529620863457041189320485558097516470876967235082308734437768531210207788330128368267910427914579392735244890109235604698620596780019791870912466910494314341838030240519973030128670359551896046012634533060828817887855114291014621976131668493333912904048530341854845745861940729414913365567411849621346782038989969811353441314459483545742304420576979140193601215961357036103743949493881691977456361235984271680985324463582631456849211851488992763345589784798606262865263538483444303125945946156296461682627565996788504297892661952256685066864598240026836241638552831100579206916078156482703690177055778845897954999387315778579488205562860235023324463727684386824345969493970804201375614133001541002441828560571288947035819761837208066990845754511051031793787521005227329906235671671598843549842380167271364119207238022305987583302568717682399327321423768244191438308952430313376700731563453352086064819644035110352863896828890686020320734762919275760097103715280288736942080090923254108923481960383935824110117848463274609029472062292813932307965573403081365075674223217582995222323649761620088071743526135112761316756649776661354370264804381034454119047480413300472182189198711594148143034117526158645737030396362135374985494865854839654735094382852968249893391998112384813803948378675685033685282900348091388848946505722642714391023340440351065452152120619033337421592050566425377212415951666216574866292440039916915540103599738818737407344200608651260076713227319128147661639063793591552136880351848233253640117842949832630772210899195449681934633155151150682461814350687677615468529625526787881912493423730381891257280596334956886352987391064736221798162639792098867856988712223594956116909436628307313723029878930740181214769406203487763044291227112394292602023646222937263472291054938318259347133816175369980413832971911167678303281078685011259011840192972838748690854165123512746868731872171491843855688572225933779812750623583877356790077673522096469597899875160358144346980471573829076044628272041931873208005856646540731410036362854685982959579864840035142375679997625903984988582349960234662833726697310758815497629889579290322213383844736650088996616169219718812234991808377705877642435957988400992327766197381580114918059818650937497620249371715568384193865915188984629020521796214209084158369114807065223600037219372879503578046295044125569633929901066756026572319585600290691134686346822257970823496328980320328228808358438865820022668569131606314677204701113397357334582764176766791450036407336805602729309123058373317609460388535840329326645085990618821156805319272113308808548221308739306036200669251570705593659482263566531187055490114290429630959038397175199014272944858776857033997085147210519398200019914277856964511237075799311514173699800757738285031671732675928266852991523356023861739042316492271662468513147516391431794939897735559195181108436084014024910760887759831679451652112896849420989255518670004562037694380427814094314598347255644720065342114970735976733920388273439840154340232950223450785976203731119720404343866329866346451989575759293480226524605039245961290286274306310193785036923972503166211224744173892763391660257517224694243043474657405542903148417450278940528925357247322823632079119869940239327022471553997803828296986467726123348304356308829529947127194803075749822073149101091765219451365768557967225176766248134883965129710058971163949765669830853714104986130750870997906121274046213213877212861116770411930197318190107651321378369153930240606253581027438567494275863882810281857850426738550928867580137349087920736905853112377712514881889704949062259582722023421600774761188202082488326026063157704321442878082047355009094304079088928706281373944672024983191777100818278979976682170258474460881825538789165865139743293274497326600793058182131196987144757526765020336998376845978390527413378114075034113892536919143739802358917314855469198521809182230246816201953718949762399762056595408607419367745249399755410309967135136905252767240050604932058659116627706853108006364583803953559180016458268686857091718030371028632062878553054330831423194170079420898175053553853146599180711123336515202262637501502108140864942509248087282504301078320828261156059556002046333976354106886694726178685471841855075432347437097221400405526345351553350798582337316445017469218527932322647128644751028585026333424703694676738421051838248741335652969154432694099170510774793138919706552123464349432263786919505241041920735454334746015687549548967834547128153353785183446338265437374697954407761329475900709454890924205664346425326353082628375374301854368126881100558483621338833214306799687457939363420195677001171137738526483988720940367419437123302959373595437231980788535055584579382941740961340217855473780465814311905777093474448305241518298835327912806668340859501095756824044755879649842033453024595346260812782035368109319105876002148887480490275442211733630613560493870679157638588420398278505325858760099357015106287129391900712867733224504020927128126692484981140816920793909066366287002915605656066339981989671861508763044690188971999532342109310565059315623984162649553427022157301589595931741682174508614723093284292428630818449509387257106390719057246356260253921142952465570320094807595154502568933677219591191129370409053530189878962832413204397359704109634384822221373337980222912026266602779373079658136980699845698662846119784463572182324432533704131991606194656198860968403899694522615206919972045980856198202365060920807447197508066898864209928428564554889455454589789581704288662743497693615804033201627941033015531640570078014031472282115323373726945763760817621474337514106541420110916900113094576123044529690785548409997137338031043906095414697578002024333483479998878079349693172494667016614352736979122181859347737152560580430631707390318228997063288927235333884057826300845416795202760108151450291487439899776303935980136939814339177258530500140491248835357443449040423642956599809205777922380243972317102050297081404129392400216248919287217334913470557938097173890206434584130185943974629391810173627916039859617636003983701083528030464473557008391157234090720240365395606810330252363791125241379558084776272817325125936105990112753069519437942979125101491024835476474424109353957718978317190700805825924441523903952746261027081995429408259521799240079299940393766291697525334485439924905245023440782269110077961234790423000460996874676217302789348556821774017770958564320195972185315524045666959214777061110726639429455834880985389966637389258801100947694270746369210704238977757946990903098588701048439862281483002731659632199221820597150261888959070311887523218910043827967789170233364554003417794251509131777351685610330962792042327340217404337986041193214291776538939431398987157025569822623097747756403750421444799222745243651312132958385336891821425239339786902611122940743893491769171451570890283601168113899479320012329927412215425852173621052464259769274688924335944440164155400009284350335124374419210267720984576471765784452834877752566934614313514646251292764445012007468535049053742660366919384706117661569375624000065922307656936571020902952112154933867816129646077205142471173085839847250916653735240302304814131156108201730372982104739795595203460030862115564159969215178858233440198604226816255378088041643958804857671395309979593744942596142245461741471019735888151089382490997031528994988717189463052300663498159980017175719929279049833312770268002894039890301888904862174018727793444858349713062308303223189742455937247578157471101436170612951069667575540769694833521984272373958165231270910156181121066258242739660090764685984208176324474844154145306977861807876340004252303958388119708071018721604959913052607094150510341119166516867604302714360271109585068928726475979510454354437057969157092796303971788976312886497176316219643772017800186982059042721794637473549208178621388047332750604752624579123875481432007820203217075356104092887122110512927360160081066204319366306130113411048413822235624080377779863384243321781323434660126199138549302620370004867483151698038037045073347813917191013092709372394309180997171162459079282703116977709697701078201127669554697424078024011736089689081676616730008917542806972574827737339763764342444885676964908832596295831940981523002685082650379411772338656805336676113291054590070133509764230920080496662267244060904962249939830586319781590660698734696670452468346711731111031856877168357530107465416285896028794081755563086469356104537833594656354211332009409044224340133136571282070024731313164158934163391103753698237842384038919750759679548984140236524474329063291770732211161985644500325937395276093466401467802253218251935747576239587119252700497397323937792924968702834647742714091194350725192035452509440403037673636814574268752138262169141543007324340133164046983750972869842316179876737503950727932661257063170561469983866795300972957143696389605075959633156350247570781569700790471787366480521658843558401964536159307458393529996422157529993387031626346557022673236011030796563863387515313140259026421478232651607510085706665769607544737512088686316048306335816122556509507756436451850870601001154314406319994521014320791704241201954203261984817328018921344659739709207610862217192067982895558519284820546986182958807688282546553602067736482033203076084954303698786685731339034981583241849013632588355965427933114699899777724991395868130182788630163265311580049348687298238931324562590843711694822136473308477066362083334232823580610455946150483110309722525707465338210356502497084033601990926544487492496698709715005456097246756865642290511570652865896442709230434993958731940294196838730004621521402299684822017848552971336409133283776988551418906759056907855702427662675740173535826270776456203795487186613018437820866271435572929223383258078567952201288343813011163022223841604476619578848472845818369069098908700058280243426079595795746755069461671522506117010756524500724642570883150635160411038094719965620515656398077346050220194575370977724583402349031824454757380011415310171729742206778862648651507295010888662032619639735974380112923511452605045164929190188619805628677841019845440270752235236093688926256195459638843582863466110194154515708847635632967470473461596361784279136493324882046733651922894461931782371564324881888856552544551488581209102859608528975595658527930462378461610530125674849274720595281988664993183762348361091037237116955090841315265968177876304290987174116077646287650865301318551991139801349354355431784900861200466979005192073388474117431869537238719808185201532518765514813323228867080705601016461764246843125335586607657089740233021261116313555994175557853674434899348988037586391257828331475997016869699938239609931354605330592931275853116309051655191695636538094818351979312220253603121419088194310559676220980723437257572938649416391342613663797256160021144207665626147763912728950559715857420609663052707425828487794930880878362588026362952570845964321771272591744907678035974166804484018668697336796118917919127192243917053185587976752008268835508660903119543089460535788246827587667214663406059989783184299281211366124924840230818301648574832433460426119256428384442749345495348406767060922218423218676015798213605390306565276699978036610629970362941360518512587815338736618317280141321125529002055683028261098727545213208927259603564617787004800997888107994776342068076522849526921403458870618628062451812787617305162826541256813921248657094493185599200715434666903435480582179139004740766693937019888864406854201216768917249015079495111970650335323551171859619583202509754306513467452398565034936267217477227408797894841762813984681926538239629861291974411381494318744140964036197522925125004365734217746547134663494470716377763922873448304317517435532327482416057238978505065081025713432584380695402765959471998124277877406911920834209850382555085031459497779550807974647905839090509192346479710191378960478069649935636676338763307732037501126324220502160760962243617161430211955302171402499107563371904312003030181747830859061640349217969885226626159403738157663496563891138566554093118538515774808863650246039760098002482816561167198525464876974105449728217572042999550229850832084072922402500901322787224903640760939025752870796682501135085954735296735489321370534697061270374790195518989766914261964491420542241460342218695228825402640684952422214510993803960551755205302154532977108293177405805064577008913650593474999182079901954779732843541438758333975458554370437124305923081404488301215388122513520876097806673888458313196903809245615353690006105920330276239281283511918557638425352891208379287488464685160245600813520530131189352961195950009132208488856004959941788410875481175668399350676852236115383435715752849270469890973169590175818221897987586498125467200515860717604284160169425509508215529396890620452006813137400921016052029856043312303395250509037266855546460946680158597021449169389353957875862274739526353889941288419231368305524687817331245351701499998831983637092314437813739203320834052504128492023230171894019757596034068803832934795211010507218272102693354347804851917645200420631160019409291289680296422294714062497036842466390663626513188679834240862561289365997398069287086204188305857259424372696314037523898495092203041946534268162808934975130165171046588599049468977288926860632100367374051467610145085686917613476905859085641440035896927216271418506942896851836244077198544422590121964250413200128687625122273742702383962145361479586758573968312390050867275679006896632672197504391837567324856078085498535606023174304644330260056064154397787942151327585062878124373063668700144243747940875028942550556708064943751563913833230984247447254533426035867239922903255124473544785525829057660995826042084550349675797388492686023963395234452078084934002908898716656971172642264721335174050973206175316431140709987585368810625784850524980838815132735434653395733989212547547365903655580177693522539588473053902981548996268692153442870008683729838145977686767477511108397092623060231927161942195150769058209835501308397841401868200767362100783112163810194698725933108399565533525879415595949286635488613562489284044010009975454599012913615563262614206237517501153652380983555762471722446538225413559946174608717543503161881974451252502767437938006468390174791504428229741749589869377651354299247752998661823399923437797544516641279381879209092926705642085989488000443198889898169179756622656976853418766375401490912918965035679380687063094603596160529794773969083447522315359099921171213667440731067957205095115829012535365991800843103847990287856781165796110785895184844223087935215675174382387993750786424755538133620291513053726956797492807522646816378202324708756627359186526906825157964920324419261488042291784292556186362575947142840813720834574989010861687747960900307071615851474637880613860686818640480419590892229073377433938553845689019713491137965716262196767868725384144419263034981047194869380122564931077340957992350494284797833182375321524952581135009186149473329748328046512963892061112300914243377402595548443732359597452029826514425541805142315970588653409954075874083840521741595008614686898982790615084138966580577408751252727889321492714713411191912819677698178465726851947636392873410971475064773018798782214776736611880800909712655527363215218703496537627584376873155472574447152259037423370364795778385429862404896012156602165128136950533749080597636025294241078985726687834004938351380148628955511360462502523343683636152796708316734366943209124932769985065708860037918814631949126364877205124825751864596394034824083723632368826395401289962391714369568002157624362347430333912731076170305640225537055006939940833365906222703978616002341202156241172100825887541004582827868506569423979680327283973499544374559408709392469188905705896608102149057069341538130139226218704138426932315274842222434612736931741602802134148361116868112353934534948265333773906601001395829275247138249139821731092790929206546709379459408702632098714525803570450388695551215893394793295626832478782590788400104715922979033215157526972396391527577297798050239090853671644854871580365581245334593754279015349910349392391628988586095280273336155268485456224896335280227442885507918663247271771985377507266072231131018256781650597770004676242232941125663764241941238266265527213937517463031883668089219268622017056386094666033152049276772509020548827791068026224554406755443404905509876774366109250227262355279230847875641144896843772115196068629691143263393548606730813075852345554533977386470745570341848118555124952107748965506587332711579640767978179784478555802049439167865507659157652362713479752622049727250159872219370606649556339519044032461416226890247883532554067949396738642337520718775620227939079824510190760164784060361037988358360496593349098356545461170244898956432023262837529834803000454773171783785851666697501956678574006718146510004325963788506172428396721412186697613892031634008569588104391775193274103798340024549340538186445101532156580701493659486373368943587181752198068435636112442667361359010451699971907039819585986836552775563318716325936625464461286035442280359577853239349443909365799284469381680363988448942250956564439132188997323968311776386373835940974328425160482680341386884709797247564823683723876141372241754177273434758023804599598640887024649507472546317448791427982445855153849283334894342133491841787830910848412015860905115524432775271335834850029450377534062696235155986272920970670898603241788516043638459967084003728127796258651808987001596205422040754778257031838261184517683704340558229827422049446656392420697353775430670586011716860036137664163136049631622630858235217396012303998359158412988894637276090745865826509727852877459338970063709773501365699240998240108127897707055074798802525603491212561380100769197588326146008786852706342027045081947780050420367939493139972683732784766261715804253888522979515096027230657309633166774403913312842774456318036567641984458092419501207682808547428433572977991947733507320241048196958055052133602435198446010256418659681739581485879421048170325986730259071210822845154997963059072414284015531472681564241225159975760295454934914928059180783674312343451545777102562942731763861558136238253401424044450140117697793359053037737502478684536652766154730909226043786986499590015621360496183234740984580009808627112939987957300943078912831232845721278334892735093360151489083174454323720853429227599538973199435494249748664711628148031608133569561521220839795451112352303874905456294601789189157403296996104489287132943238332120242937724951167457969441415842578516380403529817525574516449412891910496178494657561617266863178443289765823259349819022665866254595779937728193965173088783998462250875332125174785175469668132556420123901753898363444758217162162998175904651511520940538692174634078400674004625711869472102099199382043036767045548213600852912392303306283746778690136394279342058843140292539123058247331706886332579898917913552118855825584502029307649271856767943281727076003715344208163103123591793184583808246417241135553639342179721145219556122416769249018293922192268524244757421954606830496031616394113092312345051047694082116138174879449325813981570197985056110592837425673222145913382581813659423565494721123095899801946095032993255449637076476256373950421025967572122879076975985840265234016593960946721847342660638883770652347064275097427029503261290904588183219057465270813102463421404068675861494521336614003236168453599385034045724430318957008650689850652548973699471211195162562655422366495908471558086268874446409159576095806661347132630554631384131139367322161736880948747722400994904468702563468525574108430679899271423961922646656271889133781734700180609125059202321881912565102184335936861680529939280010221655928496150535117229149870557792043675291260741520691162556813018328675292650885981371802078365696403917014891231782550123301554448872579394850430055566375294328815925765265060824123376164132066267795883055296255413734591009358497075527336543502347101831341935608495107653696228266044364409441475216198238271855091674284289569982573867922532143982765918177337544333357591098691080909784305809376851217896047994676803570863539816699223332217498297040248779435166241670461896778806784598392503807368959708453425675309623448642934781152219816219784364786102066360667724564978323914744308190169002757271289827203274027292505953114076760216578154645151609424784204358995340360449070997768662533702341287458509092049500307069675601807595760412003954428328360969705497232481762300538397893794159687454394341672416750062574691809366218563583251660193285696126912299823704180683126270885433533140225316614512925706490677352543062326961698027481659893725989961388321354559899327910391041496340700704445722304079472703190433604442179461494474363788737398592397505768909400818333462213532695246008097307929413259878237750438697499567759386436134827865808006705162619039208449548847161659619274854095878313131189110290407721570039099224207341607116586988830799724432189579810851316609044011141051367231221574394489701103092043247557621893764060379484814159114237970033109539153481269047935043617214281839793600658480745858174611653716949449090130838257409085482922031548343972927034175057083780419801073787752990255414072099889697654707857043021559097057664127536454263008562282898928233620010153422079616338354999811685468502932925984291297303791754399636029632647123284033776688727791332277716754170873816021781531765568320420670067950163447383113940080596517545502838489853409213666924722399214091961036709236825217722202280689694627098416326205821961530728207839101198250405522575036959221735131423093104837201891308997206304388086927262733641464733926155696452580677014228776755119218935787634037183039165213713434803604972249873386322200019104602943903173226795474278873698915856966019125189555398230263403416201267407196171985083751590820807300971757366495624613702497550682840143770724340047447786398592486061332979328204103935782570197439703808043614981023200580804421580120791222933590677057644226647057475892232392375940975057395195567164468597199909016290210034189072449094335964995447164352171781239563690069008334365923823089708203302752942492771759764434744847749511806893664737066899569522928874806744789452862104417329676691838193951555921927840406892535419281602237031286120172244234706535754107221998882179936179132935518144776013179197962499282591650019900093111102214605529327332069419533577788121916129014835615398226973762662894328540275798381885431928006857548955418242221156218060810532332079765002569755478352547036990277869145286002522460622741369499252396753401914057387213657662726479084251641732578395980421864181830161729345413788722096040521794829621329467415378780222155565100316379828095897478862602912099092633716466671304926104322631658565441742721694217083162672510422831325725168400843456079965177042111700590220669340220118192333839212225869531000010244711817534409634839175079227398719987765048340848476619710188874997490193983335515435964384255047469963146596868857540856554694052475512380222199211167011490443703037934141732343159718680157630055813596078497271293983973524746997758206950738184642048160983702959234995007538348948611971764845178170345151214466063923805364919593551250783894568758602318866625216358424305491576765725941848706496126773171585011173751921331664786562223041505739532813542686884200767172736640640839735040041528874607269689667153348555144652380848400630229942375110643294827246397810126286725137297848536052743168911816394513961771144541366235088393530536762827509920239473546181496157824199879074083793947984695274383703416861946902949159395206066364094091974496274080708216791250400475511842214206789866501870834198189253903094525921258051870636873813692032955267981200450377415678175396981229717149688641737939403064995675984592502087225341047253305453877327505885940551209563859506304653389691357203264512468372875862937243456227129897510969097981540351359086517627252308924665244100692585933280180775646365730687302413180347209408058179816517776761083059344287131067215432901274346858277155899429119171214846200879804081443785716170670882019429109793148122859315618203141244102256954066816354366341442239621862658916223756126882325138541953674523880716236649444964203366705669313784277143953968890529557380288225245288489118476925808443229095541198874823967381359279538253768287487762461606495833690672522581562909996704985393980748402122044354680304825700064955201537760101623790112731293516725292654519755253671555435408094862815830563659560290070304471333424242020643857723887349062692312257286324141127733923316568397334479704031647738827082000962238462083009004767133186342988239454271040159918746608815033224490885943520217150266831602750508323260485855917482342796625097765654782268398879304891544201787963532978652321902860752730784376966758214539304212612868535814268235021076150434854354081454193486608009490495022461520643913582345888713694955855084778434068646425021939123759813481980008774551516726441418061783477460531272011344499562764030664216187216011750331380062945093944978549589131829560452047333993499779493334163537110346338824228103782343120866873402311136262099023595621706760130061584590943253172894829242625439105830848630893933466750656014434508951843595298824801276631161327104980668188663997262691346263125589814794444226232107272980673777325364024316213549052006795675600098520595528069850604247518849812963915463985297504240144490843542332329979972370389182624814322754613360256395451641053215800095415446019501536421178182273969501522471811361786916440153704914913850041437546419924061804801712061929028146445481641875574970462169900723678753992279316630593825754465347373743781994485452835043562711637051523433116713580408347088402419191673809027725933337616117890509509146318761070962791674781024893678148454963435777221196700467402135625994998367508095746167388870165105354869038104974964875552995130696208812192154613573325480594981966868064481844451187397345321297710597041580929303038888718690849819370682873301753833995679804721033793141305836200086832032918131153651889500659880735154022314296425895890640031848418018864199574206777159910088731563477245188315350171603465485365266063932947945626903856051511667145251279706918696779804978047006002804673579767136342979280972845061364047669478512931609280172079943334644377847601249663329544947464016600810295888535683285616192765961077473145625799968877622557174042847353019921990829986578342693734672783512489704221333182465858063410388191300460404052139821102857333187616224753321259375575814982581717888810023172064967298249710741233808223997552593223338307380402079446079396184216647831639223670027375208153832257694678322020532749472298673481322493214789259308375354691502661936437643387417455519047181454276883431533336292710821675029571307875352850390109341203280601082063817090095038518580279636990736495738900942749015142525257911496241297763114785724400848184846967225139409531057236873523128453015765553828833072179237649146950941241831288007114613695961040431423737123994150354129005452527192741652721855976344238402990918612398680849462434858727854494087054222820908489629383978889763148027663828516353292050950816830759194654097026501615906047581436374866568127509093242561166573495953698520350755859594296114483665047843503556279843503314808802670796078962781706940110137767511254219501884997534607367589155816181327994945964998496821169455750617835046495692114826499865824079462512849814366930089787561139497464938954423702603824442492302435412745575708155565191810701305932644291970381231762558136589074135765201316415464281451343545495328119791920126402978915497292009107813964099534925722603518789010610701583484838475542587403770567417898882559021876355113597434828569140651650643926046306151743177867762904249195490478660201915237274893264057050320090815454367180725651241374984332574043676837063569372992751802508292442933927795331387799617979394067921315063151776481761557757093123206824840569630493037825243042679188879451481771233278541517322912417664604338024295708277720021129239847489505741364031536694475262615834493001893514350592595125932629600353122983674124720575185547998789289443974366826907474267069342896582455485297830278267841395523353193947702254984574475482585226507971008329387618605692276499081402336574790707550215149964630714475910422136121408380490715727466011883567161013200013543035297306592422297683445672793965404725954564166267125128795972070865862484831209981357247316655502625156025417408664149503262297778454800463211619448009438565482572171032964480926859273813629917787291338731004499674051602623500932032254749819150919285020241266173207037725438183173662068443477751511812975023857055263322261299480668479852708067173874753638178096665016144828170666867229443196933389261537553189424948048574228383728494468882537921572842040633011271262771740142987529570749251074581041430854561869370317911543700312662743671730016704810439627053566877311055071686421934541756971142276725751412789964287030344605209740732186726700952936223442563117148997362479436872106634812994089729548231757129691743305433355441632559199752801861217259932905902171542974756222926143545566387443635493931913374964476002383568089145460225923288923191939800689207980748457205907099425256669387584183771575880497798257717203087215485822175203699061690663265954268115655455844219170887427102861383125329191559434447185182336411096310611803253589333832701848893396337013915405781906953312743196217172580257360922138845883889433633879205465501710000002754128557879332524266033288584197722116442975383691062096057159607127069785273087412917017093556164322436216802442025425142313756358629072659056089390588751679037400093286972714998045178595158859016014725284541622689664967955045021854396744233672103495553408104496192919408433020923208510538442649788378079222206947657593111070163011605417829536467996800866259235768784240585334493360828321942118479764859149448826295707816950393356853897875361977407807271456734219243552782989217770014514907600411702528190574122005990566375169945143880422778497396595939435695632025885919322946990330625105225700292542671536988256033804776556249670970228361358204527257283675424288953373153634391922893337790345482799337929372918383175551154991084617603013976951420678753218563416848542406674036831788534623867643537797881169664973366872886461648693433118722172253153302668461538992606499612675164854421028161224833934201478985234435449217098362392637294548308259463988382154834808714971511890359375933988352867063281524245349989578842569392528828156590211432283473261979091646575810108807801423610415311646978215815273205007780547477995089088072288535536675765025136260397912588108043616223696845894479345148200285625707503931195353011232654514244835341229674600765594349654702247738397124709560529475980652502203371105838662652925171337788143194576659856010773227906801652375481535260346964739433901619961233995002310145200810774668388938184722679740362250786458756707786680250981461031379022952047902811679418755430764866139639970818033048252433198880744634560120120875008865920344810005286963693284758379005757897854413076233417239014922125750696870492950713041019116193519357378313840404186285913075906042820153957435528082252867751967841353332696884208847448453167459868817346198388793415013878003662928607073717183672661770736719701278963317973089281664390981452517524679310673325790418860803744543935645130825705425151305833830536048307002634099924158704174824127685002334057637052351242234372385107660643833442591863910489184783424350711781402297643193121567865922526165825734534121072234209366751178599864779727797308226798291913943037240230786571721481973550280248297543298298128662201401454080325947910216749649509604882469982090359013832135461804346627898239054669963322216609102088489973741352146665537623234796482611289788518511367376297469641527847905851372696518996767873465747581107295249526107019674010056063087509017248410077230606752025285248474276941667999575785769628753835371545775144493786726168255487723992156511952401456691902052217240396367511216931114581420553794443277004509720317576088890011173585146061796906165835351428215500597864722223299665811237672480193696484370428288900542322676772892635135221808589843472943284132201815593219002948698681146012700252746965625440506457170346540339394653045452831906999743182845429397666553921237864293401516795226095368947831918192627965580790414621638073883687511585581215239652606023918884098289103987423461849829661647708678685522241939695231807629624189442160751677754102331360846488322375843919640496034739505095246593203080206189775741092388391479529747526242796240419851102190257837621124001214757897802390319583420729549150474437300550115360426429540172092167999533205316279156646870716577779165320506208118340932461800087840288845593184906947669330367180596458678508449848378006419054009056197744086377720665355402338252423537850639152942041626312309461487557329450499117942451175910802106075858465602547216125276801072515918285440111737654565511146434705866465728776737323869062630856202679167089928632892830885457514871165239902818605427491849281905711725402700107517602573196864646423698448379927076520462421472039033158295360301685448667599586686071997295718923902657065729184330050468538625370117172974431451393272402818186635297115629711984807849282558909173051319906159722324896633107170436701729778611215512465562052990821792542107760669107154201811173492671965318776393880345322705168804747763456160563420420316119951452028002313470976160674399330295491048329091216707455054764301137508413803675668461009887865996049764816664201221056406331393456535453572091612465410688993091036726973703985138911128590129039022056108840946066587641692410936206732878398707800729566505867173283724646116234037062807497675692458335789306815687595573329150298395379422453186952635906317786719575052015983746660720437767330883158891325259399539466431002036803741851433806690352297663423316315577251651558933104647331699924658078036981400211450963804797719024040301393552861045643000205200562384710409303541456022260948492002316484099527451426486544041817460391528242778836975004718078506206590201239036215066020256884984503125899334958407517384026508889353700061169062700693224419726752927879247217851714387522044325037670783148116780062093074219856483294390985460627469581154019252915527473221705332703229914265801964812738763829186144664700111243660610521853540695683748382155148289475684905082422157128197947223985724272061091028849392409447168206237832443745489317255663766888090700888458452918864790622700564498530499177876390058875407380094914583092212799479109598360774953417013325176670782743543625234340464074031792206485630063265878609501643565656126437272511229579537070961158075082581385806842630216983647528258609954351214875801954470810974878665531747178553952302212855975912902489462073313411882598509589558218673292184382050388158281972941812677690369490323184752250504824028215057540297238719581358823987718530684539227429022310172512229412350449586821111300961219782417411664443498631935315689191229419710068759433833327297178794605258791306643201233932255524412043991005946092469491928796793332493620635665332727488480851837238002199194663484645009071025159017921896760568352957604701549388029188770400226341463694189406121139909903673527264498803949007475012177020611048666676077932255295756225798809846847828204138481107611256839219816078511972620500075419256148835904698225156916026698866628287627637196097555228526155267326495219283245490596971235356984177141306925527217948547676423327604915479968723834266831416173662163392707212937072447147192472424248203329489984376646908366177855574922295490253281077573257827265697830799186059178597803171860875919146069907261317749828091626937522986081215393543723187477711040764842646758493805236288184921122222469068421846379383035248981916135020791917328989677200010244365805562281377958227464264836103732690205343307000341091470511229551012937470864852070024104031785837413763889185455441379236831537245205759336923964571277355113352645345085796766791034745594865956750237337199039163568349371167271943791622090015657636103745374936090622144340057482093499520243003123872412832463786937007252641465481068300550266722392252027084257156853589751454449113947179634337673674877007461764087964527438996957454581872926633896837679480968404788217238421544714005395686701282855443854929784198861672455420497265140302736828703254183240109513106367486596604608288058607987590297534607700255519851993513634924653783238474204351711215706315110241726595729862779047013333664428509423207211418783015908858776593485589316954130030692531412343816917539701552700897173323901443802374884286166451115770270695146922420925283769289921614308030984081786346333866432522546482087946417112507803506067946045365747933794507183635339150794839879894120718140367239826457787496481653125580754609464261352389066891946650940830821798394299281256253830029752234673142137291094206827047383238656526339096212632820641306645403677489593997941099321790455544518526612657318346655249609143757080741006681934981434028925383246207777759429381177939059878106815141690314894579468437430731084564702166850992891362439404157877391403465754274660408288345578062851513085747810989332029162469603289665029672815859828057066522796452484167433600028394880384998209977863550403474784489106565755009268346868558544305504220910994462965944121909739912997337804766183843857389696397205380096359166918912040421519648240770695980839109317033385636807817035624031747862564075883437475949344232594000822292165755232258022629827394458701257077793811610089841919667564239961713427075002700675669469669494735958777395987443608713752757013084721394081105343172837488911691843785218154259715701029528480370145773025125875397490798767109540069455585900732081929029089201695320396290203287107596743532697052993994620765804320791711684742860663683155748097393257154389205784737380660478394863393433873558075646026340880565898062197414066104041225996961182841275131536089369179731106221366723927897025708700112439432926355895379537946306740936519577307572222042211840678159620977313900710900601111766514987236586711530663277220202079715553583281505524283862381337673803057469480194679490054631614578667974319631733289918054789465334444897019570142922450236854669052236129991656877216350219627967156475689649784468092670464637254558838036765193239574435726004751566074685936905056855570237372172596316210168162060356542966469351107194895414105749602834826365895811916863328299286649511098012903286159941546249590755724762526268534311832700976331006868868479686267985224713910481279409166315854573032084541052643864346578218274633967437420631415084045237171017866559335096680038823905566034535839042646059494307541658259425314114084794787441435096825855891558681263719828259729125380065551907942552431138551623841634346433579780723253121766680112589803362739801490735189814672877875145124529998626489507860486153567855136883747339074709979566330727750045192476236337775533612079726344990888608980063788018061530049808510980038987533712240796997663330075366763521097419458626124718581183271333955299258917470647959722376636067099574749203103765834421342757265224664280943035967277285632016823622184419133394749765425057440359796718143210746731866797943524093456549372031847304543202852076705998561962044511002486703083280006671591630319369987376266149821973611535755519541755431662969648876290852013097669441049209591906811828987847541567708087564809140730688211740943653651475455783978887486108858737281356015183722876675821845013232332311903076370931714248815397740311634095816871670582839333100460583597867950215823216491445493700155287007869603635098210418178976847531068311050501397632564202561237020833514900116749249539840239742106472473636731951397250988381123118610711941034802218265196265047046311709142804186690323003192361005236198199769589533497556577386290841077834149519923169887877984653935993356753930945311896563915653781795111252995768585184352253955848948932810178959005124040247625395683968065926810276193375306344218103999071065491116434506534765658011021231471940320559466860947197625285802780245210438293919631637358859427123100678223375789239280352307967127851941968473136424288344907705750389218919586468619547187279500360527973099590320996791025772945605410671060522792962143441268101021143986646934852363945227139327374933065040500593635780768082130771499612108433897040697727687644731868947687455447518844583761628898740228113236877525107479763154904887136814318530348372982689426503480581519202654751087763960469132858125478775496804208443648984221835543020935991728012791382863032770083559374073995891475717085879507208205991165290155272989236009264668884645976996612317744914459324340105801531246906247603826088992436840295028886851069841692417343104187953354875424902847461159719190538776882817472941970085303296115733079384264188547089897772736479451284200945779437438933809299264521299283499623968503742183766520202196097816501420189025076005011567611494667927628292850444177496123319670761863232522709253907133455894256165801546170081771752585097714865989879401094567598505739498656796760261779705106506042263126855758399873753660509658640676027054495159150343443730498056914281791417582958827483300035573992677567109074033591984950311890429492328993930451807201945962371995800170085222949805998687208848364252220708440342725671757810738252222185410571195818180807471569181617470462210548302016288131967359450429384916421031010323748146927016932145196595506506862992011665994684738029320321113582795584497416845811730960773220097152234527050634864539697472900481988521559707374519977397369070517155702571825300633093073983382620490264964214704403216733702463483015748679095894611613538505894842760356435425297915326041801424690652591520769830934343227759841980806829525002006585809545442142804839104950628454257767463953845832450900533269946433021219812096518677334420928922214750318681782937751518822049521151446922467101423972621021678431379426310430456505623799763422239038358396649909433852932449389652677885305253060201780344611225659539730330154736639138193059996380318733880811309070600459101726042995839915986526454529002716509746741587162368313356502218637486024387795636385553757960135030908622652252801382608509394702802386964095131228625235204544380516664738027808726650054796743941302530694734294529070130512303508712755512794439608824764370443919252383089038723277178886307602715210966065847166546071169023723671783123507567175186077354617400692918906985776135822740383226567060786509873458361069050226460150186321631647829843895504360084967428924772159772453265372928345742252576329538323197087200734832065297129464898395804091989676098914417747806744566933992188645328630175362608293838925699144999681935317642285066476769468919484101249804688088265006928572753340935189843719116087345524390157642643513596861386965784696464987810133741638474500196583857025528225491504454232568506417077947386180794209075557552173941108822856281045844361626618243230863277282877396230885455922711098130829007196596866682946925712337465833685344569333950944456705813937011933229991521901507757488717680992941295728232009546716947668638793423062712412699917584868258771411656740928558465586980171068962621043802707857979690152409842367868058680189892939630830209815052681079965677256951257404421942398904967967021947471241871933926059595971588047208853955167235866078144816768017740553984616455815350675586324759078964697403356007728586437660069376662479742736514273805797287794722418569277451877397792541222724566279393528270786865022062348326448956784759840322802762158730067300070852156699689820831971864465974906313542336068508482101949696351543772007220053825492007284156832231415661409134788638769734740442113178198776965410269045290642887101135696848723811200124045542641057608918459784673284096842022668708271800302354829266507532115503757185466761269897972806221646788187009185408497488544262684906063350213654603304785980921359668460076853911315179812250030234871023906704713656724069647835603028095912304756833810988945613108630123407049743762910008044561241753243076917890920673445217532670194414682187014237062797529099461887684656175966680890742927696173424990562541857004985709438571938779956618421903632200722136570435407596912661046798676910967158129014957959586252286568701109944961804534122577213307761940463102224889130614527102043329663889459481888941450213117489943380366079924284120609750609186591230937552126876560518008634804649778862595586345581319041445234467653291630172600560075203784559498366038310573958063357633024641340925601430342766335799664615563759969159470365803816798345454763103595143487253971816010688167738301646114754939638177085265292029840796386641301218982264492364689814193973562807310712428272342272663138513938621167037150400217912740041034438926259559213663887761474360487627793851534283422588511511663156811887255512541228634755207228832207286201701204347331545611220394650958482383912028243647266383107914716293056461626667275480536175006145806976627389075455283266905968304041589065038941218469718140537623507923786238668668726853551396723356221457187640873400954103737890673076919268716360446568738643210174243706159725255665389288778097582884715591472029703214352794132723859214146304544912128479623307034689038533737414808157656555120130230816323445238299378917405870552861790439603064360911456056680988758952218151738399253649627120995850354478927572890301811282691664982190060126295002939969247016475349983137849802999419883249167769028442767033328897899374670443348383483344538327477081000193943060181956024034370553507477634867839690322183247351899816297065096660944688210131724991184775023668660986016520010447003189769186168151298872187897612145778198042606167280631583238144839797257206165488297319315682574929901723460016286926443899892384139345195373631787876716406908335939620298692929240017130237734494556128396349758234529518256906915278974866142211545206590785129312733552149502905135688301904473927548251857418473824507577541147319242180760254812668367382300559088490795105615701933818392732665786032062190393879511270368497611059061619222305091808674846285573282985650853622658532915930369861012087475552499513374052857834824988217050115058196427141389842192472989651330463442914345173696084019040789933461557367468792347219270910488385684761788038688401349628449479634627388507871496428554804009378225635844501583160855596034704767865094600955140037023911447404216121774616731336047443300846101355194118333096600717125217449228146235536244549790114304667519017974975130913070088914910019561362459046930825501959603059709534952907315972879800749937541691094355784199763241498053855962498131161216793432668324070652670825234959782966016926275214294257526992812122025523954982030329483219482869574622090853417655873300175522083641780320877609761074760459582161360441645114197066368564602703929072719419487268843705477006812245081126181017706189876815477424357294773888049956118369856418537315277088539979732859777334411265583182605372527347280249973767018842874458858085190650382581978859227791510606739554790193062595170608115716460738842962792429846130623362954330301610528079302751229504972778185503244002960830986981334116074211632792127839341703450688581077896531822738018064761449917583104508015580755128857196682198837880299603453418806898091179172176493240859478523942914499342326802086267331201654297304987000792563429285970125314519464043386350908916710242753242720489469539270459556991608693366592077528762375931637807724070958038972953264919503894832940105468888087431084673912085175843574482565889422626218086797859977294012116755128308767681216187262884354545754787657408767765194548514751631733668717010342970786882770893877448471768733988534980838683045667938291910039820036914078451851903027552980939214244689949106233725217376876843401902862846190278140697366741065649310442273387583028848482481947774448037905157531014878368569548150710213072268956688686137445759364721889233270591076173954539923002105147022320587350337388316684497871230558790669696981930657777146439306476516723746253606044170920003243638789547408919328497785898497179317298786809013748128372021970871192058210739318511752402195035492642061221055292565807490793615915907469577704844431054141902420761594451054734430670369008406477032637388627695380177731718928380263411215637638536824056946814945680169304573889749624172791922178937332643003367937567275841783994184027929654826294229807054276770151009422710929667570218559438389730074733173724104399950090841413370322311924129371756797032226065629440254426405723282392555307142416200548238705365202777718531442275096971911474383481930021821197821233366429497970871485534839116383226930086588736650338975714060987630052520033442013188412017341899925502983916902553551015841194119320938876802293359364822060269359532039716120375732527564599171603734795855306162427630096790910586786077101346430647949837669163633110356809945964946865894997095326232472103688263623379235701889692912762518916146208562382771495579928291229075119976671673226535659782178870294658198906476699333341204941036018283364262654781333929168060372429371618297703336189989839290382251205964597600275895349008285256145874011215160326173373955552856257076457869920255680726662551041851925606295142447261988618515036382347543316220190441444310218969542184007570984320784897405233731262468506293310481625705231530750975453973892877757963225519349778744812598875703511579239859362269614473951676686251347448706217871372962897072559581947078793255294479523921903938436666765484367531618061205192377461571793455047202276147631115973527539704380035701191220304851395585607436025747595626242851851713884723265506649726001369040428100286669442192537287840759139528084915350494587551801921297199421414854736439180241576041017429916307549983462263878660591166118032169158736112761237829574561496254408469682380337335314791364906391825239667768606826381172094497297351679049470403791744807686827041066635824022308080579670926799668312162564968671252186493618843110024444612859801916502202181345148629982564202758677145218612930624629859559784257167359499196991478079041836629817160202183623688159364626700075770896022467374769750582865688161729619805342003843749330160079567142760492345644688685475178878070168913707287396562354415445992609364762856418197765694904210832030634411613961023603109623992961080869683292732773450579836338258471257045999100957157638210959963683695593424479948457347282261065934149560735629579514498115356738232948317623873600730952547416481607808000014537128577261450185857541283362497161881402966369826897137223472393452986891581485701791745171764957860621859588732487497641271473550642063644365951477995034852257251622487801936210780333800527438777016429691216509817159539460261439362724184862437850570026819347637693091524833931137868718823930555457810214769541349937697809298087373475482474272054901880485789060808246192859909004555216107113497204098445133703355457925724767515317228089432824548917306514449220763643303112947564018608185286394612838794068833537043727198902367563087902691785072937565441616581256294197783353717575013388958420620117951143489891991000218887749989369944880465492648753048002704837541728128676461455082391097332768440480599743653087726981936528035350063310360115940867647918537480184148906343321721986526028500416734416258415803555562361414776955665635919047315853202046085018297707193956201714629599073121205841991694128627755854796152226021177467955645271638656848362796101949694523983385514321528237656444615782144463316229316896877804136851227403032663604627341508698995665257563527817348551527103775308094891921696325109932746961777662962768119306142329573743744170057283856153440305171998776297185117319029453953130295174435162762627141977684295342548113769482708878900204740884909163548719183881605350921456579209763847154473385051775502861491239752492242958766762499994096533882140505115855190398515341169094997068051936647213159462583018073629988134876203792754897475105291353376927610737163570899494781915957124980893818848775280837674336949772569729173544544830995096969278155090441003473948358928431538113741845466998309933853160646145691676241778953778092630379354537656663542731426029943356507883378802302763144498710317421910453196635285135363421155869493944853147570847765232422369540289932577928326633896506055944501565819346276573364935323229964612514559247389831330420315201350474512254286579632654579160770094728386114142268076143349228341730273689008576795097883298798535989439686235286078735015165541109500060543288826807960667828808614249038504748628486838073700256928767455560083281858028739802062557698064681397640874895564141881382730054446787333970158432236484088594764280347081312982356242925773327856152229679299260903575743127894702567009459292781823982488246870485015618516140465075162070402278625590605973990443991915743530847173761561021142243471938902061557703542104609889926399247741079915343668963913530833884148354061475260703333832472442226686729435080635311451792987959028459214195483332829453819696261317748240888442893726827639065529822180030586233676140219646516094980994360405941321899812578840672320885931691548751647712346861377306653518562086677748743567980386240994896028462376277751858517175818615704913655634155076434636398277081338103259553516986157640652575052785855550070209702535361694123257868409199665822895566042381265817880684698864187894758769252963883246994906758803480801284732579413705341674659706931897774139686407841002683412857365131012507664818533367400969593962054303390165355516306200985602335391894054684955478868916472628049765206070069076272407514281600121085018544202980961235152922483594115016438206354885009083707216207819951564285971589811350518969694170042139880190006374235813368646496011759997705901951665219254318894139913337446327569589513308785661640865521985821484778926816924524138582278353175673213144997677330857031584693569910511714146038585062316347051213456222709231542295431839460374473573015619001242906301868123805325947594234564510833006151528998523865780357230338311234772410234638862053121363383419085641610606116611300453797676262451126100204392849184413747154361978206257667047503054359856812577591039604743674666188481652947690128061378369848329399221587998419529133603001010061584182152308459561261012516123170852499183412020629797725153865133519601579101135112851730567241859358467820457535123925339127124718837285744555558069383227798261112919671789685202721329397814262974597637365770576409045867218213447176935257741292940902048932981445652042524746769979736543757748139653427729223698196086497651707237236681004367809049923775387569362906282604743243272518102957687938596306733536067251817739036360356221396867351879150037222193286300566738972035538719011455380999079897395336612425542838720667890713377452484747268104338772694211681528217749433105320035592482043263194909135522868735271938071293188740034081937490075812101749598672762245372217018429977834982872367430431184387578481908798427267918984490028156419516049748454445365974673691046267164579234351747628619285359563484246105872377743476713345710952468310053141266359415096335722858165190072271975491602641499758158884455053382920246612426079286539449540378247426129154773748325539347278557258848999509918888319395232082747454647042057113506308024404148885819335783121403467858982855039210359491007907106165231036068406839086699952559228856231882343528973641899378301350340749172165423122249830035095069260836119235836266617426938129473711530143496713054571038444037169888994458687768879829286044903546511912042859058156549988601510354962476819187168766080962853116261275987217689748480411630349394094212647096510721680881436160840572914172771151325081251474533099517169530690726918104888329245084359051505075344885137231325496640990477183964663476918019973076722497043004218723454414351836582926949510372918977966723399464545395738732974151474782648261969387989547612058689375413823639676964896593752592568353329011917562371381198000279200136649101974045840574494703745359121774016689978269734641324242664694166989203305950231531046762675055671898928675123520681378247787704034329891082405683487479014973326378665634384943977430418629409065210424532419374637027738007514322652257615014382516867201556097355233151824290637649119195491065440057555502471491168702421556431807984832176915228589260033685839938903913349645114097724242729442731194237257248979573403314648485706058212292754682935187366382209244127128141555957729455081348756626034186963330359117476374027411978544208371215279877810018595569840138903166820640062721352026452464309810508234902490478505299682608733083108552885180327387439111647024728351827551080574419114763944464942719627585661920306038142352595017647091113286506867854565917544008321536118820478668531608754250885352559553775696025221581430408147958364090358959419740099845162815033251117978923808915747974644312163158207730758104972454802126210213758607552258343761964808843833460410922756403956586994951255049928296264652524590473804356743910144074714361202565476947334642977799178114184462948075957872890930231009776403082827784642006247833686326369584178399971030874304953337134434484618455126434635055451740737169190031724460992792358741011861602510786279765205878884967291558807653270181624240753630414053368066113581494046097754964013428837726180141494638489063177138513282855132641187083924337781211844205466397200659879351303337980283973788045987365177520602521330187162129750316265084284744252746556971614336190736803255481058775250178503746689998503862156094421733141930872056750153804983522171416778733669810835613939418323869426571743622664834108455334104369969075713652812579940092814132480813944249692141724233611873924846761587892718901757818603076429624243095749655974560909679610607337667863152564378845390682000853365173948466495380492556434530921441831691567780684488602538324375382899646527206040174472173949750138647319648241735578213259403688395489431216952413991881175241562229355573557899627566620015944833482598247475459018904460751047053129114485034558592792533902729676871367977759886681368065336989474342452357169108995039545403962061585463766991205381852606868466737239591189945936728870418700763429445301160664159739779906906904939430654999382431458157784064610605378605777669795586443801127563726423765195565812794738578050853832258669241437187785230559753739469262109627880783928126042744482974367349841308221616456011283929117542337058614986771498827798473222001708160241782244369837541173668316748346054076074313961133042020029102488272978657828150736292340878632098465693805056782230588465038886614856040592004510900768318652297936985522363722646402988824368321361595670025258474119687342213182494880503805769798788357889959945882654344570802435410483693984529435780568260720475451354501556740755049925609273809016316508772593534862391823150544985635902319755440523955912647989349244511325749809228136728406794181671241887600365461191474856075548176769509977309376513655007126385095456871494136385819016614708501566765626459093930290233845224837300099061787658373314963198865481398058333314803040907390959647871635373099929229783361223130569885046086373313253273607329562905585200720206700408255963096346196096537950234607474010638748485057343815840835879284790657477083238412083963379714420315870759378259283864716547343441311940317997294740257308531433105295284460523981942743666043873737885018134279182102164325134528336793436950501208024194637431491109854801580055148299173011597259413644108715297133345128928318028179580780781490803175829016777773815750301363473200954044789990316832362078637773953965951375801346312625844121946481308346795419977547042258992995110814086274732687701546920008173409714850169882590463405114738082446035454951590398170885231513243166958794202430457063684399650991780400028519495055900473109084785850975716816940940530177291584818280119794759384489772061986812757648969304488425854911603933988991065133755612321760534910162251237517952480699034986177058410228789488964911875025963333931774318457103533239462325517110050369925344588148955333189239274814075315230584535561548242341544285447785593024337265796479687635486293219726758987086491460454604232345933989349646440226846985237110913726788038446815195008065451763561195488555250761415266624895369948678074851259154393750599810232969036347009886992846254120320508950957294667730274429093055820881190652224042939143163183301537443997290278693220358747545893384288803332086568392216329104965575417152086092819040002529326782019863905872609971807304611959819839094599757476861939362850388395526099582127112542537440466839010306733602547245268687932219007146942891664497631965149451792210407386767941421291631314983510241346965283137128407366628394912537385708435959007262798792016688747005734630439809190419831045456995977594785485289808022624713576811361580996347945123267774847951423004810959873688331732879511670951948664162303588033171358570490187538802921894432193546726691567111336119861059193868568856376596653152440726561535669556241730589489102298534882055831015870479769608299437778753309745012798794678562061932827354082014973326245110453848950767593212610646374130723482390877047903661641061914453096504943010767831286471970723787944665792998259751269686604980232200212478511461581459190507701140371359978110694771504685268456600947804968780735002308255072292555663661691903537669177164752151995643604357859939220520279060884727673929874053251007465878574585186530477191291207417254705253566013786986333187133466660975563287699980005997817232442842814823158131371839909072045180203111184199067977581396446195390939401076671269419257801999726489924762655397380831140846889178174002027437101818840497383359041050111332513869832906820331417347995221841579156285073696596540486943343221907098441660126813430954841589515208909520086666212112463132354469705465092558028637313701048669545782480675472895638246800148342142961744729270521783797551587747960708444405944215382702147564278767909948048679659268981868582996192110006003043061461950168831690938203103294829367875525003315011103375946366233724655489052782985239841392320351216712754842048913973160087545096505230155002275502122418880252891368769580496139941451805413074324756479416747845332871185555077420930986567593064734672368909180905969016113748879910344944690213598819977793662381911192128921004480978497189137985963993144622280855057764539104824406578935036867008003221050700424464498772549486853874892512398766568146895411693769777258277993615441350779450946991118320580313763044007856608730565537903500780901119357508991193046263298043365274473427999812069514569519994622717418466061575927165773276048981845946835871788586723849322653515220433083781998609711336431811429277813840711437500950341545020901221183727516905457779255372711467033390400588467516375218880683615790725915456840246618777656712131925716116562113845346907946349931821515656854583205265945355067502492713181889486932107281609716085259157304973682611525298217349482551404524010970985759308530532469956136151798122240492573945006267632214911767005456015812705177369982201427635584107066246203444352636103043418638215220503410324493500615682827180044139507297331264697855648626451829057238377072665249891461992915880943746813915063489648551509571366216844189753540485469273628302756715575841652366350907494949358472948290498525419272659070797259863809419143036335550177910100949410257203665595108668622092764792525481657112410610977025904530374205637057975247157149441592390088601077986403702974219445683325824408724984249940370093821998405518496222077341791897928462575616748966831470900620692373943999131938254574788326604189348102673027023634768405534525439123008979220987034042284738657075147115241509713194650615319423790020632455541145021075827712466407730417296955874809093958796407450616833095685915081669143322536114694155531162480764435234184642862059737632277911852426794925121519526793704369355663662084228232303416760424161205770637394967369323705567142565531873075478178146955363183695907691983954972033667602313230467073329290087747265797903640413727660495299073654485368887780571578648018262658450725138675444636738179569740069952918747991664809630147177738512923629420678401433328129833938575615312485137954690932812804581700816485129731267885069515710913348794778035064152547818198928535702801918784836136204317331040303737415649856345309623753725336841236763887271172235188416643844765399402717667279521794107478200352161061614618065350170088687249552193947901433535033422770742586338289438007831399791824729402330846316170632121259407870236012258879582378835538246586722027012425028117076822070517589049855733052871061811148798949857195304308851525337847088605863865537071694215461389946620803696519052701063883946557264729842165380516052252715090188867597454598014275606907133585859492645743097513570558117261024004673166163532157232379446911193475193461242420617622498072234644426055921661378691055205803281851215591636503852016972329833753580950700625577268819161601362419436519563818502894780810473527658713449538801546470093960674171373319724964627471476724885816620013364027640686613506925544184587074484922649815161071465248789146318844318221266771005838705808145980393238788063300299260856135292526584800901654474185684960986975450755490546918671494074841767534690262504579422764650609288890684933798482373910606069116041914371362945743770423333721925038499305841253594435664888833461644062653060490631514757805481406623191644081866956944668047709352706615050727765218647683060102918238659921894929724011769352381484161350680104546650847320130374609771922179817226355075133684185452315910064171496860083574392936543775883862775506053079068336968835588070057927678890673307820461349416735966314010979764135424797738461650016290146994978226608109858922211074406094173636931874104666020657774726648636510186813157560717228784838685724842548648918770794473888572758318867607084903162429563731375435893799804910330174796505280649800295129297619107880843869785754402904682766727985536290299462640707264270309188391302833445990342831357879848451080206467034706794423823742732098913592738377348333437954924932968334715411968285177942622674029084050624865983998277677634480921866701809448035090966522130820301812888323722328319565394340366739097985974588598887633569410028785839565363250049583449715793376403302147996991686552276908472944572315060787125546405081686617694176030174516164361190244644174898306514978532885815155139130370238649334620499611804373656130818123703096714378063049990193473424307353263170155552060918804235971024970017843911151993947595962745692845852068413671804430135282863916084562180833269285554343413996220636534430864499725211588841214565793526080425269752668900268776155180067670830625971335706850592363177314995810452966484438028388534735613012541559594432272062543767568667865238386548912935678617584200219363395779121090354494630078711237669907462128708945635613409020524471570701493709628829591227659055112549467083822372168202699329962390193704695654714372825961245991592471420684230281232866453779972592322399506409223077778932358252105728575419039427446946948230554096122941458456417069925849699241336574274605754197149537908111814194502769381009252006562279468108651919910457282579452053324283615432655379007554198471595271895120083821227769727839806774173646591832331077053002615721533150122829207075589556474373366584343329522670088635717434869349622462166197908913243948260535105486748004040273607789803548869900122090289229090579140235600266233976677756427394765400285350578598484110670220253835023584400694223911544598898852024557128733389983915068397183798008386589390421372038463153698310119970657165331179100052953773483044991289269290278508225424492520098247171608298480933880589461154121980787606813351272570718660700803924774209103717752695244703452478998090493128936813057059937056792690908555649305873870015793786101812062290765449193691445195994635786958947924340081803720360212686476112887760850425132056576707326395997939920542500723299056608003737188371355222571408814075172126199275117768073159819519329011900525882297946871688806934528139965969167670357103057581207663111531180582952485008452439093694497145613621679442226782078116982567725883304215540461162930863913715713670095755062198899637666746493055772620650711882894851755378926278972966133525042383516838888124216879678351566601469799407780003783961566409517086169183472152703477458447918706749432300481575750796603084686236170113567635013506800064767848591538320151443716559380507375255068313937914830778223885394455864677905162715437623774220008026794146144053993832752123883462112467005505217123548809429764527682278564068079656129922735727817452023726107005008702976706130460592093363157715672499082488899755012837251804871318533440699231581260888758284258346125908812032093929002553458100623552148068517834947608656299349335244764212122229878926649219381618981302244294526945466519168917934846273600955738416356329419035907112983217571235137607834939555325082917203901801975721259292542896037732384088311332628169112916439695530895024085838123350144765211045454687861127208003203596107497397721663705514558456627067615858764484913626902381459168606769021467855840498925958054003841537144340561433701590729336165449372576457220693304675888951070668527249881700879123675908392194790439853916376733974760538400419172630489678419753429344666310296528756983764117200094509351731830950280905912654861289281506391920140439096143420077710659303698732927691928774496888507949960685840613600989379753272281020148184888504667925489491610888588549358078497696165654036053579531564911174445597182022323394256832282856638601260130596053940319508294155482833601483266554713362982352864276363475480064688091059681585196920258687008918484797351715932901342731015446397548928179527300189110389451085282983117578474181357275198525764828362339162740288283896825913996008030676968333899847162385101841622909215848673086902739447544879076660816181132045724539928014901877557862513109850770832035282843119320955306963253173686402318384034563618656106287915611574745545488546880717751064754754602490803656375048354861563253433825178296103705766706770644410270637040929315540855560052238102879714918888295754206744024010458156527772203296372066417215342690675200138608771746179231600013558589551303292786245481614638937421940916803516345084014354650497371257972349549807324895835290262485640125559785360756185459217794149009428104393613687670426669745825168194179554689887886075532514869177508925055060994770430213302126691248965724363062254933376624671684877830591487034249112927411720809849920226169545558867508921268050161859505471620825146854453510345393896650457119375600373886011124140808939793977276467536448840936181562558356490431320170256117535520179220300902724239983429125989687226389329380372209880933775408617292247755991974437439881942497594882126344835821398690524591766023623666491059372872889975727326535256377084862983177432715487375453550449754175969093245912568132386233959569486819431173488096747966836810841342029852938688832471114114946329407456924481568281951033399246041580693156025628267306180169420386999606825821679087417963675027991019580787718478393418829188691117326024607027596018541028771239538482726126760288828856679221223726011503370227510363855012878954658961715441805363887360393421214561165526963131687962561195926115901922726824866325383385176313551984983210912033880562269586133755562518793211585089437854649896711502931703301631005144678524544621104971024013808695568180825185125714523848959151020526354704669149463451034349642754600329900508750273776892855333084544809658885482924995284663712512379052552279351462637234823096754982003647532779468896251138016706176037240636243724052595036338946213040321589968201663960644667001298742544213510097473315238039561602685576364616730047824813466505332886107390190198305655084477223111671045385702750590028295936681675454913447539307932293919032713529141942766185492555932461918249028706128232955271600627696675404275326912820294710707607793633425188191410503024536650492120860336171789125469171775512220786853479978579075666441584271592393829901652513676502530300414670386263971700129684631696554205057281821930787239866322142825990952324333103155617607115922045923970058784267144352130179239085442877946110879101812950511735364102061631273840333662715886242798148666597044880353842431348249948162041077841325851091353029042222452582041966486780940803352301621397286079799529384981673702792537336832166109229874547145351943649420623819513377245061046282202513714713121632359754232679117800553551051040785145402645573493520210764243470867694992049307025071930805780900620240311990082512390835933115584749215938045833361960164096506252948144216555921793611114283203869856529381825824428226465359818691423664837009318396606320869028924690716256163687946879251553186276876663502167620521025496115521455137076071838578197418945880109906552263527445587045561627003425272452515060548695932897770936062200478530039490564616320179615771438974850989109023434081036202639639268490529069337736116254444366865504471767228077205862382590654137179372860578895641798054834158318301600615872571906016491323009627277562044458332477069290822413892218749942628258626708337183536120528607346334099726154964697559911047994895957907772307580248954584457378760741891689224049902077995465602475243759693143456904468572268168501403410133424180383976380401167088136729859623311552427128199869603034066796291582547062924485558187604794139628349239116558852928560412830087867390332930641585727130210543868012260965303317918315211785614159099558476193279109383726407897852603173252232729423229694339333797634263225281943306596391610318801858828798477588298029024433442281337567743441508078325573702145654995502352262059889162431369697500285206248208734514064585822178184695402338963843556742427583214934943397181581166142869821559770117736250862651277907403906289643935704180370911790553468948188208925020771680787160662526188337373911158270636523739453803767171440136126601860315347340122247421565759785797362826464837198657376937953537482500451554156379442671990126971786598868616981528455741649714796579120309498323935240539376483533679976857059501257226484018628214767972731680608168097188693820234794745073592548179963046811514841485234206250795695910567169270308049856922061230358322115136161753364180482025282647263852848013492166700868744579939648573482607757751137867094248328814484004335563003473064054637033315976953529897760994533469918423953024802326691226495400805742908978148029651702676931826893118807666281457199388301275780003913331941363156650738715741779927043946969277684821068779923991529886066116727014131089427744483517605881845669341270560496194404014276852623602666948946834728960503003860229298310541121058847467655492377989750126824653945419108943421703964840979928834594552503256299568430559706113852578878117147401538381732115740505309284417918811108491940647727630789823790663270327710446377364151674180798976890952817762652882940650761178903701618147981159123203100087360529977792619172797674706629140077236401147689674585865616077335405827419597605823311729849475386591957648896668894286654459016574967240339713331229798846330075446349012500695397573937696198133463356697374638408250894332667531982415631406989800009532298252351586258677248681435353809968585927315959999254903433984293171538682085183929264610582627077158143273318320385816038497757902712893642100944314624453759622271398669363610124846044470533527937567518651804113039171354491298886513434546370076146936195027394050761500974234947028961149262453982922321367509113541069493916274111334357869514584562541262833162974776432263598124015604801259834364849994062292057301014479146695351357295744522720180577188531406069210981987690516791033924958162927141902145050683499178956122309482871358882004113016967122937937588746547158229598112215735859063872407461811878865956173342399951581943754308274984228400532150169508554607988792711753666094947059415657677283130297942273333453720546664579037927929583993389375057007868650209285568560795560833947523852413764303653036641707332715416479741557266278962997744294019996922979065709232333455475467817712124623495059054769987562244229196213635013007535226164615270774728654506048693376399023884220217177673167381553223876224347323872262795762936134087894070593289956473930320585649324279123353958461130473602430923994793976814367068674231338871005169912356591961809255898504870664800756393889267569726648853756587298390950352239049793863344355783926082576904753325486281037234103632344221350626749409669098866144839703275753765419285313591674287059127710204662591900626066970294787093282361044592510835111869723534286286153842915084414955887715206602720824138791563051131494339829794662930544049193931222065436888904781688726559627117942470115852504377241610073762181400969059725437688065046268249828564199471787286086929587122359567657538730445995280602866305170020754633871601710480699311032919408023212329224277572592764704194835512058803812512995776370129693633079926883314810818533797852968225738259316520860210691895632881572185145169323767412239944132655282768329249590146512338484315119297333333097893168007987798805684637690410957894685706355848279454144670710124148680440596630827673172329122228856404436520173799341356591652562522927656473113958312387832712192666247432688146832164580155179899408479416350264043476857793681022021574376246537968059308914312725920356115645980403105722014344611060773310467054397708640462026684502736042803319710454119410052733565453452509451952491433254729255260257323198082733240287753411503944780950135164979363384104691431095991532420322517556142885321096123811748283253692300592556880687593141775587815763898198045437052749014009181219410461233672677937458680074099005595716612726100868802896632180395167735334467716110400055654024927132882401753186249612686590619517133220845139871882791870391603448921774677140940499182869760757307072388263930608593457723083738196142253031480275540781927224106945314472938924490776328539512122389011799168999669076962719576889394757066282928356855378001063365705473191245503588706371810643037738766382245289005851993659928788758768064088689703004821474831332534051587798412492973013394951571961432539836979578192084117122482169343274641274389159158047387982061737215684926934990991701312540822112841616153133319440387195793991334437060078702035775224224185310353338504569448710257504412109604732733483840530302280302935938805330439347419561830229788139717783622671095296437083241848894529026127973661225409599842768419201139108827350878010811135224205308933935312016098495532406811702571734430794373961301573701865323868266503198991429514480019455480397910010555487907647080189923767428789377781788215268888453577981417428203840574973398324147473173165344757425854126807034986305313367271552706408149005335141447030947307088093497300535596153464883366950098811281633440086329042527656061379723315711011953543145907692260365484893147089716541558943957345736502052092473269195112972893046885809855958020845542541423951125127678011590851651660908938205101546876531894664522918937484237953997901828535285209670346549341574285995787280668603461826254958516836157401955476627755837503036560578229545889802740880972398189580068806120186915301097722495626988772949102380177156070446055205703721409282350877062359691345005850335991614120844423698771722457951322958155975775717905358209533600223921760755625055204445179350127066553930805719095039187339735974627147157658134153813425477559350771340153055904135519529657049042629625452590776411628909655634242159762312342938457494533534470858169241085829722639107914911799756768379848578635789254226282581037354481362253406955691540182467882597233797891697380500206663129100017188093800717597631222017085587230359507680085667106878888762802535384145828514124488581450856274856936529873227448523540788308389820044265595468184095979612466284316534119743482646011399463828480387057898908135269822995055007475908043981597895293349684085664629693928288362521407436658400238683682553753643605407023984385686790972930827672460860676509428863544729209725970494498538257028068864670296721464856157630620257844680534315104093365441802498549265498582760059413206793977355842086881858451158244320219616122325054566264880874274218270079721932058799734003525302774583686156245402923507054430431073624368941111608572434003705026259824087078051692125706603953684171535833986645401088083005578777364485424510948321801577936260111064936128549620659866622884776088179595684579174013960920064233319075525571330298467115118077841265346997196550617457170836990909043868212273434498142090112185177095957254462376449574863833313365511048726098079636035301201990651179611661690425960644774045643665307508286397328085317259763384545267130303218981227463272875883295206643217501573536258845431177681853116478038320937228695172775414581974710436596028238593665466353354992152045872575156067629331454044332832064181248829956775663643366588503996358513052854771760287267107693884479404997341016406309251031957980972538110683639874976165907632174596309180608088657397650636675818400193590632902177566376696711324503580548153141211033493409048937610969656354831691215680587436835532219041162529446466889442146966447088181648069982826042416975799041324831711996352638343949816498578805966234470958515584654751056293566100296345315380190732961629331246931198596718567279449001753614896540204742726218841354936475616825316118094861797109399456207814849672036849980822001809089833656583747974254423728429067009969878092859922608278503171926848089922514831235551313305634915173927444009792340669551035586852892095872327436425976593087494655204252116632420353528271746419941073966190440555997321142564619011678330834591641164649519038876230668582054038763761004620219487624537841811559713270822292855523032167151253142372644952267742554198759205623403490872969832405477131577095525557579986944223097569908501307866681831118025631297148261172486257670085679792267680961570468532263072195480157306879394799662431107778503166784468774982494883924708373524999388677312187281423837533330516986651126136265334328314546109742309437950557886435780512537598641022724329803255350174081038673851323225415858660551355800729008069587416971580769406437912353438196076062670377440668912311025171137995407065523355185779518914824367197418269215699209993453389437154307508381229446378978064177906425616772672400042264831621200452238515171229232385007842305547941724673730420179393134909373103294031559878133775633253620625147613694289838943442493889735317049688352383886082137249724617042009852076470012941108628584964537706103194512462415109889826441629636581890054710553498510536842119274398907292024362741578384544670764323890259742337403356249298093396298886331506367261279404615387317237460337581282844306250731449044539165975548467112221950457227645205805695081505611269285294424487591688692797883936351160227098644047891009783869673334709387067087217044716481865804790595958926690205954062076542606346229235637912249648028922340426428638167327075554672453709766372806322949304366267247911077012960811590954010097830480841775603318164008852629584509580268658199231403593994855075460423580291217186900475616596500538445068364961203155224587810533247795448986865686538445426928063488224485710397288266111978048805215834338357667585347247548430442393874009014534340674972348101969446799008042562714072195550113324490306712876826758017278404061457540724883636187821314476628269461346343415386360066835704619901202656355734763371943619020997611031299125582802524674291258316848429902520884691934996547618343332405498930446557513122722458697997001030266489784310653973182879546729468469008986570317583909317083242752347152925812612173889620265846881348804598633769956855366691585936185230343176975882707910839847374644315684666154343954871648360839428859028870190001800025329292372847041360835786701408315906768028149447980975497113944468852986365129474178934500661473559177749919374827502783401269408201594113475293776591878185536392194966683768665388275788598323487867287643465938986735381324246549269603068690195929173413483215202891038928034176207372741338886438892233730760106102983781936295395998640260544451986660351478432304969236395527384567456588889738732937416996323767364676624457786700783832348418432100633828002647323423896075457744888675724632014812467534147242872870576492270528612583422976440202172690230072811655950862969226936412913251413483100097904987785872319112686315037240220629287857074811802118895396219639275257680977907737544256477408835428183462931445853395481821312476358369266205556560923411772917732211210825007977224226349539992012400990694358903264924682134670332944568231643963281213881655337195514144526522442833968669740407341283551810215081124244477794122674358746994582772329965175490170440660377260653317150391999876902969386990516859917560003089905177073201092513036998430701740141126598595919537534966110152610332052862139519034727074412766961719807331181772131173674397188885521816437571042079845557513374554245955343793860211455649613686268485677858540950894420899005126492677559577728569951116468908990611558355865159332659928104815692846010621671303631514069689836304862638068519405575416240751440367337576521966625584552220059229813104103356765507732833066661832935962239909679360990012256671343147350691011174661856345423274803102808641979775950199637414931581947545215851519746026671965803037804232723875924255553025719090633944792067486865366449480035143699295146409113370790169321127525520375339271762002819185975835199759000930179332841169937251447788389486483134710566393238007733825111071789341345299429421774630178422363874226835143493867230125083626762286278204218936559973690988113514842647047686800024322086300508619360809009840856715665807377247355549735591706016975659072881407604841373782915389987699429190803932633434758207678837542439314386193185125913565844121667378080875658300736432407540732307387243276036136879052770717317341707301658822701562894159732665399967518135605109145426473143700298085397266651344936946393211528595421770236657853812883617315407621413777241149789256779307502723435424237520693421629040120588591056540724001472368198177575951706098174930248195214374068588322468892121163708329088171725400330730369862331714922487530736501465715914767720391819296612818357824281549911451302923497627251050932001291586039648071215610318199550195676042177523403677479144933479746874835561557580714769635365651667270180520626274469620181040891958408028306633966323149147862947644691518567491183120988405819399886515486674331427186974710757711940864482333102692193511508415103627159369801710293995896185549680934484551354979658495699953959750015977858251094460602747365090282170907480156814852986976702392895601829817991701773305051349003314640230264052073711313420732614528957848340020497043393518276691979136752535554505227913179367275123871772769717427469521333514712673612058345937052641408880419439387686464003419908620504682219983407917167906824663918713714998193288836179723038987800561357192082298476783869132060900529818440597246170453913886246468966000590374412550557675809533380024675524361473844389938147661572080072570806724444138074959075560097450535366529014594784426478092719709283150945002513701442458337148802754379496259401132915387591574051390450422117884670100191998647674554071381101262252190680847645888317945621131321900465440863787778887365150330216629997201386624303376763590457508396764715501272635089262861705813455775108655146285760149778348026908186252359118051690601315856129991238727132905533730729728315446491165272705091516785115201029913137095785907062307335154355074530622118498318476663187404882780017970211125000736181707546049522901356368965718931108319636197686609692389652512004779341226805547793836695366257902700717133112405721912591926239877531369004680817832150269668627196728582595646284234448454051780643051825399290128932941151384919971357700771585256002622198738224634255790288970014246187147843811668640855656018031824284275273570850491857380342770602327673544594272181127871082966569666077282294307244303047412011140141906528117116245204135150522488046602598595700271029918197546309073639411741630436667756838235496913324458230072905499055151357299988455642442432519239835730577158793934624292610480208734519924138775181578469162276969537391901885396013123428234534879497327572985215621264139196315256788240773050161377429348261346858003048115621781446031296984540018990342134154946833485971372706131610516068849866089389921151636418444563777959741000140588705497884268228313397749459967776551529630471255223399070787944328939251206308763107254588464905872336453837313345794863683887514216188942725447407076756636365365758657894447762755147189119257302932421295770714048432325901003921196926685353898726773439215653642173625393609098213208255294482777110713181589213127324417199432583250355783046448674418074639453983875487130516228525673505543395509544247163993452150133759179668128597514568561278006426528477192457482774014192915486459784900470961529304178558620582119613874327725291923610860565744676560514723362966980065182838808349129191222554881805042217772315709955668499059141839513847557343609556739983444971723681316117666014784136563152681252273175697583256858020071941533807234041751913151468471171966337949486021019839531815015538082282296048291331395970096752454435426855351153678155831049504101077431186282749779154191269276844082481166107753138424178196520382366548351323476932713151390648372365114220002182571466633823001804165642273509952341075266098718831685400209847033334410081040773639107448701785969994008911649856709521078388339802490644662444160748284958457516217435423769876810782328353384441547823625989464354715853810581060867729500368266234804257439825831776697292154284618275699654586433076042114866970307299281713068153553560720322988174026079553780839729411732909727872992079237477818338250738709659150205402595627548924085243429978703716272606176244257535365708708345202488570766179548944196343574618763986278755911516297107503313355993602314668515623290044643619549115222911995800848271134954926947787036161320792868998719548993178773674111232235806846932917999951854140661062411821746156838242689261713859962531714310545146596641496213166128353383780751680033561685033606690866293251671716862362348386834749105439022375293289335526163412690915272844175914370607806175302581611463297964927089884498937307836659733518169405541673168381527597954006353076677491927438791744960874031398323210684366643463463712259292061428591552923836171586509710273580750768803449798603769892797756759613223849634322766042484462840148765592415217683468846355805585673466224907459784157036160922941731058066994330767718940142073753200275808587314829482946977919975002975854069374522535269950866450994930318230075611767467769849194685942562482459464153159223252747901756542546927642787068938196156739384850810539624141584617935089093357302386474055500688566789368568008703122535286788793666990319017851616484887202256977325298519843204325768814702738873920703272578807961290489034080980024238446234522945656162159217991187319753459666739865834920967414762714317783195509057859192870438873620418204320493124589497796854000137764830114735688235170820849686391814073190478159531482506542403059785875729006509735140488869928831679920261567107154109482880968387340526489637094377868790003666248202634936147483090792457922873140245689791016181422179368287386911510544516655355009166476412706599670039268838015436464151825431069444306763844802203404869303929769580539675435005268337381657619601444001892587455630312822908380859896432239215732269418601104082277343744251688671725213971416694541021473576434373682661883802320527403722981012291246129762441528132828758540438908671172936302996796432348508431955298516304101520423951122095096186276001594752404058815793985432421050145111355140879092903821619619063269500469018367866847854199212777744220113967399019009195668757165657793654202783049800892130888518829159875060202215720019405563384310898691804335063446314661020452515757008079442521926385190623749950658172321609249426225365755493546207745388972372939281425525572454337996677793656252175657993096615791428713524563904416589719089317047149414236725513634532296326828559615767184862001573503566115151525266208950181177799705541289614501628121928563763948116498102645541742751011186213135619195207882695202377329915581846708557064210027117131960289182259108022993753261271808947075335325497846735724649101869117309643843524947127271268195756927198180600474969500354406806628821088017594042337778973188018679870530278354391580878458948801555965357688901052557639565595169663753098616725606020759762138023233154284869356768382633947659424023157200806168591300679181700115483815920283603808438174305730640864223627075409891749397908845061108905409179965608454924744903980496924492479902529312836711429094448674619490399155686775160071843100252218492010766008787349944368794643529966180559349273900278492199364503537256099260021900777925544134896998560713578333304752540433222563808782339202750877728901088042390411479058447699065855855002645621716366336271587066733119837849792711309676640225232620926058717065518503386152730700791026847662399544777538442700384859292853232503745136753893890001183104984624781529373227019554411549214904838880123574654011540565156459574819529045193740228863120455635721224341558365032609720696979222769755199113515058561134770824868280672673957430689841766181307043145474116789598962258142427652724549896172069219957244077078844141446582347700503435698603511638968897752951299219258313056792550623794898577893804292674695586318254324411322568369026407911344524502870556237726794886657096183012060373485839029451936472001175358067658697822464498471807068757817090608128732016521007171271190864281856656444452311663843580530780383143008135704003641291069580566558537782047262818619400328232412943912046461047214905795245529498900578481947712508007698812926972424834234889463758605898226804665295902523216921731538349661190293466982930466415093582314396676878505444143432948568506731866811371026033505021448240109194228924457515191002778696756269164757941946445081094001177101061733525668831709071057475332357223489117116959643141889736838354009468097682658677814415728111704543683815116035813475017479846123291336087143316194140006220731734148380642694309378093387965347304744253463561882733180093747183627879550587663601460089807517626618336009746016823312591673848792369824658128517595431379046263341495176148049714753564534723894277647297908735309148007154697737506327039527600998392547676428455754929315498491457634251339220343743169216225589164151599494095307823751025963497898174646788940133921073751009974742441583067154430370769438268111027288987983920989221744030221973207096775270450413642048058331765288361295540484336764392613906605412297631694717620554330905060781584339245535938506875233106744818465407472014380439303561374027453833681774920823687770898484569723148270702345377982974800976171510055619224724239412198555851593067739869098080467490760915571839976545394713593396412443171064366311965577847438958399073414988938896561985636758880610066913066672952566878028251457091882092628658806201185442539954434572485874871250707567750808678233290093051894147636587810415747134148887130066309016857400852959232617279132312973492538212257601022752836040020007562053263124377717786534545820088307039793508921127285967995202589177623397239608971617251111869356459024246396987083499276985855556299477164617403263562606037459141649845247237784171834811779073486054444761243428066601876889043465624792458936006771805697992850915649444659731289393110246002416330434565441971854356340450872287682293255440014655707696351617220278052791931796817867040220252418209290516891055882928034284554316635328219287583287038764413062791736119145894992570381529790558837458034165545691639632502839351909776584414147439473727932289691006392074584131151054590017212785119848407455486914035288442097338846966352379978284572532902022329448534498821723926955941057541060669383483759179436339643649385493982007387486634285371631224820042096705335456326306012968061185922847835705420791042369209598536669516620362213201512515898192942325910276439968371623656312333160027680017542637971429164939432182229080230249753227782662299636803237435715871223055308553113163568534075761479559674484357377258998415533328478037340994918344536990166120764039834185723133859981051413856167115171185413959221577939788831039785001432890842335908730474949528579858722081767971317320285696948666811549943029352113294209490595985278014203897385686723858499280005085777917966652922993447992652410652437641442890378319510558560664549767958354152006820733856638186310924336334323977190011119128601033306997700328993979793732518472937878248215677490595055543458940994731245790883357985814995288364791835060286019984113734024759449162927260034078088742142070472335730637594241349059110930409302017136718330216643935976015392225504257575487606252475103874950594738234579117758362713051854076535632136617535280525083103782928303027321864674260201177524849170048715652177580905829798942333856105081267212236277652768008010989590958489874906885992732138145029436771182620593881336613719213107828261003918859110545949965409451875883376079097576861407972768963836431122203848441928186216176359274619238548691987802692292884003237047106446877112521872511285201413354091717780507420823396450229838008836147166255921119959147912181921929918493738630786255401925599613399688297451391411370491195522985704366620300266236341854318381503884106316441288204092360374580312470645800066333532079017204029947367607193959652641805124156804681875463717424985478289129799806824756533019942535018249913966228102603838897257703337355442884883812772973531697545517840766681142501416018978589151287269748989112524999299966507489788426086515349519697025614960115436667306540495397639328264363210509897537545541947477176421589272316051995348873458621965770786422955140741530723824637456842085796929142748400905861284392654743131190155710181395848890964041919287419455923806879434966566562221562746624308938139537516918732710288414053020310203678961120694999298962933530644855478114055564276768452060306562375462570519168206702631811698056102101648556248032325098803764003914513799168774624335082522144562324350658057432895156947140581759728035310908451376638133188610015852975740182118421590577144904606036449305258089328808922218485700376752051019055419440419715500416876450077620412428954436682390895146379663394052207887828192840904554184613326802662544904508584051366833325391921607281478875039432157504595333999611209075117481853750161981017989845195367293387217681168429995297480363609321112821796568690095482456677895011489193952839294974347672450926155274912964781236143916730186238553408476397020934826232118260845231142213047928142977589492518400077567808917003687024315497249800132399104205194690908240838853576695932452503762372840661977990667629156688337688201226287201353663075040004737709851229734473963604798896892768857432244321956731137665000493566670069123219060250970694427584033627191431337743415043751403431731558924823436728862243478974913828671843124271233838043093040959216386162179487600757475112607244969044917936148559015411374566425389351393442827189078011986800346958339200147136419986367041049544699080310942848505620779950775715266413937069874059053506524520763232668099383541196842846177761680546142432858698864961420925708470936389504296614026216758770952285296833314089050322684879386888533591283121907673719703370077965537228854747716327138442468653964848136665044597656481057793422692393700270990448706240789697029450609819506440168702373930552664689064583233660176665004265683183457722522664044145636936888752155952986423367964866714435519926959044474493506649589692590251483412248188189631199750752284639586780144413280740940543148632303342257930543177610260537963552875894082859308422183219686868412641082687676050617522299335341111390685335077839475828668994199562368983505970972040619221735819216085943138813021541702902543767249357048443781053277517456909033877845647760017401190527101736426917753062039670014238554982962745895583817925951366722011911251978271560578948080732607999513721987627230132220858931331218596154185321202162442125373312807474134202771370575860543950638054981767552476455218028725104726060478314772299129673216556865192911249878008644194968743916502882802782934654115912885617403918183995523787285594174030027474142309934242860716623023515689408570261630227016517211711669407414458930357187397044385989997735517198945382580844818698982041484275818831350482515942754890399648007494559103419584369843314062921732223656400471312492001396955567259073050888973701237655990463024446046386964438796224377002915194800633628791261434928254455419890892637123406293779002255906259664696713250774563623250534524670425387726450723127884616464849761690644748664291083141570353894766063817629155825137309570814682801947705637160550529824835988279086370862802808745651268494614850976385825534124572278305606134062362290938562294879634776215703689294921180970123863743295981531317681024562441839089428854267809437799573585788383867014319562952029403321042081270868039188716983893017412709245344800135808944405789782875318061832602402442011696897244005342528988636206669750406572267204336622826600652392171230421312072532765208597395210817179496488993492129908776874399516061485885206630737125424910591325993123129184282542984476447272359118625802445538715909735219065211518428825134969444977403039177150348438340626000371242984671588859611518106975887722561247265948750769837466412252169371798684554505340225815016042471041458522260067977983034147297002178977538389206840142481541539477556525459056395153276698581870048732354574009460393875775556389950225866654198287115575926967239846344838003829559338842169644577201095047677491710008455343154795504469117061644139757504304138859087512598514413180949606106805848466221905508078694795767714469994681106724738500972188499204241292429576078216356006769446224840064169237013786649996525294591458336023718434805569449918738602509421443800134721310670308018151335810396822982984441076301222038901908057500443372031996128995062019526989068990293513008904898453340752775222456338492591080001850483996954218099577638421086380423794578237256505274322787848311503479946843397107237396088848008707949395711046740102607248101961863393129034993036572389385379103746093934897605400006201388635004347493141227021705226971636141681323779733046695710648734125333104931042270255675419244828357374584788891098683614611110821617506094189718286706578961540094946502064967796120970347187095354752271258314637882289364711334146260982529030252810742265095176379180084398443010217656331973447926038682735295791399629648952412328766548497947780042794446901509360647539496597573575212686033451949937867245451127237458197785046772055643917845012433429813205173948375721992319769310317143317011245880948250174876636773809154003406150840718907991139098142906436005697771918995600160284685140700521154358624853799366799469343590357554946368723625093891280553819857386865951962232831251356371049715910884324261140508782120599866916470359729361842495680032631400017990621410844562079479344653476809059630588695864979773214006042499385066650651762055292959370912722095269948742095051115540791666087249252447162191927810091754638838588928490236349536620693551645895099070123608999665696643440971343251035140803309960337532189174994169851478814886175742073085465134073619877657202798763027592670033495343206543306525340358020279426526133302417716770389845051921675170740650651072908685223517434972425715514763450016387984168268181293384742848332478447255225152571044663880789332584463090887041429004304174727023454917582500540811998044414408190642049152959200927034619850756757772132259605401436543294997625924808946581726929468736444534562359122514921892432554538305833149790090912373114356760545139995560990268144950285726407033217928732600818368948456411843908628973384988261489569726635088839771603458255953067778530166526955704209875805482780116081391709802810106666939666161371688331681043889231983959193885446310224186032491269145479534434561467373909574111634812669283192617483184014449584132453026715198034348153556030033490373622210096492840001898853059297095865056420738548496808253995965708275714382469863966512533834102084553656285148525754911283999814700637738691024879192969270636481447436830500545004713888924452005332824798054703725001680429324849902631785281815027959608394211452387523655998460310406606406819871727139986211939804195743535454752153157326740355637882016616437278755088332389550815119959109426123712921568107554166672713084272792628469799852001425041319157599736481304164679485731152768173629423994478044561415593417405141717532668608767885581283450857973663863599432423490792597758932048138847371858176861515755558296252850202929902855845722023065948705391834339030624671437092793308846808826863372509350087019090310215336242184286432803664931473932613627756404588112348755199463054112244662905955650043009607607621427063813397226219743441867022125987802068298530647128698206656914577602128873101929959965207619551577010519900905876306937520818790955579813776195013857647190173786507537773682156555045151972071768765212121015650068969511783228515949589046970721080456781507860351380585156444437975218041584846195652841122436863811836052750752088542656460552279239673618735940199226301285731691386664542293564031672950664897380866620756176594112346550222642526344338780097816794484637402931197664852812474886053676978200951331561894861089922119548610646841411057593499618679962126236731024376360817261984364160557273904405661097445128352572312724628306928976012841328031598892908154221574281645700502078173876385753035926019452897900417922456730437566929618905408934360864684037388869101881923109274709882201980849433685629549350083964545404899990347718730608177001537113322801608679476876121250593164229494183649449136182568981499488238892814226842519076717559754856377166881154545797801946661718355203611858516710310321515960025474074596503890049692349213133857998815274965172122640066905612383114865635838132623086864772883107438611946859626126387608700105898262081899731803665417352417458746068812007362454126745766049059710590236868916778958320091649958207810793763044461641100989382016726557856235286368125524850294269128364925009546513696500272732293332886534222552963801637537405526177147448373542410683440300719083990091942633385103258283041666893034037495070475681943307196556165884530376469870372583959875271845327386189531337339059807881051166284572468613899658559892093212918541716423556010947954488179189823203840699732024373508623841258699481781108283892472454760701436055568886517220488813080982916594626119821176655188505269742935927230406157107132483258568217086933451093542626432361440702417926793110204706886415815153748863501469304793116678665535723185312243518010762464082214003901473714640181654586685159533852111855631985465830312385513354818535085609235493363725710275160183614953905140889699944674645735153507856083335129502022605803843211117739973485272907569524183393868395048674421124346093623372376619088627219032214195079369747654649100348658948475985306717809028545861134599335164894488667225383139630304865884034755259656384808031635913755426702643309466701596518226002862050577496051575991407843720689000816841611579539863859676185532996811252009506386634159145991347293853463159904090687430137907111721497471622982710774298708351390158690330436166361152933723530235879020856614462289079411133642248739169860601349668548824843464892590089002299195574907274935937217652430093009177577583869081932102369005771496922388430073707028945160545513065078890995551973199282381425015204021499613721265659793188981031958728052864308664765426403618499723137828083014755576948756008873515223932379249866259204899487556242539781986293726233129805850283447920405579395420276593461035291075220623588040375619704794388656052158465465930165445999666035410248680914827948626942328296021535918443040064847668611551710280414810725249624938402116125367741566234291171499783609061528996267672686992927867424133249502453671687702630142800108846689940213252560265457020902631942752265698560668842161425339686630814534659910101868279976710671818810808662921875961597726746059687055489239281121878205649288298353568043289328861194868672381841188792565026489385747992274548622405212590152984964739337405239122677208315066523322583306984850271721575633296156332932869718888636498159966624214904390590581785160991515999079351649600584532102423339434706134328017419231193486825510970892789439155877751846574128877717152003574436393743959065036428545923300840947540993679848667470730931187075452513959689572282597138556833785688579073360622995004127636853907775883894332643952993863252944727588681613568725573130522771112976615697456295348676171262756811130894613921118525768339496895604698086070237394244390837231909315453226260244443900172480298522561814780997782853897063469757159777685578745628025961746665337724560398020629926436271188400498775871668882062217351716815678628457619241121212168798657682566299335978924694947971120523254257893024251910223989973869872349450335036881429684044828765162659043415102956411773428228996448039084171485502325153820043783263398072774125678117139558399943363340187362786218252643267018332368812986752655513029203965677955792232443748154294516876896180022863008783995275655446432770388262028890989365911301562469918233478281635162171920533979540729876133966759035395709137523242095894944417805019382052633206849653534940331157744362504436948443014272112676174439259117340679619231821551351831459299432418445445361174377404293099519348153017007613230217846437349609206738164935561282046504307366115290851190587545683953088916979204131988476781770576364557241839079364174563901808146449987303850219235444912384812170942759118521919057480663816138744901546207945317365200525209464291624840575916593737225032940382219777009229836897277436157470972260925491907739418467026106500792971427244577213006397183506619570360119855194257285374491608835313875582651254568183708347130372505827374142426771799611389183666392301733203152856535306204791484884181341800395464385537202167576632144778770033837239824403118053262125300328349224063531932721570539761734708335686465601085992774184543370727899456381099988854184064576185604259521771043117945039803370239100778056070492317246066243658864935362704431647765154113427066295729071088844758080284626330304236980963875322591432088824826145349776986943236584077196194367599611982877509213662893432135082262691908437458497528387729045996701954007842685292439859053380003710029728375936273048976890072281371177652520981711206817675125163013189788324420672539512487405886676449971888717174975688456181481930124617075425127514697685645884130403630378203447245830515836994234422170354141902845073583866611469479431369288587235228774007949026737217125042185089183873570237731375549569526272399254766640197052692006655499167297507752057536602499861416882886761601903142815661090650582545191024180947512903552583497731936899021303848588537197399794927282554173090976209996482960917175414493872578692577686879163412594246683714452641682236268994291889837336115451682947429665387911778401939985811435556092475324321922528750665786251967535766572032961251812997280738350910734504075786245011005774728643218830969271884760395527565112499970973790268789510223133598462126799589745223961251990339368838603676400439408118252052513226733207133178722274953975279521136263380075190905045614362616911037009547583428261115155053258899600457592156851230616482557971765603680780626879250641307313974222370451146695310018597160713644308459611412292860573309397668612555186796832993292466186794428921781059179277781682102357422883584557825818427806152871180839678438688232268915901069153440396294352313107228351432434203706492972304981604872193405608870188917850954490466238485357617744459790064000968551099818955627605393236580634732781302024056618721820689541056769931031627558699730378372766634657630908797417705097954631320670685067606767671141005342706374123674141333414199148648741044567730663530138612991374796794559662209998273563431982159530278182956244096769874710104989142485352763882130425827984229061910240048969005646407828198782910767204403605045034795508383918251898025980016043850851917069698787277629443448067625304820109210961101577443131772393626188848148653022951802467500581898924203188304981456027333613395661973059455333479335986427515460472352832410024692196510940698195955767911301276131873980581275408743527090281466101272284375884719392699646990144267616914888031087862038652413664972378603884234899794421047261522559325256540979555687452676031388931441944416366200114930126338030572947191465802936968711578859026352463668054232899953451009331460051918895980734979527177203020788265846603582348037236035598276530621316062852296219664168526248485572973115340471421723734232256581284055172997393336811121114481002300036475361564933204358721812816900137302579098196568607832141090268469404443516628126070100446741154877432674399345139931674255281146778867453588176945379203621399931221227494464080258976662704378250218886283343992672029901741727441306862232317077961607898420631292288561699888735994606369663134114693330865377067907110259044951575344526861976373174364444494599177588308835072264950161028946855834395328508131401147171053278656578927590722911595383019386850202335796830390287680190247111445658990591762131174023136567614815306186456392675705142554019185166028007483999210452749119835845088225495877524221248848340152200215271536713514596638654459408984292372500018852620018272588123739403525178111747868150656547715456877142894672108454683754048120869285773301014048154055336931295408603714725914981857371217823969409919909452164370799769279392647910499367543214222242349443362797980013053801712024944667918076899645167484568356226383081606961706652574236156726852031689514314239181378766574985291529363185201902295650576418072249151514283045945076814364543264663259739875370026255819937542140159391932671860712797422288135423448040502756166729944828257377853615630463334510142891506760365901062694569868780633116179341430924304203023595973886664244559634855947929440481154650252385371854768710519470928440961606565019910499414808894540268582056092014655347148645742126589422241426567469031913097516495005535902915248358044389086661257548551077452131997347402873075640687530654763075347450669045369571757293053244697856839568236409322122596907538328599643313248479292108465244194609930925944322781459722761833453965148205796745390954569819691528123000144228820769931517663535264317753607508771476623309341413315215969065394284416902453559635785621798785477789549260939702079587314583605864465565780280857440489399479745098444810220555568887769005655587820858181385779864459944570864112904026564759934150756499335132814843642246592763660151829207390383935334096124453194691555653494764153602651401983495885125631752895424804446211692647235808612349843976020594677145421429784070087865189505695349038833178896965375620444856195208467051183277921602175142710108930416791336135654046176938978872525697810852815953353228090763348184303940181469199518354876712558123962416761469289365335287221149291575871759932820929143585788143965198405751943607265355418351170470010568367146148215304790545136254049261781273480248393861424022954008680220756733359474593894770277945748022457183645138770926757603997802315089772101942892934639489064234733260632237206563569650475331796859008756873347604668907328168136570566900419005938254951502213463723291239688624157532149947703476289630860332224672454442981428644458251574876302722733168444455972162524836551470972076267060703863587218096653451187009414217003245796944380475061194344435733200335240911189009718430963710152986231643252490782665472469821730604775096793793829073898710389270141826392982293743582955100139197355891506722931841016947444696515162117127618741926108688205564532368136212644839718367161254608717846287824930655728015235660867121715098740292316647531400061634295213675928597873707177751506151688415944259059698668405974919303176844015291792515416396638524128987518253046130141001891579755706967390764603382851976254198562038999735649680594425527085745098446583966934197957288557878311647748540610890810935144604533375036089671424670237666998734098132932336651163815902808622960029280614483027914656329929391672721539079494971478502266266417154502244389164022032408953062007792984797847346286696515132032697108907843709991714048541935374293746238466819382301267237496914208365510402611288136065527146434518544561987981102351488002321380802179252424878200956821831362554455658724883751744677841819443058336058606807546838974340656652543942130413301406544913404934128798288974136929577352344824902957046948258901984973483786784762096917168583864436413452472094481015703144503947038685264015202018902138462381869643410757625179384197441373517185528691543864222935600277202703507156797891475041796462281521081661123439077110059956169989116721424153698664931446306023059864332177885257885452228381576411576282742507619303161894648242325503066801430387726563907331466460776859410538459859333961222318261233244937700397686609384310338295839811561372864737785468064857233281329753331418352512330524903957042586799761910071224435504372797945573380224349340945205736168370368326601989024399537489794351347854992237234194995604276907388333457150652891419599414136047634368199236441992473342237173242679236838826412121350833744378856669780755529791975136010326539599293849895096741944743273218593081746830431669238914242583633273854785793951216080919561008208657929980619736975273998229957370107166493163057793009672863630591128509100271609367756113802358382322797444085249139075219389071068525121728653345568534666349025531278750809100291308527732613731892088409670411492276773901634023806112285473013538692492340449031419973567252565931543580268295930198757192524791645113354651449025457187185552752979728304747914538351438286947999390916195813582846650000852667679768440941045748158882779132675902648381169996097680524977348180935182450273164993982284830705321805252452030357174483586801305644159554961028782453816602266385084375524480157252762538550224535066656600674088883021039471952760953198664188387173500102836633794852126039154965638905792304501265168435527332229188054388247236987110281649639993127089977183395065590674918343708938732736808049920722622261386713920813952274329818825660862945564659277462588408368240581039843377530172576262184756754287109440718352800187654567652141450323702042785870354663334509278343769828429921427764375167610195727308374121056025559594153815869960587537231975100977392849184679281771191929328683117583318002286652708765238507399391902622745882143606998702352538394719972560274817026935590041801459120736478245695221338728306560896199750504300377071446070259139010616501296263635824616702561365167566914061125804583818806573111287282436321966689156398438244908540572582924582639843859064264547580022157282366099305799843131950851632335288491762134646318288483276082320164339670399245451410749874097520707556376935246256206312337962205515179276359737357927271690255732764127091972502089232467462256012980469447103205778746711629978382359896553719207123588032189071402660292613756024836664058216859917225276474439935295255584761104299098672888010330904511524381453951474995389497548343748314501212321662918750210277317297489839686080827995205563772050465990451214126307642306860627993674339897588005535008827184593184039651691886854616951888313351996671221265765355869227723103622797470166113266902515943220821325245944977925319046123160784118319449653984239043084571661426444652629175073372928534267613417117893773301816284344523962993258152589394417698719730130467708393133234373075647617660744893875165670062040327715031848939829372679264542062669554405028574225076376568451732290221927482681891422920332993575509126033331456217597067569454029229690337396579144359430595223649132661283917499813526295581279753362159453869812702136292468481154120214508537556163799937293642963194612191104906436851862204221653064671652072173732604416525277475277883545221360056039737890607097975803881433357144224542847893133781583350911517612717502430448265700030928895814697847471223090513651801018946841377448228790101664404087844280903412122057864099673833552717742751225772704399464934341991198795117184292403204696805504971861420347034701093753987849692960947701619358236582693010637346299353348157508797809067855682098604953340488652621052238426544241692178397274652470930577512325219249541981899732597841349987469728916679464160222829815321086895449792728010281911888948618410198737063837618018371509369239339909935432411822599705072454444418870921924872446820483698262868881539526439576032112935229716011508639242551687659396162473406133060886645970277992981138123249513709617043758011827814946720663400994374290838649869978010218163643910445292620249895757364836825613075095509496917596304195017286021532658844342316848254386095101163334563729416750246236159675986327069838191716139926426610999499116288001153836807451536409708024399006834442932360194557895691922474698088751093837695303845847157131289247580769827809341923984925407286411059166844906819726320941488103133075183366275254050464294867470030784002547791842674123773279494086678117302038094056343267407399695068620253765667050373892954063564765634467977693670447922480510644859908781712609846719946872434870496528297401734255372218268614843244339710732968254539045433503254849010652319761214299122069478768646853526044433021615769645269990388177224079136085660673922416679978391889305568593892337805345161831853739875301967254006591903451463844376715863732394277543537177649588003386368082195253679666650117379050004562781829032000816457560733830555787833619436049311686845912546125550688605198570803368560868225964640011891059606576390217662849570856878069058625365211038038421139730315992464649879640957451926212752904504097195353303091699124249538696440696368581291671016394590274004059346965810939704978377723401701722007419333054662825716178844664655931611333623249450043044881941931819964983743243244102036611708474621214610427027588236401360519226038420624855228477702953861999194043198361398536807293017646732822256338879426277250855182623966923831802332827039439396855180546256200993976678678816195376319439063215352884263492804586942373684800218799135319255943436519814664226823468422375258949177749025642367862951562021945375578029975885197406755108010171445350265297136614600707931782473110190818379050814837964935691134838931966676948111836346617229248112820410697676866184446341586358955662885855463207332714758162664456049513605872927117041533781630648247669482652608310836474533507175274731174435097801573394534756914190565619067078187945872999854460927690710254052328920946758107006210396638803910255459266450952425107099428475699033475258043352562694963824851271563842978727130111163675474766243389169869191211081505741868002926779637944680717194247812370713535992323573865012659147101755660407884902914815542980432946405752112189037718670910514217283777960704505400262033721434589851350228022674990440503042523964943614876493344070061361319966885895839529100028838062554831331950104995757025404808372882682701561300797415752432470674111215960132765479275293639402264158207275308943669984030379530995633965686566836776698592182908548169113050109326630260946565555845670229424550870610183746993474627640708066287441092857799265471109726930571779656527209415834772857242907268898986576894370794519399853582556876594917304407090832034985177120506932198427567339076872255690360288272691622392355747381393928956182464151173453461273124892605841365212394143351925374617469128729147348711276905344994387669507848699281654245290375443791069624965736245492190359715654757170660864580415402294405188618989701528636060590486728344244810482315956598928089319352775716288213011619640295287025764533040492672597907545137180872978149676742690080510513438389319170663824475755761763734621003627192663367165115128655022430438347297098507738838484645936647229843809022901567478132769443265991882000847292691230168402474278812552614527659440408950495027249684420062564751152676765301813518308633790929996774856205714727165531065470407639108052546404335696397001204739501606938702097767345689088100924690469381969877552998761770684204780133828271276019909009614322096790529760634681821524851662338467664139178164105581768979348474975544749717917786421946130578031632079062732410246888336955636826405622087356429034619934121331560767084623906714651437071142030014204857882596412083963243233916824737518014645141554892032088406924706910861496419953056116518288185595566439336747604598686544851263112962914578383465722983725199073817252997712335206872587478006980275928509949079035296440438095798813202421793828602831405361711326438472710539312899632358006871612482802063611848759417262816259802486621505838290559240896759629780152350796625938646094964524729248059310970150386684598353855233793849109708675209679022573391958212762472401238400243490207212584781449391156680853041875520889794554004241341575116494489975353509889357895027164396310264161835609812098073374317452288460061106757295938607943130897428615534317320917177108833333806628560980102200791041513276823984124340865540356451969885584386169753115951450054099079094832580825510772932570271885507296241644809792304812138381553627097475606992608821067527078892756057577495654902190359768857793940648225095589955527457234764492749960614926047480336242109569344651560977025992618384055147214907308064871206480922736347799563068581258115840357926376810449726842151535517386716268532034757547339947038689029727107615463306030013387078083619807526284443185451667611875240717408269598202286983867701970767984879394534913478336452305702489124409912058110449691662183135716875639132352830481160985901661385132088998453612492118118705679853888269924792121721478452634265941219695915478046367743712279725829543033931200951973270686744284320727843528088688916442333026876490027587288335363102133200655830989332736604419096997014280740953929501986966072497616271053719889207743435945994036725647492962735792323918492283250409504590347459632952625165716681978956153156147658389787957906031617356496921659526914534042039423147909908523974233089162014759336691574597608894095029860484898233829643902883037622817671134637509560764178429153502147968270594127648787951464384237532546937997585393081889369441186168538527547974611758787433220422512805280162529527721763335301403344633998435354902136023336176783141135324890583861800163257880544635712250320498090144745372742228152775293601936747821057972748635621158445476974237549577714482166886128691092205360951613255875757145781477887396019346448003670919534027591973466878082906082813830586100930471055216697930428533270786515118265771004195553466021339152117727123686483125534442125359753950643590380872504846379694221671388997841895207549145924726232929514065907328865266567443873374870102972675471122383345615072600629271247535922153347453286427633120576983412649872169628942373754509660414399594506189475569393232635301243581899889534379267394167077070044745344568782901952435078407673935661908916212787566340772472726456282783740499461455399609360497171651296778369332333936842594297620933190464302102472064399209811534956622759995033449298861717469829256580120254439773528822209235347059954339117061252393229130198256161895954251731465262253467982621739535328229387987854432387347859247851007725334189093072235874785028280089563662949034371303295627205724147175423838733370731549147686925432118134435675519259119163322707539973012085022272715798802983842459416714838648094561539663219591756539757624087975659767050708928968305650835228304179118725504035023310295608855393736888699197244735737887385666354005914720754009589088453422268223400469711296198229935303662419407980169764088237578160603057404018894407893940481760783302732001416917944692170642874751377930001622346081822754754130610464912925058316591229818632339213503549493083871698927427226635413572482292229071590019409007553495438019430465113074511286068384210734875479209835682940614288007655777716246890305603910054868504367994311766568161783955831842544090826639605892179466877691398899832915406278410929939646647520238476303146122416268239298886133444574756677164591111862226759937670557040579967475287173479412624182842128611191371262461026832261128661902759430848110772398374057650999741031536063193330907440159912265251537539769512302266643745811217202587561257145022174562301586704384906587337679068707607033175882911831010374887974472430055761542094194230709044495427185139745650982870077436176229800303103892813257223757171988501166164564791454552993376762437709342019481864017796466974280774707144141944397632570914121703590627538998708681872052119924578785358922875619323047035978935562851627799397980789682226017911585634987151007514581258292058319105052111208876701308408417870719195031300677465626305188835448802931400903881967770985454054556255989791101892810467761144866744176886750330524144881878028385034303169477045094349748129787274671302400917779408011861438543694471313401604904210531385796622484078342036778498810545036124433952551481748852079569590670134940448360022289310969582139745841081498401436279514126379149133340373791554004454684022050147753566913463394477450063181363430282928112733152775673205866058613822606779164252055184410512473677312935096884237460372801517149756426567952895372537844566479955137228481280717923337116655870668786750691435145125969543672922253839921034351143208656484372637307919176798238756299837877675554202672589994578085157012988590694748729494397713790735166213594897044045754470415439592220497333902343452012278670076838064854415740998613664475097128245339442012955384187798023163341489931717830972093766452096104979000706020156288582644164504988296335356028807607343111056394992646487634584246500036528500885450990523569853464057772475501175095678765449701055277458619226775636005330095698052970685867852762339688455453842868976596618819488973600942379557870920121481558535229282518829556334218858702359295141177676851329403446081085060510117048625759107152343855238907477204825489264022305139294409634560580062769282270483797049639020440368463928397521701581336145502580363353912525279525516990040676691247019148356578378558747366760670835995637260029162586387187380960013957064288814884314415532795471738293177212084174942372324886261330216982063641233361051150748289965275876790385142336622940682047061579508274713274945835007949456488196487530007360908767847684474333243695719608697564417791721943071634886797591794305608789567522317460090982726709736140169688825365359379360423629821978599811604799344337548545500683951345545299816737044349581764922645179257368561893594625659463301592491048274912907114886282605019157150945789700387144466922247370294807878072649066585175985073886908504902196794707837309055156184540873267935664089620277615136861123479944493232492591665019268068574654536268876534377330403732621151803626731027619811623596547018821378105397999720156995914205505192108362165751235909816526130973123173620594448651351616292067067418075845963161230761891895721456611581717173786337617453351271822047776020056487383047078901030460413058628110619012190076898435565647766412241796527494791265549473464755024070359550978492237777310282456471265414785545462738614032657073373760638486516020707046830968978994479161347715433576985423043573627958098326696513430763047988648494348403463470184898526879193663745029218985821801174889845340609576278348007848926161087514127744812379439020195167411928558522207899608777968145389878251752735256196056711808850154180871537359052990037297371622270573821109273203569926987651152326969571559011727130766323046857539190262793889110842075144095235222797529999434735204743740166258215837933987889296113054931987032100806678383112464746415863199330829571707006106761150841345335479517416320094698788996443730521957610958358880215595797988848967612727622678479319663279094983712753103625576740174925010955640779318074582504792183485172761963678526551574802722287966463495863269959939314625574495954096627816073055939068995314181786800689061507068219803887177596286595908060682610141711809337785109426277311948031017399533926887052310619287948885867863912388977446869192236675873808394192031158691502637707758600405466982752343582341287138629753868179719675684414218024416454302123712487248432742145466606800234220648859346566669932545494530199202372068740210172760840516420330363881084473654731504235003980356029054959971026616235394789998196447122546245904433323076982118025745198075042868374288937761078584668897710772469368246694713879142957609531858928331532452333015507951048092410979089376848273746758404276046588334244490669000575179908547310283516559809942548522385896879943720668950948937864472169583512107026964011462697371419065010024457617566872698208133495957770331012831288142588545067416799457773556056694437761234792340370740235506788734122536012484809187231969989231811447678153044204249327523479959652241886161103769984722125447262725911747941046357570296124261831075938784677920454439238500947387865370714176419170326412080522480878449036824338190905275765524565868477237643967907933069640503792512806320310618945965001764503998684293283868806572044209155661678556778628805983263227032152561371835225334821477129719518931801759313193623867882986662301206689394498163477062866926972634696527165341642057567169151654701227377877232664005805819207666963011289877484345353865829864960591917924363459168603265077026552877897501922796677467042050380259329709704672766021072379960369631658332536418197597393570022091911140543266397478143535212898824840101305110143726663912092389679335681818013467733918674525594830974828129553497023478084746160956936856067857807724761547693601880759662440550934822512379864662333257958768044325960082799556146205585747030994322004224703587453432627038422504213561118358366979164834123714188904183363911505230487221264931492219608191913674867630746738219434408158819558222814093181974003468687561101130046019462524936726079334324875570610668328947567914301271172934193226730693333662070445068141293934621421940637158302211986518305549936708597779052465167399485382600411238521933159801201453285845317602530343879547719760322432662652740294103783784532307242332333623150475571669236366989416488599032062028606636393723111137031516819843188497236407446819621396038763385338771806442311149732879354182128240191819603830801692995625145585966034992059879030420620512455396914760376846464281843122829624550537371060453708890010061947025018000747042355800519378091085354621792269709958174590040702797590558572622046559410881286861120166450885144106841275070748280077717308264021719849172126577199211143719909598762006850890350380024057931947363852169246697582735151093427028303759285160137853155557457890452330716183238706143637887883155488518121336883142296560243039569528309035669760743373031537920395454973716203212830290970511256855457384278244325341000323597051227963875190137746309094611693202747373777731574032685078304183077548877313483313411546231814911883341453247193854024698930727830898138708644951993626713188995594731657594155828347983213660166634292749291244519270344718610186128488001300030658856295628352568361383248795507830228425393120146444020946774968746014933529688568111644466431370227386345726300533087156283479130330363640918731550276712466654279756749998391480947875231877780100084276407554844390323308127187005305493074438356299281313985074318845690173048255886481236723667318101972647893368653203029669801620116954490250492045342151572290621561655691991308269650468569808732283710976258308298793060587623323387246408845470989512879912512133744230660562091637310362073039175575219147384765187153677267429324319303337048255205482278689812945204459377726185208211655097856498131421925331336745360424366466746136407463390732803604859854907381639229941166835537687645441004094561223983911959851187361077806785735905176425860525918623713009696394172916061310309790999247605602805893389531343874809701636633604799475855079434994138046826500782234944296025521435181387979679567494990324927229350106314909650163623958285788534110875093788306098313384777683874977102343467360268645357470365123324469104174151597635723820939235668533355535959164922216772403339949206592521800233476203914025686178413080315342446820674032934116794054692964723281638701188720534962517704582394617618037558210783337294421514421022257146651602151541104906290685752336012752233981607276625506930709045360166217115321426248265634238918891356139070297260354217948886480209972693639447441968927258783370716309409808443404355598864731677973441935081366211807264064008215487634780451039617290667948753925268310590129504903423204663237890103005613680180774995538464047016592072341560411034198424066276505837119734860926906767006016159459929967282696144650860121713674023746755922113607389405116703910888853971619608410156181721292718676654137066143166594971715637192615684172452003174630111850849849735824357390182453340612506967109965860852062767410178174375619339988730635528061159461049866674934652451452292521195503209132571637065285691242998660758022612303802351384061447089546480549528586193264593550549010607543366272147341719918228066339308009196212895765915780205043943664016831878630329711408207774159103211255148449640471882842785683730788375546687881822694291997732708002288663809802189103443378830322794150451068697922014392158035409228622246384793096266871525471599348326321728016871421970508312070825629893924348816802321467030696167376925215120325467376090111557325116697557054802664908121090470273752933842402851144932110529002750785113734921761037065482722635775805319631276068232797405697949334013057659646348167048990887622946347434782949947618211709415792332686786075213762699559049145046338063117157070933893287857135493760636360391148106417123317628378427233998663168437331508149738329106238975534055698453146200032845009965976457874383108719061254341333482390755936901263516219889073542037572790632797884566179093534691234604723567314328006162521918280756010483490140621913858643230608203225703417822604219286776453216975806803451729535530428588334348852536196555716826513743953636879232067681689759087427698125849203621043423090646479471364874148962026302627440186525708273135366440524604300047980830435071041192283832183618120368415573262573267611211515805510949957939178748319236864646754182810667212018129290847361034448602775259175600155395872816071658383583941563501904763082352658891827512969365004559352456226166500490195720330432502812671034667398185234697966987868431615490604258049839466570230724711012661447057183203197428841609665104920123903387115502589467516317576243031151439059900576008825757434801508695035031194970042305263372073805273998172738804184726937090712822366004922237712721736528276647711359312796532921389440225831277394556566403119367352439234533848362639538277192838968312313150278791282234814935030386415172713742790614152494735431821428136955875023669354556746500454345494711684874255263456054659847481261144733587206937532618291960852811211397186663056760457352250611006896381185826504536247486722436225020078386729971575320277130708851718923703384189809220252316120690237685157116170052071005548751653830682874082381127882876511622120114222562090146433743498141245934354194147575860994068880912974701018734308031968320752800957544377981030294815495580514077226982586441010145269080416343368175208486610366352860827401263306924414632481939267581093579027208533345667320696242332640006447479975219900981774533954479910773749553217088157309088723084762503750220901034876555347200636501597110696709333800407966451530039403803287478574939703760333689636674941827290591236899902545457217926343874099650569527695596554271010580779494993411755789811311016078694138835223482210526179916317673233913997665067500880726404385887748412575884855954241061795890870599685637042087768054461938475293854128425289804500759382047370187437203660151268703626404377595351605071850479527182427662146823505213767263908720163234904915383991465478667549413838252081020893675172690196800842501065206318205022540643686184502090959960024578317205276467352904963620396722244786192860350297968415071214104799009584040292213847360880251679781635218901990884459360003840970541620953833575239602538344424558750790448155268947955285651902397296100157787246196151177686544010958094753695435450190787543841901418627505182360992796926691796606031692896015032251311134045562944558825527052975041929306645414941934192108998243066036563595752425894360768341419806668456299690333941845435747698831967756400306356407938361178368678260041469735544087553103395782811804590469458004454987723625933558084995534675488920226880756891556152502628535832591742419419992910144747548676948371297951918518490468492267764320328693082887004564667963107249560209783645037065503747746141802936532619918832893195286060590411791902405441883978423547301892207743829770738434885783178664734787557913075957099056873721382450092454940971747727459490725650562544426362548658093999341263134946446562369324054440362431356825999489616252091202366093715874961700719276761298111554101880584227167755106380507222526306824776827345647483537621629601247926362908141050667372029725630231485767573546381163294681057537035662134031136293691302294539622845957176482203094157410140294300844791288783255065297670581017824031763894495402740136856838155423589532264518449373146700638290776448311807698814117176563941434399057683188858169241112868581448042140211819141710714348517187028239006281450048274489043581711912004917389257807455243551412556857440391771050992896237182111844910184149117717792650317162003968734590491873250555873420908971629051972614530261725351253715350713244357263135820900092681112380091544320365517958874776323710835415265694067131200035225346492251741139869252215825819860255154744257024387050023059430976448796550759924764572069120361144190882398830883487450931905310395311650495485912483027105963878962711875844147274895461358600241368460109045126689504280766024091962192331294731843869571205787796235828211005909511093051149110330436886136263813589070362857176014920072278092606930829565292844205200641682436093010308650503083929049682129826084644082393238808923866700739210560220952522937652717341764851767165201117377495204862042571796945964762622839561667253020989475355912745366167136343769757931845851841976528119314559109533324780568104075497657823521722280570715454023877123212787605062037846300760421856306152869156168970391717554813166167718904740014824780213932426988972250901127661012888611452255822505091638479870841244104958459655075192678967221986111274379672801376094397494358712507018376160969507040181209738127408130794990478832175057284975549998501472446303757530729394541843956007194552434652088373856230292653414714958275091390252614923825427930612584257910348825227272189896520818232704699476895280508298020232739342605552247306687957945775892953566924074689211973341402229337750452881320978842622309014343471792409451571416725751238516856540903604111537030594326292806423545114946759176982974843057989325127189605676970799437711522900857550375833196863483504496668404313448387195113240953386800789089113497381701278415599615478425914365236467242745248806008076380579704481706631300261001721888308318162672189421741563348923416690094932478705172075082081693860753339678273921466912920104224041080255886418242586571041484958501146164085567281787958556987193062727335237757926177296519054104359974388701182747205736743161604010359167835807522720436197107088364935217367102877151569289920130311268345712389284101945412373436571792319853591045815701908817892167617970460208152469534669703015583842296136992017540170775278133841201435723398366400482194006690092332918534636249782234114847871196801064021517288867671752217196934339866948457199396048738749045591411320666994717710819631182780407684225950552752032546167695361237403660281777582097706940460648802685547500897481682799842420901929817626502049496729860926285869292911027980173577047566016414340919006679935486944151890305220707810729738104913095328190744911722684048213904308898538845836244624169779729394194811210480996960439454403599689703614200486380468912344601419763663054574918034615171802115305325746251777735314849592460270126039838850086324378415350559515540322701890101661690888360852452141386000130266563249724073000716795063639770229136022625062873895354245824464038693222506246640302901826485494986928595749694679269000438251389289910755153570484252961742840755133524873392176835482021843415824663654956640402899273670246802039669776456812261535485876990985861300421079213837397118177042700761414481845973188977825172792737363146515924664493299435428691920604060159232605164482510317263049117686540970134815716199633594907435061258122230167725401197757292499130024003968666828057725791376982432844248484391173730895463433045281446374898656534514845722410056430392794722628863314151173214509296776503402265795940092245746370723646129907896377148187798963975184599027382916310815976001969182683284464631309282996301658896600967630023542695524501916218986267780803200782611870711257975495741387701395717266293078114838895768017392608293163141392031365037724186035018544049841271867325520575742359302121683395878203512739027144760901575514546831555238800313000251129880559572006911143973411194823607808034425946340766704876292598927632942245274742487421355657798274655588584803891325062408480743962142374900255279385117976005415324146550505887348708232350381629272869675146161876652103874456924946245732689787072810883047528914859208449781743419215143711924627794381713930859266888956237951106224231553407671835793536544907958108815886131010737055080231926616922821524413626585066763133356732970476847055437750994754870039041536992596933704381221051212126415819227944683794440126721429283779963401296935635006359493297685424475384839813935026323190051227289169384845824434689604608095735623574919340779313785026098457409271632069818714873961049345188768878555220763441564146460128725140907148312733648048348053702033262484140927624386285070009203485677436687222070599765413174672905528667531019572100767651094958789387146382747032402000780754795473526286192370682272800146424802435474311879299440391914613675311012568186583898289860567356451094932551516293964422008087708988767847049326594736926570960019914792050777623184741750388093300621409261637587653295912519123140901370347030500987881340514109848464411355048573882905304845493568591136898498448684088073149850731351758107427838593757758948596960523153255834910390039149458616376003625658247311543796878701278088580059438879329487265174665350704492478598822870402419287397571173993824892092402972309816457245111013942737536131004426555670656597394608484271362331497107069461323913500511171456310652487102282453944601458523617973591982521577714087489145745235489206988605373437587003077533652449020265626586511338671667525221488055094276723290869157997817409254311356089238121165680760724947357749433733720137513039951957436847977015341208291653178150593341269232886906636538505294094122350857703756960460111798450933027695680397002830429599462545705124194308183458667466848320892996136270594028159131984999125394347898882605566406641308714732378509570078376136423590952645565186685864606982977515282648330901032610975274685396623774176278751860759304469324283118153256614158151175177823945544615217254278934031241271700260881884729032537508616330559587843601185613158965693925865516287492906914486199152309575393787988225456339745263591048544655782905792798258416899925306260853286472172341910853771025323378816759442923741958380237264523695268465396810242074181213155797547992331719435429714736920973727211199409549046146428335020873228080489993619752430661865557549193580771772280059955244171497523607466136908647986009821050941476631439446858796712484466211395532106630582261681008238372639062069950600470461897811347112130981829678084545597629938422119879382172949431799493844716163037927398198590462271703410591248126035713772086258519961968784533437530376777818725501128076380093988270793054776048872013306585823814793075007338495268005325991306115282693450921001400892929217979665311644793088764105152269200953392528535070754824450052313636184261467697778996346210663663372677250462226157950723415391509639041714884465138107710529956898177241864894512036585962896857655934083663124228482441263012631022310846706871324208449168762473829913751630481110069837033361915732713258618667648376254044393084782031698106914557984415204788888109752244339946936022345005682449105283080026692477815731406696734509650312290590813934066718402444090588933308066217136744981774880598271212920708863206054518310467913889858207285415065639432954018189909926175778650855033713238481785076435698535423830267566434092265490852137533575843021822999100334522551724557438747899461457131433511358098945601133318243043136524213218688305608285410106278688822646470939356438253134322104459726557481643677053377616494663746858950485565858874886737909425471347506967290731287717944684468781835964021742729747254169600331534281793232390866032654779645191587996445148836621709812500506244126645533379335957578602874234617487998804096813489933815391168517578659825741661135885893487613690542147609357393051071763240987293143353558835666947478492324959709143021729932086625658954345210785663239602368671506372039613690057492516493300225730341031778866951484155360360838048107919637628483537448753941099406389514589033437825613442793828799892865612170996150570244401789923870735431299805562968563899902956371852873486857094174686130623193788798283811207495209730019708442658020672879753810524976684703963098488914581134256153228573882144753593985576073558445536290409950046838784235468690847303289247374618985900475707781041659911304978200976469700476059382374955422362355533633145542504484693434378303886165373477549476502597513378651580795962996770058385213019264577401189433654259698624186793250048077888329442853219214314080868056823870351083618019406517843576957114823129078034051712611231846591912518974155985487171161544726631428021465950070954346096465226826368451853508190206234814931191315681817440654840880126335389198101711193882060200385916249718714705209849116562853249506558293996285679175476303404907684260171433846300996365474810291715795287450957985908571691195641261779959917596099139468434565259855437642584318273075309117323392927310751830560752276658891442319527752153284000716998746724441263085400615780810604136334244906784942037054473723956971525597948753743044339518573461942025199923351822530867538977815364387060045406301802582818022084340026189882908679600177641237340488537882576896793541912509638583412063994297936795705655645033348701500080203586370464849800925126111679069737706553510753919286896778261006912030592234285181883056424331502286302998440459290095377317206291700313823949571729207135750551927053541022261253415597214441034080271802777779690597398550551656585652681493338895208730020785849921762143661386034738401229881234788465160562503867270232391556849850227180781501066094654451301869244224983778665808768417329241982431009294261082890662191871467034553064897399300226531772818735795094548899910361148468346514621447021348588156495576476669544201564254185940699095939962117790176091453013406710644951973982674854298951893047568716300645192650998704921283499836434372344539427845221165803449327303544024602012123638580177460451787766182594449296723751126525289853314056112444358508083214575990692927768968103898103709466504624241925537841546401411514336133765349256987222247443154872754153054795683244838690944063640819731811973435271214821309292934696409629628422922125383646768613115397037653946460138259571390842306432808717155940100619225036007419866937673077892748193350859004209968958285546663317241163037000514617732177588264025565531828173466344285778742147314650926189514664330710802967610755938538179187141582048323536595144401560594287726486704986877060465978580331760359698678930060711271071821806224822074017549305349960326899758127650353816987160041018323596936658312448329628387120930640736525276207003215636706116616874129500553060729787544243514818296440378104425998919980531311923951342734090164293766449900627577640067993755841575025759089450197277240078219722946837414436192042463583472847708797760498849299082028598282177186264641015102948658026428818241527574607916883805775484330960236573449334733213950573764171556943334908359637868363204947386034206103807142479092584558759690766965210324018122261227578442912004927746745693278918872106640219995117968008813221767427614660220965986721256849092955097426937112229374043208910006526509350242293190802417519235286295589486010976176269355284891101881172739405502669261446076184707801788043875827966365612022314404263925321834305328398229324071244501644439760492489112743805694239110172195495772430602769785738456100734847284801912457395668385385471778864304090600686381408941351111203213745476287913990131601123496487868521742547894427986149208009732906517334199632302735486704041495128704024749291113967081954093889678124507252806297176458833847400044082600581594778667589475256728393537350464498561986830229178014398783884056287614797630451319450641065119976201043296594399240046791039093608892707309309781270657904264926223235496436872608716349358856843708258245783662571120483423034891805193290187442574576026102907931587872624044264246514398765704115561988185811478777599820052209621770069577058977527799157504300864858085466273208639295046913164900922072247995044543850637717006976562355358636080998165756968102331913627006370011252604149470703042000274730865061404878566520428164026934768910989866535131951042760959544937569568528277988840977885936565355096198459606608080605141622280471525546018616232226979981666848047434490395826599467856418086564629409149304003136926226216836621842602298607506975166584037371895867344496894079904509589284854946074319737138876363732038745174890518904282169897771930750186967566028137745091709871230631960228472290185347931167841105600925889049344992743636296668766936080470071973125584333920928874782207302967613066248652847306514957127345119579517000634800884087863466353235840077160281532119423136411659366742093047393837504289757293596591078775288112584400064369901071165651901970771386612176172873598418961562992058561763961468173958621714206309903825818621671966005299476570285710764078692142607432593497079155238106674839374369337221726612522880333352757303585958100540496648115002000992935506645108366782250441799855156416981983321286003455597731741998537836875892883061363522273807525133200145156266312001075724689969284993834842911799389688466538171169183224540486830153355438886720751516937693329529879991362159345332148830894710963132528540197198357010260832412979719045595946298203837516292620494359656228606552371035787830304277004252664101547954016420636027915583229389254883035280329013773270402841964044415530945904662766968796162913586513939683669934836673886682032980998678603688549345847229997022131504906147619275961844789335387418816464959264924972194645094429539966384725985883772362987522303475069882788650627391871556552560742226132348337237506224261014158854422026613403278693726664331832981837606882457697404373996745798734279113843900309955002933663684779965578047908670764538280469587727746500306882993193282112517332933590092180809847160495391379636225728729175943063586266729950256362658277714895760759408859091373729926867208775018574444990805188483212955268090224788126662578964822032335604053029920810730981089633385912205478488837788992580772530479892557919579231928173104560914737361434509341710108820357005485446242768896680913160119209565876726651629683512454083164069173362615879507151915431733879261133034621490141447943244599332620080654821635038714293483223902014233555142244524002580082426163576803114797478530678057836947151436920198658618827824839455626211098593547707179622494405987627352067469215385539064945924755255980750417687802834147866025238169896011835707211234690205687501768009537981733285619586095774035887535956520201514929205541073288784586080024024797599815159101658705057520162145231255708502974173461217943633273531907678900024710092537346595725182624088975602404008892923035107174029064797285136596288329517317007181464800724872814786248457035202258402910541548583175937535224968004946657044728437012065254389455298448942450682873749474185280234666541490732037611416966294873060180930857871793037626273982526214903828748800457148058413203592481347742820385239015479685795129557517185453949002088038640918525217539684033061556324837214607137987538241922044304757389097887657838843861402680680980921474984976605861012034129257716856260906894078993476926550691315759013231898482374721775322925741102596402969643433855065019867594709410174350281656353175523342822895803420506409801228024967691407304600114909952096440643690259022824444672764792634927899962518474504455787781815670888317605027324102559872523883295351976129203722460168387172577186584056583145310006160114319898654659372987342068083678220288141735972269093124513959818788784335066412592537766087171437179740153914038521953008177835018040281274719465021518011524936168726652926925417727163346303014454288348146214543480914019384785083218660162179735472595100613881226531084215033629888578783555011547779270848679998438334190967945712575348829460199437643685531863119691117753569435803979391177750471891283021929194287104626695831606259041599204166424992197869503556928284317332809496187260407930839253147744509654003949791908832705049153417720757499260785453637349814034484983161920685310578651161554393293179288482069543530325512913306265029995268010699336552985002350172926938072315853167955967054604337930872649445690775200243437621328067360110334894364662184426563697905627135700809934197750265417956019516259841506110244112034959048988022451001946638051146005236101447664156916213189759127267044497541624336920080762956554658995399416877951228152974437607686938425734325156863941921326820441828668477771080496725139613927891222470882569396939681284074704171829634479745007134686143350775239770168753349568882656886506736862020104491408520772938336099332710460958422302550677887352621088278537056967852200047963217749264748972091604889029827781156146139500435641487089829860956954180347430447119064457148376315705038907912082321768183141280783426577468172183768333359003700259734116321744942925229520808938164423039105035217130726376213926062089921474732582132491273256116353422715951102902026299622396559236807798946475661732405549097867472747903618064801357122002582720083055082876059233685441018555581939973384037417379098128230973310178774981469269107195267224579948466523313765124023529168986002563808226210885898657576833299352236723798143948660844781256503205163098672405374285035704740521182100273996274031600502655661661114200126180075342750881092359290862944186817839845237186274006663907160931916446284530733971711771731785220179326048670195313443039986169138054876974411170393889351898964081752951004111997116668307721211259844590926816392754949113622420093498038023970562221287093976615142786121017141807686514598689808349764613201797735995949061191751663416399138849655582902801479697189953500413322436941321501095812127900747746548353328299282328813789596324330015908001778672451939637664143357871128776739100477493268342444902704555503454649512269300814844141286921310748655769672710164450205209785421440789672928074975593067142058676047066150190107286384294165104575564319688196234752712584604780227060344339951522163092157029521971075088256284083061114076991813142113189031585541174873915547508002647328320843272478467900009212445096397121563892331179037404283451697535604962339986122584041503094635494383096946654571312547360694510354733550423646270480154877178696111580067494656270953903189990757383638609720300182642437846171403166048405683336093608515218054509082752626722415486051608434350727926541142956103527182139895010666739539538236738447234046394788426375235295578325783049737616728931474702246302675602702671735156014626901751737142613480331107235229745055493449191194242626281773684699879543372462639251247879852767539008496167118549534191443367443860961968687705815992481660778473417746918744481309278729740273824880519803667685043961244624328885855151027786828394286077606734994190494584578783585556439000220470193103092009302982701009362316869192334712286331003581097161472727218160922372136833296495276720781916896257610246960578304740257963981143191544712019716401845027952067263420706093070500038099847570469245444333910311072517130341542856352167647521302072355804896288873360563395573826927777827175417310341458920481552075150745494953476511037682286689978241739848676665767758159191567470583649153301928442169790983934715160369786179374394164341559469528914690344298723559142802399836787848545352048428737549696304481573155294556056658265143818137842478588768252414030516098103753727915780264061299193353124338629980257828042391772592190320780171505820153454164733535476745497750236580645630630677758648191652995685380450357687924720638145059403043323463094293025080240429163645887852457042344414720857523207336255292123888568656036029602780923918708220567362643287742064715516476970164047356542965785078926245381713165205509421056812400928358738570012706418962454891655194161823508531508681884484189787289252441104164085998497298564604607258117947187786523816550091950968193018863615852748950678391068329879615228759925067078663113736359534646719971115172860357155768793067335503833134410788333993144527476414264650094098511850763819108698966936685382776812068924629217177434918359247481261284399534524374248292593707312341340675405199771438758716928767276670480773728958488602644983217272721021920211146717969780988724097526481729608507978125289032168579949216184358618328380306709345556452817812723847071529603855328129999064182579707552071442621853385123806673608361424749884076158383187372047013909213403592134374247256525277115185254473196984716979884765338665935436647784020732804850989115663985016366294646634345251089428965482979513613574277752039028118760607599668974101550832812586469523220274332634833450573076599102944455564479218621589959608507672043600474325968163993351896291003038686550193865257670989006556919348025016114915923978627513319290228554021517942342439469019547482581982838003362058820217712134526115624756024948797895868734996968015480381737343623822755496049215554840828618498518540879218144671306505987727364660784068366812794177696504659694387802266067384037095044475907643121296813635899875039449137290448596643700632523832034328463269201384457920842090145457960212254615069452895137385580574662672039972773697415892856698808961716924746482095283379132739365739149861320358293272658580913059636838708110718809874164798662534704112742959592202759124686682325762977473464772627206367044038703316244138097272919736398774744079917690391281211299822789511007838865095427610849862624741907870417183082342373845546466959265505623147564469937019883368858658246227249814008481520076862746281836569461990965264659088447085288190042827049043211318182061953313289076799895097181966057203642783443817563877894289832428247686300605161479407250001974638533356154892346265269714662424735381359803805086222468095347904941847206576077198660578838409952001166971208720518547522863158061528033426318670644388247560956082411417376091288043676503459076614311034127287510996811658324323200500783303604566759667334236624063097732198721023150713534382167968562098026307949831070163184701502232651975667273202162992824202925219416052236061544523392430789966360072357834421667069608965874215496797394476616556806931213891405848346214885091816385762588998142008266002732472592089834131383254417421570308384232569781626154205370415151627440947422621732260378751006875255278814476591473095960215938467822152635441336104639877022053859343313172534241640048071408675649242334047083735377223671855683002352190938083645551297787808305059719323810819306678712410376061981541040506091135366763213774384298983488477075994164448894472683567437465451434868128468024422575333775156451745753788184558859664274745002479634786912102519833142563702485205898893122449540719353274520353232719361812317886255450634587808224939158586365318291093414439953348144836784973682771070337940319778486266139481908695114013515865529731333589208582080104306546287796804917518415580466182786128972813744394385177314241765045690657830467514125074954268243505048044121384309154015551545004761807284160029747780257301303241841483080780171792483404351052482833240033220980303598268752715227732968134246620805521435043734256703755579412183922850471478395373756295041198027617600818618956120360791018188177339274335261673433113053234788465774974700859402365136355241828964626741925284321240137830523669916206597948736062827851152960673126051445904100829674822435787460970258118819969214782428907920299938979412976054775708340240372658566799991185146309519365029692816830205212533429878325559914179736116476257617713168121494648211389111772469649381192948939285245057005018163037902570328321452479089496121401692601333743614461907019327157852767933856956148613196536399317174101116935603304543226264471135356089926627126059950886366165824719159212043887292358436543368809894874813852359767599425996628586705946562229169607265239059451411347093560783287497754329062480817615862585584755381036713236280588842363778760189837599344486579096972225443184027912310643830147897754897368033387405512712398847462724995013311228905685714769495080728911968773111338295490512090762053070023723413574163645594460113800517158457465627037498481361535508345419790910426704077104414019332702634464507545648399936293394059456097231064705894255887685769848070932956691843065319092470437654926480893765799680083421402911317435478737415272909026837359200281698984503321248460077164793288525296402637728705986949168331431223614341158212340566409903503135123499828145877579394689964944234459308548489097753735307762304567111658571443181738975341788894066916475302926899142019002033574955078040996494852020015365958732831690928064908585439657889381844475979422702329857805414155264707486961993371028019859074537497124668932943729436314256396840935066085756365051539808754501276965727321536072186685841830924024312836168099397636360043298525010710217419238403211470408786205069754229591141303220267566902000186383025319785927411586671122183431464291365922436934152878745171036507407411996189365156554420306896363995955100586018883333850586682906342780181501521910557333981261402667703553574756287995751835310280725520673340833243872105375802199770306059663184017887785012970787233606410554649368746984212966959664450490842495909060503708319016344132459142456135981574637575949173728622447644040317018880886499824082653883604371112487865882219906186627080449339773459802216793453950120652257598613378250840657640769120569295302390743636968629497606243027643019565468913626604429886086511266657574195801869200198375620716282409433348894712444742950793957516180723718439545171863467582165847058116365308427617674242810769816300346236128494432668970798685952892776133311947276059658176938808283077796527352766465511090509269713953996088412563694390860806577109780987748124373504292846985404391023410469388314539965821369317785380403236232675811518167962452121568553417377753990388312934266191320855056938334153270555733570990393712439809275176723143955153915036588216906875130303196221515000381694359851519326343720894231191553131310529407588061434506261439555750633879710479497814380754728374505870807761750908719692309861916599215587290919711447447183828547370619822039759714776831116235939484356659622006871922915356104222163793635392810686452300890419476957212227593690284834381687205844209300548117401651124991263074107409488015881771597071752330296394625131172439985489272883056869490709861533033748445007988073142948625517011680494090089577930291385496873085062455881854273977767500347678177949618835480221341686151180120453945085381709736648156729044801959161418612692070828035003925565158485674174389116465062468604092998272816042168452016182685315568051174064599682247554436797217158615519458498344418915255219389734948585333644909126485402826445027142111358966173626784685136432115455074600759038857906809263417855810989893031413039020013329211353707733156185083345071010975089637289160040546800577193874984585097951295700302996733642552255267616845045998241788032739847416890357333429879393089622014213680608802324569968221922980559040666787200018171880975695857242899205858472364351562418128399033110775178044815380765740600220663040333399013636583868728551869580091840708269324819152313286120060196681933057403788663443582517112249252066785525933340061434070928798932726907202032103713347414077808582088685055315510337305816390801738589978024490639011091642544436598324460821941088871201818005249835896476391661403758547909224516977987762724004858839348045849933524579501402673667832799811363492648903111589860807840992474832500088464044410492041264245493790246667169786660500740431896370162824843458827980258997740755202603648783802321154461900962008448103871694854580535581521368509581868568405285880698274291720300892978165047840137230287549949410146467014506818946115426971477072607638447477521376447119505313161587137962739167042128990610922739864164556675688939185005027408211093335850272689475249295511057816449144936387424670776308768651860671956504448660357598520770323598350890465083015899443161336912318619884035671976134515459060308828572580867258667667134779391795464819699435322688996500961663293845781601475360545783011506874527472880145395233004889496773590175222134527279489346085461359792813297772812747049581470028869346074200883610917893317768441339302868408025496407266263389846206050011524489238255975529751616360603417601004049539932657453599150715630859926582872796848590477694138311138634655937785197368556024167203663933139993410439286386480628256077218366805941325606928653245534347257572690746605266463020819402647908640198869375460657158386209328861501646353094743320785343998341927319359966773275196387314996681488105795759017352018241591271403544084586006118694685557031526794962287749648394234021969101805742217055924904140105548386410506663880647819809001583257460833258825352821963368251292972500516945340937706525020149209620001146922994913408940671425512683774436439666579838597254287635332015783862671258050038450335527065240416697609640144147232873253048876357844587778437493535727572595898108752025747193088062365114221363181161465288378415713547412795025006338822876251752908223670054804559675444333481581065613210331205679728977091650476622617592094323671324195618362805449021260520621279707595631248919117621650534783754649422553010798151969889255223450974532330202704765470719152931930749284531705694889840936295974555033430710801252294336984403694182451096292499642422953312415288823303613504591842415002554725848273630249646626739311368873461207516115351776536425604822326423172901377036664690268606593085011585879574355793228723688619640492432792658028795358037457012644460069121331805917825267022983030411818913637919986753771630371425099324596085464428988430601807243524906140266576816437112258605553047253550842294422020959278297589473962229413047203158610565865943153351038345363074878208710020657753116602714028798089011821604395161634392543348393397948805475475713497929553906216763578201160923438773694356076946696311294593549677955587377893869745603338322936507622106315704942851313324888586153891747750479264073819597204498812964139547811273086238491908277512430053698285376162914850433807840817635398576222582003650563399739497749816208167880102631713008275315655865364733327889794179773740838714810090227235353749038101615743229539625193469980647812319804295681915355553786881270543441594062343125875455486592098274559582299652380516910945761963514069912432635497263584507739403950581890051134092380598107353492714125771433472383998948767790146490965080687348212948702558589232120942282967919295115261076065437937333698870156130191684318860656015024291692910822780962667363171129656817353118443405822025961687501493679062797950193355990381866219694680487074053877851465931150211469734375519907995893916769253255350886552905203025870314677436229849642922778010602706272692394658738050659441979855118221672559059307935965664649752870683477865651921250225351180071379551861089381226667475145660802311492902853606421184904855425967942824353531959171145147116117008166116807210831188455118423031423874671038365125471204960507126226050820016600049537632004620650344081445196068776062940674328198901290856449727812671124107538974228241207138914871772165411804256248064123282760311866595886659645621343631022384370538846352533778917374146634107131962371440719821890375804548377043160279156094611769299238733058013847501943062264719219991679077326249519063953061719732072402115305480228293334090121846794287479074991572565449340602300541838306738449806019598833485931415158708490344522436903336157291503060002423221758489076439900746689175358465701053557163662864710149706344965439848110394198083586610465195680441722528757743918502697634518160137776232536496894025948756666282225067058995543444590684651012110967288072167953980465770041422351273494327455596465020875138963488899319446797529956610234328575006373343924001809383507490054372915504904087942353192975531880322990799408713872197184613054243667858783499041654791346860304059318220796419635342112921837160324719074168908200611120434620037578940760591159018440089580855249374945734665092325947478969660638064825423285440393920251828575771752159919226650207389200037041035025375218245033867637216702220293085999158429099677626513926432738056975845689813525161947790547707835184150960659594182852964021824153894043514003892786647744594288901757615444701457845859454040200291224343759799129173941795802189363236782308224335853406308775559121284011799758061826202804075821014106646203758476883932334420853904448379055756065826034596249623477288647371654828865351093905337882974379664977412736269696539915429548877216574689236968335929725842891198096017178226868377990372936866601830327558001347925381084486587338388719195275586128045692300349567996344746844681641212120141764000926587661520825530021126232939963532338812699735631823133889032543254250616000606376940650033601381974201308794898419524415894730407757005150811003991157179466302409141678926976138343051243393400370992415978552893936774022770013918648969134390084842639295892450288299689240573652270664830986895625864948175889965296263228176590943641008621610686185813523499770742218881131042564200124637687309132931525287285454779389783780493006766106903288846507274738713797063076299129958549525413368797277994187277989628418557808257171899844964022832940369160647042567173485454069273150238446716592234921872731391388078127530346324905952428816907313896745625668259852584382463613306255813392207266321041566218091148478036593666815912075049559444814976936801737972247084847067317000739567713653765178455966663345581512442262737114860228684039947620278978912671256776847947310589113896878954107985024771565968685842025375181451161125009425501783598437410101814449626323451267342465711887335266044990247703750031994872835721226331896681223519718820065546816752502288176320660363888175168074875174157470255517141960144624627875590092050056515241959852715140704557037281883494427406688925888266991680585005310645470868465523520802560979278197183238034538201902407746170653048222212183497339796393741447792676316676563926518783506903833748948339409309731475488572865792028400643590836690848870541822278528956252448887858672672298436201126066130142616346551912888145352412686405238778486979480663613941626424123661076804567032344678217970927648820977633158410516225100972206502077345000167318261478711763385264889636795593980814077046355164239540184664994934783431353388377709043112460319498359118689564032926962792469872531862574092702902927064037674346657703762299645757305475655723131068159481261711208228693623271468550322240431547905632568231043622509256773785970117698818613260263559761249416193322956422816621680413271085625857017904806669534535655102812205372540200223938202821812926328326283051214071255148942390052168695908536531613115136050672258762192322644491067580247865525901692467013596755677972203316888983906563161204967262650095339020463792105453404268251467338771945601417707564694933421405155586361718505381344311595304100579147528080348446871343541348314809851694458040201466780610160614781841497341845975161075782222831732939930351047408071518693345661632041523198470685293702199387725438422598230439078658672202716796399664795527789700937829343780046150073164446234625236068606932617219975003852686711312955774196321080422142471336719534318852302317406177029081207339023780212932582833400585076569589717448340262453776672718698105645755220916720461180019804424720453973193290887828739068251102071961380586719014105657221773362172385091618219376814901038050919357484674255627881466642467349417898407657913525404887750417275061036976981913864913203525459224175772089197900662010016349330823728761262227650347851240387198025844436992761367982802096365681861401770001976473254432144530200831495203852760571780337387025518499932423660350296896974791941786253935390903536304530619473911031792202476585238607629906508236874881816810008608214978491424245050332321138060844681176472891820525805994197280792180813961847683030652982098813250645474460914634865661352687168512155867269562537747316432640491847065939248491870675459558297467460301360454817332949133111636668711883885540701876471884596672648912695047973114062428393836653052332088821589538679173353787315758521137576169700648462258882473417839454931099649579051499768158837025143945161226227834322635259762645788345891918627670120088415437839612601775329241453919261974227056448135772667995399094363125798580200523641681008375676895745844735386631805674060271371603572262386424645908496846376543738691715589495479875202222469902042990845269865791278526176650528915545536130681541785219135817588601166838835981043391870277863774365729938672565441590356787598931562141200328496905123113716406272350579552251645289083702076444362938894406551052846129837664843880288216050672703248984116499285315231102716544525668203606962818927328122293896123536992487929584781458539217541308564301855596519391270752251678057504623367861433480724907048304820864948676574375972814539550898769366273460245442916182575415910396959370148581770049045791264406306739039766856485406851341163505233047332807101831667158848057112607647670108785061841924610262678331433221497026899801738309657522028999671694645468452903110304356056151406287660358989290609792114478939372160120313947357485885030368408355432084982601158277421026740233055542629934360694166119893398397692568916327290631787652886740256363300424333765286737175338403131613466282646974097417523486315337476263422386274547885194554891674100726796189142067903656206676807088398296920409622005006037547510751062713663659612213100961775448123882239313429650209906889929830875909199122421777176387224813776926116650937271721092919960209132276014702758456481726178758213894264703878983723796939720836615690029302153934988139292676120381806218455179200694342900804596621233529743123051786303606639918079373003641096161826497831933925028656960012464816466880431512082782366931559947738818766318095776652058551793606985420303397824998612303260060554011968455423203609168495754211035862866842738417153596043254499197708695497511072747609862654243805987839156117138154801925531392223216118636250950302945321140317750133782429131362991900104797419642363343381526589478661404237900780765894465432249387393560341588007744843950960801398864367966931597561197541729685083266663064292122090722751740297673206074055656924017197570242487677518949661738847273327230038276271498094587389050804763978585183088759772933450321142773710240891860739027424501574669815785801773739308232884618410769592731116045695964249609425564721961670259746089883067622662756205740500344730149108926401935689567584620149231505343355833499251862668889341451199001630400459361183941530548616139550290032013549585837090187063570924588204395327191112859020373069243332475181923289062828289719942610024220272956431123219259473050186322599447480138024028467599502518239875297502180731472426223627064350856769249589855846562887663679870755879833808377985033254627212857324702349459525353873694212946619649068358009152019242008560852290440547956822244388565714672771824756667239622717058090296254041581352073421625572529353059895018127341742580286355990742861510758633990194078861647429593620569009288243123578865615089232716459444261017036953461858341668310965909003766554468566298912929284628090506699234982604676171625427935397191344992839571501237478757958987295626286509042419902785303073325422797770197000825871129922557148101493550353683938965785289355300092367349134790904590092404764659303854309969004360606936995385983206785938655132691277577540168488199941590650552513540701796546537857154157699419014768670773030780775149439557470062668125512677784259288762780498608369649399878728257440086722485795338550196256860971569353969220390150055887499748877449186515787040086178374363271387830221180283825556628523681706155021742971300299899956302524609306970743711271715542990783828387793987950631971368124903491395549794961557411166502491845314741858523305097553336293090311572330654501325738293109210594358309914258144433685013608451592258525846561563125562380956407229524571245664754225534220563157960186173456548602186040001560058433963132343489869826360155090834363111173752741707623043170813527819590046416749907461876908746791704936239992895020228840971846098513160153468343116154096587396503044813920016223186082696595771887542620605528099916395251124009184080762240542102383933167487647581436108313804080914277378529179639410898762302957258847952008100209141702000146053088515921901488504025051497776651652378048817004922261032665518492099460065191558074766704378575406647471048645943326816198957100612841699259068583065047857869428767295534248732838502131064932528193828903397260628211020366634616222061531873959420555100399727767602037876786394225134925116250422330468049820411504401546989540718779761198265529730143683461479685242158493332218811896485411453734931045461658923502037099581312909274315081110863428198957604722459064653518566055047379341622708443694810593859068048838061331283826240583723008231342653904658616829928020681384720214890082418286233024003917191071544231763633142412638561112261156571745941784232507858346859313970981970733833070366106002602861174413290727147254285341705439772515653254775514593803777362570790642001784514526858209414405923258324465465753804675760791838168769853023756493236294304261046634858440869423285274534868889320814188094485821928573091265518763086584074069693610903798941503808265337492680060423220522225309900394369006294822131512878497038395413677193068985673421967755119855004591390025334436903811763425345984837339610622688149137730446686664277707266295176740794164481864106260512830479953559398709564123363549442964331642658941578430521230205067442201300090894941338894959221277005885820525472496529511316342047613570380270543659910175776885495338010418221736231752419252403740741990714066732535999002129418635795764516582871263285727471557285984863579972642157564503489568464379875626025053363383042246511098304854394978983459344832392060747133032472394591193860410419491833250904308831673557676471770675348258502639030590887464948828484626600779481404401976763307270055457582703427112541278302851245300634810215774105660952983670145112686125650156438302046754685854192971205575478895784080312453458969260591842825141998805114579157905331349907690400522729990507800983537566141678947678396403893957228960455600904262934586176166514106753828638085322206252501178475666844373106330360648593999602701913849512784261165062308783459214553556195947473008121149221064071246396001390992498952570534601697126574454491408648484728610279164565539003965450463752344402226275014637327464317162880376402468812547201076430774452166024549563916634126182018594681300904297698528772592048384701624868592363617102030648187907236777640024823604447791260338131503316185717378919758121043646557288823712187043299008239796583724404082046584329676583719728086477361919808977891266008742999989378211097908051870728718821386871723837924046037768814591490829591057761937008302758160617691099424577354675095124240584233327253312807807560972267749105080896556564271450822014664526488969066162647939087456123376510946072229434235972691635607031866659713988726373716418490238517378190031684046720618563643626469041949273151395254887070435445740940703596984602728316075434503017281184701750129840321343664973113743953150456312048517343701495300728525833703084215242713633602983337461501728702938254551257815455580399715368016284272116718936042961668769832927239027728715112337147916486735213215491303502097027037852827489605829712960174920645458548909459701470976650562994050975428187057016040007484173125912454457075620773296862129168673539334145452399136654213478975296833161561889547348218232760048222263386395905971052293814891788894727081009707765610385460791188994599096040330636767287414330474652059145753211263938133204303172955978811701024338388757438043279797439707767571254891833942772273382936197549544745535602910378862771085412074818981217339840785628473995512166449807658646983926733869665171958742057578109077531419658448983594543838774378519009617070430482523393284334155863095294107358558401464144143660441791213103876754287029776313493121178355073934202156776218943226743411292295607256160974093976429992763311447250712499520411368656927620969718660655695774268377786971742203862695365623276990920256926981473284570859983895258770488570120890733115022898907789007500434172898072839213007193265877494413940508460518681876444360548076810472967523661167591524430608862979527037864613616964372712449032126005845877697101966838928044925099241530769456846473717531776494827499245244745609009350494518652170671049370137360893589200266561605373436833919268623949110114114393039109990883451087397486648282275261033446941832525093089808795903344755966992056415179182189740937669925070666430121993586971551725517336158593412681808805251169840933614770538242794421072217870060626431362861863604220541941494406205014606156368584785877447086825751657790309837862289972135881883829411607454657129697179657695016656518873845750363123059706551685772995786657867585856121416529122507215693122858655895740514169166763463022641658683899928899827197147286013415688740688696332531125718990648428313722977290938322780057498735754818142149494203683960930003044787858886309529238636192693352242258192460098381996734585440933054789113578088018618642125383732918297744745585827963895502725322808658893878428022491502090401482480099087185045444340982470798949491817236283163986488414274571721358368608697996166708136818381455998008436993048543983902724790944388644440832586112098926947875754770593768238741856677458801773371553439892032898704559033114050350187778065656171068227189861393724252062769835337954238146572383131462357667737506740195196220912928151577044262347692158373904724199596680798100410542185459307029099981199842630970035762542881353741417361732536953347537071918061766395254300210439620858063167433708250097381740954324883112887403019272492925831456175016506853115427593074758358812739381544976872777023180093032189462433191697503417181244432758305233759140080936793935935866437723835905805184151979684921053828565380979122759889460356839391726231611518414243243146047219197607694102695197948235789353315284819298959000827934727026185015457297532744344589115632729488506171630844335382472674980721624347708081365335788868221700278717143687065827797998165542345983998215659041514707674068936330879229799485491022187943570451505446628706068985490349438481573782122960328957715639645406848831076815248895513797133978730818688255292737796841162308186074756338348996227630662195352085823671338586977068283335411819379356613097847932683184021723864901560819829509917215768524113123102673034232626169685978464228594526581247633177293313218031270936174914281513112461965794355163435037603128237415361293553774382992913729357395343721470666001687310934985599034909946422002088594493415498557190564046457796595733574291112205488094964593130832129033694319971638964998853745357190806689434124121706195744078899602518755123295947850907948923368887840963416301586068675696247424472676731222445022735498008195690075446505608916217642755465094070457051610581118467017002175467816398908263448490034927040171252204563104251029667771461266320613118753222470678736720429750633716612638023290597405198731173990081522642507222969531540465143296347020929583232352830072796341405256537968960483502136985220539400976749764617326385260485421976842865011771314788611596683713833053786227253852044572378866710269343374164541829285500737502090269596308032084149589791269930428817315619901499012065946263236933891657818982617538934801898081914057518006701228980229412156109185094367767190979767668913423522487739661333225242229080294050180952966549901769925911530938771013827847488086616440068159600798859021112602259739032752595468638738049873521475241989036837646564752607072289063781332370012673619476325811093382720235629980271295689373371839426579489365896238703103075550635165739727161026291649913498655881691020274051897317903733209573004049360754890797761275800025880424530883629362662207512272867585607166207762841513309036391647692127086179143418740466572835146471376104325504541580887472122650340826530674612452678344923602563921398425502857736124008865513472751328915303939674115123677373307957378474088186298792765958165745748652448499504941652877663406915590134259191768593527269153135990533457207953451118333999950931482150715223558608279041522373101709811762089806726052957007750284728516146391093378246045011535214666036463487477910548471992804154416726947396707480763544967142417876453845072507052657016469107646451302674032238955891036205900310670305244710918433119532978053889574955135237432258501311270202033789464646949509323961456024485389325309712644927324962486992746466593773078622459797724256453843817941633594773289598929696431732815543951293702770185920484540900351255539946140458732239163406517126200143404721312838118632341461581743324305392862150847433622832309663741622453678998718420150035009828019225296762944308521698105831922592604548681294598319196847835276194402275068151196955931455613440190101514275033547414574091370741469786373386084614849571906403160971663556935969269278200821368778896031379852866499756892920490679149298069953184472881783318535545456056424685442359221554755417755787316804724256841679929363672323282865144421194058880858236566897157740910540194456375134612252138524646367851432634321258754811587881691886875001459129796344821334576427466564598663802591180201902767753664783462360418204181457884695196707619588967592828868067154668708526122595784531902900382128467161969813325461793645603440928997231279595182583111639085856016317254252119512126233677176324197749284940020726358041711666967595238440535034483487385365674632471893579622161441249961761249748109115510055658985574570416684379961441565752014278362991373981866893345000063193031260331967503052734284105324995451171270305310501240530939778496405327984653500937649993919762064062554372998065292323034420370157038247598693478428021381576681050236542198255675911352375940448615520973073039242754299190602886437734505942907688633664860952390634844735462198485991942731889351893932952658729078640671695768934319808437984658033493452217256669409306595213242771209023469106027929573378626784655844620064515680744727131011279488010150263665505064055716243577448862117857254247728557948817050410892092744481211461859093662831458110197236099551027331313392205846778797444555702158658984993942955830961964025297752100869038781194080324220905420195920064113959145890657954526904634350105821777973837418887237109796884931145739378087409209787692769353366570040975729625073942332985885118986706729311458560267651444436410830577772200468844400304573532307642610312193293230783527290580311063235640862172010351499169429444395762812176763706102788393409281464069586140687939785164211944533921024842964813529877279646115676763425028159069841489462550586130436927417422224078719940378492915652016276940163967184928553651623486236334215579094728766676573695993046756903550982591853003308194583821653651879524967254453148823203411739580811474494578173330339930740293934497885403583638570695225090846495753723309569261560737511313622286666160069568419981772866173451729286317005284591303944118367254174081456458959092678492917987944621398995391666433643942701733719908913106051193911649103749596475132821396547719861823058119257159704232076846942571190255345223706812600492433956112801421707787861265452066912232230185752588649805884462771201695166531529547639094641241282338589246601213886431284409935697053742810671841335676794687074424829181946889045512139375900745386433936664483114778368529594754165908710041296508518054893462161687512984260471069670950934791898383744678074424452632343006677035637414790280917917758682276493425488660747276801542947242424234592012320735191978376101070665526164492229205876346885458785779236892417018782457177666835146572459417860692405670437359043172283675555713136882159864265003620630314637250144251535205158632363173006530795471409072868178686467359704193058716487094107637314511434558768399155963338114701026827633442303677590493050318613412359602205282472238749318531376988134834602955314005154220780204052177991926537859785533877416587194269628381996265390001292440402388376099809844113101445506481942252833426232555258801179819016542749336326323185776812202150076646588552936412607573792412555909340336929311659582486460694552916210529537833810127802671284111232533667366916770507582835599961048758883936542754926219746922982295416815922686104117373959270432826637209583622355411900087909285289106945051280462171605963214931869420458843412028265751418172436541137203891203023506962403701162722866326450900101640328457027374551935481923406953741044985193069002719649677937685935826867136742926405502095089234105859347202237937739964132387028260244212468208386988715041458596998641710436350987825515115916394155677609973234932773228199151200163269144819464136459644834637576156276098887517041447414606913189597197053547064370508598339455987801552682015983563395448032755906403396633538524664893813019382762370036627817002538446784847869372780143904614779101394319098992622782111247633810766447647903728460631067952081789277671400180907699488638323396993970541864795620294627388179790124669791829353768619883816874476515361395091511191218954919139236917833858104030921518036067489932713713605563634533385389470785405476728207374693928610106861192759221688442286374795936361421407523209731081430217795345402750882568908536942355665998367574555558091973916887783497454722791081647052131790026116875068495875105676612845359113847911980695045693288728282961475386090963528328969805457785188713637006783499843589546287161857536042097331094149134250432359935550487215066622534065287164456101822006383120267052609978303203714588319999869227057921348050000995928655367916590901516683826744375430133534776790316453190678229414648122640176827877951916604002351362360789691974052324399337546713814291269413965712524246676654579489552075338083341528387211043376969339651195392167748180518745150578861981709881751256991637010830188830267579349694829707010871290618429265569278545620250574960959627306426221369963223851298968483543930228693796247542305044905704861879059834036434049572111513359182445873484623278908859613822896996055945736064038037836042341783976389268174946132492306915291263260155174316369437117618313979775092674142949167938536420850464799556395591157863400300692979273444048856091031406861695452366377751799066768136868530763318489049986875923052993299319087751077951714245099910122776806556483502209530599559963953719446097682232216962950697340200937713427591365527789432121807470867079289640037654899078891220181528098754327244800078227734470017571697103359479180325775770634949029759417164682406730741642304093559226524603579494343014056967246962217048898398328931960628102067462476262983367743374269853670750212523471856782791134714029174101990812147492675074839426892715235349400278917642512261361843581671217937642722555917616578196351856909142272873467631452607455364646572218140039562380662155903391743956299864443749073195834481947414716729982394640265355722058981720243409429311882464955270196989089065676547371450388406942044876627047977330995970671079353825215451742601322803850461827859147256363786749599707500630580740225401135184486561335604991996639969325609495378511117975902281304533665569429465962494699007007726409421046273822602486010622488344863048649010494139149733621715073958103846362618385117575183175939660665275624748174149173509545708568011892446094743997444502980507091060024514004121724040039235419668953749912815201345716355147969135004413587210782306332702999529521720117237089087616714456711631400318468304232807275212674368066753888725392166694337428827216719369356404960079046194025990710137955099889645230824783743333381693831796148050968319657450501376752232955239930786161406784745954144996704901404737242867799047975481956349968210747670137748456865623654649169250393572126697684941692842985527563305119665637158049243076465442697836122312664947195395912921235933919774628736721021302955972663874865464776158544946298642904338243148392668348181383030363041619032787460386154993328647322468898774486962879831745129569753834482266297867318591641653198221149589481738441462166592242192036578698146038702506423646738902859876923920164416964763556729322877609417570016635279637657614887375630502426356407540636224862106134408768807498659136709777179968178445121366900219161985239187278018514475870840216966913765362677990302474527099179066384122985213705731573367964363987135603231062517536645796611095507871929606418180196328653071660483811361339120958244284077548142928637489543203674017557335711160090193228166719038091486012486007395950529120109771065023314421220912424500277391557317634838235213501314449069139452560752961266273022934996801074959152023473376035948764741797275407428633940589255506039117629708986851250199765121391444064331270380818935972433259136193413529206984933788108618461557576745289898223898959308872226188184707094261836466055166881176259889396317663567998795381519085604572380309751081290381465754051707928232016117515091285202034064956461487376156932034671908323735371710825876319600420954610474711974265880454926524744165615338610365233651688170004254913141740434569867030347723175262861086905572759974576054078078496560235492870611078966387443788629667447130700534503611448095157991953417976782624461215562141265446255999483215059699939782237622524347378232263249311594299525812475032887441217620814104220352366627536708739829790882556795395549121223629910485088970109083835469009655486758040680724571280355927863581718094955044188243771084104584793290621965818439702556885808839901832487835802784729298400262280130849466628895677657813243077476781465652041483696091911826870128343198031304980656428427970565005580428995204384767786293019790225724749788520613088235646175901413358402653317188046692259629307863769733598276201648860606098428652616582361116745739452861168324696036551612700855191207943444545278748321581754174164100600971544706284641056877520245237418072833996712072023639254037980650952348964613562050372599009321682019874615810029014745814574954387917594935357901063291084626745590918171602390135188263906843627742212583038607115864396195317186982667586623613514871985732759370091927469399524876938443122736627001044590825181831589105933069567212469988457848051760553408546611967910838073266455964583153038147592520625862806234287858465659432388216185838932056562746069268176857527207554576646376445067188433885950639097327998410163450095440175228493641358301617081000638654818402701055739012796480272755849856831454548097599204749468507048803045277232015629417874686919655747377547262910497832220677170930912036752101795900573310425780889790244154729265772302553061765720492769689840961192370588823643569551042026649320880637021939558385299941665838882278278053878764938254710547384098001845889324020401075028110251393344080524951753793886883180449968782025360733610156731505220549108071767080342117609050921129687983466218554369382239053793949199390415531819102072563826341167549538100995480318171441238010035279468969581349180546277484383081438421030681478880016070949896657786522535821471866115969375337847996029593091829446449592450284942331060237911656493427218643835368063633760472055417691224352702453410520036651605057350824215549077001119128792996457534257985166951624350112779266307839871521507756331514546917964598399517778530131787553023230247351195675423342384640747553241181827311133539453739260024336953195589104190972083083287077552576756290241501640977749274854408919174186582760632979336596492340673430417869815498185777017391773421869179614833269581808028771009288840000888040435594641147753144112352462608146680478476531410460265927861353650519798358881562784641856040031641885121507508619383747328006060270152692090609337692697931952191642226692912398840568403413019736078153161267108346311765167244244340243927511303985304516096195193529510530452211221181161247398575899494847008852614941349302842340623879215424423675698266550629857078970141933899235874181655247760140919944611161331434037077562326909991909210952926208281550728552789104788057642772640907443378170755714289643111239111275001352699602857840325690478021065801052134217860788519292921685650021637153651722219008832485258011800640053196451399310380502928068816501735169872021542528942107897435009607012120998558470064572908553821449532693897908126817126801192390411426967660972829615339122498414932637208273669267966871925321615455357490418167675840698822971353113544691169445831854367362602698142456806048228441836303838712849320555045708116428167660127382959995826497049925823272926418933564093095313730202275044106891808169470195732279800756212050047902876452176960461242435730478659123726353443517009847289177804721393305062884007175766543542639324094990839869915096640699651560737390761647816048881887783111039173725780601354410939119144027218777740611191194753376763458455742274226792370211540244413404477013752444444505672117582390571805573338106227616650447785244468282974782226141459933571025008698276711127029521292763925710095431334564147536610060949505875167702162123400991418942056702073790967372675070596896182038889509175128609193740614981461434059208661348016034502319687378149851055204966493077534418309804661468268520925155506922664383769105955942138954899638427496633342927770812979603816885315404284605886627550534329311496370260776620863704632625213200319393925047292750861656676724376714062481334227203143478333912238204059352851439976112164187640768809761956136290441577900175515987690608206149897680166326355218216386787441026235070204169203850351424246751782970273179120825546196538822361886842193473721643337461932876204074663538374645569669968473187042106707014211149074059844228123401052065134206179784931753796143477702624483755688336143446176637413031110373616147163230273573342546663545082948332092483939834325511149952018732014789603880024748057020174544280454999534379196224777413801838839945915947282593228020105855309785761049901158906606684828707899613313278977835202349281723704350995062953567628319400755843964039424807798372219303982884609685444543553479358517835308706859966826936286506382151474276056772075006748088841540146596980109724945325214058508338593946193400751079030590575788456532307801979633803105603081446225559384854908278989549987086202558161447162982068526761074525266660279790591057898694948753759942217443803100847763500216273240726151892264069616774109571373428644031323807634824324824465659378421933398696715104231234657120328664901339359736838828549216559399913852526580718059824936862360326356262201084624056787162799746765112917717754526548133876088332494785387715589489597957238307890837526677758727946393255848202789004860115910270445486887841841988694888498737471201638374406191821554238192470370691897407242840744919152514959888880328504590082548229452790967711705508793765729650131858718822843268691296509225135992017140641905914279371873413033528256557187531054101581775830465653499708311825908211971406997524021830079720860334013673288460035059630057606275169382862785813485967113525317074029087061205507167534747070994026576859888676148223560493865832082264738370998445312852921923377583769477359065548600602989235150936557604721036401355088706759532969295664190108949994057521816616282252984601962537835421655047638302240339432203374004850355920102046745367033405544207762091233907286257482878640317431475103204024979785708390038769725067246903015459064076234642692563323589642566052818311118846527554747711474766971222897513362706679563330196495714594573639175779671658582142251622310450313270647249638599057591988387785370211145897299697435606739443891658325027813235761636955141772045997718038258017680995713703151144853863813277051263556240561889838469165195941583624374720397792380331703650393926822727192149571018165243294696404880477793570149315325381732678125976376497209117721013805643384151299579479752705277395559950358559982675934754743152884301310163916948222300046380717969683066227035245899781803186802514553952456600699320431446985877625143210630426872119060282029839518789505259693713932940758589701107657261393404679838397049707726620445104016650355544690528135491908060833695624232431617548000078959375428200746714044756583887635615913401229826125758112228090396982282086829416168049080875208101412406286680089856479520364070305877757160101981601655879172815102380790319320483182819987633844204509841449271261421396731984627693482146505191922005582555450050772524921778576957018319952418947578117886861941946661596021026089993866668209718776653437590825249828310961521644915953062721329999287310097216923246458787416671875786485435458558835515039434771514504904862976789720710241107506561459258731902491515703133952444375853134553965903205531643065387155426007285740232875640569517786392406347532940976222881206230884989555025435385537184667844636756034578798108500979394924269990700035700280808073714489153932392444993315213441552917433562253277702511723570741287970323503095125592839722413773363866309998807714818990014333730125973179357849631328785570214377867473499495565826190479616408191364961613264205173746059670676647018275196893799207939754233371664525374127773195183476050166021016278936125416828220644322472192864273355168078380289826033325222605448759285322051287733964230751883953681074455891127167552343543882549642523579464140520773550624881508095663710640496719431207292296127643679699494656410103964420669162341877488702417072506952204816694407626425326727168323024736399732902721366858772653274818013141753418047381323157218181390094512925146342976210521859938640778122044305018301146028947676267559309930731946807141430163059088612460688316600172996776200355088866238646926734894598578512854223069777505558932701379066530818283538485133151245166024496115997976742301359293695306798998829632608717007464846883240958123690073592470873831519068367321377819211738381757208371433004957802875285254567846727008402660099715569582037973304867663028317414706261359791850066615466749754533183014105760750145723611711386350112906591717282581539234359788557907812980055448566168135190584877445250746673076155903341745047074562346708561704464600834044559866225289729967974523813909047703406019198888786593368399937050938119917764558283091107416602998294514807646138011762402825567497144750152143292514443495654367456249437949896164516261097246573373875367240253293258075359079796278040045093177728303244670814587631771981527157270241257998425245072391859050036529828565796693076475639997965414021555491430128405181871848709102435952891648258291802985728672548350405440538066842701414032632776544973300969683700156662948101057264801795530502352788692594223497882743887669980194341019253511000079930460269426923600263860432220709164931578135508051007148363298350944063257894117018703647180859365515672160245463458741536019732142895745108659950421093333285581291425147577121803600452711716674074421842586310101618327819733956779784096962015485773554344902877935361661273984237255785403084833805879297136950576188122791639477172872024471939891639010902546734991289968112647344474716811876350803441838745525437491469392967132366361092498552687969570681571954746107912801913200247863369565445875670768172338975745077025769276180125320928761370140327527568755231902917432362278569289631827992182587861195065717371328682001255642322664712471686341015920542620798961875611145433147520853159013601129327852485495473065513425254637879213082185934151901286350583271533095965840977538930864680095022807318719489390051643421550586423326678806641250699835769769815909127900124064649168665119103545183988202866708138373713142482930301007149669819229951201041529074946573561845904185009743346800787722121346214576768210086374771799742753096861862355811715259359007793943920489077074589908150397920990315972026391528332347318212797916796393921388271813520716403710386356124008973736058531138916026617968596324858392259965906801134817295155549955511117059198781343668668557784567256850181085199981361955367784120284114685045269273996279262536033569780446261196687785524638359614728056785646700097806266699654725698292864131275534331045158594747297759316739755491593052882768744774004351133618971933002491773808826686903294965473301818029836856525697042531532938462570835565161412984296010056549894982956695207825298366036950074362870888377933588849198143156696307390886323136981173498451451054090219051847905283987597705967851916322452866732110302854860790342362662694004276913356842464037700545438711981840821329485104962917809074865053689991602430930376790961300603011888750995578246418422006469823397751490825357924726367844011448495362020245888646307987594633686140806834624214774450702253293191337799229661730225363031348187091990954059909699289277227007920787210646259539509962887030649845949834761572389479544709018720589407372271247688921320821171328155371629986966025882534534571306075664512248065554753377120614654934296513254796652289382266002465652046289006352962322184331826225209901811566243040357751780393302287159435044451013303392667077938262733536488514459790746415648106384294689970560753491717821078535137785945256775493052593956488239555616201815040445789565335393810822411805856633669630493092774292658497559008166186558895160830458271345627494044115148912235185519695840477882928157675038197913873639230027110790171430181769748736151608484567476719781512782679833557906120114238949946680232665375517290592655486932356751576782743825207332111312238221159481594155677671173192468165664762443037708885886986980059010055143047038299971211416175935723942431175570035207569508349722667503214194210482158093188630210870776418810683115026775532387556360537793523907219778286164801550756704613472022988555474862229914904239064312767835206915217044832836435733766982648615883017544899512181640587674706025449030114754732867482650882817843865634332955280237666500906542811668296213022839658951282259177759885433675785803919699696827268053583676453162647752944411437420463653198479514571806314768242439262012079067403259609758587306734802009686045230944947156410671515081328774111863381743092565108819200874126438491090816816880486872168934256600630680158806216953802622381332574223800410765051462983632295599125831955876337329581551409768241795424639242008425050435422018835507463559653306339536632371525851768354035886953219364281874965651786984941411443654802480571798510725106778415604228679601954491962021308208747546951670200903091216774924136718053323552592060287229991366847276600432848498533007038434162017215220475247071400095127714746092871217241025119815214542096392611191387464046187386991886151696881705834865455316456050087445705577107744490709950577460769529879159589612872950435896525951854588700999932464571922598210761281938649165506454892008012690265434427130124734378168424292176254667307472798191099241929174910637959321496193736940700017368291237607839839123425394356478041338022066599744515861703520816903494186189308839043708930063303987598690283558038108677324810472280749817352618515031539682111185368319528557491114447306493028515154056439340431979125467775530717412987262484016517764133223511942634450700289731587890415000012082452267589546448412939124357062870081191682466281026290227508742752073005038178477493276017841203773446381708335335037545527067628258662014820291422866415511474010610637295394947245338657639615262551429635120811864571352266365367953765381567715137411616230725953885664876411195510271363405883095606654975572575169460109160206650934967291260150633992367804221645210956405257441752086358971641182490028362435174396116996558105810529202052637736688959882950968626074343501199229448731894960487451219384357046249792952776289381971317428343986762066209220215339843857489608841567954139760258062235854187510188219287163995675847237218562340368835663700193936960719455739940948445922446714332032562174832063034782703633639218926594868267157101544150578517874899387958822866409995021913204342867334897979295094284331331457760261579601313548502727235981665753008414176377958717106612122276554269067997755543093423289374942309185447185889639921770418450625095884951341467855046647602612982979822424541339578921586065872505113203887812701429878594874989177527527850935075592795341702336359219403073306800424006723012875516437747361829070242804085017252104972037964145699036070161151954799440269612883069864326168144672649897860176400704529299106296154682517277130968801785003445377260495897225486556689383316189560879369139377052872778063166909640059091204392774349848047348897654364726435322347537287946573713381319357249331439527533597087342935989229851248752302443736650289418975764917595891142449325577215289938594913844640031940457441143500834526092784638274063755945714488742262012892586252752125970070379853562217865197088283376992860521934537681330380747380288975007603465664285416858439498837516500623644699772205033943425348701824425783194410647671855682787593321797374306332670220492697822164255011831494981925341770329721244699179095384565734621253838050241288391280117531775423861566884971987119863972359629830529727563250286243939049109440564016144671471979930192303440718026450685610917957419319730812088671476410572822565204329271568122311691579092901012614854389955867581071711628430871230941961985387513871382303115297953098307288522090540474565673759318645630017942032286730796689750590794973797137116911421822691086912188591535361239425314347792061658985872871447405354962424015650123373571149037936432643923917398948290945175485679503857625189968618672112419732805208047369183894350259478204761469049710492893516300914482446979652506405826700007652597072240375257089537492675922603366390432510282786889039607586944413109156213083173914418152576956309156946936087397279065601159282136750221242489865542563807137889068382932422246775546713008368164906645185993826551200815661061628177579867856901790278630345343163139426622756643250191810484228488760410561189725014976986404962443388486528661742085087951095534147554810538022545882084727403035364475744580645571325236688218728287686909994154644722388988557893594630354007598156721204315235266950018221694868786554854644348031145524412698646618051184472517200048882913830252925330863036425931567113479286734690744412949683230575160217389415567569424641815871638761543790248594524171141977850803053186853342305184327554775436360415694728619225417332075268520529619335398693550417257693179577630071213792129606268046152799329859268355134312567164706817032651701480800184952998272509711252302269424004570128080382920378206654577068862668430097810066755976598379456925445650858134845104132769854576632394150402874662828001011040212442033392737405056994261199775195557209285818884046129273918074345340524884996425253083436684559524495674321867633462346267555012304364995530791036994122457443923599451956070713093883613438693814477183988997312963224578745713754067773493429730028180993095470706550467728646034289018307498301400738428745628543929333953717609220405145545266697810859561932140332332542019621011878911586747455301031864402898550923270571619085388388245465340061439974982990650044870148698860799952010969413015400507142852294037484212332095293809692770399904127708733530053180830618949011881449964895499610654024276058959800021647831551107063537441790497733447620835426959514595520131229729955817286565292974567857644193356119067409197516090223207645600260359971771975843061071201486661651348529924882848102643189513117892755298864767354571167911760060877084030536260227159900606279002941200966331968561820133912028131028017549289082252186216171621606922216113028144865696234769085671396946594103657598499328436227415034915102227693146647568343621313818574806813905952691792129724101392004601647361787093702259576188448921620250719972005881523006365326615299580106587620505702629573400268399020955601699809201363916280017845339569849099790127376324563764343009784242461259439347834024275062146748494695623889602571459830198823882828703403065091981387044258516445442122779116981975262170435865653489575112011333977342549021827629496085700045649896367803765322119677131397226020650392829730270169818191079463184459626878061371526439062491889301198285407654460042502879887620584702792047532504489802665807523071088087121233836736253751360054499765424904744037082811558002204424828096223299618476602501633642048256654652216495641562295620240018224444597021226305056360695251901484314578033310609520781224788901636504388428221518122767765669274747387774331412130143224895924548311681646542811575196454587843650547462500839108951321835556252213120399305904874810189739388291142872303281660134545055463607797827923749983239699593288773141577204969741022456087752985046518537598325334105860106846073102505153258799595392672492105645580896293130184683304619751106196944501259964658666238172763247350313205060083772237101246751865217600113965088997356884732016593564776816640968449719294525313787800667343659433272603648938030209510407976580730180434554768563218671885755965337396448228123945134679252844034887022800356272029243438461021905682327957604632184312293051090157194893388194050470465225822048930512135898185788021305276335038743029992868333038764557922695581069266710787712487964157706990868932345492375715069078702687995062293263347750020669998871821934649614405551223203492216775375324316996945923735984309002974423482088916355031526410452089656202875104372182702948415808722657979916951089621354525858487198876159337809811530451927204422758076873849328861078313220044199699260258893576041054457189341529926277000762851378641688505177952297407005945193257071613448484571372493766369435968621254596901691175957266341863632220732570605139808611832054504372057720123698167052020236790619858780672368737759373688236293484450846443995289198505689030839138150513381921250310412173079373667933091103240601405373482635653879381500981568253424528044711438055824952578489262862335036807864456831138852120711751795183214966660254956813937038017350022792672646031394517308437405226731837529433005502948546557112169065539500813795971316227843038948255303467558790057903574135111286450575592950038766603797303107639744662518106717806147423846810206556360534526688397246044743372643549923074255384003803286987365720708854127174994521918145329452465150142655877592628101582328532821658395902910388438914769560259177675246310820718850784713005383183003877003758738676435103233198195607831405296007287633953341781047830922098987987120873366418145523737855661428806284882931277179409497634581157788044329408246994320859035062572219465728109580688953881699210482107404979014623316796237180777903345834553216000113548392327420864008598995964006760924144433384379357997774966763549712470706376820338791110591693107315229496015257698142343734656133924804847774872185519240898540318899381310716576360641400781541890724043829339402001381263391858888773201225597664897883320237187290660660143242177220081722064570206780502431243358681559690268945960532624662246191887760440853727392384753473389556263568902368251973135111721408841470326700920094013316599791702188411239832090225205467955964259746067967594830042985978921116717600705130432525304484207893195425611202603150023165214313039395128989430457401716617494924663133904337778710947069748985317022609446013812578766516744474532937811356983860499897881608811933073088343566678178984099092367096231339913093906836609996762918893085121638830193975853836993634846234853207202969049267162116601203373548855957402612776530830372969162605488759235216917424710089213644702803424112405004115663073432258471290589428957905256435033175835241827667653047558700147832737422947438997522439521814300523706367106157552343464355133440600310074375899991101841941574584275437676955836800684902956373629006377329743591886176496571774740029775218721776425350790294946178409582360467720723693887796462604299739974895054123692184853291267870810343384651102263833479045766804165986852427044318622406143821682576798000601148344151081645456055304145349432565544131378420883864344639785393312870344765589095267254452911058851681151417763862594196753836820204279924013530874118668723724421984867683393234024232010427177648260850402407343015221165753392021745045478467446624522535726409758087920765916522622005224779604174650816074453032849953534774746780538958976050580045632375995419648578485588395770360654837726141187544353705120917183115063682050996216530969076088720675177343531794068323265942432644493971592174119314243178385906120982429899878066284141336902419648551121067144922778966533092207702183049165864820070543682811341634379314305812328219899746212813322096496841277179472846628630134020901839072284879986479430201754704931754079058833109699919891744789273176488875953660775129283453622155781174066468710972511042494369455004994560692693697828471923949377050408654064956060550404086290091777062997402560030499271344785968961385737600929727332562353565392357310291386156698709218213591008457323463054941695619825775224761633113811226319342492135601820902362437173770092172887039506270886478949321936764298308637083802743389475255927232323052771890727586059336855661268956405300125968783906117569555518384372806636624413221731855740639045438042864631978306510577927997009162791046703270532354576426471412578152143150120290081009945371077787165620727568461526342097074279836115126128834379601381012312631797137785949837893343680012893410316911230547294172774280983064043927766402353249535638898237926415183473036496126693833619831075858997008915816504191999572191814136704931843100590723580443080472169419104000241904126619936308521474618505922827257278384661723542678743292798346844952995971087408737266957253716179323999282511228098664323544501874591808428091915038171448967192378772476265526995057923892417526198420697910000199887201924644221171332158324933902557153155117374375398702155279241661359734881265054456507897712730544900861074621426307900945132992735804672911036270457811253838817737091691579360587516345769258615352140907134655050907620208408742383867481743296897715733060083140278440091565368902014867391164838758214067639559605070549488713896150543681430329615134814814765938979094179389870282818588566580376667336820034761042199551168281068923056631105304867337330300782513156436817634003049766668333372761473858763301632802677148678649166886978490883028754013954933354358984971014356605694021969209104478004116006937906854080848967625559703299580502889179831471522578441381888534618604487792150350116482425300234745316356689879214181251765326807967612812430866162084527547646070421613879937746790106659899590725066049603650587083858836651872481117241277991218367909136598651098386676402717463818124217825666858052505714619084807729235697569483059211350955240020048307778117653604174667167697640811975578904898733162498482254643296571094838628287756149769257165011920927309975433629290852079871916603835669537206821998592942106432355652436862143592246020538175201182348762925097646651942744771510549358605224269950612328841046871298729406350265774611614190539102306813611161716631491934814996882785810894443310904676538276812169985707319088391661560475356423655391735592735811056165199588909941474137367676472187363696445407921125518263832602891985013503687773534750379522810345929285019852766352210201046414123062078886071077129078981821113797118870657326449336046596674438348990235557124645070696255298628871505839892292577247097681176479012259456358397913754239758822130598083912691413636311911739587700178368883679220144495695505405322708550790301750892918095977313212935132664035188891238671787867326398704394061508811954390559478520927113843411424791130889612928012949017714946473729904272887622284486568470991632330955333974183119807532037746251383529345069335074629015046299744849375393475382864206500175146582112935082780225349707131926032466853768150890945405879669626648059479256493749138810779648650758296975734352728275607856402830007395460184644621094565273471418563305604170140658779683534771166032449830168471114098845739472559145299392856874359758415260477751019309685504928101486608842626074017236075392452851329076062304499467851598900370534092169285040904472857008197745247709238929892993093788631822058757618554446205042444095964902615739815149764954954279935078165911655348720358954588667480808799845917960717881012310871746603505390933642798162964400747389858779950116981070809330655522638115244356881447811242158469385052148814944302456100584231556599820156233849437979650041882221024137660591744987535972538668760497400192892157105175875326522188187412583113154245345060797547595870933319913078642416496751212171660841728311261651904326963351426855704215909601243198404697105994709220826888809777921746772993969579816195415288728520728002622050816986653617839122679233384046159532233510719305206988819288282444390968635926427483218231883072663430665340892580937770903509633673616072628847192859084336387622083737275805838598161512790391827074470409592809246583248284100666135042956637447913135017102787916542069453761390118158258765071468436267434357065900312048701077917921961442059442858634728206917792287375359099186137136394200121912154252171817005361174043225979143238577824876072135231012070722227271601061728502617019738086908537293289054493909695328895729633225348681196674948797194803106760189284441011711918105337319878676444680183264526273920299769131200435939009830360639070297379594581611923982707614237537607248311583087533581719851331204964168113408395886806100949380915731042540581688776622596388201239180012891951710749918258045661267425407263355225976937829680420059544461377020866384162195187994236516314911745318000026903080065570578835212078727174326138598697775895123034773658860045666075674747772301320720275414095603003273594570701312261547336167938442116089394969868596427818728229137452089846271590489896595751969960647352067660039438034747485585311562636373684521312071335787553802853998647015872112264789342278972020547493215859307657771325965438777983243217516881923822532216329766707042846240302920095038328370364030624727727279354275783939658901025836381799720608028438710147608671932303636561434598419811060090850933495073420128079305381738237177623256766951205483981807337103789789909537000409592929718211991706953462931195365973720848157284417964861412403831894015473473053277549025923297145588708532235187564933538045084204375731378383066100401024910978257830108340531126997050985627837118876288525050128866377874685856697234654383297404583390665040933731000827458385323443727743900198460661640966490207836176305566861155883238973032326972058138487559696718981512001816483978795679317411096730465653196734965820078234891675726797336187359064705708005372632631111161727849932808917636528577747314851552057685541631628140172898382924356803140598974687759889584907815888865304321824062331015930950499894690170341925222197066461160367105154425502726355150256574215201246329447910144046602405143982387263121030002724877974791841452256316668423699615786740100306363006325254114690582845652614062213046516044977642114014993055528823966019352169435431479699392393823105371010106976021337844137675629311106394538226024170141702886373577625115217941109984551294262950073647610383062929721761386895817518728564113669268723291671543664269613149807179978664325029894532199666800704416757187063094753712426400479168483411868196655080151019605240032574596023199867777362712397249976818898619516968259101795337783951980148349674720817164070032949560224514430126380967689764084031144806189135799484524826925855916341325322443054461434365491238001011978613501723266878347973034507266244229375241612076579999076793963071934075602199612715291078511552444767384251425857460210040954830040117089289209123546065533973424164749533367225869091395725657362709809870852143121665401861435597516674391094420943525219395115050651759110988993203374114221918410469171509674797147494491322471991028887534409727191838069076035096166012490164358524512595319046473187570086773809300651098248928666142801431138406149403131344961427549982144387356095337769497776280594838863077586451337256221594309789772851686700682372088094843146792755892136029895398558565812190006648512795943180397652398936277034138631334607407703439613239089603043269219766631376390695640774931481487483287094912383166817212663685929433228965304409138866048634660116579258922221860012384366855381989165157083004540049155629968415540039196700363962301216665674677025289451114499386056269067454225616030162215655215182045598866116204804762687060756497174817412125120147084031395258456609179706020236813364612655856642863673179925867956502798102219516688476210815435133111302621200916963642766516573246193261510392871780193835709471683193514346167103228283971677502772449673796317750001304417814744761324249120221787879715761017286094641453167672751374960786707324049849927596557220819676340827037286218380772371636107365541907389150962781797202978766818786383916955656500595750222663618896731524447025964676641179209278432599391619953406314919324411936223587609844294635363235255282165972005036984938423139733144838685181915768842516971894799901417853283859606390918111121025403046484271608571097190756924764715473598102638964520773936255444828877627561754120755970079209104257950372462604594390205341923906211861196935191856908888613389326886923557820220495350641134704533238555592564878733685414839122446870881896337423482166985496160358666809331404643718344801883049352418060147832621523537466337947314221358665349478154929779679559288917890598708298306129374536479979961308778817305719278569970028670930873160994714005893509653245952694089392920139434281461841617410412289409681668620032106411672159791460062458584440268261996430385851195508320531813803352817005317136290286939116860049812419404164283866085656013792826487786468291542179528421696884892808743259072635472515816427432734271526618713643330690412511320009502538467273189940680266264492787195485071125466692271558546503268377525168023216113785054271735445115712334052624650919409534239085968380695717021680578076420461006447670903562071381903517621619929619451673737278642983472579964157872887790876422955171476054619142809256343687810721396120538038182196784367202358784281843534008291139285091483491073206214042447109831669551962747118634494927796797400118504271159548226038841229459230283497616226842856233227096339242113876301177225625481929557815001989470566778202266379326209048038012707692200097447660721374879430768937690541029317659923472736897097188605071928852642476770315252121728016312459551505684395688218806084225584906961085436156708255004126187869642697942676849379179902200638597520272011765980684295014965036840428479660685213135677500033986019347526194174061736123005439589107696678462525349404060550029109904724093103927478896476289420650169740584103494466964548777264813026609227997709366738376369990792576479451007945631154925109047086168174115612910381193332977632729912723878188778976683262804536733240775849087492710441914929470658706635271698274151793716816329168871156601184175826252774010176391148354232396668642300808482098369305948782646196058102317637246977716638736147237207208363654116299814063042878873192805229299408087083721558100360713106378556267696397791642342519419989467260055692028459882183019171168354463299590054743177988222377942534174133690423695688013861747268907067302721136551848876649593102755996402664837964467677666745183017833064416627038097865370513600878407860748095777900761800122716241052027029292845194519582396043277099638642062214490456260338508035818292708293426298789682768467881873052563238263073056184094573219517813193914900529813427453387742321785580563098646928240263344183542246244344430152824325951333838095949847177486308490078865271283686615848940854243085592749329137841039946629815786861614453294229169738474294435296210394644117176817999021850925859273634262395438116035109617042810079504421378879735988875414699150609055223738601834056905264595273935380909844519113518217070073937223264227189455796335482988451780045639478911208599966489244571098705485506397485840555096671068408308733675243702137298903500737001129532564061039249801577252021967853853036148051583028780040415937018854747217965146347640424786409488759940263189443735279293549678966929017847388739257829575135543283309416728858971240685897158469215397022130923133543556227344655449987695917621060142851547660873368923990988655395790137101154701038007696420867005964397156118371510759554125133507822736164521210998137931363327233094183497718751081985123885672838778618549977461531723299997299626790172062196878840935044177974157144760680293736617610554186639408916397666150209952964516267739617820215590095798555851714663340491765696520742058901578370019753812041124660440970127613099046864906118663255645985595478657109325605123587921983213296997252123812280165903432753844544586732842629897270589951078905589158494814304131554669480789852959744904572479695558246465750850787862796171132232645734268254721286706382855907149370732894670177613907600789620794670867238141914631065365694350355943585773133252340199232809821134876564245666210802661525464619347016282455385243901957017442185686249917609420092744456975283751479842047030821403602551606934969262733101474319446550534573133808538638165931533224897094520780906711325546141206704405091805998823881524743370466567126494067551785460545917869792340428951063297118713208513042644731961807095928819496655289002686448089403396218721983702233064823433153870168727410535490011933805234188702569532002104716524586527101871437013312260878407252520744194250566590685791052428352597628259211736462440416267279359323767190968487549626264853271512523499907350398052868292757043279170010119475345326622296377296113088716493568454187946722153432008037952408673197024809202292652354115641241567776484502860176717062807221946171985445486091351116047470264834238946438163318761955290632485754829378523216573273106225434725268333677747661257246454866400736356122797200025469370037137330983703570058960002189455541030406557086877631641517855287334328978357140153522878623815128273081096279786827592497638812383620582850544834195200543641433654068802645300610453823686451396516874007698637033021697171780652327991804677476391918986495180690808109363507235028910319034616140365893880920747558162859696203765509897702555218433871403469518969873470186818221538126229694351493491231724940137877795401008505889185359306760505410246303172133699700163791900560064862632321509852431986857363518445441013785659281661564453313570570568954899652314442153142710068224177395772894458700049406627468105584332122827805749869662866851478376780606793487933226084859832691451684997514664715381629660726610861373227315252696438353308815939260943620977512115913193496691860460046115237228386184882454313433459017441754277642846472081610601239032915578131792388654137651622845042214352662985712924854190500370941312980071317934010461596375915422542200291076958825909341091728665688145296582798553399562403565307059007535261341705073785931757136658556155673304074672623966875585426897843184397113479391541109639274151291605050585199785108611403998181722535737806310036203114960598866241640884964707706919315231378449464179668866379344717179390443498105532983928742510603301898620096563142921319098884447508373756308502189107477252046069504917185428847815387206116312228507617481393990946207010448624355045592663774088751589644216710770527054558397653217961015914401896480978724986696416650683481788379922262558049810064097939497712291025423431945033769973348819761767068992449952466552916961623436232335188083318358679229908652964109304311754347326842049148411423873621072492553134729214795888637488518870044008262206017214509088638346058108440567724809386466560438429126138036039261433519393397322210149662938717482635778489364037930519338293778138979654194993423829924794271476105983428235871624347278908669976728223809086172338613674400644661535392715303182309265975514605910124701648380185947159917523837819844786864673536473276128547715076059104903573645486315423805842565153299588106777208234948900534378689735276751745960341157186595521661471673761959107723888843881794091393876211096880799199923202885838142519680984184903840308096115066858603628009669612475127020415704745683271406302344673132249235021123244574749685273929819740042150641186466701066803146826485562211836954359853478025918033160645827515116827377045571854515958800885851907598403997738659215286650923951062488188429193907006400823803604872027826987100088016316802389100378357200825402951877024064327666944884660372218032850979527433925102384420156558515906201065933826117397967219161677646276390374916547841509808624673711887668116291150289337985318480927102721673391912630225739198620880235847466685042946668038809630773157850487848188075128531637407382310614835063168405825609415010788672076772633407875529498209471853833742623302702589038049541497720336745638598837173239111881240542112467369088185427491333777883569705102389853927976828848220075475657308959927357131306189626901199270176147951893283348316662803395886306453683857543192485872724713594059087400354639804925146380535774408464545721566653019621301975224386466126641167122282592337302732438704394560049112309111209578866303704808163787514269682911557785336031021985416758094004062203944759599688555668003131081182166670923568116966664785425969832331840932668904471841763067081341988805228552549154419937307305247744231214977178029474214009130102393873262259055588276481302400208556362127310478950733108328839154865527747646850842224177661552063000658874575397576724567919729372322384162701230077622215550442204152296014023031886659425936584708272130076060689399298467237337641399236586772587519906193614462739403369179151027933961528474966220080468116780687215755670484477253491017840407304916982712855730310120021178891807209499599548973216391788820784759174864227267340682465089651809777048461162827272917629907202598303780245800431592137597466247366048640417350724246577828749965854333613671266227321260834351005506970333200521787968141984970164765160592989083572538371786863617711470457480219078014105820902111275975371656931042282918160266880255375902354374080374593314664512756097588311662307743176827300228044717163637295619703365263397278774599472752820951264184352311233922679345793111095945438349198592014342337502362123184193552938560343005937514702909331122892780959149173812890626656500058491405625941646603613985061684806351405098953137501702934397813206992228246406372380023334902943112185924064998988992961451459694912405386706743810865490423935991482651614603628464904079978820981692358274734536165423672096436042705169336610767704444871394198661214074607632676010657828431058998281216264899401252034564385926361373451479869343189028265635272457082668054219843259513752154092080905968181790065881501833367892130483850263674172979075329628158442499479543751762453313351668473456935032865805804400163181549351671263917424280811611885325714920405649384589790264853065636360156804747814058125659975265161766032376130644064457130672927261931455698081992783805782781105621414790879660786161336470601341656814116132272951471303636900811785370980876780280701388535459366893916974677968530744020766171285120414742896727774193361203745940594532701716070416071805361430329218215212365526989549687620007576813998191266773145566112110193452875891718005622931967510941008466069732689095111035090293986168793924369428289086664702310606235964341547311337225272602987695254159885615910478350085970768723537906013105947739808510753503634973715430358024552819547386447900516847931784426048973164501547792327109919151867809000372020397399347875617205635083995726512874398098660799235015332554141240769333729797788041153658791031517937433171690596778509047408100092362036588849580419246111766095291690418797192533081281002463422580067802252855145575226358730959626157290895747849726282969279883686881232722495977067441925483163565709229011278651697182811078789616953981830526006348547395347266023330082260967114482540492127101437027502816979024503956269916130362732211914762205162001152336708023129816080395063386328684314564480448694891980302938143880388324545930719289937008084263929555899654619283917348394272998285394996299057833241079225902189648568724987799609914008741524870505427414410182461699042930844891321556180273293435431803265186089530777935703087986648448591108314682324896079929708609448504580874518536489244998769734310576746170081702739977909755391653856857520871699255117919000041849341437531306927835814330742200779761184093548105905661262389950949935510622492034158177708603880150908255284420321277424952661104959283155816105902463958956931688941429369876281726690791020242499049442647877099166458313638848091414806157954904256760177458398580126635271521838375797220663337170949994820658835234194266988648023803228425258733832910663884163225950606752045422870885836314419023914893592424618991560878201494833744174323827346301198875109360912429066974901382677657064281304105992866807452061165670847402967488896578809258229400662614654064844338332460673311476553123171597471318425236983504374206546780194670048717563120215722269003143116000032563246524673381714142621147151340327732493690375910699519864367283104858277102640880581090617271283590910279581030218371170754265249577486756043222636623626685783969407320546101316925562473116627036821295996505339984369083635194599485735360403999375918586642835865704785628535228792501154785623399992598148158600332802888395920482571521095584929006580418996014313459629160767013354877118320519755930071987309262207670431617992623669410180205784689267772570295752932793937151201207726043786395232057945383783346260236020094149054776150639332108211365071503688854259852871277086675543091786438454121673346939095021567630011659461230500985044603042422625896433306973897383308406006501074188980108926240751967529817429810408978080974633715431357858056453861474198261154511161080135859194003386338237575061640588349335339969678670725865749737311750529298381098515604226434072528002826035457971083338617764240736033043055147419001879271687471252459410952295598577313739933261377856616585249657887584125509952183503539500940398144438581169824998701201035244229320704848639694259440168058928373843992566378210502241181546007517900881941151769787377671184760522569460398079668816906630646030181698960592764315582152710551867156739910765204008789615794385242664262957986758907684259158596520559199404818861356265740223451330240907634529512254870835536433006379812991605373146582776232072705638592946541771493984199591937944665451898205393181218518394293925625239548257498414036645275974817862144932403960800427142497571181102047844421986426446531524589010363970145397814649978652231385016318706213847753599893640669156330819700265238167327497749546503860609972503714115117956219898724907949186730638924833092294576981789840253683307250679537494910768107312247624725978503358824321658889306586551071991418845873431775405724778276712985884450002629871214941298577008353507364853908022297739613185076114119495705779605779911694486724834044446316618262880701005737414241941082325167257514068756123713614385350928029399149166636003793441619739790832932008784839615739451624185513961284655529780405480847332475908961328939299201984593988382894577095660993289080656857451335319555151793441266330894692624945943636495000930766394301336869009884801831715606237402842046007862271918720278173158473455349338955275300261341295865223396600422133747511259251457942677727792363019064726855345439395680812388129009459048472854296396728602115875180384012254463658779417472115870005918287673174021125723421877810573801216393316064352738304489614211587410815147151111575185500911223463786229985046934640909526639054204169211175968529446699723488160925720115643552358254286150784206102800852234420145826017629739390975122286612615222303684229573961215803188819143833720325262972371711753320239693213222194306882977073183399224471757040229748931846726082443610342219100129590835264091166827597183172853928782494063625955198310131267657185169038082506416809266730007180791399280387096919519471614490325128135672758831802408043615896031032342105697090048497842645758277409415834132580078065157541582840647975332683103227940358198120621372051621018148152362497229302968923569124164508271354763958740985007810377804889718101539993881623048256841114964394121444542483000586052105362368696104346678886767804319831781775224094803813754301922367120182389438449274993016593646528650112902929962379367960617633168869055617975743342885498057705144546236394885620849738689992349736317364070444099290212290873664048788157083046834716344348535964385071723660553392735358138371444986302856196117939743615307105783654274641156062763616895991774382771356818568204542817404430181518544168496794348823108793325933914226764492878215657554228997842945743830277380980148659437951565795946906086727652316927559508286878410874730687864256960715780608656489127659489962066049553283346686509758964406898630117485057593489166207097164326974864563440123539602737975278180529617589691764621090050013294965991903502655235263766237916081935867906181061603534222827024206069279912316821873894095927295250505934016239032585129121239260899638751436254785214467034414038858422369285828761719710319411429899698058129534850372564420843996816203086252190466485490449541539787493325809661106143818563755821064696505112139546957407748508896130038614062417194561409309751605208435975036945459681280611964519886243753267993371038924967201440231457145022889035167579295228404869047949744830631313456968528405433065106896755655743605665601448860308830138623979400909740578191329141034458481463694292761282046857025544211263202123227945401655824676970597219427414828147537964112636021866528661445626677746721228900808786148388905646016415351454151974814453280129036236980704885102092151755678420341143896510915002343702804951163883977649441291708990288031017445378802382946588919578115040963772264849527123264543082674552869625736639763906513244498059724067415030789272020821785261736391716042449125549306020328571640752357183442085693646579882991945158278721679958197511595386444976970362594604774203774158929349953947226319684979125845897532441396293785862534017500363249148427303458500227189860734034021370225614715834146038265505821625104783329062037538161612750465879683404706298315194898695705425355746323734611715414481490592908026485553582444241768780220741937296252376316192306520975396169779183468018043800759814362157978951968014859329735988424137112193744807975492719329797204712615058508621883874433861157425337113308449433221840713874886694552154792939665888981032229910523332519927212633645295232378033301544778653150723140682383123160612180097805543737303836446026499072032707973445799685009418470840892681546967385593285451360228437936130455525686892278117170590384876564153947123453052079765083751833641144269372898652452818719163729122351745691187630078024055719106920982070029942403373345960969754777338692596532770236844848724400720791760982476109602719587489154720621570739669244678504757804301732620435336314934018270869204288964762950014712598205422052259474141290124642363108883466615011141764144256487776477659444993760135635026434898469010061824884302278573986143353143146230106002336387527561613184975597330575793312687868400646165663726459619976787362138802891618194917425370138839196674839910008993184203687759326239131780397473027318869826523039225150031747183481868578991052434546970672695717282428171373746364255951676844039363115273932452259469184399881537710200890843224256465093933350187675277328663970967181415920192131509265955506131062461253427005920723934330480041456187046428702103789883646744754291384862684105668304749895218637345344687852827796498357699548088483980632907074269025202986686487020118580901547957223140834912017308170930245709010279828257622167453304551782045522994872367119005666113672175736469140755507324797966830420620102798062321160658185599094791753985527817236078609261965442510444486622912616423496029706989480866046661105089171533796303802800214780934464510700789450125698550528850679535906081706461033757733789010510221230612643488094766526123685247174104151638377084311660563449827197055624872325620405596532777969608707051301659142109255021509834746441420321020004105681038597250281337505562008888707850510012545935868037689329811002373322507310301603598650382158354629950533818688687352101797110021519391958371122911785306889406622647898830021675922447436187937493011136474689969552139907977093727853937439929013315097307422661539922366898118615415652924510114671217211807869789435805132631424195391402630351238330431371930110632770855580697195861438969262636941053889907642490506097425097290109507480290875505602649358123193615393278402430974276705695010689585146319030505802175467201976134621239179122308494951660574934244282879065261882814292534785824756773219888267563498682755408982439379312851161440891326402597929362878807522816277511753892702532548152082594538065967845936910383412987152548909548755909946030652977650494196173908949392737078731090141863563965128021647883197888576764428192329198897235429941833784613120027676174706976465181575451791283459436950984399848372098314499127061971441063663035324267033279227126285066906922313307307307790477926818108103384297016335526634105256105831878205207311812078436006632495466166346694686831292413291999236970814432400698475388011661511173533073226204645976292931184536346665124625239583766970038749651533352511820925184777562689237118464806650748070634384289624726194584731992122516357690971243980207899065471177099272704167997344440670310243568859672804435909883852072546873754950869722500178314631004137710900320445507872591382497241214249602052387250874851300714670690746428094331608175896368416996948728935634370868246802863102533353033796611247415046564363555483011505983680721196255070380857784722217947703976412845998138816467399707180329057919416964402733113877863598205951834835425301801155779583518767683626191223327666890882789472259666472082683612124101620014419936181156143668721012806044149888211992187404449209060428094687318226467056502978660339325886605022059666634122341859211432592137742163512281384844335981655945916393377402618068486060155413272527135354778223078565775285304041286058983191053602876528479931315156077665346894892018270029467296686486411778179938213111494227843556400141031585126313743018988018326202598461047471105424474564677248285167817550076040865892744857570008662346532107914949208952246406675219799734910128201313038700938143004881943440224827045103705863479649746835372114378943903340043068100471975993980916601091454624977813472457435472226569595044708824205735267121458278177861411528683183732165897081580197696523456742831116434314567137508034092618523626021578731796812748143960466183470666109544878850708652151131346927393416961992300634395002346027202974177316132642420548611982655127255859998687483439413680919999986357952880176128397423957078103991289336177658252757940946005491870184395086461513771311428580792614301673254392099331904801833405386259187719639575837022727923631111089424188349840688608562473882951782710815905877927710995269342406433032802614669826103414849937185253806592620055188312564027015996390996400924585025414448869999466250965036335505953764033499093487208036759653881741223468371049406565849827911618708600678991805754875826273627880258248297186518458224114651887732152010660463940656618127546070008874781961378555016939398658658756537100168763202381623785067658113409492792692377704447675868841754292386316047455043747986669951410260050015806386492545437473421921699578369973888704053955608066451095858568005554517924378632949039754919839975295106806296358312767861558367721263514159741465537128158693768717423408264689623549992111558674631796997806432802078572436962497691269878557225108567439780762213891226296368227098736483985864619738455056645624141036104082072776404688516445733150591743845935143760957143314202146638540087198981677841301187023918226128390936194996313570823893899871655315437441297781701029315341419393895538138198268927258546615752869524727753420227553115618566145668171703968937839798478987764332841234110955489174965871181412955516686313338201755099602548454277250133958064488428947967543864430010177302298607342769507483201208728576166485920002057423849486019067917500211656082824452982384236642700380208545487289319712548641730692124139357657885828805402779698148081453414897820781740976137989327050850688724331701515760873168213502025321066927705537229759629477560995174353752930385911906021545712773567456297631455059176605144496593741478224273316905924785218467851363278616545409086550074462212647935184107925349449007068151708639302852646025351234292581150487002617351101473231578339980963842525131161343891281505390290326421167820304208018152300524969419809210321251872831244479366717471468734414581742958432913200765971979329687973709292173220252163273815706395600732841650341062921673245481724186640707278390974926920169695055295152520412252142962682506843073960393409262822363402473867229915854968505407315056957108097990589494861977276412332690188945096303389460883250300011862218218666511604140279721779312443251924829017528255164943304346523936029341818176439763205696029802612072061672043665676807269338075775131568779229002576049360621644095218413576534933523738573368141725018218711189828405758994266681789411766455860626935931933464106754569052964982722083293942176587777854882762434899616742066121961327399614839627167550877162493844034179052206229112251982240815057656425358991017077336109906181862065379927307064752423634529814060737889497145775005297243756016773929191318760381912852873171363068640302402595783703161858325928942175413065285200544301224929724474335865731994589487916386441362777169447998270554520949882466786186356040200953610481858828249066932047041332931122257826127424260058760575708328061867062659005608284327759831887962410057708406950052530980506670201338691242377801247019877105834777970496023507689005824414620026535794664141732527306977444571655571074533655687481418257254573115119928027530638846017230997223164616601973634047860645079220694881046144565284067012833630226584658188451849775582959244356039497206035971228952382649049342281751884852208120862086382501080889537938916535413371120383072496308264089338973474187013573194424338842579147222732543812544882977801262522705398532278620318645995320772460972605954404664603578107391550053742940437508040774355443156884415150630010535741316804667703794165818581779702237550047353396046552417512043509850529852296587318913728113862265075817857527970796687668730955159519614977038116977742724570323160949265299619243782530226171705788858038824151418603972682688408581521944994836856429806152922115979143656819212320623176322015804759967634186212267149872302906879210920128631092176193181635617627284122838650701827241129693563401014863384576868928050182814602631390443674744313152868305700860361665948264245493388023470153775074479900220288370844886608530175323985240216374613839703072696560225310589890567053056262118650313990580505105800944224684798024840050660290219001034477121780341611994454426435898515914921185811603456388093943479834269029222077970096193198794025453181319726636145102733839482288661710546794264892652742140019830043927278687935857649129831646453296584785618528259542540778065702040416578062445390889852324408199886316238798887837037276560125644898145513402351297986702013423550149905319319358356261811046240614913358332253678360113444321461871344603660768097691086147622792212248589560239071764683655318984513187665197117524289081714019754573724836277841975845528317559165915945672268814548683077428498787870971684248813490794298122394083805417128118540065796114795022776058672243200330999315554560193502276282401229794234165105495732896301661252565666818609011636056657715627908418629708109712269066333798152459170489945369204425246191582457845752545791884489754114055864294571592704847681155175643130432013373178593178206535630386220772007645675757400072991010054884409980985414596643668985108214580354106354239053264734135926823715681326476203436471828762672624858183710920590621462956747553342693366440035827507571521860007394381131242106379619156927324711538638040888509535240779748783193917166692635843269814026780088227295560675728341860687596268528816140722425612207593171504801692654230731615375695845932920065896332923284643037444626747320706445375033960231740374345785280404939417563641908281861645779973211007508181435015867183433082323562874711225068780871354316573817595676980374145984054216569276416393229588652116936910020048693583906096208874365409240035123363885542477202039793481191456812258291830377841888429899207573259045074417694619000913633098478329361929999925236949037689341226168578168852718527633862938268751969387813985588044098142079632888958126398845425774777055805920945888427684982033298154398555113203392349868356163765993296360629187604381732114893893954251247653512051726221128064598126067110994393902481807655981893397828534446856100314674443351618348987713422064199943230556179127302027927908531196514480777368603126673119830129921254515590503787755141730291934018361932539347335642120924162166223966352324794250977964313702843885182319927508542583071507734935488299799274881509401432071627666917133406291673557568867360704922405107417013343359700607315558825483242150423365972522868125088548197647114304381260610369951596757522787920298186127256032693644700264692925492387842913065768875033358021113774347355220855470486856554975332621268575396728760103174606341873553235173411747953941804539848774253846291308246285757254078294117225398037786557265621175352050132264759334819609576913711077436269052433311181609493756710732534277024783045938630467530943251025128439704695966726664570580391832531784197414653371335985008150536863548871192225165898410284040791781835471162412277435821504848623635322779358368187299833761224094669568621210609488419476480274772992110508205412771782803957787081635685586475964339041534973779966914340259270041385287083173034094474429389313723474010067688093839742600337868262897127228548102526725137580595608046847429012009631604064742558149866553782755855331210823332919235720947985365399543063433431893795032450529135362723502160563174997457330821875665503513969554903174002575026730204661959522796317737984817020108017924797947897604021461951367629649109410318630999352504389108249454309345100651425724623521111114113755546614251597073516800249161097229949071054486466265423181894215703474105188115027957736025412191765611782481332247614780207491450957981987695580154225523171029200307934837782063648713276729369854523242192058155626847907275661937986544048838577483851199323117761810426696093056052519982140010627019532577273910889941801015595160438885087428053485544139432105300817229396848805923713277807301677553123777065127382763793361730537054441700864958961890648862363584339752996306987605062846329848043600669232840906399583915960298463415524137091079238129053538766278813192766321419395166784184055866113457774555516110865805509660589858181334464141607684401248701817355516664747749686232060377938480134444228078777170784142736144455066280730662783154906612335992558772117240757188933901846661790652900648222893976241259204112891204386361768626654205022587516122265954729930692264259321070481049485217910045268016337868724198013884769572247148003190328043735625760886856289925654005838405352768736481576886912858748889265832391347462444182369612088098124333253969971187869840987116155832311678189576026229003371833501934666550582583173046816280827926631556661755354043082831920633601302558579544898232173522669249169728176357609101110405068588957799863381710112270341017179191987667170014406803009117995215379551300185533595874541653039128177636924099327788850837449780412700385107219350071350976553384433471241552066945321484727822999254002187828249316900601380775019621159045430527045697906063439024091166516746453855463349225044709210371056991695565438717952706214114883155039346926720313586274460546923274923919898399277469701297408816084324493079635454808271603316303198305001913365448001766113522579928479329485241701659560567641023392502610882007120710373487514608141703571685236808396854540787279788919126051277139721118165737967974419605969023769447151060656729555604545017286534385526736385373218017871134414015514521741518857369215818144635882194879578215293119293628929305911940710835428519017317739915698238949575967139674641591074997312861141030007232191911739824747723898305823966637736624698545346835413852184000186240149571454996782151632188798892235318360544286620028038820311851620902956024949724504629518661467824535996790595728436643956127443169795266041739571869678299206195801404915802239658013754102273368593748036796652133114303335212379718562742931594443938418015638976214837406586787606282171286381815043802320451496558555979126018919693328394585601305271520404725417214507691092595063309985542551621287822634301828380636846694817615229415866160593836472946606914233183554205631255873828886190882112137121083572704851295142865482715442803055753993438589449494597413301226656836080526174612518062435288089573198599264848701588465135851932678553407927609978989217316903669523227733734602210776321786053900086154277668880206527725802345419957924433167794433001042977878922476243522289545938973896601088929527908153715943099369947006666172396615760144077691606723092502149634958816006464098029002913892306693601716373140407909365703283683705285769612087261187562455155868917010813771760477436954264266369424787944139943668350181606884361157860334282580313959899184959200312076367317088729821602573229122333896146326779669892591941513097985356158716719768333101606139245716590371931259619054485232436757257509607296966074264877932499828216612115803916442975092307153941159748842587483339137275763418702884679648087979799115157945255444600838264288765902406293371190650100056989014146393560715951819565020539031380037718171329706553209740339310517415699951213115402726576086393208983014739187618570972990948628210844191315792656766270817157895363173701184340375324362443103792629327773076158880937117934377630369328710106946138605799161088964079504792279236551069437904298092695396358315654383551919532305784565914061804764162335681522585154444978846237941913474273278261527078001128075507065966410434237771286038664025818888492286468551698680036409237961530734307034192910805922857604834196947018986650734676011366046052833858241763113494493609084994297574023772732207586374464457863689625432989295488292442723806952856672916639205669343316251578057922240122417727136906988981799871019462741545404024069580211751466007493008872764916256992776872463648736901719997753258607776152280895000410874321430996047926044292259939035362857436239985163481678805467696443106932467452516423534476082378935112652008917796927457087102403758527459881310752588765282010115895535961040445912117305926518893843207053334794666575731847075220161790570492773884693095544931926201988952894217361329998240605665873031030053195953518079561457884026867126255105249302043031734270495136573315229671682302100424110706376183227024184705470708778757162199134389042850981313538819006387809346460689072923826195828087989644194668027065218015876676925816454583125054843571073404064555628251888697467963063902044765752218030846250684424269679232286031970470359058462244269405850104189198804925851500849200779472003320978609826264388037696743565378916379506749958947073954108237666400708624605843576384112022490704460262934804794045775849695624462655605576174068261067553718903570410106017191232935691080459234836112258858677157615889666682550953970902090873745605409229474974603381797045967167879657108810102848427534901285515094630919701578148384167805934905193797962374658868054784424347921257076038154195101865404787802082863442004365903277771124265194298278059456651071101943157636766777617209494457691659582857011040853001549932516757988629487596380673306470178373670767993972248169684313666294249480821775432893514673662925648010665556346940677764980457912638868939344622860224945164860572761274307886334412794510235738224459877972965877160332825530561027248322756554158051103245513270324176676848486308891172573085880405618942432562227527700581592239313924309820759473817537151293962402738573668980524504767919159563803134750045948421943079783090792618928021990114788093599467216722444539818652058788989460428619087111940871958885297707331466972268050489862323078571328141200509213124134835654427664457011404143625150263997205258903543131203996302033294684899366661429742195082417504716333422395333049494924525200542875915889928574076358189126594206971772040731757244447854480276211534607035618297040494887713597483898768455317812700552716722112348439733318291538432703773476832275644012056870140198685561683679489291254185858838904972969176416308278100088712917423470872591244794945845865270109452455856252361207497448493559885452150732758929383182721714941277759479979339699208277596348744449916079528709618674409831506975823430490434855584054387678544237591680232508631718137514576641467605820325542574407488370355990550674999000203803549303496456510658473329253945229397224464219709504044758376756215984983161765421766020753639680558003038603902421562919359042129001274980652529828800443654747652633219692395074687723749623549325593262131361008501696275711234027906833303848506371126957814605753910759978409078791305272646556572793051907454740383366263290538712181632641706356676663301003888007622080873293042525564067569987020327267477825503530715406360394635216832679160295351480235309202866269475254861453009250853745126131962597373315474348658579107327637976795336550166264640776513210727553373139241597118781206360522594098378638262778883212705495057404074367467515657395954903140714562540775693064195958031314351200248951598948857340329379369523895771426426272820361006750742135864893745681961378806973537306852472213456155987818164382736166143528382861605866674075057749251617315743548264676145230411913274215259100638785306367239000226050525512128505702319246851822077636394120311903831103144352754011304059721128221490817356417956719606693004955098333120939924462310550092645997821939146386804947945943718928731676851405696849703836390046817765840007999575026856061281090806103023784120511940044584641210155126813137678783671118122353194388344971840727541931434594971362641774684915588988036753364905033050470301204163226300479255567800903158466022514934402760922933152105489503023686038313132886637874817905747940472907079960257767211942354333510286136350689312616758357259346568251180689293008021314362172652186894921302791038732938132636386729167165889784728560785376307302933686166004455042780355068569475093024561620244139678195412207161578454236350304111824584460093315990571906960281531875769911850419353837271945594009178942845562891968563220536063861281922044301168496640555511428946030850769711340416358376118718998480418389981357298477270817894919202842448900226072559893016463195790795463951277346751506551846195111566935928339500582903841536896099078595888221450880624470611426780060435017648409443830852119466124679931681074339724568401546737416550636062717733567933199638341627167170853699558503813887210791234774458127672804459282034135990067644260764570922258903297258498200467141326793035237977256011260495881798917552549255364207805332244276736565540056663950616539941809499996334376121925959291988559522415374570054485311059952044559961456533504358475055899569009138082271427037023093532447402501367701245751147919921339555247813223595217493812219053789743348947897800928285944231037587302007447400625929336511920651157692936425209762976689112886631490468515692992450401689244102002547623449539450154297665240213453803660959074162192737252848563690578259864866356831807420104857395114388087689087980143355637430456308948731712760525165702634390150038862853746307864443358524007404284569298308494245761534795917690768994726232622482728734598227732218908533764452763548166357394673110127834892492271977423009917871236027413895822149321303549809523644468269498694632642601878332443294219221919066320161522736002270749679266882687451293493214833286058586637359737222791754026693536043463909383455690589306407997350794704129331867908714008199409935445870621389509428750559152537950702167803676147705695485560026050254004478318862411585558532096175895307926701651331962847352792777917359437233026312753993577852749698283129008327376300829599724141111491489648976491096311902579374367717770897505696359454601491230404820285689572889656296316784066688299112594666405461628262571900733626780797973145241544063193671111392567102903335777365136997918042143957120392862861138559805750692816208322275131975905703214090444674231971033381945446059659938156975005542372879368208310715161941312582635446216056969051333567029986632090683610552607776754592156499097539526150219603818359706713934239161446063120889755738076950974058361480165622909302506912522861316624242730815822200604361215674118358039447240218402290323758369911625675400237238328558918292777391264226237720362425151895671357041713121044240812401554075861597242686880640990389063380290830290511117636519069868233875993370623282476358377112148318062810800651050621742465505078271286512276334060587237560967112709757101254324840903602703094130678439758667522105058618379657990313352056069907838568727712393613791041882927076330615773052221981889758279454493527740626062808654315808752019598580616690329125267987628252819317967897210464764561647049905635386703127737695021422258315909657388715387803740095229318010163515844838131738727610318075348705340778336133087383886952752788073632349657442929099254451428847290691543265554824556684072750112648046214246494101465210814104841272610530966143890235623051444752344785864618003198609909004804334201026065725809108788732712804782131634401259618056465736677794559696436548546822349512475988945304607334489013834076474655943161275896296944298079579555166155518516070917127067305481761775048569930533872754008968245415670768566935557922147165036493064881874929053779968146817807786912867154962817951814823099987657124166128183900632845851281695678234415575163413946509865949485103404271777410666114727603617720081568815021641900719977021814099505771732470875489398055329677730484235700952145659133516962569703359746052555109801274930240199940882954371562718658760698364517862983136924159100125214888527562040960593552757664408139400240443112072807658528220631898585349374932132150727908062529500069388385306670801108355832864535951156725690347057035702868874020709945999854149473992828929252429925609867462798377902015980839188210597446500423919636016942820805361916057547496142976282522950056660437767399213848479873586658718003071959334963349252818268585773026654873364308506328278004715908569470593488847779727250969886600111258982664336503513367249419134108344904395016864940414777471871166579408260402925904151943672698808482250325818875146526409356417699630371702457918948996734045879137024201241993421433111988752115881289705164281666307585251409517194095742231331751985923585953295546321967776813508405418148705144900478196162221377001925503621250251822563503860061312352762477696010423268090744547360571540018747202125203226825735066003293059278298230729882929693067499369940621167661097008118345922168371077306323116012961633739544428358229480337399922318715473618861980126054852058332154956688758631244118494488305381092687821632747328765932019119753670856027651785206452300156015964420575355921604728288720120750389410788838808218562554559972110553456483709947083639598277001088750595376236779551828000645242627280359613518655417778513601975181436304542136468588848007657015171247265192779262068496403687829293623606135942025395815355103937522303950185762821240556404802214462135915253034955074105182325489658639406016775231664579765064769406158700992198176314209310221340245788027217036747911253293747439095553509508965361267124636594491961400297551672761766996590328741967256662987219843902997497560560279348668810120350008911294252040846947580574251986549790406411032674748964345518998677527576617260530260563452361110804451366905916017616010754647828361742240734140870128855272300730053358804933231129255841133616076567524611280145534240363942681699238058370336075787900270505787480621924078953032704704148532563915087354850719449027535891477888830042846433654624187351200105187423646700741216033216806094057279603117443281748449009025094049104527789070732090113723417561054512948434597076648148852798953640622474939797089058334449566345886675239151682645206214796782806940152035193185643944290079491510531043494169732638416849952750929412136391750142627901258304394682718480699494735932661959188282162234497450150070169422541608715294595437980730486686584684538665799605268422270533949188748167059574006232592476105856286771412534567257186289483856565495799071529438407472182433134205206344479560587524157457378041068253839814482776813688356746984829555910217137414945813342599517031498864335619940323958772510509562943284235104058526756576119991419627000405933058739007894850609202240135073107360330856564464803297634568749654122644246425688324441230420976407067635772674243670005355319774108415712564637830381506828301283959236277776681474308938590663618101515093284838374525194658710357245842711902023522252804249503994746930768965308058128460047190713180723975847413428302189954640366847584718537747766600335950570491164478606614572620742879852186082301581222624141064123453778078649835321388159098950296749573486528383707384058332305194684557803997253669644191363380519353776717397091560041186632114098189057598163327093451583749862163564731842257673398349249109766263082784884822702592881038354270501169782822598375027565848561849637654379801328123332233435165522931967605501067569984854179230857815719432911765797781261029708421917223007638193962897353771789420242600971184847403321927601286122909264280666091137827830915383330301774496514515168273063037856482746857201216315979486341534623683681848407950472147364376885613936775859463438575211657902671250532653246293195754234405287373076985316887063768352617404536703481812415716548434741115241903128166740111613179497089706488229484046183183419783238159435068640660194121456979307416394342930275557618785808297266190527835782579770698575647835306919220535848506522284617558888782474695816405186206930075590476792056126304370401761529455717096395683648634349713334750626317889303685469224556109170555356980665955153066284801844814983766488674236503432875380442347296156258863560082516051182878889144260329235528461702759820750472977058903119354923649989431223950191660055329832769538935208835207783938161318320259293379574471948629277292593750046761169824101857967185563890288618323474409429658430135129723730238032588292558123008909619285307298220576194663549198419958223356807336276866285405851662890983171839729291690715639625799842647111728231683856347170739488584338634395678632982558621562351182594603038972954935373051189561495866825294648274052770739140694861984054448701846616227413011630452259418313490819598216976677027053129174026554346427574821802544993322209312824725262653827622885180288014457778885257857300129913110127980771938899309250814316480198047932600985414488666867283649919921639328526957377824968839228230151984312898723316902469733304458306362607939504783591321278546756274259740171717476753841444232456411749805425071028092850227568250446474885314543330508979805823979651057373543281555588036964499522106329979780974429289980124113768609222970259016196919569331502348866153454100748107672880721551914592937721499365981108813209010075501215985070672418454144830428219841666527986480842133430968387355785633166832625230918302714455140230827196479065817903641294155718171098665003755101469974031798094689893847148206685906116420134017471437088427751058465763235458858934136207868328512122315135083304170131277325732868285922474836456192981713548394109923069136711903474247528325324297572605248837003249799219325619360591510704834601174156788359543492385907686607918990269257120929348506942169042402865647850676005993449866087893904238423717370805786825232155586397371979942657268426302695420271593252825030533846672828247028123407109501034370417595520569905117744038814412600509811923558787493501898554832135421472364778584762299408404600773275426125131600454110628034717717510329433151077151348581474792645991184949985990853621663399364116084438160765213712755840883152721638247758107844752826571885166157314680338998681629231128366797498700294234805480863719657566133217322391752609300245250687511825807574051310282049725183884484163308464277443158747687120364848912694887942997645711228619894551741579064029600357229068566660618585427235040471265822555238068276970384812092989722613551367773420583808750865181497187388529156757520201078239421035341681381298150499245854535267138197023687817263987392103239478631897726604765461820700325545348336882869326563479892713862539166343569640731626723301147527560679104551799546788459266726943579897366601944731461444194474275851384982846430350624855470686856663891399498865163163697693842773523222780083555672514936290126986449053785946469865947998597814535965495128546500381459873953675686943485596122127444929343415897202845273804915284914891786987801418408772113836313716952299999288766430912876668076318666010190882974244550224018689954324356540345262717322061670481484004668690530754630559678499282442431207252833861081687255623313962681787491705593012402549709711267654307073632205000728804543557094677472444698483216422523422223229696810194742644591700109453654798828793127727821147628681456036803464467013115204233542569295995835931913638620986423792166171434415920050260324708168105829670194026738967726454515042086895553130827221024980488219004610455434690141345470856432793749442008408213275946648907516728599109267138525548521424554418609960872703337410588916008420150563300419055397606290729589051420712930579662871136943219373102535136857259201734530233849847369024648727980966427022992698937989656442026753491577648354923313929179276937724739211769159694314190362025852031489327747683340591777833974415718105827618813418668192351530357287792022783323575376652639577113828300848666341252624229541780178392169061920471776322198291271685460796641049088906451968958315388150809162693039990770730596392495873035016540409339095963548098633714951266656240863418697368707293819686209583402822650406477445747014637356076957994692848301224369823803049304824719069769918816357996808195329249580716022834446081813304228756212883106514059245897275297819900747039415397994966912148868113924687326606607448320958487301894076294226592744835371420343306418590695802709216445646771460583425060641325472544872787392378222476812135346058534366546323875711592819401003195848650751837246836549016811454220408109343758313910008978684508710590096396121651282453931068788587893965835162298723684754111487182341679270634925992514714350510224016238004327026332134617725027511138325349751443201275182284024660881568892576980788070146824418793514232653901676240889652166834098076626438747023457307863837380413565880325888343990005085208227874862621875165453315550979273852868101453511735487943672352554477193935251094240401800356959808408804590452324044458279066916318314753711051747359905775791058202309814750517016001215277058538316244453911773554550656182558695745670812493639715900261692246572766373510499677759235512899917418157997595624320844631331884719299153720565642146467693765077366536428815477236108719244843121625212963454400820893765907549785166019129293290156378433316894343477724540724586752651481299259396690157336001767038283220110065972393611645153029886996889945580210302053975186504989301891108979126762096172832839464223188082847884971544839251383519041268849291295142318664390778659367917825733313144254259994797363710447024707429935266403518360703431192509237556631444859735390963617935802014039771834139731272472790878724119283828170586064473029195928960327980662386731526021779629167744998068272584150153259115997906916793924708954967322155589936707431852547354540008323950801621421117402851652596405601431478141144066545620771122415629142932189376267801744386347578612929525997422731872459944221388659130149855800682955236276866000088161557779325869307127675703078082909466732121599048018000682866251659421416635509123396487622072534901827496865993894092601921460405105383667065370251458787099850113055699580174862467004556112690810384786581306250891101638526011445794936436451304643622767829547155167614965145852592364159362390094223140402858857867286391048569672764593361793082379249408339551887367946688469310096080321805304917403439848539054234579584316726644306072418901815046649333528439540708786749040092804825876954541116738253261307997491311197488160850194862620030544779671427591012007900674385480232090069231883403323109189019756771820176547615577378992782330783292204298110699040954312870753875222704012221317407615220099472226853804047985137968253646470237601288961476884268345347410915736777952364935788803630454135278367806132940881108909146265543739682952474786807674855239929238695782480014340350229187585191288787953930184655459977712169811514579675178704088622998364765472732754657110956645030491321700413047681873859235723605532003608759638039635476644724752553991671070680975276056082390561481733542126306141692070726622813081344939947734716058500139614579718266626992713270030988233174503706362959225932194131145807086430816688491671711666857244412412451034749688364334494182959790897987988911220860798646817404479051010762767460725979810031176696892506628476827841016526123491524075479973090041224435037035548978198183723350862689789292887242042979810967814377278163462745997834959004334074720032219257753070513516601600528343835488971562462725301164851870880535250662947059039190999468625253422537223203053499703558038653499143903271172731666547565469886465077153574356698020485458847861243022267521168578050079834158496333157369949125873859837393763173196985604823860077756662179553862604764179567820365753882843044489119098807798347303579538406423555387799284662782959121795432698249431768426469242803185680865042168730314604082241454442647609378459070068908805566383151537193947487155846927125592236249067473559932289275466759993130135435250920713773366712162686731482774844912167869120163126633145668624957691714428979242198066144004918284955950437114702286189390033783970948509713988860455614444193782444437684536673621557198675524092087128264532953057149211000985077343056153800087962603764687737705233580204346704863266196299066060300782777868720861777511468836969206737690343070311839357717147566892331524876545955239598363981914612650677335052127880853714110126065667645237355434405399037451367053104611204200569327013445469757013611037656594421022573694849602268847730312988160576701651809133251667637044452193789008148278921482289993987251188410122361755339749422571811143305292359342414634397923492159438861699122275156617893357505543477234844232665278894891854802159395031916537029850033188545617078670404686233303127906907652479345879957703516189486712849800571759685269834546358586393247388936659298871610802778979640103322460571934037721192247534265745621749354640237899683779704865453867756736667140298132346716939631126704284581669730695656541643569658749951354920853539128033177566374733542393455196628409132942185556075827325785713036872783724123366515790225720738938606513272470667992995946180683739774917485852200908564273758567606295612870574660781341959136241558757012415910446620529400285453620027205063159712566668329612842623406475330391161336010680588576674669269356481758616886436717691763505945410715003802559257124793845427935492652446875647487404706201542596988289348181166953284819322057342936407633269730408942769568149038196864836242459302206237818969120378606206957275293519510521296782900675770376742279935115191192487138476190041685043774259438362664006197035423320451508706206778162980027109058698209409818587644000895722930807879534550484221411031914357660585644089896498072370151889274229026566156092154716455401180375147566557416221660084829166787127532236744965622300863967774286388255791394077602234192881427223578314611314180117211197061205692349180645471115720480498013404846534731279605694106852956962246543693516893254869251703138998463645923540719125656004353135038612976018948437154919870205389548312944487371563045962472328151306996903974208657015652222096539796084049469851857326355468376256909255484697463509592922240732208363923100298150969624263957417670596632060211048378759050990916404265209905704816180009080975382813586535376225469333053813099541320322223579421746471986826569600098673612394245360930662664994882782714532710205233747878936290652056340256244366374307494368793960891195513936117196854208487093638561427983056329056907397147477372135742333860611626925238590827071779809630682628590069587872572467137809830827999973458388390333696203237425736551662248169474724774632159462349422055846363382050170942444834382560813158488780093552553515879210423133175505299487506734696722569129533228314247102575250658534008571483434584836095167722386419691805465667301975381850292319242345487135026266309155823601304722236281904782381192885699755957660848739408730380307027942234291965205769753384136508501961650754201723727891820978287344479330611061014118976855008059040994018548653429459963107252642388769392711774791234020681430849167923260951381969917990954540775720308249032207278011207259682317419117575840659367581208760681054176148550175464256407163655814709166925516656380762508074595733038824913576152852693603238414969653339132531649040703587090432