PREME/G/MU428041

023349508481923348807564436619312443080171409015244737211426205446053285500495389293716399250087809198452319819155403368777093494165936866220591190574353797702877479307358805019122819996999885776859700852490900694412053528350325302367702887377930662201755536122083976324077356598874387665904593940049372364872849988817482110799429800689581714533539298011994080203750988593367085818782441467990084911725625695577416778211773440598388545821892036814477326895812397846366959922550342692786000949755260874930318355218718873732928848862720792859081638692004952040515788542192504735370995285818411864113017465893300365390611538179538477873729322833471073293939261437178348405855065397256078554220047012487834609326395395972461437734659009590977932743377329809083373149217208451637839490152073375494770022818908361898268062448693399802844417463550287035897930559934829161733286751209232946924057892168707215413490629379016793166671929878939780592508730138837239314083612629767469100092307737145003056418530543128530413852293634191760421699211039379633449594479943022896572988018527535213069311128225652197723097781611960492639504914905972881950160362807707543905054123952183308225864879260987959931260692516465405255039409876090935748152365216284243385851153327208727141735469005342119772530834195672464676776622376830750002821304080947268990648460837635901663932652571033026363590789037656897540967705179423595945880594690751413897238641786036821245475445264294598022121026779878339028509004904587289946768325380796878280548892858355019572649569564356522346686435471847007760527326210732997370069604196857890466423098239097064506745825320011910292353025809342193971668772325381605719144994438892003843893630703004539217488736144291422960897424011061275482073513858281677555781450569173536713126109271766429365285080570981377929825163182596396227301498718441997779606654853006395169012699363425836606649680680767132665466590553656241525471284025859464968284953995962285073193214904872640174935848356641275876780136276656034365881816859171714133033364034538156604568873639394527166353514102753918772216750232794399242542183189329963202481850290558853789836797488097820633804589919664480532706717620053239814130265963200947091913588116586592450413671016111338493353666761406505460700277477918565321015100053018431421975373339126440310111901191954225248731972218054603027183410127646634988335182686065199104854194497265838045562863770418422680844481879307896077493809654492597920115176119249933557708321909337072227557694206212478113175913002322616063159714243314629629505296431964449493572704952288746409590718584187172773797445295173901051413269817859060550950241177759897836057695909956982788869123016290275688594929009521354181052419715673648643934719186472940558097895612275106397380091957259134449584112153657601947239200130447294755571799605303221647693320104366963136070412511462860818332792334338729370649635675306044482858178541507588840107404749605996732882358976779106475246671609604792386206228257370081008655784017841943086610916790266378180193684536570430499810361062940618446989984139082029470948596762889856982113981925165910245342046855125103787555548847246224721912530074095332704326836211716201611610023395596793390301934139915260311236511933449222062714896719936868812584138554600734009328697842400670147342909491012428444782579233659054136476141165707918544300518195943083526318272025270793465303328895579625672659757354794604381849845706482477242481443568549494536603606914423999305252757284755594268074542621621126347036768987789825911639014472300829092324053839656056543051246771143371117010518844100034378295290459406772565456751528611693740060124812866942044757291406087205773631758551082437467123362809896295767749781738449691198277123281403269816299216198682765616280765776609871049068722850261587028838742614379208468447317166307200031983819121482249846685049468428689292064922703502340822829593991712457649500397130912713788829580997390793322830370300709644587143296116268188008881230215116700098161929332925657538730388223665627848084852887761077870969691396668294783591101454056848547004671763958384625540817831283297266025285816248415092739435867019632236205719198724618881347538255174976240113649212805818310164159021932598330790753675490183722946309890362417301349697355937726046888142037170421124449991409298194640597091804376340152108088497421673972122752875197567244214686594108471946222601568532059823674433600833247106662182943924659521669730703653680892702599652319275844697804552460170208875119280631256630739616940667187984047050158212884333669595101040174827791355300619395697393327141827390659428027766524270424783549067211254656625354741731810297392806315068034801503458977273240805945808408861450946986894574645162316630247426858253985712396077176845097866800294029289553104531975473831940210958959182692678943549017990610428151601635545111519323728839018313490471897340677198045387153263085049053331233584963151139718487964569451411542588432598785721737254805287827170702868171899072448367086067037886766087760976793262990866874980697081116967021991463398127610195045824902598672814350145203252904033380272736874852001770814694338502065275490274101770179031616855576107453816007820425200566367217873279837494453645289626930701647323978262289730791835285086246349022314565925809841756033546769127950660473098044822016759247206480170489442545147355088866711766867404617980977554796346290358969533199083109444685472205216856367587462323629786303858943453031929266120093938078434770978575818310071513400561666868702063898274707416548084843002375979613987966889141023158301944344697633769699931507122200200841084469235199999431509221805172712628309384545940635536439261816291842599594900590506490252625178770128580103978396108134434177464429840911687596556318033583101591332660975527963773187302549037646522596719905872922321424130897621667129691838840448540142253292843322676938428410266655422336099469789741340199528356950004943885782728376933012585421955815950152058384303107953226311171292215370368116445394575976880532081737864092676370825731074031161092735810892610596991752544888899233110391334338665907640168951856345077902333147501450745898072979459796441437659582813176841896279492984878009844806909684389637138834039240144769881960437260073290863730535058882378640291154543159791494077747934079479985495805226698496664302079082919092152578562735759762124604792760695913566027071780213101518237833440103886231381073651785818707343990543507056355648346338250497135041255262464959137961434438106398071839549325004407256273177679973336104212664786719328096024314956124710948924631647725767196562482399221727512670392271906328386098146164994523026495030834874159630813231117609344134019250191508553885853022832314605508382693827522963646828994748908641021020525440969956819754262621920195266367288595741622262373144005757091713806492208143895778319907684151315022046537240253745456437461419732492959958235655763108938181418553173389489380759727995643087783990494633712152705850357684385697469258709066115128936716363117513826452571267678869624943129440278043823833002024178645826680031451676276628462917522316884136330226203662199133171688889244519026718033052665813635572630168213688448929734776268867104835638154986139483320334331123140136419504892066518041298932678822245443900210494776886844968896665615851153856843102185923400702464191235579288940413008732558601910156179714246250593638989655754892744496768446804732831276400822532827060864670685010884791386630448895334208427161877128735638566301155752325985371773357371727920134867093042133151011183741613570478473177632663449803646519738135869339664631596153548191149781337731784000863955426367179575240725598125116977740179996620955549946078654154541240732142373333105860860443592692545948024533110228085354870144244237459389577106613414526670602500809792932986101891846660252628782368354319420309640534437671227048001263147719171118842413089530599966325571936473112728955417441167496429174801091795241050904540784548939604871689775104492717197021233554575272157013604898578517494633003539830653104008007599625562601587982468415463379046649913642108443818862676741052768752263110322342728623866590454307129332590210327800237327610310392431116622852924247408799740973679196188292133956707866528517290901461820361171503067339347679474054303812043853670793587135335558706893037963791270125223277952100208074560003488907179114873470324898029308928709774092202859706104899195973012246092094516495106217350341788708814668355676134721905294110145441462273554973426503898050649979871565049440014327496093571163780948918396038855949300432747655833342769414699581182800934834205020167038423466928592503661280382813512545714853862521514665934984954301655241678546607557318856151586086163904192106946529659634525086654890646589151760375776624177181999116690991426598081920824287483501892180849007441437599541533009801757983978196987159073665394711304514947487742276377158079209259973948161889163415149823988102476763891664441496100733124934687256669819315641118165043401094232528821080981224723030007193290592314806395648135965543927742148301740790321830168105614621901424501423613119633368676443835328724551465589413661150533178935522145784607413099679234190155140839235462487265638571040235871461160400237090062218969204597734000301229600608062205346703729574729056794278832698846986256795372240611145415207989798783958560083914565559859339336234259870482703121578781004569486836843248542007753596039666260760485737550034471961316691585509904117269015342360312373083305607757821129128626718096552261874365069127849640121752463438405210688165925259198672456278030731308760832239385264570515068728757731914802158926702757732917718703919828257138870710551255131074872111744873784744280625360491804144373633883677444515582783049546650909931980284532165193580300667174075126625061375391236043758865205204725980786332205759399174925528625749185503281641779092780781318645677355699942411316191803476780684209797815675335902759173871726446422917400379541240178795992610552933813231653292760858288638782222838332998581647996490302799200654799560991009238933897927007704740777071758943418748807054037824152506892975117467780418109609356647233753425136225447041656998596015326179464763737018356291716206506543787928658178689785221106832162794114683892650036278700712429250645531871997886045384421590190379465745756844947222332649514922847801743551456080129155198348733519728149311898391676780576604335515298349235364814827929235633870814792623101490561285504074998862455133449995935684607869173118676683205956752913320716535594403130239405082068365820704958275861896257217251934930681353380986441379843969461751106835994862486438762656186320836277447243682294244793355143610440793639835841264528916962517759641070749404406331904943609886083112855457410648810633405807393790304134413300532700294478970563338307062391832793421871088332296941347658726595382544420604999543724728805304072161874286712820461661591988609261725674676233756997620745049112498240584671202697342167041912652076509504420311363143859920803652939089038544825298694962891131229208209862031593316007136350553860041013734500463825192565191772185635583946294013347155997908401676037032867342551996501754594861512380340914945796732183484999974090648548431715479678848822378528172597921460851441523594982431818241146052590448179076110506644861088423358039044108085783041469447717352983402284086410949890981358549853613253042556324062909447131483881123301938339539863336895735838431814389372146695332875290042710387514834082108067596482898610804402881676924909571330399278701547192473522407993371820966206829904343862554996677839259828429819716753749551217298042923235720440210239220765009451746848850632711505714963913269580481280172326093772206664696566629589759365495079826294406530794964716771496289883548573048005240116037071690396164446872196714875713986318801970514347565139058085647749739858251620385094546096578197369826452738600408975859399763362377296241932738584879945148099282285970125802269789338279364504292731670676433000508823910952288893826849642673425911596345523361974083631541331236195932733197961180042414382287384039860208821291756012408189377047038897533350273066408826995515345763204358555372261214771706206404238171311680229608262728924253438688945499894879298271643279999957275560312216685036871588972048085964233123402380420468679320984067013065251428244269614645415568233643441818206110223440567159419445367132668982732053865528019061801298994784504445755595972715468889924537722205138504151485399568009815603473100980885444787096428897405092742464899935991434986612584519955842656269954028492059788313263062101521709902617609492337460413925278900091340099627446325954370954856539460191690082347300997064034569352071490978737765806018069091978877626103749941113159295270988764893449482589384520518461004619668863461229088664901620571068914443719109159858902256083779375697037553180558138044380134756156810613634458228683145980309130776928593092558328504752156030204766980103238114159098355732763435591694263855159505960383095562029699454666599943966630655306289466823028733025925737264743101511706805884676998334605007809611451283177953889670318360123714904166452207411186664543021622201428186549423803794700462462929480639136691285333885952648757711641742750429655183263084505326373906648325067182907187996144324237827776499814501681822341156560160064870291248734050013573764786300433032521959238793648510896977762032825831864397211868337780642494983218801229453321731558124583633886117280023074638801651599870817820935645870421703946541523335018033457278549992710950455365441856333013915936971252986185985265877966746167447223968765363315879440493060603351097696636569894429429597222731446067852762770074072391840787831999657186526355912077295854242539635818302514126026483176000378209178426549422587516934224521432385087806385903338013271535980899229744421946697481258741130222243411924252700077735818183226180870048084043762254755757729598050069838031689377408431864494369428808275562150729878876962058927978378625292477599428544582819796946514566679460768043728364522656351346088654524056783953057058316441421599128863847835368887800202871787839406913965301017000662517648878744994211801896136967747627576055459910560049342585172875688854538971780077178345260839927582561751364014253469912756311542135905208641824493940091619653128622206294486352090407342178322821822906089449623474105118406875717318709570714788947687631187927871435489518490699280961209706384900843234034244660538337451883309301004366741171053184366721963914724798066991082475298668113611100633465437035544475913898087308798247715395814553287896136833299446259141119364003680171731477738759042721403294004522568959864938566800820400363546401987488263965712895491728201160741206109782137316800469640863397585659044323730449092884498955412700685847350345171904141991338991324253541284324551836495701891148025713728383234488276878149975595124144527787924079581164609127763261170513129528511798251962365979957524007300954811967997175213059020993036671822056453562035522069695720271203470726805523707626722145475471691515503978652458283501575941501946769001451378124609037598428806321296410906430856079937334782460120022833060730380237912572061350043380631801849490321485519956365386469513724093040437696411466151816300551131353429361870913985538127192854745126448298629920867374914755041230436169997891477723027986707225813673158760246772895060917171312809656893532316455752301909158655433517847671356349079090622971400731173747230472406159639634003897268618476277627721839077656082174740029272969988088994195674160332146348735176876243374077824880243808607446615746365585880665338116675756131536421551140973023067150825786208001994746851837091788168162276612814023292766513208360278453444943491867978606191190972966705403032028354431656303777361290885710383589413993579353119372667193798642435457180310472591376373268797550293901852124753620579943115884984657782349209611713844005781904419153463635895814194617876588960165343316633630356874311279178834706974123280412031012578866827260968414235132772807878673437164164111329205947110981193847646846143754949459899625814612868030544165929906909854544210760161707357534513833822931400084677654204837353126033679928959363004191451883252327821329610332926055181638550935778932695693858371102050050580341921973952556819928946149445310414453570508204483043306664535512593750456026961413708975771332963402190422107782343696586604216658509607059467892298097242750629129733493622273248926083494771371791821241174411766551302125891272188472902702053907267738124446512903015190854275683671738671301686459827306940816172672783921889565067684241058544208711827468736141804732168611065571292725610408525560810712977618930384971035393112984639566474311415468389983361706545943440512591722816410366884108766761410637005042289605628043582662913425772242502823162898822191966305974766827223646974426509516692494464793096361850336352170247874158050595750053419306492095376336972903957354074788607290409636370513359435916902549185928414206199707180223235667768646866402394384328438821479398312542183481251667566179017626017571843758395113787852954688854132569971802485467857931630102453429368145495613583991084068219070980386127146178042657717404129962353144512088903652556644346753869334731738867156661958500223175675453260570352039440914453757488476952530602312221535928344122955399766213648895228771869491248483124840304923212619830804099003795024258375352781512720696015657410120693916131585543841075739933100588486594435447843956564565429005469432950868370554531764176755903087355592529646266957261002437184481722756019510471481033345611615525141596315212266768268242917606960362413610488458426528507478253440392970346792439843056027097716882488087444489323852582265177898090711788175813077358766270301092904121021951071212882418651674635270494858737383400156618522804206029632657780653931137715258798145275076947361634713818642729147082142070726850129220159806135578160338939874395658362734952395144200756169727935861571056112338514785031057616304036214803557060973576329111799703490232621200109317232814218998612087805117542796077142852351653234000846844730756186734420300559052053614735201841142593019505877324641964179117169967150947228257131582318095490407539050993648225679194984597764907382134984105075472441987060591930019268739038647576305424641462682842944436323612969714737039502270022666111640940378127169443301900979852899930347476296989743036954328173958620109839860736453846465408109601290707499165190262517275377956842400556630040222633941240516720859479083512509028714039041038721290971501456037652057252076198253425596426900058400848151446319660118078048760407392987698753218767511975931781474161000834206347732243011996665276842530150459598496962803048916479403619340299197599237835344057202247115111427330829001075682800012103772558610784534939184892239365887575701214670122182793274350099741339920185563622667750678627678962839503249699324560946079555973904617618816197212413859341637003004299840963631167073517049835602592463510535935697400805397677556198813841913377684335495588552097457972290776885314931358990268396945907756692801022554665493564924521532847210351972349939463279872037540134774581087103715476869878654581786746392471628042563850213319082913993937231969412856096087379175855562011796933851601218878532153456989246116093028739540133793174376705645576770998002699054542696264868876616514816036672546248229789658505124031727106634401166819780456154466452996232598406290205488899134275376617132756056366022753393500541197026556194195700217900608286414239364425571192589269250626922253293992312439044130201929549460544427135218245009983643995619996810071780878336175441117970124327671725943334738008959931320277294166895180781870427435717816758659438853653828106735136382581489675544766026409070557868322400278822453896400067228067273332923314995423492706365549568019988752559473154747441407338669193321353311109118908790304911595528284604619195830670850444072252713763008611583939720185357593380554017800163087237041177419340702478862091724732690866020626542064961489542833227239691172782109831571118982006308352084874637379117858930665494606979606451394801529774507418835489632179559965763148275037928764628538244717446462194946892531405085661914936952276509213529091360623435572344537643236732257841587773773448238673639058780793418957047420177250187644349733257763263265930862795788993416586771476581847632373755249265389317485022561914574079438752317281203716503910439260526787536984903946887159861265981929893238973189998602989778093160828536278388085171249084551349753738295806044028624027174396192713056235609230748210991862741542398589556544176844245220249900604912594032877441443142857993495243978531979246780141616793684446473295220367479265559871125214207228297699516554552155552112195602900315057651081556239922658952966170016449920934997874732214464130439779407203205924713433403085220365528274694603613529708895168189032062076232005038151377010552033461992898066397233940541177032276615545267207018770621100788866070164706231590020805474634272285685525446535458098333774290047908467595259976282069461056550922970226049524920955781769353974260960454386442101200648995121768178602294765847617661344856274360468739782058959028897226296692158888467746083005647576777907732250284362513914673509068845163066807473305098120765981102931634914094966393028976890453908719089143357445568397834509524111935646352158790584558574737154004083732171124651576850455588887989546948627539213207335365411632284507240041611432718969426676435938814817270247613013000801711583878569564592934552787148997796944680703833975691699186860231345825938353218301313661770995402981979106015481216240653810720640333712044135995358288600104203524581941763016424119671425202518816171554425337296430857972899682356118063486391359880438629498261869290782371222878776188469927052600032095585178601375803810856104049459224256890030746251705941036043609015851389204235555325928666369788621593369543675640211732491587255083226173441250351810220575981059381418310993452750704242089103609465813249881945512434693193038043144545176661103590851577834139598124394122155710381703702240842973357277780898894457079515619479801565355041247803148155900971926415468565794626971366924098338097217534486764603112113400648204420540000781678167457432653219147440859152431887664768867295744669515444058671076794507781120770647482338063231755806585200049657460628866911874130047939766941610185506667440640481169649371860618595135945862781930488102383626462632305198887953587502171985486562931965635775074647689139201119817775995067537591953146617084237561238465451946542928393608708855775797227589077182715366652041224067098163082444620008702046914712914708688433817505318950344857298204595593790185744053196531560731343774645226688778576274589796602559745064568373622065301053979991535638165279459960852761389148283142935419534418003154497892710565454619883270945904653490657021212952413599443010937441517665845835639767862198302770941428837696713301167796653943927718718251607054273622849982661385650224108433515595400380497456341372611706291475845743895229424270522953926116706886379987133205444168094095538532894231240784165521489501892909722513230563550540506691143075955102467449521886619091861154066209707267126910893461405931469552688909710416469735297063198063822477006694908249080768201479572509084889907775346782918195322613382088489034376117685760493471639605490108421858198479826400482904110423790057631645682567044221451526218721743933245959510725529496443272706240786834584018128299348673947807363778856174242883627976756666090511180921044494286127590613240698627318591288458882242322396450242714788098072645236955609570996526065829036793821265549099010166034019403468043767186401197723332919043071386316345389766949509210846149884384546762609799308980682343101445103923606559030499057520434151639478121509838814938912999698241051099984175330313021108592895235056268556156991924320821410162486936903174707330642252635132828972497418201992011587510561036011799199122404681564960673038612108715590664231961542341972831494658548378802655020514179462208384089467401642589418376434101121594303005745156441426672638147687837304190950827401510678091850132857470106379317680704738984716880255472305728064738004091583923109554792783808299971952407800207811874716807665371604335396411294597710100761030121018248980692932680502753474349511650416163558909986448569760960687632459088950026781415933717945154617510098450941062699425086650443338978331833583148270719298041902355260119620738039422538086787677927123446433847663789131234178403298883621964181295476372608575732234576599588033291577394006869288352723215934850061964457326334862682654057494362407123180354643804006474121868491110805427828958057023721040207563073811662274046524492524882302901685262341686168877993874059932760585110176025107058735809931103868576948907412939310318358148695413818973379810024261860255232581371257760962445650876215856153740002345698020363681605907621832917410907394747148187591745014410581825186194752520059420454685328032138856619150616834588980304708409933183433248443136620621219525507613240920881083442370662466610210777579139571612148222696115197996954076350124229481182252660810504175858719382641764479648403689677006122612995777761426434893995861816210120736089582842623118054971836768931084325340649308192310604117654563410629089961538680149172860392698318686221231371141112991765270323222896879584756539762618991825071335169196054961719024955185695207458932332581921158262095894891380611543539415639418042445954075571495255777330878876651897434046607516061092822006598031442981430945341913663344510780235785217874285786946530716963928695135350605333373848486530897196646828771978072781147688882127724374743395828817026764174831615523592816314611356751124362346684442573741765617891331012402229818391525499644686942025893363453336454268444942326234201171446793050902055287380302438056427271952852575734999640392072026025074083338707889258522785195988671620782765315454130436759078950611305139825438106655331212562056708624871347988767785591931547947899219533301657234411573236190905025410385397778312807006091478724818699907627711167129399267303351569091298806542307542506141795534354760816478488847098489541982627647281255774406262303385476836405909081434477794226748120545511836207758600010658901318756347695037840989030793694048325480183370071256568447124515416567524814344999082753563212624908802635762505429435817322961399423586502783462970419005998663305661241871360470469852148764040383261443020019080006314996641883965796910157326471562792364301989774159441805097016041491159080487922730911724395335175845636156374954881739563879788005725035196491343050192833833767784837979293926825802488961498511191959932509192763673108535139447431528571527445228833382106284681889761627675820577613260083370591223994473768485028546155839528504661638988540487659501293732039288392379874485865693299352118941893251153883483833444196093973676014970731628637930554301428935647916835190276264432445464141961276318963426391143679224536142402515842035173286141750211616771469204893058435343972417975780713558000612041427054872196334176984259347106378210866706316047279065012845310964902681560800268939039881258877232995264980440156808757539013001666177685352081513004582939588466959229327001974884769222332718876589907472235978203559580388051059552051426060425790462124223112540637353549151949530564012678765388773158173081103935829786567203620862013865980557186649571137291098177586246816740912131583671550538658315369365993483255161206132539048300807356547743957948883213594839137821297047466753967072859307455450067796946335030067613077515386085599800775897536102766139456418001396690243542544631427788759541725849247859592430988524948817414501137446491449046268192485130316232398926666760304958974029591163691710470581506097306670388055011560446733229456757283588566995229407264802645005218140347654103418590754417891734023076930361830800244419210816254677761131015341688811005514087184062605056324727201376257606886098470874881683757967360205257018122405601592567287357595850272782165653899653240076595114788192467781803758084511192402871321120132760983769535721318080895000326083291634788790475390433666000145762731992395076766329597906637520265995469044390966380722996305110614587554600353291912769487961477196018849923488134155311756213234925502588764736259488184962681486624691944029142378856580599546979196955231963190939278220637336981032558120555904199057446622741466834094195709064665834664800690030521048653012674687347198460889872869443416889528738417926215999129278701671900063305519385846965445752507833903346980684950686422357890767233249704578996152514259874927418833873631315500465669907542108905696383312189891475888256947812650611275913439570072760230719731758036286959299972167968481861631827869004630814513645289033644350394444302721451130506991421412736257408657628914357738888479652207025424002459429976487507207731306899108089342985223984164341395125586020653979626746631162234749407062496483966278971306510566096244372776243779333399137067251698222437862706096197267457212012716892054046834828840415560778268331033276705665334008735782046742886975674240928255381877074820194732316289769207157836241126933072321539897352216244792059519196342195255975085345648179679102883622366451117102846307993122099171827462403702748804425488071690903994084854745139109870656933049485677348562865803955012386967043257852304481331278833615079536122769727742043825275159216905103611671585338056619642906675896763104798019092611079695072747853208257844221594384042882473509443973381802167863041455415679611203709599639066990762030946209517748214403872681752613957885380144644111760157289882182244598341994014303804804866921895817625933908402506282971321341936454361122399515507670912960999382756935033385007186901667008836138327951525936992467953010511334204538093881810289437068946174220847027822161157022245267968015997423653446714458701875843186148090598706161157879116632881601964412089887095604982332167589071128477305716858032120913239493861711078871636971211178539837909671238333388813590079662601764641147462463029130588762244182862347187750208661252011466474129277920893263068081399532607227035618670541545879471434884645448901615964915595780322517212059792880392307393124816005457392795910876307645067647411531372067368487699907179997714245337025115840556319347800324562831127464898343784634708624505517913586258797393339337242206708812677675066159180077066926813402698437069168376590549197001807818611444920425148303959478505932314684187512016558180703772163060729455438034799813053566530800817581942767319430397998934028827817289486820598087034067893219530450317803515762275593013986727727826950680005606483344730921468983094634430976624520315178759572613758615154578050718805299791251019474439363116865444131564273741870380933450749094629043353884696572851528443429376482561274951603037884149114576613486123637240778840489596252081646130887750696645756508857064076679392684348862046210459635136992746233190579784785493730273076316062623729625465530978632111706258227291845809416476087331999729500865491421143136749266463001967814152458374143574118657872737121935719746344226405310105364539090803985282350395398699524521627032081417946462993454846119447569422871704098224637319078450969236060218054096934652419150545391504350610172568063188708244693172775295844294025664764113324675604579075680429644506259610481426053661290263565923697308307035907481113399829045970579569286818415704659940197176306699904115582207665240656674062366740363421338036238570390582486905347446722555004261828764226428781752566485999947604044436712860353419584431982509327473706518050079219816272626217191622396244505782957203136942037701527806401976299310522046668849091560809862396212952246898160668198670160590197091875703491494020934855115710173532386883232343730643075577803965754915645959854556729641137651441590753025829073852060504145514359061387111000767345249921791565407919120304881909492469386772431745335112403215400102885662117075527834308470783745707481676282375121287937151849802293808760069484449578094588442092504224631679618723734547853329393266153934611698323663051539241810328498686963398723605634109228173813655724788485967682963698172724102022795006082944579361136499428156465962516916025122554675809435964265474733259724782724831564416443902834520187768498704790026066154510447587021345164237365926948851144901161205847996220565430203214446247540856357963113604131313476613244494499819851050948734122884640553043302946895908030862515873690707868504112029002260129779323639251475253449137612178728771324450956028661722089853315206135168517718088094967404284137547788005435377616532654287260858761733828890677880761638964768992406132027241033698024145029449915948219672250101204881437223153784173619476216887731699561960767437308738749258908907817570872733390777217985292409806103701860814721308962646280167955608465837862042494487057628829399135473934369080258514191855347050843769652184016000350038153453320519343820413269524348373217205361636433711768901729600528505279719706794095275531746227601191706817183083980342116100659063211979045718449816786027787242083779624577167315174828528229670472801635635432289958350616888743456372814661220622584389526095868178524744726972187120357825255441316828663020684757830840162425608018000367790578964099475522169784009975940722386248999731478025987109517086040937333135108049391126916504326703439286402693393259856867720560582632342366520563330663269348076186992886466885287828950806844029147553174854225253223803080227424258804404697470555922832659549158168724925580344914630388144841133996084245184575661877594052784607937972125688936777867933474050464137346054836714580816696896725499052637580332445824333100944515703727043494630976840054229645756911000951896696124945916000293760477184657016643340383418842037998084568506708066876257679468354082277762725676329007067768033823224567456737387608688656707203664771646379936195243880667237282433047902420011878484618684568771879736373520047126917604878776660384267361527227751544344398995837871023542663668365771414096874296758532114261764171278041046125793547319508948220731340006306150404190424525279381958036445481451894677801700988989606758873382011691568529831539512600597789956741481761254580971744919791458918881898856018667226942948480320158778974130287047661140654758805750817274448633689343545233269552127900360619550593450302437508258683950470553598256668485389244615128718239374511065633136768433274932660142834615384207867698291851718409554603071314104567628122525081619331584844030470090281809703024544089980481264709393822618271665875676971799494155292108677672532001982045730658868022362450872015240407773189853799199728611352872819473090247747463574840569781247638000396047037480891941871395215747406640261624024702036742186446417050859090911292048574840296653783824231122517134765878145184969398336147956425190940591576798875872836650899737546029998778450608752613442196619004573727644013088524061933451804661372470516583125301885338614097419910625307893109092088247268251568403813458064191712396149707672285450401496378566465650279182011423515525274380218290175892716930323440611515045832703472495693186747242380520339978309935597911355434156297897481741217660256839865078640256099061547269435370114525967793400077267841589650640248907644227678726634493481624866844852942362490033679855474209532838651437716716258613534858186477954856539342486154782461948483355637395364846031967338343287274810747209558728064510254271743079182535820289399200213132205850768780942776925405249053620676071343761598223746637570900276714053669936143604856084026676183795875279572237531395352614727980744289403562379174439795753137438731992808646766683674365268578136166676579665838016340857651644491743943888388568555257158241654646013273928100912388214952560171589172348854508089282602432817046319889437375560708104585493826492514867928224183712207748136856152773560652084228568194194970009857926673506629525021450877937101458197002454837953071672890982581997736902210570861765230334744638986665394835900334737950934028484965823461575063718915546761548461906279642104700969115392760187577313425053396754262492845919382464874490867193579017699408152903365827827622444838431947907966677407064246493315370297075331209331581007656218765110220958251121436071434801852806305371712220409568577261570352628822069748734274744524055934459639692225068102832645262384967151277944393263458845500392638292840275608517888064345619401920939039330699406014371039762565972770847798212470535203374510659282308220321557095335157755046350008384327263138575435806474669205336576738712624447718663202646210502632599858021289960642028527991584957084613228976829357158045999083130069230736550563929800999653887677909321788134767694675348397314882671724692210880783508580539448161672872235418621147692929114073500567914879183280339018906293190680701520335559125295219345014734897046886411820045877577239644196390297049854348359293269086153449824007253480940171315628996929520038011182804707612877890531692208405680090811928571121521833119629835799815564419062751562544071968139487722039501100317314397697181527744022731871344371993025779977174823535250380297531601413789985930294740672442963824509472203707996179857312928097470870173625896616081715043046273139984163887593226264251317102575293025405832303804069335894299050933925503883421616441645047146847524442245685693709564537059397939886793593277871764882985900234807348954100797075998546957297494733293333598258726791390361052982803359598925544208610544412018632315143168482985043668848897755120141708776779786635307357793913990239110511405649436854298423249251187458253389386718718586787913140482083457320577610494692421455856801602703098503450165082654395053954780702546925517220626257828048020088292607050288172742439742144497673150017388783800538743458810370190413718144635431362175743026540996796090893511167134115209771070723357040576738583213298075299503045140998506020112481085990957027495062348541949299179614744213006755785045590554266302027919002843063432635355314156309527401198513763435445975369975369519294091908630236856672267700991803136988191038869556170595429072046882649666856141604801706570974739736807585187674019325961263580090437311884373071459238652340509817539210344715729950434870619398401822557201682165828889949311917618007072678345232882614850696570000000506149207811035602938895751902652040860935848091119691601472714047522626922169085985264732784502842552741634555705478121443663280720157931200378784664760123670928225625413963908469781798590745288306292364895080941623042615912135716614445363934704807808608551978063997609222157483511967896345813973637070517159417818996793117821884846044665103966019402829299477908116954051253648142103353783698297500061869281534079749544473115704548694122399354572568033113511995289067163105712970831297485858431894776346483647782315601302625771231960052178039584013515710357474750155991791618056785975372094785471557082589906742678322639109835146157819747142786288671234973759720514116679508787347895435235956500763975081171937140258152253034693166526769128766948813881055775652882151847727455039738888394163500599303414799154011282601682032261015185203324899689353303928157949685754146609344770414200643200122340381911033085831249576184883071790178184600537613498255270909258564457390418070472092613896375386678725425340539076318959631094655707245467092445362627902228310547983259133671110339352179821540699718395994220664233433797774289321167792373133360008089004637493829887136199281900470046250891348459415828376016026519939551600397589074690113226452952141703567241510753102718452511456614033506678790463141061095689398995972291573296360366209682269581628365408248888581704551693038099704149325530272032475122435228991715412576603124864592140413818711023711081001378258358467517509746580861961476764160382141099116447420164562104111907584149394295728892728037208535417853783485733202984964093314142209976375479478813789834942165816959485763252130975071250853550598529064454848285182506890040073310237669817254933469251759218774603155966243139452339608357319380337305763660970409165886833798561822496181620256337935073591237019608241574958305879379802474407019820762492575461821148900728340696443431991620819909125454075989795560517662417288645632988242853979508805112382767577075600662167371185446244234623242381158453190372023031765240769779093879776981032194913677471847907489519528151970431378711444883482063214366553096625693694786951691699252376893179988205833976313288537226016850278169684792797935292850314801548227146805661100043913054962530588663633939180489578757477965964839670487706917568766718798524464683050170135763636664350625016368866239753483915717902561713862604726055678780890995905772354291054288355143232296143541312391806480538966850777054417753743634200325153121596939009216641263239027911463520650972131988561540636110098667029061017338404770220390964957327465885997764752834496889054519537723564226375724593141654364614605721020028864091712389922917493081279351500555893521452335867352218503154772955193929435642017948381918010981541080639566162523213556164729890264564242026395483977607388000288546738604442147790183483426799216213561871518638392379908089430818024831797528067539936706716313415753969831935468959490660606050572349766462047076488673153190577552517791372755861382917600303213818341183073904082146052576321933232921683531889271110220567066255842110482993132105410391162916439166969984400661276893251529470283505981362494396765293401157740572534215085122974277282115475877996104578707442856438281571289765638023805114731821235337940350350838226340907884692780033619416139495341917544023675458274880352985613274773454977328565644717489741737701129482390280901503177460487889341605696021874612717084500031446986548836683742190162075207558614140325548983682489173986777805982896358064287377254086362489166688904928977538162461816399215134714585700636004376513989389777706504668838167369430642766084249305394666567941476316956395040941801316637052538356283318622867529393759821363178394216715916089644879471182121633896380710306369399156747962812014427834544184018072143646964733915505041958236233608845159947303442934489860440127948168933144414363775592326604846075108438919734435663767113681705030489265189557631148024457578932232662343710416543892125053112219994499096802831987756535830944966236528056522272860744229188797789218352505203168476222292396077364270030583748083659684561891742877980321896562296191831665346851796985754036403900104147204284187887652565527809178587934948053377230491185345873027284130791628055949352468635356967546201814968668143407637093282456192047219095772375724310467645784972168977140046242916879220905888687639694706139972498355670565784688163608618594772064258457449887529942627271813265338194366236164216761246705105762507238888077549026301536952351764157953983655654033889947782620001743118220804436347409229191610784914108520692541758490681217391789594479219152248822618316466388183767416620944275005373295907668656976920838025584096997121690766105413061253202007239217368152868581354999631706796457417528286554391069059820695267603290537137480213139953072757256717637211034581091028378879211478994085984826186256361339551723351365293819340543305944870880441110767598997663518226264458661694396125503705090956026983855010304092624353154973831655648882870588776462456145895625643655783854543215718039003687440770692978130353180878432951455862215535923447745753899004195776264283036646231236838216311138549559536870058627397061898980459047268968482052173754443145462847636811730643290054585605930177447510400558407955658857407296877399855034979210940832902675421668828073998352907185361700887004277090199036618045714724421926205127689864683134698721822485890627269912936289358235090827496320083687749664979275752715537060436600393807043215936057015296456828566759642695767305113941860946232702158280450389746105989948103443006173333402457194389201467185319421847806016241769605938801885983571938780182777158569933515106283021276558803646549670358710503275963219629964959678881777412807959171587813910306732475123098280232091077725424792820573701519137228730265443523306821233497648120669096956450230042777169009035345289352040700622758487759341636671299617630195470547085307233270772606566946514879049052548327782328735164739556117760795208015972258632977796617073598394506363780645921698424785666498412422610580014752455582164728438603871775550847166735271535654005529935315055758019292746612908948856017069970648014736668509725572200925350035162668146306594542045194422553487695173862418160813669657299715062293905872053350235630676614631970170441592972720416173258635608398700973643299842436633945350846698534350790437159120304041946125850704811036003371445274344163964207319617774933122470609019680911560559889175520577751908512997937161187856610675937771168221129782798963088668232465988230551903994753687446363710868574311212368743202951450035494611876935871217966574512314632169813484888600389029018345986778276793876837821369952189914098323869441373976669192762745065897400865552375264397656124868047004183319587512935551997330249903898754382002199045037626082409005364712930115671770606841539002762041096788763605926315477942377091087020838966294302118547330553155273709776178169031917776878428381829252606174302932914963322414262996351638778027788853934513740161817628770033942530610072112811100972710796108392734328895667134875067592084852295476043528839850880780342898141020405238014680290789464866338287541164238816294922612376073637758287087087531209996843325614521482721289227681100660190743960546595484116035926675284844100794358890887191580177646523333434735366087399488164674016369106583612655990842557888593796870600724940125802610223193107304134671411605818600220670149877784393786215263923907142281890903529716719272521209512649283088441140666160028110853472365369350416454296966955128087210482755112353554001668766804262724906718806779876123797420138513343224717523473338756636439738294672509145160767882658028346643998944122491071498880754374825240053886069526548681331155886793676678263933541267156950116785091742918363371188600509682269658823137596205489548680335797734315007258183022220858566560529877311489751646275969699596781487738191219998337702758191184440624149940220553659640416683544073062125703602008704691157928870185191295362843163654292778678596416296641404677147370594692881866535429270737692732180724113555333614610549518891597150639114643433423641511112021836550976033230390113729284367379045819265996389284179441479049689737184905211467084566416423329727564322690284791255148598219375053822526595652838776233209154898171000945243125469632303657156719707899781822469889492978330748900791209488526343830930521629827581357370972125289173681910063837816488764877911297887849880280218453035204864494077650707354604462372523376349384895699461865125734387478772066988163239489215175723141327315105552116051271190604341565064488209095809439874607060780163057811057310796421466070688227865273274326782985842577888040286877732334395196764392044161552490847028088927686615400511667153123628967242532255225477427634375896511523884272218083021443212249045458808705475250451300879928767537584896404957832931310027179123229080105365533703561346478255855155725754376441468872917623389329570442083437956903217752717872573877455319895330889045387073481530752566416955712235735257285256726684741690453735549836478519518275120663675873307502830871564516159650496227614652664144210577779035554275857295006458530136626389411132287145311961071817769309602669598792012109720168713016181492256295340521700203725274907259573302341126490056857847621815977100046567976424698392617101378821240743458769263625444434561204077275718606477282235562142716518052436529327397431411349407022239346964578191221121566395410932626374195106174994777235761965121330552817350262816577936477112199058462108770458232346435977853377964120712562583401448966805790390896693058839773719702115908494832936547644651704305794865213625152368764157460675405954639114387568793608410200227190927298515005254907023919206786700343943061328269631458685488961157961988171864967644617803056748096592962030156337447671540496943297017269784831101012709657077529726176067111319114955129267409999621433729842650124719293130658354660223736573502163874211885938547092278737788262961845511107332646994875505573288391174460955781646815307117244856122684696172877439863365491907474719691783352777348274740401421902692882359858754241731415437399167075672329293515225839638364498171518189185544298961409425441521433870755615951088690693942664400073050710685941057653537630243191849339350045729432553155748461738579885364849122101378128505347508140956562026784613868313027288193493443471674769980506037318001932341209984692874238665547914767302457100354281341791804309572983756611961012845679074785750145780702352681377200510715221305803949368298040688576762574885731047800311352308222011213388597971439102731312493857663274247038213411284370347398544623704130733247463423813846388228022566383331224663230605371384775245649991449795646005863195199969525157562596586433300532810550245652333266017461060817080443874429546442882337363687190879228760330303896304775617432351999654020488898191138300096803556206298907594866004915362354726940817396079493918130899378221874551373167054948111893469881936421384101038007691336885807123463282722055314503933055891458917525394075283018338562049118001617756346947851130428637921376773649585139015008393872712367424822119151940144419189617720240503639987265889013911366330593350444001702217817606708173542470316971644827085197072496481163603149103824679088840387372075805990048834063937214799020103397141744738434273477034561185333714914958524439307829455968429517050389479695446760028235194277740781697227532561997055489229460320164230944502733401750530997541804678889593795223870876624469083229769369480379030174810218960880965413850934220650633861699018324531588761065555210848414654499190622721161574538470912502539590307729733950484360327818982446314402209053257131314869813338109496176288887202204179454012488439105232173021068485698283342874981471151297126023696579346331435409100435007408478467827032929788508415409656004718794422518793408841167927422048464499560119089383171529088548311249123081631211608416413842974203268929507108351841299445061735466930516446799606667485353725245659444573303722776783517381241797050118527956320627022865667630270595488679001290474462914883775137126868139370048849967787083101728813366488817507084349476170601041445020413942674536946633285535684087352293957649491268692878244538479743409814883009967938942021305907816774281649071876641297443533095007174924278520254433932999793701792844601153897909344931476752231191756275063283369496709456820265574716516435064351809328176372241430781084806502511558168518201571064423296114248355136658951444870909434170366013992116919352395913065762868407612781973168387717019112736808918832241380618535330124330962779607304048721636962114995525017264414748442098208707214961440910202629206175607362491094371692037378374392263312658179241797939878757468999568080386834638399215304696035675108881904106495061584155759036818027515820006032786863405608114375042278888705434540256198210982941411397629412603181585566997773039656536540851443179907446467013964380395610798341039257221180345902426281048927190633209336426530799488851625487569583964872566117798137769473233955294492341134007318226109438891527638623221476960451928686887693365368481288327536384708031508377576698683445522362218554813122750465119374954301063712561359491637988468367294681322202894078311980921802473395920114855892462720866266582129043353231657343891814481342348616798185376659767253564220069747529610372303710159215987805148586326603889516313115156975727380127241461274820855077878259539483113746907706931904940632261427942693716919586420155732302962458897832765095571912596064539539441933525558291084918685295828360575938953297358853977224668388420949877128897259420319983028080991164724317186620491880285387220258891225060205927186134618452957153079052806349506292938049580186270962745783880104289406665238101718748059187206217026485995716560588253432317595244702847398776778979777272637769007274113543489259272202718012098281937665802489244036599376012697903900206014865641815017398921893142477307476868763625880611176327017828882808327662407657986499271279473203296112135791981077179864917138024105783483866254038617740340577354434240481455247047554780564113114490203214658913387619244293433711585226935870066201438076534204920414177960816470004813137880112497299376367184721799173418079414288231709959100169191324787325110863461424842942486992930126218023439259564707298775272103379808534095289984495038008667012823463278622979281450555912226413565650154651768107380989792349286387108838620412810110101432985840895327356180321517235558793302858958708445380953630294736392829393479371459813369691775236727157600908464499492151562275150020985851567601895520831218938822044207219720059091104775210666265607996281352968619729186328258022343440447583236029829440266816565721291117054986659801183390717054154129433857955400139859423647611497701879427320172286951886780392562654339332698540721938785077981988202202543328101431037066254952625124700401833142340300950436757077228588012982954970022871445003804158146102895047864105825182950510745064007429448991231237351391378665161687513514512052404533277038992916808812552291133229440000725222348715603638109306778476010506295182948616225726267196329303695374706303989589904803336856706639779358377935994377076553520045311722485740936485165005644672758234283070205136698499997938913305110684806712251978610332224758062742396791249336830255736992291594382401146790647458353710294024180347795184874271551466401789334555205829264876985199599680989637921785007632066224885644740001307750930257640952888094474748111036826969983141024582331727764384655826578316056945437018087532263589227293009086178851669145295105832805934229986356251196024229430871631666223914556282942489865739797177581373516478978658014452416909532450421341315300683004672601725786077515189108927338074169695812953312628971653558538593675505143286405711283210073224435390440100258381406145496436375315650288250597357819075077803589291965004602395082434775039133487782351133722598081984788230859824564987194919665326915765572706058655853305390500379842439464763840077274127285231970541381667235813835636361669508238523113636430259623806551961223665403043094518279757552873034186278671190782858333898053206791752108665691172578978431214611301544343345409456761651562199287785177287415970022987078828813985980230069464223681340325869251457762703358807246563387557979070983688700592319626689984412531911075794173522304249136636509155196328714840253586942831461031466822063221328201062601523214892154443548803807838472590895401394257377737471907028926726875097850171683362696217692875441851119749247438329094116036944650639785476943840272440133481519447718303076264925040606636739928778174226638001212215972343479239115842549019348149516256096063977608076386541458077067397980221997706731664072804237203668536109841933644238125726470114571372040292563776847023024779087271725837240708189546672858033272656211100969007038517658780707765727536667885337346404682115627910854740422936548515362280351231818777067747286432449542070084004182962866793733005470912419280101939923519963565478103449197591932033586099036097773998161095522695550683029085534431738418150999723544060220748671166979948735051849978701431127348605067156156637056897230221113733348172644322109717784517607685894120292873042989924532654354446648314707915033717938746736157653432236600855119959300526908736800237059900630837035813560768178546706759373436852147299300591419693379314345224358531771575768867325681870899306313350365640174095235984712119946886873693199069541141099272287915661460127959441936627527864566797833133802262116624800015658596183999828604974965264540983245764597086654150839784193787215255155334853159006088883468787511794217406379928639120611820344342585008369158682523056592991397789249677856059275250453635550224993909220355969941995134724834823310620236720268938055022175847843516314639613488491280737744142543300620132176130936973688587673167582840408693492533045168321214934320222229533915962755811936596414305010654496497433549745868677853441078372869591241143628979427495808328783109805263827100404939368389315517714845831444065706416258709692852434815048990918589444711417214440271769957711788392644678410484176953449159480823189619671821385706416793471127448484211240395300624753571394247669731178945013324007935697785867969134047733685941792571285646341460538929022197135359266745411414094478680989813935246787890657368680834168354401332422320857464823078066316521499575664525140379190809865675560514187665426002910062658271666534046131412380527702600996975009020261246215749931925802183631876513535274326462162892953461167809790739390677169916240737962919692845495766507158102596736656700077162164528807402595351634213340810955707711290936227998431295978253505235884806637876312119446694893621372693980069744112135511112932257462440261972174762099772679320118906072664452344589818304174417891933372029043576839109117613407501034415933062621532264765209767613302898228471188361183689949580255922379943650074901366021150317799681061811679493456542154514767995619406482577972088925948135845390060332014499662879932670166448180426875716646805080999646822266240892024817858054276573740530540296789652923451288274671352348269729564726253532549947121014221687612807888267550457188907221351280288816247330820224105219008734296696437614440225688802411622642679679019016892788341664019164511548615445749775141877571858392748871707151346605748875898604965855555507001771777003387596060204045041272650796704872396764085665906329745782280983336342006720508586157954893901645727349517475953807654764974465614831509123606347965687337103477618854311700287638134763415456582173962454502004373418142807998459778558989908146467414482893459516419360488828844578390266653167784037608633416974969065138901373272425229010889433874303357540219873163846956216320905217896344569396939146351281829234374340535942695150946774979558528680250861758245573225766700233281075930716823604159853689276221243098746226220742462905713989816535466976358332916314815725417112375684839139595375921085226372265478746479319151457803341260532087296649978605988767692964021109982136567902662305269186338573099520852791507710736066666651570300177816919902573630145494551456259090329987257136383690943879010093896883713097632324842797566115853370036737135027793643549979187397941711755476441983078665497553740509221222004878054616434280295699777186602887756284148580975103478920798418180645519304174551139572582198941033224621299146899844992481421086132033303710063902612991249087438594504217731052825058130187628437591313146104377268805317933543028264087981667952347086010487204509009193480697197863344840517467194392371079923277660085633462653509810264413525963431337841854643386811507838937077516041433832834708009179397975117551620564187409708690739377474542176829622018854501436035852460131973440369719786837515153000729860577854932594502239578322721649917328314155410140113096306657111181125870005076438123521967577403120025387572934597871271817453942958690870254294027102881267117870738617316963688850159414464923053276304356240828888616274968295608297974005094879142312029427949468532928893212462778804086445980421596944666704379931582267407171114674796810887960566822616409215268811250071085050982229250720978882756812999636830037013114018010942460954026504116397174797200171859652632931372963620295699816576983144136812856031387301669939237931978946085003574048684797065279820029713513367592840973601875639490329311170274765126459766368876021279766117203039945558777560504163693078640401822668331398123939767436806021070725241156065955670841215480754217959176524352611454868179197030959706325137354985218246544971346520444920666134841375767976411120158546117568023476664892133331801681803084854953434160018769990923828039908987692905228972564598862657197582521862571601662419630139898981915420162851825772857723044527696185630346472262139892455898267276521526032420210682170560253224755265478939752574635860411110001208164488011681526321161225295617202355550700425576505928598571880706631366382782803449357504035522160153313394459593675981567327834861459978034993616347032591609893082757736239070220721215878344480968924640859649601975889050872392365241157681081666765763403484823754241704585359120306900738959903517237505064055254061637844454359288720654756752201880057007800780417608820156666035347147062626199661317232975540987041823730157020211632937247626204352432121720889935218893346863053395974007278149801496859056189963656985506112337102086030940741282089770741068053241957166926438411024626538165489366921094159466362179541394596855779307577068487441423509541749632502407748504900405506282092266711016086042814575778880045709444192275982080737058062644578537549644783285201378525167152589865104646175705621595264511371905205895060314866901167347755382468355600187634666479513953143949933590314088298267606045139154859452283581375349397038383559650507278743156229340149166596397628286498993713338423911865744056371470217531815091123803848662451143032303200469154086947167767364489775104588523093756303739429790743328212172171927895241671358166001903594463656710586701666819516665981566642289281808432366743447907027071272240380450587929452362208400492597410142045934869313101945141215614836278683341810242103327797887594272251779849970817751920734179428717102179599262959564376466811037578333507893350093110353358483195207575030986828212993913908735630710188290384598062083800605911979819309919819881204364181255146056057633541978781218835161360574184277703941563665560215990598836113640850097854453146010860720847973083380949728677111514725860521835188448631718349575323570259266509637430845256149824414580508233490067335863002705071803521756018923667582636205626160866827658557120328262250241762484067226602481076080855019721480761358338862516213102106898981537380746058628764573216969957062036248529089587341088506883856524250313298266481835668832624166944532371536832450755980890414120530197344738540136165638786295421698864344813677159374911833200681062347040797446862707632390974226359479966813137060895142377987500139184202563076413476146613684335994592231112491255070044027221988265583962242240691131117214294315014626493584248169217478557486038874035739826040478510536360943019663358453692889114205999216147632550953085740753556205545429413600260148073822764995220731350949933925843535472758752500799587139761129364595635147568753660476295673715816297979342030578954220401546191880557997566892731047417056019887742654304900496271945227099806946582504882590449648958264435046076032826899945493038899571751301462122350063970297782044073333390019553197515161018350723796155418054055534675873929607847988107666096363437350552243091759560359336985599920076556304715653613715783334171456213634559238575263923775581483869765358063492470536269053377162383456725383513584289113176302190712440501272011163088476949230759761647739916623121018575751240148682273642505148193009088983463482506268488210122826398455660238068230325442436659904316810291547779644503844777555443347359272345790677737044360596702069829482989508820803516075790438024295443554313894084711108806058564764894847321285015345441681247293630527656296367661979811368560350339823968737637555072486046736126127976766556771343934033873487625967626778512856176775633481317619603286675605136098187351699069983306312799337019394899647387079615425997927120263119965561357145217221749309239182177316998740529916393357137608312789640289775014826015922111203538166789675545265713684583962652894415113088917612573541360036413994114660708817676840279954158054757968417140679754934106916790259521740041957535031281854276900659093287858314117191040146330993361803111492846467906439750426713087948068145665391950745818314132444033023207010012579255367428575248643821220523258943569726529804930984936354774321236584000190735746651314194073849816614287673463137771971114004364101854992558468073125609352764064149225769415658916855034570285212345182455916600009201804835747219446230705336818014883912587106989441171358024929227207681324013024586744055561013958688642974544080861929430214429288537864937046675011645416253783535940021047748911818878181457380455473710940692944545886573723384270281948168713509932046586322480657899086407568423431205504372712790512770707994236781732292042536136893157223219687273863970919566991544089076490331487519232425371697793199644993965942279861731672182986481622263269490846415422117162049950844748448462615866200685969923232044414612484921349560593553217580896088237709202503033270474465365890817595077631549249288389098989363794083834301137951648153869684788438109447970556117920330284503592936663366175485790493773648535209296660299279224970199717788362684454410108566712114430214053323884487505579955091681495913621297280673420845436883226177876190845258770407203040961207640157865383866862266367908576636690099710761775675833631220281953927718603681556582917678868617719584556939931269439112187753392209929691249412276138230756400717742975367614950826949451392558128030924146291259462935763107650227692646229577238913706038080956937341126247234294745179653120209294515305733553285842184401003598967181170499892476060485610470094420600548016371660723698640884044960400096956619344043885828396728024377570647687902616524702182187278000140743341960143198699635675018466070305410804600231634946179320346388399738277704618080982956130098725575079917971533603468078287062018462861620226615751563474671517771673460344850776640691247339605334989785455793860451849027807816165221953640995332375310467452185694006256406271598314989568101432126345986220146921341945384956272791098282851379311397108638380528471542826269325062800453366496798060538336400022090314089190365211896457674955003209960304294892367955924621248084380772413068565549464865068748062571760960820065994015062058856167477780217178058949259348185494912131157961313457538249192136957045149057628633398827771372148745946881641617685873238554619480874416456503021194207487732772053264666971465748695804411724098042591726747031744047818912386982706045254907853523734516840318713475374817336704452182451810702748783823408848094468206852360792982443132941376807600419657830583096299223444977655930517200957990956048119782976855092146100087677637717149822393549062160334768859606270681868067363547431396711906294751790591180083316570163042954794652089673101238078354337480587336320579500548078920416533827044003885588103761818397447821749883822622460072811155231923942095923066366175497390777333919492798233902988524494065316847864439223127826841878697156800061375277758941154070942725582252665988041765957383352393667839462338196200213754186935451448040284975781638876550589027582095733121712626235627487418568291630818390652922375256773667023117529571476585604994486235313088108769045199786310560167765343406543558371223359267074356491520898937510375879569228787557455791347412243332208022909266242163193422466860789416131049973801629354082819269403168361606819371937347353742694853999207130486861309781439092882074974148190149260176034005957667127575602144690756992331398938320979420103969368556708355602642775305390577048443618173029150367403075320252724857061675361306449733953925805443719256422874491254223025220058605636450650146683905576595340192324686827021052302415200558723640988356803547121430989157952261661755998531179268740009545463432958696656339698782921794867212273854877635497068745713244458311141465975630791453777259719923768973264048091078109693700680989199962119835743724829444133885660728952267972206008002367686945301737123233161801973941573656661445972832215809407039843576690202118087693509844152870463729172234485800946547558067445492900826521470693674371268379927939144554726197134674231000901219797203845907066890825441266904314911059076145440821062199657688733350948402107644574875917346874373142676176112018305470520491830318915065212150655151164513796105892767945455465694086161363535078828903151461462717506459632426258342188570521353903068923857558226946052043993698933054707211919747964116674999031669901355554410719325308898647849122019951239505842250593646200295581528817164254954697708294880958210960574866967599681378191917241092631760267356229527121942395075018707385768974261971110098671774847623257737989783593806813718275905655673766637935193190379425817359388626279367971376062374535862712874430545022871000935409422234948989929021218909119453889184961877989078136995337582980072051149874056751237145009051468110173751361486845611879857135312788829528206076395772358132358457926370699085863455510589787696952303139474418666858691392745373292802856405283416647832951810130411732562177411028588500357708123304743736248377038310109068504290672091802154485792541927561509666674742390307851723162036481733986959705408682720603534403197394905103229159685182907444756389240112585736074287228391165377375834276500579511090527912514903893516384269866426902794741375670004335558180521600265300811893880971448589781357009384053020681540860106338294508283585949619174128272509053282951082020809573348752106596656216504887841580278050348123103228130460023460429130673236694217761558696420041609066266804318604551205061830166947508787577418933792841175436669020813450580221143061081204338435925836425384478880978335869118468028538850652255792962188760356441783356579395590053457210537537823022242715455654586877094964365019113016236946880015795327126220041444310556509139130155228981006140055617716668479145583462043661193490759641466424560412311110953116158423508145812313955180622213996344023221556432316334189847310990640023282236926637587695030300607145015918316402475285301975767448173835305597975908135486907034929192362222207673501950328226479144230413331351211460294052764796699437582515164170589067992847363767521430662729890685722931678343997949192846915828271052326495326450278493856160199719993662928045202837079144474530862962547331490304534003221573714441178823097900509594589761643273901870095054224528111860818026553316007096117134961467551230631930054089659624462723436832167062594080400796448999538409626226851663226119761066363976577576687822090741186564327938148107996840868931427252930030952843213972642410456953356904112567173905744327229016070610246439158936291742045084716483911989778448808562953827173109764709842163059338797869101254713979646085748032379343811139706731237096303760925079516013024271921937564324612212182252477810666908842004313683547977850941433454727047211870254700686513759036283495390240521764255786478206022150920118289314718804284755192824416060044692590095803592468015633703289366490562692452470040131479459265046131862993361185514455867095566405275551368481858512552130431184694434798312133954553401119109751732156336663256389798434389402599136268742292727133583846804574242932511393448738271524161776182534691402439534468242470617989390213520459795827137727727615197581261275043340536225948092598816565224696565679845307898196626795540400560393950042049611217411117696506331606940290051746418804483307144439312954814976568960425682620224597371446592821178462721342312622944335701681863107993419002765588373854081057928728003317220334679726766987510313065305730539254312817980837717962894351701621179650504878564890967783877843092208394350716739237041883336752085268074716811494489067548579051397121998295825059792023431807857085446185980986510569624115404055967728176820806522424864947376637224584249838102462911007285642511502802949894150231849284634752677896937136257648432338174573192571601730472866237116119746564449081629868979661855350731604513419196238056510933865923271500747393502828102344933009097558889341473192321010709612894239046272394421698007374910875712008396674700507494200498901299786592254216921170394457581810881862692951473784362836458216093453505409119859270632572589741121906651214967934680694251817744902437585364585653833436322350075532739737729276246468205140694493103687922309556103227079552007231338551807785818013516908579598013576224938271783469663148143894611803978318166166388612329234825410916093685003271559100555640197066705217127726879576532460100890220888307411312465726561135990369793255869851314382403286829469429523342557590599493798182845601208990428293323316323203773883951938060343244086878453840793654137496746860841228296473582446980383849773182978614079044940694604955344436527814697742970922670097104655661606186084791222908900222138640722590392121927633085096792282344259139635256608259232132841695353321099448896091733976238567184118273218458637528625993710328077711789982937468760015955094017542218524665294980704698962170428275622630757252886295005944630255402416733683640150693136502284287309295290889277048876821716046877522113915088502989479056649513827493292343408785531596698264136259613553794579350199978215393589319635476340127057120012011005134094278376163275598048657793824914791124500978464822394711333180753842084747556671886376346365418233040764223144331511690740975752873590878685622469442982050996858126416789681415130241927999911551685140140911476256794685613938159749169434554167204019586060312545212194927463553947431997998963438321181865789915906559647033894110168694749441849382745882624727704938990172985076251874528752550100221578674519464572887615895303206581696086875181229799128004999918302084924282933472835210211713788195831453561461546597519072726358807879411108647978771019178094826515705183087202667380106453673024511627383670022269465545602627312367732362176877818508324385749643930668377833028517637229076385457571266629785188281950497926861065051384808608492710800482152704070000560362553870434912493198615741794745109605183015533562316921734120685640562121292344684812528568791999107171832216836836267174503817296901064446564093578117738899162640961237909809137544516427415067524123681564061803723526494845169362644572979975479448677444171443317701508139296732759892933863493855601509266097692811117413107147171944027771251317201622630474688199941655669870849154824838632013697425895523542000840012696418787866694873004976511681601342338168042833042378018645874419210996128838880185654559952118566193165816034106193835752701480163950474091872984933070432175061477893748299577214621126679462730952099789297130055827488418154622930340487038367912996998053344390713165632824274166827269126378933694269789626690753555417895111947656131014889547381540162875556838921575501934524989080360744816283078300180785853702723243710196926547337481348688637439617235819816182827757671722246530084041948464409704295230569600072098687344836134437885413597292626682826699586711420608054576738725680961053901534252814007131208933729637138806560089654502249596717072375112272648663368978895544555684749674230212286297055806150833824797334127054462451794273550160321604600894136505619639331868501641100431940025218018097647121984890878448609892379932795200685003810985791514061891282258823093897034064405889501768356281849955953983627219533468271327721797969167521013794566780283891144946439339581705752127388107982341558904842910133090486513384440012017522976197305252915696541263749594178344507651997096854584160416821465823090310014283259525375934737310640770084339490638012162575205147663364741341257006501962104983391114223744916444998057145841757489283387311097040871857159914012740189893810704618411660943659390076345622521946414015335565025702134447580788753266986514668349212267828669140673650176022703205078656960030927293568021309806538053590198329391284497654817404883756066090240848483531732249585524754085910567871878850367783281629329667331314912265867654429702381221571480261236384993308186955489523307916686447350194867036357696535461531379212634888881815121158325058299503162019916637082670136426960837525683098240714571985267325993775023359255578506255641243448255572122580377710532884134145077865270118816396905975944708107763028535172114041365499900888285974034251342891283744219631813025842211425178465212934397954552175820212819896754500585523173449918432671734755244457502688812430868395929686953437925879534909636267280118225474016340011552820516308621132759709068612830556851227517165136514862934389998957876339965151307885506096343218087020265309405380177881513034803306687924363717103530973011314779673741499199925863560859870435109260524176765926095236672329456233340992377943067985434210495386596599807824179300813853553277962310461403658280440873719654908780856874699430174800434992293797035280189851182968748158864855325140276704906015653994948323065088102802566163159616515466515543673329807976585643830028410485199372708733990436092811438434941435417675394259701218886412493130001020483281257577049457514681878984966877127962128553479982627102267958738168688679020297667255131393634051247653827127852840637024092361741756836301800726368385150677622913117410887403386043832031266460050034733234961857283708378424903568453188892416227297609826938276379414854410667022034712837924535195470294167121289595065909883296327204135899713203721252706770919005422140527011072296307559357625920850142230483743667345233085742135000277329193076913583018835066375601603949056513729633813793773252495746664211082389570868536999707354977452016246614788629882042126226256340902736500848444633120499685198921396639916894793573252298579307997818627939370194719443111226189183726926157893413670021085957614119949401558794902459608350541504457870884910020985556419501688096438868445462988265338903850336684006156180721852001781603147861653841936796104829990036345693775988172240833925994084601869049065897735840412125856883811134125275153298506353022956530483541461852761422414922712937263875005139144431671550841460205111727333878569145916581919654311899590259593186443585133065813524297736389983903597498664994240328370434572467364621738144948654131482194632095052475150705674879079282648329985498170700668906986201889159176979198424679622455559379170698007247769676127397149650153220589084352125862259748373959303609822788138391911401877846681012452237127614152611294759266799692297721829338178266647334014663182596814803249079055869258465665935631884263751518844293379675127192546801899333629555674378405372602525517403451546831044173971984928634651337768026867946694045057773127874363257004441724822915102523833680445272220738140624506380146343506851988110476113030351859677808599325910936562696307805184691734109473039180789104152168727846554481523906538300484356774598443486033563821660818673665763704840392103127026500185927452892061994301316116292346374457283072885212628340835804080751643194170263258588954156811895351889405491826704866234184963864048500960441933704107507852734813241288837598957421784225248090642160288540982586575514209150193512515030548229977539283002481484112502233841617547580277456756122859234786725634490369291798341588826032833213701178238897554328930735260462159881076168567855388287345108417973344838313372650235876908183723766259783255680602654150721911526086501965611664634204549882063575092492265819732245295791530079079493280593984747246134684929405729556260833851911500217609432165735462572798348060968414287598080441878763100874535301833627427684310367748836245305289578979067473422592610468237460541255040279008789467634889931543585376287038883963733144875693878256051962096123883271287142785014053422381078107752078817943098283961677596796604552517359983638024572813846228314038582580374408546086676547789023476288364947899992695594748894661935050211902286931499378779999057088165005786195396379886110886490440844896170335273280446107871701174935523802459424491311295277367771650882949653300976680400951747877802278180509480069268972478852066323342068841201724687843850184054177298596080120742711750032585985336402202576361622351912152202145001940949568367452667261658024646263278268125133017866701428699590445765793764155806587770995355510317634593143657326318158730421294459636026262395665329400180721664018297226713416623984648492762940478593225071671991138675200410736182648205174528286600253429710441691014010947360756019520132728701425506965455242343534939018761183503909522970547027314468504812232691338760775810654312341635214268855294739863725207410878605740023730624162721942077859527249614452304016150088308156516643373914631091540204811890206371292224716618189614975847479816555563886634771527913653590745256008390677694181187529962381870236173501160914590320563889579254036202226512938908362971734657902499160686867787526432236737282833743592485656327398815907902432577544568085413130759416919705695633837869608911237383387036357697170312621407766085769406530794833318876972301119751395957580239167533065032641073387248984697053481888419149127137073133309018676096911720603894005304926029360914978656570820307066046520632304948936270910553435273352276419053700372811745213001952020630163194259170054589528537857907178655891634678494033560382639981024581157617468379570711404476816135287822958830974749740336113302007000373573427211072474282794170617765517127231298375441011164759496451667530902809117836236757122312226467104366472483832655759464430993709168765776615809426245297747560338414093877448849968713897329442589214282529073066911308022143483765645144703681095089004161952326968352510467652076778718261155337027068802467685073386728986540815348418153969956949476759719227029922965113927391120333931564236852183890951457293710493545700695176036458227065387770158304323026305961424136731374948254607992799144319761064566349844911023411835474038959139483969187220917743549638260304316721832796308156905354382124964647010753115459706357963095878300134217768016368185103904143384714375770285864291370489474794898274930716495140038699323536091624785307726085829580590039279116019077911140313292343761615991892129086270472195833602223814292638040828935167440963475240757018510232319465455599512164032195846782804459528621444762570059111395538945305959042479003940235396658590132028356165215045090437924102684758263589557736793340308885361190639183985736324129426512887668786507210820190743070101497850613006125212731387242719449303808139362941811325000515311899644251538072122691905549619241599574305564462085392760481429266972774335646531551957659428511688891777454775888958381785221032947513373360645507906299280540319620496021610929652455048192114276452584305337495006328295345565886884196311884706034786456589337620934788395396832147231181705504212708555406370443141146096334075571901951734526593931300405212759993942398349481655869664955342803758707324563973971295781734035948891767459297563601583898370364351608646579975109147390307361802582332888005142503232212164798564442683081721440647486783085563924717781268142701748714593765308190558896881428378925991186943882996804532216782323922488755838338926522384186523506816577851511163908164939756059240075530934332545267849484624416728929569357827083518456244065961873489967144503003935970813137654012148263497166415945029853851147306046324949320878921872124473658108656283941527980311731079699229475376773547608231815459567525357603329917898533177693341221861345838183676269731834239539905818321545142574662148943892643159002758192453254592768589601763283959704410208494505728251859259530676009601420247841887525006242330747789461339249432777798824484296263490500063689441356819328888647090011278689652487504253240842118700200190682384940369318224538328672117442113380093870761194533100564815245156162108693596386777166797955285351612409797177642882558481665634805284971847618020846762626783457157857677755653819220446567815089875009581314745600112864706499245449703177267306173158708575046907411894672836372983987403099358101682637261063712973738674062468589273783936686440906011451722599741765540411304351035708672895792877531537853974030237367649910599546495059438896600171372189529698134151201423085679371610227805182947116415650575959448430126573583266556914665551656365520430187172758786143276972810763055983850097671337382258460910898579957025090370887642588807543282161323159792642480906285542256844156146021224074502654294650637049706504538237807986006119209418063049580477199752031008005007516967785280149826927870593108009962386339020213588532149604457470908998518650728593611744710874059393270791050835244751470207906683853732312631869872516216522931140184379481624196494819260566653602962854006644442042391558718930849616524399641975721630939620052481814354286165367572545714011121506293835794740099271542097788557313860040798439672365795869312615100767073294742842024378098576401924641829524175018512056155482011912191576885087706999009021611421616740682812236658205640521751872883291305094418466542496785207752222141350345755422741822362471079244357599393531819688709341270797552741432168086848369264261344110035285409466767754664213936502345800531628307976190157119949969239766365331234089977419205436692260629727607665695959964408683285256020437041830958151265081792179472135175520934357186310886592194930728882651057201590875517832746216677076151161624732169491447287777850529393563725800646582695773996341472343410424676531696579976605315165146031541445214153964139010224401152079780963763169573131430500642279023007416829546480606872560585087437207474798112181571278811461245167691951080088469200259515455097517634673759012051900529232342567447310252272674899306530419569808714036456130547566307961785401049521473889887110364094488658409534690237172880096497442783467262081738555812325151719834921888077617116730044989347422905906635370045788889455488302204590900736179273472100255214605001569816604131160501479325944642458336787686579282102509157998739559844101922226086597605765576783065327268035053246250153376903283802261305424065278649635318746996936552039478221433371542256099959056692557161557193003937049050313869822409555430812581120733449114318836562455209130870523287132525046072154692955300854497394044955883075539750209204172788704713337051418710909990179215125584630372936106699305092503778943410140906318954485302170383297993843196055607661285251566119353403049421185879260322978779372979846160054738428047554128157566474962212982139943490321350712039260790973449011713605681036045418137340738340691066870576973066099002405852438872250941418976386791230866836337492328083094245532158215822966629659254970572563395233760047279774886174996842982384670679259531166117377569175694670567459451984877709402117674921889067102147815544893486634633196414868872700445001191477264696912745385838616976009757904137690514158687820052758839224627125140892479171901630100176670962216900484258712151513201226611208383632401809517553463169419728865656663979760880066790071970880805188744574827527985612096134426445514893948555201482182832968475262620451054470568988193911017963860031524491392848245160083549020219043943857389815324225364589172094179136444043991541499090664826732540246247329633872326011974184986774982658885368132185329617526269368792016476477291489782699419137157832188602511736511622191682596165219467602255019797403281654355586191802665178750953323890107054142209974870364050902985202438085753535421450292007222266871416464852418789365230708737904990527988873750875644973752312324336182024004474135116140648143079906717540688656617233901463680930379909022880143476021167034960853613385770734830744102385081723899384289898274018829046845932706437624052264865390255589430698314122341134047339479495899239976869282337038167273911632563347314254951421905871580154228284146929187407326906929056789767632607056252821824587999559565464554962549900053575093597880870778296761681237605752583549057917788570755470587767157732215933030810518440426796076515020241430831684085008305520930086954445728461896134788223010638800268615788630659871596351062171317266318967313113201611996922220793681227399733699215232672540280762164889176718463681453838256540693682912936450837636091343025680139867008147462993769472734674829500403894340569992292564324888785775528096193624857481705022320430243224784799305213676376672011451634404637330323245585482453521798519159532162141035817268009899873427914282610221713865336323362917291520876979214469221223374926932428289021890679707478526083172760158222165244018337687449337538947057362925558189953860145112090954731546989764114586030897525109827890614466027485678557676536639532182497054250072646977534987238703497512818540198125927222866481827312769964070899002322356364922137019625553843296435096692017451325956018717843512890788992848280385252727695121305203606134272499362796346101306804659842687436931370405328591202600974678817839356962682663149693746491565661803166330032409806941919736637807825336900807467327026348310408435633027859988949228889610652934962710363865770479150492277145804437376250382176902187865113389452679488560384628950541379356505231874280285439755467539905578862986836413764392689601536266858762931192773521019852731822547052009629400269652519191592570784591882372299869517595117046372544818069116022862553122704391485444898915920007984221678837461680483376162717128554101398204841120735336595241195280659995036203645212883440458146533245114501391887441400556324226714280503810602757584151432428071586113854816094392180995846377136788638228616395038661576875889570726500911684923832633715910489045337547560750721456275581413969643588202504299771405371280040147764839972348677542489648872217231189428601853355167179838809821883769566705213492399616100587978571213009038919463620428372811429491715168585879677525614628257611398776206168954041045641695264142749662995996428169408548977011401883898094861566631396257485220528508517037988185152988227267650719722803453325399347523110027961584044975472220428992857435648753624897975363322445425713709074030480231082108847920063012468711787492408551784950141552081430339356825797245501207147393783468351228208531070811875986253405374947127260846715026732959416683513494964164731890992704930911738622055077740979884388739885663813061494548776429084545473294587782669303637752307078298134796561478474846797305515184138583198778415842130422485209420991832080536494020098874253884085725299158268985355625055426151247103218666460322928582720845893805909238536405197680829362678078985778959768080745766993346837862668097877683009789071705286509970611583329436246906392268372502058527802621439023952578153937059950523756190224358750776458814776943077769105742198276604490626195690409029477544743142934565005285868087030083262547053139493420296309108111899267306917876922380986745954827055517065048414863775548269233834254206016607540044719976733882074254336498701616528217836015097655728887181546581637026286991237477986885540160897288181636940271350867239683609867576713005564590838782634213165731266113610582323448769230920701260696484654598201279505098886885811452335494345246017111223295683427290306179410731549942972843039163812397881824655085474900554322622451276232451939299742547945902318548653859500864053702572138813900535444237335234022800442463384517940954917314440437643655807446909417986539829231311859981974966028056220576392550581885788477900743829803543612984927641881878977557297401260508016016718223555694843885861437447346075550866845288289958798566556859654545427435196119088588698038574681952735336035894662987547990787362643899453453196104674927348165312342132061514678283631023766801772157080790585921271644984099191277553632117858342462875875198242378189755025048073132012295368425553344623412565401685226024954260869379051555060697122206252328069198666199680434588287996948471000397920831609626411357717560951641144328665155499374502983693081538905940455925752350066402893839269545596235902530424624506644870203442171223991950168905963513455362632522179128500375427006746994301943857161254038899308404392282269816214255602581068597576691381873304272729066589378785395586421645831643007247020578621546270360809762783472093261903046675138165224752172508917061881089214280669440142798172652033812450958950356757474750455914898182484070346744702833691868420477190884941434460045494493334654619644795174552934261109996393941719204802321939180238990378895683205526464461843806904907333106390819211577926417574797460930271696001036615274396676413731270174797698115659601101116112725392939912363682130618889400265286635417924502067548740909469300193490203976732348572207205148135628996371438394090891946462919517513508564102610671886816296499304353041715985010485929334460343202854625680543556365440613054060748399714700174388151395892624453507483684283251579000397925546598229488261708613248616820098906988967041029201640539978383686465432427178463338810421959441083533540813892096687697814881090468190889228887815219106241077433105474033217777823529827090342278466830313503328149262557159238190598532703499859482587397224601235344307765449720029689557341469616424973885485986357908901298640317197595947955203654743011071214864581839305608281811786288093053547980833545342059223125936861161080054061344646090634178243104757859935769043160973179783146424649511887962736843652744707753818909124935225120830932384682442864136543994450970819286336647326973397403260737304004937445191783740884507099316257832942656875011263205057323425182957305874219599379774323639446090023336969486899316421897001682149179469898260631825695390193417005556052890409216757664423322086484823236094610874729332188229545270922906697330507660045874457553767736375285897087510744383456586324403641652401314427774586636874068532419581937646041873793295235841303145299230585020313380991740920845844329279564557343803482426779265388093969423886495319389338282409912877558851140185553730614621678345430779011029371577278756928603636422301049596827511002663057521554274684334143249081762201883759060636877035399890833618852092697254334370146467031804836936333685122652394113891781265482697946850954107646021658017351635374612210083568084873463762116658093991275473066278555742426853894297754416697999061281361662827031472003269288786445664865455949444958552317933728543213759085507521551824474664418742344809271860132677203193975411934129744237758906249314659759390066991403130279101624681270508561747715749059503463943596088917214814599885833545615503792751417601588356204107240601385744824691123153045768419869709574740620369639568707845206915150568461148247241270040819688626377540952080388538729198653121546903948472596086387172600993307083479275586752635212291284960884493971473960600553475953411056472388235775536855087040531932213361432219302473250289858020462551397455626018923775315747366704150615895562788133187419535965558793600695928732295406127324613029134916980093863494555131147999077689123429533115414963492613807906792037413949966517279343236955857331069399681751604390527864620024459817551559908229777353517895129186603500416564395445787236321268408273833013484731637260564931351841364915997382309481157397814142068689992213421961249132889088874492630103822271393294229613050117398668708221948353432253331069315398855927773990239017876907067794643945039090275767342224808455201858351061968338549773854351009621681089029475365233034486614620898345301904104807001650180929220252575805472789389724831452261349354557789728827254830529859860300700566319596337986578273195980037402976812312585569002639585172897406615247857586242173030712734546719426363106052827890534323742255771544416278752955266565080369826632623609991389686138159320551422159749348601031466182183244252510471492237487139403223185393642326526219855736279111967968035571062514375978919585857843885460573331139285531867845810210737182793095392454630420180846426570345496151464996127345160235060113200715041481344122296552874416469489582431091725810325076063719183836455781996780670147158295999116497939309346899216658933902698623600836575481259472067415473989559832951795291062410850789383767287277269054655880545333556724117416279262222738742850725616791621746484637413923575003970702609160271129409459307904259869428108974933934084840928734046531283223228137502154385727086191048407244212270322959362427349042101370039922091905565874104864675339298720155089333191786068222552727020265921295373426282378954214666454217541335242382389389094929865303500823527997975882787876119116484104909360578197948822001757831890695641764927204836704544180012907005119669496129757719040863848329631660461496963788666405738620130890535619162050497331215375868551120513469644738839151040283205536969499197465671123266784225873257606152673625285890874403298195833052534105634537440536514679983481464478496424118761821210184695768766911010957446378566288308543729209294931942970595242470835239162326191880537008647287245328896866284021684686634346150373324368602790981113293750107334117532564457855471973153670059294335061548444345066522953788557409343215181070442879744517765572619466386146754734846057772610112186208898619582861068363746265042597391516878844833999326108441215536032610137227588700812547325992017581479514859460040574172063557961299896385951690896630559755787486742447837144111031955658330023110729412672291899730998849164521820117227314854366591551143105053282425578294584848914187153564273304423130970301553500343514529212279679690567745890615998886218597055674685780408528397748522204378231348339020815768000291032790578991431741378572996604044386555032435045685714729970938160124512511948612575524659198514524643077934339309560435379238684320879111235776869896604623782286438307182792263332184714998626102926630308146686975290279393894889436590714204099778912486289989559590458997110318116633835589592966157293022444141723519852942312675263687812649500832397441773315874911499296253383046289591218553302177170084837700869622823273006253046074738612671016049783922071403170393580310791200205509716761883564134835606497554536963208564314615240342764332118967070076617979587533718704650196247619144142941940845925245396276970024127206614102408749963799044492644955847877159040768600927170926576145960890331874485116810473828156371104682283347605104590187647671689368540456465424660152725526365205927677902721722082334352592076183065049009458478898835683825901005855711624821705286436618053934890708866487678843130418147325816405436009263384394106028353780469759585725738970669716154463626847002273584491826589890799777947670507255539632664424907934335868083052319621918270271459210152544492181643067305604953162904459030444819388150391405668014986199922856326507434211778785076086398088417351246664979101339500788832079490849257817227609990455549298395558162655008966852170329203032393443518266938706005820886308147898681100373085364402805987688855359088899788748599529957897067137807156589136023839598662764434832836426017851876779595932426132814742442110826656548077628684846683893140009737449925230647466762576834206466087948291581182804315791898100377070618884147234533784418305368239499133781635527216712417753777313499485884263783332540461305302120841428426281129921914235144654191153080498078030549380740442660457645081788363551102384611761274205296000424608995916341398821463652326292405505399275525574523818325804677741984296069015526471844506903657025718727536875610063044444895075694959108308443900434698094661652025123815093332978159042401750546757363243940835161775686393897519090450377649219562805779599715828785846149249834717694552850789481443567265053553700371092631039089230252101447701463746225321436691204814577105295660447093508750772708743360928963376084651858554520590560307013282626435370175435784620530143168886971545527653661889407443698756376802114859859327925015159191702533707968583051061391940767228104202645080404019153259503554760582150425366262051120074661288890007024428250110145884703799773331675046480226439926106585181913422125611314318136925360317410522596488036017445726238454012308347112544566168055004939889582042727150474493604909127416155583814521352726588388462944676554099723523159783990883929640555402050932897680394162218738550317600024375574250679075976704967048400738201231528089317657598169555307567039854532774612954864404329027834250726478224841440501423624949741432114617069081098276497188484013457999990617805505462192543652926615670555624017431595833634622103474103402813580324568223531187838926923676381910112141305120710813685817290289352740436316258021839317053205338873452364725019506407286938700829732509009469837731360456894213405714905302847891670021241561515718579303272151317393570044928419908213042942021335274823860168148127509348152029519483183034848447692279368587750097791128718768943672563022870954290829421163412105206709060301598782572421434153868720171958101572349309802008157782809442299684552300302182929262031537827955438153748953031617033851801680629638255092163774523339824816831432003579486994888311822911973475460095817520307721980853431479830861728706617537530362665202967708512167864344229783641305970422515822676876815063377104296789753428323343344171993288849767209610130736345561921753509287169314129516568262983416273817910933993244564825322350087931155373114642391819513632172944198149950249604904513858597302088682195954608487508939494467514217276051304314945089279862306910889954722341150581473185478125579126524189654209805227967711171962561151268051474248271737008771565513129116146155084846423908146767658496805547294316326862902449713877182809227849731997965320815010829750544866302319960329615353493184333791674089923009776871139577198211829414185949518959122112875043286702963834196270607655937095074252918218547841084811207137959441698707958932846343019143554370239854664199645705407072009323388450056121674526005902758000232247917747715533482265970468624300109419092337792696990419970426750356938342867747194926035686548832933936647841576765357394825409917235900702386081717653827055920748871831424365989965294612361485899084459854074767296597493845091337803535470521051904357514786941850887846290164378047139298894780077099928396428803273366607177076365563233625798813812539898917486109712730218395607066584690547730231314106592793138951723325684373151188661928652615349986319643012922998385294145696010875605354761618796477358461939934659913728638892149944361716032192386452282559885769805389196715302061444837258002323777988402499859973803582448885856547095691752188124747831489417641204184907968166703991949775646457378000212885411857367922356180981963400865437265684664938809231658652969142352224524623940792707708951145227324292107136165963152456879730438387403297196091279452169166189390703286015136966746129594039829329651729431590360472943683506461932980241508811851983360270554886361412740551469424309255978821032814598790576100377367195187184716750818105026002626646760544452657749405931208749290097060841483835113802532157690769206110884654296453113295576754186683530364873001463110617562032283817489571986811912546250641832041530320000281230043868917617161920851528486914040832576452651224883553705219938110909547370762556393627802449158362074478889502178133230256277849617432575695177207411656928515853243411083829957466432497461332462632844831746079943662886943974539456671975873810360951254662735731756594012586633291934512124727242015745497243408144749825189892915751780940158463268240818661186474273445550553869694880603092427064193714715732888228372255784707864466307711353984467732741823695757931787822389565859404384296764778634142449015535698988715644022609010434253283821484356098747202815661747346701880953568707075261438330400326068242054444782913636081159285168725402139984098508982393684537376540781610329594383723047347124595130100301518946252184946569204884473399652408605047095782697830764134943595593556586000588919199683955415569251655801829043861045957381925498276109657795110359189007286216619191239013411267701685513892134026235444690920886853011279391519526288490964378011924489595402519572432100566155117683684307896266203390898496142863666391008962218211059390413512954353955315372525315735033539808106168035774738111974121525554991777216011879650674774001582096729140745607109336692845768133753123145723958800002329157828123794119472013664896655775044808427973538894993921508360634767026338785726769185452349869888351915606230684849404827522861182349921730442229148492872715663465038594643776527133826703007539093513437098820552062758838827220164216934991863258250629624044271387045981334750964830644808178180368039412826071826038841595634179888694036016411075161648083596218932112012740266125644727417314231594557799717147441585116452938983868770129095988125892063340641615566767490375250305264518680043100386208270688173273383999780585614411904117146360573528626815545025317285405205815176561704855754602900166743851789047164074283183485426609309286145279510394441078752455608359909103936933363627988852415290109062064938425767273226263884567977425350761947732925495962213144731630653132902085409860345460353503828607174242404831211750438086947672508451103611119918189201828995963542466126557069551453420881219478179320539048047268440871726017302487585192244233249360987696979142955733387133591853817463147221542748629475526012503856876391671287459703133818453013243018120094489368354684629397156006302770641221939627823463030834972872597054381094744541210901448335513265247864994664713876310798751966705565676638895399325764465558022877310289544516429288853179119902682984520787085617934222491345505707566927973068731384771066990177557068169050246240831082557562162292276943476982571343427405222196147168547493406360974304039931590631013587856127530957586508948738288602205610818327900070123548152100822999502339846421131754341703084168142263186670039593324633559766712025828302961725646846881978438049245481340837985033256421548972233680235872859521630038322970387642683944245591291019920498604772382931740755288235085700856896297466491258892701879878141445430463014997281349710430397486036012387574615039732877290135523203402617246151866810074734784410375802400410881801561029441038535834865773997916045008397974705830875315888981722834670812685935463872814721925534770135585120423929037360153424782577426959733375679471514475549637772097175226260357112031119760727871729248056941348356910478769310631136824440929785837934375714457461532302428810746271528102449622851413540184326414616441046756708515941450866927645380348110306409726629492251059384658086809021624749447369843365000459011986078071472023217614202406845778378804709999400832442165201735699415191338430432060329704806021324357811448595109213968879921271594639295121220525987729302338040074708155809359237487333220533840605010312222118160841390061257561962241977902138870409134686603036277388143774758279720170888208115056681234655786890053964968101649167802779483007192483271846228334276275066073524385406747868046090783364445232881935497036824538773963549143196164688062392164139597640673171491524374639683802279562718168129065472649040633736743906012802515523032861543115668796756517638786809154678572205835308978850263084814096009101750440725011991362859605053271191093289143370050407307263895697789889289781420396400289899763523545986543081559988581797890569881767234993852592504644383204504043471753095787346584319705317990734403509752979911776649396369217062033836666274065121398516117565688557612950300455055395477336327407258841070015243903059442079831083570735194193136888114733910526425973205509020729631655270042886340000296558657276925596213869339197719586176975341081404777411491680693336059718902845381938699326150662700052043370597432023376302525477408330832000579933987334336398710589376710499318445641166092761660731727469550618503949229963078046474358100345454961260849142526473742837738638016093271100909718299612148044205818665357428332239724109530458469850901150517309022970670099229673516389542390226424106241771520835909229130024772713865974470561039836557085437949560576533856154684153030965260764008145156229620467665379930604173870122374054004864055138032229088705412120850635634843765504201862183060175506696219759036601414538079290530201057686484890571369502766994381002200871723250015467324897378284995765773949430128159451074198835448267744118600492362946378508034683431548172019632326365676017803544459223980285509489688558166283036101406932932117266239010050490659606505233847468802135584760141942285757125332398172635552081184220802163652251187164103833009052507683732520034208141525464715916137490208922486546140498672729001249084423123336472435088089793211797792094406233028140135677478959499380789664868739719961223166959411950629858120046103824198841309038587001569430801679338456939194712081439356162340828925709321780746184763143746370907552590097368663186589571544587353411849292255009642548901875893543511198091819494086958166910663292958916716362813479180770477022018843385087301263493773587792766571864977413396048603508826997214710450599287987552196616953460000081965598068233053941003141566131974802079724549741667485324000992678917376062072260753502677829019406793632621509893079128645974355414130639243211493152442936822766518511732405715932980212669127301573223973004531628192007316227265101926710241571258072427906796413187710110515870546997733421921888225112937926231145906948126145962219983525749725379895616360922958495081231254957221090101793048582493798841615181022332784912061083614480880013645075364447545956314530059312539037351566241876631708008214243836604264002021444813959145570941112477745383688776758537157786083144021926548076732704648796601272750785339605760505776300273677465687074749376172773162988809650851332705731957562186650466017625651764620295079577426576999252278725197684151603270368944356312363201510706890555088869110514153745342387724615288392984474457175287622509535104200255622470454205818642865782185391679869110327804802974099511009103220628786451868998015358880156266037296454915164166943316946902725644937694866861549383740312166193965759738990064041868504995932344829002334036423175954721657442178981154198760044822074308653397121626986139032206657814188665394105151469963488555743422277213257815711414929745995366035980450207428351225288900011115300666669080552428885991858417435715082419560191189621250213082327313129609857952694058059285727970069400635312259853921185480711304067642439976352600084427709622187921757546391616032286286777698721824447881244641556867587478011652650200320788166594882356438401958775319393131844817691203265424182757253691438473207677171213776056057965626875362460102574151929948233363756368281541932035319169622803482645295428859426234779445107832012530856952072135021815622271253061594151560271075481231404963512351784188437708357041205838373904175228355093592698190832654720890368336037027741840529681659063974260049409660189831940923585900798807680718112418064852852329886284316736170802179941000373248740810405489912100015006460029288141909011812542891628106672516857607696190490932538742795300544141943707753561401794032139290544596212619015889392377570191078186969510240059003748036321604535130536846880575895465718100740437951566250244124999618550789228441232082434435096185492011565581569744745228694705842426625538447147963711131362880395435659584644707265906406248800756990788654953230307527533960382720908034723267721770908898401863442978252445066173127839887803046411469478394745520712312471710035380226119401176140538395197548358180598902267200367582685848901055940585107220582779032391147953192218029095049596039955038619744727743503190738633582659618398612092588007454157380570287753724592018699361000948147128103090309997077761792446704112680132412915463127962265637835849438576025871351713194373552374404730747811070850302479453346656481922288083743534604072505557288518552433890656431260299532421211993439671689831980075250493641327992183431941493938936633640252721335733989333861405591270956844679145568610455782683481764038234608504105941619269600114030870940493749887423199414598127324194638544381234275863512401469673566443249649421773577980827621750585847316384501865199339421171723972182930509189728101689967583740852097380955255634820457676083249343932737772941052059769719230825264711909777298092188837649047772795594217382022222101696124080492028304680836428347356673343289706378451881206360524413410356679642043797078513023650052581459296214137505213466686733934676715009318794231327222502179624100619288297154435004447869869750713642379184263393060935412685251612811529992664542667442107611412655039138783939544985152589815043269680371550612046441754491638631617428830189892188966636076113960410623965638100902413101978259998954763943646215457630365432480400848208084679354263733829124946831600018440380497096939687414789098934119214075599974971201333261789733266068982515321132088971312930426917517620378981123868052751245226350108700784728284428194851088228046257538137909377580851207258408353649327138311720696554412426150516983666611500859665039907851825979113174734961564687726030047925552058338418658894998478595458551521311504341043170925080892066589600276603905355368385642201521053295431825452072003274858391821309553567734413296886977369910492778199279248857107029317550314326874072876720386615911838849310887833530313565667241485075806250536506689942645563444327674389861134574072723671798667039423254034358698341144553187595065043746997936432377042657389918075687425922187829604562989984721249807162126700796800391244968098412596209912151430601609296474552746489288958828636887334837607791927646669499886505203954250947267965788023783350263360295556819704742651180961196707521902443114478221258680125769545843588456131641381157034312535371775168578582206427339518128917720797646953866329991657463958993482060337683421713919358382761753450425810084028182730207360649388785109828490013556396640979227405803319064950506606573871815543031953157565053789727239042147332572578678786278041573879920354703598100269961914418630831973370925763530295541777269397408576030519113812688991105975368254599333435558647518847173481707453070399347389022366723456269023546055337072103099139424855812393934288835373010836015910722482449680195234115717555407290770755593944967575744838822628973324825244021244930330977340970978798815292537387685846380854975539405206288610689380346009895435469182700470371905727207908049991534863040015850152248037237330485920198550252244444189008738846411955000776772947670704201701804876883036091539053875755093581966727263370743498684863000963805129765192612013602168894027283297541512986206019893240327506872423437993233750915364578193757189875076741894448533656344546384261325071479340395500664064134209881961919030825744591461633380897301274992549967054328690997783207219662406637950249716741919127020011987523071513685135502888890920941497526838066658482392802072086698245502044927293140646324822867495820191127271882562524201618904567116307707055369465727315143523808327503073427609648599604517489813925638798297473578118917215772253382091492744433276579164172840810539593437592972739047825655558265833526550590912761631050523017785783832784890085634819708936619272605194237298909938226504782565915381173943858091749111487894630931532943742007983018757670884864789488024678126645562321828049026141650161853988114152659722645778229466495238703822659792503724676266736871057135446647742807390041885919255712769840539799145467383028582698993341116951160881535638333720476277451357956039670895541321063400858603422164892466838514013691349758066622135623190717915816771808596959822233198773823931563015033260087278508424120131298625778253548602753071875195345499975254955313840358978933813276934276816233455958851585495369165832958103738178747863756833104809205566433299741508994512440328620050367858930343714307042766939204893194542257265492774176082048549617413537646850959861205862186694456098896667430771470979903272631333068044595054147587052981510269994611082803542013659745621172229226401725093194002677738360626812344235339725320743441406567223862429497247771510092681878662177655417596495092360846922611984751334630407846274245606037227414541629081032031844791734069821722930416791153339098695869023870619469057137986570941621732708839716703647370190341549100500878062909857328560164304873723269238880246720160387561522361446004345203422685336299400859847741167728802225770859397010282929896568665858415582089036051515378415710756454810264044238411628300749480477358225113714297897956952295083629915797517910362326491438991713740211412933276237874819820258372038928580583381736276810608501484185061088846919288683128212072981639572846004054994494919301780812590096663920699262031470267810281901439142618020615000935989504870486510906088106464431259792657108228527687598683843157807402150396099805646151841036906540292871707382434105092047988759521240221689786928774656254780217641668270072713751756439788823472449089066245410359650382368378966463330316125346233503919798332568794033278190316879056523032033762673214771154264815545416625115422758667431704328313391290531035653392807372202594263797041623208530834369887075490401395371830623764533425267739670717115608341969427975005241376767497636474804159703097959693153505295543124927938654197710098720035200688115064314337779428842603915921584093353760788445711487530500304900792737875509958687759536659251981925161711185041357880845026750994711333101102853116879336867391316973572925275931465238717060495676809597367011089335522392094138525269940120357651832208056989943468348843901769107970052289433259709659699891587870449194369762435368889039747736004978842909735994873363651250366195712178357387736816824782707647117485038453505080623746700598396102733064016887619989475533272814928866266002946066270720354084451210249878548922943664165267385927815540372320755777241580302283460916652533295880003939557922638431974861435962214366447397948024591995545723811781733318829523126390854416934632502926722496717592307903483045069857622696058616932960028472884530403683313326372009273684624279853180894862653453782510801769455166525937046069552188966210778664393634977723174669379663229898032669803219334298292515491223184178201195345596038703648494379907768168705309911671441129346105064769742842521083400602686900141836805561199306533183610273243293432708773503373291344578833996134299826513140037160406849317480053552359380101514158741360572847366545465432430351727410326114492696729517190724686486060167270783939398419652055165406321778895108285405215051302811414178293605302613161372434362325938166997497002637230738990254830645576004025735085169858729848510156488241047910884029084039070842333426939371767719218990208508657575556944129152163377304990412681435857434411239446430464146995950975458265036246741562265071337193610127352207778957126223718748567079256022956392346342852758460174287867219106245871550103124349924061614382969946228824642902924309491508845566305906710988774058543275478866263899944574300812933633014335138448399075233378160075054951604664343305138040428908303978060979508667443590675008904227568883287106444594874012757048142928304430015021163309910434234245578967969705243808892395266553351673654799056353991456463156573121402049825113745065251708849137655368848613201390399598453486695848572892851296698981339911846183277161797882735843210404538651795932102667542449448804705838018642648434857258271734347250767302183237380312880197601656485038831010140446006850215578041558369019464425974848120281636939486445686533458958808417055689055784984425721084172803673855802810011186548779907159737194611196036153205833618424993051980027829072269997458601352233645764294636263307105259713516049116998340769280052617872835211772231491202923991813734576095736983450590429334594136882023654188664021498865561328788164128134117695195613355166613641651960545837953285716252964000574609380490868633642444872029844788031450060088753045989961487037184181062214494144282726320888104904782880480912064476988714570839420718695218775798614918448273184066824624428504416557611537654135715469574642394451152726307226382342012563306174859516542487197296138605752365873440070635317139140203086268255043832008297232475329406571371372533182085180650775830878293610573821286862882854893358838926472077011951326286959903271574692114484110970280202453521481929764493696316586824214493101757378960289328997527851378264432811981177159385423178925083932964517695719408052950995024587225579367256118982043553914010510145398775715934669494126123183423471301356452734230915181205251955068554024446445265173413086643220380070844800754610299691699915153797226367449270640632232608456729510007926235405261241909372723738193498808039179769947271932240604461933585003731089899263789057300753093621778293244428316458915384793861859166468576060557690654039705831172827645216716248009273879512201441838240848135858379367246256173352648818560555082906366797062262701458520406106258467284253666351097711068819823277886638041193717859997709016126701588126883107798656905595993189999820889702195599513575187191632096087779177759133569739399980127836912258841084209184284190059306036133316240337275897823319896478931157338243198926242769575657710510819967342746800887319375367349150254756256073492613859381529600025621679294008969179394954716914416629343277398286571016622188575071186387828730018718531836263413098091433225005717106010772107891106271019807273661782071799449957833124925836676670002639266580755151146540513274469274463024095481605339070848835568196611106298468831675571933910093275230594514117927672118947913701264436313524066050608388442438815703693676763063136018372220489686072829623457388981017148874081939329385722055559853125397417903294185844138518070187538413177084962886646886005486981725214137029438328471761228025789019618213332464908842800777823118541377471702207849030973702323520370878613806117399139069997204334770625398763373811454990488766530708530185996614457198267202159326725589874570260187169489530079206602679600698834374853135642781594043800621691307973041035820261465354604987840735976361911001357808087895917995174739853434297778853882181342438857386195737871099381152021023968748474558113788824689961221739948833356574613566313972236640188099779877522623556381632844703422789644819936633369326544240022926891583826716054561808772850633606247158712478088774183286640305737049189565512185032703836184769531416845539632475986007869720391132284233179654640802966491122407190998225008149393249686814367978791408183360630088630690475479107375184504942097323282805031510349919154668740672594292589076453537163243332011756693271541584632610406348964475278851140701289006541227860387513743781314249023968137482341535904471052814994023933748078275609772392020862242813867302505867098148048850347464860839939689141970921947949655022420452972350403497771485389310517145736714669368627276464410890133400679888852469562439142494037097187611602740737290030743856063408665231482844758094605932885301270574352621682492065720671531638630671311441780356704022428416782973866267951446280458495552341144341240572026397814420400070631268993432797577121350822012332006993842281113264589976197101916285968872941885348366910908648112689870064307589965734793971588197649235900125560336533489055388681743166740739447481759244577446377532509511395560523772516246889584834373081539837610409899830043616904077992576860843849516305783345361890368556420818949390804607801807170849284743546206637322635524274828678940295868359237745584161147306002573210845648391862222421381157939715978200476806349798903862128137186314524606901691870600150175716401921715570915836244587404500664568617608958354825596808239025025509509205888839465383520337174586700261938623749890628785062076634031175139893541969095603081330496038255542860271152719787206833841671314149804856055390188640082780217243675599448772951131607471340616338025060039976139371677585747620553344191387026303481451666902857471122472627799307288779899969474220177715764238086754565963150808585106135404797107580452028100977055944388968247699915104136707402393902558332380154195850309057135659342464110228593627587552273872131092482245131502405630177334882287738226543476628580442791955710928678212234894535194712121711714140432492641586921621011427118388604527381299691964051520125690639693687542065811449495690227250241421359661519717628825041706845380597663188149438939699211196918693659555168349713742665591457783711563476767568874741181751336381777868672410680727583348868454668994136176918454848753840437716450638875497118523135823728037435807199375382364966151784852959946866444731306170318381555959188880949156439105994265667959748781159531567436393243353529253385543164883509294233992585920552895010647265550054925379544163381000962023381590266694433922279347320298098176587282889143591425836000012880896542975406232607685331288196481559582874324690000498990607219436516766810800860458197379998690838430770666943406563996635953995026845163052076344652122146187274577788275301376595402669600996877732023676853852694053055556789148004451236503261687615871606230813859737268150226611905150536230190887035260250584981219537104372288686309339084680260820254784547693025976477579476804162455087969162283465943243420769159905231091504840339697256466009234691065297498921593168907887168704236171016008845471679275629230245692497323007600599864404140376432933656809808549307898315782493342322859924451583700292432707179349808682051731347034292613401579539208363044086076987731498015005325002895334828927989618111969541554898320192884072414471717225366460488778783807759294771922810726517241440756791887151849080034223782888540102641202879379042665689987689130702088601264131287444907899619031349689535734097645088238389105137453386813231013875818521403468496210938833295584538483965152990167381626839254836482649731627231574111518510002821525448810103918325648111212502132938351955483717188086261915072475437923487202189873889841682680646691460373814470330137860460478712572058314235570119242630811982253484510716150610016484718639534486197474620280187401957862667422239835666553832977087808836244162634470674488799325388371124670832900933649800487851199801894876201014078857324996952421561704717730203900026340399868619719315152964724486221656997248623491494894435026547515542328953233115798304608437119758327394815988156625987847107163253964002222130831774657927526364038728389081217298144311130325967650220815872253961562486173659420970540483210189345974723587889242395926767067040213827483192513534604218673670371654049139567698053618051248904647507800641990867748079477690714782591027943671321670821368989263383160591373678291196719270357237183650437054458046607943176369942154209693577755254239965363489359131261776552391337604943621042065400520750257690997115775128238259827988204727296142589625430227986153836937436126601753998623085309053471629982984083327926304593173290092038304066522927795818602650420234746547603961056940401460936484075982151162995615990561938176468140882653319793132372934144670217292134066925857564996683323795325134880271525623230882289534822643081291743513031730177172217717754384075455902433145889396586547090952077478505721566394649230206899643049541735237791413644437163112069286426577586091044371122438313010046850199443903879856238668011380773329460416865343937028656527066687177223127899643808969080682048419866987487166153928871362678722971845716127362903123622161237576746420342279519085040013370159982581811491435463408487314616124135941180462088514554872869258732876451995580399933764703114789698067694303263625593183056617843162626086436308348777891285450044654096631961159766025734419065552829037263815025090201984069068848298416580795420117181796357385301328025034018908958566894229990652010505989522338356449575932369906942297866442292415535690302185761137233211364760435332960123659726547065291444837513817859808574485908257656832810752788080692463780430844548145539816223723196238446054275591954973992253409244280550674319071280448724274044012156055801074323869838560373658134047174413726729983806208966770482054177455251450543738761539994914319213326113226709455772680537687582732759579773508120762444059520809885858173128991394708446424394829992035710112735953328124294858728159729605305401234499520506134031661018851512976538324836043573986782869971456641670155483765776587818474334871215341504829548739380200217003882967861663434681746279085281338019171032199204439113472443473880878748008648965895908439837109675355788732182442074062200277090439360107404628745614788376763636194358426173841720775751188666311563462647437843209201536570744431985084676469802577724646776834130918259381233700221291815435980557554060018701828136639769213545335693964363667812785118310606658186433498297292235075412583848171102590215249024560853923031414781368806897686344749394720151039119416702042492738576997005044013402583405796658355760169961645669410461899275309822165582150511431982482236180822099967584328704762114662880818448365121636036853642361988811868133034157561288487826298114190073923978248993407639399909495874434922002401277105381967230690772975686572471692331744488863943322192351083115337730182923637565593626472912446209114909153912906905426585536374441631220587771344237818302023281104741491886766779091606288292046148893008513193232052272653766492115599809298572081311233090051208889486595474705576125499550890674880059241612833163242700546280947769630910438445442388344456612490140979993994217955982552790700783475522293726286787497664897418124367732589958905846676220140397917909600235872609732231985232710940049545772327814136052635646532655101212711116187410132911589828927505181650687060154931815267692485432212910908844166593926911973364081953392181683980491499302191009239543141193604036419041426771176063344327491544444152589829418259901254248389335676491485325475819046038874791854969829925053212498071646256383490471191746423856627112698286811462381971084680984022773361602367382898935179292710883328509431787369934403382846815198943310287310081367783123638823723264659118903554707126991871164863249447742313500972768185478317781154995976733950857537107885816983588597476888763636266112737737887770756078293948939134162296885102005361509223407778800637764361184597073750607097066771992484672217169883525890033543193403052165073033045173109775112455652720143841017591885506866272376637141854387427999354902320451186161925632759104471201908151532629378800896514289154499073362932401894084122665833478044359241124963134676446715698992650134135750871212046891024310998580909962719476651268714956935201163277155816050084025281891615689927899184687353127429260634541222984238452384705738402974611462486321110378907781852172971760615311300260728699213575048907284935577836235807615467014344909472407589861542798018931641832252672733867497123436967914280055894769994888444957667960365187419885774492057047868577718982163965689367331724681865314174591219348493431379343458466300431920975559358130409555250155673161656417587832443848749384598443589544132270597587675510728120825778793547604381160589248186613742128273067083296052948678124153800206713033622573155005346693067784710516492367986651349253873826501597835988866018594321350967702052203461828736140926255047420020047638416119752200038359533689136426958838815549254423361699486492710560105430934023897958855479095752384239165187548704162322353290249199139725512926012617407855769129586235212543150373919638295123433818187105270232308425326696268265257736206743664248094200851048894974638742853248236301293340985624033064405821462894732398236040929042711163400902058592132041174829621870619893063094156641383167334536365609189120052168693230599116233141177335233412559607455174698655749592292501986227615119013337240856908133024143646684075709958824757784133381967175189795376351447774541917393457886060385805986064528339828239567808968601664466898152656496663757525420243471682728156381919851302496469946591008663809032022052970681847486837837454038567938752000567927383522013338392494010705084040957400243297244477773082815521570414412454463954857776149318496903201555341708418058037158536509999419294160350661081655327747014061589633807807787760216970842616221116700936152521678031357453556420526889050013516035077829094914983931760816046908538260016736029711539302346615886614332984490451906127278658868253305158760762197271933696063313711560206183908506951726782423564979128711284839107536432722253565736910013443615012627839783157717045665607521764763667222248559957903411176159349369451652098780600175549909291531148609993138353743141820094217971043603281277122784917773258758788387091173706226590941553360100161692849927711482043350805947428632034044248946863843094524696541186142960577483869635390743817268339587996407675557875442273178465871068150231949985945846730280611566048673622501836683237304302561991866660788831163460744824274126063685532228226747963269374104465249916708390396395844897402917655151915425265311127455329019076706393923899223855314761060656568941982990741145507415263623340958530423847843396724156108551265369036371499690191314806968065120214998511479235046252278980435036748460062002245759573132548643781014181323988929135967506920380531902544301348291231362588812241638531550509738678002791007677578979740537679280306358842132506349478752427571718900453790591882493408343637397866868253013203058951872896982161703509249298133924338658712348670357891084916983765555869973022069662931650946510516914480257824342990159559008615897611431838490406393202396418716828846420740598671905039074026167581834563695035119849367412143315625623629918012382096810647735911118710650706507852629382917387142642058111298086043435701442939570746681590177646114584178352340745462767621022743389883913115615473152721205034117139724964267587552213015158556334693097725830967187599281676955630935754486260966244858159490412058626297537881860383889559091618016418071263223691734110689294430915404759080165341365300721350210604257108447990676186041677626235134651528364680945172103853611694589892695012427058753623573749806927425212785538759315747806307997222203223667635489651138174508095727923493417645565158498918618525658348213270802377005894957252053845305463403366754849089919508040854866497793677857354010674844951577524879538222523710681968988355671039728287705694714458651171524421819809134345654609110132601647149228606801615281768260885152882373082712762993688076545071453302170108752185320222267791721697065601477276690313988173219141662999830843350124504186833670733522638752883391270769390511995757463397268102246398374183111433276490391620216093953085286300738081303291086967422772860911577057517603293822109861683883359799704966071120584060445380604373043986832567529753933842558303763371232947524646518254848847216371999204692116861523938260982844119975154567685128615911130102621053341937685138467658734754487490987329986227849346140788146931152480948500547340245061900992095194633887994305598264907563585204864805657602286396378282389732180467625427357770438948827432357431248830120358723180250847812679010661124197520640977447685402624209196731147808238909308445332208891049344369225501583185688438227501656450823336562329711073880498519072274846120802858621592838942354959365011917302785316837509676358354445387577062974884255748632682478268176655462337258115911591640096293201523398802033256396496028962587593307001499135408491890230391960412424264687514611202887695908439491849466810067978745185457581084830154842163332581479758072534551661075673701640934818215670629739370348203194394248390349422350283795982799837157482156011787977626215736036545276236863740214107787566501527002842780723508980592465738227826738741258992836955509139901022506937438864985170098706050345539079969304661231416085858761157120462733883307414198425090996053684512439375656110900346889838862749896275925084001989206422972994223157782782113639407712170335522072840971673937314972646841761402143076469445068796512865721813772399009622930433014917068513399212771753310990812175406073969265388467253539760323278332223670849971577812316605166481464288883908709303371245426083251577545125548860235550184797902654215762299637612563111879202391507232441257513174992312045515924865579278947674884836391820008675778144415856731958674970163523331071222524404539252687229424240951213425259089646572035439855757103974762924775827146394013863295145248994507536973549624221267664522268305051417227032103303599756358675364516198835334974952730885550922058400187758619558907792182988862825256763987301305554002341441682351620859399256567984907499960322381956734979607284086870017745692796899131820135112387493991609235330994370350814946437192966877661737748446557085120614620834863256570743418167098587423087991839582199507833596164653562398995667635447345616558311979296584715353223027945824649068224900943919895174733135695813183290997690197851426500521676826985409776195703601105003448457239050468346344147420140142451398131346948283707451298926956756260629190433655969026676280370946530720983156932814512061710734628700290659085072363032978204959930588604594080139613067300037411987754788070573627882370599307348160101191564841613727691847073559532904365950542775217595312520317068697893023912077142638264075055360012301097186027901609777619668436935358360426096868687851168664355821695600831739950922847562775916623453629370397778965943721857191229611200160722821089244741830433056671284619267657313464650606065200700206360606701298685967560948525899429627566012968729022057006769092298330060904807115249126691473051857249646250055617905452767706260195919659507455633361470565356919407899584460077725268327345853441986148422156331548808391186113591211686365678787729130473911499420809903103585813200903188039820093873499986482478601310567199286306244789258410015127386543528772415815426216060685151945862042102403645728806995343260278302206194364073846326032409189107477255339783116373897108058648478313059641804482394460267493797640486962354525453856718744084852808613013685563868061783457951401048927235852997433313446388088737406857039424649110702384958691862958993703405488451830338898355446770599527703675547389297673318421182129828742631113637310004232782032236133374459936823473776833100283166023850165298138206199918766120123735895219449051890633348777238793931382913788245734432238934752019907281265536813832037432927245122303392509355821719568599520961179950409533862836327231956681027079888681924271721435221183020047747243456429413882918889096110413765573789208843149633695893706775702965057888267446815799577234256008405330339051379471274187726075857288674599845761429158961112216167628017646583399894458906787733048206535001956251354208649080131488739095216501772043132214884388423445557432992736881223063662597238463636472506955939761866180780875113630782745642770573302824728969783852785386597345581122775928504419562507497805088994450292311475652552004692822279948254841253265797672478297556395012424973986133815332693871975563039031954072092310524237802915682583508322924635425148517094767525462807987362193599336705363549101838906006115095182267061513582928895592705338867502674541446540748727292725932146020212497244929664293421676217731704595904077664391803108956998496240042503916652112898239548109809700211539054486872688291294738069018330631494721309070221155582367563415942875047668675160423307360234788148865019630682206328084298076951588374761778057912008105742053064620569265771718420728170662671743366264614661301420912149074801185761692737521893145952933640738482094900908551651339183100443413400258839837397479083182356418312834920063924319848196883628227062116544263576178125592965399048391421050213597756731642253011061013243526181698565115964927048473285354852406137990879372789782100064806758824211365622496371662109691706462768452271413909333344207376151136651024648427148123360462418209711609684391880237976128201464370401606561406134973332215211575893382963563383911369411537507425671174186292628955499718169968884362123088588297707406347607171696331604792815348429683330457729851640789323088089809261289320506994739933727303841619884487144819163695784064797791904693962231015464628538904328819828531929721441104578459445514724653270517431240998135857608214551629173352589174821529683439571166368359858283194851177983541743625760087966540717783533813440065095082015390437786922824917921228159947667482033204959883196728939284154412552677359412315588699993785287004658680256573505386863572112189683747343177733915816822316027545750090713559852463718687983785670306166896783757736733480444880641955602741266159117723967476883486593961709296482385238825179670209874990530509617714713599656975807492454046896449322327347793990407651010273267073738804196702097399813700646163658515697671552003427513503132603965959034932827129816662925493483743122812519187453081963952846530438222988067288132700175440781691305231350108736722738684947005000873351091889002643420185164870201959621394152118261066352191069761082119400537617130414970264611570194650216539835042581178273544301291397804115440464076665219869075510823622172122226625804234340610420719844822150137776046336856331951922900081369977539145880644312482059183783919532143707779572115360508797563926989214357879608321093713623390682244844994652926832543465944716418239120286737061452893342778280174800495394848580697243087469735762032361618142069164728556766359191506204234183480309939857281553812953169074397258987011639233498641622508525646220493104101222061880742724571802507576828955650934995609931187393163689537175452558669616629882495997621140033729921973349319724620843467281635612504023363458243385216216773146731634384096506801028292295645087336960775647021188325618080312249809101900089677152105385686729872087311225235511340688928258857861653912406395710689961396741850216255970185081946438895956550202183687636365529262295068479976638878395323331424557797883002647397348214745893965216306111642187629075055195001585356369935137890700926738980379488787850137298780603458300674837165684768953560962931564152573853252570174657936081330474977622594720037099026457722464962579617351538317456825804094469104406048233746862595430436477485519790583848540185752739922647304120341778815119042339653247575782816881931109577920232158303909254957085733882134368864711375727314896326873976731814219503480491006160601524594639742031734116618657433982532897827397512250163542370623877931159621236323434530304641355319303333386832854067269849754274219713714781939975660180278626084460781266980093069174305310720114513223545351467522619214322210815844602229356910482198404486934061607251549012137896041976815882991142507432451094430068144244015209229140213507791471492866936830898536624395541012414475582169227474684326921176150286134324398240761555104460208979266640627045885157029362286971405174654274884405608764066190694652814788150044793675354462715162883028807675095093625195255697552161423202256264369693285705985226736751079189400825641945726157574198972246250979467904499259341230543020108456149579479265921101178668950004254948135414710602001192571179926838504105933460480275997929616026621603813662554701600867945089303624913462232889890144148105365984718413614193961178958822966707667604683319468022528340105147066874833638709309665083072071251553921623804609417546289184021828180160795071038943161470746851128943263471389970213548554790713341501641268387448637932908721909936258009941995308539180975356048454645856954683229231055600602875395958076622208440084147584910866598902407114482896179820778887346417356944007287416761126677470722062267917827384004869036544946700510370064257970429864844985009788226918226985444250251110915608979591322866250577234011102741749104798257331152637776433773126822329864764895937776560204705843997823805593726228597147494152555141796675110665822891932491039166911956265366436956959295206278081976713739773572766848400470754731192186841390893200314573731076416207466207404819933940958371505750816799271672693289741002381208853289984099999697840280689537560324510722569863490371968070033583390297468392263775405496600039883520433936140799501850820593546025570605103091599786299898277302349687745778506823010649173818859825847462479047473079330343592984366253853729053946157420022993929120173877383033650564890790521182011798131474299480565516369957829419705962221772337386815228918880592911309696359931984357671334383001804681212647081725299933147704227681374624788189508159787729953747284445413821630347061321120462734933536210437299964276122098738447740357531717051933173086557933336058052434914107531895485120570257791459686252491200070361676287183522592487856201946733612665006370744557606100278944330333421510250012417234279184317075891070446602748693633365864178547395595855344120797334386887202781282915588856951038344121314244851666730227551165239874677380197091335801060053598349658198709162884659478935778662818118434356728192498565478627509392202444723041253988866256184245760147159236115321733622900173446933220565202725013612856191575510155312555341764061196636062492187634279628805518359194314219740992051257897069273549309321701859538304919629018940958450992533532883287609816257841880312313671920329093699313263769680224570312995413026207475076738278424992183238316253710595419315580382146774730100102789988183577998942596963816175456180803047585915316718250654764463271357281023830750244115395734677504620546311309056658478626211156219652043474886767447813587075752752887214493792450273945039562758785912699394063644397330569282301107434725222894107184688933027046721144525208545424228500004271242092739462844285662117966383347513541838276354922230918999849445251318075316756445567394667474606808786297871630080658455432227223388043808186284351121749764147419593693759256193475995566327312691955551806980996689945486241355577867876418932346863052647681936489994774896670032668843879099968848999837360468618497181189163263233206811965843278301934770445513049453375651327636996352045745394684121155782801220659407473593265988223808011692560943154389238310877193055810666782377463821562424702215017998717413685739345918310074043867228100248968807202188716181207565501024743987500750451507144159411810534413040279397443886985755817993635047067698697298775285514365177608763837576638988460381052099636098131456524677783507155107000470071309186162780007032539071388983779908374732720836987302335022005268967486487052211016309779260610522170973531315362576513581220181862766886300857402564749659964597529605549833931853667354468370938738198419726897834625442365944071949679079147718444037542339631358367235317849517171723147869789832590079033381266006058442182240462760787954763882737516404880743990169094695107610188717545793243824051203507983360013932723970414128326103272230683983668645027252273969417012938046001944030352169958929481218860319466796490047224853619973393990070890643965518994169415381913278090172870523840364290239086496642686831050563193887843587742937848171602767192418100941457986117631379979833592784601532167677562097623694687245831749559557166116260562224572958773725487230161585239033561487292745302963990879836151223586253074513731050110862576521524956319395128733984158109439299703681061949499127337753243065007387096154915284921551819207032796539294781206183780065634522853442480790227240606884034668220284489549701451581154182162141806152624725732041444866689592217170441489066819937489452361653888514746070178404922971373497678236258689255304594877725725497368009402424176885090178638551232555956534259595527965390969905192205310930511824750275104339735593122093997769897262696012316051548026115513824556202545845795635566120164448487548485242895105289024952971602135492301677425982196879325450415498468807599848114074928056208260309977726744084188138172612304065599879470966104669626549644350494501474645312501154280588774551834383708525855562404402599626081230331245926046688946097711284685908698127170034094389464941509325628722374719359094746744595369568078236308999245614525190533065548299567604795698402101533262677192543514944453353918835739464001518391774863937972882574792702288671617054144787315062180982680553422668727209840119457337120108789765738793510751820239412128472131482272577712746792587552953918653513355658587016140280710705016189472164882571608026749873991108737476725951340347229054481938547049580701246171717970783033881824694147931873148708338877347078299206683038319213835152964311635411233999879374519124703864707985019022526510453447813207787899614753378676999437436940248536272909383463039984152180522958006336043066421100017276987098431579316363190235752614185355431778567372161096986705246743406571121153866349790369740648758446169812047116147983159957499800065284395600879328422229298106393048794764026290466305279164702422785697191071440508512771909777381450918654159288641829576490077429107083119472421338702012895093457008806471737469454872913215749705146257535215083512267192175663741722327326107876930098780655155491982402284212776430519713923832807623466697040145101474799511257167120546459143917861582968388071879328571464697058224185275712001663394728456937166953031790851439216953097797933327434640680376522503941798444310208439301077302989647372944008183775358058524273303097469642767116144274741514338408933606502397039132154802168110791119242172766709905037494749544492502244159730262192576869217309946707459949365095976326556405706812639987638621166441921888204115712728801198866917143410421215154670098487026064680561995278665175321063329022454976576169788920668245872383258685756951995494750738836496957799583739496299992734968671790432525291373333867303597733460362402969411698709982650772296180912830776738054513037005166224865869081386797577091568568720048045913578627345186371029187577064838757911623543111256446967646383550999834288484453217967746432927638192165934751698355709644342145568356921066285525803353155225072837831641382253741516844341374133629231208981052691433491163585931570503837629784304060557976891157144158083891007670167694886366720624539831236786900960437604109328122651720406089410722406376300905445731431980928948519295093553894051614221730107828702979658916271617642119572644292007631426278329604042187775360197504356892151814932094184143363358231283471663062877587687707347560359371574459810656640334608768514437007640937651923716336158308911342526828298602018390260629631061965819330972092363114957110995350764114015810259868178424679037065898292510246965001467176564522932210926624862388647063966865627042173749679632015122885098447976382912091595933298210832718262398841472981037699696082553882425911954832063760861026300018107312289579013287253780633895919382334984695225035301383550442297142766891099868022053980875719229609680144668007547321045739105975305016503430841163006763699589668473273543243093907051457692537980685543996747075422998537930704596492487798511834918778600053532900073449798471932833234407940719046391356723654567892282280120973922584008259103564822825660239840773609366288279978979046869520203041720446187591667283170755823659873750603057377889864050548515087950664778568571943667326776702890408102964057231777075549115463765400092496224798933524156288242056829747938205472633461793734070522196154742122434272716861180042012289891064249185566521692108047718127420840190054479171681505327503982377273409311599062257075014021707128906317657334355117929722264170632965674427115019018996960075717886862036561911241720002598130686067096069878757867693201552277946325451652226850189729937069811590549507348502043499027780178724490645038028430759971113778481783974680785490539108152157323971692387276722181186529759610629818591518546729962231629452615537249194706552498666130413464894359837354415494408411204359510938642671446418105278877670160355450008911837562400381259237148053193391355407352897757822299165391809110099876939459289771004399956442321891656219281225633611618462748821186197410262078354290364229542748775851804087691706304804976606192878223092112941118132467188161119950195899024232108094135897517696188774030835370039455961366728755261103446447282749112970795068257918723168976137279724824383841349056143670618078101313017437896057072912577578402026947089248697690362541772417198649877193870676438091737862662007886728828611563290594976965711509665907042393424601521096648811550490059939437994768484034469452804914572900290067397345499105042505349997722413865532144733803279621614943499881335528326350450591226120717700753242563816688369833405863707155933226383191415669975342351902236216711940331798165396301094188836116892024046967891005522067148485754159166122045291491648858462459907274841088513651087267620530745705846700768844257936454236341006671654809342921761927706159677179190565413096244234719351915324650042083604033275497771972455474651322169950034768066241277202502994841719800344398411010833569201367219040234522669636530091408632154158187644263902490696417046218372392027512456974408067604926021887017484859005235988059330335550076487986398510588361988898879029357117073798097874717757281276879215492378420628414064561897452911868743289665054360989683734667057873045448638723608586180658326570255705765975080761828759443009269166133960944603387261315633822787657952987699739571670983597778880496188139174188027197759197768875817884906404382486292736508948729655105806201458000670694332989205071788044471613185113404780229873676524916610751847789034538442027185143358006669877947520290170484943338308467950216374975316250567171705464712882430261946716368738311689077629352803186119516503442927640587966265952375819680631668594427281527166474096864825731731234778333614059931629961832992535862338194337163743162946519790182050870256604522114129547965234270576349718567141242325537282941891493200837015653993190110847566416651356669900729147002092732581232730099143975072465983359188357658934994452692097168775058719446939832400109282396345789987504405962043821020687183063282366857767890973271441291232457371228581037884213781022632392634236310395571460252276034190525864371051316709184810728437864151005808819452707605659451977534732682355840568319062777049190667560475723789537588567781060114107005752259018317194935135899013073616886093884369210082004340550651516133656539650075807040983256218417375959397701928137079402052473386159162764503379965988503364497891788821035791772107778742686249079324859506037986199210696756329697285765023772459841906185483299785664075542542697743817180639552132407732142773743636135362240439269299177592799134491258193474167356586361859645354906038262598337374134643291791436864520774742866462201078658331720993928181254526666657793234049297121656105574988726678608341212133616274288639898507801087529492399432143951687382744836508570689597059644100035303241041464430423690805059247236295298299208427874479728707760395404409398642088929119208165692752231956904145835695399485941359322051892981915538908440270230904702458455137975392118600470285299800212462917236709120945658922488648466218869733730431255307536969550647048619893969665559615459614966650840171120684033061268911046457249728371295216447828541850930339279229546407307981980863861665876546151774615404636104132524107137265911151788025337122999363787594018708113347743290116547804107877208426637127844405854095547204431610185450573718038650109023593031480388750657444416726953385418315579281474310072778558138884762278804582032977264980713384614888171777269367442282870498095327865150187989523767413004129157481649520580084975224930649286693972899833011507807766974530080322365995300718357863641233384444605621234410079819876213987045655286374102002431805116245262227874569697353395263516269473230423129221994615756884109472662221416598926674951110798194142293062051019411373633490563552409397936249715984202039175639468055435098527142476225163518310599032205528245188110655234508143002277962550886325289922459329214877765254933831547804133933708401077169603479211771396529368013590209795803265699682599743956477423210471508884046890723500005383752497756230909638729310987200991744896720258300730029345759567351417172671380075585448152374950799825665529255715889149249394476774827605172390793035267057405181152571474521735951745619646348145659979696727886440231529259935739323151864076108068141721242420245181130850648666698547420125642967087241202672614979982766060796116840458507202703437121925535529107857148089039873710584643537330508528175488664398795947349949554490507774846335034729060007437107123174537570039262395953731835688037242955613944898032368781351827812344332517716284452755443625429653604247237153144156987669097014460638569577478869898523729409435164305991504700282591850551222717757079094367244852316907476478190198485378904099371261218144161379473815016498960463770682394868254767919398303995165497236422921591392063125959892008090631046116061503435747885796834068599443263690317594802442579068202181856099267405133508268805734044756570096346860235492550027285585630895527319798487045797122794010545550402826860760648893551615658683398893439110762983842988249216932683370868062433653144027471786860641158157094199339082015718361814639541796618309904098471364394347904819483160491507147549471295732721492142210694850613079463875019267945779199529333944731267449064984938611394595410463438546203202182204793790725942358833108853000071453324543393574580400540820991927971879893835117905825279658686579213243592473227152219977995480784519914102986313996752751233727862508715924187009566804494582787610594416630453568445391135558436086007938675194700577795890240525090131887966823837608532534935707739708255791085434623203179858626140627947016873986121870666482893613834528477959562743840807205892875674436979698562464134834715592172758091407195009801432362218307777380812892101717450336619593920562281991850270140712014031146463733342009470946756096609057932263684472215333654834133504970769480941653980275326086766488002600412463327670603651130979180207243377570913144599306800964740093304391982867358772855241806198182535412961445693893348954833933634693595170793609642327004135574789987288381006253493181160402553521299894208897319309867013136336452180952865223783739548328948485995163421040188785064598679255447215666402131325880241960581814799772136722706400892426672307714608913784221398072986171307501543364576985850426178100575570929778630246587888772764784883385773702305188675120194458459198491994298546523140924443809574734678699235906623641964939486183835286440798408485448084846138251650871702544820745804721213006700878800302717443601565602429685439682336083247919062345676337812376341285162170240563671342902937037794503188736511004634722893607887770460984687751981862065182847741297010970691524534350988292869820764785340773184986791298038849689273866803251575307473258605046372509425024678021388974818189407162307802798786904665463550153897019202164810588017299523077828814027641852801678199775017126442351589423261599980974877075537841658387794535434434198079157649866624530717105918135484953741171557141955895699639267349467560302579290213901270226570482144520033344519784992571084356983422902619005596733503320505291554180796716558854915676997606320308907982733893610051446361630261466148954535777058348300380705185326142229903461283447795048882094009048001738576937489310403519310843398807179533143412020387332041718800067625179962289658337176945333359034557747983052441487810948286935080302482379783350442422739270116231341307394345214460126352800887743420722302880451463527372483286648437074607630365770070137677895529675106598381560525339310044747942297760185395367040268546226674858252602224460402474898036586476611326364031161716665919088679479389635203883471220656350613664833178668604999744542537574232861157154036817183555697834778330619087418831301124950417905703995187225923442829432294925752431512891710405104798552876055374644829824464407351886836396037702307917185942797007149764645425665089058809737649575151116439910844300798181459013352523148745576591945665726635918578420757417817318976051779089707748304877671365621624619681361839186704786809592347740573448827866544791361844176428066870845538745382396116151626228737460647222181097058204464533019072360635003620530606967565281888647444534872752418020329586363103842833807034832010762225460924620934025681957942417252700419896799708169716261444971067351589850554036553861614819081919954352983361975422680531271836117503785427840975024443543245646819081900870205562331500436228644983198696224218679916728848291001627942575574431636836088503686033693388657650215714448847701163821905784053493113143770849784361945000055141716492971805476461937189472751013082851543527310545327544108893305677867100053315779076776952319665983904764853485912373332665646085902712572653769521804492464627236187922558156712139961717098973162460126997861500863047070804220982031434839775330796047992399950837004514250757076171373672344968937719716567374546617547302560929562912417621940308115983788032787694315344021209136296073728718942853650751195991774738080284798801091822748622846130730753242597260169788568141552203403907456096843195566476797311826003581795254696873179481545054821846107125011181660099297120027361849714221420148145647806533818382145735398311182390849783020204696576162163874308619920483441997178617889421965636234126112538483774929818868375348277010317609016371190002666148738304034996970364185181180306758091472975385549041681251236079616357736185276048949977037633270349795986256838582893945259617085667096232787662515713463905075487133460678202668969745649648044156569566587373681916443610250435585405455738454930263071200785647209882144815867381827135842771965217626614763092506801403420575904053125684675203268215106809561681800384694215041875474736808450974234622345133796516769606965809624352898229706764491875699588389846610537309723903239338293831014914680385360042929633726292765018804438431470843376069220292158857372488362372634694076407617507858692006551227169017227319938158599419590686749060986646328227820415808572887658270770550212828450484748982165256813695711353558451534849503100228893737144178795858334266634151547531661722270293088261120461994252650561092659832154449957332475806590205172063551917329455398281360675718782641659457779433578152083653280583822888536274061514275127319149228254902427579823348374144900323156004313110248022875894732815756842303332362218316397981304577705882936988965612500724734346946518061888495351776445984237575308251378727903703259119257070925351470664285101172037913260813483922910247470991104952561851023376608962098053853077639149170757832413220327660098227766109139110768356259224580897376089934985878577969973946248368032278305519959770613230070503215843723418819922027820902756846024192651633349963439946731389711727744174930671424341041427410045364070731258710648623253216596099799425041744966003791779364542352835803974574295031545394777233480264311042620229274614244207485776612571483749228765354997925884642253740416406555720562576763343268233512026315519607707254133899211445991122066450673236299934436755538006088255980459256800686041488298126968785520923187647943295197810727605381792756695289118380806675932650861722553623826486904830170550244605989120465900169763105352272585861293191044168730543615317110074032585785150920960913495913131582325287844899946907470795762697742472755351768771568085138321500733108611934804596765995476580854947904831494454327559403529765108342434454013891395152213720371741777641523221316132536311649077519393657156539341070519215842364856387705351108060937597875275612161668388300251482907352935608289069719580101290547040973007395561134794678808019348394769878587096316213602440563682419040918994864899302075286223564431796478049958972650177263597168101175496834730377664242604791823983622538646429736891487083367626454863652513782069577400151014149325085872447910633035510361260612230719464523272747142910112546501811487522172810422751143002430734990293207282398118647554425960968534092247735167391327984885303881941309483090026006235682076547707825238586160624810916662325501558575909496880477096462902199073988937141539144999549535703119526435429225381945095144011209376760904285419698763232122008005393445526668717552672317843656659186609886710528111272891811498019073457295236623017066678958268376105835927634886072421514366634304402290252258032864085261481824642374820655229497848904441737648564152903095976554792046641520214543285759433471194471759224494785051237715223538444492768790000612072345051549050189908876183911498957728490418516907078502105593371059108971014128813282997735063761321536325163652047941985049940850895089199784598914884861462568077903343516997197219164935291219767628201916022320003530135407201733083000219952846596631474459546416768743576595127187757750660574229057827755666217065353327904774734014231882662101949134448192870240691500180729717445477883503994657245953001376155436416939852167099786328341187806777075483096939375468387281572321227859262204255709088014979917892579722498287301830762247552919767498852773890699781210950970236149898409410939233063277525575665900704398439021214924590302533878358966932269111670864777743373793075901858620618863269053948185365333047975696620228129937390444267095866116019939028867387896670630886273926320038015905525503757558410485184004627423453801655938370022613297453286002932407353279216120431150638063706225338576573034872869281288449551829311988282977160439469189474524306521050530083344428036308109938089318517700930404648612319214066284255280113447418224591362383533921801428465103999184679008025859466464232163600381377642222567431404209758013889126991341112928660189061936041465834526073226353385025756506049971326057490714720620363647331667937163399286446935902668704608763303432905909318874330105870902186206656360317085878942794879045208112297867748650218448468913949070892187025695038878571475623288908944980771909846467030906577893836751254931431181650159252655454800106717715916703272334521995554179278553170856143574861324721310061003284949445416276218297476253594645843456202401574613923132388556447007454133139255937034501270505460022405771969933515098964198462001838844665068892230801027559267986461285269262903637137677840886714515816442007794184952156360897600856445271888810432981052267595508671810001651537379557257777880400055857550608007581648979688551956677582398103729505827563823872582247882746467028428370713225798851707959626784824235892412140233354827038963640437281684074528933432517924643034842483436266837382055030596823417917747480621190497480076935891047190554082613020859419521360126944696671407813379683521098558769099007346413199181116999894756922149512813061067873742255902626603277941422015461232181576491595126420689788829161358651238651049345989277875849746525211536053471585851955000963679717974113025642471424422580869329050876418481091158537577593080118390071537787765704609038264340082820724062341918565414427580849430182389263828279631408007096943284129253183642711095142439918887893160133521103922361104076737783882179714676180177312655836316615468194698989751421345808827414327891493906629568358779874267840255869276149592167369425662049204003476837523675011741645892673254666049523912390387297875714156828846399657770666500799831040317406021427631795148724812703796445690926067321789921773062303603416262633644556982977255117036068092036638349421753295765626718229196865454635496310007309588819907447189177224074974812502972076473130933427220958358011582084116277500432170598901709775637015161225851936127569789905775713516060952418390079404058147651180718061617718823976376494321724749278803751134305343587313873631991957507186325166143531010525128401891759505654945223259778983382505296702221940126920218847556146860097015842256940922589628003156325014715541588241234451422017543258600974493947472331714875533572593437179799721477268285047782700888183587797916872307017610336532143561385969806546851064778993589175194722940933603092881066826283201718289013914439240251396639378426389087354715983028696900139444639918152678612685829582323914451981268306770241997086768932588554698931770055089890463857471668596652022034258302635791410582751408923456556060026802301509850074944930817302860837009998991846739646606857403392353601494266696800600275722492045894014197749754431109296628838208932644175155778253316939972580522750718832130119545945118775977376178894544511727574867788590025976277859731991955480844191497830525600541313489479541906766463731696541639189883486432098169776127066862549917262243485490676765007456067547583965648760180243646467667460411081519372594159601238940423948258223136884162955118216524265740562472731228509340099464058882416823449315146922612543164125069027206381785497936331167659955718841954882079330177234777403276497095038139524697545714708072204288695098528558828546940554627034928148928575281672096612201005832216003233170618057638502002088047460886203851856685018433753246911746935706666789909383834566215035349267300820294565553941105008017684189025847179159846935273809979927906282266079545778628948898551890544273520776348519499737590596817063549973379121653687938388548164072229448295890653562073636444230797564698013578274603703873055040151793030417381997576700757907485738506160075527565222630043590766331856215241860100237625503505243980370137090008091607068856710456081800252082613215620626129185093291234320924012305909238874225843982543100539945009208580575519126783525192297887268803293495242848554142225042699588940079004279030556728144508346872113977705405903167688471367027859569258381750427648523031039372192288855527505100919227215406458061569629974080227077401157968003902446555609190286382252688740937236993798561772565748537218198716132480834316584114009170047135448802292849832069040933115433730537177621694347425184277820611937834466787401949231771333909600839474281075545779134703083931144687252662635585075142930102536319985785833715990572398216779579068467160554737956900532464613420092113324158539800613381288519732952009176831217720077384788526881886716361805078466883407527761043560801653863928320482882536210344084868394415944671472906282431384012576772956109152533757883761906368243162606529186374106160471319346562083537406324774399361834342197446330196617644296963293200162250239182327111915126305817676212010508144396030415435718327535103441007285116320663739927727082040198057500736349980247264204854874906641503660071957131081633042884629537339502189069151473004714402257490055110504287699428095287160174780898510235472752060433629703837283899856715541672528419701070898654617179315514036865258643958996670997162299179478049290143219792814356285950008953865304955321310375733956475364787489146276722433604362690976069245847360646424265226503833645365944821628318343180078534392728139676936699911534998411738204315290999080490955945600400437493291776812750805163676974507698376821515626236665761009775063584623264610619554722579229683428314907606810890669167705696814915972421327039963015305441498069291774947101959795404145122172687628514088328357370665167507740973666164157162818019481013871126239855400605206608508148538191468073949237662347894840427068952943827498600600586058688983598704563566621729427593453339705959375712133994615113627927426512616281647863199798502376400960174664494536897321147010618287349258653901370503561782640585136139919110946336168982495258072500162968865017056503335622819817941220053173922789531428465425190882089230318881230661485152183861007987211432849394119300650676540685550195495258099112819073152227625671666344859044646594850267280045004088701094833359299952281599954162177300165954868438163468716556247396907665655523630893909571457087580882769518992664303594971928049544013756138261099197104212970560165533817470951520126226956490659404500725951858061661587632552738631806274493408299766517612114703084724645017845780938038212817480168833348901976115531990001386184720327334960411599529137959269375276305885914384173673138621791262195637364488451196543369112397302946853884829500315802544716416630157047066925184441849847590142490350083782735378987415274696619001275649428199907816861676763522486986171462671330671150744301419126924578833611814175016899674791547453407019438606121773002162639916282990432341182096692986112354146260498129735339945330668257803469705702363662491540136731806376054214709921435713091012733822294001241053661829166447967594533919589583967994976353181722390228870646639153028419079650773936747679022103036767741424397377180791652219115437800381398118851646230182417855486025019540375396574764744242353614744942937762393148064521156498545827429498507398941133947108256575901964402371219857375706638773877095426725037788851511969085570369955900723295346741077256355407674072888686868027185582085251126306439554262323337708060277032771686899561841738955244132008083478082376159777119746178141298131373985577191137799790688165137997679699036845515020888912626805697009928738436815725378291278464825692846142131326678380795729288166990504750383478272794571781597759157501563804938429293799916966605500338475638638272971966383711826261300588343559754863428522756834175795624564181535601563833264268048591336496572656803657900358286551387234855728652618918945176072756849056654109360398372309149195978258073383899463011049023422965215542391229919270744583401846575988957985916893380619448675240951062798593970609453777261859033165992490377871661660294585312918522256914706813340711605302353517617702051257724028554528866441483142202651045334955693868373588996913584983587269578673268872371011847668193256835503220279799550239623737643751721053309018700325612452635255730582379689140836000140727144264331526567400983085223983460368121811686721990980093681483860590545926210190755375287252028668239833928714709659864653360093828685074474456688294626899954529078462059694178891306500876042713821798939523627063653776174690235375884325795699177008426063434923760036167178246915512927339177633255680012226924198515342233099528689690824380216258154645525043991114824168966833615344076609583147146286635139310420240576367998202076051248609317040120306194439741889040862512211838629600079433571353541935700335292264422012681176622198982662728587035684560292925008514167976883327553010691570087198079974773555504448128139444200037586581422608689850631554675729413592587751553158238375979915109314599639307084759496484739147055034505701715436948150322726675707186264885146995184784463470381355391913043520952622339937424677256032793241828820036012068837935299277876548126558200462234869962593370602982001751385178745785961954589640005166687331106186594601132819040167635449717092606757599808982463785327637280794633648055675824835501082931064307405602162140035310003316447329182328328622786640562856775019354919423695414204758860505343790719063129581019508182744135441436071251618016470165896909717955449094101452021297912107217458714034069957254432736649661266725886350485100053949406239260360887802122132399446282949110161856039463495366037277320452331067161685199460820154535969078512199225506296111057395355718484524135853337325652118538833052691278843993364455962535920235040578066922575958183873565463061420164698983694234736554910253127225663999373278647448970402362494610491124574545873635937074198266367642701740214094001204710421453405275344753732850992155757085362083943487216591767228483764049110213240818886545079369158319779683069249674453648809787580190470390759218810517049494448645579189292879326107920477525678225183493271304123621892014768459358708184997474769869486976356801309330313407534632071779825940421787784976764838576468409911534895353313629694765484887959927710599341336193176084212712092059166107383601910388355365069984232107793341070872743124686178694580783917241617997140072137038388446395842223803416887644597987612539078686407404478019115979947904815963006352865112523810515872813148789757279015941447237009073706144235676222356413164334892985582247377341032317598649841062087979705516390633335622816309734124939506491903110263617754844291564067301639557550745775510873840735694662236045114982440220280995419319804869971358911731890763273995263859225077593632728175265172576913432448364692518110785407234681517529608867605149351698251510361220351178205905526117140626861040882856208585464300232485170708527979373949788051475391713249271064304165085679443175075941638210248909285190868624660342064609776715799056701533682938363646049560216034189593558068280413164487428426332952139454357302552364923273697311206578133698336412062949104560529739114834300603307089862577413320129059416157352901223580815209836070577977648650052015309862797886169971901746861737185807606759075840247391678463362368129431688767212207782681871259356461148470326081010631620585571323422496887138272490301895653956299418050154256365490197185246917150372201777661658831996024343552987841289618142296903524699465790692637947888335731279728538851911567450196451047582118679481846293726534115187487268433308906374461980586760717831883901243076982953577691638072921197463865065762201359123543641545194520387705846134657581846263404375847207534296532069816464722564894614172868945426141515607088564067047231187822405243017619831894214343240119208916382561671584084468929773740093467477127128433496890111155144208499365983995287838379439499283849896537439040026879613022744259136436096932019606072962066355636817363381757262332229510205315128683044075733360011013474867923941978090070793095429726184922384179435786759921495827132890639994108340958132404486115120749320836507231630453417900724094325944377562255154033337963206605896153832796681501636324915963650921511734085045840252267831870997778424173677620527364833637005509297188308759560020818086719586540305190566645704298593305900964026491050028293432091051554314738234217760736178968057035296883545235934290256851590642866234768919706862851156682961835748676040816818342397223689059213695682247022374939788168384745601154939190171439423814267958436024690765567472822135023967065185729764785509296082386651411695611169782257378941555995875794164608672086692497754739192281259103678558789575622959219992126696924502027480157589874764030237684652055531901896099778490621761618689673098049709678541644268726364962641684496112483921301822412116323782079623919692853031143283345278473554756294653114498676164607734302306086676227679538428872641462166212206686304035795052764259135011423840999647015542079376923999332068121493155303211826043958636910543820203055793930883588480618749704748510311930584221615661637558487762396414146870898772474637885016525230335059279734447691148561714081632146119861357879956538896418832318738330685918393841090601394739778488708808660979137513516196239590430677424376894005742366649111356023111946133190332437921736453550485119258517455216866694073470542841489766888671832403704077902476789276720796140186760638753272254890597310503394426987830121804679435740059378506479244705793094142037142059140055173791172025796109350888676164140165160185858321931723153802044391946787162580766861696262013902209010698172970532206571003586723588136507769535216690604724615072560163037777234288818383354147436191789883236076189824636298150413248818261222812937377162244018459188058459696593908544211718144212633689424266062576540324093225371762845674965266781117779693730470721263549021563957474325580071337737563292436268033628618128716626380868481026705653520198814085424715046449936503671478675292235674595135249865828359820794028058454138841237986040707242758111854618648839964076300967611938333522952048448206150162985907056347929137778293368233360730599098811204437425393851971074077556874059292861223319315722777162430988669214962527005360905488097265739539230491377992704571825208841531562406184735399492425229930875384553336603898055435148425243890744251854370620925910519572746933399205483469090383742708273166200046475521183328757216553494197917861245580925807446473384910648182663743067371769364472943355722140860878402909218376642723175243226058207847568730588482125518199959781707142624844907477648328741993836351626986861119643871353044765781358213603110136493017174195371586639804937603518057526348095511562385140714006650023513286745118522954146514200166793924373483731295600678831402989915022240931692377101607770274294781647930219938807072947554497901406149836062090548014253551402509350667955424192882248937233580457548813191403738387683757730555619104101748361378899055271031611447711923265544897201650336132915719505046309240737406936197878126652453178968773214440982451588993633982961964921116306446751011753616170631087292062923090966984084762399376973882369457586085680780285681643228742093295069558959488286758982296162288961398770386244665241889504030842028512125585336377223604714109776028989545420326991904669744210011110340500932144668224107461669356725612362795820083181431493958946050740338306483507394346398603352218797835610380410506638814410936018816182510909637136064598415321156494768757285425414151429469026048777617418048650513315140911427449186977220228260833047606620951372819522434032765932819015812849147623513594269860102375654507219432909442110630577721409109610316447590591557105770280914922475847514918233907257193094293883019929436307106780006593249717320801187496151320916250152303277264522168036880621753609740396525890406571002565805487904001203075347717069183639338504090105610134625793831200284788889143308214901326248772357520550608885760416065262213676939294788895324624832083182516729364269695151392569467653657454688865169210643925814214001124482655127254085226390391771106367048914497462671471304094413722845036390301185078406110502379195563497248914871737507180527905659417219164478964875195526781990846932874505567775564422326322566649424285780116160125756853852175184466984683592856410680586952726851727433515466092662928903914511589813653609298239398258654123857698436625832358522529034941627154428413970012114814812292501314136544318334989637552795390069894379710173358444653854221122147268856967186080981503393299051135633251456222767342822521274859174203316264028359675406251506204127654457071040689653969435781826280840436724085758680766116699439685739314215030795528856943316102259434424283515718863510635889007808336878928451828286693924264754211284329565496652515724898359046449764743096749877879848690498869031669974396058870323105769723477321461266329148247276500855383927954018974621812905275322861645456031602087164236892759623627822759869357011627814958167447816753107167198715344967532885182699585546179605635540818349540198050515418480774517653591097556133598904445398735491502660988593110825985009843963673816553932590590837446928425171819011305820087139921707175039256577674353474599972892465011381838197957152404180549071158531030326732418853594973049752742376140083430282788830203028820682924486583737741229607041227231963811984562166179871129630111632307678586080057071343420948359480417519404665180352840662817562514734828761646050801299822777754059796808372651548576938891164586649998073279943417479955423836441273969659125670944387703719246205745168588520087829176226595429213673049735258163875806595114759352294291458456482642114344233095107219259735859082172987375766903648496650098576938745715650296537995944720095563950276187202921765867561687795255126912265238269496204739137689698560989521302038404263103838911764067158920863316196095185066006221614100343386518230286262983803301233319663375865981337550299030731541703316589173447238178570512517022249849660067943668730361372756854979759375806511188973276556658790160520234263099940428965744847582169856040341217943388306314590293958355009235213848405902421832347170216375353417463952116113726011703185540876275926811021617100253830947399702320341172681232290720169911451304137105961297919662691669484430089054341600994191643407131033385151827342760276731587706144062711155348687227007044142941019658594339588399853656623177693055270459401251165299945149178470296784402205211668714913582966305434479003877037363980064499635540572822935799346319207294328044150196685458453308204767245922880374414724331260746379840906655817779757971187731361489131959823173647153704899661244369169101316860715722659503599436542099868731120842379371869550542682015373204932918567178855211969310467591341568731014873691412830657722190802698991515585231025710415165916278173632745851414654195153789605020541992061299878669024053736230406920091027136467173733705164979399441708319663333284773156880536259715463206579251881455245674531625902829107041596243526506052402229713571532711499105419695120623861876814778239968414309808649427797435825435007263324017915344468279442268667820465202470681791603187863058301192046704107379479310102498581406834235237227335556074667057012380965954140167443448044187717320960916711227099374473773236127921732543218124177091842416537169655223564953299838218063037481942811905951148098049565121907340196167393019915256916979117088919704622934614253835750782347828670034791501039110672793394099040402633292199491137729163761399498694075779650214341285829577700064534317789843359900640377450640490634186264868278342692548896218699046282562183144656049187592549602040878514064945106723394543670873557615815643888007775093848930391734639563627937536295551598711027220382813563485818990020880460156530348808899556988644635707582502207408610293931422646928821183855967643578546905562525631209169397608435562871350925921630864996291285681996818403529040953713078290150431661895780098397947022142154600230893108536322484117134725184340775187753145830135895093702877774907160904317957454853320953584505423358111392283834990687413900414694278668972235404972644331560423214591616352870121613792790111179504066562662824667503156324995691426551604804663247692456363002027782910875519444022629944269989455079394368456975479208913774872079540378148240083205555658397985738797906723470870629834729524895096648642580565158833274936933710072882955882717326640196447520165346101385931008134958425691657874739496881491438871461327626924885339364689574483821687407973974954358406615395720284429501458066584950249655326453649604920829707617736866306626858120657269018270680283466487059463459874119814004014369866503664013654604682122656672229202704540168785946845246345193912578756279858437310483140704185156758367562149023507143938736367827581326992615781839272831821484121760076617418709369688232111345780388453768317110066737301591099718153507989230996197788269940181110108789280383317607235054755849941238109711813216146606129024097232939398568078700701470771462990344223709666251979463400854802008419167203315953770621938819559765694603102630286969751080898353010246938836787450115880766177542665047583293863882549960830335434519397696600573157815238577391248259934050362569239995947333391257782469762884465381708464178995340224678450822505514558274289584918591438710482965997963762585404822004556281787693363981596626855996408891491650188575526528633430884502953240698936790888179225535159811734187973895319711934360958401171977679864908631429935589710636262093630474986113327411561600316374398427831290222597420566879111915815897670361371042626716127008668568134129529349635947266053645352960002248975640098668590992130643239823290750983518988933066608737862025468341057395097139500372681742150238322251100496124634936061366936855911219460551402949452124922888230638789383488470963302949240360943625419498187286670485833203304496687674030490762155822728966886865155423526230892306551475497231786353913517126219696729634833587533727127626332478561843445149791813122746170091145495572983328064661382686397076036545535470444321696907377212640762550767379030544471096700213904501420057496644975791141965528446375628274707370515075800999772405425884425335961330762686978402358835050488041327063541341675305768821137949243944845777269856349111675386143526377995337790224836694675320432745852342473766734862944257714946945446160559421862769671686043796575600673140844471099327889928033045438947382235229860889347376625308653397916003714343061834807197990215987025982190828223478359170063519752374520659869485497198100139080223561202481007326092618706651815826572205049257545446270277976247914057477466737101002294859628098951596998346776409744870408383121666748643004010598715116290639287714930707045816198362286398515821007690090261944502666425874862516265386149751824842318115540372904493434168583757330352014955809833137819761117800448392179933184468241419966246883937414867896735685986598232466062906726224964216550633908394517548889258348355597303572532384969953013038056730904135068103897429905061685464830967515509379840367242224183470749406097759772124694005776054770984132361566489819524946451720195958595672171222421356890146283503153006234637925022875362173180879151585437067324554145548652472935544508933027948447035363449195939784899896744998818522726917046351868175998423828269536268969435833860297463850354017218886087961396538399759704439727502838421383772706191569837309344457970713289728235422207416560306925784516424838062215824433259222627328066760304184258557766379440578888353240488206550007640981231597361691855648509341320798954101111189908921586980629132946704357597400736589721853754688747734911564046987550812257100320749390003282267645913745843833714101971712479916188861004484279222757118249673684461056813137404376949129676631968518347261683405909163234899697398836787490365329999958849129410289532619801188094492369204743329457809651631123225614711157020887422534018387591783994996275829376644716227616995731755868151775644210271742015969965382776855470113614711921909769907574019483030260198952692548997033940421387919463955488220037871534382468601347031458195733924126349326267067039857980914096060660133015442382570854078566107357279727339391199346860904191476754615531568539944132760768171692892084356870774660743010074872567761101203696906983779287070368758488841326248622452556258416319316319897227766008046842401053250848518270195185026516538029733893106662334581518749570136816376865111166734637388696096860097231015893629175437561461408748355572746259977966186730903126257146322169502509765179923712312557861910172095403698163106797597698739682323606109445080639004818209898317770996890964498636701458977305104748780682112795967797981737949781339913733006716471927788974075429235021539524330423073810148454213013558201671622281803073965589276327652937464902269217272855026757568290718067218394715202653139310425165006602850483664276733648469263105366920884011156203352631174546463495047163201211227458060931800057458077888505468437575672883129725892678865202247595436322472902104069322030068134466185942401466682033181776215937042414849777599339996932211155687895912742515292420210124552123252836948730535973718478913604332458176783897478016753337669513699619538112314569673100264160136467339000616367759727250176928330908821418406956111843777194584541444333885351562761193774550176392530810574832066264238224601147931840534468912344319154119619991362901130150814352955636931701305917452371767306541272371176251457351470275105060012585960221961668263126493419518588229266520684530105030215003867257661108435380312612075264897104315906395108030193164681928466404992206090322288879347341917857081376079196704172660965514028472731118243516014537803312971085191709824640324011342919762324583070695491144008613420952728322284027675937459898735197953131109789779930615297605962021070859469618732867178873241052691546325167089060470614991285503156101396497680829030750818695984914883126187671043262973034432132031209464563544112463613530952248849586017092086992839009194507112622988876442046986119477228934104654251873464538314056028092651774291077676933282951779587827156013185964243085221624686597340538345389048500227660498456818494947588126784547827945259091907756187063842736693787655535537566959396742430728531772881017807058681134160370597464285240695871227257776899170755470223378034661580739148038378051952827452838297505481168145444707991955521169417049310952205314308001597098149248902420800431755843694531189654616505948824249878004051813870864550947154795312774588927095398830079571679158897242620203503077519883665095861173327248649050899534898346226603460570253389578459918280290580170824579983860431943757188707457657500052742714522981120858587776548774502371237119119658318334464086407719761986333399935621828705830750050709569671123750346310633102779236474534168462088967862899487336727677604245589354687959870350610860368482100387743049480742935841271978211395073325814305609978919728607266218365927241563512670764151670620116297667167503213093682987260340601619596695261851620466276598472256622668948155714229365528290647821976365815230617395969142126658154063119528733626606095148617676610779461972927206273729730213999577522278127067321914840572844992321571016447626199823799285358815637236464287261572291596632829590312969832050657390146353326394779268179361303875633660688253437006773267763020487625304414677369936602364877336450251622038490668201101158556778359687986238962002190626486507558846590207422962153788514465065940782063870531655135493628053044146909343575612390341513253970284617000625198708319109827404873163705623237455824427849898679110221368140096226193560853333813122246679015730707387480312801023010291887763148232040277035774889716598911857164025105310534857018411409739890455868959765193301509104827940310297639762018783568721673748462172519447637227731733645669746391407187936563327467614898881737578015027241384888818214661230570562937064864948362088714266504399060300911746951590145972408716276285014464273449118362340680848463919304422895627016970556177927657839128333585160226837655044742392194582502583457341853991851648522284552316633586941877469437489466629691740370917827328353978628490025085710382835595710903480015922069394391711778121612045277469111787761533290585513309113607299844903932880562331232335447432832066473661650554043528360170967698118253273159327403995247497728235856585630618746843889986147234359236832620981013866663461742379753923183806281688740141660586234308459552428039752720188334408440908454057418978877417734534822805143991623590642761329487906786390037399644237180759301131214787200623542674419113981686525713109466184599270332070163588055317095593525317201475206046710035191434626563139165487728822780712459451900536140270667454871335111061277054354217514794366313321458478709127347036294732831026223172441986878871359820935535569838883139816941693913250739667275796662767181353717865775837555198433549949554629822879391653018351790051531630438510746004583204979891326013663507007995379440019735668376441547282377686553286297372093151218623821849430122478258539394234463623958980928131963194702000113325546657412704918465525134747900375394605492971149786400512525186904554827000250181787098537698850526510836184055049320194518426103984883602163076290828773578836433543862811519103601553590990765566392847926286626817773702849417296287556738970952865250114221851139839747742561112040028621165499584125589800279473508261555303937804758551753952659831713907427376283464694452023152846921604899665869690399566292681573827510106743079801710867868813131163011730874050944359105425819476924691812113234331350049364410583155811168963207610866816687789002470074204271696067951972579741072590060086380638132630674559653713848563658678708575039136620985446685685182227974352843053264571483170205816002044193195763655443271286799205602010502858439059196330833871469053020573119688004457917152305201530544353158720633337823327336312415888585555985030920849030305644000213933159162544259754181029929472368049875987675043790909075347016205084110449600512296562945734276049022849352806407554198674770267874319618789460312414077177389033712346211171363016117181035553462265334336761805282292466805492909099888066323224394342712512871904199287577767011504201565985658486866112626810903450713735547360220279812913652493811228007119317622439007409970181271867438805313838554482916879273720850884916862503618136974362686397883768589794175352707512524370388756026901544842373894755775772412647515731164753075884560637177172724739219591530913996287889916078800136436597608539685649918141774874180548934674934270894226667278773800360502166389483567321680831891982736464230534015941806924037569506377270197466860499395940730648279832002445268060688396593072591199977408521567834641762647772689445242067620782080492304167832109848368313359607939183344100467326698219049530606132317180851099615315971665323560353115722137601585141351208191104385972352215714737028838033944684171154565285971093130851026548739404909804377357136843032253594940400207067463120011582410167825023378529329315924827083531003361741746208919017411957971837401866944372584716332904008868490362550394809174649958028249528984977840923693099284023905616343200070749822387331419626514533954245380768667277684213583473715408297427119361004526725069313760034793793677853619468466450846877501757461195387874276185886714433781580966537539756699817192250318545710992040221177072421702310363090736276011934576367056654440804168800301420757628191695048969484474210772426230018919943010720992149727315759987549642954643831234499958822673521115349912159864456727663022504522273987057523380508726787092653248559624790625955109598419749784495692163170007875869110428380437237480730268425430470626712985010810104836522050369145851317412902943984284976382350089849761942531846023184433646498867841269872379161018945719087365583741327170835950011467051286262546797962321590170882569409388683134452395230105936090677065903268107413924687466361452644582867472914443428428023391513668746350250990650675612994695819056720807124440039843113377226956060741003259587773336312373707720106280867635795109511719104190431497297215400243222920494404657389195348958863837469779055064703230364248329637405012277761313404349929296013007931494093543654375826214219355404086522555842081922073226757938668422774140975257843774648425716919801231234860738033143029963183125763097475661595524194360605336506598012999099471561152357785594223022526657484859280636539268113323897946421379807037369604468425999837233921402901083068962309814896394706939606931944920064155077809621460010338520736225852371259641367485618938266033094380734449708594866085247747571952585709145989555621106353411817043167787048779203143437128566841718062726542108464616364170314748250864977157117778658544983809552131210340702620999382019094928259454628338616532700670567709710610424389296711342978293025141081206839462225855921512133802253100183451571181988893988481793164518509896613796547331608039210013637454745660273861275746058819631445441947456759861218827233884827857386397787231203654705399651221964176602442270780609293620353823776292266994870612965464097031344923184001581477949568464488409897080568063905060734924953415432909195104606975665615760873217437879745231688266266019776789662887281032878417511385768460033015289572016292223938507712366736436853217885642740245053031512306828069524792930417902241858686318611680071208313855692608423390089884647057975692010073719450390878255437210513160979484873911250640629758361280430559534589307596449580140612767971108652650230571359432854989978234518984002703846518465591772690380203933430871242958587784650997852223738550819755156238715782144396060912017568514060426725055362666817637509296153546415652719003976372896394045014309206106938599655589297769509246499778782232740936042374606901388550735187253446400099541430369130724036790923788076263127125574339271843890444762160355223389868082556143002751697246739888856734509517244019871675746198997320661325863672135966812507777631526004138858391283157115841442033219186089919971187983664032672675920059363965691209939029875882194758239723803069447580668433585032180948723128805928886676952336980005789071890467715402872567265661088642678647629266097492491317717304074303124511277077333638544622983812738721705439524479856281128055833839420266050797941287245192965581936865761281163082379148870295832297085280065558528968505776963237273128352284942575385079941747791763377799124876509424060574683877330493538221290295029882880694714840643452363028857919911658270900244673765535018866588563776271337735647843164940821486083201911514171980004139826414306659538722989606651245188170806590354535869896613891937732475857343955351186375383854240226522292565189461029984272478618891741753719545319576816492971239469748172020318192143009437348028187349679117377003214885865561888828938716561612153610289869340420180299142151190985230506256573888113359550304951775388460839026922487423280196514435403396323594693527050022404369138023490327009779796990968394800465631459791950280053944844750466933136011336320841486828036529636603947735843966792217139959369214373111113460780387747746402053147335097388874859702483824716745726780457872466342759563884602783721415187753634406356243897808173624713953660633875998095055373748782321371636950627824501820121543888799199177138486779532638378354760368414514963804464688619243451092789835557191311251660723466188759042233596910715350481818491194801460500236539126583007248754147382793371834643688414036886379045978697839840890251122959761126044338378988283018842677314306382575983900955850449731970787564895882810416011495035439085125355268383700174571775061213118408380776506138014957809381658841689899592317671265039270535003586800317428366924113694131030977472902368064750447428167807910501715934179020554255803898957156568744944380731421852451740638228049246945244847724127456929979382012701193104274415196358592897458012478462363508545456468876707831214145185836328467471635308144657225882849958259327833948442970366739606860514685223942783269858539012032855390058398629319397850501776010110324408809411109765783563282954944620191522832144541967312757456791895342779580216326737619185139019824179843503411545995760647366928026436814914334577906335836616533346324596266609021299546846172875467428206485229737832662275004646455657069287010164368774065783053893498718776703833577105777052747731584830735140971713021282631343971344847536780549757743573000049344526879519211318144662045836985189074127155492105126829737372331397865608092423115817389474162308952702654857223491470929453819220396510676622012472923227368307624725211237194950167671165010128974596939172265689258658720143665794372086666861152454828936225950405360230054955462290715144199055345513854594850864235599395205441919935267396804402290749960473576660562555873811475274916543430643180083117431012696487969712249230390550434884533446641937949214648767521553869712302767525866433005790995995055669308426195813131830512401429107997729425613191565617908802239249695141632258799610780576537545107276791497564129426158636878749455548298393881009720153723792177972651847614397675054899791045656044169053504262214289793142057477284919582042525943155690625699994944896741405589377800546325244207466049269550714459419980445080081907036852443693776063290871031764377692368678501967681187950184792453420710859030018107952994781709572574857605318303285809252888065026135448493104193755483909340052139076841214127715096056007930605141334985043478079559818547621732183356586497576398191736533238145858841915303280347385231358810873922122370992496434435867366816506825148340331559613574207245801004419343383982328808019298391036189269256946637455129660307351187438827813927658329592487147792616881220534473231280103863777630573955119840611260334796583810223428004207329458752161939733097088110565967952676268196284009410038776291222556912467687985853462334433421292295454947310279016018404387684287433777864225348088942659003188754267928660926589759413982553341431439222953812407590700022845491752546900867730966818468903643056543781753366852397787428203257698548949711709978781283396500698258156684928492058455891351367621676620098375606850129252442723317525992224412017098592417267441828484928538999483349297737703030195798144410518273783130911642455654778113421312198429254449009029837741447515106271155543543226972233550582511402295739830291875834510066987462901064846640445864766526850662191155806706156327233691818269947769669856290075791272128743585440118241460017949714690903966241005669276177598757291643051052654219976550071385503204915346051521095848996349302491945026532278539726166875839900085339695289426423847437409921113427144021742517306191891116980522133948308010475503881731741245517408006356813743951455750014131057478309097510026552975108980903413132221159432033162092968347827472405418567422779401335449410114545507975362338509892610419436753953773753732307987469976834198554569389141967567660757000171591094421087168211304758151146628559753146875059210496285714377625391723189187373641103930739815123309702818620303295863368079275734021226103524574535027335760759432162982816734873221432423931905515432000078379948397274632320707420514267675634277116428600498195353031401920929347008782799594798232917710916171865451427668332424791344813272532995998838420298760022866677426766791072193096448423693982518553962536591420368939564853272478513235729869337193546685376344798391483627621710135725219327796634233572445742196332110886923243890220806648354205194340186604100167555534980003969854951645726357052872041729440592780347055973810643861730507315759744048191343545321207791374766713061024128953954857379001946367143728307144531764746170613486838108315319946269942315410461466734565786822327972766020289715399981622749115911066675696008664714773419929803447535882755159061284343595202312123628744636204246052855831832748603267762749377326840714431794920708597070593669082006120556653648454031243417422896968010534055746494684055869205159880466675992213559137899477182317157201570346927712073636111042653221809415471780847049176079675981143109924099391852110549887190401090838310161973767169314457419428413579022272582420821563007375067730732138726174333996071902159882388490904775496804320247515927484428241338688522222183602248571186179025599560952620526719323692333492409768148235697711791981092473628614783666070511760477270611386511957748304589244533515663260706403910572146692177858151955457372346118550358058457061379314249632183903072467934983018931634496869368844396544904730829341818215585844836561114636111036854916302231706193018361249455537668070605485616792349738278717935098414720940633225393791721701899813606239643063064654252331504266097795402738831665636152150838306659308880843564971753812739374087570287624488948980800475342839378071902933813654970240972187253122378993524423997900192907524061883121249814671735974112772274083444369059712816362816138645208272532002014376416003971902536129676265163061222841822784239189854040682708044729036553987309395523719617401115837848199457863707615982993706860120087474659024615869067563173430970803989713759590225737113209252001192813378775989879163540626751491442059616329586630743452852371897613301414084228920576374606706839622099493239041336198930997349877745931362337356562814053127087895301985029638647582342208243415521691329877232351974992663893580448381768186165313588730407307553325675006022614439091492255295672398130386864959029190483536431196519243814199290328184180705754551740026640567119579965761379826940970702335610311438385133468584316667383370732660957157312849821203245462576823886055523869297206628932899235050775276496350046297972227877704687555549485397860979309100672660938873935215909763565778553653807366596049849175787498924729813745595717063049113121305589110118352964772289354723860438780869467846596664240260198196438781415266650873103033138427047982049636270956828657207138739499502921676551660639663009374180163860274108447136815197046154530438867245024957849956520732593393995472835651698460758545957604220977616120305188946058467539657755904387035922426687623168301209794805152841405028552104971226091553133953989696214991907514663659870061859202482557845398138196199233294723877058187785514283022252786127340396092889482441803293943625504647540877469470216842640788783611213736651429555444340369305561670500612473638717882217989948920393231331118257853494097858989638529600707961570075690076167794447621233737578225636899823204778281574507406338091084684629509345064758130368923990043200698281588043912486386381292498518279181132138026445118660514110594390765012995430465963930490242171738167556515053534802298596432357889076083789887382273737317719716041052105956700781647447597267523712578138085736598251857850517683029002237161497174222295036008957531484297785986819631498630431467386456919735840987648684816625665516597005938446065533579741269540284923946021277816461292050609535293595285009265936597351455109545918842766363151830898851574450951463966415097945475607672158079307636510572717519856489284707731971556271894222135314542388687500551220415091261278226836636017689190220206947758546875122316679797255870547396794279888540364875997827958215665162085662604467437855818834893781266873718447998616104863549350318506271776363206162786555932024242719817722638771459277046216494987670659711162479044510972355717740280379846017922942723333229841143123712537369048842117504467513392646836125108170025920409920259530339324470794024736979609956736702305062765344463387057522426889550898960868892121429137607749388580888500868143415602068056633711056175313495075022320760795427433045409930083459500831586595251069500516980258274101446533498583114375386736305649210746651254598566178119178319083292882237591574103342803636727323387396038253988643973753695723102816719018481666220851246375643362230902923919694620707461799137233821093856533342482620100438026651121930026538927179639261704472901798679810797148986684627345036597894378509569393937428562888846478854529569480949382770448918878345185755332695965078770268034294002250424098599987750293813046988830114920435966081013901888639798912275700454958667249502568761757689057963890758253408591071405210830822602764912414656130843043729326555899415398879411923645997900985592837454851628064437732089109726548954794450471447230450930235461807316597559330111903879958827933478165929116101641845785386182096389467991474912620000716673059952716949619752085322352672245365857390137433166203793663266901492198986531112606930845806593571085948792663847775101515245979664329001993666349240166848429474846861529113101544276404145395701999622242056822021768235247505553698244031159385706765034692349792279799461292156374664301486680782286075440850756306103468175695180129314177221372171837635620471554262255937930004129820101137992442234779587416783385162894287787938407240335001235197992080268927292324668829292335228679390332704201456948399919771879132356969204357458722915126346076045239156278696509103852768001060067401046022599302322254673263484120189987467577235418539287375009593602321877038791142522224163206077172918030900383271051796889205666882167069913565525817800437279475299800548878551554973998507631150676601277345987604315636430236395119831110667388811314709213896619219649709075002403762185155600255871407347981795512161451799003721514277572281634361025647909475903950974352747661489870174540400530705982272395132350432729484544405209153184892398785861139223721294757301847978063293059054536684359945119532927954578606046613205185008279128176005960688704423384489150319051863226066063157721586470477735671116479561925352251026956752843487612581969022159186986638281051775420366311445727621975322873692707692129258755290106149001669317504432380197004624525801358359447883921016712214827472527583274512154412480729199499343403991113554544340066094923305786166559179966789482570887638266320790285342973851492957184263521129700272247379467524334549067948741944549417065106283017385350013092578102519421516808083965414639648808941076601525019150294467928825632712122392466728405394308529483566066194092819834708651676053782391319569713831966161283640742878497973720059919072316103439207578054237669642984687431765478170243280971354808772115496520708666218587892968968702305978620128409799887219017836514638748560232887334892529080500171915822687001787517315865737623675645106785143797226812866370364153586691581549269017054907631881808555242120765775572242385581829334661481589665396664625729929816759476199240550892600444481414384281856503544964606843804217198218323932521050170863651649811238226203159716447124915389875665533022301186235824904520397813606412312701786846885758458002083021505700275061952292371927715843302210260030829040232595467089136927704867684773453377629220775199683172590004664857176910640117340278806391990968482330524867077880897687395523689082528939988061810025773043604986007227434333784574389275966962608368080274374433890424385945416172726649608927650453575880638519434436678429400475758576122190765865626325236483241508136514308425101033645452097140880546004391111745784144380195328392818683821134017948905634626983417074969197223198577007108063396576060820429156242357549022353458671841455113189299009610231460489672231195474630683700268821874199030286240810466596189721607420290331734673115734370019066933854066635318987709917230717927523313418900592554866057082268237879972080727171014380903599840448338935865029485381409253851709163613090246177826035074336335060784529952957536671416251671833260372857682661707579734692153116412192142703110979351890178015451359220259485690153665247645281251841240290755124425597058294339430831378356766556889674802974670424600253155429802683500990881486088467825590312924893816234464567768422513378731349564830903100573003014059293575031904097423303408965979755767129540095012246410416914136440664213041715692898500746854171028079259814244830794121829674517515139441594440174962867184481820606062505016105870327751908740871651762244821036074866840991326239330522758174758135021149159869586163481032517190567281040605565792216799228722349263188134246187526480900214310091492422942205708784751713498814577059626475988213132130752282665168805967488623668991831485019662914410145365328991224228742265853037319771415905955624921583911332247245229575841481545213141258735897884117044079243022157097379403988730938744487200831532077684932476874402810565898594310896624455365829757268125921911639465683478284863360143669830077697652614510114064177730036584686081329420444713915155642580754753568971079492943090698573747661285636721093686627041333477271526542264626980670596238084904920088155164992188111953200428695208689686044657155520315797035491530247033699598811010045510423163193756924342402086817860752194283374003930517678629200275466184942391684590371774548484061606815242850741797160618513126122199794265897807321702159930803246480030753745454362674625505241696572617885500084498890310691958856135418803293617754620485774621937629876907803600984647550016433043277313572880381331147120687513012725032440817907567512858171369541244996227964117566987360424859229349254719976954937008959376425558108320238317059190445989297139798097160638335837616384291455545462307918647187828620531700456355065844206470111128393835357316102348208330548111814698681916016353202129153415927147540506718958897424623940038644363528411193413982749929621854052408468930986129203285566174450064461063607713320385339390790168000039909464490463632300412187186534252629790206131720348418857925112762561242832118125361300856138475353288913918646045206676149859717298408442845744867163717599029335952740879122698588838445305530544994620187870285977479639850560989590244443384503963297826743176193373463276460736319799798537848364360063175256426996723555971696734145717142428837431128452211710849736678691473627472648718877299172792742993078200186091604393318358508869294575345374408727643492186805609381618147603021853075773629367759692331960586380216222923445400205406045843310737910885205775521083071031141936521713486993072599825788430654966429384589011721308179222138325579779251610701013308750720627590687098853139505174181471189293126815353343709858129627429503148131498281175061715973678339583853991698823751110514051237778331615174686730640670624685575179500415244744106122943683053469252467948745470065352484380051706458420272003481687834927436872757300281373624427410307295060508268997157047336440994699491054755401222425653029367569528079292999584416414746132178711113645515485855762419289155346298810707796829963686510373619032100987713313476860333000873719534494242030041987460580801412591595239881567062392528198489502369456929145771482236666601360811634458276626646952337376539867698401562250657421044385011203665177986003330848861857317446724775002710199341643716352671028101377511729865354062751806110864449656496450811529917659084997116332888494171692509129657776652993261922672986104235743213175868832574238480449767761842814912971211286420709162436385389110550315340195298909234629283170286927268327324215594075789884547088830155369343199358452323504268496088799459744369884773422352939082961513409264768711528829960226785541574279796745732574195163762721752582700978625875532634214934067583062822840059595115995956883938800466651864940545552555546292756209021153782067197168333358746141982797322910340847443227132841102136560918951228505803031961553392529767651562291940816935894585248951478879042976316213684139982996897000417752404054160997020372542015450837472282376584828229933033790467891502730703693672483296216863238199077648707888150616034940411164666752568233132967369875266938448767801010034333502573699975185898076666469635209429726688566228289879804370611668784641419719729454564295390716393147543759188354685556962595278871817230151362546644212473813070474790848075500273901268843146472171921797028861112483126646170770966036405848790875873033974996423063338749604878832519791866141438899232452157050674469067497872354170122004999348890911159299829914980463931541347591221172384170884335062270129876857657341968682422111476448710452747578966335797295812449513234628887621847423174786886652686508560787074612839680176157950317436915435597240804636214639588793933111779108249031857755948425418250481968779674310808721686965804449214443568791091584831482207746063532003106563389469328367017921130500521351455454713352598223827177704569694763304912014648852990047059989860283236602810610416732517891692958108969141069425193627976488932408325680829988031344953877441607720817058659075113358438349880178950213139153347772491041514309368414774101310719384055598041383742303356596062989206178256924266937884036829300641112340611098439785801741073834489115788284401474244669789262863696359292076283439710933713812259318100066646777993037160777377811634283087326350367684314909145702910516732530732444449099933489015328733562500806041614122928806919175265395169503368768197589112022488005842042186436327868086630386792584648786648412543668737457733927055627916834483754475321108718926190399472889361548340682006911392897167398735124521386183391181197353522103903348781249319804077206534824216400304148851044124568445823966255694362287359295760887617636058758667125752321312756365050389124026964719333029223991680682319077871033492322659231207317865131463893565707992035305104107313340220215760353534910353246483329694248361436111882594679928872907944817544478581628679063523944265934614502442197384695339193726756201845647443791066947716384138967609781233479290242825562685415735369628291941045613234538881165696464868551376648459315985365165316476390229721587196538913907404611069581581255170271827478335297149969225145555258287434152470332816668808654181302221144195064548781424854302667550998882694962780145719121477121183961606626161761357911308386299698954501147878461769923319042470553598030016593632675443897949974017938901450369398799974655707229433673577438404965486818558090172628366948276505122248969692074830827178840800304121666604712406824464146677009584680503301010906658964091928958222986780352685919912684062651528655263865190909163980673127499866176596350605184587154061605218343743945423578768995884342923243351735550876245835955658943660206336096003941884755007307130431593736114001896411859289938134152346452979748750878899071136641532904711607028403009502555094166083022866765310443100432396614844041994206527622063068538230398803807358638129142267562227825013608304429623820847989804120118046594446876128936905776369908648897935360849434477891186005261914043102792848244933075946845037504354706367050840567398195174230009661814020401733491646006155629001097811775947249429031444152599053245499674127196352434424121016979535859614737214373170130136637594222236825092490827708274862224137191706290782388930718630952189518299256646190951138691318163892904162139609724536420538974843234088598743825825974010831219548153761865924441971313026369661178310746311383790763020761094031054647453505731839647141537894884673346073068040769249059941698710857841970261799708776144289737676666405327872397557193204205777026236239388703372708549284393999004987662119109071084254375986626661862799562731879697642921623027700633565774419941395435642481692869605702033985468175765110593852163432983921449761303129027997385807104791373131767228979455430750269181632539954420679967710941285739788583122220744006036883776059430218175825780351870048593960156708317578801728312803888233637784134907790096976313362505001798880325826842220509896557601344043616844892352496054261522038155414040978800243312825368921683481918390707553297990071831019820217185808901314000888673634393888773465297328353609576087130470845280055110024454845765915538005827597822731761965367733957196035330393710114626249491266302468732210789897585473355270234543161745625069177935588969886311300848782182230939365787231874328431553696985119989365956557215966982910812385174813570921834721949586184166785107779030939295065411213619165157958712204485271088786938833145843806204933335836668085936390382155552793896716461997425693466446986302737211606076206549595282460403086139083038652953324063989896999425528952180218394719491287064122543441453279261415481040039328729372849479416953529945586042036283609196235231181262514047879727833021961754588490077985710143208015289865151057103012834436246111085405919248429592809919066915220802497086542096639703370993147523790785756283424883987001825762428618161321514313265228597040097211918230037829443280671581735311730169592140300893656879328877425413759569315241778873480080839641411937454280638331846899924326514319685632332140327328026293147890115297804283011793599982226112246292965937548170743232897044137001686589997742621990630180045203042782446872095215327531906636041809163700311190001701175539261297776764488745661261488934316028225367829414988928756185914696355792592091633295401541171280665332298139095446652457499705599880834482146417650100373029249149519609009706664267503121285824639801922724753646670543626849536746363575073243535777386921284870782897133047210789246618433387866958518545232435428234202513577768696828612384501646180264097597554570920430344077156356152810502644615330430153010934099271045892640702031993453374934245297433139458378672693970404729491865544791904989942536736812241880914169910269315768319936563832789057552287398991664027015276737564985366875178923066522904065602051621363327264000674775733876994510336419631961874236673749103994479064511818891648645117432318098533544505717438068965429622284893162113040699776698916102708920422097068000580433864185321538448969813385593748573008172061033835964072106672482130441852717062398639296722457263236123411747792538622837924280595636184040197240753303447741648567625148139028920382508136130323945470349983572496664082863312952691157569058243058601125130416608655279952453353591784619147095194549988212944953746022578465508965930242922935456861708564180141205595097987163024053332820648878592529223006182484174433540917028145294581279987892660151095862863248576187222010659183706326525846678618314115541805747196870389208117661244870934500025513249755529958443600266763220998254530481828653478408032686109915682956977568474314316589093340852431316430488450836539467139733935424677061935211485135047988785183114400948685042865478286577198247084160098527708772783878748360549983703370964686288920760965397598459667864546270806189545373660304558995402213709936688404541010103809510528739948953475793501270496001936066508644520629183416811733055248524563436869834001943246156270707170096054603489473262641862762174167728000016433710772247877708718681232092140589033220832850702184116074744747859909070657692007940917183552334611590831533801081121474194816755424283613879839632890536522303457826594928533763991244229922831278132496521076450301472917327317393657451715329434564777751939935398765894592628612457022321182046555315791575024631739439334540752510486198531597660790957916429481205370625049916253454825754234297685258111689129029511537846594520805944522804940567689258486515343694032920646814677935470670428344518054636464149001567803865496739726537178130898794870901243532891861880746867024204997977100782873322490668950071983943206549779822816967406158099994314063909771449992233034286146303314047321976256422695501852649127755254439398785142614110614557175087580520389257698930576425426882901178334078699698274236112700708386703992101691314125255982526573229601167125560483595612688733840472782035834829148784080968957763782389280233654949729396060499807202684268101718217036184852757763293852587771709019272218906425686686923103697562003927353974345570781353249995662638026702631760341082695524235537470454545965558404114955841464208691567611098049561758698739895163210030122942599503724826335596919153376920926018321604434479799878692257326074412056381963084582172139167382552635032445158803705985194645353865908072838766152007485507979797609553668739840281829814915463996243904869598339503960312105441254530433208078623597463020863580900567945159183157667584034712736849881735756912333966284074107844319667370966971893880747399828286747425099778175766677468879818686737095811490271264019994577130407426103730931264503990964085824368628605090981762841126751005624533570226487248228353126549744848424352869858755582087629124091159567577716288226360503476582664714911463460622217867382154483885803655325978334376740213916621588722952203842490654295487657097205098643263576994708444872853010818168428507735293208699281031564168870543699755772412620459894832241316574707478586452817327423684071657066684940918674752665803671740716521408313287801721302058288558950188942548591222010538632776621138480805567369596131357485461460570900373011702504803551833900149700688049197901447630268802114033704459203520900862050991785421711506395993951740874895303623345532227631600826292500247424302189219206110603150489033615826343114369935612875873418334510427799120666465216181188900157706089848774798368772272432686033672015546080860764747628619303268655021763002678092897327189317352990361966838570086335988837257228642001241083648155599500652631448446656303525047777429639120945765549702500253802738687027504026521349134117984804095755130743588573094268995258323751572212941190197953777634756273951478645472087875061688297655773643846514366960766947885196413755881631692407445062778726938685779835929397016289963865164926753933462955881070854032210239903695083695019916401483656698794206288000671694290993460288836414528335180759773272559421836200358078937712657149687025702169529258664514890225037548753157884018239724817339634927984025352835387857396096450854836997683954470738653360986364770299196487692638699384492083215859074014566069303539780312739622608639576791821317587012917511846863322964346355883707762951436003565269035136886767978000580884872253606477789708652910262187176015140747617289430086357390583068092264433091691989876838187691961891033201718633269808184157944655198177371135089348491273402584539293510663671689622676509370569793636422896051179837250814724805937326490181375846905106438785330947156145540569179526864613206451719842941251519318675087851985328546334675398550084335767689590687230787950942813567903147063239169482984701488471042048552579285439984305985861088110837761092208286206874591488657442161803293153733302069641983043629534127890859811971990724070892263018957670216456540038365270405190302256330760145381962896453295935088302588956555959727301970214007425614876665526986287584995090390595828256537870268753193509207861583715437421234986121151001619488957577794267500765826531403117381918222211014501961566815054954008285187542189318377394566221050626714096777554353248492882161224010070887813254132123210807182564161013878602143161082594484058217361502833236787130721523324100370571981952697993173234408660703600365774155947828658849586901493481570376724086232428302525059243614435508873416038661953345092297897670754217240167953893103611289925317113137416525376073384092068228408540835657284912077304494270995118820912738091169156477704292888604500891403844417898912397391194471930980158047386221162437477827929750343872128232832629996841035392033765316383364814898891393910903540329610322017216432348917124376917878362876900626874642135421257542449758815905305431766112976765284751973794044391342474941469931242663924433613049071634602531332839124460886649764916260436497790673799803419320949950442096805569365973110647600080879495251279329258806073656433839628844050178734318820139209899048431350717203222233549190536424328443568795363045469153950563486359586185935952704278145593974128515531097991679812189680046001748089877386825312682035607196908157503673681641050460842609959236899632467599993215483879952450905017146214337208787211447778912509910921352529249854180353198325584603471412085071918033469149159891496434693186269957481954074951515960820447874234191283714569762768059480733277401848280826608132667522697435550679373134176408693514543463445639573639328184325803326095960479599757662450808320263621281768589582122599624214698185669580855499790109973281786661686943732597962436343264583917115740702689873812843734447903141025143045588732206082252969726948205095596761168789769510574399716395480240619178532406183901245501855679877828275565979551354038454496034544734857940156016023732647367169903866856147625040486774606554308057320968089434681697431902504675791801260452419484136483284093197822498238715449016545793614715971099478466037254011110201130802897908792835219716923341804240548626226983997962888195007106464280731605830236990300007871240119464807245578249646682955795483296235279405479154943204205748141285146868234429904481399050632167354890469555690760619742384173287247991444409634629219594482281315584865303715415729105850133154136167086680798537659654087547067165920170659152318632488309129622821942404712046557966489082977692132371304270875859717492245951081093149353578660275169083733268451821443859557313164923115343010589588860072169903351320413477602420651144568702706275757566499990406720399172640179514706447232463899744015023018677701872528688965276281888328015791776322994484485994928213334843662287749537450993040083769922515749927515784811732079297439070072440291010874695880631957988404476722794972716943923003272474336759568520204526664945851912810945270640032710062694223173421105873572879017037150018042945383608667035664727592489679976549567362196240372205304156386609576392966944354815169656926249996493356799993407413653279319642346387896771017707700620048048162452924821882322534888880278757624682430032171251594839150244315505290996028680585637310600743425133977414946631719928782196777332895949651030195392917100023821404393224188425486597217648278954124164505308562058944516754996949412557170894424961011716605372027317421077784953626099752819483285009886852159627370852218809807059197736129824061716562827358674350928704991988624823485112393822900337322677552366870330788441057760540067796531919565389785862211037248776600544571162585373875495258050021028133801735649459951851116861388071374305793734395064335877799304112728305516045084254313513579104986726638030174115392624471512458316417464257654905093727321684062555371375878153680410242432214610908771422230018947016054797636435791692084933446427848953074715389316934080541655085079605615366631961315559148020966404404541288562970758795853365474605961380220406577096070046135189358806266538518852153734700391215269373084866997726137604637410476893307775448186523481546341343473389788713288937033439935055843379639018419523357989266621308768414267445790031090139660259708189391937839961454636488582470353987997786135560670238724205629167287346224094507413935704629715790595099624078537143330847540834902513579003467294565672025482805695595678061731865147205333894148871001807726444996298414322543442464538749495976628044244267149001466097659160874953858641394912919048847712127889227550492679061840679441338016996830353945376799462904303332042479009856447513237054692612356170367535653243301299647402592922139239273280232084419068128272936200542190730999699992843572590443195107252381269703099786387386297028660606690922190807887110365931181208652514806317725826526586893240934423443441553478436561663635884687493043341902387939390318889367880197571799563287794834923671653899105862762583035262794886320920792019426305182610619309311482536293815331717793289693876877129625445815457045136380727425755003444322651425317600946373354830218682162742338255189204837050904228019824711179632443671315040495806136371578822234628652593583821196981451916654449452898022143164366322487129802360532579569343386919601611234493675252662399234388481536140039404070185871898615836412867027792243770072213805935483821954863432045442807694011017578348276359569999429689166651289158922653227319475896490834796456646422480544782042028257681007642213583343071728991304744384088237372371668540360148340827053145332354593210232764458310386354656501227131502806475010044673025706698698012214871093462818371168247963371735478243167643232272031801131808188871041354591431669580611181895433117142677054033278674372102547392048652812126301091327299354497058100471491037380005213798009938443523606310041549337675710870529961439072945516311869349347589909796569875713435061364563199152486667624566189104393564035271404457602805399087226563918013681059791243640903563324969569855117050349518673658899863116095781382960802679824118744960497399914800050839448109775831027122791882843161664930938115084685781758759728207385554997385511734211702183557483678969526543780059981184460831352984979275664036876656730042832884516818229322808309068073720996482774704295845117680627303214939067514290342101391989455357846768930781286370131468263199944211260160137696503511467071986272863360898543372244559917108057514296787719352133599229777148005373312893811511020136776971940299953067367320211806022204483118514576535210705223477797858588392331130607909385285136564043213008364166598127435588831284045067694062778796350917314729793634114613668437658558145555189205699267874708656958341814054766514688473029660610501359095351217051760907648695976440049031640300056351316184952036285997361076177491209004288542110101802983120635893878355590271873799156017466480550180115613072324858666808663056125696938642616694967781046573297641229592936622709954898187314943935717424417975773760201416747767904940622517761303787977979962526730224221860431326097344055755880199174304153787779748809295771325883547107267102804429622721773967072556994452191563404408969816998871788397546703107653844822717847493006208444999079795775426012214248888150732850585328607413041687975583511812045720658462821685750134420148844258204691048587470958157766279986103785461392002273013423394694672827091774013058681463074346609979361332413133041877104468768266002363205626872781697727254624767058965189702220789791887827536110372919759779092837386021580297841489441359756690166414622778827572462088948219894298343237846315010155123833489694363125705162374125445965013674921817104804015217173557300774238907642857047408397303187126992150816322720391702162600241262632957629988923791193589815257524565370376375433307864891035086930043555909288358462988110484288967807395918374490367578385202253124774425295652362074190540459290689980489343370074372284004090058675577376508223268646440164460042972727932105636174778102680058848519658488563941938833764729073161974626599535998615596849372534061288247758496987939328114859716745813029071918032600859435929565797672113247794846512017349487846932708897515053335882476905967634240181629863521316360814993022991273130071635134832711528531542314668675016333960143032395119936755327735683432382277350951697076518399319074684056876746255577297961965561032895459659415483337830165098182935288473137332686736071491355782645328668204993570629160460334321108913274307894933712152191904274064243279009123110587997588410305347200672602138965616547731593470782590660217834188842212732684014886189626014739976456557065072330213608818145131731999123570585032828365600836519820379863586381789688992378134308929446115964650121440689214243616038064666146658894173991254686870894553553683494978295087473571288989031415180489405922622392258344847939930367055533136175808912026175052145964252539224964247396795486074949264010845298697572352967810861738507446284947719523825399881766166729513555322802397438934525364114809642547497533528304617707890396541528839695370794747109314991252787733022352019064503587691604025320078113705976370318403102138879942305008079363563660154253604914276961026103934625804443507454690996784045555375438997517586860409342325490914265333946704876489614075286767903345613540962978744033999172750715147417898198388206694823135724591728281355690866765221209993235886201350000684116726331958077366111717630555875338904950006151893707564740241402214941635444144420016367380728951978392859328339998582793984580576241819480655360371355493536424349978459241233342937037241268551419306805155785292707548751974959906632125799440906076674309670323768860795426252676705815981604697091772046464285956537130971948749081616832626995745241311336513307708315094510649801357108756434128918852715355202536177837795276760529136660045047407407346334156189862015617934772729484789102318655365482510342930943044031937348781128254674096524516684954423120491984116745151850255841789614617202217284054047083556652371556338643405514789917293605852115496511482739951754978030325954981810599428214580272751771542310282639281127718957409813796335113501720742212168061885133298368444533113780126990571911470098660392934720743547318220930015097593302236692955858213526939858103333723090285798796903275780827922780075898260472488565970799966865206524934578841508962348523923933537642753282402223646450079177367645308318271949559915615379164787860217655814173297810181894772612044610790452328508710796088549366437778364146163341906700203260431321449554481286845805948936879263401663625228143439826686910784208785263740536328988249875617174011955305237301561778776954872292107345978144439307331243796945924759191534910188751251505997564840868135083954298519428339069883528764163421152263863388437512140842189765098824049834796902093518985339926202021567494055463940755191945253501306688424484553651126569931247334925596587813022984895322832906412995100974156037978395968724963796168251647505721291014360737715477074378540622124044244260046237096165746523571723173430171142330716583976298851634613773101432544409368829674527308116857281061823362492483982677490952256042341281460075964596191726360290285517501875398106633678487228390697697964663878122765000889342756878400604234553491045653477108486223533825965137365966758078357620899404348716110952697840866914771529323480741977587090591848787349462668529719182558818080365198121399131131841228736002957158696838881036112715102905091489193243214322777685978274759620601958735796330645946553243655637935012621441877724003799152849071818118087906512823746831682259849905311378248392315533033016322675556209421838408006881582622619600815986884641111440757340402000013047251237463227392250257721089547408521374728838133819038098032401746736502665440422738536507119659363480396230090487436889462362316959229390026195486147439637193170784642002720094930491419140556231428577167434200471629953873548406947938492403842127358953046467244249799868332534567013523414306253504158292430118408883094622465218515220307017685385512940939864126751696757200746248168430220025832155983244689884441052874128114583563659109649611949808833420507573001069760355673783854582305513079625419185848417605162419767913748485468014606102605117882236744047120710424790691027655976687852516036024910364442515486865205544080845662987260857964524566878447175408248696364004466809808642778615571663297187457842122369707147126961574078627532359481551298478574451959374481188950173137779949656771290367104921019101680832434341517076278661741774322901209720008437590704009616033265956654217071210617782150036940954205620830268180545515734975781355735544279124750587339421455891157801471930549700688033988102650917808035099846994889483785565063346766354318330157419447567318587451844222562813202917336193441694851773081178514695964896476765808104228679024077200297817840012363128765876218956647111415887227174073994557831291706895224405254742250293418375781603233125780779606930432647214828123172561614314852958955054461664761000764018526035808536591795477062534320095962888914028958288920258154068954821347125130421266639280519492536843013206101006444520709177518362020693701350528304678543410241555651939954617941838601911563476394747983461837191775358233344416418226512448633303664627651467233545854524107272111629843522322687727392807276555001701846256951701901962639897517811228473000675048297220543168053161379301185117558125624740380717666148810685584883697889602859548967640650758999362836662176291367137504223413732604060599598947089479541441868929735046768593057818157266239915852233671167151423676596481360354368885151179994524398858085801835154624757559881948730007484326925459570937407081132980690142551048581852663035504330561171460118389460415579691090099446901144794108182648917116898537864918561645165472455039602784856702271177733085067452559918813097533432232039296577686559733333286452165804621336782178496328431286299017802332383581195593429889353824122110870507812439723474158856571880127005867974049371019302382064574907235444678418320848305700027291941298082660041337452795241912418255813600554591143270569687295206112271828311923023194624813945845376877728406438491804711804814003881378230055378888877348196459254398627770354210393625489346642231572838907846515263879838592971109537851628933576158615901365851559443609784060738905693348021394633257546922455340091790603325313461494522285725801439709291561357205794594420102132759910841929248416598616688707200471823955626128427137055831748869027983159593836259167411615479935503920286649999792977196877664661852174795670490450780405760715270790754116634923331997137687573155027855196679500715707214808378218966199442116355113587714672799134091366314449124368201798973368539663371185007742105823554164498599596900121845359870255923444025470500342381555029596215821820062881757412325240388448476383394801522341175889270972156407634330112706703385064591962480426776162798788992179135160991257259569196188449952335456794066300101976386661383381516668355492214486516782400958564435870068148800772382951531010504057301865172646464637700273437745032182369509010537901047223239180501435605107399799987990279689935214732848422976280367309347586144423529566854639526508002412452045632482275002306553906482141112877532505097516863738963570330412084461925322696887928731358829092948132684227049081097020517776482089646999366904859798940249408176753414391189795184973415625656901284889733759058360192448683830140141159168716113116106289944597789672912244581138531521589121929600921521561122746698559152619872783224678378196736613108791408843525367653789269597768652470690655798092477416886929760906106025633919761482183571114605462794149146855171362428616154151811708555168096525089445855209331458672290404872233848736175626747304594767711401062731898215020169048752062331598277681347104588044524947622570031144494679674852225743359944840762435463465601937643445587747283501750995160723293252178798223739954800130445324458032372817261822144621238998641973349240359200212596484897851592823345206223826518492913101666334661437295836592583710161845921973243905114671338716193576032149621349613975596608430511701386911594705250203442877459830836180498909060416591397305252800325783092221750134772766474119771813310734988693627281530960017879243993563888090547850591001276734952572967357888387009604234607507502818097138793278426035607614155361249429289986446613578168832245578360043428411389807881623929683907509027673292686290129563665819693638724168637879583991919191234368907569411523582708609599386913057885487440693453889942762620143028541128153539107459200651464791911125909199609011540370551350410493930828825070832294265704586754647400594820210084069375689022932348911037687930715185080512602790988854399701043679806691131340539833571461372530853248195945970092329709303815737862045366207086230080837552180836575309037179029127725948700351971205747630227971747726897174647895330678312056639218059718023755395919947936946617801827946578704717036771727987235529249191362727235206295867359940034542304908338147181552725147043880805402875736658048416652179228246804916829350122560056572991185005388537849010108329259252955672921522115367070614213905745894957527456943231214903706369597050239681061513904003596986259098496444018209585028359161887158642296494125091194946245907665249706605068661079874469638181897592108233029643535510261422274949470612359153427622351456064272220346831933006772114334827697171008793614085341853807171817387239248578307898956494170761253507915889467611511689933793015508682727434512242625062457199111193660759430047939214440264895479918412769446562398623463782897832373392814807146169776666652409632702489056489184649013077929743080660923154779509273084380918975267293205130965573819519849855153526985179000867035903243434012025828702031887524732129356297551561473459936293772435853770857786811770101305140834134256592566097353506719855476013069476588874455131042365957937313256879496195765871985118491385579681791561910182848887688861939001245455108690668562256352032786185378894724262394602752641171225327752525558923701647199958951280861931605320454762426180024136853700218648654698263726606439928030851059039396419040005367235109657862313313793295622322107773889398003586012898454804970327918986975166676836522037063471581606423852252038967213266634057409631168639402073085472837916357053647165331037469892826495985542527282465316972165677333777983981910734627955198230034897613259974738687739553684893455761394066384673216399145732955806646778658552121089421478127847172586803398858949259686884904587613999118358734759978395659886329273801493013215145701468211820976394438595930454237895253620595997515524937571915997394961264609437608186800649004264729570883977297936617885853788422577891942425936713842265765168803901315210295885091259260624532610743191313017520668193165696912061440289560836098247320247323158574651028028271824419812671224520936141306719661347242859513880065178306222550164351683109581517035723539560181428953716483689053789215925163502858378420516448890721609959206643379447729935181363021524974876797899218962211299294890941193777770363121584866384651876622788997435036927073651067254644159622938019106782560979678465484102985968188143188537779180543279651111137595981551045925375060269438811879325154570083681929054846371754491585812383046179758441611483998056109488777653016071923076067789673841053302398409059489556650945631499685987893712034905529440986429660508311297293823432670125354235156761932786329872253941422119566982263867679448625869602582387306864394016509029870183307747505844169088375057821270527040298515452100375885737701131304481700235382534016221082515994737665824431631292629486637415550147553767250052092062933690130475131058880404924678674034088601921323164419425487892721329122590980366984117019265949607453575849439175073878343804433894586735132343267923353430126878274554695293140182580998329723343185294707193294358264436776203630286633267004465664575634478028351107333640948769041139439022977786985014317025636096314782527340781945173527859044166525104401058808210150603378262238190460958098919118553871744974783615242946002776714483925530873599642301799354090856790566130051330671189098309049980904365842819573703497934773601676289496649490945804155075070468097364533795902778485453648768896174755237290566428832132069427195053296404249429247070878693794220366337369609788787321646856808940894983797967625709736214250926212711561351953401534344761606012705560988444884891203379453232429099800644255242187468597177955408558943716726264355687677571426550817696139755287157412050026951713216146472899651141272694698980668032680099968952759691678084216973545538965061157019265843416495614465995233820284817048776694527677622360250949410928503488650079491647730319997585728405114727879394458896405284527748730445143763657239188521759714018805098520427411635313786108082344446678008130657495823710648669664946153988719124180190591209541558211068276254692149755577820087922787317774017211270782864389420849962437357295080454216252427882908001111321192380187446105593579999890630738487627632443407001135415721614654927918455001749852028574641193588348129401786874636756149734886198396350346145708545476189538797161421793147936444859189141348924998254594731280171631323794276453660591999303494875922253871095542799962794757323728427208586791467247280191311723813254364890927032637650158551753287816874717671710859851800921740886688281506492230971495524257594428644127767272298691104118143505961876140870794108695795792026593419114367143284861844218366986902933392005315402142757787363423726128855777191017159126375206212619275745138215703913905678054613698019861562662212310581620854044190418077377836861883548602060101858144971498405950584259507359000943047605933432117669137060371008340103395915407179406260849453138374794240437194337020855419982040061971695689486788653046683786186244413622176892002507933197170957160305878822809491312172789662884320877062018992042428541623674296765128744040097943313533012475923139368101363058341883576097582166592710555591948988759773998938564547009537388757957321425790879683277438010347337043651704754423719617929296355567666032678091647975612688877222110060458884185976414458694130203409121763932071341761715885671168750730293031636210640134742974545516032715066936471199795621188800042736774767753759276407116817763886594800520537310776988623865461631005948821466542790470557737445316043292299471254403575628658455677539987921222595147861112355362683760609779524704722032079696820862978381217030409660799767783619539881267467069108278882202326855627954230258064104356647819656645338088209173278038202067776272514751948219688007061276024858242001208112548456061760086980775528808479873250533076626472322852793681718576487342647271798885000266582274766763032684058833952412925121663754329887896265369800280647462094317343165484092383760379028674369466670418503126534114434707094016891685244891295376003789869569580503153140385542230457125831291839019515208678300966635710424798116927465850185326602363524684466824727472412753980659135117659734384218761235262354222793025574345814939213660928553445022420450644599780494193332322737217505044802973068140145686348632669373132119706491891304235470971553762938223597668259180205328602544345778550843079301445445522678831024208312125199084888955693217919663956644439935629199729771425790356704388722370277815964313585771213217699327126820507359112623736262159106205961107681374063923274622499074285098759752605795939433619451422049701761655193011091804563999201578686315485632873389886753052571442225042997343463576391181121977852493824991599612299076161758689217743361682754111083844178328003340685379122761127761385534562539906798201157715026189712050939279821544198929098610540865654344936149206368580871018338715143759271953380942037066807907186912073163197307920801668147720707595769024759311472965029534930545506516476491320189330532692180957626621919464640276862717658347611287058721377836526557660246032531306007778313220773350968524592734043937519839281462187025425698251807530885089067553333364465197668056189551358468553340286479170209005882888976566074510843483997979200601708137462100450251505947743332558380472125745612827474466285820019500302238157823844980703536991655354124428368805961587591907140591654983664846647264409183584413129991220168645878852376530634786250812658875440993324765714276953478840092049635806453426044263412859864592301709419596186449093441432603529249919215169467627256124694407484844498382857190122200523574770426209883075902647281591034911428859419413703940356623707458238413014494487478958980220863036814421297174274445761319039835522629534004571718291961926914723780031880345885702105845376041917772988428059706861767517588134350996177974927130022868803893515396253894857194682922666730208148992260854954803283964932400580260136717654390448419624603734403896560223119544781802702648325810962865824913160718801603381249509925539746503647132623417397146321888232558866841815378919292312276574061724717869503941893100118048363237721562188117558381267319465471292962025553372791904258703853286484182018909332739131729250807552057095215216348833880232809279038116340958930786977845400933421313047551663825247967892138668360939403680455092529635667186785589137388130721029215621543925766521401402795447301333156102702039502840610863368991155223622316631464966244299472959473840163528928964649928584183544563481758011542970832720179116940746256607865992625269210385024914061744505430662124284112217137006394257192762380790391788815850482005450974181448286130150625308945791491662710414519253198846606343829919604990873672810145326789062780929261579946161825325752451201726157190992583319822684685390099682978918860734530318555900978804877680570320421599263832471233177735204651722198947132931533480574199788932659699946860546496487461007997500820127707342999060712217361647424313270932977710399925696677789502740356685995405601745872664447091425500646071739100741885678911170621596034487092881073015267903046896751036716976325388050773328762749104351590545536768013526395009359349927326578122737931989421732578595326757762318452987186263398002040546772289275280134190610421880674969336045117242074795459552027827290395407906605253597362159556362996732233953419408159225874737840605601546864933298124457696510781869235378467774576449724592958136351973317283608530935504546595088429956717466660487810863710760796430562680805141095662176466992856929070738255136136988185610130436989172392528586817284374580779874318050504787017813856860058162637190320125805391657332861035226698214693676620819954944039831726628031892238414779446580000654335182909015316090535603096168993796129002703111674844594424153262476789352927629130373411932669196575696493449758363675974225391981543575698453094672027666092511377599178919442677454128668656301986541747899931117844185002118650574897179209445738432501831706378492160891104983952381880182867252661278002288502212298060027107108684286274350377253252937798637073372524208266724231131673065222557114278106120736088887785239991049952343479345683790439787565218598772894136182332895285452494530418346554424329840965055716384341288016696103092412828463285794155979189782345895517270790745776189578786772901786197226970407168128042787148609907529359876178812869367854456093236944337289674072178978826833684034464670812635540601795349066708044594210073739517280014795277210990862257090155460949802231096960366950994176022916321448980890602263363669466067225840377383493433057911054431757001699712098525847443635022813623677102681298353975196888911544857631703908270082404425494222902100301541564016828982998788120009745980757423219001286255689406172008306611927156031882796016921632124680030727191756761129710695807394714236228485268110599633651087390985509758001615813230631520844281359459308453975251808031128376330481312474387282020957231822877281919126632927103186983573720989277438534515029295470065819129784010840096802744089969548954335771902439478166183243785617181450771044650828297026479633799058378927387916908649078971939395578045201152422594400945570117126843221579475415143934078223663152419403555549220147793520993120367568255153762675976724804086665934637579045972913625395021559109098700153603558692130356130032575951359843536629617352090735895591506378839791023763959738234481840477813671638824356501854920250860124331893520334438351065654976598882253351678588542060809154634958743552089501717031660955334175004638425644884665997133352822185811629364707914248728192385522734336798217397855298001835771637930023364825376851162366665584870295057673716766662867067381482394682081836836609487080003597011025395329481080586987032109294667837598014328891323488162187930958435605927503512046974297314784204123868421547191027491324837418462823582465962723299588629856419305441455397164345279689733830878804509902912551708319836089280001617559342324234408972438863847150934022801366449968506369236027701130302320704428780739373570290591962070296775425871369219126607111081691301660855304131561242831480214504521546679432361284878492667813255742791924109553596503210608144388416480637528723613871304015064057403301640850292110500921449961320685640002408306137608900647976954916370898086530733148035511502660555392521126677685674036822994493648638430748230783720641971311786541471140332631314687664083532105995807509351142776695943577603592982098575233854772578905065286495133067221271492456682158659906461861052147444986841343503159949961031214688349877048159913690700510284004958403186919798863800956834729167448058387142908271915837224053849093713169620261213165727145418783299182507505670274364512419975480809855939602118708004118187271915397111888351007713996498077579266827342475504358101381042293602322544842159526936011020168702663942502964312105821732267101655530992435230393706543097025757368339445520978197775474144987182322586857802836406774364932723634200667591791761728816559027347567313226352713689145159834256515806365994120602125757355101507590549687635276795007781268063770759458326502948709240944128893692316344199784962863494961304522313333670262440332407850564997183733546319583930242596510988170928133920554686049497461547265966074271758152932513202705732077255236590846598938481534285581328082224531640691315644732771671284810660300544980780896412752959041197362990762882628457441251246981806262627200122650822107536833749815284779466523366815306966659881427103545338856342899067870860242047703531649712123725426075038218604056721031534371323066652049253458403766202883164082049618569521458799191934704910666984755374235670586967050328119192982165884576894836501291922095246112473863704775664215083375794022465045356615578131660198491551459098044447984243633532693284085439464758878249497767395849119455156993508079267177476773906355549407582305764520077502609478613655083546779187035159679948679719730303812305029433406403094904230132148058451268284391118958395176582711242057656227076090977212214716226624403262377619546657408405939322216265764316689936593405346687763591136274880767485988144847384809386547444250429103081756795334443538925539724148909966009894303870265442729869851952467685645055885996688073710798442371830527473510712289000597699582897885109329817198511739692474748192978652052169393702904376913640893397511899313404262309406403304488240093407442331161559830814931180102374838254309894756148598206422435527988307932271790600782519115556004743039483917134232833691422094304156759696945701970152327828204385346541101959969872909985841834310843357462261453391104638109784375719512468286320423188489944741820254152770564888291407630544338791328236629809600565043513156530108736269552144133000718385007512129425976475983027933240001410390200488164363322954168740932475192650049706954557753132288763607436101679803614026784979914764572632999717029009941719145343613118435248308431202403129246023560638963612700657545022378591754578917520888937282561713440376630690538655347520333695579333636759519793448604873691065196238403937991140181031210467592987252988938967306054865617356829238917306915883591303164008890938308400067624870485326075921272286505259399685208249676483628687550948047195654975987359195826561312354770959669319818886471536997978566547299364430922821289288733966960040216936080876434063350948625815598927493623461081377314559315705670600424531531533722987350842428922637211813066249631410931732017131618174631933466232582887109431532788626831191780318555845037577536527931136701102410622658953749968113692495647125925806372512485950567078831633354577920113972313295292790259149668818242996415244391420871959774339619972333419462273421817006172812772925613636583095639662167080700348019385974765866745912488945592027080563821018147968660071736662998488718536983601604672468672353493814667989534595552798893481917650986816103418868608102449863999306791978706903741155877721256030005677591013426689978958853504563269621759470545148471090954573588805134008154666249759519275358471581561963926827400935568344655579866470587270351593954961483095780083044546946886575384760022682787950676001449083371541533729498542670521914970673286643102827015041776226208315271547326934736482518624074997152167683802090308349227795649539442583519895107810319472926058510168891344994534731901388609209575009020141821010698246723898561395470783262680009011379331432818092385374537724283034535030507687096951082332872662904949799629773308445129992103855177179780563919705306668755954905635483060130363166726135348885692388694419147292351913541629787710717665286124600010670161428623551588908670683821711717258882325654942135174697877356578043503392406224285018597981099770441748283464696838647085120991549593007338664197537612691811695084020322375957788807033477319197639652816413369663810471566204257925669599507599537457593926410102043237335008276224164721167433389249833112306558022479973188513213693753926730357273698469368841401878001692640097549611696205204003721811319128658226368887709043921828530833848360780592238384682517321379926381197856152694966543742770307875096990055543902076279345573447714941386281714673684289890842299591055516118361450469530126857822333194231695934006259427407621223446431335088279767185889199971171327636186200883648328552523636584650066786950822900771927687148635516940480998332775428467299084185127016136811451740658210296207181710784433336621482791131457746660883382158974456819108417326285360386467956800722755210441309731190013230266773404384638640004459839596182177707033586074139522303305258792959429576381090425841343449075968527671478899683877235303931328487654724035038428177127648982898866023421645745335177111107517226781213374696365072296476070604579501933617481771529162031031309587200291932153022507330790229860923440904725446410465667761284967791566453075417581857557535488811343928060467347161114985502976557685676618692994016418729582708474353957128014216800076854714843325137781657620314969068188027671958993496333079085927018322658449959065160318007309627928177965311679967236567896826001641025280904832198473076562532323745419680209021006784189965986107048772913799869888907379728684172601439813857897132729883388758062575942904037369980589009334111379237055593400629525630856780629348788715874885468411565367437508287843194577448912380866881410387170818101854675710758499974370824721553223490773779628656552873200911454316870934442892381114914743240036919200969512733807334197008467511137315931164045787757088468758457656187094457897188246459760886334096201340118617414070365568213838488581175358477898100652921310287607072026661483165946759359684478687260316609115735324751907886373122596738691259487650988753054526512082843459641204505794458038597068567720008801816497930737994150545090173399484570733500048172057856282524845945577498321621789607181850323871555903810386219621141698314921801242990122055187607347802957557540263406481380099276091192328078785659672705858343262967589015808227946601757057554348370525721962144046534284819196424889498959828545060956325472819139129517777406651468171210836974370185974866814968274422492116366116008250397325142088683177752849515600402004280282012224319795857506652960917725604631593345333822406764714655027852346030342518345913208101034988086941207375558964189779584392416555064444771906781331471825561750639451987388446776851529983525851982825436672171792657625123454563970199799151029279130381943092314253252175625006209856318337118205851284044042269185904366810723141249156956949095574180258801294226628610582680725190048828130603051232161473083532174459842506327969009862986021947375857745637839446746648210003274820549831626216579717558831373545089226121864954885181151184198523401035992674934127813142041937346342495548716320374628054033137083680180174622709883688688150395098253552265234678685076027933697442981277608221072100415676375612868914340660105332063445423961730513984201494306702088294733530421333893520944330946580101485232315074393685166839678491298551975142298039194838509973139047155147014544148075469986263784287139944571500232938362659319398359796785868111776917683816864317061601661552065822687728487804143957254809432698759190579082168927798612766346314058271576563957731460415109485991856503837870519592298736840332811887883098580216408935469525815250023885134613028542860687279883793157170124655848598203519843342495388266565921984913915088308796633511284895820116263205687325007438465202183374998693092348875273908982813724570790562018815033718836005451481005326505082762565160876473141500293077103587624024828317447459238601023362326385354930383826716290175330446020066060597064086594172587465520981229621540952734297572875304191396651685394149792325116685873157858949982250373836428909878743632348557999202857840408270356930631309076912196350880991692370731201618235452554107968846088486505332385662721212839816398347912088759928663341643770356597650611420601524797872906780936413667898755327293296258997666111235016421552662193036290911807210016079113758617811106348569037397607291380376619964950306247166253340888699273419335138973685312389129792455745507152852835126161236313757875103813001327790887207334702204673283722136497340779954977418516245011819031077892239470157548580388540889832043318082935820396976745550104167890606225371433483819010851610896921832563617172264211223409727464294717868387618961878575378989405080206218031591618916371144685833236479596017022693073687076861843729922663839127754615355679255592175991043603756929924866088610175479579290256383307931067605993114219882665026801146040889497722913449764919791711921736084609146422890987921979915786677092679642577283002559710057154405188246281755461749316017278068900977967444998131828492041292488570307704175239017283970077398152493595050594085453920994916867412307785626544614560683669244617569148441145904876464743826435723889956055532699860323647271842116411254620606728897079024137342412102974055291222787086984337409671410946373170682579827079725767124639650143377840308125393208446302978376979256487752040280301241784301142915636104500202346997572746647492412768140142001378384309979717854931766375014866214766763941395359810596059423807563360864209596059820365377923389329574674324352998144546921068966646936010408993229685000242841107533769096975673477691449099247872939303855957379246170202308684831450905211806282341701329556934978973687457394271266215574635806444714798945127148764822545475852727613618693698713050713753515891381643805131032489857655903003090645682036638255577746568248622305641603021606947550462552441671426262171569049797201578636224951934137896796431506229684348282441726541801479241091677267709684918695247678527080930067298991510129495989447886791288267344629120853690702767597167362917480825349772670779490031918598547776817593240802024371761621564848286994352238653988429595924812836490236674183000297559429281732346646047964435935112773514297104301106804507907026575286201561255365721134487366705373771214103297592254410260345245070274386027212703187104427309863284072015225342638787365861726729981292527053676589958146566712559552012991726050509997838683155675496452565596218857940050889719873542958338411114083849883226489371257602443787766113844338013515645101936694911347503021270711978083337897333188556012826526294635510759024767393220894292715335497551709348694883620160101962876053701326314472114357142953708023720435745033275032063881269011886094893533585279911772075538602486878313661646791932128870126650964351070852979539639129023114724900259708958434149221806655609550619443177327037525793527921269533392622484552457446607226985004006504799971842658776365203030053532680459885920023037052289466280662454786650761071331149760347447134495983017160021930661469102740396257345582829570916123740807695094335356300262718797615939765301457638121021742346376591201707964100181685761121093637942315383755771857058077968199392897055155810446056226289228379629314991652680803258840663189974068647936948956524431530331114841247081073941685796418370019307210366225380222324496025329680557880845870873217568047397653275403099874482616947553031794509701937378674009208957026317243703597554313671535695232461756721079242657499316379359547231337492623892008553212129831465484580393587647552264952280429052859868484243241783407098261791346031741595207600128349724830776267387398336969870052845163937333242349084112152563692173517039593484781172812828250474786077872640393715362694570628697916136954061562686673473966119561008001332068670058007091643359403187169182057234907020438421905816749928342041740839655410032874471988373511759076279069398443336775390310110241289905721083053993387640606487034249767783934360491486936910621359279471211432304475665843514685626703742776615128410904324589078909968824146874018816381064037845291936442358027297712595987507854437222535906362308686442048802605035879717422921729949289013915714658843316952621316048231456450505318934111081552151107888035182219711933741061868270784501694230743277643757382165400537875422415242805736332356452509244279362268367927210454902991079445940257014691174480258399376769041184909916691632084444026166837699204852008206730071032893984762629329784727826242024311879201701977553749970848060437190846873725945304028485401660164233763860953447669285377199537061062017260905557904556936366191833238241376937035797106707023103183970503527842322008136519517554913470344912084850842760594988313058129311855105602457096903967205488657959389236147207584985172699993467592239894336398771958835889675748561021876810430810021965083982530505129600705037125160316755141784730471489698214815267069272003786415907084554671154903590680506628877713969157814226559496483920557854440049503343061547584057192407277746389946362802977792428225668341440274610678149676230212579504824349871946391884839365498880181070033015025370899289854063324266277013856581881731470543027183472269465285034928999849700504612817883126449999188008266574820958151114166394802816480896296107090209671246025629499637321002356004577219757195446859577191118912280435703286686056306120603804661747256786892116361759376567010909893434573942192165092519274516421689402471234203356463251482862704692492109451632101009642054185985275950281536458446195874994073227096250822522957795227206888175669947430418922396777684513276969567027489741338074779483305671538488825840422724784841110943554517629656526843572707477532127523250858704232036963515983130325581994128906764454269105365844871322346347302093067219880789910341484468516713174849479742421208391748554919987059047609898160766824254636481086935628846324058164187923528614467885308190741640236455875923120932969199749554532346951585696043594957778893842806820950686350247089732800732858095208512267740442238633207392560184778319978395770768746649435738644773673294202488313901942259226985208200945956624157045614523952495106649046341490808812467208063802446489332245712799046405392315686300532150522234122597260724634359509081627398204382025155713509114359046724767090127125508198039577663075410227059905337234257305571980393245027706535422679991606057761172717143582390569668683339638519010034708770797869403281587948696071478425686742409923472789379745877678148434358078823809464462531511855684609310212703118953295660565038470697599764892173204623083863097993456976761022584012112421632929266917632990709178214252552163354972278873153483085872877132972685916460932418367350469494921559889612255190584319264099127629070170197137898614821431180362067771767894822346369794545189047972314374172560260436014182965724114607722949910182155232065329787682827445839106916405090693896481162377706741100036989156602845983370985386057527261985013329544646935369184016261750276169494358280143603574604585213873649073260886016797685596583110013379247058965144924092201849621591134477109120876525519952465433699671349915108096068745726793422374322686098427141559435813437042154416325918271777617287257022964223725606562322719061336614774878785908191874874112524603529035549424473517767044883936897444055265485943298193914414479140686358595986630287101431933792924598703993083750731096103724527203612975451642839593021573001307829342506422669287955766127158690586067010516532594141086850825248036717675616652180833923050028716539668055481264365386594386065191430256808626040453115361465439322984663781404867790130395543287409319107179244178787919806614345184289410641099833384762932778618419168095748238571924019801330530585092187112258615047635459991287831449307462910643715574302215678664151657318796914274016419441799199061367855863356280310520105044653379895438611039909322049297897582820304729359420025648399540536043319851732222041689140524584115883284225977939378493911187168961486204151229847329352845783403919886885465581896826003266748732270989889886540806667029784039057840700644881721461649872074162233211272185009302870943175122229291115126260418779203297201469558225672400131691192906946469414304970278211395965711526286954089026242636152096439464168763493531463544820914301344032672848312212295580432977944626041612772339849992620614581989370541108487127490041039671023563477795660627371387996065293497964070114242843659059503609951394281253354061338392356070907144782511595007753080541685277803711535408336186015527733517676408018711631122719356210844476306086391620444414847348879220809249064987407677214215475412296240233981842543934003917137941273407767025374179276616854690348567265995164790044416178146823681905674742085275392984938009477275071369482836737339157693685946945268256569602717389081408769907413100148470917985291427605573877732211983261848711429366789539507239629999960134377080721050204421315232323774409544788145037216968801888246464604926455988239447830872665226459750417194211750899761513266977654141956819149116023031712904434710279038317875433837457266909625910398741516150199438425343528602418717562449838147735055892098956586385339733583316513046301326675784858060488387563811100390822527999318313121542452679627397497365189212124244070223397488784578732341359297897573086160258420185626066564488393397593173194515908964197428033927025776802311553020289229661305763666018869508882829463156292369437324779011939646198976539250931750067740053078864362224954158462024062363706827389604260155713567425628217345156622620901797745672093173327408805165852848964792515682006769844324519451286181542844307164391958372499167266164394622864025850558759208650102048248661273962638211246370660969009634965995175370480081613827874316144471562059653651594967715439075952310214674382553049078399942190604998864500808009294783562795841818163095828289279691997850484546331908731469656624380828174901594180059708654557417037678857798296917592976205012603598628962066395753976453369733745108512154275023658550969980839642112668018836723770483609279000824544438366726772963926674840796648851069194230493799183356217396635231811313925398313892402413357919706282766299058130367461622383639106862572269163047658606301505795496874236389272185678911064394128115049284538261400107462971640717096307902382475877821313212134517948954280369756397536614210023772482083018630640192339768093503733823925797318879358549116933006703230699250571452323882672839380836927723471537965469850579318109863986330296715664019630114654764414092073306455042821114615315546196789617349379896939180506406370639765302760110644276770684021976120136616961809075866543073769250701322350272548526574790322887202292465961128667136272924488595184501938665565301568169228445243290800661254435531327488021958953411840075100252590841529947312795212938868525427510022230837293547161656884172566254653848770446155653386288214029064730908472129489850639197068450757589573730165626417067477508861158532116950858296824670953431934482152361932135742686527954069872931087675884709485119986052163218166158821411580034140389454684977721593252333082245370257765794370485397753232582377143400761274191690206385542409497889382294037614188069946146220102204397100591591545306489243084646096067760965444590765033897686128594816852656279627232359272203906467527361110501593511661389730902341625428294853483404428808922699041824451566277329319438876566951054726867744590607699277193346861776015720167444497644509081886074354940168917963138976489735943740929079185663623843478703336162754286208343147264235897567817177729262693932259429256529935173692018280397059858801965705862625567215134212372775906501892995880369094570911485699739466417669831890446521162868320007829818203234135615732820470454010055907118473576852622977965930825376897720137140269755196893959643824195381144057532023438039305851313587314806001527830645459418869419627833410958027427202868277030365432498106500721569089077976564725818474219842146213943521380354686708848954221987377758507806042645119347300308580619899948867927015683436785788593773902308098040429255104801610531116485433187589999706106740486866973283927767910987433669520496522604388935091625983236046155258110120004559138823902272545617707048358392390778019213870012826709896837905240685464542307183417658516067631318016501685546808250696909183007108036817805314324602790401101515146687750488307838353041790953978872433495357300422108725983649078109519046302531549589858467722982888081804443487248026232771411169039076499837886585836780699877713661329872035776489376780856838462449385459773914767797869323240691133403495719971777067336126867824753622404023375602727213492559346733310471186301342770208140969074261675943735851063861465764867458241090065715033035594364244549265696646443675373562716906017053292605379582041279559495984927165612157777992590123957800755597749949894022307035982457470983044844564862686965099179761720148179726499437907401877884370423613180169833750495863771917873975247004599620568560160516500327930919479659648408017988028400299436921539091974128211060798889270983806541792954955946924974398948131426280632926350348852806609510344380042348042680542026992970584020046974860899890240574172846520417814576396893166651838519457102073762027895211676932987131556815936379446765873564466645086846373189218200853648678600812309440762955744070297830497349103804528265827860562006478409332719782096369001420750078109084312077022336955005525278036433230746221806790268576269853942242624891211679791732705041261307075940861229933736053122505714927843813788714791546498206815897127209414215677732553727084695915901449575360737955897265167513855560215879373784899347655485003402823461637808402789733600147048833133763106761926155110969252279501249660877403332922173163968600860645152008226275996886551847816118513474365185457872158947467279331963845966026623664939861113353744017965112025225081708953533052462909492781036698320603327164062232328809774537244548538565190606649039674137453168622354216471938382168436403378344693458291794656088360308323433739992025599176692809035829306014994284179398662220195891201573313483511320575545445105759983662578006667370056937552750122901979841023519606999339909053548170618022864392924875597078924305183988314877214768933857661115752002908281154159716796090251300538364620738768847670756970024170472242431316806558110827748134327331749948723721300353994134336259925109764762374776668679181700876264615841779817930614925217075349188747394562100740928104004455176242160889803056261770344786738468543225672796216617865374169878586514473171524403120087694320562418346762015681082528446192271714912380841268608176903394582063871586930032549857322245948831436383191772593634992734024521416870490034580533334371739724936067246161152072500003768209637852356751593723745544079360055197902008160070381224065085284131603951952706608592342389434100754294141434331878801286606445228010548328004999032723840531800041125628340041909255347752016861802764656775157916959512374421118276314610287158477319588395832305341230645703541828700231107349130196767329157559816753043176682926804886689242299113279134333668033670938884853698849596396407153514244418249307875684171543702234866274071701830384613432041193064600620744621197664586167205488809632314938669742986926310406786744044343639570962767683407826823501183269238307194660379060507596877271854955165877033650374038787267200566353516099064590598439261947678762528418955483180425150582596833521986155017703110341404860486672771158094072604817829321613572378474004535733277150849119110275930688903008789029047447984135024995577046328773203121139132593708039452250945164459105487750242819848824527296650885054900331441838018008261990881997044624964665896349324573855670610292018694661803267564533615212934904743135968822978383754681766674624865963427163676040934963281346138319767662540865683030536918138970100355959755479334888136167367890431175698926780718000462411364605093961413891833259742930735768156013225579592960400249771071010005618925999077862544649338299012344764764085983538530935531478070692915504111673465133915460939994930714078207888598114941796389994956504077598439665055450605348737032180367311607615577501186682501860334218349190427566047247826626423413334418707908880384033580228233459854705114946258420377158751350192241623649027449819701537660338440055307225282912295273075723103432412514927879417588618362274053567540762511535732652505361307235135611909776299359741592117431227813927462653321077719044981975175433319492507178237582859576488715912611564710446743917814164004043221655890756880969905470695709421973479513439318444975257970703856087313122318752994171506492105993828484055983824198660355389379967926374873554558297929552488592588396945124638707946807382890426544339509221460370430242147631664906811744750093254918052848526519041909380934544534173091036856508646757813817550648276540450172451894480672409754057974586831049402008621608923537942362730727077173948347158656320077688789380081467493420973545859253271356227615476331557085715640174482564126049539640304791080350744948840493126290079777540552702604606702704298399372724294114423881841657607938505889808872910185355933883710735261311564936989580698644078189695836894576978770069013076168385441094296387382639768607766157844354578235047027142476551676507078130929429935836321764300060053692494705334078826526565304291624207191863266901249079707175644805390297508918171403314056177249992985882586859184280111323689919027716477459056973588132772672806028784914203480166653490406163347561190523012289933805543084426014119065023112097768983458200242150077987301725967642358422110446053165752375722852058483380107905401278394472359119887386976896406133144756801983806557555633224569593098944141487866600453119372213444682132759847966383827220746861308338004679378059886461269960191204037849125269891288436093269263511513825755148334204531128133620766260117526370667229439071817989690081150163312439326045422837936318451093735061349658954755612127083052784487960397949692749817684458415700492709324382873821520411711375809719886949383978439078305286362616744893037256811978501545266873374247906267490961011344464890579864563874692850915302287437616398071938016291980124926422967033682834740120074473090670219168797582736047352328803883050568730234094518107154253715344720209340402649077717697650113502038105443839403145314544884184394908900294750695445606587535131910118899784187852958960614501986775905960126198734419695504275421959609248624742774488664175152837411954798872188209623363094464503372240437917574504196551075811160621187483330972795502369201116434118263604693809030580257894047677106706613557148251316890802184990281974369903206147335228349719130927845389941228310048038482301998116592874933499899082707277861990938220014933386811932683114462474048765725704960746309897725098765242962064910997449416250487675709187707802244851024465482926215908667937181115256680883652307410104088540229283173994346770533343351641291064696019844125813715564699057600149453943094354264289566022524007239457869186561631511806998900983488486552068661025622013236072817104778182740181173386559528866469480023449818563342866118836955929536996246832866561301155889421028056856424917206692893356785311904354746479803382081274630609087231831615737868677542766525558138450344569725198823354947055391565988501158758109577644328567977909866597900956646657685581831834288504545990262211242645982755040337385156641450462570635549675738602226721690540679853451688879170951743896875365273587902097322227158965077089263602397008695883648656888965962986023523431602038377404980298742901571218095846696501100525653925419518891300864122760821276511969215376365055605070741544131200313838684234550983047501699680093715236169981250209267905427502269912149555043760812557410082841729310405643089854542072768498639277652457715580806991221314980623956414206077983854492444378290978339129760465682086315914653404293656790283812343199347577876047793026007696052571308675317060160211023964145475611171289150638189793832392758546749495126950057775292959815705769337693601267678805683109350236640387436489228868634556535727345137252699684099681253283605689148000013936584902845060567620889090946407381249339198797802750046817203657958761411558063829101496363527355779513217541462259324796006784407029298985874225757692074490362588957207622764925861211554937942560358720134844860188014934979459382071019859982458515208631737305967161526495418642662358361589451960960461961086660238592315947587816992102203602784980132142612373553175158269053659366595726684620123546315462020808473219090123279538989615468140850461866535239611088879561352657391571551762678870738735851759224448307652681870506322292728800726878261671026786717570488966015942365361659496274914709050177103990754568064998214598331725785143481986196945036220092177950179098245899896448849690650805230083223656800043945264520543066447775466577122985134918454186670848260007522507863725435999630779566477187602135471531809010014331970621620141046594948035684438279685226505933129869225200667674520635365438157190741596095968187001474792930409285963350085628227359306383187394663263879587849991575461152055191508203123140806331591478053949625460861045919401967340852294591241205684833069006486188686953875480823927894814447956520691508890761132503964585691157099110410857926803397184670413477633695067545561932089873799086211755916205531989118615364112302623824801357626374031119268691321165860870898518410526232773849827362676229072471494170787595917345570804803762412724764906069854467509291352668387989312778855184038293689555755584213012907257717974867377712550680150589531137390343426018757025730017954848954886608906784153115729992552059559322940061444412009087024173428672916155581040875308283836492517778160925183833882634615771685959423914018348483822155680558238945054881240559982101233755068620719536144532864730793325508865011137045750784613857420342446405447112000709617983907072185423407036348829334459491025484387173504521338158657638136203613727994490207664612175143535595659069914144241995002820412512261245576132661689219771518159541678923414476854798891852611847760815314565150497705256230707649354041015072754164632234384634348770869067522929437642705828909273865887431235548473552018040681247157166871933403875002603695090439864504152032357901941809668468971762699779486705045041614787344357543174606379422443259659852004719025880254530877637224781210306169551658295114141511568021450847585104991583052395719380954849478733755313558806023612429817454832434110608825952692322412501493316449698851634328500925237547112790244583608702605653888045356222671879849933521456156702648226456855605522696850226075900625089387688647701578426417109710234498057326172233130420461529597910682027515936923292525371819961839703237179443820031809356607364770711477377629638507202263006038949991737435897406885831552258005993683361182965185573250557589995371314235019330138991646152499530190220835342748169107467572367456560014624686591057020317844309729397866194820122934548112624219459611375031585954819982992686949428047971264990596865314776973117804594595746326646497988316472653286348084535068300477936060821335983620580255512500167761556177549736909046541626334268924484382805007381801998358527461265492474061107254379446673640366745810826682205888520945404295432100104555419744862677293886789774010859276729763986629748886936848033705110537304558326735707832479057206454322480110471495602934758287933377043282306113252515965013876177045028033714989230928253678161566985489922355178744996890006165812290894815289825756736298868825032065137680821793517838987100012509570815246280890493613475639112001338670185083417969834123206912140144124124603372469913542200976677850824485723379308654176742443831078266194237676655010692383729053196012952880508523885083346853865965869181385070568816877740377423869097386389688378314250138294820113948856076758238857906643449532363879524932551143718425988128474327097413702458574002487146764603241758149822782250312003345771989749195396231011846838140628113466162389559667516648992268131160550657176978049632719656417901935580383395451291302138627772505464921756044438908968278178448938973872734146061286113240059840593064093831446865601539621752710234170879311967950652542599212618091432726234286926611242306188782578649693901172347572652523517607377559486794935158798948659227212116567937149632810077619690414758111698550864576225244018876846632022321889258562821306182565100960092496119065947862690071983182564829304463590466411377505400795916868494762406522755876858181351579342758051994698442211315322165434864337154999692578689268828584936755275764486637356184829355717749798232423951064774073632863631899374095565013475691417856401062501723258531260183586823435352474698999750146611430560550916995254887960421585922659411994852777650773489042196351884254225899941589327924143531418835626268320523158341622904338481798523561968998475667726526405147502390172618433391461471052219934656375668901465975548794691776463342580376129517395966039160421674906253912580974972737847911950847760515032946267951770813523169841510491321099258445110707968756263196508399500407070458500557222346578924688481841900639456582637032147057791906835004421322778805057137040797118010722014614808106183882548829826423799097962379044293054823289485785302434957716611034535894996086938324646063855802407272254546645422519069132441919043135642018530083879004197444710310103933189911236155541481947111324904147505307127524342301438859643039282198275073077048172172516352787716830170300965934192103978747382725467511380379267631671363029757832849753119580016838085267870513170451875064618546726040545872379325481412591313836474150181649304882553353231116514584562279093023039589327824830947283815089912284958812454853629399660816461108129374860937933206716133820542891639147618632917831707943547258368164767675698594996793799322960401450764494070855035199525361951667206451062534857739431644617920054986544037019556326214293741143083709238854580817554839639857412201713689130458490092480473025636596928781675773473044233132964559914081997096047305420594573364368981772332075467363950255488217954911890348710338999840027855073486180352843691076362249012355826092611201031354556267803846473826683034199481668970767419267271022310766103640698701749794067278719461578578614290983040000339743728425474469111891748707820784506593050976637378865134254191563145758524183687038260294294450520043378714954301338256765467078689407809348032784226071189984610628648622360512296313613419338759883367826290691311997792089096614403434973482621262500998074992997882450781206455029933428644316174166816063686886547784201950704341116541190505101856621501140079559578423444325177919393099307010106612580245185516471306058082435287398881337747885802293744425606955472222063036785123171527267826075685894765196291877981132984998450115930601929257405012593796429839006042869629812441395738118865184387759663330311380661051642718330016913533012630370180152934132134037713080922762945714031531336695394729001846489893692883562572577230104402231769373379004598233687896353743490735993477991065253884138010716856476575631316608940292050870000926199393003348451783349191160928235938542991038770682303891944398849161807302675124421661761268412456033031271969617140755076003073833613410766263812798142521595164373827176178256106207952033514093051351764023712499172093658018497902906334347445910482633432237005054529210007230894294801705956894726143717662688356783483891616327404455311223268188713795145061026834431452390382970551893488810785383070002008588514420185001631962423817597039004035645827547313957028835986182424412224828517013968786062776274876532329752292089714144432698797212123363720517634235336882689215095521445386315643961011764206044356255076511697213239993415951890242897965997292558477396571971109952157912727602978905699413491987250414010705321036080448916398939474910764113944295310015950556289391367103658193547008138485278572808976196015666086222659603483615069180249340455252714635559684742980560809781869719052382255126839332824470360965287668717506309118363582430846203779361976682122115116031773883596991884796713320788794028122265575536953739803717596117888398790320474412103487766373574081682743723042509523338989260784660972669692956571670199088553267707763187777675549807363112888475852892429508058295601342051693067552319850583930745049233382165700642225132329632211183756627553607182485723990512061438516342072231707322317657949113774091458440211969531260652709793119642732788793349921819450941732472306784984283893029203086503064529436095335412484097728375831449489510419968788785102005188599393201715529999736997903121287641371336296738144017475234750794001094838433843861026912497381847233259159427191735123510041573516839020660808998668801957034458521509428795337456565627453345991691049655390676430214961117846974853722493425604847160198694018490035416157182596889563847554857836615129021288995875800645013741745463452543879459755375527465915350567979506818716587730837417631724672274144067927146716314072357469699322584778783989559460016048906629150655051324283095138822251746635940772440924521391675636405840399560985032847536532406152605435029937697610679267723467326575646815819687735728631663334038857310200836293938256393965824421230953813764465519943280306161393542849474862493679640568874603150654045947548582294016251554218934203497334667133208615329884647310666092167028428857772781415667934686831046489094686090108684899348094911005299312829559718304264410118522057326397775007986519911554019499826622074864658538098193482951622403180160828635710811821713159626609523542028932145057956634079590146825399632811017007847772047891178352108278283126721566234730693931141874536923493837739408424502243623630846694732943853703765631062591034158226342956893234968463718670743309006396363545810297615642070860353200522543618240558869932143273147152321973285520924864094657133515156460366115493290943965778641587309671910762314281124213857646956462809559400920370078725660087547787402477565058253275456433214475512317633230820459471667495373735855496870962570096604210019717091712713393937277342626705885590446739880724443271768367216081331041269639522056815535878154680682693100231762333379380489718632827336884378372246942672949671019580635991459206058223357054768440637983424177810794857841961676178486402362906006050169143094795462379594975258249234200251804555146321651517484206265010044650266572169646939130872329042739269781354333488975085758937146999395421454676978618635870823036526409469114644491803563456911459744949256796678293784850177566861669521088223117205055102023254273417756406082424407276430243272894025872589228557404132094327007408255539304425798014275201347440123321828711171661787835349846115180706292030827830380164725760349337143929508302267554577656523858959622212190679638853618411746554925900409694043082008997630874308383054567987874665007984731377354922644483238370233270748615794477389680080674072748758330338926961196031184082712430797106488606185306507539928849291031869825551715969416369569560358466729260472461431169473811235080369569964627119030610682954017990086993169001947184158870878268001983611532315523080346566233873159428229828407327988854217860410420721769175284782446917278678492527231433452973061486616235667642005360964874393236679854978585605687379194867389526109540971861553343120518506832040606227590505538431897204351084065919402099137964736007642798735397106989039430721853619199128073757839391109642445349876223300220694654954904140587465394697125168737111206718304577058073484949462220947426091691990032721144708941783424518362407942902433085473403758728542127981068170783567195010582069395218687255836090155980107935541395286999562455348497134821150263662199357533754602422338880447676547186479294956427693890212636643918711570932549256237183708990834769289057440721018401322855313764580210403108420849353884553751440071412266006505603780760656280423087546186086404371404969052490159699493188121810833196833801418964875838125893693249946853459267323603666681406977909752436987553439701153016261344267653652609998215448550318114086723227371744746866137918115598739442775832969978562449025692998065196071992735747980768444755192036437573352528090583187298537654575321300799484464475739085331725561105677001927101969167858855738508046242059502915707396340623992665873960914361692055098621049878632157275100730824311744760902792020479461736391876588635233140677748186939070536835660939056664799070145866803262768091479037420708671796216082181804751204756311370175951805777961290223553445933280082954267249725503325327852032840143006812937911637271660275126634918781149105516029037321171741388696982484713157844715336137463720249092542621694574492034392914853627723444285926320454109613908938296559701774644564545007438787090207098520453896906529325698204689979534134935050489551863493158519800635206468989536424155012630736531865207723764712838583126871594816362835806430579118497940960010983027219920700768447111624475619036970453770619546866337720054176046712205580195049361005561528194086120779834307229357337501060389511125611200319191798021393646567513920446826707130489538317574870068137543382775565521581071426131139449108559135697505510888692060565748709659180387486442189293711032820900261263669543752993711914674162193927875971522656518045920221113890689127291675415162259159830240236436068684165620597665737624073923958879632465584722257746227558511148533835637919065918313233496963353197271000309874499688490417099091041580441468897523631504831594410537622922893091489666448264117690009400506906437879104967232818144006708035693378314831225692292456156135116476015036465970815108811147384321270792758123792134267764509627801729741716920036770140531278318405634818401786519054239800193396612596121473938218780513716035335996594216290147231852046125367968824077745647167820300441578066341470227712151456137628901802506091778448485058355852871943099549771938970361636665591609211746143564334601137501107027106515124051403111095078823806781057782641317890341254539989716099516569382316245440126714514983699995767246502681319832988340403088203844054320524223391439066877580314325714969869671630989518380624883319823986359621652621831712757470786727246587048940504394585297384877738143405894388863068662829819092177338889358467070725092809315580754395475242111100084736270152817574045286045933057661941776808029888385042790979401635596260320220161113255681451555676656222910891650490511596390316695975026746141044466779873487026658385697848775466060730237829118128345871622406430807652433057603447792724341673769708596695302844098732895108462303977969803027817773350873324555721618511155544190726178432595628204506222209182322697813558338191431769826238226130813114945659563191292474239393771617344759207878958727272092973927603891921080013433582178651119165118569149574992284385354793143282673302143590206745568165473791991932515172431889252065517703270854635285999885980732897500637621057315837989043287757669075972466144953132834246229953756917795865250673757583768487523747781084493404888157925835283842620097466890124877160610601783686627730901229276851772377050473344074356625376929775234929488335382109544520689130428201447502605449207646988677801070374210676363414403922193473868429420452231990644179663341062687176503595957668246233700945928917818839368517453304931697525015398375135730821632117273899728882986982461088925467990860310882835517791051616474865726919679243054855554796227915719931253459879644477015664461006442875991791886144899266616497621471893435410166010425615437554351147267407552289717069936677422943024790599283376414623530771241753518899660917549596688933940821404156067408626271278857257168247034092740573209241324651237148726409287917800104004880598257498595117105849679459101140067570671350920376636195877564334162728886084967084646175734332676966959688124246705374734972850127968937142096294835902229621450208689888958968894085159834685907948974417087469648687316718294789514378387843931782759472929428390567165582718216504379278317286194407575923420289001813417526651241041403743361207164356923695052736792853464913626671492962013077752998907645561535702091001257076903330369229156009334098058747453044539975289991649190726669476725638461048541600736867091022168296858167538515466648718803342333517484631796659432237480733233588641538585737552394369124243762017043009369498357666741762077213298335591345596301241855035531585312410618182601188844389197096409508324406023968784995830373124732704759492045956720305279882755681556696719090273288220494277849175302041985285912828342670458307131931184482125775337123723982791742938735279504356030360300111481394469673955919787517007629920725465399400853380997128541840979843266588756510095912903722996021441744501460295663575341144663590571448328636259262677120486077829470566192039131789034580168771058003658235613575593637128664343672589544679830252684565898040401585321646906053765175346177792597764820490526613259013488413581390571739598899942724463052177917748561755955798709972447905515898249495352136421495073847374724543713123333253287771154088052374622677077999026743023080212861962066410038041811530970316593320344846388573173273206004051234025301647317550093922467134093868575160997407135754851889120044336508559992011800719571994297198976576993284872010676316718613777757583831068824055468245416184605575722260007683385196358831985173266653406375097931040383343601328104959568852396708780293304801557360374258150114385491537960961691063325878632925409817809621006363105534998268493556055192744377928598732347382316201544089069060171111800021397416998656787869257484545929765607021952879649551741101742141148757948395340106172811745419592013239198709043948590644401958095848946481835705662767385573058006705073994339479420534816526672658978558382561128403868448247159002720379747637106012262480142315627454664579734104564550850711262213201203644744932877932729813419860841455765298473326010823285739165980115966760100443713332136872764352133550345675897304532919799159366780827373162965324739138059571521545428391464770612803721387497854848727312475890693712470927340695461647196631614179949206240768518001525238105567130988546912259145802547587723499872455703457064450197251489475065646525045499044582261331001696475554140378116331115790664577742322076709578563119508273289727246700446837178022402268619814882973429053901803163765137866628461887016966960374897534565383532323666235815688011536117097648941642210935036140651402445850437358131643207873089784820859049025576322843501352978010782828925070065827991831880964229380373259839586743085324072366903044674416448532716726897884916246356060204183387952276364389543844824875143928030377182214213191805071497416727065513509187231605074970898293373822686388222722068890158762341598109155706076855186926724782106025791915465202911419159185988210281947774665871064728996564025338343633145983241905571235616503536182324512271664676437808666789239870573309003806191597102075027138791264727054897091389539058037080026878300064039059018543259821604784237085805981652612172543019931665680070759324641547533528976915306352974595113454148976331716903664399661305543854611014232343700460394419966376823306867118140872075771058779868684584381800898805157232572667924402355614362984803587609986563426623512242992287628686076077572736270337135695894413073727267232563482303641621346400049455584460979733377088387588506144605071010147027059778220667018434124045432683671269046539531549041657557362533551067110413332454926656142142254482821243642285280842057807957808781186094817859453879238989973132420045392579574353198167602141349337824519890056437544085277233071419143942999148748112550840785895458704767046885806470721438762014964448744759137844409261126614294276462080162084499101371998097104803296559646708373685398826975759785161073847800648880339214659737101524429012174091259955431513059029124764924868885243163025732712651494275292612233833091586299992346306231091212442903530056281583299102967757896214312093797466366105201789878213625687597760102707851965462137255461672691858603660862266509916407209090935567272461317502193915022939267472689938142970856201534361365127278439508681635956730294545461955134686731493151379559382477379524120557324042608382265452892836355691187226090682201439935325186112090420648439956660266282333467308859704678599115604701205910421972513001639374859555213648277336037388958219600725560310969446767891003711037464862742370861233112525688264296384754041547844751323474164690976022486548742752387888057810440948514683875953445453177050694193873710876364065486970827562964160814412188171575041224755924965630038170346487629965234423441527286173091835617142557541886601736130794235995370023893292106467056435983823510146572512272719009692991450516809557711011192129826775186403081882809790611880646593468109997674597022817931061971769002477917085958150838695935229160759127025196281028271565441607151976745541017183045264131078139082509012318149990100979825793506964660929340108024085629404728171022769650199549454036028236494304035806163272125271547599395684087645065525687468181600324349969715164554360798071993044136543251524707537684932501932419964238038321154903525777162156021883498167649445600613473175318644574616068492969527964370053841163824371821045686744556945117372361375752522737506597476725236796660755725891054107962904003094832256398352854612333053902099301933366448316358412106284195996883737119553003067578644452321740703230072100008877135379804103105161385341374127879533430988796565706836705038560724727555382794971755388739114720178065112971273765942697626001454135461361215370803751427776498710731619960593835563711418073047047973658001483674211011580183167323272048246860935384307596773938089433971616696587633908375815482323330020909843463638312641584176819116191051699316400721485850740242361873541672681402529307598718411102227998051360860511494633120125796096332316517487734830953427335348816219061806466951437422785571810986009657750023545613993656960324656405766012811676871100150493934757651076584024656224647366059096798751522708293148329153712624246935579335945294943367196403206047326674448275363039906392386677610033031742335129884761065547195422359819281731379906792593790866687354874600875554833630085394396815426244726833031353884548496923632259203115593082667625380150081420290952351929668614291631248936271650819410725238115137714121346538907680762468270962292828620041648950767793596530542418593801739445203394830303994844975068114727596203958005905504058178593145712711436634290586432067955436050455262746775670798225771646071010330735762071512307810772352117362366275174389260591032078095992760787460639392916474359645074807212962132819802423038751041984744256725864575600997095210980805348331996966338538517261373674294687430896757907344287827588375830191334944422086133371909164957187374027100389976157588167488385022356804614427603841980563223566093074169327437441605364205218701263495574603076585088679522058989577562798984849859782584889074942445318668380920431260898528129814752934865659217227700511267479331959339805626969719911850999475350905502761286992060627290385853891124803597276402311333391907706468592891111937459403980608601980115669994433924523394256965358011413764371158505938726182216985773900436683738595211248704899359753191735609891997970932796428697825052100944149381732414751962665961515297994482004628033624277472720456407704361348111867643337808951960438714508456969512261016442795126888938894461440832002265527946832259809216962049981392430730899475190320245302543657700497804920020715904568711578974475141695582055654608676788778955749487319007699563042201898205044121655978088974504540346616870677141352160106091467261624055362274379599111192337662751494826149560557025233860975260171167425186939122713278927405960992712782281909640399224532699142333427865645296190800768712370885157884181795539924714331202528803091889885548279096817250727223987332527307725905173792737633903974311499468212601283397267069942251456440346655494460232063245163082467865822339089559016017664881065691637578158190915263504217287073970057116505870326083013516896901689081839532181123702123724835918172802827744513336210329197701360726156332417599013066406409168181971475060488454835494913899498970679665840469531646703022701768422727349767928340174055567429812146833486319183603671545512951161840058531593947447318367262686006063463465437416499560401438443666378826437574329453145557061014523859712956928333863831543701207825298959125671035388079938801088139864537331565214203160688030609353327440109133078063366878538028472292589839551356980080848462856973917184219214980093636129035039026553677366430134346809376630529701036529263651560949073420171609639483324057324613841082532678546444875799544340077850984733032401673192973318885260013396798662782675014313517630730025704000606076274830619411535865244636199775781246369422198303016250301099459272079178205390862987389650368629845179377405062328392909196982159963070984285959018328082485260246298157987366961607119037223084222526784239620010530339026250176609547581331712266890055834536598613334612198041093698451724003463281905870545456659824285068595762455222393718087717487235081446150972282368932097820044967003339070177973888294692274626180462450845298932710066772777830217451779738661035872078703642053082399799486287023244774569104213654783409962405375345197662546693941126067617356183262460110185186909763589519655520743455436548327611892296764559592838273557522888844156065662513175307324449960895815804467036368932522299180619623650609689473660125747569501837681232924242343513823551435569964479751269815691973942260286150995361676896032996405489036718102158634502117221027275401229023707593984375579520836679020064748419416970198384499777139006661962690079251445062487054287443957153998578888110600694160572064517652256278875709705559376651103529067065592194543936059053359123135131887497364621064392634805424832818492339153938024440490542800182599658417335251439507513207570484807704269216206957734181035195954707275501145738883037485801484273190258389344121063965843212859615358439769565046703483227673158870214047094454179219878906006809812192753055508399790100022399052305342765504007729538362036260811960698844963476123339114813533387772087765475662775833725624103306267530776147401632861325570756245834056316082073879820788731670652558075816157069618503393291179160845151791727106413815122315123492310501006390150486675328023005804638003929101859016882916111604414663562349571702159987231198688495010627606661563777113181808268791056243557666731815213747793512194793899532253251371638594542624564475918351425720952043317993133517417718645774909560189776340502481447131787775596277861652937196394012716454367344502474709283839996479106178749640276320351732621150811589867565432752392200559089871890226393472678690810725243015073946912336467399158617391291808418155334950033760970571557537348434864328320207478116200721256879703652927724845775209630175113951936061362153811543896030107302213076388841944669171410490921785455733843350155653366617732753250560070510832684628989063898734310144921238825584573127817316245848744051197142072247914775717699122086117793332177576126320327667415245618262923520008520117726384093277030903045327108120474814192599184493363345156148250613693654703386053353611664104771293927726544004982236230295738928171158992839848601177204991940874496119137429928710264543842539696155742518145272678961405850999287374051752245481078277313985941490962469873127098344050341065702619444426315037811041291838051170128764799963671515024176885138773370921021778917798178963242134842538961048660184270121104541041983737375376498850859864969220771855576146342566873787459139932211928208815041657882632763308052163285266427989275326056183236466726913887647631867675940643606646003047685385226708869573996662818536985539544579643271269478710574446782946191434810244588335608514511421991331411272132360119948214108517938096305488190890354668566092975484516880920860540763378461599817737220444554792627654487414281223384670397965271288764881711827005341396629312921204221555132646832485692708612951084970728772390276082845967679803154293723635824489481113781118466701020141442265336164388140691620928005055182836013435310485067597586679067253026910099355734858563781723026705184733396413976778914384234810076770074967233080996679785825487966766519937940635226525611900568315065710392973266859569193416639254783578294469090282641677797720813903942492858146693925527396062057149031489228847432298421284612343273068961256297126908164514211428019684228490000905060718790025565671066944862410249876613036804596456050428125853157680570279430960804071785678838880218904796675164108854812943865887642051505162850609305212690514880233041791694893017790066755353374377471062497363244698272504215097784256889491354355430550003121137971678485987190999438854418045420709126777399557475314795108474311046931310230322304569662036847495827566558896324656845891362569359008478515564082494123645369923912715209445716085773373410393077079575599143415547971458148526362158372867687127779902244770443175377019044861414557747691058723683673362612421627349772957860247724347947627314276117223676631829210519158584265257262078733671436001275528979064928746906591633433099424228016944428059710636184816007876716225884296755407866314492714239785921468514847957592520021637610139194264208586308213135800061068753587919187436490776074609145185088984455848249248309095735897990377700071458509737827516694480584989175234256397593242115587431734450824852100697638930558731159305119427793070479283571852470408122505293973660512514896069426969851680091656994374554017077310140482185507671825116489231261728520267470313921352577906098641449391883724605408392717345182321431317206295326182279245628629387031705480003522003955436177223389671822971817152707939574036237423355069642876017005336585420267036532421147441363183893137903756028192287064589469314959853870578012291652322377501205148693512783022467826395810785821498686823913274264756556958795380363724552145906295666465303569981973000755666381665620199573008738195834808972580682944540789061022810394428170622836237015234702298723380974088725082173477143277543084261096758870177086345299462205148561806599592811685470673500621474811684762607300369506613400416631290851552317603337139312417162899873843873780732110293293002036114731750702044065246540346338404805498488118934012103005877204741071589157585424090971691881711769254350025288950986704163927999194992981071607389291904469211607401727184750644764305188834968348346960055718482761838236574175112453894430372801592943236856278748973271999962418440702914659042389180909651376570573881173817400747534840577483651658807637161959314925205257641973851135557627817771166035558164380931271558176501529761239012031370161313695225185297008491210247133094544799783863087565597779093784710964527745161759644045805584323296577122174344157230944684845349997168478726668940500739232890907947649597305678224775917155497091023084523220406412919876780637612275161876882127139464687304031933918626942195177879785442697295774921844096972270775757821556927359067397743501563758461504897966759523167616034649031933786163069218784491701007931822307258758961940218618755925236896985817215881168230004335405861791076775361673015850798925548631294177944264050188573667236898785089197270562924996092124781027582936445426064869058180476326093683159557883717253654174809406991034146893101197735630819869431543399290028270489840698058152845481346780034431305465828629188574669380503072908544432310681292959405007145608384666243159585358902590629789602161150600763520634725261810781439305680410220522817390591319279885166804070914613442863230146512537400568442073015206934050067140900652199427922097780770090704734853658932977312445432144613034179530762105202075762437599126243403422878464961473937433232586196691176407466329515424063645356491309165461592234069469268034133613195944107094615008129042039210346394754502082140150849856167370143749750037578964620297492204515549734060758053869456670674081498374569068434169348894610830503929546688189519711533102359127344525901557042635321417589777562165384853020409008462893213210514705807816636706890234966111218315961380854332493827455716977217634555004248428150790512503649844669388135108778231639074867388929838423143319690797158191091236175173018539584416676389812670280113224742148756631385836924367825863015171874312231421186039398314491601755127350697853209118697993143095341029134891546662588816586906804813612855840318383309981631447058668424901480990948501145369850135041769402817789170266917163637518796870069479273955968440851595240045598805882434542071407841295016241563020541166677156099002853008836602135366857823867254166576495656987898769831079576172768615372040401858278911626566286113115789428056643848721408338424858735617728471273965604266296896213867417275991609373149983015044183239739401226611810342419602123956120445490055138216394618471372779379594847497590323946442168022000814058246645274861505388597409187372126429783155848689450967850801497427798238352989107714569554278174655212881722728839126324717530558763631308965245769154680901922928297612034319713697302504765221544071485844713760171620951483023906019612059156782732839832669075671922121403707950364287208134650014571435838142597456489980300348215000060886767212610802894348774198630570732979554784087278480634433021318927604846807970485724433847074103819177074347621776328993842112691110735315271995860530096590601678785370555880182520722517613843811652922254306461224126308129069986989830502701820200431907692359597047031573749198998870357430734089816893604897062106051668441057803147209924789380368783919864186691835348570706078326382980705818251839397034410427945325823946048557874017397501225383867905714701580693571713130280168757714601988393473606994880378695399422366759013170872361859235710483079846680109125033454362639914804885532499665473526800656179095701912927148942728374413086822001708723550887021930106155841967841470645497839824271466790765826068575571993850794619545193803281416406180091428552369591232278645814904555149675480692785688979906993389571426206607360349689687457953134476856076351417533393861054125398415075876220417534411147207381276357332609355060998741078548541349276147190579830856866199166051942420130933053438837182808932593652079788294686714705190949385259853655960785292664703418252859823239330890457297480999703232877300272749666239952967008797027345855515703238481338246245142323935584276864368020921132452137538662094008262522105919296386422021747031778634567584500112312840091524962796978398630654201333900833567319862398052773212306553987872927412494324620613969664643486257408072045810635824367788182888775845771718117530081754583369039290619003966408691278659041279904830442692032242526251648023141913020169893605528170436636094406525306467492211602532535382061750487857235419856248654405295593351173622780259749093487630242889735680959709554063499711690859030222329023073277942350567396779744383711952741684037453693152197641201498346626839819717304649288513873012089831587577235021677882087671033992838852430997729860485682708729389906090473227599668061373893589325625344634600169403939984617397003821887035053310049869653292162959685577533794295708453972753453733920216326803462431579912886898635139941993733787830059910361169025251426972784486954379410792540764271622843874766315069166760668201575423634584097504204674068932883665622275139063392754809612107774976408615305856161739680587913019810619859330755852833073965691813170688452584231166123901377586958078969358766816611385826453733705693349226834169058123901073631029574050116385413443398227391732846164249593647878889703350861897363998252699488051500076120476824461336637620217565234978949868096295270194866512908561194366445721356366167003346456391928466490415541984790468401244194668531593265316067543731017199809016045381763701587949387856526800296642002249715826593341889312660885390531958397182720237539072222423460874825334690350126960566393879945067195285622257846861049492562924913387422458757937378622209088130399173516509324146109217453116788471081703730261217168328529170655214215264834917361978786436799019931723531615975209447449582624775691971378089115373666566573085008915298219805344010882616170270364168450875032830580756304754393702034065967993120123122492064716975457184463415781391058502487974395649430705573102543202234629785270906411904474898936999963845081531816488915109949561368063015334739204531400621414608076340778588288554614503790969457971658234553460737668397810329640788442478581770633821296910072507968090817521941318597443989125979712816770165356536369501497916328414207106539287416118277098837922588869825122836157942240553600114481308057952714705112707920759383649375694913560019319074486323779420825955404927941625699503980279610192263543374806249477541851066345143508351249188140594466455847694398057224492479045149797801811793018116196304709205832987258163054073615413552116258346272852698320349885542415035009141197621089238106562014816730211630753173200791505287610924206690297207326673850659551444287803993366059573882746791135392837249490240981517280757085069497763377837201771248717378960243288681807327812817891489742344073512828954724522128179445027083019609833684149883966623211570597655178059538835103003931149925072830331703062485330544744918538167047839328577480649293488654098826577000136910169570923860147731956945047761697359422437416226315286360792943991213504921753105919248278467112299593058530885066535765499613039594443113316483603364132539353600461220744055712031966774973508908653192597963004871873554407606507544388666405896908653415561698772086790719101871500027046048896856852737491369237793514798015042333804880108836655415438189600855856640298625696009643271505485254281575292127792971658464197774520879579813609945221150088515765144636895719504756152939178578048714268516648496569679079768656923315362397137501270604405328614079883864375304568331002785973513777248000508037119714557294566734729881030514919517631947588711464770988046058624441805188482563797267067569931293206748050333383268398434634681620045588864965495035607662719955025627655777964766435362848707555198193523000290204147503815628624082845069277146709670590813707866847734471951745819268080801766308418574485663067219313799709671630826837598624090903494357370866786431458327332760576326548994181253767670106809409130783661959982446782705333400624126420746038250301178695934362106384497318459073956819779518360836558084812765395635817850448432983794281658310908290342065071583380333387418551974554401266324410426206373349969225632226461523909407128023376339111882551308480177861362207403861682966092743838082341163331115466825880757981593744040288180529711780205448627103812565302021663953330367810204332425697030516812401058234993157078820125633245234755409210452217136319464880338148552010066326046104789022986780880443461274739138403041953710755854472444627310719204279444184880788707959894945440377090171736268668556010843538003886732240180089351642488520805363532936542762527146185319306415317267188441215332388096172822149997004563757308593317003491417892372359265011754720373612263803151438585742652477857261703929839024643786757459472323871428458260525471095884175671018298462822843437611433138217282693291064776037499636352067440885666189798866560051758825524826563634406166177819819861765411796412574780422228081218189222386489073817008574867929230456171857404032176320834517575192249581644388977419405202049304555806826438577242677310545167252743717430421520676979650864692423302690652851292075281242692646537651304800609512539937851748355338362628658696524447370242041504438984400771156367898351675420991042956595771637601666025464282534977870048004967259680613315929589860843868821073812491775436043822345852359582479413432138382321912038696942116202224278141505009369990537519668782100083671435490672574073120562652956135753997446316727438486255422638581246745438693716417437848585770616282672914100939969129706963373361391136141213235128006489272655806118051302324364934757326721685416013310560491884079734253542024002490012548364739717010105678162043211723839353287853203068916673053491944296527380435605443145307555002359309078513779203801653366975217253025317804629307252946577898593817360599490679386309201491381925989431541275511531491332274590408000638016358426558400310081383662152144383818606905994753284772554552108199507508099635718663190111020183069035308627562941368199501102493179094730867151252428303734108809292182984076097280802961223699932045249746971685027089308501643402437411938689926497388339826890583699058213492277671796289787886363605987910723275071708703754111649261593415043565596136135239761051902980630472356096856680888380504417995415277638320228087830980833416521486672217001735648647667763820394881608897318930937783859603726567396827695606356040876594384555191546086158046482354481264421411219082096827700803091314265520483607084880382630467728955152966687227319881285738916802948969541378495284191856877195665224804590052110697803936288206161495432695811472577862747790139745015415149894175647538118478157688505403967961034746891247415782096806459333369792261279534361920653105616531133546472536747049574522289887965930518621223062502767423560926090819265689380760649656851899743937366961433840272012303966701461287877450673245864581868075093357686025555485592250594195655210170164434835154344964180307812902836113534900025792404458560944561833890776602493849971597196308258608845953933544022449468158182185002102922466081222651306297243173523038416154047534770767616157241197894685079191371776835099283404775180857271495581045895593266018134168673433362707910822795147336519873922056151876574824764206073347532410677889291346512718036703823146637679270118043583447912324324626603375768454653038214693292007038538861662668299895989389474951296020084567906922567832041547949453060118337128495369871468518601519303151350608990728107365507045524696419926497238233850690380960663975710906432477302940599615128090580065375506915375289491643624507185977518491564820273808240798142704475790213237642108713519061780048119661617387238423078349997680254962142881179900610690534796811498755917697176066022184340525877901333701876408466602150834003770351689930626536488564176675528584893843267474933163584348018819639490343494051514359818440976301661492057736311469519437688321981359341918756652991670415620116917130078710628289936856877469330296530196145711924282524572698345374960062888890860520848974049205962285037854317701455002695128953304781129250914018128771888354325147249109658509146749366956644401921455573061995817723371863465535329229981680537836781052730492221521346256289261560173464759076754200089727679979699100937450985182471085750173463074374188081249864703196622940430358473063598659086858833458144146177560151697456353311361366626075087577943739842831803241016605272666118843662271493589869168958457749290522252359588672681242031569355840810816306819222699506141317988564554833124555593002782933712488861198388606601113676474528033405078486855570854063387748951771654429709649837689427317148653979607576572041964954443765340582078549145609789038203261359187909999737245431591582973291453720350591173546683195535651672010668727077914711739571291868119714112224808415881180040840118349408151554021325231534240997830100005604966318677232867237354412967845849289094441229198891421845024379692183860522303273703272745468214817651961611948868533734942437464982633560850335441775849446224342179500548708652804399454955925035473677137975823785555715463710951468807441619723703911820060926896836447353487148391112685333304246328079615050195788620958617487200405220542078872400133348757660115422507056901606990152056136936395630617414548617421576386207443049441559169227472881608652106291096658078241698904030231776337412323773984947551404393226722911247484741330634675063086702203672250699948224421253305753737068307304892360193366163414929153040339655712937320937276092034127407502991076046370773367179006824741493119586843976584505751669513391514088320181422488171860890276162211231720116335836975577782019048846771159151815397211620239278144588180161115430681565770892214106294316697464931748540994455993716584203036072054325706086285841676231011340747284900886531843551900213859736228905111021452161845801280594039439730791209525689484223893220424549184981311927697214438856688436944470772066963661904723713651905713520676424788329061723834841777547741016277517595292692794096260976545175905605346967219276092525862959470684001180327683392410785672673115798354444208494570167355300349942899000878633657335007345570656932136744866695609368862071283974922037341218481176910938499634606297713456039888435788851503552645083852081590280512890911752220523145960456813584417875924568617181111173678978655269118592618817155280186306414400778763774919879605596878285116570031227360608347714345662039103411794226501753972370765389041625799328045231010846226222157829195314409071173119618359266049661592196978618332872912392807723868760307322598844265697369134014871643491067808004860866624695341264723854025639173482078809897666755359944805150612991524151205674967075923086876735418421926923955129774634809958720646467748916971360694789990350920973215973105963996684723235086704058344884273157785094368365226940383214937881422680028974944489041657685874713456392812278275106949105749978572717087375400015645894716254960210672548259804271932857470757396857437613174320751346764770259973310921306861695933277578558759730338058482305106980298965212474955353885062191497302227274922743321621310758353141187320914608609971618986624585842512400429558356259244283192499212534951235865463308951509549582267167488430725920930134992032908757135327535316463748671507016791996290558874143584727835783271212228176222404440271986815604483319649765951159237331696093240144357298802844734349799867827201539567129971757269376081166356115159330159817348856753583387570684488487595948659762858189065094168423010211681057961346851041815176689131570486948377577579449140890874296674342375893753410017104908672483902067268116976934467557026742449040025651132218181694862437514470263923591216382269787054336593900473049949344708277062545455606506083346063861503631226388938832727608819187703619095253816516469822503471253563391569089920983388685134059322640165519850437471268036921831802979579095082822873665792535216521948223798137021489351851887965427518698334228993435115784087925313005867066112752310817094140507576435942128182362841197961640945835394396691875644479796826301978935033513415760461324302488111252676596043316769143527372029992480837322160932522847391328325279411648481073805573788708263885157266209925673896043902782869512981784103438737068684362287711070115052828790211225445375057602373106393456456342994828072157638663046559726112916713751942040706381043087642910538050047144433795682230995076227030270887425218065399317486625117493329585146261144228175520374914937875551536298753453438410851751094615448689599285541119017777518139982941510138760510059986941078979500104574295915928630093555979791000905518322022146064480828427567476188170013097586138390085861322392001621098684921245407798181389279503213443713768639851184771783591185328388964440326357795041908893455431262256782180168637686798167487670959028352036874101737483236257108815596032370855276374815967353044459562013805771679747580960983229626145109184954596507261478354698981164167978679476006895837305358792766851176047371123361281272849795786517776873338316097559287255994360287045262953319282954617407640135775455988259278895041887083814304088086920001475072294715543734814462631795557265885081630388646146151750541110239622506854689049107757851342952865188017611247765905492300034306754735440131507551301246476070581556922071855908068006070400902713810565525155102992480802953017778146982970833331641169403249737902498504413358417460407772216946473818675178270235662744506457395937247772465409931414400611197263387801655980743807191472530906539356777109813125154342660973309940503773665330555075836889183905156567104553455645053720006422883449742363586117891723656408134969020291795623959323424988870014087863386277198966479063791817262791052739190962718103766231209245554175340837457367445672178396043088997104621620843473481244388079096243669498590870670238148454754096601334670068338715343550625826092715055848130799460237541072535669474720346847204549287260224748108390999608668698811859123899305378657322347394097446620726900423442921150447078625041141971220271207754749368172161071229222153593054196556115004713289580253568293739893516431303852314172024955701742342629426781001644843333633343643319578066472992805339872174230298738576815328065456139228603825241396081219759342007627208624182491221544826843538770973525934201853269941770502947543505029174265810612881767560659402887626678681325675545311279903413731792123008453906056712981487315006057081585651455661720777008759723120285796671667950406878061085593722823126394895671740161185160517388130791774952823921449288008439765780359937198178440053293523729476556532697114853307256580522591007985673273201625572219509008278175751763494649489348789331794711935765499710152565089664414503156656368257612887338734809063255126011761978151113408138284901757111747847950137046468191345952768334180273299802739095940134287454799031221713169912680551429784757082357466488848287759283550248490086226505780428217234696628284079838683828841503086004978113075563765958792648552580567046908041406545376440076810590297774607901730434179069775717701359815689261258155569192963067467922636285620899839545466419616035389968016231058561651104906149253618927501123111185070459333157008335730849919822578404986851712134054943040163529275420042435221816455933599791305991348187568160840494543192594173614744104651351038945544120025493273917952206657026709564681636137091058863652070122969699429920200887926217827507025607370928593750750805699210340957717115622357866946289722492800379425353737028502920232295762463958736700181503243773601481449131496845243680756717476838665420941052326510618662867145807192609472344728426296514154060741820234225481781083642909205911177625707361537405599528237183926906065294402973506646244513977213498813932657788675963711590987413608245613991943433882675308467227744473518023175721581635606122839817010988947803061122518817416980865382858676500610028952748676872865891493693368984817628282316643952252700017299404736224786282654810374676666879477057307658091180369992241016752541928753571730676772349034487971172136019022732339416681839549093196704860576860656665476214314776498496423260909663423034341147928551883874272232477329352591950810240738521515992313415241405292181082176926533926745575751697000548702892085560832540354985607554094635673872669081773680172626613647452986475986950015508308416489299396418983548925420007717486321346148609201019265195801154741030521076768605820554650420813785438212586289286553485568614764700227197360599345257929228983324530729596664450644950562420282103586088269469488222736783021985444047397151899663030428544313703461681769240197245303683517743774360417102430795122779413163725254856173359826204842960121737304354140813145388109870618378895798713901731182677090090625486097240321270375495216892410174300582531382136847756980896568529249051844352881610626891862938609834681227398539548403660776121057105531108851755474080165218738351628725989437531368174778820152468346987126744806125137741032905543174379886555913156559480211535111625748352624987647820954829947268458272589999622605433118883758478554353065847912067680411199082822574121451473577941723785231602528651792569751211794652452024379469838908001768671100380323405943053170512640675449379971847779564852150114210747724952180332247296326716194401264683489008294950670791228176395355257918922502977071889168503718382623436308199420470581552016728324937351842482125001424514499163779109485814067399690872084491000523981022907227970759982248721149362225844243167350329566949922846145172379640255848725255295684270678163889727062246205765434263569169555458514593744963776846338550273141404149527816030408970614386914079777308827376063974512450405510508671709486835668183364442537498940339375319676119060794281629922191068038970457279755384030093901345167075499602895430687905617926531841510271634116450180367545963597858723428834036890534449412818209540082988013221543282517829401602346536163125404436596979735807084829130047981699427543346573378700816206827148884036499091661356523462103147576735873190470015555892063903297056433564916711405591913601350847290774477958281122257040757830738967302464292980964236377404338170253652737406274046414706462888069715577488769725471552369959621954278641300207828822216222003879549715627917881181514741805375557840803633999048924188521215473120979911121317131263114762125525256057774743664578966792623115095742601160894114464064326973940127717036365514746544397253189963420433039642644359978355992106633476746337788709713141849716499152000082613129877982625598735619196671104174873419662305526328898236901955140411970610388463307976377406506030796677431447063937152308824488826198633321896231744925220525908144489156215083258720815582743286835531257630187545094055723327362020736892853436882281575575285293755771983286996069308525060373079430355426706698764913008615981675751074048853497382129838916765167745875461598260238398114792545380242132728113076228275516729411170165479693578973509714976533708079987164445625120347603535522994494684817519734844857879756583073480574160929439773880571335985270883786172606695897727000896705277134993162852688065694342843301258868337903034880339316015829163157771335743936953494477051124809114849023350437091690562165632209961535533028228172861486887235268085559252125029801875069298755731532303981098213103510337906920897870678882771113265570006107618513863791805334645600750368235993577095615857457243326269676297380640433323027205744905920402300791485142271791472226943517644561541460579764921385081121835961606702274903795173460066774908631787582103433671508400112202025329691615910805564345548895130348520116900481418099554632798708569354067722998797193530738658560702277548514884125299239169606980582451077314690464143960470967517570023045396331893401269711075865653854172460361263533410105350591863770422490689189130168915207346075162987553286295840105159595150795078460228227421731132891569700327261872958238120449141950908025073084589947464905182173158908054984792906679030677633657177425151936449515732848858514009781223077176516732439543958238766831039880248988854139321450400973362688803543358919970574373389513255786811330422268434523796111313858476817415667019766482559850803567085548997393907270268463417946363735203166485891368279842264178344828286010956337738190446469197425137597463112942792344538510446494920888041065406947649941503466238596456317013598279298282671054051449958222605354253383947816269502397612600165341628602714828696927225640726906327925135782549835896792964357837971731429088184380179280616109194571781807414533228135135007433379420702191317443117641646114957895892803929827014910774396154106493882131820316918678027709280894522950332245084282269181149954957243479884970490940902736603642449302965678382801174659614200119470572170174152917789420205710857344660941206845469771279452551294444915403685115410876797015537590899025637560691064061282669116356373345084444584230785181765903845819406029949875362127012676615342717827488780139620473893281208944122748736391370512353463416147733325507093096630226576821419438189852977677802224802886763638996041100209882358719568052786189756069298525163336556050186809074306939409613383513736622955707858514381137243984411437340447055077594391941429327755765618836433962146356859551057970363406591488247250701907581066559122126088433385523629800376689637873866516230108542137551584467572976690501696306978979281182041009569181714967992105309377129180512308900561672273571736167177731862979330951557180804419197352473894390020474293025786169769744995491520591919644546561335308988644123472538959824429263556717159645936146138027273348943070723469668266603943109050259391325414125629368933977256931380756958620588870578469595760549495580416959044689256440445735348753878962087790123667227293033463162454593858862008886567891155268701662912351121838436574838635713669760415803657962364249180796667060173891375440078964635821028460131981776472811973899866468449346721878722112445928721289840236841332842280975373526497980257318965479765310941056460488952516824170591724594287881232003184696476120097060149129956883117938169540808743594213895008987823089046986850960285617050621604051434806675013863466528671064238327249777515774764149266556973825270661617079658513325046089418911469024062307911653606180799764203934841958593228023699207072750325798252488953800295308069181180159687412775447072363908796489244820833685323224364414359192459843726003531751387777200180430832681694359987524225318563224062671144474085030242001608270263941334700400428171849126413194218301763679796789176625510145475434733661553159803021655451997181957122744938004228159531282659839837680063334395511796317880586272203870782503291597870519644904389817762248670148424774713370499292807256362554097473691673066764031409181821440326931177803787866785221933297985282957763698716228464416301681895887365665916635890913832712017838456546128091543720920020329228919710332992160883018755254160065777309398722906961232762001612423266321377659750899829109372442435885250136595641169434671057045012485023030839266211826868019129642806965260699660146370652063446994079400624470638917328068719771218183328950974859297452809578503775656126318103581453403578544932792428855845389803939249453699216705900995671303104564336960962714166605228555954559435203526180753579182721114595533960377220845581015983342289062542062998963041221595914957034071936875017845386676852478273829246472979074637833941135569338071963702203676684535031120555023924015981855517786255893436957386906952493562492983087676375758524607594816569236903722844177706984769364644175181602913553562564014488328004052420015519262780183932929552787764050722152570479312922134653267960682951370777089038500418486239671344291630492590745996276321321508610369501993726797186863628844069807424720907291336719667672686787981371096390109423356929912710510716990051120473004937732327976981296387270345612751015725080135466980318857239397057088999087972545383845940702669345648016295668549418020832199447161827926457002755724693162466151881376915261645338618999301854494351344715343259311493506221843058441836371790330442101877085181450260251645166583831441694597941834095877615621370861487489865721871259045333762060218399816855903869389721302759799390698054815443480576147301455745200381136236942419288888199276555074530180458760040177076440912416575976661221476618939427634859456456962971234015044484703704459550613407112035201786744226736851516220374127796799006119782827335022849457112623948379370248787322258309924040719497101833646092571148497497934451029679076745506730665003969765290424123177214238099849060088527529813586918325582134236829901105281624200909675355052434704091865355146513014949932435274060411567934371378676784311088391243594715217623980951903392350218404703754090147714268902160475849704271827346986124163898088341747533660198643022798268183250138197302111678439230876240358795443777396216173960519997924626171936569532054740606370248752009599765945446459041325208393666578868585404024438116432341528655727478340691296501127619737845130149658188405229104741170451497586423805067856473384742619054418938997021765990744004853858462256887692281961644302007490428513839172528251336621216615976488399158527349210711345349078978331570167856655990318243473108435566319534646534978870326632406055628103900758536944966689312417596988946921169575433347541103533177669914678199150311276934168702222224133056219829919228805590212605141512853758179178984946615389146572519982262980462769235054003362067413832414150632894549025466209943109682591979048721227861173053118640459493039250753009824886550400143728642364895373902368595872620956137146283301085379198537949296165647193894610502345416251580057659537682501536276003536885712820890927334299350527860337738311584389305552767320016965210758847309966093053523562556682012590893474863221273742707868183551865652078877336137271628834630747901584260277331017198789181269988212014205489872476227547177775082998726841535241123985249289812349928781084342919501003384511024542355326501054706973844310879833174100208538046841723427869597363482621106542563794914616049454572041613470030285859708800855673321241342142074834177703404775269870883811373600858989639318705909346021843613537999193966789571136482349792167406445614881307222242418177601186836175746410954482535457737981095477348250481653053987116703196307862525647591466171739730011882000099081922215769701404893164190104152521205086359862855511663755337892353124895395235896499605837240004179618667206638521480372488875070685849260798149460232819182646273468095853049071650518592621516983812684293965099324735260173158358744416366973592004433486938684174008482766937907881609112191012567648826243100498091896860782621022445971142455253349563527749396260537257004876580938055802986178467771574602361736874617770988805926404922909738567524340629241454057518485911991330695267764956735683162795743792710210814173760283797285568619009847397109234085423723579564229116033421881136647474373393703396912182509108675519153395801464328387274039720958772744090427910954673203520744420760899106768398540344767411681680681989536371203404595698761435279378008854901692394354719851326724956119967333903533316870361712505396107497638905066489916125593337193697735439532714523897947538144943593234276146463268018960020764663519112595005575758037591197265563960940893088782874421239330988921381508519992384954267167760171903517000348766034987367574200665051226395838175293761204226924235937071125125228688045713077947881723061446792510349238068698157187619460127978237719465113416151864893487940555559133301854583704423050357855851940017340854288676580611788436162965593930166113134475208375721660682727784295513234854279703371619190063632563424976422737230489521755201396054638168454535406571338181796957888518333914926012331441461676759416167381075983620734765300322663211082419413511634103732470423773035823603472723926486959174573502450535871425847569298855218774774465182058288512543071898851970328029551920654231791472561207101732127616051288139260381383994718870782555764018569696167574283038972718796565280110706675908188575109617667060116466468365994677420784671936608556228864001134564028960461753694196646173486120705463940835284945351211027919539597757347617929719719427970523973582870636041294817776896924968923832203595968613784987741419586851354479527919858868266233719827218621589749105587317816281704320280402476531529464252195125783582005726196962818759625149629090108794740403804610885738785892564719896114913771505360921710924287462388549217622420691651848200916949249364655667342938368893440781610085405149116336153829697018173022419945100122930967167139917453456659507309998942741781924631339703669236698344427214982666113365502591217967238961408330781209891908270961311794532968236571811373370017261422538500335503822123000039622193552305750821036731780545681707501859146572081408157819796557365468829383536586604635253220640326937513100136928000329336800919174776594731048352197200436267510568702359158061203387152772866093975415633249603540595317203100330428626986797460618637849483589826775843286693030142866923378384255016307967657293275488130770164444162885033343056418553351234050906455628857118572604966129513935556586105969600507576601844330267594053794196548753969106766831286395272050625864174210548858460590403131626209939805247047745967505681797534387304392521856741887619561590689217407657051976747621274567765307735499207029319320508749245770842921897591718391573730480941316522797509786656619583069669630699048895560319315998926012520638180007759579623598928095396635144544515168325687323265310085982472247499121756125827671546669672695292444114902361067049477218641603384873548319273666961156691522907450513056304907954549853896793041536186592897826258213225676713660916626321064957814722471844715309122869423462763576381176977964079759349570671819611543533961717112280558474117588650092436649984189926650820342223012906449431956738714731171513755088336648548348208682508714678256689709589800022316258766751701163986988412755661568840636138638490864488636978901750859810514964547822863431700109328475456994748793832658700795229165148900321228921039236342506752432492225095571449987040209220750603641198622713625529015789061805470930206743158537692261137151920864728091341353134348131501493991676140498363580831764437127749674955627249538275737851927923235913171097123664018754156421221136144821137178295616489621875336856515593470427241536389501753335530098775865966637412586445273199885920356908660793149482081776411057425497252600027614034176751346165221843222327198086672399964121938052742608826112480017856250471405372906248034394762127044921563661286599314918812240602632761924456602406913795156937310596884804485274900466385460352478688053266442771913186195419618645354422970218923151014677276740732936050191023513771604398567492352707526660934148039464075052394963595721183057779705119735781188769189389068199223058230208907829617046866071235570385545155765511616231035789975397037035573435408524180860575676752242800739958569758072423651633592253904332569359095681629168237828986243846081954578009805366585352030407378859841986362851640796306429553818091958561644279667651684699355073755941550642581363819523329895936915336192319494302712825958387653304254150178899508019956487126781644185956634317638949595507593830743272818960175460225666471457049336254341295125945768879617791487364964116246066624930823467635636925963646149813725874506537774029290697714850538979967046318884294560048717289957712349929159666475955387700922625924295528797287660564634581068371056436685717535045263172838256364783875266285900053067657772771114517061762456635141809903463525610104948944902906645295697639905852783881981407839084923781102356488431517157619465269686582215753608709607253489309740286657371601599909550327870400287126509545458940077281864467480993119497618869565360058101770436064864365763193914875570237025154270475103156258719710590850185455746209235249804280346788114079110340537835793371175444707498488978293207609218371853067948216366658003166413919779532327598650403745609672598921608888107086962385710937197246769628596634836812647971512996467711286646109632772806673920205346636733407007993818488777155827471724343504945258903368130489184735965427940267287055092329085344176710661062399424263369831607047133965678593818581626275465992830673208954624371568349984379839782158337180021350624223711872515135283484239402677383511378245454005170156661783062384967831850743788178160466457460297733066162933162533611843632187837334750131864463494761586451941363248652039058095735939743851938720580693359370708198005741382056289612159900169725124487635948890056138987725306830594701711343477948141534219835263145437677234037921391581629952145055967082421283506857564820396945708108124812465965902110481237374739741112096473163667631767676175794829006879010955142091068108964534217810733704551513257770942681031948138901628578798295612209140533994181117723483542235822782822557683334624705706083040567735922079449976878883340794057907744844121300237939271851493178483931312032578517296906883370684537449373265464391271978158355871979973847247088728828884719786252808107855713214794512213781032902160500279923985214423048399713080051609723619032882138222660156796650472574561533480872028779633213750805923499574185008779988722928334561873184145706319766391015673891276854202548504882497676955763788801842938603788563481423976420350383082744056776368913796356490698702610359459448619598671926456356318034332794615649723369306353722165977838695071427184818525901203201176140399383964867973900030863675522173997645959831988199187829976312910390665191700525278055080457721686624453452563538504907248997392728711926140757815347431452081996865222428071892433898334360351497559686489456921661214340318562738983715006141158577889703112194861296716520992942021960385991534727536728519787635100751973355611977251209506624377988648149761682689808179378824049163663829660364965777596239616489964978282190626036556185032789083204636880074415781236839363924694975161452644118020732721974124425988790021711955159419156735306260617086947879927801971878142165657154231551988400302136211144841117537838918812348312769545774598948174590207757042994025544055664726994172961158146192300325992645271750175114561617796748882718507481826259184581790082431204220319108123190996347682384191925432972754145440285489746375164289563556279869319849765400320701055710115132445942259155894159783110326000544521397341770242978864447333770982385638560074988038175632794584252426124124199984971170822132070169586006409801679954585065641215241845126627432741389709479399648396614926520161771502097807104734528541831252128097035663911766181168453738204129184491378268985093048695432421548000466242879586946424769995993205463890044712074901004863876611668133341201547908803031672426893055959073102005564476545428799922138014914307253508794201905254996571830913794225119602797987077216694726384897642394382221186032130546312879270741443871774876001928427035071214099513294809290797757281477736116178779257122370538386076041067246257880069000396869698096962140877165129041661350800862802424105150906100720173781300111877492214557005002310238159180929189793131430365321236704111876360274274236517893000527587580912911661164272253073815469633357900015068346969322478686115755404748218837771572804341828407371145810834409146685466830075250501221761650806117011467237145242938186314620851935761463565380884378714640984438654966062045653545913527463429226417655782080471461305710781214195951540045343336079204322005160861325992521581726155260474772388066374835190601362719240298047825938645915142154013098485159990431888955156897692865953699700365949860974747885436777887315473663561526754347056777321288213495130346217448127391335057814477698895568863098169899403142937733084695548137544654182778612317731393751382961858321031726876988779111188238237840443002428410539832896178012634755749312942463610770134311797026730275241701373061518127479684533956405480945976740612227771106089164126210667561356752659073236870206636290334372190728587196012066069892373644726570390056671962865129849512241518719895674098060809979491266747807483105268806844607519713820538326628716673912505317299538245548389734844416292459110139932166162177291876247464205712294870442237229482704216604570951820760706491474726519798774207102942834256539345527731609610397245837362287158892689321071409284592322529584592784240127962169234874154210724622935786625111869915383783998680470766710547058069133179932410505885675858201196258731469003707355741452131362873242617302061621530509753143450606813914193276065261338747458578648861460613567523270208733726100463812957237736841008378714485114608013628106077508072938311688996654950462419089265679302842917369947597234027127379111931017137170968220307334752847159499126403396826520523777907760086321736060196794558505487888491140931999172597921243237545084903524123101983070794206904305520927911976823329872329699637351747224143036870314342893948293897429842769124311404281007277252069138509103875580528841565964760598471372217618940169127082984997416713526742683743522931414933558774183602612577000194367616477658081075618181230775901858049421176108214877289909889496497967609601666233811707214692609029221188836962848206318175692305333038024242175089404465037584920404106433624816930800545450656831228575194314124494018006722443906540983641395388903517244461007574882827177783217503993641914131696623656666503087408008470086448159790411104319063113524545444352700551618896027947258097790674514447999834315653746261775597637114143819403065585914568168354125162181441100118109970796457828237182190180427887738598024162003293300609003413778564449644367593511040207493791405076223511551196140599028257545056931713233365154064424652329278923007321988346560900089191215468517033884984366932562196254514979698511352547465353527298626634280681728422949072785692946228519934877424556242766998441508758696146447221475164991344882684468514992648306693260023899299873017234532692803588712226871135979198161969084588746907091213895752213980246846268147574247098984697305471157399739784323213460931073905099670885683069178977937275726017232665827720518964653017779638786619433009835987002483194207428936653920346301438245339253604334064369586915316320856482583042923160871150594660580933960684218291667071191979706230283492888003671058964561686331658907441427702613963726089532602803599087266997376545937472749248834893096587901182894391826741297694025954661566012348767858640651742997646624906809844431025996672183495041006820537194396834319926966173896741816005611886982733461266777429113528779773204607895015455516767225800840270170287037077538631806459253702708246290842768281132501854694822030759979158267980757563553258628617959112284923052255927774348437734809961548072666931186084386451405757177119314773005559409910082166331658537489427764058206428779304644103351281421472704693808168504230551744355811515998121173668271939304612755019269904567448075687012222862665038257258671458804838246189989638272057474816922260532297832725225332701952619694181825064508172173692292820132114981351910882986125827717782350089997874305025039248152838548223378936751346454494998643427039226460338279927741783713453311076283748603743371218433003816301516192101507618818645933016206181262693949814344622190466549926885597590154922862185871334608011340036811717374828260833910697565773007437821289034967608498526077402302113250777114894809900736853375645101208612535343083365956090236561147083068360895862135624776606122993329453305002600264061615735025438873666712252530772540129930529473058437150196808529649761791140861875402510467036312298823960313644804106563487388950687234516499746322559015196982354829350317230033222025677768966253599274058486389399475403254766138871670484225090551988862372499665247020552294344300393157262164068213819401922403403795082858725452751031655062068091432332752553064696456967278715034537574661926490122374721009060170521595208229938487578890865307583091446627360632393418443122176566866170775841169136732683093313801181771705847677438086203492792675087408761438509580292574454347685185981888815583010854211651875435325756335642927678578323916425853288831169229287435587297000002368472329633491923183426627329683174003175850556857361292877840727376977718633872012484979469102481272763505235844922969920979874854279853389751848248391533256829619814299084034925785255467495802227176081984404915586251043444359586716485268131549727531721341381268435859861788222323271279226678834232985161886040993642781233581168545926723246847460086761468005749954885472740228808460238311228813340445284807060368208404384292912583281795625693372112653800116068251022738851780335300581528217616868582666923186502587935307559722375689677826179143745996740419230838185817415971144619457515971540410602261073708061804817326560962657896235352855685710011660490259270912964877261201147149324490188104831525997631750300534870371651885084299308003888358083054586941239028672849861074045284544004262915375712853006267990585834509384310824519618196313435554287433255512922086271860564458370275146481155997567608514639729043664327872457406147912814654039755930632835636848441526563816071532988711842254932728313778603401494692663055630230847815605042231760071453306828120854365905511643718820577962972173915485244898131753138163508042875320712594331031069603377499042762169801552340881622622597139259049988531020522093433840268479713518442557207110897191818286346572244174269128736224822250611828424915028977363461073527228397864886897833298637227180608881232919634383808696340720410139018741206959398201924057960539302989847101064842987660447146255443343948479555561700418225851163065519682664107942943726880064169700131749907045436486911679740524581379449849881467218573269937731976053181445903810019969370104457093764738506319452539103274651070867105256433398534085377239617147129175175557479357515449224055167913979013338651433901742724586513965799368938171958459414289108067889360760779708340279894572371200682586292983162702828954538803778644872940362694228139522489168332623211320153775181138885607524963467052152662842764393358781137016186283339351707988405260810638097371174111671286433126765093691882936034197868540437890366503547264710714648630185270392110865933879996737382216130053215319394034941726189642822498431987469032422347253622871759312392970701250836449708512330861031359868514894489776576905638108973573456876756228378535200470662158951634911854098256353372883184518382341715361362717147639581235167551482673688516984032611139519686069850685184859757342931290154417817332577755085911883119851343805008793381123580686218801348660387170398161347788419784729846900035028336733186377940447112321665971354529772541393716445528861479925372718812711480088552149038201321404896990801335799028438406607501985487279459253278193801502135378850498326978056778695733277119788695290321335522028056345853828822748442275315897001837183031175581632147852773597250428045521223800139660076967655061500079837804662149780462995690253194461403643435198769522065081567439588929985640997613861392657578374313869511859741026783017154230104142885958399868158246387467924589776348791598921274215634171696809495385881238667331746874456288473608226925459583344590362244576922494955072386799860949917675476947547516220297767774110745846220062469271264012767383127135770617350308677204702898780115622272505074058889689057984470872159659242065877413478520694277003938955097202465086863564681676126348972723367420718227359156488351262249536018812396846519407357980704555919130587458777591066127894138670221867598013891671528373913182648241838902653734073122467875297490038340723403724255612562230918563104740523973476832840469482557478278781346627214465350649185535476454167236487298435241313267372567933935344418157940883271197228807440736756445966928184533235291419541982615543052896618861055487932607895331248734537288808353661953508467143688478285485876925595541803909401506844404673725346673298360210119646918191081746968571991131264229415881143332276870210637719107906196314474471071897275720111549008993891965668333927660075244177266874493759249329135660202340990024350382482480157278997883057971433230008087462499859661578402217708760540166098848507430769160418799415512975969613036196846456378446292870596516955580962517500291312541394891516101964207245384342527035212676186972750810500871089619181637551062563375116125736533888265966627373402342069838440727697409557258636334831960099692084808493326837804199977074976037645416903457810420210210176180880228713982233372406322323829239298574504872714910018023423204890767128763231822193201026858239681695207603182535067989435610115207034000422942755609160760729229596738225322117722875966865195867713075684625358563676321237109724863637140785933606798220790984346439057800089083040924805091240979562151136910025143411257395857236768646409544935418986593586224441063150419508568498076643564973810014170176111480028289306733161083244606437155365943353137160528059545641422104040329491381527349739807219098528704787459977170704864741807222708460972180902181813119516126971042930036742093922239061520248497199166905303643934978491157469649737278553311390334663850351374121244393393050820213062365046847895799006956843848624901421771900383243663292091497625114766732079378572689413741149287286592625104674081880924936928521491410050652758637864284786872004911899735679525139376296374269963548241972386436531790935002288142817670113170282077643969194053586944491893549911742342662901385171840360368973558989682197765288846094782221331623481236027585491471079237456240115088381414357115492298448354558784794965119265942216765118831135976818755218732417787419880444938276596469540753392668140267455483304053262877640208514604362334958908990178876575554234333907449866306197879619554600711628092421452345737136385588424566924705943815278172937716024540584659313564746962321990136146141860730010840532125950940266278035115951070841181001856139856546797866180792257002917527901791200663117192497251787506472122689367768212027755517609640772985617877566431609069807694335219395097699295268352017613932964126649031320778171216468847211253455282139085489329032047777940702347023415134560002146122278600091547085855471400317528418203766606735168863467886985332389324975970835300426112346422613656566410914606832603988252739619884872081882720469982628460556560394915566459495079683483578843205820541398758545229533136661521546178970644778057998757549809313957919885661258421373064518934348423157703274156188600167044403303026460120267149319107794736885482927680341085009933794583252858405256731074493437320912616397516523072919793049225133171527644610831942518278179402794528016623729496699370630076777703278549694278765815658403393289991729349818297764880680443845203701389437047602978323179591460330824171833134232670653449946940491026994839970619373649037759846124293375626820072588431117075370657284603722864540254477465315548182614067711497246499362597933150897807650565561837481084385734315580075284027443662516789558153342410801487513869432490842803532022856463320151748247969116991026349410172511471325134168186799323365253826034587596312333013327267254642704327282158736584192053527824537358376273787387695978388451761709158258691788950315254165887162903686786342935578448624470939879318663544571567128825586176389818616925852144575237147157716245495699960363241273154254361674072121704500882682375805844690833865902650267279151689178924483401006011571420142898957510864538645906037900539897566694730048548277840399495703100466392610102373101596615208551039260562230913314313070343389242037402496901415824744622045211373332185710452131393568711075068923872361328829604993196517920563408436763859154975555763032772022789737692719840294331462283735184365524223970261235794645618602243978804213647017583169927935525668148950586967689646651431350518946716571108112456700043687400088486018677388585443457372596301233340133134819512566150131820101034647877781199757249686943431385313049707087784462125356881798283935540302341112655550648773108765055448878920218818196870199870080012237533666230617914624595940709183198405817420257484640677125942808674697056562773504234343557847644850755455044072182855438800795805222593303708695781674220366642300598220388501673786855260990733025725956434510538208427700265537802956782597187037817753540810559697281317648769168271693665548097362674040519164913487662655259951991791860241405541312016154513762932279477036642432362034417120652161233954073941739587889593855815250075148342927307302379140570589442312411421769068013825276363700490727094377045780792892124188522855635694554680549518152458721183971864943188054745250038134632485018456364705437103701378753266568616370097765080007250632907419241815060027048806360372249055703724214673394340837712229828407855401645798323275139597475935359184662803818690831532798919856963312583427627524443680942657383056991729954047804135856369683063427762355635664500614724119765814342494502437127455972621292224904660636304403511099581323717874971757349882865327134284671890064204665457584283480985331384959185015877924846342864510904279817595301629022750510226083700753990222941298406106610861103021981274871346455927958704123744973379470911993507980191645928475553811056406383169012934352292478136072588054265726633745412827394833092861790369501576804805604116558774790497438673547040417228597616089257663514601275301622117189890052445882361145857346993814192457311268105074553818930091599789470479361025117749948255686240322651661156179739940981854589662225102963279887186420743040945294114728105310704523258657741655592924288133559130089681859176261140102432455267368563883492792029414930139303612394350021179283344891058412357857002883435220081818838936307167929004089933332286949513563676247506592418821759825176524010875035770247213726198737672470035404995684512466113046952771403431594490804444126405672831943508420335752426045187030031791335681813470408573450010737084367419650821015564643439706205449301643702414147531797228794557152518466131405364578250475646421887915169043123386641668194521848784718814762329233383587967541545229340149377358021388963005798391984180119794295692466295583703750044077225426884586793520385986843963775671541233652418733624154469522394625208594662703381035497110890178583522844124165059346105705994366226806221002124393652160290613297361910163226669231520396326954106531357037385557362332265921051941711349954374243518584690796525266170963197012205926701361952263300441691166124813043046851770272904135729593793062793701663267945716050999489543498941461140267616050049940704827457558342886239372128173831264600107916018431894449516146416237519537018756122929304935262484946697721029779095118649989370841816617204616371378402843905296691447258696275701096548734181570713776752936042986332978434317658911410404744413728489896222614552128642807366330547695274821050860787995573838767013307954348648202999041419248942806180664885499867950123304260093603405163608127179731814659883152104606809414977611879883949646047168378005230752058905225763320649390091427832608130485328131492755651414813703856651820513161333940473739085684137995520697553464622178077373017997308375514587792232353342691679071056335051882819813014204667607211135835868972734764821876418115069316615948033371253510484772037624136492338146385701628646773291685036151004676104710660913519187505500074784538268383376138150775880251377364935588101703643970225330752006278440886464358399936065290359116986589920553163319920110098616331375307549249710559113169386483555212372657315941249858331148213523670247058998528707667802804185225331030068650753050288007153492937616215152149604929436344963336514906612552169307573284062654643111908221822645646069152590379941337206289673654340267634008769470605578907298904749711406277279670991707440150693847181584874257359693247186904068162724563565185396592144183646241474120473362955270906280398341418562180347362531940398104338089257112052071388155504771908974122687731473748451375626896357280579901650301179385565823511415964135401555525149284941433361408433467687843892196580226101534866457210718092907781116775304574858421622688619228280659105354864562552621691684870482485774089391441431827528013473560143688013108644972028260827523083151669435338969165941676053548075797866862990379201554518338512567789923810527026247037997759294731986517859425980054808859587851039449301009050086498974988268310236428340318837860061829826565107752208050511243887701517756200317598525764033128701629802940607244325091436988502207804119572951820620175267093928414366831040436235422883492800225759812590822719068516346572283939416296464150466873865377529122632113139761670842102616778465346331249739421874166755004391530063277709518879607420723274799717756504322287839183619985382670726659527077250622595278531504356188847243261079899313925295449792799651764417609226358120998926174179649895389455269563673741229907503094460149370824193460344693831348554519445647230545680947631132478344607121839730707279838244794789082795660407692308019699169308722706273117614621618848720085907932881311268291893117575806350778641613309696002198848392535099242978428744540256291237974597160711098662324994058528979078108128283010583585089627814507639470869866423148975754966122909786218184722871986572767516243882551260122037663952069229958331733523962682113504285743183280544382663446381577622546286064201966877445098860160017774929654026729676491975774707494637566757657834335709590894477854278792224861918867063246302074211461973049737036002724975168308663295152205871175088316049812833765674450371473703445082559709639029033902816793707246175036699531166099734264491786406533521346604427252554931556557257328702204435610488737640902892457543829938640759497048181505268776661968164615433165947191505496489204689947482518970824833496211014714767355784851261034869585941791426994962386345118244928100065515184625969704628798646099313783958628187103507946644117498401224951191865364413263887603218393644421105305225789185246066177361647754987423943480717168058639606767542658137376152818023080796142282912821403084195891329245639711741524639283330042900503669711314012241392973351372822033085170653209698254007663643886260473485175884611698220283276262029327479827717352793550608228140144402102043041131851891047977477758973668580888727035770314226525173570547202128801576291970104686863737514923420893324382139518483099953627134446581555938779518671698755884412223238858471563782051170187940255973385948513600814798681606702348542099270814493010492668536757808685923150101949321246622166790867653981245974042815120821976528816812527363606538258860816605904449612347698061872832762805036375194375101389042983888889900285521021172998125492760089240861214167684529641619703569261806084226228371835777221872993145082843847776035077042952088961185053788171581707659717987169191762951603566738977290444167037891501330153388257720005249840444799861978606838311097358512453480318102040418186310098076136541469903819724023091102526949300835511790677702851615448659844639969638127948797177858736938919600048306383031742151149746917240782498910484034895021152776550958706274129647986236123070925072651877289836841415423097488025932790070675407566707281893191470104091674358297724473491259752435609988528542733748061173870540868836906399509592827318077937784259771542423177701678026345604786884265612355972005591230341348883457278816832247580481725702320598906030715725820024273329595058077688844995277607485680342163935738131469591785123682997435603665813295088999490839940622823307550631330801950060152274378840169424084730097837165393197428809176150441247859315586169611696449381722406312024830765564355364095207844344672622134497123967857794086211540477523548106312963355942313529159021425518463063559330309385895143417285451546763475695080556728110869145510494127804119653577047165636144925121325071905402072278067971109839720873902005761229867635310747920306018819538264964363657881305124121107072137345668171683072464301841860679511569153994119770575909813069468767715286178661655160685272332281233884791466602886128776533608269014368386547412563048162745109881231671248023132764354852592112387386158511782160511028090117341626488742256831068984305174209608581022848926624474194298710089677884212146330827839554839526706741149505561263003451328460144029238908005549167652545239335021685730382276270244345058423416828610636623905357583804459069645539700271317829222896453245651655967398826957219910625527190742828079369091866212962659101280888686000210593406281807330103921615950120042412787937244693195668817004278462292026800611631454500896695110852764738537967804230437813811508963032512832564249329718054810006503440860634562242429620394063792095175073939860834325307842999329996887213351310553033611829677469204338330063791974001566292480419683400016831275464705710889736277223032084743059755681348815323432124420161235540879659403965860731347763427001253495197500654290064057253913666610529047446753494944201158068743661979447186182243309519580134492541133937794308671639831517890412263839522031665600805562301197431134182017271238832153824151524851279241843373779978050009071664814629441297371691073165180108512499728096631712125498228614271060731081979415650359115315399307526099399944732289541225876181828171056125238026049510492459078450433145291657862740985482916511025695672514316199569738162376444969147847245263521865739018827309206355893478984438228450095541143045312347254378133848542242403017788810504707011508133817325084085368404035921652587971768004639740951647147333201647991929396459888401216430186053121649839272788745194405101029946238303860330172625718409436511555222865375420011094789879123310545355476203341119450727411222849115722789459053327569630968857185282715712613748957362352672768080843704378854246508581189233638164621686816274206451975794393088856744313911507978191162134641819193827698087773184247345179180147145723906913446414705321752952865553725686500100844352093126127585965961318602051076109641110178065728557638664468339292777810903764046961974370052656531609279880430438380299304052115032668207744452798287877977605103647497710085758892938040555344643368828696030285347383268589546986112006433295835885167722097275376779545542926322393201912920953911858675417056860055942146686464505354675256177285078064224722333573677182919624205044891996232546171808823394100514957078686934169899657576962704113137368024443373687281517131958972466924940269054536378826362543059613926306438146375460451625307580346518698403506641683854412924841421364086326754528290627082202547526754947899496902215692337681252917787501121730970587518269847071696695145316908841782775414376237948220294430604818351025582123584517825970474282983088612510529929929660871314218406279724302908901506442472510764757432298120921330090207866443096049859074942055337533544090211606349823586525008881667399412028797609423781956454215235000971421498583439507452174889333173351500830566751761021198401410695031975866997745874880401705674492054645197711657999113392148456106273074261010698728590604347736768778268387692371002650277292803349495495146830206087495026466159230561161592379645783878078762705625144143378966362398916449891226606218642657157029544945370592831875324668682631315638849780574910923861796354172748546246356532460031235991477903453304546964192452921038409727408423984415477345187052024561100340857070705702585551306755012722818492670093922731020706530223725073455232662476308930429642235886197313965518336783124066092969952973915964417587084335645770128765833237084429259002763576618440154743993958294817543142342671856012347656580156603249781074316802271346134068422979572034094362977854142845542910096337121612313682522315333525965817529903105172883249655800632616624294114782537597035066528499181033800778509483931574931238772729793628977371626752238491462489317464887351233778189101386506984639788771919865378232845946947523664302438673993909072970729470421468416797202335736700460940779228280177331199162706587336887669937972700488713549917465975926386897749826153487846759411318922973038978244129179291143257360683765949642303431547267068020587832059968807562932954802333387751534177489771513750131782612537657766343627222112325049203089463757418403089266879387090777149308445649838253260449257627958245037037368548090267766814221405503262578371596380138425558953993365091315039495742058696896951782603318848670478391938581199613820771584406767756933550983122854850470217083139175197934687826406553908406900885264551340246114086639420034012808967123129238888868941483745621116530914133356876436351201957221395625831009493202243482190801063040356235289929198799813566075925010954744952178757265851088348035728538322345087975315234694164113665828143850231319283733859849335422127107477125775055990511650421265144061560152687056537348295203184881781450456721126970931663119495477709336098610090555352462139269916498887941899369374748918021415881693327259274848492696929292720632610757208093734854028747095108293077906879855816381370978120907723777011357461990651237926622459027036604403112276916556704080070299854833427903140961648545754343882616624508626538550272934088021150390650699995718821743048790700883711115110371560004737964971090430818539556520803148949753355214513966733820034068932674365420119170891877272043515892134425822214673753154977865059125437818337869470768399028116333974667742962906706187800764510404030504012811104323728348569701877272928396747475081426140592853383814832688946933793327799592142105774556221511064279280521559364240258490323791126535616385120430011365140560485318180071674467863193297921643981544184481252074006567683753995630444334049703798516157386828585933211900193024411862292565784009164273267500879791406543401236849517230067221453262456547032928875290662158748581658008486704968556164451092255862012730236487187111270760114378406584684431912023201959587026655538326327578400376349665471300827540063723749893735768597243190851517572955779833962613961659169924519167703617296404996439761125504015866250391658414245553383569618342883902311006450453657896574218174439017592996524626056702572922645726361096360924692300816899746717969944287565805875381365412949970039984853234991666438016712910522205865853187072046090593679316143686704519432554749624231035732598374766442140202822206514318611048331098819395120978387374752603045084170159806143126145637068336999500268558195099396594384666955971809784885483813028222147936384689413105238593640894476139586656271180154847293901005810613078243986303733362497860382461020885260449851947986836524060934472849065079136494675706869901374460402608782235881332296537023814332022799077660355176872059173580018321165164018748117645661434391944193271146371099670416672312736469695327009383686552663101906215001453531497496110752407058614430875749510406397557014583217517487211332815373221679884043153972155798626993661189509154189622879796948320814508834962398281027388533908415131269205545998234280753542466043601578273453863685589502515372023138748507682314383431395676208107893601551528896174366553459059024452508682493002671448384634573196354974092062523276884355445468256354379401272171727193776335372354966877165041049413243950664434571074614786600351759672304823801464053558339525758325950040610219715087603391497706181989643104340295752832429338855013223083387178289905967329258169380111904282482409376614555745225143909871573886375894278796359439856560136211180560801780068298514611034338207286567797176668252626101927108505832795520516253132061518902841274519026620499634131597601929294457886781709743609080888655197366222563540867008041568595655692474441856563994975862471627727032928115235553102228345856962398924768662441806808139257545968916937102053197371437597455176889377638487544737825006067372529669000543272567999857775407132992521263250606358459501495372560683928626284366513635468353158451319203269078994970810264512475978126752834394662516132453380123493427699192284013750674938339465168314355989932015176775876283535174117000669939638290595941051808849295137958076713423053759285963283613649985111950806344056551718202771245682351896154836508773970263140141865786218467058034793496092156350718295619545169161214313747337429750705057958637204563173549748542473913203831334728984774910588114039976769793201927386925386329747145270624237940423104071552296833748382299085298172306039449183284055874598491883056596675596062279498510467971180708990165486235715382766371598383804359185987692289130318472475110094409077198593470183548390789281756579754111135360976487342113581175548167523678316058619086129587577711443455049996347631900980505062974385579328053500476065541581360135374432582128757526693493713814034337860389036060886601791018884017111730171294281323753242979305230146715306769618302229418338882267858090028026010959469807882968710280708708380361706319110054465913416971652847470523606725162616332370763427512344578211693625524385771189100778269267996911132571490713793323221051067341861278328552943925084844689108470794136359526021802379638499918461644950665664741529499025456854473128712633391041736809061375476716788422113453502562641576969739496643645409243750808341771436658577194498752590234203210025112767980408264061734248517567914239002935470113588930153870449039367081131446275086047814745135247287317213908284857210162883345224334064912791528492155871314180075819634695062130688782858852838272914656646751127477407847862034836917528941043806946018309604727063748337651218099012730546598033452239106596482995376140596060016162014020185367829243105102445505050390339342008403080419082108083990157519623187775037903183554079692019889505942283139868331748858273304729961509822703169801898120049065917229077707109306671057190654541844561210684723190487452718019504998309886142155613141241753852267432049871628701544492356413928393619548807454239098412659000659795239091000916162217450546036205419931186505764010196950351523840196346061936140784865687971596247388021693317239592533305506706883981898515164571576999781765798517928356078164817734824771253182324220855919185170244499846167032668717029271498603044488948157183142246755546775920255409921718607236111083372771664585224255737324604373447826794493443748831339285216244851599931013388337748521758922604134791844176074639270811771832177735290954922033752057627774793706826570317212499389668294031951326022848763149518576489725830245701856055958177941085011318629360371887119531440678803360177907125539651509505218402909400396779608374013838560875674585794558209864381952679109315237211076591210406441352710655519937472279970260258563936341463318784248439931584773648673003184539127595710839363336965805360690629063001973383194993563895981063245051898839557787869606952259182093862022604531984328715400394114534864349841793499422456523688633400227960320130611754347811759677608685921528609866855114022067522017784740118221159108899405623433581596828592372597817995172089270376528467289665809788696223920647272580169239457541754012078312946233434467553880877577160778904794549334695657241046089246046025179223927768631147140653220399672328137246338979350581306049827474416102178871933972260727455219045118984845086237243602929641096179604031514152010944581254389574936380410827880760717137247035076053939096220353128607727950351752504985840755701285735771962256883468425848368071233146799115468512890987410666628132580342261022934163179096045796685340635145227686639987000772355840581784858995621901940136265920549816100667701048798901643438441235210222283692333552359278959926039291293330713345050829279965799246805978395665559538690884874030812035367075316953524210661527520750788025301916348271314931491087041138138201190450186873039719949668921981141907286141644085665835718980361625158427865167612269932173484034057477661719639155743312146949522699977728079427792663335994086282398380507563037499413753836798317443471796113396330257843262418077925044124698868965031653109881950227364133348344922461822383505989230542790297562055660608449449514246746035826756264428393969068213166497702668272850802283052127651584766654280010963251347515518928843447876715216054563218601411154347661830028827553748677697446478236211852374249675876152218154689350439404984461927523547082945054649537763996400904027860372904073149507247288269919760012120103094134070981860270254083039619403388339925208534215752782261676280415511167577316356615263535505562613447790915292763973314470476745812378542710329087441639122395359413509613185179157158311163183869824888586361226640014914902191023989133113746198973461568821962884470439384294892642777379285105678724567829794032064764242209049435766600618588532678655086780955545304618403889234153245987150885230693900879593991189970413235069189870067845190025545954723069982619789863970350144753233543405134869034214552741839027436219911305264371444083974267354570841511845217676112778934610532194514144365179422050335633076966230967747932194239777367905217396446135136925734116586703708093022378750282596599442912785561322726916742469476937029933604076663949467676935283636287092959186116270353763034820963260091303203858553031490186583251544197750424646387176253216726886551416148592489651361705284562978893717081221758657350730415041472484926320293835671189357406391021927176920135221292880729990839621016219807229874195406435295919814246666223947310743557388950334360495886412975717632053024132605270410799919359805148237008467709652766723453918703603696520477988607354680815574757822364690105675727132871080478064989470016400601742813532453744505642604362090215661753973513782385882323150154144210769826481768531285325470427996230850400058028644956820672158972054999036051841259175383972083264830651978351801595354382144996130473754688780870560255570632877529758735180513245086593847327429657354308243610268215809819711424047281739403265556523840546824398160084874973206701765408960972678705418773616825177876892729322144141753765428280637290654876769847679522736255697633674075279667299406820296942823186537019237678460846183202014354063635128778217474952345712792509271352819505433202338228858133063122629973005382325436596009295692206331565758092773895422312778692668646275809248361625851396864132846956094022188772601561371663594919490891717517568947425409867900582725549796360024631521698733256989152441591272775979836513298625336045170699278854239661033511715105939443821223966955223234981849758046260622242673667306447266867737120522961149891375194076918746358611023016193869736988122344885748634013717140776768577480291470779718575682444301082936777730438325447627679142089299214253133276319805044301683090502667584267888735625811560050193931241501104489834809114219013196462465446355509635430234097093672407337384756175181821113775189433054470085131790446551567398900355245126846289347428736331897309029322503912683504341539680063752439743272804525057665199129576964785219552940127031674893194879991397452917596351162588840100805760902865821953334242866726695992634149340829104822400088498559677396989529104218514869757579103302216662300357038671933970206933428850047998643449223069979640922832717075420273676727950309680930302464375796798843440005425756728024099580089712314917529586642755383613621151406903218601259832838979286700449031367874485740101988040648592246033126552474998101810155236664824493443913560615231219588627763628863454905715055148260344383988721041218264478139396247848016192575555343565364252771137355352639165704976363681600697605325569393835421724709052962551978253795273448001451788421793350157896683827037515564731865283554409415964493033737088034879272482511612512173833207340864395012397878156869549779006618852144056850533971274797904710864294835779467689920732213827683217575937654659160573923716127474268529737269197822359649348721507091650727567670304781782801679222513373434389123118029626418931086329987776566848334051738614047961503229068544884538465289273621959745503246816620697416616372923247856507663196319876243825360637513734061405951884576773744620486270682572686005302475749352708485526960873508210995801793688753353844947693334652061885245780175026747605853908243668495425196008328626714499341331488070102483858098360598032408006510065852125025999243830159426835388919142835987595336618878437725687165853280001822085135913793769437476296008878851881290249694033576995687885431373670753470509659515988193785149696928608953827672973213143679499886624884254178378808372189237625514325770138816421441152146468792917204991131739479018645349565403804661554725372063621395567538411361040135338248947213576774881331432681006008563999179826958482381943375222669752113318083195304424824693825176256278977559027933212076458797014317022387367112396312839722453359462318821127526230743945241039575705720773452710152184968446192941809686557191105987032191693385995310891427223412327802419295395616774512334486767894294633523869325090262544692818416394856735715552108126029138731264958286154235257039883703364150524043369004355613302626344641363144670167100750486172765517564993408540369186887847192380561175296323708763331016646889475458467577078249960513454679528516392106583828850311410056399527482257054014343958332216955270086873082871617065333859427748205591641772685021571958981053892663170009267806897910601199779586921432584571238271279279231839412899435794215624822998454472259367954819916770764888675633437206285122802451615999971074669477842054135657144756746231126742863522006502951213912839380475665140997116184614350286681458170212398047018870800637344874483884734326566945215176595316376602830176519551523892343942056988555554129741185617470465114954591244513670119640220909518220013659662792079352769599098839967962185082452255834424783319486837297358575022059568547547924529512994948081980302646515015352765707204138177498780629861094516358621072479150752908098798651063260386053687528145838228779536144266835364480722222049582229814646923222500025714750994923437310225781933661194601478403762479557625087149050650890619504743859648137309988942463331807082473221254812467000944957592681352577286578151371228379867218644260324150217726718983129945057865458524138466780126446513213278626822442910820788145957762206010089413434330767431417756485337243242366878631729305251493729874328753362711008666570453923512508346515980519178361969398813451906238799908269722224272918130224019219943873071755039529811863356434929939335945034771581617229895456536055218138729400366874887258282080552875132499462410506667885362280234868464238292380061384061519837681747780475226922316872213120782640877932225032770047978548905180629969725639047063870084090299549963646157559043281850290001203481169714273221988568665674993293581758676076209250097188876998348051848377832678267856840950414690305665907668125021210512700015910026382533014913137171037664329081550297613803940508144529867430497700434500447406035457419273731180533227823234654738648273963201302293972661068168229973275394494820541672918388235347554503592324419858646992919698901102751158274694972735072838365078908499491336800565548738470938541845382808576821156030810174537666476236099968458085991594555913579384908703053647057657101683024437695353980991134294886009985678738047530553575526230614673932090776497136508336433730246945241308824241204222150133323692392993720712247166429659941349019030793357480293618686204543329086338330227513540283870452828042571838408704905074686742876172242392758800895636897373983621760684649984463894861824453683118238348713285164937978825009169366271996181164188304865699345226836629923266496602764529785926966132106558847445575361646029520958915085523633097967391092749070692431604634895589246880189626489764569758489595864203681193831777790032917775322970393183941202187852965801158797216550892164999780195626428974975475434918140274653251717359630682356197765033538002425173424283624547487804388821107941700580937133188387109359625983497781413763297870310124602193567789380974440228520303401888615185183143073131780982256823038161107297768590170768865589454865311741120010140940174249361359748246519819923184279922648004426745673579233531664456496389250142040091047210308202395198082963831699494043675721900225713714554626487607861251504849309799907363360948100414668290607106977028264599998502351100220166585964138817845186496864769835395343396396096175552305145722746770648636646429336821632484292760488356666980762582955500875069089224935869102016598821408990981067228719167858467388121687401347457367079763334654684358935437285014097219504244616734746480322576608260881384631732230629857854191127364103095485431414379181517554075641405030879956222529684811441803456661283412662859060906226992052304726490852110669340319858282402017357380864765708383545949488184247277116092108938434418543194842184917116621089095493442213224726042746288567622672092316422804301885540084550136848475364718197740112841101462214274878667309212497138550211239444475524628492885830295714045230416830033562065956489755113081271776008706054097704346547411572287499499158554416486822970476129105342110653537458042718368608388688444663237978197618133077322075113344186983947710620509191153202710452316683463123966580935891233185557808527317622331977762595399093830229371522306994636381799574875717088383131684381217557173862712434549790973046309856534397470157138313277339314947478797024725851828735036832399073394021967940395989723463738591401229446381304137280190509607626339997519662513757514112030516200684603037776645785297182494727020886160416399607350674620764699313836686590236225158957977386650055874689796280254788941551995218480304488847132466106268393877339078337378089639618798947035618740921607032251345120738696096602014063288069212694613942763147636521377789628548591998401407430408938497713526595728640792354760173893562197608323231395371876172588437094074225707495038239493991602442321266763703025770978661934525619914031298820257013267698309191531997627904092626672341244664192299018861984107889005846597215992126777585768176263676693060132396142327895830215108307763349576964087056138277988960877432122513998156512274223488091274943321889454009550650099843431409063276908931266237289172615208122394307411599245689472994836769321814021372888393188127515298298617908886996413946066432283418509247692639712896385602425273476347281044596254679040991531616213391334204199126126787583501017138390092467783966855705668061596736861381372055526194663699876884279859263412453517306324324034349101458836601592145473049680347918340945335591084890256718395603067428507152786912406725650150051078249242552157468019060007939653986387909497769455503687112224178965712597310110018250298616493162643526146842687922283599328058937389971497348728545977723031016545620989204766170787103014779578888062750950018343240355903467449135771067352920208997583057433983826048679742410963918920214645756014813853209243464484381098086671914188332944276094141950790524803496782255083882236839206481201259833876648860160506072991939010110644206176130101042379722737377459073508194202683472099971288498866845750734484672121712828741912790589948492483279384184914629301022330028973283376114447366321928880997120273196463671207495498472590048666656553113931609098668917160158766092261718973855372908568942921137583088299186010064394362044744369040561659062110597505861658859256905470427410054310775039824392370635735608817787300361681433204870908118363404404141406711494407896724501158611922905826823229197653013534359027258251611409950820384873803211972698437808036212977509415692749507884535470955551459991906542788387396780647201985058871701870641339188024916972642309239332143779630331462145356398801523082205782888041180132728436055266478175755015514320552048178990266184510748456540300500550510975917474490242055567457937574544557793335471330980899668865508081065154150656852888525758844981508680565894861668742829316646969634282331627642370052791287610292692653411300258302220893324395762475844877537308658813977925511838612842778844881072390041717908378606713250337112394523499390225584379167850057610599711841140837791780855767475091194822965135526393563752828082878206947030294767304261561113963534477097482490539866158478250553460330922812127863048559890760089406468830827780673639261174359713067025857780199605000958058581985687132062729211171904653805982230811774061953171644538977022902774629032251043123423261844900390343958677978139379879029967222577379698761512167756499075368794149719264394032433948347211168692459070589336205763039366937827699388757254594341159030083676435514733602243235695354262191562615369254977559906254950358328490195741637423015979376750696925512249454598281952407762427941319538812291372935041598452036455045768686454083066224716684160291538259809149368235777429128533891118947872920443193666895224062530399296329146187904841537250864298770389602877941930430325323620526659819183386374743822268186775928354130081670010605725475951616323642883665368948412317367488123655124376976392752344506591139985639468090998622747717631434788109635943639546272782494894514137775194556403349109837680079102878983543185690759256929433592439737466051215333362089151054412789649892388360280783040230266405329352847006665893585557403664821571393297333658051597332090989241725861074996370318938781231243449529740755441277595227302331195506685701117170473998254300899436951075397744717440589648386897492018712599754487865985109735970449678969160219135307777401906626553971980117663193700105429843215775077894891646424554203765289657060415354964181700769591881082924682228927752009397832229037105653927091168678443823324617311371244631254487500454009541197082756366502927496681291096263860988820700523934474850539685957340012655485718189688129372080543722461327864350021774646379906155140419234887658274909700159749153141064372667094143933790942452162533928965125767927957142831478034632587740732724316834543435826202222076912714472941568754200269744842015437289664873061959231141104598658196053220760865932201825194166577180239217227005895240218088288386533929896298066005171754743031012756342358744092821263424659929614944904882646341819818927213513210578623322807262188504444101060994828147520196022377163382137863188707255507067370304994125095864818006640977319823391814985026039726366648472276022511708571360659192658907795048023965192464513682473260124545692503060728141365367677064979911101969967508182947499977847785680179538935304816392814284069355917678328623959417277451720869460266064748112355177871786460861555960165979819966042252226115989669260304888279125894539458116301811687605604644240160991353636522435508493454282059502202223151457865802678939488829830490603892465595851259673599172821993403411634187920287011516530619802615450187724817084863837188415618221019507906353469136299563067666502055384292240612462217905296167354511494984567902943868241629736419457856282091095761868798287741465597429947926896365387178856350732760846020544280402844372065590483508252441187716152500538956623999126948172788512960417989570539958741132277326100753148182453612369227467489651133301165068087842779719021442488263972513223429631647241351133080971661093912348259591996775955078138229761787236089608534414441848914248715917967488021138375162516014821752645725290031089666408418645373579714552219369721797779470803344324218419031633757761313210135550951909979012808050007482878451350666571500671216808506960171167339325559024705771696794583800322263636964017190631817408729957922272392470940987752429624067570707207223145350934947831466651814535802217815136271139190736957935442646748996199915818268905499233547513714335820980432643332273326922078228955785211137278935490380442637522963443930624671351631878584679608294132253866259112553665862610260064185187048876590319265914027797326062965192055776709051320709368173822909246196869377604799828510128731140104431773078381372209594830983894926701669277375910374113701423849334617983799423689270652873719548443573585349850488143466710629548005505732813254745697212310614794250477704614942361602427742600304839525587017542953414994749594739200702865998021494844458396722049060790604904652906081212012020071515474697875339668436912292817098003391560285826249622060702681854486392112364828770534866020578612603096683266361790788546571715118537284101751722572584232019399810018550691881427167629195001967372430836354168934035346505350129050581011029455932568551656292669332584444126934471721805753842141699778825951270306467117197959106528365260351311360094640562715974059308121135429386857931679496449244927237633639836532493007745157913258250489999778235801994591929645752746758245066085693581080706597794374262365801007080104378716791847578615394774473541785563017372881372377578669234420819722917289767336251907304754661229618245416701091679717814991307216450319366809894640610656575787417181984464990740161808221911618175184652710284154945066713828574486640647715892127372024206321157706646584206458430477804710475029499052515379055193922866656688873455506117912124811725330751170412095474602942938995866890716525125745920921101579116270914477912035663524347557056909787696484473471849848912031161949082774663255227140505558757780555426106733629356559627657965762309167592443311544318193962661686055953739556965559563087535156434747213496438844354689319793155488080320493944588605561202504993876292769533587684636850214591755318137396303554765036557398734403436201606992891721100768793323491812695536852306026514903435293603132549344770702680142706058596335137825390588627582642401172577262750372505133868177767463287454534017476909221442432503552802007385114270133459639152412562879719986689090558974481743658987073114418306922973179527170055398851334106922223033512087105575230867210848672597227008743830898656642252233378436149087727209020353707957677914257294140094225952591558760291866294450825810075503018715271537575544830134216780104884407104238958112798413149505047353101476382258353367689637569228515994815064558603057956803799523870431664204600758697005536286011884685821589592758734707335765863256206491962614515796001472346088205911286269235393623249332951979820923096000050369884155520930691488283001887895136070633162185885179406891931861455895641419446113796108793131205513332126728975858974836407434747320949816115863475329389680267447239502613918626797358842836689301035594111392691656401621632977419552468554195718552202948888803981075124285486866836789746663356830358566929991801869283143515892457798007976378509538871046211831842018924417513970398764183243439125266981962536708017073913855968769601154639642669667929999070285246785632619901761262214742313207878483114172040443099379743224572692170009820843926105442593714331789067980285349373687402767832943908617944336377247407421156965841162610547455972172717820321974091757839771267105141805039428372604087473292982239424796027388331645441281391897477258917218497039292688034630639124456980783330613705413364708467526412913718855101504747671013681627712112073311306760593259750208529383651423882560912773511333903044744534936480380948476991706095741662995281583062455818878147726587260756621686890696726731570506545310962433489422771823562671546324788557317633896801574309117325478910473067932814847092326203343908104116295428249268504722464416067299667773887573190062261192118404616933736205886626202069113931005579543827192803701897521975176676759331828109769921023806018276163274180322150871686106532839964469456918916676476477208700122675821950243364730334090739242879438230391644478284093830888460054600035181409890843958496779812586809544619035502160411718351162544213411239567649018295407228949611580988884165749101727127570250883990992984890203831551247756112727087044331974668681436845722454225016954614645578220422744397819769748809833257567908000627686980308195728102576535044492271145703048126833132179100062525609188073506446306080132542659585958013410751113854528039973199491987389730789219584241200265506246063446697322230713843793929662279076550234120462719950633082666937037064177900425946028925153369249787400656173380647410426094263599468522840734996612696162411184891593588757656946912473022178141462815235492021804812191919752220154973193783166319223939270038656351589048950037033390642632522796281332028263899055703939326351844410335793146189851775022356408145906621741809553260577782726269639148575189544273107189166618106959315888464623602852182935847963915827207539117270235952623478782668104591488181977266907667929818094764000783090163375655944636130177422400728499964586398474105783765840191937478522407338262409955441986990011202784338662832873521197235427147966000162700703222465890009640211382040947871691610373784104349355064862606812091038764207407019674917725325360157531919009830655286425813796188807695888807507127828800019106757098783766122242986847211616454481232218048558511577274189751119026510466355162032710320562858665705898107135445187855868265046795222918636205477603859837003713564318409750831626294814486707106515733609448469421100476530513233103853544720431344822314855025517569495069572944902070069082883118504721708444565665798636826899705798763653091955656584427791558547952602214990046015060655694987612171893935958081457941048070210415754823853287518037668773660791634909371870283292639721874446082014509994691195592378720973134246738766277632876415494893953070485317899568123895487420407389870693229978964776956032184472160485965993150500327202066365499792286761361365781080683868388352572033566187231056825615539281420123645164806784124719014205737467241368466213042782162854182101565235648865895588565117137190481279761108843716321062335437892463445741617188960516313040922650867130622954608801497107036713839547020863835072256093129866820999672916030366173777503050600229213281380698206791845583184244828480623464600695976268179448267636094620981282608271914892193465739178603776633180200535909427320631925523966480822672957840825067650262436754361490555315892352716483133222145370378359730617504667460159328865305998800389254225028781262129909582839127118081298218469403950488670899496555378714143340727254007279851156950877022653672646717768375243980532617327460963058075513676274960161542365372403006283542298279443996270098009906165307742930315121836529731909323616515391273284646900018916867976312987492216439539940418045493250111941452463634684774026960967558293216556954516552422932224990701282113652361471771302292821940091420220582314210052692571537605857082144042442254503697879764494123126560412068169197906591254389438813050286238093091954572333013273965346494981513951904391984936827883421030495062676454161426984930194942352014913856269110389482631999721254240460466580614866981219706925750284804617020017178541129382439599564222590138989784257379356902757205751581212441652484611669659755910888697060048992346479683190779620952977086496863930838799822952527962467792522876953601348321753276029022344668789430993883617704582505344495616757962365622844274615509178681118896010018761601580389162511081696821114455475312690329228942563914335956582810559627098061177193414988233751268457815410262259195095967325052682148034408133189520549336199188432650346467803227320396449312771783980263473708302518780530255585514217350779560517376522578787640495383414182077248078958776297841174523632006333400135099893169612340567712268813421715204482672983423858312248343557978900940991868544402588570408007167809543702304829881860747515136281350509994685874987437637953576702745193990550754435938776554462871878501265971412208619474914199673904800389851908888682189464249260646203305384396059143437420723881485238893437723943092317122261705675846190585107739426695538278156986628032272174924947634764102726490161411669891540301546863629583977800458361591709683216659611682407430210224442874214375111980336573867331987350975846279748301288031630532977786319785902451990447646282195446963877140511122569547835500129099037502540924366971239141093307035519543761303590916731999892130899907900655248936004634132229129742370242845638554375044149544697652837001870806686883837991613416584525917976206015915203846329398472581020657836384764256403170296438102436571573185326288083807897737205090301363866947502443884891058672588432540773672179302408005380103127930228725374709914334744540355284615629288775188646254083985160441376644712823218652997694389552736419806485387734344241894025030722229228249405228501511300804928201869006264942812166592183492796914479766448752121368610036830210244441680345090371203376379487950265309504577814548458043602137841159016794962224455603300320078543197013421275229283373308964431441085158028362632650494264744507472403370848124778660977155530464038722414888485604357748559950019672207130971633596186848710459185979537608811013251225976846539847331285259137509689221889682684975991349900435199805953968813212775725467501167841957210048231592314857597781320763585145484740388276811076478132586660080692188803770072285278108756300357603065611799344106879304027260491178197673858705016393103052315859030668718657581950009928430589644264677584499192450294126267520818658388979861862114785172431567009106557779181688708911484274005028775618382516112700393492319116295280531350404091904128683331306583504999344019577951135165610450487342152077866686632377214198097349523527778474616992240274424801987853772496705096346051925440347705892152220791551767960644188054686944942562354520387307034189538095851228746428697316099329275555225683626341929174611528733915519933965195622633590712841921742561613474173437453448401538317394674831764672079987065397157466736582985551416648591041400310827184737097494193864687786752856215091530734152196570745990250247877603255270162023820014763362254755580206668487471259149126105747524696328888088840751874816539653425564502423703220742779847875428427476875983347900542229897716493686539314776432873630103735059761958489092214536806229229202606820925184554284428780494429533750707415496404332927893151590908025952900333191338984821394581633899436839995171521066942445533010434355717993791412078858424072888988973773813373659031086762517043058362582352739645873759707836718910921338585003123291058560790526936007166475610819541124533422157776241906683893290946141577557167490071095168866165607009964791277361086133923497869988312387865456943660684694107468200598948762216273161885550408752393347887962183224492328700520821249951202074041883424364917729388597998509476339107891887138022258335947315928819670871635030700967284737754152545769411763045847587171329664462561939101382047877311492619393238145480198760812349819090955650737669103200470268789301874443492446009125481356850080396154810952318043313869003720893213601714885351225581715841524800802519465067093289226780417641973105821514787039177240440753536738047663720559301449878390302103395967178120239839272704714855051639347195928417815688482317641127641490415263353868550382882954446700352705011718973149224846335338454143262205006922837387608643450842718659211919710449719676742361130327007193876664486755190471789825399321758371972225922031270746708409891763359197100494745043098363845692826372961081091379161388329594247131080568512423614620829856540143128770159335485144924531404424447614726882157026000457539312794066085338031409582778712852215456663583054263333597077541469684234727606483337145027160748640558712309967073961260654404093735305854953826782801814823947876640214917590402394213680942190960566469761078287740196985187508180240345480823924937726816438246687832073914709373708513329054786993527990066779886952364431796196289395262788484686858851250602802835989701618994107771741466057194825348158128524174190736397049933320073898110681292869266381917431782833954631126726800348449715450823182758633952123604300397550296013146449514179762782975465600731660721084833709015718615896267627701219930869214048232527489878166864325526205051006732944007727651491048540305515464600225987538908755510369796089138697229826393545424497566712921942582139188472647355539327983604712199647086063149152217970432159195277198023342774557903721201302970171015116528137178917958490320900895726341313214938776910703680460903847690113794488804904092071601267262640382920886389178686601687047951229498814426020071520201595542303686872210756192728605331501888968538156101061134852186253783277087185497472136686216388386440088003240909222141694517459350413001134280867706197494419666694254956618013890595714187289037004737742791789313643638408632978959796556164120001627896793494876918705127283567460384714056182676301488206006002973819004655237632954870082793184941092788665294483315215240457701701712214314489022652090581012910468385243456957965120150027411420428052609961716936357557322257793269527168901838580077309310567098637765870301765729163006496404587215924865222732294312222134941218167118248997085419959707116072998833951931925281357727613162168040225000063398257832892468390968160028551583735537854373959059279652052897151728899500926044403772343795484429537875813497673889115826104957166615709240585995294589577900180810502986951175935953668450123453702426331567029229985940392599960075273581389015246030775071634448598083688722904707910495576069820487994465508173933943872077147074997140196265952229938767587428526389630118161670652217824458453739065533480282583821814194259141005853117676660605891164580753646945927051888419785382282087164913357626390323421958594546362734505511307330204205245595579121522534771516257880672854444722293326579072815670183128392144107011599830480057432569012613769453388001722562443923124847109923835734719305599955775450638930935433907110269042344351813615486319680342280080705407473848307722872023236051180966105736169600759091131373734509568788758015558460224247808848664239562107314250418505650268415200150966305854167618312296307963952649763027579123680544438837566633211900000121064465961246857045120507817044992253772694758495648493826571535055169663181122973218470603984675103833545056367252588522292071028822686785646998001452791528384648968145306424694992657355636819050580279007790991624264068586713372765055035550411974042674986523237201906170162774674237306539755726266341693230564417423515496796947972901547253287820520317878492380622790775216700347094936654839606215966620223526720865981205487119324073726482323118521054915514920628541423974149620417742722717453587861059799422513885704029870921375663668794290477908220375420308653261451236868544446889574178508108090626697529744077743959751399462756802182238487698622165896597149508894145962569822318596957727355670402622859583867223378386543678162401371585171447385357321251032136523747647654059159171005091816667169725402828828546029217847786268651604970492468280352652707533089417230586611915784879558966830014473182317252745967378208244839280225683195958926732900978417300964170583451991876582352591072918071725456579374763578508092042895658413001087708738191588873810350014304290910000493135919107896347075590571824899086833124707167384344691317905091692492516879038803311640925749794119262741642927274671425137314922333261052323778894365636013324830249416477769136876634122538496156708255115640851495237580427163526434922012363477995713059160782264765687042182206135672379471671449450912385575203467697634772868183128647824252595861046700386077288275760073786472785159576456942440984435733332750609265621066624751001437103220896575243701474035905768946652782939695585051713354797727409507787335173874878061578819699945179218475735586762346954444031395286337125276733440133171077678353339373000448152185598158904967398717295623210163765086043892094404352015196994747978485887992426082416251681384588951491951719177537418170351666427399473940739508843671119749408931049907528832169168758370275476735617474474947179057708456244958121221693324553007900598916604909792279552319985495518867184111864871266415218318338461492576344853789900772693049726670329826013137569818041975386688961931196690437772047156407887126965055429921155869049211169475218355642539499535234215051712633797633619845263345931387589612611352194992556474134060757866174993014376934821459583766249185509025827700693894318347950926643333903225626297412478949051106008456161587225296050660146833355060028044766646851824146120795720748617659100504301852688115471451474917771291499871329111553362783684323068575264489896880857954246682335421921789934013116071231364449571163885616109708835817541121240591642180475456269790866154233548181875923645401200063789633271527401737802557415348471750940018252762188856944077751403125753679965505533787366623692121735378186388637504017235236255797322151975699920843538799783131439070413749538890824006067518929090885762706659405258943096696575662583733625587581602184779938516453104450802681423872940878603589026228373293374731085621055362488836676934046302851777130457919472150502314053112957648348615768986907770923837316337205124186817651441133566744223510051883677014733461876447954690640294751566971332728150514171699100859365622454359906366349695641913275842662086444272043316016414826214564916573760259677079001930682863549075890010971049208873871879824976240300094134749366728177167278015600970576175210419607288735804146240105986939382080272834926580444083390275022344059302664246025482030070901472216134432830727114692013769805278289585944688725948085479916526172575969286995659172244801472102277598739460737549648335896182577108849988909713608157029904454089638184914504359722757499420450073232369263840468866286936531131846337521787841849366376740418050810758758869346043979293111729934482218671293151390625280620367999594572806580200134670058854854504048524139141105101000506432001648631245575140389317047638483748398708048603026456213548560927812829664614885678409154464102035030374296237051450687531800469608524062758023499116687250040499533910357203378911922876164221397790465787677784959727648968390673970147515583510585214658117694596588549867832174648418698190165380272365080789744570188194269501543269369771016765413327600250425903825006509262233317053456203906108745762989037970618432764511167081650053051716383124308928872706974719405963069988940607473898355824337818030195093957344549695873110906682222242994604986029693845094769422637782277991267698708000286839235596431895963960586221309756460385723535915261497916776404063027248400198679835221760751727233363895214982324674377657278432907898497138432912871651699392201653444721372628642434862513930316516271290161115942221364077131304869675768913285763590282203352745931250399598454438857424250689892041825813285570158249607757715034401695789688366303220678553011131571409376227651847351904205255990672372328618701461624135180230054220336822720783871737713131551624397528127420451267856391086029516720831713877775328648939489917741802818279877235533014261582027703129573951525691509767273364244380094503649144712319721506406829920502514021135243828721221818483831421153468761220906222058819015724044030933381283716604368726605059376236420107636433547903705115940910272256648921482855965848766350291678034521565624761823494033829730602606836656410880865112425387164218118570393955167235717166815290974752976659843601620810595930679251585347285592753414415605528747256781564146636105064758359034686652008072638365583454597264675150484794352151387728098177774975266535485955192881415951557354996993742057833496591437279443502429382888972099463998046481960070159445657382646383904870582063856288243937788379536283476693810049407329965437274709039690744519929666733401589178556282484554262950100088400935484683184548772860681966577704916802669232834102905534737661190843679407772014931935346144171464558702624875877510605429412226152234437056369160127897137749190548878565469546477414317623154076321709601517139546785131533714568120179649121572647447385717822878512061033900932392969280201059929909613695225224481009121899742560697046273885478739373253397922563916616072924456264317478429480651914732521963293879968361249733745029232461154953996257188319854154731699671824490346263210959420330386950502384137180554402642255118773576354700946703835901420305917702455489241002798977958625335567134575904079097252091809344080499179502302842257412939969574248688191995726802951491238014521965981268931743022388382478280660995436826942551421189073109006744217318777165635229662870853838752227794358383387817874267729262780547043322648750339692291627693629495761028107172974400635890881939827528489009945312427874103898895963481817741144243232112145002962009853697114821415278095937695389656305142093160536471968704765680914924139144704851760562726092269427131036691887042638682920434446717393216407751247116968635533190584495462641263214778152026535176650769479467715453886099410052753704744197928494442942694652121204139835576082662438916321404790844606132611952394302110518439845869572012869670764453455342604055040307533341613781223070449916266739429369648735939822800517489039012943758396644234752580824878477151909809403323890381366017000578890876447972320366683814193691080908814517568615952652348261540056443911932689247114805194323155873302129140943950226742975862264697157922190675582102739491593635469952784420821292011742580972091419617945058093258591103587063696550018367834928759307906654854516445211444382777787804572547870369457994315985154750021538609183878912176340051927998543823488569681388196018100020638922454216154664719872328679545117674670741360363473831843408964771075048886857460649076077607822604544139557982130094672011289666010243871002620123827770661808089698620152465045931858767512345963600694771066994806782867914546867491243573146980408793435410268725622194332572044125357112673568992910744127917064776293352020359585956406603899459492269187266113641116829959898165058975223455628265891312897883501961493366090483735327448799920713867190459966066130605501941684285489970900264420626667095564850415302181681685313322837604269771700303717111163948056536178921533416899248467022083015573481547528169310301210487943863391393621276571790395754009339722223508454085948606851365039277295659011560960031584547697150950256323147528133236173762364240344199948995271968227954962177605746581841413603885324845730590674144319042521669885412379669845091916444708796810361303914806019443856168991320442250521077214464758191042899576111434140621504483303925367995800794120933237382702218841469575542963619985010228647127320204935429569042515171531019851975876575920996514870794586849748263110345633942168731990440185208392217021663070436084071215860059395586493829149321853896884483341187999145479614050921364433988460126610629509482882494757556885625560050844635912278749524404362260697747811417011949523730593493838692539475678584718324727186426874063153259073967190163917363142219641705947872270621978134440187399665748753112192533023901116861420317917342164591835463350938926629100792515884664285499979622487943688228707612681570108072646314263763775248834762521700098829674496879519732338991344959177922040539153438855390100924453233316718355985784097827835135582094518491095431901143012724231140764166979003957304637879103540146690488939793211047221161239192135045766322748781635727559909203163086975257442779108261755990407174298286222325033152416064976100531249816607846500249943097764361225710257297814134315954455560695577562104233422009422713805988779870724522843284657296643781629652276206758789017201503369149069564507289450291145253917344651945577128234160802187253579595028600925511587335571049315823255102608572532865668932607833190870050602937087760187693667865913339034681321083423735794693248519590726081906212597464046864106006965717953526526759246790294454408653725060810679033600768529692631729225583063592346943558547706419148289847182196161741453066303660253003683971003652390119897259021829906456999342799739498924836488901072312555066169198509357590760866762105040989650086643701396172581296619287769995386207864208927893090476358803433011387689822139718271250656539659369375229021168591932778216024697078481720385125376036126827619858198730982804046318354861357909663157578520755892390939716214728803522606385831012178108976102639366084243016154040573974076232724905627723256153234560545861783609971112888317651803138813739149502014892040681959833244771495610956031189956117049263442946460424804389471193341270030911729818986225455109693906532799167082863912198610256193275724008071609407129379187664383591754628092714395154981025744366513900131844427196044928091092620207372685631391324160004696320083199836354327657095112447415356908710303129581836046189664370820239314515273957963939145729143619945235629098832892295241093641867096121558526313235723121026096496519351264223659946598451121215619056994262497085904937295054659865315876076532874580161177217434153816466260392121057226716003075638454707356354578674052389749359165767613598529771758061024517184869738440745706283026455805841928921807646793649049582710989167305955732161901606855868983503983439075759017489269454121536876117918956301054442361031667443531371481284711807512874101650812495280712345690808898829771909999218370215425126461085170519642342274750953705025981422526831930007363354204120609807255822393651896361176926606215808942085453840435098858539116569690666965402648762761304756756526029682534270341733350414195742169863538918819014400960909922826013481766350552323298905087509143955349889541896176395884510223450491142410260711428817710690709487585066308021063410697549280123310968907764350583626880269846820153315054248238877020963942594657048676913757551780218400043721432299379428709048434884759653204877023978915394079072035314754883134145299762318017893985184511052085412782395789453104098858518532428475961801390983876556705917856146823325271694835305750556342127843861611513880192382856989109237523954194608256478583545612886067002730971042177157053521711630053403108718010714717670945736057341948637668836433063539538703384088724035817033044491257220744304368548733106586623264846415285314262708807873994920841380213164580131233293200914096156131818093620210475319886637880368511271334683875169604169572928090790463336315060802174830315029874272902191190744585949707393926402265945439593705939447103931103378738709257802987793878678642857068372185643898327273402410868778722623697963459030742081830439669164813856178408709792558083590665701470159205444692967434583655422260951533144789215005971407207327520521585957026617754352649080875589733170302042939834216647139399250017327303279483520976767381500573430585522455113709922209315302287795033450878207768732199030548643143703287639151846339546029618134166722733105346579899881683740355433298119618987497359227985292061908494254996807113675655948033702411371431788742796912140162571548991055527454503978879717906384404551761781533721792659572757954977322020134194883292134644053466021770331072979240086600301949474586309489090291453168130816210837267901549059771025911149712349145259557244029716047786254819339734877617121326421802051887690818207343046217369096461339322226793650410624950117013360778233976871663155216301152310502039389798173441612666298617600649661126369321350506730272207802000432092104769051743439172560335279990202579609236915321732875694296651501582536772723365641559040477816727704709536091024209932295587456536697523617110938971083138093919492883285134786539988784204106006482063669822092560103462251189765254266607083861994477566613394813146225540599269849367293656893773695184814687746999606723834612483525416273955371245207487085794480365494292069143077743015785131790696845194969370188529058707016896318881790444015335650594877826530818514386682682110434316698490107021568309752835975366497765619530545063174175417805455743025982180625171711956485901079488504755579181040077885388418994616714112891260323866319797739383764168481590679303179421081584526498617160228028666761655212563498348068688643357712059144870445466627139048180539889997407060935240028745430695028967684411764860131291741622459677093390602114471899642699774137290552037559825263952363203626030845855811627448327501570898474101445894698960668582886609013033110781460582774572907209782359105280610621722517486072181092397257219946993945321729710781600920443044753286202521853758236270921640950047083679180870842701622847716446501640867783718379590019596413701426442606341436315086822459073518019615470680940259060839657581723955039613229855398206264382698269923529959075548311603709568068487693012546786551739492349671344269077146329337284217197226044193486555190355692018856753698319776833738870939975078378188949552119028262957710374461525852614563363737183727835262735890233643423086208098805132459988880455096706448341239774335249730473956109342067851013233210535951276637582548411130301010605316128813800815553997819973032045573219668577888264853099329237748423450928028084888793788143073817497415097921618353172127654424506092859169250791545670212938738397183690866645445808032650230821947251762170676859537324614579113876388576432111385986490617544116543152989586330836616756049117593553044597193326416346952244536910194044679315477650679906654038530437333429481231108722938377489263888037188689903767889728699247629293247533279230400283525141344169205978313672523558432383472481392042320424244605145331484372588532016983855046486431508182657290532440799919449604944683873494826185375393313916452045499540395106177411154910447311952908940509151516072342335285066666657865379343025694659700498384012158740610947805884883796071411200553480058474804929808019811588301135555725330334832063740574662273874970215247083081370483945179286775987572680621361953219165475382562070401595126619895081027112112468878105694146964231266762452545508120385032110367869288709878352577403736481136926212244615301579642647707788443980499073203100195525129596041650149876935583136242231671880836031812877108371954025448641949908343454409255026209248505081818063121287188173244626457183105544061408501058305652521558576427025448412138591057644971303409866108416834381725566804000973554009350549064567621973891754354413121370614957019738125222637024946061339041474531371619927914671973564530821483596136742738807103078141591529860835716267431926592921718596895980412655872465166229906189757978875564012853426802978044695408203949500844536275677007852330203167981616009721186544223624406904801965141566188293936932325005878071014198579477305173796828130830253449712361204863023712333986850085994402322377544980722239318725353361595070347550197365408115388857230652710934833394225587490308623514959809722739605759600110653692797922113192873011247222509818764649318845915793254360104806102680659903772102972084851338150416929852158480621365785814314627017355632843040718066013996478977521118064023896483615355541632199264771801262307281209942073293352180653634579012961988691013615458493218359329878709236649973653830005107953766109917138218405867548024010080536954732570066846121819082572291095548886554024054694728147291156109555793365919664652434933390378404202446062388792044845769527481363120516534349766140275366257456023180052140313619345544742147162037949108208234415680148705942691927827868297331659926151073932896808593832291343854846266164756052255536823573691186715041635814133305361224802531529576928951987247411491134940967009449383847744260583946072387157025009312966411396194523995588223674941076652373243537239086022126822560455789404129209176957219983837992477582523240520417183377317648084549785697223470207761809579049198303221658954414271742718518732602009883644422384386208276657112854342471805760266742381813673239731832041738206184291630757786396799808052198650553725051521140276044877990057778861210964569057356526877484115953147536949193948459458539807587705812204336678262216699236171777907593524852577238601761351893441048392745829162106571590451066106924620666975442930682432016590449112116984300641688183723935693504282396372521589863827173560117534660857449868704116953326239651246743176674581696486952780094040056578673747479738317587936641864568684347173380686767441726759704471907006729724291685774772047432309977637362868605242557528259919031428170240051651527733113138338169183517386144999840367288781644646410169590608837729871819628242805359572609211838301088948301540021057803042312924511192974774331583122479490809266105686620199563690754126803826992662028294230690138424823078324873463525383800245354518407063478617311968953979522648451980390784321950597192100769177295143908196114340247086780229742120581607601025527240215974817701161587897657211140732850646916637076813800550174701386329487625043214169527710709462768785543342218790891882537013297146328029096056434671455750284495768572010117630603708734446059440323167860583344037557888677942189801072950768893544327083337128854794399461700359772820481668006400015631345105146137427325808717556151692194170910730631903685322181330572750021972354348851008043139524307811654860949347029112085745612516005671977895999539987380726884290960345364190026109232663428860234892474874471932186570681334586908544413513831903309922792729264649073320338955123528664222547099147837824429532408465439528150513999376700411750807204394542746014320428610442128472798853603247341434329337164296267417284462087487496603893473367270079398748340458096097339713654752855471968971520980327619162923958827286314810806621243219174388528499520058867961564254971757089118222773838708213218042442765886168003634099500114769980777184083401927134752149910514213257659262518551096456704089093179950044537564970294349668900147307931599476513015569934212886013292375846532000920170885321731582371399099600088066093817529312037634239635500009678949002836081609322805490829524168547152486949491335023641552691633223406984348621926196752280110024713733073229665573602613323954864336751687590108390143562196858134618516695887655618704356950344022861563438652776713281132876610471854743639013397447515685534170490992114036989255410654081060330627293799654887312028789259302400197830663179398269780816661775855265735087641970284272372420852789563183595679221455151412188487979635105172035059651326694524010953591286879880160309160167551125907897052574657857651854281523411031536816322715119681672865941364785397449557477502819103847010777783416121169268952546531855305901704027105329705572223517108981420509414853026211169047192960285656775069343786917068199316536587868502643664223023214991599078570299567051769271657030309999858357136476602862319734465419480382895334267321156443148682221021491987504748181951774940764319715815944620393613736661187136750119734099561201907279127932670741181932565558298067720172176259773742874764200093362862962170709168613128978509601752949492738674661003845111403794780617879366470771429675155505325625160860173978256146428824328856858820740252364364462261330226300573641786611762933831884216792909643395493835593752143346912592877713956173063925896867207826086006549132330153525159314264968626116008028952930348360309727021896316163970969723943625396952976108438212871635932445545305699006883500876885666916965855017739185311377561808559088458476870601396634277760215132910310627080100596003105186763405802042346881513010243181383069825926271723149151761998037365669512089636340652205099507418202757110857909068860965631014658596064320269973349695865143968173485183597039445126855868598966811201581902428944854371580122867769582675143245535042382835236891016656701407002682295797406687253968574023152316379719754228148925811160089869232855232882079110252420730576685949113894966446362424915170178701113340638655432640062435091834298382877460539504487639206497150004958301415123601425845581200670793965481940432393172298656590376890111582007719668862740190077407258765242720624589150460181863714522198363487193593259397206310440854718813462738773240320624590576045796457981686010486551985744515495079189522689047329391072496916155412891952095677322228012109620739317094637441242150973251575558502833990796675610769042165753886132040334188546038455483872988689602259999591555119291421408068479063374278169915080149306170594442222471845761498002242236146758256663118043230899219063166002525056167064007681864765734083690529257020984433084080839724912493575250070342430706718477819963229492237746411187668308254489411041342425854237025708299819529412759838085080965235592311092832066093580615023266793771358884498304500068021510013788032209543682518792001791291153925108916322387765706090260344736197055028303866542573848735403330149308293481513603946688101870917323879551875267744061328976239914381124319345966303935569137596582433355748973738351485229732723988031909274169106961374192624028610786347001058362134580603162510099660115966351629753117900766218087017308257896384767942545785937025100190348511984772107646068562563823043984179681961225579576578291395351930738741466511207852616371563784213568398935351737510070375194105138740869598078190236175434983798513959118093554682510667938385470346823073391729990283413121785215646286028284546650638195454176474556986422497593487241319607101062701161117739473966707553802034406241449762382082641683556109506077801980883780256629094576567519572414408754184439017471559953638578727823715929094184071104180617687038436764597635224938754520262379983284883610639047359478476487670172962565127765021971008752260543667652986649273377786794820622401374554500758728737628587902563929711721644255207779976398643300328435319833648879425251277958933923454112213073913430226910744775363635261945552206435804313552654985497329597354287024408036311218506019883430531913893963653143089271035093895221583847270896774344458776425112086634277711807979706066830442131538794545007405727470031159734398696026921233807003048810748760300775158923400720390358046419015088779980496400830054888410875277252301182621512509618069378671517690888787914769787821805197067715384490256599510971120556561617814614089786923173590286542733264669875977245811575766947506463229606593901934291932572069586522419531189665036227996873627618467722740072137618448313365246341991258804816458045649884788815880365310297289569104809806996677221123200517846938542020804749459775139799904159295150357589964959454051838575954831330485637901223198023776863376648977999234695630814503927166406071671513668174944862000441053601882312690885522132087122785268247797029839055738580403145559761624463514560844062383226233473926592149656720147919559655980808396165416555799358645897469497233953507768163380643651717076477474775498765293078701700010069970654004965427980358591846547603772090911692526165927180301592549775757136869470674089533021002656888326192502476149220113299525427707234048348943667026046955323215085803834179215641206164481163862949449461971039104901938021352824359380579089883401719929424132005648201735403147791557297595476486334608953703086398433444942934921950221764429656258375826772114960708323782800260051911214027564333661051421750376623074586414589168680423199738830387726888013917945687081330150955497016469055779697367746633083700353511426827332817517619501444733861219151982247585301927891079041618212748289457498763633599819480322073300353478212837023939582132767513886398806038004275279582960968813800148086831346324084430310333045704228332092695834134332474380498360557125662814214362806821140087309613671242656640004666797492531728622345757814670097141119688404001589883521483563937455539150109182715174026759114823828778103271858299039338179134506922776903216533788366398588152049798038881083194756481811636506326301623364696130616450630448160591298956013818720719177540770671185066236041177872258230189692834203673021155507995627068504151329213101636308120619953771638113765241319532332857947791032297774496362885253768836921090499309388369065937472005926442247525310119241951024562279139575155375615730806556402918738598879402298388259150725770021070710740889567985797390722208112710754929740983361244053507653886153452373485494637534926174366246694749688126958633518220164452875028017871545402876325078500380678126055036375543831027849365444903014120256954488210363513873046212987550258899288569120488194578666249450538681553945889548169756764402460865275245605624449982301397101449320441959171886414581893836811297487414054036400065512550088785441159492737745014284919378548879467965612728903726554637037563468158789650420199385556697174355569000439798945828639188830099389786135028617009869713820934169482104152159902633690810439028349474146237203683079396414363631257757063186912896732536657008637937783547854527845015081331527740079806846884092228226215921999438101317534876755859519237351395528852140960569870865817618986267131537832589605374561504043998183730423782796631716903686280278646987300731571973418940908573001491511083790393583726744526444346592856014686995653241229812527436923996283496521468537135986657500971016429416908819518540957506067318457809695020932087647643136734654328165134131840056690752656473477390736558913913296577410287297915412930684285476704824651510629329351104008481017134324150213984986488169357260929354281861627941015000322615068974541107696249330986475690992653447495616459555796453334706663648535841228425658149159369995891195124488130747041264306052802259398216640294957129297504256081950868341751778396865785930158106350691254060334535166964531577635298281065446255150887022460004992285546698848683063786859125720693420533869487292230223715576840175123456792033371800815158948723166814588226139205214757093464481691657277815306627883467380769389922342365082181517047996580858265654518994054768566340046061458984360413077253540976346362027640984447441935281759619770706650465244396255796824334225117795446662671327089566981331059327109481258102243106555798577117691842920256242498370130056458244985479824380254286528468404668439836499355616337555850242180171414505583618521757268508704034219741559619288061460534667327601770067651253387359976700013068479647562307133792386825600665149260608299802607965461481548118863486080678062270232193793949897426209939150636297407303825907826815635373491075505034855872368441405945063916158276427701405292859035458744986357766589796233846791035541888987149321772726994483766216399872955499381048695130083140775289444548512658802232132613153744768155971730109866181432301724479645652812352919948113672304592782366033750907988644339279442095184148749101593476023329032334488585394004750372539242234061464300678698241770039286158141736723917979688113060489116498495902100258085101173492452981237149139127818264422327006749639471109498440092435266904638905473278195361458309252656361511065850290638376694475660811278630361588531766436534207595432483018936605308890214612125281203552241394720523182376450654204414017776316408146981263616481269911555948209676966693208154604765953634973976089665239757170122680543906525698015920065507951325793128648028611771405426858348620096259824554978911431321527030185502906451237878855718626904574184335768518385261667340912160571105127166682908449037467008367943343740887195096124572681198912838453815934074153935242933613217004133261210485591223007248795419387712379584110956617230686983141664730697888245887089041457978611245541272932965159763628144811522626880227162444947030370374659892982700500268875567285349508052492917863100438743207041813976287256509771418925809210036262033196953390342809941985083943328323842782086556096469500816465609308497804308286201447925354929853729443993735420775207703735727036827348619550679612359399215180104126634834335954984439973978924039980069658641975151922247660856715757905452950552716547601866303093988400650626787277123254402491825821070878080346638190275178722066230740677843483165163463352733838415442920047575598853978926256774896495882350412369825637588529657706057206201441412055780659936528687027819583833653252019784130107449866028757600568057899215632481873157992013072091425147302553433443809608988742046597326588910033297475198500267168377744870665947846560322048911611831432329478330295139845567004855975031062611454312329442358173629184149256600602444681870157506910545377512480393602544988803256178737573468199566370209188903241769043639855105200812310867933161760087281859913424957838561668350502911618338519076410169695174564013598600967413394323358465890947890439052080257212298027308574738035133896973920724949727870761149792204280658530887991615354314141421958375295671352531233109590851015702512059304604933184631000699879536523421026010425476500133677156518498364947033284329056271799180642630819880851994277628659040123119822511668073742553798170315804888964040702193841780147723432891892970855417047254995785407365749259072830507738136782796278186228349416088224366746736583507441834721775410724515057049303925725455919919825683552537202493064925196316175479507885657784772920080712340033886892131938718277627525438254561811035032624927323803488597231313842916777448401607422250606711813747945157317571813250669616209730829173794309156176965200371372008479499339698720625181164887862085195562144458745364913783875240721961373159157607949816251372932493143409770869149799462202738975503172223521728919835839159821243133916166725275392480194201862103020025570147588640704826196725172836345403962935949620433005014900341447141397400105814250922860955792919990761950122368028425926713343459252150842298521367375873974909581481902965147249548031978053157909357322851266395699042774851799290013727405571231845721035318492793726544454256448026894050878007984320455227740705293363069473090803635686838942114260258681674786938353767387993813522275088911872274968879814952288214080428326399013395749762420680699745157668404846532190498914744802277923198112961751845367921615153263157419463890257626741892837600924376732734856173686123516382151500545564744082356724933187777858051060078981714806936799539528707136211258352615448479476055632772859522705176274617708745471580553255450975776467448180327383825799618141799219241507726468765176319137252339475973940936179436120991692527920617525295757055909895119687623971765305457472360084799153231253944021394220795467859344225613570747033998717591751971354047456285126859274976891025776783550955913102779823788117545758093471798720337290691038552747452467191459149990446194602654664574610389923975590147668596756459316421615713174625425249310592248790459880466272879246759553401076661058008251804370356415699125281318934447091331215336941511449832932036897957212370771306197724282019580033878705920411119094896596924721212584301485284206261618805546038136164732351665290062157381363721824938255665195565856035563264805680526041217724434672952741399796016272680683001191302644449900955340213580382661966075846613106486512702226893817801830596075438121703128087014207180339085295367187697699180187409899104796725083355448295837093720359507422180166203945243637419045457849507801869334892090141431022661643350330226554282533203723685534910318199500841500290722209129067161801402409065466906507983955860051138891352010257543581458895446976393648512397631582521397224752508541054626220135397830607381065260344585984175522708124163410864161887054827315780989850093903801544697077068330384112043643184379321122703505720011284694588841626005130865216255670428541883726931631819420256968146707034517550968008774289363499592134621833268773389394701923162407244139687258860693199361523412857310172408364078239882670594305850011758652527531470066700012163242852101775161631439921393798419042006132405893055548212717782621520628783265112708813386231717701305005403155025249461486862923962648340165813230504762744623576997558149089563148195253950173145743185030242831013314458245892164200435086803805233243999264842695970202102289658130125291042442651449022742876102835112517693477583144776775546179756574018620874715319867960997094320703323347945061649729234819335482906776289938614388892701820748914941866342986552168817773328109734993360820188222597229191722046029798169649800867279256298444523537575051457147523244402572183480478318628457712852511210097341942011876871850279373395789910906636005448124757018749733094888660602479936596649604511379909743264276690705859233664545803202078020397261493926144802851679414555214180697297291280632242666906250626132473158505442987673716764996855736856212631397083717936114045223445967710852288959067156190051492567196914120752202120697705253760494768515643899914808770051980293121856119631625731048313111403012914150653238863778548783257160299773494461564730819048163819615922724665113772694112831502576828387243767057691335009882817470167161059975789329714040638709532452848780659789375536092034953734799737816300492936617880332227851860993803436394489329786436628374860546762773399217096748935766920456334926290663449962915388579869415744914532403422935386067722437402025044378783427629475728008050309937637399838213027914932502143284094379674256996159932943626217131056579924121705827970920950216939034609387667046638709519395028551096944370152828865889081647734180870999211781516706639594661343967558147167901377089224331973397366767376807649074811263784678735035951439603352330832243989777037630917609559995792278243652625184836723664836754939418556753763180534903900890898702468421547931530625167349588850563650334437304967787149909892704020707387297626445501226967009047518011797370677315532922751865205775993776815175890394598140177170791112995423207901887084686722736031343227764106077401690754458587345682978353366154180163876081661542865628058615942826697379062820549578725008908711184834204048484199411340705102687954844151693208012818131102119172659227326246983639540939064404112000880839956635932605282369868533617814953438432866496335307062949213363899777029507128427922124700847956959931804785202361512863282454283656520444792542213350118313159472810509914061692246265208235806100956455103049024675794596503104469275865740334723520575607541586375630638955029504679192438129436748931238835529018900335645484821908527178332396681589390914076849056573014419219811997865217743884777902961931476443386966829550666476238173966531401903490760256771344298025542491605144651785514709313930336674115165810911075189982280993204443429461054264783968060644809756206886174134760418372457653957135604670597975690772063903393866607043802622588215936118623271802563119951217386588520374596502143404660517674026886908171668684307778233364729295833834285123828442051234767813565208125939939348322443303176532515199574027964175868850172916275957393518872551613480623678133401967154783181366647193522309023638822281339903260235844026027099899881053429227598371317444056032637465248725331254426113553094167093194104679303015468082872352522085161474588438500478993876150803381633278888809579365214759845665589503795889153122408751289454354414314321665247322463181698006129296117155408437321446038139322290480968326329544193969258916620353222920742271613449209659823269612777833202194478731225776375989864462471181728251327208039687201343521711406364779406825900895900342009436255643298990753571396968035543634621499037277107805562777422555847619634496692689353102407964362464925333640258378642483772836809883330356955546682414035109293843812387584309934049552999799889551989476818494377080740760088522859278380448327974563372020988582727892642369015914178787715601239722234723441675887823478578127549004843381590459350281041927260490445603220663510770817104360256196398958011347831584717148584460584550522591203400027137392363669466218840010829510092578867044476493865809964275358856973762654584496624000471335861392095707645466255957852938497911172513413623907565139552714850643733588943375062090431196834139224674292472121637694646046528866401802018729730524439934612057418492539346277602075188792310548028096648525127760631764542397833195619500716937243426373013504262029763101947488712944215239553348580108447581730085844288680113002998564403631387817726264618709174133010939122534987615696662382386180202392447361765605310489441983031497844090452668085749952351360776733217150968717189239613138963625817620323226451092603859210981634931377521406633305329368339932899656660314488359768597818138895643098199537100836041416694379748608903667625489814771693510142616912553538704884852482882567670617102617048124238233445159026951184565878127187538217884992354934014295355382830278010188895836442002778140979653452247114984477616398732138774957966913935479793407599528468582187621752355732376546144187008019086087623885177075918519582843615011463766119451254041459647239746644253280859442591935216909833370209764798323986416116927005774495772373200751910316292563002689686378106066402068163710509418983682226324080405745807065956317083556429323036215236097515906247208272526239013748508792217863199842876536242674046032546364996759210726021557083582084978106054210883959546396237828391125639389420454569577457240145270947228574232029884245079628796790955107069375949531752744310618597474198462728733875053417421610901984042883983867824137720718175602001767829331052649062908905333082096640478772877422726287664915826827814825947054286054462280788911234183794653051823154446787810807459528050162961022181832802838069500484421432248851291670881996448866512692300564384405260726489959578556156606088927725877235894069668776267055421277487206507755375882674105749249036687294207021778980650122459982984234396489303914503511911492190851829507322683653741784899419955070883214859993129824486158959297337821525999295959944357009634281875261516703527731513748796712958552857116887396541961206866513722271185844311916415809666179420316200164383343644398813737680413266179330098876914472400797196318347310608706287263922230007992421678886212345732788246696127182662019294631593892255198087549746730200281663324446064907535286317933938027838804733635891864612875952500268938044294736768258586288756523648781061682830197673577864438317339500033515976775171209992566869840642723908539934435605105517540830034719452251111032726393057371508094031275093121557557985622611430673495958283001885472324786443837811203462554498060525009096446136458943780684894251594537299349534009186692816964756864439245973645284280478382963867805016799762215301838621515843446601923331604623773478114043514621148462506734038939695592090498985664395636918082490432170186438845487987945309554854454211954361084845683600622176056015936221240191050834379009729521693317885721535035856821262296172443164498535183725688851579618831894855800978952613946958213851836600979526461345656930060054617434784289630293929071981738962484934520654284335156937196425760745965023840209540724099892574339611029163471414401758203073631504786328996075926284399689320210061013846494808191431679558208764445133948438832393410465955272241212709629587805904747290961220394311182747347104657207949679841164947652165263938122115198250065348121053768155316145292034683833837653167079815688963786544708750045746740567439083086874250047209883628947660855465653396410092425404190392592356822887062885567464467296761967582438022334341134630998972054294931067879067812953061095795366102744841629800331729865135969672518158173456796818179795710500507639468579951144570062843982276443687092260538302365236902493330888877477245228972457269589731715550538556409385676332185722848905295162415066259408856092123981162143476832544391142144897320904444758347194472529641611802462941029403038224575880500423976211200681704435249127858074589218514448228513852256780934636925429827055952423225901834465209642633531609731517879621863163018961995523803991245537224551039126198679890313483106967632073059659041860196884014144955842408215601071452010022712253278179175991381697134016580433513351420826468269197909407389156086532325912884663870675586204261174913937690706321132357500365525170805780099266555937721502525071210154732193220513509616038896423069537596460266297747666539458891222994143356374099566487105095069958054812399815634415327602878702029462112019144414246309324608325551814254549841778028350434109989971806708596938597205456448015940642114872185252456647357116513589757697114306792375082540620922874047694515324285522652547847172623960798398879653783145438715770148307680518341274514437878761238406394752505768403173751222366067028928308037360286968548564670243997420243710223530731170767759946523617789677157858789429709583613878849885584325070214534588523626467032987735251198125775524912918803179862866735136347255168093557432254081091577104923228933773933032159940144798788113576556868228703934539590155428293087472368489649102576567622222485737631874580849409128746253908955990211108229292777278858463914126958262688297446505706066714899577083766864881920428900836467125862631488301035614086193565451946052712956820312480529802110853311402175188413080644122038573915959228567688166479325990425301589279665825137395959372506343550095773948573551069982680604650116300445969578955283373547137970994127020574386578107647600350366740244137457073063712770608859863612478900574200002985463528764263281920275955493766849941309274246756225916597335686065730850881967942234024636046621958330664322590985997457604167651464350491079410818166067441907832972987556668056435334417688383134601012578149349718783580135948512738669692357556240774683347329213066839898432380209451326076480885106298846937339510088020108614147836001561072045771453636706451307113284873472475288322776514258702695972305133221044543801980868576014859850103500389716087121603366641630167638625244304442137120677370517660600330855842868534200939247483504488460292580206235876496609314881900619740692745839703543607935094913993328309596153351432993678622260102786774738066566053309349647378728851780077033863865568043123152621778908269262953138927366895664361527075678898217482829430778077473334853387594837865470261188794151182088304551536355793584592076601059051144771699232971631510121948646182181891295174042334817085879605692803572155677229123850497689800671275382656729271595974779165909535157808667596557935619165578713256459295046105640138947200249503594151565530134591382272041411328031068973640836399011234067198803386050943376350999546968788853901222289275593601270178324934245555132998565824909733968404217994772301257907095970772079526906112765930446795242161132048193555347871448936296653992274581445832546458738880563769495361516448104841409837165574350522197279173606571968933227820552420072441236771602803333879652926745171801897543400349553065886879169502077484859375150050698106132091938305380434237099875277529463507612160698238766823243176251637882902049459668431312342304592649583217041808894750526487045810747535547980236124123197803344873218489042264804891020065713947549778632589270282732047742871214988542798902805018980688565812830767607791256492713651338945510151050753820217398961068069368098393433154045333386593359271222686373907115133389367863875651708557355658255143747333506301801723485829202790542894878878743339590466179176127294375543868168017658335622599780154232262527039312164401603557871609829640260065983583454693494485026722086829386411123846822701352374125314976871068133635239519111439554919998602127791964412720767129272830721062765086440289149241830285484876628207294842821349126492043894181143332579957255924610403049419760682273075830968759024055193505248376315978664648869547701802264703458913923483710502781105077342688854559057780076640258226497271662459893620780883953189956963163114989189949071332047721480367485311806363061257453183184221831600824074862260568203079799876800187303816854414745108491473551740376433855909476110161185749993258580532219146137193562528737315971191892737414873867530820907401554551754764652890953877250593705327643735492943134852182115277239442032821783468761711328788386922304371140650937201779663707184902554973409662418761288301739853949803094344567597091354037041780273250807438675641668542112988372137508736582432030900606753485784424142698963845623411812479245247647957193223263749452664793045472246860905959916870802907421699886111868860760666467912361795751976605791746578530861601098572769947663892107611478646537247980876024750082055190358625287982604045252588408413362228472871875300472207265942534547083093393775672857823385916935054286565408482821436294778042711175622647969370180483999345347997636227743993213027343006496213215249619915166592426434568321857752226812434365613488477093906720357924791666834542791203280758946874383842839761388060564841337659482263065899877726187231426785484784789827910214483938587511443760863706485118591084509865974332177916939423033683020566330331138293300890315740025586129307010695491727163854274780303073261212496053054646633219568213783133105193370052162585239672033610632375855951669084183480656372872982432509524514490209851968206755686956898407208971117237317614638759695398494760490947406207030087993212840460773964677108923901048763782492164878320166427012831481849452219675117054801099717603483490139346804118445747272372849657182193528144226717981592377593220556431010004839453895725887550314539624032354765603048243994328471788680368069127058006872163170179836286366351885018999170798016829081309966058975061700843290867709008187211839371127183337335086954852152533287239273125169288568083331234311918777870061582305675283797287888783829027395272539403421741502416733563762784138603267615546732716824662358483585837705640766788520368493430184571769010219959669967040043214482684028689133937591807922854048568853299143034721371017641370651198075220922672608851490390046690968699006053244717187365311830473286053539608383875771623367095395410005625824750123924041413730812259550175868108212728791371424770294692073297659146236822149975576089206946959456311466298674681245377155325452185668954015711426793540176658185747917556734462102847905084832205178945249580366678522831220117255681264604648458248383749347199306606219110662840203508969389294306960798871112806615299675776976194632074018331603815514673624633698839269780570239412505153710478073463871673777485323878119504765808988138372551506560019912543415881265684137486476778735396154761489542575681157714441295652528639092416637064133972890138444417518134660745041388252663501395984682419476156654162436821453515356030633010040290274795900153555142072309432317660212445065226689159104209832950359015235599986293819266575970714702843334750316470064857707271553385017087077687348302596669068186563962243782598499416897918613968335792835885337852281236638739109192270707420257091099623424057296969428989716832065058162732070817702262941435562434086625037792866032109144337247946409820451866654611571633028898420550819817110993162365855753002812937552656673128872300465881452155393126063740026018085400322483109235057169784452856495802200319588576712933031007906912190937954823860922464317432937080300812590468977644341527521658227995438233804066013860347397458389058605876539220731341210654963333540782586483353889161266764330352754670171091533577719534213595064555852130662824812776409286047525627099818303019703132089694295469318325833373903186309114583806028239930090986347382927913800883976405008828846397162561931462777675836657012258768314063871317080770670761605331847181818117728168971569569091950152702434585313125040343854605101482532550491183490050636473381109113728858616393610067346854197102895133617156517622383817159260556057475934149114009572870105226529510032117663006336457223750513945410174763494519876516416669170343786392983499907598385006945866265707665118249684070047149014693914843960527645772235709154258692415096857273374159863201087607813057170893289567498689889008210032288242264260739450521754238318390605703392470601735003031642308718840109110260993640319874079778696343265873019803706257815150939480751629026914463612041183206561916209439233989472283256296173885382816961296117331315249649725723488070090616797114915088666303894658056713517327198470374430607311556863858854016533623907893020883178210204204313917262388316047654333528536426105802588423948448418565672744683909759597192405623835978981571018601041856828955332506820337861543558382877980744914994489966375902190349862901231180655678634131895837981700219826535775890565176160542477883904518327545097586919445680301047746043730042919780249639357383817423114565804391822234693468112555412280737616750335843308877510192453166112052196279766170430097855075256660361565053697500650528709615652514986836814127662015919642984717496589890658774047188860469323251756716828512251343805973063865289127240934865515099913731791520422852589591975916525549584741900790526914722273832739948183465588405309525556372178953540403066258819406391452601702004737300239804167682105237231202320664594563583090674580414154231358321208088549349205768308197818930111529220804800020752992422650321076790593195368358551998138152538861043026305878486151909307303406650446552999947263250371866598991672169564813414147157560282137258827045686235040503479145027048837156085424614987946051680540756952374719306441572420528825163478897847607700886071947165120051089781136129291615254994597348734477336692337401939156909534105768080839672244524552612621630199426136117734833430484838237731815725013106650136548372007741862503539273113279846760403812064749231178888652802334485820172337479249757467805868833439271763226255995005002281298172269624368882092899481086079607429330915608309750577860941262882517194212935158284624994298042793299902672791092970271618369277080480336248295287045818020545228387492322103968042283667610449460859131975840145327832769762974353852362507993129103113890911353612528027948973180064328599724080518712634866280448400560958062510698689353502140271142287450068610778976999251300099885720578187632152900121458598442636827009566460891472916656541276741633489808508081214806667182554701204315126172520634028141887334775006552794443801495628035056541749963393963970048999753403748818059051374532017300967374058357262991369747211358962067799509744707233861843924035044006306634035881095937366548916569347529073869765530548651986006612352625600206174272733397601784816923388275154380020786401102811880418726357084922037373302834492604390194578078560359112826101673260505804206059049312093256276129162119870821385092993061003522831877715186248444111739207939955217976694103934629109358109668385126665061344321527760948308962315673677644411176789912446417451183976246580756745199382746480062206989089340482918231289670949147703333798815085720845377553127902847051587844194228916593899719645515691610777873517370407776869311193088494514031991706511941582311115162331210147125802742835469156821630645598347392216830960454312843751854561619389575188294092252886082788773840017623729142682506250827233840836772369407866857554670418285050648724441465856384367916703306118747803032998194692220826768913226949495533087314487785474597274306937508882106763524318221011362317492605925728603725323949525647384092525696641616276543678451066211444224915818232454626891221811906227346381368462120432021362094143562889210701919579952481480514696575187541904503294110717546353404442259603056828054522737820263488857167788944278727055308109417205423206673418489352882441856528023073380735551434387634067261610941474516072932895490411911054706248242524947230932479567304831418247438080759532737268831702565874773667928817214928977659611392495605840721515677551839620504576985914748966416116602288289905594820838099331312615247359676369907947067883316507291336655596549786543105952333076911766786008384604248662515340908052439964335277149130514148858211182273261801394066667645066717856708554826201768386431922536306904708347051189782270533525264287100093385241389242207240573034883515349251502410139520587554308901259850929521196984062440338674189079279939307403622437299748650658875519583335658530723300413187261044166144852195257354019470054324158449244739451119841031208925480417461945569244955684953732733040479432138951202957504352602951165635317591261073636849341532623352572230425045457882071899108941276961850647009923749698411775737269666986769834201512629946121121819622332533898923379529015872064272255655488493304188586628931698250744042339625854536193250597202706145113095142352484382519280616148487159664478900158029940895521602208081017998853908806831236526587193870403946809879061905868159053219716155799879591453579632845455439181537091112783241305967607760119884758599257572009984912526263445601693276986799272456201834693453790415771501390076765285941010637937533115141747403623655893078171749333767036049621130356582712352162860522946061216609268273279746328694494398504862876435942213845254264303432171276569888700834858837658613774097130806640922648642774328931210529583127464434345033364301992701899933859703488220113874911851098755796425720880954678036676817724880610418533832638567367158804951244003407713102743741208623597267534784422267538715416964369164819265356108321602783462177312848799665589993771242831009399454435216087677774328943394342863845004895035000374522043865880497240506927173993900035891311539317119884926674941534271746206285380160997703030269175045008995606932526475035719926382232929500474464670153049704744256806144473529053420913322052130827314645267808675172846634335889792825276208990259284384065845733806865704742995926957133538105151891982656910174189828238980869104463296503236731704450249801407297406055531884272302602880712765914561525014343190272577749403310740248695830346928954057781611607822503226473009503819343463507254533620855997267148052886141752854913034848183801318589225942979470923410939051545353681941770339187330543284247525961649704523407075451006217125216883826614254264800769075857162777489163626641459030950729121336046864175521198525896105779699316905715276471825752923877194921245074759459415278560923127399716268767938038396234149052951422555015926694758502547572558220953520454056370706139160797101015547217515313567974912727129073854753038306060940015703944733935443374884779687001289449715092813777649232215910458460247283502355498008855029927200735019413409534615795667381020220273250744598004283089643794208828016382208307609161024522615899252743462811296109474484264024587521981434964360739684461408710376276335309834316183462669648866407573392057702460350473112391691248002082729616859710597846503564378987722460843088036995845634569703605533550404645848911506413221056296759646470341648385849880921931178086605985132917416850566700502622240446333079495546371673393754469262565302313094956368905599452769604698816931275433813063842392653011186540390080990430004115869518429098687466792193008035297857459380483940138841246490991799764201657892377359094774188778272374700564749659061915819676602093714357244456570606823555601153270906391575663039496247391718944519983635609717179569549351343494572153594762594680140940628162442674998400927179332719948581369226205423686173712858057866180132573497408974646030939889316379041171244772599542668691512626145819802538428018812065778316329724866584237784891069967789931263539614553314855397681362225915007959215638661700168761397797543237392309866447876158402196162416912302937528929865106966871758894894599154841952780509169309744602831761337834807291739211876510564450578423221648836967436890013139878710104945608236236929011906506255671937332219210334482604603739816399057975511284823523186383171788172001632320455948394267771555221682020580570569614754798985943592479035269503938869205942814513972674637464111155293852736125137492190471025624659102326385718170600771754360550637685309391843130162517510260172486217762398428651893797207107405947874051684866759846968731441053056836476068445824100765305909980282924038111858027923191321711031313512511294907830083354689320363146326059658699061653841008664137653574733724833706850713620762304369097057601779321083627474985210640102197688821575588448339356390826414129172088330326012335041729938722590529435880363593032697832179493311118278700905446317225175999067017574871498302245627898126248111391861837160798899897802667190631725140361743593952916083159745292047782250650641293215028770317912108122300724846816184737939347427424819618215657499041456080278798080176784348480876900767992238499196529278375149729213313988414565551596497065315310685695621186937275018924840231650224438892704989224366779795433251045961864124005684109456727023253123675757973339628491997610147693200079968678940799934889314636341594847086988358451659763458153146249048013708655927066603579650100772526043767908917215575280957941447223778408153266999605656251207379764622275104134957928612968578177526392907757826928386735420749753880091331131506636066894013785043232359459745424757177523583090049658519171299242170273866605784028132079670592859758071292173178240574227554239233674247961400800863697802556883397052057226608034189350591584007419017870151051942293460294628734743980826617323586258699834647339284472950791033708423482626437596886635007576545910270758327022979306295556978469380001245051359031447806874355085489028594422318395654066898659946295890807850237519566040319135912770626411414054145075589640867265846865268898551615493331481883762371080943282226512950380728631078888324871312113424659809198688229227735996257913442265748435826785864369830357410489171610863179911725994051329088556725792638667102323167158689439219587147713868433713258610240652356172302147706694792614676129869252318178671614003292998544067025142653597896723782423894783699903109219973354561879175838564976423984354869410227550458088378367051767533757412448605236261122848303457815961666359471622127828308173653966609529482595342081210490042934420967870875654565500749081984737264903662217023878516385874382552842460624287208224575702053567115938959834521320080166147518615665605667004553502758606825908336295595687698519670477254239684096380000224161811433418318540962297667484795232261634763670186318023765274714174896619641978966241065778400112391712934429642523352620683313987966150690303450252715130701831736839034496420857383574362395282747025826268939547332153349885458500981960272592942974886370751832571343775133298904156387161310603837713562452625429331131692356516587489484789511809524540606299741908174286981413722813938524839655336835312021415275509587730596896991749324288944611276816748283446777784654092175778561815328921191870720375300908179352182047926309426698375634133621570233604276147030975388798719822913418911939354403136029284737973661572065520497236454120199757647115644147754884467775102175241108768917733433654598108625408401220485504532048369624866069037453816151379364077386459273437029734984899882413256147866203033075848597318516597222813889462671429000739559119219954164578034742327429082450372616539867729236825546952373265684554197758168245186822004335361729685129545499771062851380414396338055326210156168283864704718753144051380541255479112132886692206549109748735282755425677822051237750573947668586050209346257350852862901618192995280508107390705376220977353461567850998650577415311060372014916131958955701279836445867611151801894980328012601758053261922133037924723319727009284236874955718702815876881470910927002073393996750152769679757659543198012636022061470634728954845762589978406229794494651964601583410913798553599625166398567344911592702139421165025288676416140409675592396494593123483072700157778743373419071889936508290899259466584417686990173981624984101227870364883542886726215082994676887321188678790139938162234386112964464562818791117343888854182643850165411029114909976824203864996951979016526121106411393185325411473222857064159428730063689086204621160502065865458382736340846916954245498460824367640562169380500384229562846493359005242909163839997688548358492087901084117738464939041372166753183515955980024602225982105376873414466358718740687477500553281061614900939309982827318970746345929769977042785022319754550700522541090228040354891271304081059623803807544423812566887258649282928061815364838018576222945484724719685805555432931613839694978892293998489458955163510946541081718337834839496313845079840429998171931162843775910609628828005163032316252262570645727986354647839137319047218530726773703329581612567568756016585498596087569451119970575816268362063847280790596725981725626395236441127848354991878950450281081418949226603101275297635978564179240448812973822995702433347184593435298659127479781215214319670654940539082936446960062715508731910278102467994396608146309384818984463285334437048300488535393285883831453190832632258763111732163044615818842799247877006157803394071447227637040152121981904833829322761901997408485384873956738698255280555702684328259049257148786149488465889751525672029947229028457566329801805158880745918642339625366040295854470288654646047104363139152506568305589451004590251752354407133218722508025038174086098425273118242382479001330533639643137168607100504331243528281055815994749318118670774488074121693208573903820836274257176568076844583852569852086476696506277287503655744744682327039888455814091550185782605001604733401728463500870643037389947232185129327855320990038715131114462777530646618901285100211944066251931782254071028084215674770924831001138869400284134435238733042352286876508006572035691995665114821992319576137394956378951650384416967262315582897524703989434073343897619675784130760094658090131000704190282109664597100027130602778327150657754983653192920553729940222718003752643314735848881408453958504940050706599437667981744985278651374106162930280410729335695786938675397099791906958859253188622046934628386094290159771754403729865346151293037437550594292743111412401688179618591252918886072758976174261788198339699132184897766695318833331887390427584829708725914450576859618457455537396582150618884607536797691872348305351589885680569412230298002235724570227754883976099106165263939760253813377330254895929650344322462055903300488036374008919065375551750525528959093412156494008771114679060682013381056547539245074042130708059339975930439251072546443271199022133010468498087882481652653577370882385010873804699539853587059962717794913352224765515435017903064349532740405783621950089609649218068808069007187645558509071915637567497639561485637065457585861883188073325881823604417243551047781761426332369864478914569243544048433918007447718235843009715162848815049383281394861888048840248488525663638870259333974543172547321717144644584476950909940792557289702859579764074257524169825741608199268132459803419131102816226671808527607380761058657983732977438230961017858664057085724137223375686728871245615191714818627038955052805286762032690281899007207335055479943527111501301790226639512421773382483566647693879479372843812368795811860718346675716829209696379443101691653389973706406848779948073285917875176327353751866374629675485945960344795621123663175688342398889839321558410761577109955756612974215285040196732684616653615019172016020178189565601606889816324997097718393029166943930274591100933859782042735758112651498511017544429208780948290471059106676265470735563683703916463416828826117561843293180568507811200784248016243752564960244110087374642736294788158816284144537820898399702094559358217277602223080169794577172414492265288488796668382688514592398143376269476517529210944079226134021722884047837621628996306829676521841787703437421543639606311634009578201034271251637858433011979922995831944479824507268169496906813741672042529839524058697958042129831882872418024327758578475983001495887836269019235058848978854952389261593618610258357657197207542939009753774817664017577454860175947523493360387567990155212836980045454481369994100704537815450102082395417418038817823811652349547962406656998594215348185629771433251860223667497292431546144914481503612745065063054238282642969191883774560305275466075012839418708319851023479523149167996631940063173039632751597805274061285242597028502201477675718539098109917436737146569888133541667495223122254595627798604804118312087415598065767859654124625978238658938254097104169038355933190987133305129562515724813389779997406302294640149776463592937029302333978644718228411005564892324848809746918738089765874567018731435094832433887735533283889542296264892898934310118680432286946705667680561510808875025999878849996784630209377390797241709020771475987369379920729694438629678978881769294355926342624630984743863899649718255136205657003880814546198334735920473456436934796907859294179296016100939924647625991596716221396126012131507029548602742189575169645878237810117639226132262031319715917437229872937358722808306367954436819544057808945680682641378618532132152348989785212818505668414629697492611666542790322468071673007181745422252619844024021796635343078196818421931633579123318397468325422097759765926445253840891952777517339950624247546008106180259012099640384197261017731966429594195056781929867391981756019398844294203977326728407986627116491934932166996709411543447903234656745096946386150603798654279810101618086217139995555632328301861330192706671244923856347816022164420967744009365262325543979961379380585560793856732628499985246394811760196065750911068522716348491770378536262840243334407513542038496863498234502304959879045187629229868761886633341424396865200662581395038315402518460716524196761686759477215246018237437303851801841642909939309023432145970622346996583694446245973156132471178607777950942202046704466604733936008248086229553724332574511151621928889624019371795737138675989440889423629000108974461885695918393560798043421826686590663104209156971408707719300989922876263066628693623804872606024250545720767787555820803272433720900926435831905689675477124523757737939898423847799002657337342621899236899679456636387163896184292343558821146116010347950521855502541938073665002345904477738615005771896800583878979839843023000198971459819452554014437281566190309717006628641454323563303058965391077042244983820786393690968696385798229536545108714284420824798985944834136682362295923637240630371161638644318653987518405647508684370723017583868606574791893899291310583818635345429529478827655530776270419197553991964545327993608228300452510075168863790511041050425961677715825631900637844361296603633083784258801901088959927188948214468363531291501379817515051865000615641278118604028962853325864494949168463731256980540120561667300284732416671717263061530311385415605840988895949491299131258422893465113641221227127588486600771227321434589144650995457770313450898399614039420218262765885157742317034702826324934252188690916097347402510071602634255353109587872102661729271461818831472665372496294805229665685681173584263142618656772584171921046631681631727228490037461356022357639719969864735888137494559886979686172642863381960603054356674859994755390073745975818035882139906615994975965658486883257965452343490869920010755251585246458773149464686304447894810739968780914446277619525651115751094993149181586653514578239839606668363360852401007340127022351622920149575125638586113783178397255680926703760947748197139968373560835488703798606918526252203833603670661922802316212990070234456464559352582094066765918303771352292614548060967867427075523280237738214403546078609079056825746512563973150978480389530197382902944450553085237169388806789597934256917759887059982402903234812931085775472576594446179289588813456561667628952279217139243638353188872383584822003670890977227762224018374052680008496631708963448882981830576516905089338617459123430945721696062130814524184180726304124193376549365924851710680556565392335651645815227923552978405271717852940868143535337822605624182252890215517981463721232428685736407322853986649888553086631760729690728619485982615656843488727392169376696978667849469518278417612246887194891405676541087408698314926089556607609119348002876965318801522050153963538232075248910324938929532172469650793481419967154033142871902788459550272936474866329699057449016544774374820923352667782174803112988687933834782222765780383322534673012579363940012993291223118908109487310528580697903598274069947429107015736719312030108438812189478156418850777048420355790529275079781158765713550896560707032008326992158469501813461907158808207521680186628194332175401093814924367534100690686014630785537679368132031483222557986501562482870437682056492481024143290108742680718012597905285704772978489286461241331137182965867026916045952893737316568628453779586076468124887735365404052159224316455176261141535500825252590358092401200282427165608682036184982154975104581367826119016034975526717791487334108288879414263156664074557340409957760639040663456636689145386535208639041767626942970878370167157143301205015922630937291130492405060548836635667608574493592532027769765043625229758676534922234128725802398129480412066797807551740005509574608462143187836837997587066833171355909858455228351416928355905161528144455909830064401203170761098602766239419921982186494573264218997987715109107727907926596067315232399103216745984538986990525201815495532267127829126378815744188630756412147504681690475523108075210796777583984920474354180933073580264945249193137430948235475978216251002129705671761402683324308085756381377891711983355435574881006273744908867864383659057013586231795466090071914479457572467319451380118391459683320709433535220921526374442584166029910767008645566139604019304488128119373454282049507469388948830731351242022383880409753512210112792724807842276848431123163253228368655657148373034974272748504104965544301764763526720787222933139222682734464389861580222572816739348229682958134289856943202790417066877280656413562476188008500139641133643176797524487896776751921714193976370275972045783418119845331314863708260281980496627665012985381592108093726806306522403986379137586408984334995841647863465277499148029663254213980219979462192861218198283095736460195615679291013696827989702898251141490473774211865199498199576779909463031516532633508397685928155424927442029982211037469934892816843738255909129655975717743956116865731587724987739750052642780653259401683139300062024447575720231615931702342138526076331396318980885352413533845120853262351824066040016352073673307129255931713730565084551536927953201779864638792522093046068440252400255211693332784661999013129309489919790160086051784138249440698300370729459380546586855714006948490766843193242560604372761236912558385267108174906706925477098279666092452190226685790356739609271813900492193381631655517118024450900926182783732290852736618241234571735106683914309869931662496725731064541596450259707947379288856006423796163980225662008239822786633004476426390848791897880045084906748494576171182505345410679843561104609472376998708993547348921257643549490366396519706393554811626341316928197317172781886108489148814475912249805660189861570055553371520542247970163738136625888943379757611358831102338569441175325576086138055009270090683957429707897242063491559760102374173369709576578738623861425031791420077612100808400912437492352397981726982990967424311712921165333211319069146357669520289982293847040456645178474333697174109557087384690231398072769969719433360159133520186629501044370684277550106802610036264892312957137568384508538452485108987515674855649782298079463831418853064025155830770857692281636581562937018650866335885600153868684721141142587170491468968447251087073803659832768467078427265677386351100383728660907300911585777107995151381286064638543809859214188277254825882783300000982926157230188942711084657835508809922853492576418607339386926206895694484396314013931109360534913049538493556737199119508518513066504020201949882663161898761236090865626945823170314474531196335781413382605655671626373289325604975362820830626109397378403803520933993259634194565806840231394420794986887107754600364331802964706459817750920586783893761820217491989317896496769725699926754278755147575485728714833664463023159250521566108260386099564096365821399233675650244295118367801379079720164839938854487114969868363629344604952465624727999119878948621876740951113759079278417795179927036468078505411860094253630509878129263976904118448602912242903236320640687897693796797812550185845722327954395617880422038336536188519205386854228576490898301574303626299578793766481137853136301155310953241331766310967064569337072065743725063773267685065413139411372953760855140624226824109211519421360503978966936949073009365350676250722967717927126742275370033117017554168786374751826480887257040019951826601129588049423206358207525208521646984123036002345918501876930523341528990520982519715658978659200751674801208054304591272985974187440646584441885046617580091522107384053320484284501200992365812086038518544797292848970074381664221925725245146377524287162360495458853161174574141581685433101316756884555412912482626047072145690945289459063454971233706750343046928154937562393518696426619053184540045938270681383794172914223942214606162781399318042048782488535745210794701067757255148312385260484004826488471316817785782654471079914957942924981839736079505923375012743239100510723906882733923805390599759203511238330588205772721559319356611835489355131189348145921880341089349251151994127751572515987975806104963335464242898433586684224915166976164211720654237254310723253120831979603250434015337928093517075381893216209609461722868682225131019108339521291230762568270647867619802000551415984459430425928033019036713472363871697598339578654341897146937794909017091329175760973297917754618129302568845747735325400931114573603572646913640686758032075325970811162346808731614448101821991237403556326165678025372730370975053109948429120852627450493117379558700289735670507191121438200696835797578623573012472997587024863756321049161134813305217840535617079604918973841809685497241687926058583426255669321225728877851368066340084213792525965185178729704372624856260963699332184158093159525954980256196379930647172564480429259510955390332540707795646023431080621807441300353534002392919072993291243187467083224939404428695490523125248532377204285058134858868313181557142427397801564535908154574373257698212037728451348745166974949683673773777857646076547840089447350705318448276881615277859553548412446346421404648602704316196891340573859794599867108268449643839504496063014757362714068563937409760283311449240754558437657710174178206588272964984085860533327762548590635400295965590747144183431812839136558308382715998213624233142005426290657569128788292415969912612198491912294964286431184631622826431295478713848907040096728949460951866483822498866144332991936144343444193411862929761311323537363184128003931005822264386641936553358152285413396566887089257289385464597192092961091496112636976107630476922539055859994304973742289046303462282305990321796291178750734869116228344906906720826300386305598364051003678753683905643847437496695074781229339090808062738913948445684026279238142614879433914741696663901205358880158205373022288475737191552845720153633304385947718583659460779539745527624889002100775823037778886953432325968171945160744494037747966065759484867129217089129342674837156277727956546073930689812767816158202237591262171823341702456605913116329431842676447858854837945462245688262404892285016460750686166642037298644380718435446566937619857663078362760382258785863812602102181134632334964930862255324711334098078168090929997861354683890367582507977821542817842997230174594502485901518154322036461182170916085412284047583033838450145300687179833071423958857181156045571206152051975509044344922500842834357025882589194877385483652654713738154467437459064539227562800716970547592867541318683780080798345389942554167027148221830097598628623842678286371127673647850968511462933645904483916180345613764316983489871031247523207613294051166017543423446164991374590676832374707633176990793621113204906825910723060971007169807905353637938025177792282962461404703378454064038743308045319562370179070006200074187928205890532038335328370364029991247763612746746253664661073907870168718785919481862847779644092470889934933643065177609680214137916626503323612011437043920541630773453390485530307853612736885072162444400357846683200769817039129933125060320896389617304667797165057908116344168030080458416284693911565669015891852607422199264571083949322025867017845886204675626903784514754611597466048395309300085158921827299433119618248662135291228178139533258290166898018935461977659229899060408602483594830721039671009311523930087078737871919107750403913345634225600001543273888357941768102280302990966745667613901838059688792655424050135363243284080792600932474965682863045182433645834005872430703552169869971796282807443708016887503499018789929994543485420914730658906818544217124833552828961089977072089960643931289914104500361061788895528084111022459129015864586492422322999970319216001524729599616149641280553698336237498592760936766878344618607865381206934362985654714062717468146899390617101892049278893752843549968937091987066658125282688273816483718941985992630906975480131028309739610343809038638782935915023143293882508323101559899896425168876511836575407766379190739395858293901895978075794229613373769860863650129083251620149999041251854245665684686083314288876858448177949801989832326635867309933514906913618802597421612957161940348329251163209168937106491028303175301964631924271575773193482208407143276672290773140127878322142078564643689138489421569649112740521231261168053518019955676943311278332275138531621455353803370522981971649176600795415411862464283940986371911081345471904896512220938304486338457815469138304064226482289976650110722815770197816082964511866150210179672743749246811175983373176983747421368855377164099352629235140576555046923685152477564569013692292532610218894638629553372052652683003272997908543747889142904887533419523307242486967237536004220326016298631433332228823439335105589603772436345908969331391993362057792559221291812241654137198228307357406460649852740398336075545104548883828159943850758201626190509187525864229980825836970747840742872776398984793061901465056387841062019626151527729557918876485274508655670883232776096902588420510921322853026261036264749113853797270218636738973999159654601795675080863584289142460692195569295634171303370952542795565847990033560203592416696642805177373837090089147341781596368036681043865282333701635112227053733385781839247845288064983619169613611147299032486136588463290342365364050959506830359894913536482369764547388073211501575658543655240007005395837964939720422876634516920490256604830866874640338714971005960890116226760971508974003547174056290739985054065897560064382790552764291413192224099055051810218227819698904852780313499902640024979238474458154095601247565628726403891025293502009756396536908986543806115753384967496378717647231715541287354544503375850848202853726182403496654288747243687645034482691501166699278617741380017657463748585833496737169799086897388493717148496607889648505508700286853444664825390656300208127654379618767595238614982443512494289872764605695161519478163545907984982342109626046673294446631905666129685921729145365814028072113948573055882293699911909122385296939084160483747817365894737208309168856648942124922907664400770536750222389646908453203326179973270912862124944789895431013359099638709170502352931159848527338078688875656240445812546247860424001536698343174662311629674209609756919411514551199546936740247402453939682381907138212356289841492609408816007378729746081283789437734045424166254723902848581835470609870162392771464578842038120189748703153916334184090399605795325094860962912774644271815221261759246822710169809667108109139043435364460542930458655922390959016965588332128027389107308041275043850064418955694712731220914752662672635783917869690317159000486702304148528069085131115596738731751155566025946381934885719394206357529321781766453096332764305911616164925808587991081173534145592869204023376692720261705888343393473124598970207380700761241688027733164598106500976994122359945275443931004730272316368015174662658081289713866403579743652550636956211192171173496245932056230572830663371025074293933636171334401417852385484040061048649651569351872582812744270465197318809440699423364332316035760602010681538494857101660225151852585491845352872060830374437256800567862018767861568040745900011045241274879199416336596330512623555650605610158443071202366221933112208670749750389332874553005323247652115019869874455558232275380633916753616688397838454273113046942999853692263337263825257414869347864942819544308177403169711692126087566138080205883259203000685927527860736409802978607263047538196575537475463485224046775026545704054840854870120579416383909477928034598534560247916757307665587476532092659763279559646220788834804500359870532420417222528517167980470660280173657116817638836704988553199984840926762398092876065717871485092179206826284822700535266036914878017110544878106781140030686387490689822726586800604708435435826091227169101934481624194599846174927393468225703998077802228191482643161401789761350856528427848131304683032490641906211860707296484050036648890826068230647208972321901490446720153396849085711608347315586074784855088763266039613911326029726089952979273823729975825246351373849509321990506471246713933272746332577443050376101935376581996428397242982996889146299821337129363385541407313119469818706379288215172076767217573111295413023067368607966767019800139507160549487453027092463803859301460491483219987393322178882391768336037684336848823641024004261280128687799141672625608901929555202494103317207241499964866638460762657239748232975451894113912219277349744252886139938106312087654069579185517532990562728811022337928186831476634234141268664716832628952982475562993637582737361424157593756248946648508422284600796619292622633230293768563733165302512323933190959706727669921839485059662874333587497202931675992667263050589159062694205482938378153546799563670856257648020699699450679766433202107623741048695265940006014448510860216518530127599612126884848359769622148227989771839760552046684333064360639302178850340667002149693412381182444770895306178406812501856538929467577885449987594076708654231176572091137261727889232819014537533984144619306656003688012352485029702945824999462207899758890144020830422469882356907690438634022880769556134769966080223874505520010620618200858937203825941252201663278773462400028843544019584476434658847237080856049361023286212815267209236861496419767611622827979093841195456631691422414091567684338442102481476079421919068541083628950759555935417543612084302071209004446723560987796684171992635142879848124932034930586048765174723926789346319184258191133345681851044737866223198948744608922769505601997342687449639030540865161702371901538241484009609697912077320815091435050965099959986573760325481247386869653159516094756314289368842852549318041579795136258647374819160975058122328099470080053949340263451497408870850437410849115412995075842973142105123845766370397767879862662706790558440874051539841163226402791092101239302548337103775333139601855331818205833326228946409020338922172939251741880908378190201748400727114916263346210798700690664174394532973093992977718051425696476993934905070695912546814569856914614263421102105998538992980983146540956631897664181715459579184800461871435846073599028666732273250534344422289576808041228564021519042730944677082406589516365572504835881244177298593730099790157161104880377389040567984985765773404383791344115891862265942519427323302687264595080136291268496464368766097477879019125870587753038941185462103824009690714539254456889061695906742209188558446779564378942908813447429465942896682109056053375922608292448391291449712808990745924843840149852313907833554545270709811864331013731522913423300680252777686123040383745646420715426559879043281964204004933383440089521073783193743249256743213202910162801209891667657906911171461712131072770762313583789753261020117861991908647946319568862089968746519328444119173755603727903948129586075905937323150089826679209973348138322418642098734701777749548881462375031683894133472975291969332086949672437136045909088965380146287699904267278963233756049340535560972322599432973065058300680003126344005428159401219841382848249217812222651756458618073970190156856373332708545472609283463266689620740553048287583089606459641628343784530293828665474138235415229553650346161702631646048422741114370229423502441474000447685021807988408836091852212885798420796068627252897726935380830151641167054602895700958629502706671988212748775735553476078202586311232158062843349742858827439963318705679137757443763858185641518772709037815401121518269274312467952963062388985737110676487723000474231309992358556446827575886927831416377979709386069716638620639384596784334340105986484660657256505368095013635506289768579399631588613277469165003812637649237100964178727675593874283406914831391753589573762342240653421075881596857213204612451400340490055027427683575179688332011351406560155923769450054420268321823989155576148090559711353729110389419223742968027476232514339841400738405579134844177332441978553490180766855717939312022097339151233687796477453653783925913977927960800088661579669526840506645065223812206468111323488347182502296613241356960325788579326336941890786892968828700292610611806167476686647809433656721718355549024564469718472844544442730000161841903954791191960293293234858529227008617860997896526536188029298494478001185154905406489176368790048933066645715557890162097551516669088836256556535235986712094123301239273700707311090298675070700675116301285885526080661476007485043420694359760947843798339975543907628479070817392307623396205283470309709636099938942120329201357953219512858932523650821476781707022312848468713167565098038366092802172107146869463323459591983968842049204733049931477099834417334956027963208981260300955734464571365790973599318493184329663496977661190120611440237317311250964974022694860747776937204957851044791375327336035263244649193380553698732483844617108047786343358971750529304929588578219524333299860682410306072300386942489342379001321857533283018253812288879647472014115603679371845352240692771501743039875789560453509720956480362821772680709868504821048499700301639266211645897390594994896736613441667578124501274417018979033320558299680587941059489576191702417265712284880016021097999465960737635006666448318853058750299798918155519063337156364515865318225969860495816467179004977107696245685344856853599248585945151039276735139486462790227334317990666726734315541916371906110942062086607529370859924055169445924463941655024499342027421376691635181140577138085740413192009006504489866627056566976398863000812760396974664889362677269003800103062351949596352816670271581409665891098548372496357560880551155181054551914246765424568776215140232457604780903518336737349065378433760753413450211662254272859279273460325335695486981741883966099319693979552608531160822467966168799934254782833157728886476362098993809072507494749421108319101638611838660315367134922426790224791958463721123652329774459315233136224475822248083197218558312118248957487329590792760034860614147441506674577629699982835353779691545891044832189186471337081808163389219936986489459138332993386586214094672788184190384999066168649212162982853433252071768537282530264930244242184769208346039983809770790943331044649237411312176074250007656399203934410184497319745830910419799770664249487277546301443082965208290713773345835266568926726107580529843585574427946045789933506213269501467563863797072870736641220973921817919847704413434931042513360367676080129873458441397663787274293754175058389565937248469109067390311860517476258469644120557059991246774599818346022315983951006769036338719775758597294142944615829849496392248874665832043170978259065374700830095672982733610215416987710522974392975261251629914880161852113154514672554547792244081860660757819441142493008603775790673570327529915618800106118232313594738716360354574417146769735514357552954939524596261590952983429025492906488756680874387925716474172186488858239496170450245641739714400809035703683602440231315544373444141651917378802062957643813445426667690141562169112791690199460527912530015685195041112153086192628875957152472122474538103872875101111484656546159562937740824608037684129729667517912346137535893416960717179703007272215425202772858453425451550886768197441812494161529697805205058920023983250098556068486395921630761767271531613644862432253319937391167975268891439400555735818368252543866571794167432947454129491774287800899393314797656273453934567208359242450128518324609352287889885149253008191717519876361576678073824914132713398883939477445737974665634002942571129439288534611842565769011165547542216155534935247931516164616032509381218828215067561525198531240349359260570459470374035141294410791645389340079224316630800277387043973125849383521704253166783683595861213098019072979056431249644053863948569732564276612400147875546499151925700827421328557335118614514049546462113423072295921535707526890141166241856994530996370619061208393199089417051399066105167794900855582311911466487091927820759134222597685934154768352799339327680781507690872204585659668316235718775652911161689484005221816429363615013585854143213248622702729789415962585496134195039414483453885583418477833753756208787470586895709462512251344393674292922537557433372435130188267210035693594305999533587024778692659207511771645117074812851317853848667646476820769344795630082010118983236046715469281773606559856775606790577514595733400947054630422776079344067538365353562834370952816735930174846735759411379901924733737643224356852315565963611649498196077653356159493932008308369346211010231593316252928687785782370249230120546595060637166019968856804321822967681170166594353524336421183185762978230749204176991403148122813459242216380529850591978910472675846639194137663492688011748796870537223704070718640726034520334866145158776366065560428477725905530984940880111484355891885347331444473567662445007864807272622788189536557615269147717238889335146275742504356883228935946224638412759955313344117839535624281908947301159006625110910308230315185719173391476553589627763285880654499457692886629108866424554366254878094135641542767487921223864096205381189291043419907770571291343368094814109852146182746457406671773173896137981800191784161334661214842095858890259187365354422625052988795168872062135837586301005200921217741194495593789038835698623843592012241354378969600041156052940085783022374947115963516437551227139912432314844499307815335751270990744750884837280263736118792104908230024680672157882241073863000358344991191185065259872971397382721305110937253094340263543882255932155098760501133871347024624231763778038763456878224675174817147960653021645269940175530872912252631657527340865559263663964238892577856868660688606176454432151005829691768590572319488720722972900182968981462954632565301316418921250567841162230087312272931528035147681231976463545293685283600286584002188688753718727083896870954515779280232731240723358950926225838472209570783111476461511888758624188271319564739599339742942370678336985062221614816041537914620015995733685924571862701077609502288566176003838569582737984111293008606528540801119826903251598272184821022384406395321026611816792039186804736485014187412760313640818174403108548145260613275023961265543151632609705070689367809622234817555126948817881758948988489608608373091878604648924594835695039094242064288304858489636891667344711093556171267205692853299800570222115775801940902130673845223387100838155343073583166447311975758093037688952539749362316712214203015892994095677898783321474698491838864291721032297336365290887741365188642224156761468126970181371621420909793854486594225084186623117529216933630563549540584743456628732322241996142637014353582179576007295792303620551763335945255122681179616831684724255522564531494103341672151895082442691600625879632545054690955740890420713408694983182411897720000769203554981881565575281014848358711111480266903670343354373571761504741032722376154801929792646425463901454990933328981576828561439294512373971006816182367681869476804161077327842493089598055608806084508260524476087615054280481505990007522408904878256164260583993235444338001261529460581766571787525194213606319689525307967326293301795062888931150139522755984137806225288618458356940577585776709585250444853903995084489627601952629098410938120842985570913801729105297733975498401554225918939339604347642086188927979461105561633826317912469319720823176222473944946060071034721120331377033082999754484273923375290596866763834765742317518852380482371296304307076431872453986971961494563215068811769943202224343620222840874225679222100724024231354289509159480430679948234031930718373852429464464603677840124151839886737623873442292417406736958485118460810521839664697408508709170684243681088708004823638820113317593972079382400091405119285084768016502861773884521593502680711750728283276331981063995026247787659409540243036217580030938414967027323557363829160624764943505493389670416524854466807697889465211840950084127517997086233406904973134865353497524212411191261264695790911184186849374644853052127939474376218430968143452920232695781793521895153911831117944063689236509765835380227279995247538549136206524704062581878364351221851549233589988515026788733497366835459490520519738888887826242891065246752245175105875405970739434752170008751865075029174694462758644907900839270781386521832622003957369538168118887873638373456574363976321223966836671139825852795708600031565945588873418609503064265081552848700965870139206225604730772379241103329656212396929351231897085942691379056254858751441799353677671534113947838815913165695415896409880371998875950416428542176707908947955040021146134413174613939221606382909300745779147350775726912061384077709982829314719631037361793422739214442838290753925875045855180148648042462113527249464497055599897980118984003703024723692610202707119857101877733613602407433227435260646304785775694589300807940441728849222101643303647942456542053364494006126798857151729364836985751830170120804198440475033584628567336539310326502669817697706896151413999682966566485875064654333192872317969928620054721488936587727185863586378677271443897270768325876125710260226801255928473128555540093749333524097231868410425353231861815178914213610282193684139925001779439883710770645190321794486458512222409547716553415629773272948820408281026146878194260447063271189268148952933573303954127465104940719193739241398209342137812358389622124180601869361265855771162740415080553544154063160072577495412003252040392180831020463855868318540209438688251152050444852676496645458667302603824263853996368869920908335813017457920842453640322278452454316723077169207124971751340210950645700674770316098788474389645298413919754125670378580705931041018513834214221967939757104166325646735441258830858000677649355654659954410097681246397544283355096446614079744499809358589548544145523534912277177046130901585535306631621215418461572134126632045100427893257609889413326430008829287974279357465575022669609666896784069875333841878871061608494242312843152628462433025699837891809801863952500406980927535069305917081267996935894725301395328624761610046026727291748132968005083154065441801805484936219035654439567080597947118221502142462872407986814553198965088356162558025102586873558812707098226249056773976311174300295587820180684492948114548294967279174314313107604206645181284486671262556135154964643580698224672887566689874587729032246380306008367641773405947328473118327139855694325608252025304335705864210059896400727619102336849836970055048275760465200462842290150718056869781926446434428125004605689188697610215616424332919019327968451881382378963904913685267694376584437863547916004548548050642318748654616299027587671180832755097865041596932228552382724812243772427484833884929872223758580823747053759340048930233364989140817554865928299533693656425183178328903713874771741326863806180738956395001695686670946212558681548457026102127790107764084438908334679694794682515164692857761838655923222992825328317423993426833778350134663682125115863685781901867416207564131736193967181626374384040500052445401574922708801313834467778706729497150645742647232615414609851848752331630230915823735845922881162977447694785209968385569472754870198448379118532942953291074255034135082912340417676679927529774851902536358697764375348721287121960438549215638448986516223173596179249325813872309157500441981459810154046978433680924735931014828123208994056393496433087948860697019370446542052074593647666194435769197557430931296129715311765412388169342243908111471819372569752758378953929898923720153541757134732007761583499898030923228762923161331930864017092162000593072531989769516864733161091617867758035891033621225840225049576762621188598577307043392932618183308500072564713245872952313788482212761122934241854763529693705369130863858363139462101003804283567018008375373752736769724967457680885397944459277132500212814666363003970853872641843690473433308013046121022379022520125176569416359299293241872506676632621882225917702490276796327638717314525129074715819979566176371733959633729334887047273116659197973876266957665969500371466452930570341056371455979632367280573027095340097636412818593521213742985736939119996015519555616804916271737308549238646251420699029798233120474001500455480515177441333971397440808850469142003005837503483974742086835338758319120722624101261544153552841267268565406439683719471930039174041701216726645284429565901137833724723691668165931286161101705620782978011288893848684851293004731264460080628691084624358349226640835585974302492483552598908024567133639630401596744310791077592756103593634497395813482444319533418772332491647027969304078591108043911081856254315455508173321558315639879595278417044613463705318275369427229517591202338072535216326463285870556324234415376261317541820187060535489319786616278111825718266999288621890753670739760283640437603711880365398874867377663571938836785324116163619054449795276421571513564833743829055928123657680398012841022490346426918617041315799329532161118078266397152956906838006156862116215788455679845691638033305868823604653691506459542644151763091696258522578884684585740468432852128049758324166190922730032973488209754032739438908420530372603594887949882289721678653558807630373208887633362855204687163292281862348402200618303186818957467306022655338158268135591180161229515528317796183631580641650483858790672380388030196168037211205087021928048082480387834532876731519887147394767591452694454565742938616047690017642390312864363575326976613772795966063086741497237003084417866383670902851494750400517158215543117727462813412724344482022038024955687211462987507159841420398155244335193536209512340588564208643109350693247558928191343108206601682477455215739179592481492730636101411602399036861717276210716937333680701230553528238496656951651862161525801399773152773312129437341092489715422351541442143682060268979631306887698819471132140906448840667754676349751100557925746684993043282616415662807095271105013028614750251882246268411043939899702228383317197320851236962349396721103090089844831284269981471172288616274188052715027022907126244572570020664713102307822326707411407560181896813421672739212039695970134155866579278796303963396796249054732919354241889587592962004356491787049820249787316450447118646475862037279351329509527723803626389516502219422443691445721618546367562881948513516170337286315592139507734063773235185304882245383131419100364742425854521797600685948143395875301114356928334392602169675514872693712112966654369266189652595513809867541269680045733686122654757609485022275231782001242073026923465116244990308253739061393410772844082198795292436862922713612825264086653837629845913829827247416193717486235874408352549793674495543996239621949546389784832959074871455021726886258860202037127534135090684306847910522351789445526588446575806614124546405831396770166462968785432518236397093233146037646600766036579542235927526939142311333297469573521674573424885605711611291794403397658585940072624796719839745656797825130048332352377360733819980018457044835550354179722797149707518169536437910226932878186313451638580701786339022327618255714280145903160342579982684190903696265287045493087539918199112724897877976923324066257411931897573185973867842915912868981680210510948963391533304710479546465643470247439660511239344373694560591187649547941351384451695916483543906122575830584524795155517912034705807288012744003504543932013567263480471983929092525328034237379216189367979783606320363649911795106534156824124303414467893446334794103794723030781200878460528332443284369239229291551917909637030946168807958300942853137574375792075617511527906736014021591487469289970672021759555020803769410147710811359522504606150742673888866407910114113516210692187421191453408536664567332445090274332014999066293649826644960421406718498838545072945692575609851694516888324543746755074883749227627235460230202236028612026945486365904610474549476777966273169784855738261212939257328890050907643390145659116471097533045436064240607027654423191322152920920885680080700075711914321966911147894741452141256674768154143164009928871462464387588625586569529686914341195498450388400854616221667538948461010613135049885251972505922877662608841995488258301583652193673118639963298532051072350360422743741310012339717337993417156045767527165923693947246117099077341006607969396735128140942492867326390720199192521400311278939692116133947381790424642101563028338442257366631777254050894139448129756423142745666024928832816605050463737717163441916038125463920734305465560290516862362466674387750801177855034452094952703815544423249690142345733634650731312999052782606221746794391709535157750040880082089387395081696596137948938170878800185247693046622659171470828076304337401473070591094933744319656786625496814477767132304551215295333481005799961954961515540852671922269436953864132111603312049992532799749285518965037776949624101823788294732516210465408982561688430030724292068201759654599973411836613199641032896933015570065693332395781024317279734399089475363602698418357889432112914818148103014797365293991667948541713245635232069356065311618178682466215015945000820979989075276231457572272544397158731918321280449066121123577921554941715714212521362115436876031860807246266538675985049562145123878919600760177642472793167540954406126427124050363790138408532871121331243532130741640216048068723914896062147139082442583034618678082507290893803525621259325250870179932285206983150508462027047557301232980459419830698835715175891671368691926408671293402629704493345409614218969254229674241157036143888825576921728866744576489501634269296040887871819946920108166320565737259054629179340212793860274716734619312067118832330354562748360497643015674441657736446795421373737546050310531286908444510367884544577130198908394017114422854120338679092349310114011345086594018856430950356682411134496303850054837339905634521004655537101741213537794047319702015540595005315343912367221823263737332242935099173172361575666013191967202973160661492791912602494480357225274638138275400383985965529681387559828451423078754753581005309634743792171701055799860310461803926819355750474977583776834814690319862509345897560946716954628458419501146272157959613574405197109138627797238309190792515700792055290571575570012373002232482035339842886569751817290867948495758374215082296367902045106450489811474889080414598131698748017877297750805019054286254656985153353133053670474697761796906012997113347787181387944907274401097042491460894713120556230358995781917353979041851721341227934170833588418462347582126950212415536550726223609957806511731070595231947819603652292821331409097087927321566808369547508670705682877401279951369248766533582761173726889401587924475672616538118102861082604339922868555756214886561296102381750043016018337099238548886472864464278838816371291944878003678974916632291386397087583672013670743637573325107218584923250475626545540514424584447284463774332868904256091978205555832122528418806543011229278056892119066978524679619827181181356532058711548212234361859878697624513190197001114725422572901094018321560099440856807484753220050132983700295273955058113123629236233112603814441549832102329758619521325866519046985532453291323264945805159563344250453592750241949918990392483090947463156188869325553251614002328384968145149562174060525618854589479176956797520603908724469935441048369507767064439293754671031596022123786904757130498500954738235412453272952912760388610575633340289243256691505660022032447377547568694525284848534095774044080468505668231621190179177657825294260550473411427453450223982064545196826021708963852600196433343162712549673972289104247272287723724798997077365475564515760948291111405290086425093665940912030460515493070828774987455417945679935387237778889683795999069346251072231359358791229732587038704282222765141662373515420969446931069972999763298531958032018282605466239047580616865152012875274836241920817534080089254631350293250850934379953455511972401209015731067456901032730653593944194805076226339218703015985704421359280661414252327795809332343474272725439234509811038996645148177812018610900339815807455603713965623368073869941782479459026294993009740877178565671942897291174629291615536862373739955531739867418821385910217788973173104622681192537215765132261239677391211305737195204849777179357989134981252063174808903922127914465488352704220559449710079559124298129540163568152652338667489820457978979225374907215889001275704752223079217288809496372542178863895436999958639611052235131249731214958331021022203055387620428773121263440889618932921023673122785606457710212142603668452533537330599100603054066881123286807390482260111175873761814502942023058253997511778458624866486068840748425893077757348076599883538487485243200668108556418751841567839377937245190474573165769781920022136268853148144328982077065198457038363192394675337687021949751939571400957493331846464389431406047532889214464314865046207686720651020241923442433644740725367915247622316205127510115814399771038380952732341906189300111363522181210778041267636352838079592778752184913750089034344843565404857212350298880624704951918436899656674494519813796954102944024892380801957936943753786067424438751255805141470617242421854196779040271296838242049434363497031399533682821053404871187244040643989524768119689290575369771274619497633009326330498395138930873062478309116949128658998437053437612127670395410445558056107541941235653963985500329928273153408294174702571738248609009633647458955267308902581340202663898170266955371315432847409334512382965262749942538822363112055184294144192131341346614373961057100944804219763899860768204812464650202822324214369125847898474232039785329268866894428936371595932760645654625520597710207205932130951897450777653900753449465034381968740826877251706915942306806946158044908343633631227371124523834006060154980800356609151167532863717736509968564466439735160802516272442359754690922729640045712609807722948862079344987886262449743462940550749153829371862361602494335891653637886547151237294700358572941168706893934609784994434013872927937317320997318645119811499154123702984343344651497813613372131274021426508589355725805801603165073106026520832405146103232384716585166936571321533004274403774118657040974563683259682639621520838236898807948510829188383384409806766920629929613977680890495719193032074113693786300684684160194848333996367533953041447505609366639958078724627960577940812927571224219012253774167582727106388508997881863472479453771974136906906752745188498276425143332299376666904521550065311505075700228791949217256907243258086043145712539595345960418581031067295196524173123260516538932850310056577741614010151645997044306154276292549819252965918108194925940083796039253648683684297730355012749711440006105212343670351842232985535669530742004876553950968542687155380249050102669691535459729634759313026519184582546214280862869419822683422038147357366505622715252592836602503014688872088271524171806382460495088571939089676685146401201511302269489032118039879269150188637511422273138234954408851428702371744790575460772771903167539147199347371026716593978399467145446159355946361042880360658184509923563027539500881343325544687277033883818878297252054468550315753050693091020130481701822991455008272331582038343197994330268667845871826898415842295057969481626608673216746776494887750741584803554048458780600529971738857832448420947080740463386045464923392205642271678052896109064453143971020533186643293542904209738345094518119530049965490709272809757801459432789408393380452350790992080593169958616245107308646541372571209319281893952442278795388857821456760989873217365287201951062180685314234523421713246545242004466624213515024104118275187877345722625396091472516488908353822420048570332835120530361978933057023889220112947985451105972590251224893103261320754071018386233721597972847051527099055188467181097247756989866902653653860528532719553351881375048547406902298386500570973881470824180702832222242390279272106932293415603919389133727837414428549268494121692535966203824714539421810288323713505600580254772821851730578969565328414629045106851105849234137074305897640183428558086797820899739009353838937562731710789750645556488846330623497290876469722884878709684463705045666981445879860749979116512888026302162480402047172571455080782395793477270983493621961517644663538274767422949062272373888693475764101465269362474497603268570925148321911458609559822549315665714109428130395342988332822609733310292576162491472976872270737388901721727109165164109856552803028713155381734333750370373412146860127082487241290440541068787877872222287968991937448411825371173928196384831195126527263211439222759944292193063669077101670926700870308769098630944899167033240683742425518822303690321779616421361078143114690796620339137361246419827935437888111922239043657185257185464677145727336269586106758829095691801781558765259358773693499663407131345050822115541616179423839806899586081031251150159816280370414863685698597855625485365887179739043436748735442031623863006396531515222349915070075631618427309344286638053727747653419426872686880369042886208266158228914327906394591325381866814114916502303176157926867134377702114445771959440399861529661136095905834606541031853368095235602352550385748153289657598918263680572818541729842678303381912958567073057366090163130160943403353025855753736358613118524968837352710992654158063021973019499236438735345677186138868747768713506041220186503548088426224821584854802056692104685146073318586473448585165937506965852479324782257621781609484557742471611599809783443390170956881364661800016502975009326007266761792139997551134009347635593228891118146611487380790216299587554701157900367872102706528170778658421860661246841519524978752650668189532469427966533070121504172668702260126070006830879864879243472409309314950808690068154147900619065655127163197723797491707537050739149325725360525353578392884404212878021509504246142174830544267040717108237050249089485569810391079856618381137629357193278392766818733733547429463935778387367456551121290180666302522211686904623525908295015831024168081379802220120629515585804727984426587788282611159900096411349144852128081789755110150516230028715708543636117060828744806946477433867730447099120904537924545023646516656429375585302629920406065645136787193647599861838681056855065404290999501488671645935503694579523228735048906030405006886219934927814535526578102591953090362481768513037633578841476280860475847489290706245865625289962493994314835331857836736300304600830904648049329981376149700998244230023688989785585783116794381478113894735184107941863249768168527796515917045639187503197703581234702723279583792002337470012585193601270516280445030248531414994180447565461909280841927984784731478196329221304415636549660714157860212392953838168479773961000315991584545349739770027386169878819978433622065483694968050405556540740047192293910588934188353142019523765434826499009994463537438871724250920595240270575372801576361367675251693225588696777427998415270426421556281793898263252832386471450260562215442605366723703733033877339279423533009282609201714531009449916244475824997468571587398258512931378578197815475430479365122106516685223119963894078511771756364505288175486004007936415062445158755301776794615531504877812545008341253732081188047056364834193320364856224002982188617659876400657239151228898579807040995460645340044856171850922903648215061706369140235709158185084137009700275202837351207026983780884041193711901544089005137004561797785022503874528461633203269148981569819640182868076158291642070988206168427196802278150085627215646952221036577313538187514603831366197407844221073328695024963816863988752992222860768600277658321229553210615949181511938772938611400044065590398894533719730353551725139791647528768401831733110364625355033211145203570787005318467812182086897110979080414266918819665332656315507641363032163147102845563009008624448222953130966426907315837911061698486091715239963492439351229390568755930469668406744634670567451232600761699442189407231806291265180664266841849581037997446793527338395295916095341449687267218454601754632619376752240053803018577262974785683101114378452675316985665597763665722623726320115890844984536269130682113637352075593495560141481360181628765237472867587142198061970180206167904248370433386189703687895985749615336529586688004032881413109093390873547530260154013431503123771063223836402580916423184012439153757580044606191048442822212247254839509580845355173391865451700394241479210142385428843063873495613953702076452173443830089661138757299994928264298753641074398344421750256329314074913664908791396724210420644160422423220765978917025456277827586462071895352802109654539420032393312021420042815988169128717320319096586938429005725555471538236211100234067388936483346277183706592639590195991890524426450942433769195858842583596583962737402870436184907499115909369384875336274275021837029573479873564587903478930958059827289491976281405810786109843644218867544953738841984884847331235091262378947458896204760610395941763947990836064500725897069167230111114505912658449641569326257797080498875331858724757745562303464043457956235649337070254020911184755369428987410432831476314979288108776212469435140566121036744474172567665070187228374231874717728458448573995698853498946589220723392319427530452880219274486854461680853734161333304069978494758541223865494478652405277336864630269312439748886787068860091752512113852895576815341528334077589314614420815865901761461629960699381087889847717047829688719088881687862322907507380690526880029976952832503956704211317109188882965522015541641992058703793872751936982023389002525611534881996342314281918876899018959511036328487696213430135453164611861330780867171694404450810611147392966413296777036976457392762222764739116487531662118341226825689837438314152582361618289042095893745021561470548555595155949442989882657227394664452159578015327998101675541664441181414104942258902792814163251058135637755142973950345444212991393754741717876943256462582849487159073160849366172951153213263133712650959338198022064367466044324986374391809898651417744978416062993028488653621181465292227767151297364546587283192711120716273487159935362641666258813387859294913022151697844294833733735609730140694676977541228334608760235960686162424812913560374296237899513087063343641377614158614462307558434532346649448497941426351459029488275002017910268666091287540126762137276969613768823760480865436522098333647341093592638995915174902631929095901935441576754550867770853532380304658117565752139035721871705875844494396626485496907416670609642535010824308298998590020147265411783252185760318929783249275679168579516063022083380346970665439910455927876696890245996100899611508909598255707396933035164413914980973415093945127637851389286496640740446173277513356678834694302152875131424751210032548476308964192152102356964137285296410675030394601507553380125149858918797403146180751743408573542673750353119155323152649630100627958776562059233312695946087044062867953433276640806214317316583420133891203792692522264806426255195929122620987500353818696740235172861730304590673679863058301950762203683830187866272522281328674624138603602913369624044475899613290444908029056709051504927388114052301973392247326075772819064097749897735437402064824187379341409955750997390851211211146987493337690739768840141860476139916776255329807814597120441259792786475029315346702581411251696491005136695842253042085384377029848632416954318771275134086579332726332334308431081746843213984925367156083030543376921973817221433220261106499703631558443355620896699458689885801619982062087654116282844825629049779033736738156970730390473159171969732648921541183983254740978665725593111202354256122568476158249129365977142747152812473624474430250821826559136100411580486023639410002280296668982033024412550319846319012284573708612593906317299550416265529160759823984147133000531260927183511808586500431205267234390389829676561109794345761919506172736687584578925286157549187808748881279331661903913301826984353113365562219410013278900352753676419431099065436001810624568643610835656701312222739924501986884878624947356047052858104400329463962398900925317696269428794541518269590100555602973882304526390498354200975935828727409519046435657970970046492386126086750780013890362356866040321264269710904092752167248581897083648413160110199291172278843121228341523038632009087316918204466174275600470226989125621701051261172252744447132103574702776822066528444537691210493355270845074943013085522655006800665340072849643351228385831186127710674454046483159028518361761670647597256366911617039482177547752762688783624761381807797504345488788539817849361640445412689131151502239407719196409107970343949858864336097740113607133181446185515884592792166869838345381433638291356609960127146592836779015730909008749208897276642450047728991875905347858642342617329186070546072085385535945952218618591018164985384968107823987702789770632913209700384929225832752274428656703121566012632602370329908770018175821516964729060777982276595774985985237739177100336673784825811006051656395390090351704478943466533696448429896271266638240035606065059173712349662706830082587575513287848224600905986652874322858959055106456122274701724320207960428890240670482390847431106866427781145908831891774997886203107282011887549925751438144707951623304536442998546764701951869953859716821411223629359788950359351594267781602666084874030766508737640179588742052442915280055666212244906902569954261754438509206142410029810265417776405419046229158170204557268414399677879453650742143911565483984196996816972746598780329602294930762816689490758867525996954782351947609683754124398586831001341653159722138473628874714938007434120619316116529067569863158391340141810521199740606343361718441486802144840745662643221007250248238177163076280304478408380643187558175534931916353595400997594751164506515854904365081520568379622973766850932424410393684433841757452546212493343671012983122601667680889581411307203898736388515064550683193573962523598837153089450311893277786461842318715083335520419124350113089044992792649977310931493430540649642953645659373231278531069740850356003029953743732119535496018723189338741848226911794562386657506318479396889246560507294724780597261304466561428284503308486521617520332529680529195127551644616815634257853440231227460897153707973117197233423256830411328042325893161820565667406082484642945710964355135236246169247310306554854801193605019365853683938151178069598426205729226834948489441639144095576100434487182075188573538775614514781318986591557635388797938760552790463343460424906961225394295135922425623185270782689592012759265268385284647007153718710451660565016203543524568852571690031418886068931890243034822154908836410276173383133165359870097772258028089606399587837764351540001888036567900072121802459562541316973478341224178393259565454706111114449273084284256978870427389678977774786563730036389510355685027845285730037101503531039446845501313966864513990138561680721589691568183151071662918732114817416527457581541993161636401480676773671497726413710744963515406921356903257254881320144423004471255494558954777183168967339060414551389106177525707351030750628058881048458543017836144872418625533606200546103037239265991991220716416403649834935813476594879120764217265217901694476692366698807582306028216022724541998618108564922639798091922968644932353507060760400053623226756759811739256684558526900355385092475298543765818061432809471624358122759109406660763865588728227106231570118984700262213626447575005161155151602933828526313591018236772716279221367562329528423358567161963966232166338010882315205917692481508147712015122741249621464544779511508041383466058955409729807288670861380935957786597975114448018156703256395592005750844291686745950230646062224317799884763334790155535133384365654601553000559589453380736967513564709336359530221818678050638157589160873384238414086451298644291022446481930140684386244442559681770884168611944538160758367332535846177464898399279165275250438360797831235839922841825573238456519751349547229549423186479215960651591413591366009705269651854049098454337108567881409634922607861171093589642131224538443540117895418559422340556018533062870603462297902182313651338422719899476482976989619695714543679052799787802268202481306926493014803983871660149753762907571307027846526686415795334894212263532412936911813988632705305079268763532367883962829429459093867660540208824109806725299925594912520014963588916135594049255430677714658024409572752513680185625646657357874420032965526353398438466632692921393489784781677418334441580666449926083442788342796137253993040784639749121457904695298557753117505970885504752779897837790941640338965992813790048215568790606630940717298901588072086729059161856126435196912771154515636705014639586578355270682119753100991823738539059606519883026865036508286279847551951527550356039942916930309670150994226275778322387457419038757312669385748521335706838277237260628875117777587182244828190728964391483017694572923131051062298950170257288809023286484352695445686695503513248855551284290187268926215299747321013284443797793947893710227691045912237183988131226181875125341450813306826036963279618176994540529931835725867078134648785452894036649601324297910592472382739412926668847026339471883689169118079329605884743631317893169773792807882873318546574010917192240496906008199194296320488950110011407436844343101850790411126077091950918014103983133120633968659709864157196377271437042659417612580487931385402759406379733893976721679226637657433174151992895033129116147482643903912850057789655691392875263250157889866099404840565680308053138777772770984762328983245584264842652510746367777137216124397513515336678386752111551720539644608205441727824064493046557739275342870771416751195953716255639584845477639775820172662128913565878658158096166655104521317639089447672513053248624202568885013975757638738151217696233762228090482379900224905557442579228870610257517519802132417701302325367231682547288973621122483386768726171959618897551313289576605669014393630318430968155788235435300928374034240434466631590304920183543980866290160767745836418783191838213151171411234910743032160174944223798702432051705055267778499182416689906693517096886400791866326516095638786996369044368916263519575742722986436527577878075417253513552136755244047339905029643089397305794131957276412208553829639621591617918788436435821784608206235518074049999810058976080209663423927444081681524958707178428558134295722520962104363643638105747527677326097687062084326656946342845305077474844034930569865318065673727548264593422353732402956208084124334298263044786438217956951601453964655419398313962116672972080698852901765915438070902665674274505139908044486214859976842948840304584414052238697979046708781057346276444316301847127207389007176048319163414251915894742416075224693714807540082534598061268890841912621790697867005426203347468832409984081684297141280672980920756486983370028525994316384267574831472105273211275470708258915014651258684810546155023095444540337840331454482343978276146997351612254584666765970898135437355224742220363241274918030409258038121654189503675982031983022598095972489875671447918475922335854190586781290741164092665649462417170213306592867895495560724394819346703211362072516614397614600561501528455278989211223584423333054673940493134607271698858429703506908603459915094667142444764313433182640106617779410195818865004913508615865106916932962160758848046136388642928761330578827832495622269190294872427092899144443546517992105414637869856079694903244686444348592491293238240059764824171872687998973055341264971776127874182808176354618523775881753679077940939699894769440560850358496748243601819881513088329196945704317370828364847774546624471910196570748909599709841025774308552649715134395869339526349453359434503578555800018333013683841316439225376941769348800392193344911113269050780662664801032587864079490709302505177620173338319027861219427968177260596393474748221971466491482236249367755313517290910208231737091835137439517764123660820398003477458607214238101896385483500111474097247803041526781294547718905886583275787463372938349252770815626576420666264916611186456942558137234056250211517562373698029192533753941894393403936304554339984870765018377281073259265046053735880951336670599479425122790559049301580176832652897441167525708127045464792888504401405887206195227607893974509097850463860145465442561654448509572389221124553353506895519069598721366088924378126875128245290212047105794279605782277091426742211346199193720784282516691892359794573607987292590053907731194958272636066782637604313286963051681223654677321040475280008732701375930325400435582726180550678000589796346369367798918082616110915990020888205064690662227831909562956057753063414693762543754719966695459603759466159760901492305336165526954153124940930104815870959769640087014860759775620103957451566718180885150527958876156856118733010214350568610630742901067237009149917013748486140248915008148532927844640233904141543913878261716671368119357694569942662960934474866426686608186507983478782697656529621312734958036561082144441920521254003156140620033916499136820448431906168664138496286309486145713197024307236485521764715210008251941736585982725083420127567242260623268844048029897032629426169888091784936891185885046844305631381896921423978856013457212820546810552049682262980618779066868020705159450003297299542728393203566843317426128811729717219986120973017118218483691042845609345704017342816874752709517681433624797046269263742842868834510979342477655709394643289855821991378355242818398210692607785603504593011870407173148419406989188038555655579436979696950889332445564062017217928841820940336905533028952171424735773641952090499465959435871819170978410254759329726904943239094936192757065403099144224726444023385135043117312235145399145320691063948002358391536536376389283719856129015144186855886089910663340223152972602667357659159291947750868546215645145755271914898889217580746396345834767884056965438591782214645318461039191234280424408968275212446042374493934223614728659590661225111188292565248627339063555892258722076809544231306494977684937138678963647216535325488337882349371009311093087806770643067952896348027592758908884797105536094838193481949934639254129209900171074264583074741864940336798999886756022594030819424975027689775322588103109983979223129424377479675014008362496762118104522977867034545941165995505706815293272674936380185250427637308132966993453242285062923922367795558667318079036943785786245810645310481466856560929789127615107400024902023693764435448290431584635366028259936146866792148881203779311595980596294806994293097928112429679004388319692147859067598406807088814074039999381030709065657300802395350608194389853944214086493370066271004140710431145994998209796960978563104885900111290200428449547921321600887959807119755938548906200555102882585815515040908463008850457111137511887188396515955821615368670327312430584522928488134655246592208344482657209521092636249270739264006884144650503988891572160801939469744119528749931714687206184689327500923505031097290496088243761764942654942620229791879783519067461496757941627871283308714790711307837809761526570010772932993596949877768744059011960360032172293013492681576260696858800652108929492761631399547563293255457032242332951160950900083509045309733969873377357243648560635057863751223511252287791585168329694071661101110470419662789481864374027874811590071474195507878589063515955424606652584846456052030496553282994531942765125638653479313775899630524366698052048763590592736635913433149970638783781364200949845595701719947802481250478449921985935591381546381539859174950627873835346067096658589816799642308696789589625290358154482001815450032833569227028181994901072533578851615983550865662022946733409285139628728081169673248002197467865238706375900954283055583659936391266111927420914435133668490594711790079186652183777257424430615997875767488289588114105843051445353031328604450110354842177265654971180057664432722354676465776144292018576475839852999199217428982247517666110210670279888148386932559498269899035554632208392098044774529595577204843841889293503410894152640201985346178841889624819836944740975181139763375218966760910211116794740822062042637548433739070187407260416549203148643823507213556354003833498525119021228585984544151110115639012636511424711856797016943871701922250032253577465365497487409215613447498855044093923180446074439719639867411165418223373404735799661853974970890379859710769951464419493685489552839678830814906408704085610850756940490902944938277659894099164515048110902507142854847823108314892845132575122769672487009819672834376051917700958409169028383086355360069792900484678860068904918417612188640391172763556673746445928301320412799704788993466607323006775943683154366792651314882539843593817990323819313470299980788292950858529525406237895786001530675337429165729847649737258234326203157533660567679188066004338904288244944944467989404724987132321285556630248479127925539789648679533358141257281812246069401889556819799118309905536607359055143583832445658219314915465587236094012355391683280246523347000949445989690126389882428599410448812167396217124004486201324435873840974551340191517171766556341472008589849271879066677364318644675079521540855610486061924398592617046153521236369395883191104985426644146955748355624636810297172079876700694771379291121311666048258470676360692056683803449295897349557861482557086568402498836718740258965979038869912914593949024217761662721903621531472855948499547564723893760186220554212179047441990883787674708071500592647850638731684986868996372153529249152619188363750151681968093270247397107104981967056962455588592277105728261228057507086387136960692742755677150730200748974232627057036932516768834674519527020024110298086960647226702366493294391504025926943046016624292804340579638487094869933043070629509883439404825938338193446775354553896390800913849276198951654164174909077782545211059156618686383505182034840178860002266608126841681287447093772962497656733257507286924429027060220520478471433320730276068805830672800811441235193805379038860695862499857340653184309657268198796198968714559988861860208272678553434950724607478273184712126863500562921222701311776132989027330131246522612639346620861115203317531134027944468563970695700871986394776902662422149880935953996391430270077696811005178860563833149638678092824391464502019703027353293802026523507301096068076663919417964278090651768058696297895113101571028588638583527301504894262119828527874806217817885757782629388309158669714658134845246441731011926106824850911562855359335955426415435844393698389896261832507399329665849851263569875161877347077198841531538612823517137174845901305200347547757019275101061762933416191377729392673100934224243287139106253852204143226422370347556429119531501248420603306014344454923678066128230514063454062491881330235244056188373795206183562435680124219237620509908077918124054943515051227011465120955880546316537411139387355020481667434345201595657179924386044892325396623566124208979423003561870931975033061210077007997799896848329584934747290467351362467850371427622564288669318078857383266546590025540016908846846709852384726133658036719027877510423261915878448345739853163402701185388023712292500843136840738696523093997821180587257569946063161581972388220332917832200118728448315768818492452253299030397950573699768508155665073885047033494966377850288981186709600270691943928238156483762608511820348491494529480547255891997066331571349713826494529877224117032817929892644195060602845569407448129380195163824206179474200222159610314835302821771338959368693027826275043586805819198938959824920970125819494112507394722993748999186599663881615190985200888169351317246401601388345712614607207013043993754389238893731254270066652976254581691833521716629074463650757059542222208488553195828917193205460084977029906811740606255956445011706850169340170483017578192133057630474133833987296664848251536167906915150524315529844334847284707690002941403979216293143058363459079309429925699802565338186344939848195575469755355777784228165860460606740948080716702306588588913744397101444663513869305232009247859725918527734397081255128724235147355244402288208224664445020869724641981880788687168809539623545522878029055730652430415134819593374268130944871434048758629642719261272072397822786193224775815305204983488164681638585151418906637330894698824906836512616885276198684433352669922582533436225258531544303933083643019855494814310573577155096311950153560497692150248570089526862787855908017310893710809987483858042573211072790216688325769476891072221423865241162843450639965247211477928965901263584760493014498026259219260180230439991225689881213788904162610378113390830748982570959972018015970156859602244865373318538624991608852098587264107527285990859162063517213000904953950850002685243123611204253529201286132277266948258965849474569979138898350862104441647863803854204253657464127256619069262261829909426463318753108720697611091533911607064169445028862035341629623361472664322709437890027542389872230035313804225667588979418483026482252900088921877998651960607816883845010820158298795883379366968327560499914345032622628579194694839108223862801346096822673462516576986713376794445860059939776590943202261950090621397168808316923221541579604743820390482602601466732598220000465563330109160136734800519085095666778165777806810231058297670332537665198860467724165644816193893236875380681099639538361741547628996660349492051228693819466067977313593426723871078417415622884084538460928143698353141592104617357168121889914647267346619731477058172834121470893727451299610561499812624199117218708926417310332397435351136531262181702647766467694623917669568458353695765572127630097930638668453896150832053932009452712484222495760866482695954994158961825869217232576869814617866037483815161072863057424242984940364692000935430320824954901987473541980957015161762207271506446149140048076538162541709272243388773616712697685445119530839332052152473403190752002135418160066064588938775491090299400786204994935084859435014117240579698313457443144112792157724837940919291715159332950349760256511910680702135950631010772003776448133240558155242783017639356327161627427531855966611642966420215040621959846023111173996788474995433472428357975824621627591360787191816048402092382360361216526621238109520835705515450635430173986225401897950553934278439139909942091921653426258717853262414718900946364379033637979604024027344978632658712476106937322151536362449740513755656140426880843306003318361411379126013719389152757246092213709306543470558119153031623186477851717495308397365117700074000878647037862218216393399858845816946848868140440284817322287748642216603895908167622040183267705277113646127056665310230602801124950439612686587454990473158096419608230411498081550875263456151451816649395637286829922718811762445294072561467135615410131641888949350946481486809679248997885773404933969711406716629019858698339156832767238966861203245758295472603869679805811671798697136164108423838259915036400687213608988910944160268028024644721132618972617171083370933408257354484428345307123347634937857235556278289477078635825911116220089663611160200615974486806410589015228936044498985595262785277753016491597710060128369156235618385939983413105022553602664451051217178114728611020898829776640131063359092694281475963021810433575331136976797465687104210576464692745760976419200327083770607249680204247446043035724240484662028120145103556634845695660721384562836319077376143337005856338212833249822661957969828015532336198090079584076036670442578420714598405923887480935658925841230158176992414829000093239747276729047698971461763936766717458944864047219825021553096750504558548874405008095135788328693717373629004595356801161228580734466037151402886805404064418494062626435268619092202222351536655314755082763964237059128995287419996760956752757216045872372623770269052902541950756949322550802538613611933754798418350402566456404582745764722580999267290512387291162624562552153726684946167314146516802570484899315677197515285766229752117720960412945654993650839846799226202638338070988774394019685512997977861384456910636758643298777082859086045076744877219441390855331124946038434176075539307211117044666797914777903465804122464666371741672935834597331099179795045575239554479980611169478100753748131123593279496085709020749575533814087619181295161038647909852384993524815702612032159061070021346218545338375255896526232275806666406370972584537681006527959301558344714794699044819479001153989974345211194302010911843862225309690749418964308521232811765147048764900539309900929782728162314470460343408024036377461651399277734174955835350339200867007719917968445806775033260207814031355676787957639984895629859812641513111359642504341084278110153117240967670524448878646116904820089919449079899416381341870148082752355013440829123552611377003002367025648319010374641361004862034143906711205029210742542643488946042874230137204437356436945207854595458515037379115340140633650844984054037140680255757211545758270592046030660638080763065341572277010958855389247946462575332051553222750640483851170129351924735803457219963549772553863581387169509535558951702399890446631858501836608116665384890657018437460046327180337867689045511461231887272165626362780448048024707627633519758384770942191757226497914936827408651718420732428130519291185388659681677134973494817966801916178000535577560202504400880780787097454468438710535706271772871410599303003405181429189565319887010073340180490400186818989226915453639511111558470102038988993941851203307188897755289795153379806102405788119433000237916649493654855079408500841339988014330712894066644945213959197588932820641330654008267516173311531223325132103065335564726310568441726476529392517030900959728369465152818320331491937736223988217302903804476030428039669566251204569637124436107968563793016589976559182189686579064758966852666116741670687054445994866401135641518060965526443184064190827110431739162702290614421575684149038922020445840493291254796871255827112427499587820640041824172741989615239335024561426175242017692415467088215690534678821069540930762370551468384934101555136164462164239054100028555330077967359987128874639576869771349210877253145641124787821633124902807452593224418604318793134919169170963433565332702848511389972637735695378522398246332431107609968828771930108919785501687680114585785104748010707123275723097096634900841565213141926329582060109589142314019493487629772810838616597564450013443345527604476273580844694487222572117923053549129585462591866632670669362031536579046197212876999536532115249825701995291876537107145592643540996465723164213667517987335480780334469612572244031913204394341148107274748445372649446441944963087413206207705181652450136060979440304471374090181840326844369227631056120278557530010134378964400605037736806502639173797702876955878425865783343245657545096634471393496559834837356460246992918091401100867930938504722829201780158212839379540444549450600091879783381894504147451106623999472861349626431265461270122995024337086049367956489463175401997071046888205730376251418022888675443935173645553421939554131990703348731039385383986909520199839910694084440948649871264043340473083486138878374052445310606783462946533172114840300525711763792501488312856106256197762669101925668857584288783161377334505639841472715903238341236632033361093279249681786566101986895428341760777922003385654480405244299039680965037709360764359627952422685979725836066330222016323047953916088638248332524233147346068388262819694816160680549733072289952515248004392254517940562000424177193157473623686356242745905352282052295487753387063963840505348594831422764698709283387786937410309315955161635357565755663925186639522970083418974349953371996484427345675672681676804539535996255828961190518148952297774581711932261689682648454774467183164010513362525417397024135471679885906633166993300413783695323384499369323241144388631882894891785642232092013719149518458386226878505667505164724470858317219554902118768671179086554378468732444557756164509543356602042948879679582292297846818346790688735627490148946712396458210139822221335181177678653685628792985259775034585822050166338493416542557155235855904271521400089901752156999720087613519120400713196779230772212821961625916235394162960081436209014485531601981712388730021507590678004492717957818272136504837150506154242439820326668383247665127374574434877862514773070027477297657171716046529744920131643754930396762853202411763482235741716526590332062802090441392180161957534832400393744210427215642094318070179565763918193366798222032973907189398850213623134314616450371808317943547637146906728598179331503184746111046543780722427752342716765366942430270081959631389744546866674933499004926684460288507115490948417040108732263524065495389392017287201944182773362752806690009618016599610345204339178754942415627670171546036594700407856736313355260166847085630056367750875724730595988504314505939043909941458928285326378559527950487734262088310764840076883197762030289150165182903706937958885512841083038785747460538670605767667054500989602017721680636884184489614618967758850629448979242224065349375019614987294131768470745820035795914011420622034401799128980053623201210742625474197430330522732990122804378673414133640626394556379535254566524882896497782607895879376367021100318103107939896376002587541624299509158018180196024464256770140267601355221729070339990492058584158585449297296741694452834835387974841374173237699458341319262811647821896605708720174245104201715718668490307529975619947185828819652207990506187152756025823466237790692973697016901985231800988588001992847801162880008378227234012155024587774480211658765335150633372820144783214458730703532592639878441892177727106218505647992321759075373524879367565976749609688345968858152854089426478013991728618276577663632305480120675583781949656527544104649073652155077241858510124557169866293010519608809117924672300667374677467214195229956198591487200380561194051482121704196821249194920796940531999774774493091564133675048796394760466917614769571060936900374008051112913884005759613888960332947940667918644780524094876977764845890541609140312770438058716202351207932303527397954775371233783476018358609528657488101929465271104617163455999439339282348625485335595069490700023938778578167661573546465905070861769424254603128512515230115500096550079093532687741824526117137509322595200150561276994719368148713133301135382412742613770741093887096891976071131899513054503289454683680361979456210125832028409365220903062176217442191754210517910335383404677458557407271760601795165843253887371922338237905314012134903868831565662612642754368812248943873411895062219818429161302249786560870019894926071925297133869122059470142188520715992108169699129851674245908722713934872804762017696830175411284701854064512850261542698917509079338582269758644927438383923776293158375049128365322368454911610729740002110605497138108259381682599107874691894979056549395415429832543385248827480229051834374754687900704354942317734207989225221152493104135174064989926488505726138534483343365060288611156336062750925507092654086161134567638877788137855153954115603270959135843465747153333390982363188413318326455113989745240808634746196769513540654811286181321450233447746798160652063973343506688075413614524626422357547176296344271448341452764875874320226555868714797299032168888498815506754148345540231440728916959763536937023193947526305093703915200787289133369458430676669154499278884623123973353645325853180107848783614185324922202400497313210120451265867626108850315189737133208755584832218537558488680662620558928728244871676429681018679340368410667133920259167074443837123248535998641871270766363430891719833239248515774708522382466434147099631651676851329417602518329943568301394249216829701907961792369761768604498430910547461330271907045029433020566892021422658487050200464343472264625772116909722167847841437914465884995384379916662427997596923324764880712071036522496930365079978169028526637494057984096657077553447467134695558878651524140127542032287818517603824475781763248095246200374932979850782551804043194913584370349243330230852434856564938774704350084029408167656264570683513889924046469969155997453494983735372312670894593490718153795943289990295144140320471470718743410151368499535811737123208338141113794008729700418087414308910755588274868018665229647046589483433713339181359170277194696136863205429243500639588454298612048649627650126640916851400801868209636981167171273348480975069871811891916612338710587530542954614112477427041302695748771344712868704592394799933166282313328246442874344522952593474976332710594993258428393609113206877032068722356014785880253183251665391084032457621248357464754835969886992768741931281125992123719619911164062872464158938932919703678583067087954787691401031625900499052265075194657333211278439223029189081533378663670074685507783302632270070775576818105849062946105553882777950948743919829173851294591119948414065379861430981926100921997929972051053378175589750618957747824611911869795991776241716960337734408251728220004883056000232395378746490898632656881365800409358022514710212609357807688711908208767105398114009017479584893984703694100822576185320567892125170583174498823974404881288851927816732625336248731118783479725331076547057338996507029127181745956887679606460528606935140263029155292479087494626982113484326514874882081867683166199953179832312994541108512564391132803255116319991350234433958628575110386711871483054726505366722514167494199894090645067088810702063854291872718453900216134618192693238829746203542062113657780020642055046703372640186337046752288588331228953302716780589903365053927965460138220104936979539519751307064882970335750784457858147345450854631098593716611001449954693767225139262150128515764435455328471690745823871893216798608555507251712307554374190540127030663672553168953046372933190378568066366072912440237854074827403342008948910610847676141584386866633835639279575958603291462255459555817828700960011287866653889083788302977579529617614939929407680527220255901336664615469861805969970861754286140640811200987202722336821243056827664206442370298176820659571550088730433469372197602474964178299356376982537435142705127576636272527168431596604748451012174514688699191065681910596305220333995457633605819540486085414101543718455033647190631088822965347293661703019367915396861122792513862935236686575577157075282532030463719190466659849985507494206146691873104986263803291932582981384297496579798125794088496381671085905582407476380525870559271076151033814071306355988158107386002813572812662301445925332455664315190907169525865999768804972869953185091756660966076497325684695053960957803404331571157873730739496191105831140215411186927391450272801659027689771462318117707657514902900377341333570749381038747523662677996774684568238837789941527612140283822679457925703048800248640613763997599834364101820323927159354462452752405055418197153126858289191777191068411507989971484837941191671989852039931334817330925925294606901020443132513266872334852231238536912850374649129405100380431677883350898241117422123652291296364695789578471631383000893958596278647494362608716618431541597197968657844626334064992888753126212401841226403494158307059449931196041396600591299420156513353944029179772609275683305213688893691444454153123469814859783070457798149823934200690899940906174890533548570646444733211218812529131110847861153371895985734316699421083211243030352536977949874816436887411820429497701725738554290934598067861278223104152283188451254967786799458487220505970329053164585685751086209203228468633568951493520620979907204640306001901857271904909133823795255223646850827987928036527861389125485613762527541558261064428339981481523028357945596137030551381482046133378581450583887165133312334612116905696926994366135996151993247063402581426753226520341462912030234505104710185375985948515350062388196251042766723792333983759220980564886615237696103177808547821057913050385887137751153168360658431317882436104018220188132528874492142758493787209056363791315534234322869812224645268401467076656620998269506556912440086949813616985781745148057937121191922595384579712617036536022542034303393566850237864210873672965867997482231291917381166700173514571758046994549772370194454713886375059007165099105614275662823662626504548710959293019320837803832242679170861386658675931048075269530057625803743531913784653976944842414798478141035479305039723717083694739928539019177698412139385796016124369387369591428756113362661517902061365253265825655402453036729618667015485045372860726361448469967552168556797045578845668249703897468550897951735371231002137913999832153174685380814887521842099210077138287918719508088252809116611337428519954703689713080975273605867709185783994334061162480286164797535964747629730705319323516768896436190717910229953697443515176678315691167592422185973470792005948882841904519835410828078299502520899135772838361048684561797913081516983957977910160710817567887773092144055202393721547507113089377620970725586144459558207619278103367862972833151681479151962472363632908468647821853311560748355720190207169707829507931426499302728634686066115860729352446822434469198189483795431902772106396185891388899917725200634855950356177823970368926318944163402251131046329718944634268349437803553646993390476170928209863303494621367542777608984095058212514803900707960689565935785488800397783063152086591052076693892310110769048089980781770768245109115824764353152767395789120249088011004037796297434369523548183245530282552607394903620463502469729534939562885414494220583542048682404508896691552788812829319254038755226076763206092689711299333078658344701966198217234041938177233782966699090062726540504084059189021674018427675486173151305702851339664944239456374447456433816457925528515271896850950757137318624951740103260165059881038057981248625009354419827136603102329056682345293936651656867682156053483982286795870037173623721655413146200748812674939481722180356259208138258461166949465252686669033011277254921495606662456773615251832531232406501904851709880009697970698620150311410756438501311383110763327583132057718055429498851644128589449344795825932960575162056418535695209234757072984424811829458740167406359873299121117542931152045642265328928334377583746094214758309906616162287880985062809725091872817621621803311527471089999789769341501872781211308118594939476421607106614634097153581794882793546750154724236766953863240591423508959068035980845757914979003720528571242119129464604810973601606021427243894673907718444027492206985030418747155380629609322731467630276539964145857310012896181611776649585180450859675063325722302471832213781044863356729846174689637238542105491991175005709773217947402195499111848137140355787820316185745069891563086175937468963329411551050558168536101351282991268747702207666425259796674753319493926430731224485191536107006691072423919931290677476236353089030951569213333121629707641207646152397536866763492580233219931027417718832021995940056298599609596779017615637235945377628205552604762408547084255381550160992063341536030918480494634065461343832083395646083188822532854563809750176126486507128227518431303848900128578602607384877955330820252621034754765707779825552843185294132079875296559728625574584165206139744874194322209292293937421210094704973765065864399524922557307852983374789189732502950676747713101706168144790713066561149390303885278044166849559540292596740528062631295713120876916484261432819781539168312704345480518750181177393416903851471376160463115382388664033219029783778619642966966317445539129594499536423607462997056480294202548681214558017562752583697925716654637402740547857420493989495387442074669664215498577737532811640054172804140379863357980990998961727938442811514051837554032036775535988492617314874605416338946496669500044354211246417246066218060702049651933190862785967193433948292147517834827165398344414855611057480090687590207242719176410521842796793252338748331834485235012554903351686256747748797845605439955837824926553056240978061116509848019702964593187296031912271568093699704499013546753284025953904070119165418422211801885181648723356331541534093626066606494949077625712704441921993468907687644779967951400421258047800700808214758457290548012106302973990767010602868765775298952535098909888141003136242029140545423651714295095372241532251772579015694172068317787446718877351801586936930803640735232224259540866313476827969219163192011750820448575323219171269439617916997313986536317947105164156450077344679458983583211420241712632087636808536547810349017390917755806805046620705003591577237510823822361289219397302570773107588633355889732573777470667187857159343185607092005909695112549791215421413616590316671003606878535889010528778345285835638621149686098331707538186371333170307111869711458984755239219292490535879177899407061391276415047216823347167418099601256593144278504109739309048906963532079135176013668766632744831205866604692035636656139834615985400178068425890243813298832520286396980214131138202649364970888481563827317492811944926157132776034065910635554210663644173452498087705012103701587819517592881903072310386244034247269893123343537093515283905869923942007688933797888119350986903818015174630307733571555543691864978110136355696666609644199782578071259767966268205116547570799642839492510829407820896480535101844835315770302749818223835404917516036384883144591125193729787465637480461763020535908373939181847447364241032509015217734743658041083639245789409906524757795848471032764234430643234957943898788211784215988291351425920404153307967201558591101715770689671416628191947186698306654475477356141259263368171861147187827987723729693608242465320766889021386294810879756676018634687169792873425801190511946109332411257341754476467019485740123052944895385057430094149405537963229478476515148175108365813191125292547107483582667609444760860773275990403184480939120376885689622428952516181812764572322843055268162899789749955216693608468483810892763835308911188294974486889908682616729343744765400571626096419913406167765047868223801212491716783041195137231054774018622488541849237585430296071652324684626617048398746514624486344435013526639517641324281879721644977515382968844784019245411605706285176881289813929465901023014912997216225961005398549248612907983445921585352330014213427822789577570132164187473825976275567454200599786818591646522561663878593373630304733196138369458972507000278147776774090199918047572964373389827031740996994734419322971245077652391447278091796666304623330934024016447118957526283250505859685626261287941216160290809936518445959666884187739649435584265222796346529757489035220615340228394956151986273493952666957727884649777249690395897629254948339711482256511391962855534100143094325839132364081494872116447795999883944746919529618905961654874439812773946819548269847972032374327206533865726758064893264183862206607133391479809956797655420600115497530244416104350483044000670278808100080019935097626904641654927929027548078473257699240035135614668935038475923203931715452417965956958749531927974003763026580454527473689781554335383404444692445628432722648489401974890775047663710842899520601382429836630529712212511735882568842930729065330825966396853355153314421390633740087303100868488094610557508402023852044142930881584646946834253859292074719453464224249081504574641110533847221186763486534814635357791668853626253791119658754388296432423684760016056088472456840941475953845567873150142486223044706763117124041638562186727859019900013333015308492841426226934124728343948561715614517885280598268969921370671823020109561508724399371187944432471370710559945440639341240145854042487365056795660699214453281570518106567965681827944993975199154396749659726535234860277301592247343071034376342800924280582722021490435660406094352025840009222353122520585337439563662198839441486568964119860304733754229004480514173645204286618581025152840890761369589297152983414877568957084610631810146845401382103746128386234944398691298977744348196244405550753114556242843069938692500103977176115057866384305553127000518243895169590272334401524767969924007334651543837337544156282923689362168886301604032266973922297696208556525675433433481175669593315880560061123637771967514126083576407427301833946683059049063953649404110214921906194541788540638794914548582557998399038243443462254618376188155788111352102483378955400618848384918039746776472496121532403441164538201891122532024740751118961998264765166571761135247150106029950582043303001386817267344072938006019043608571220562030064165898449163302749007531494962989088746304255089437208361371675509266659819936955188670877345825696992850501470902704174585164594901515369319824419530081777406223889479402854898802466528440175720029751350783494997635313465272148583261145743967899715556726148095502933070617588686235961047041345606828178999003917740191917682668953211100239149902124566072252942855046462349795525126911232618468709796873349544577415982540705692563182469770623623788062729838781650819443594927377295268408541265088195286466795376041428871197983463579399120840295515832723019759746318659316772818939038489238295647430735896721863753650354830620364766883867375623129975525578520490044695450747938176955762766408004084251728029414560661826560063800029518589676383803632775546281151522174102811613751086980652649702540155669560901856999662422456597636289421660384895263940769385717943899293529613841215529679749470302531787245380268009028500548448433835393774019416479355659502396590063623633917299671207783865259790624812889306289822716713956622824692967531174150890138361373649349910269700682695229827667702408156669277485875997104727395124170296222792389101991271208111316501637856198007597818373906301522373085608539582300795804557249436434816432504186859700760981393551567406338012860983067590824237016304701526616124337575614042187225514278889101071125602657344334431098216848735742982998388819715122485355403244168283784870010263841954124759702508753666415880396260054731530929926312595287433554030615239421073205708713286346280691269580839221610503495107435667317261786767894589063646010632685891847213632114002150719056343969284503490876420759618776943659496521117095381523217472880280294199211345306053398407342901337906963859381764110842939592280748052110985472655162719611180287830016139017473209286753714725479390308220445941436591025268254119568376823933788431020507905568103087859446546660462484746686484357078029320855017718952185620835215493461039690809078562213707275196099297992669875700404762100888594831073977481057042678798289825124758432632425819487064592471061324272974567828522289566665002865234145858088929417241058272242002070308980900351950083321839336215255716513627298369226813649866692385752911735671812793127286108253942634376106770020533992471958234092545369801974086009119037534120836878457859570087985770785587149609075154388927011518959387148858572029457251009012082338960366436852908072335095937449802287017045524187597362305355683776585431949168228002029953698395960256956593501216368583182634681296471809611343925072705654433731455880465213463844624101912212669666113475987823871024586667557974455909145141186976538562888497528617383305676143143234970898291873790312880138519971897170702912952078249765059848806969126284707659397100059139270531415273341326147143715156725683662467735633155617288213482217266327868846671702516329703572057959943049493269077569919371331611625552286818253026189264370079326801601576519914930674257495828453802154375859462551881888926568340691944586861313478318264996017807019945954547098958461949395372503395530250568913922777872573307076756937052721354975694067299425039107525503303243844572826123610334695157187159877626777730474430485177535907011025454883549764614055595960538651959085059661747197528701468721312432200436659612300323597467558437338672206422156353830360602851885129997346271926291865780807817127077225779377082056588766656956798597371411802506469067698808239772115615620889218300813253598834850214770882340070820941879143238690517373719897469447951793248213567070942850305527429925331093017242855900610969823894673288556319972245907066592373421105666048414269955848175846920614177640317943020929684128482164161839983564583748988224073511704623519353028889286102666476217673594693006773369660261111803835094365706047635981511237093382319631926462162079644914141766112389771929397587106291382834943138047641344504007322191308402342262985124688997564645816689403022600321820742000265329191101761080750113507457117173450294271996430850904002443256450041384641103289281110613226495651841317532411840092002776431684798923599514361213978226992445027316924384614669936729466704089919958423817363521070847721820504762843484079972119951547913595310155491915376622429912103461799786590381195841661926796184793710894336852927823049786790175299238066947869901425306474947190402231028734656739816811897881195987046107264372461797940184708870021551325363484032489874125450166714640594697191478592299959484968630332349998446070657831534456059309012917451519582281736750971203639287463435773444269543349464994641183220264383366759614319195917023926741673798829390276958316476826393731863685677078267318056579888962949288508526344476974324554874596846634824637367253417817036233768486089829235401217339614458111672712650002226854194672191796194713761708098126928205582354561709395517743265620771458004395300203502754503285788300633236075627090432418005008662005245023938530010445378587899545828609497985435451680245335654672839826368072200405197993014201509022559925831292483685576911072091298465333461298920414676080202230041863284082669437212396549346369546803164279632841987782915193970157859948126387156772351634156045163609774069943890738425390426891168653889451726770159732727187079152397028329455227521777456025718103872163487090893481999483307467529686995884716617148240178937245364198764137051584993744010275056118548982623443208105915083565643853897597354292908610052208059664714355042724289943890145063104348783243417765357649638087946128302368903694602213409466562681494977101129424306254781574522556330421709936847373185539118986503430817398640971663278520173628841594610800060930664281591480596578948035460741777158953136526655305522616604662113845240748706026033085591823029015929294665963888044266842314486969829080537752196098399728473637471059353238696007649041251550958375516531214813937539548985671882992565547717300730023292498700329198117398233085611524826583895999197229642693482370813443426677993012452451123893481782591169671394473956875062050845538600345111332955119500984632399736387899135844887015054275906202703010196654286019981230827789609735636994982279012925169526010800639292051958379313156358864582028156952960874082932551717891101126066390089937163719478397788098720211866039252553292333586276899170769779148882389629504739834112651615682855381315799069080210102021809569482001583986292304531466794818035560828021359493482773814064186243117064350599848375983503997095656378314485612609827319412307375889310481658128283321253166657678441299333760690722177035036777623767041134980687965350667463680867785604808849379682301635489313106512251372749932536585938656081803951641140723281488802455476261134536010299036515219509669266720833852813897279410824755662541206411461291298506409569490230460065467412829798885010400388784083133302477702121173372261332673004360878948336870537293887633553476047865204286220566027230943664190261708724311766940668440276449446102519186760739288873912556371519019995525387188019319477866528714691589554153080484973302752297822145147618266575021710642031901084474895055837673365973304886047592805258017379576774917238609701606131891461043244350887211605126359555633235066439512152244557736105853123334333332764668415589950918207291690632584643274572153903607909161253436840280287617417602572126678134010795023603302542465913471529383091310658974001091386601338628534815276056401893781783703855860306933838171550918123111021480270185289362476839217911721007246459521478901463715001671217377129394572593764308925224133040138050427275571025344770860373310685432596234405423523644652343207254585530267950330591124079117832867515451098234794002087719885952667186714873716629002470408388206657963315787490477556649115877065287546808121926208524873424733622368945558445882839156948390257485677248405073024234267765171828513095079587427314711094773556642310952381519910206276400940814388629357487284177817445177615120652200485078521384108729915685853021221136891115657972722953683325259968688054366611112637024715137061849377323336276410981619399280048418743010646510087420979606929691570843363650676880728279892697399760907601202527747777775015153126738476519238621920931095977270641896869531109503179098021195907978456408197498443723211130603768689542568832773766935053019668075767730030938666837082945930230722351851678771390848261008024824931942905691949835484028668194753984242560942577234849706067639270990208279913026610726332346783194678636960890406706327596046643489437843470279453008838415440525766515185559972637993549261542015048332624839036154833229245519517728854614408576481963986306720482624942794162003391604949295142167164710838531562904761307353756019327706408719629991058636923480908612074898005590504280360474728282342282513813383881505045837580781595458781156839338048003901067290615753726174697774449842274150118748022734848943137043706729678600064931969099375669657951606946251986715249460007645634980089555458215245823510197050007608242678196415401368856441104004748309467024723959526537481599212043863093436054946204037150012843468962416815155256949184458726564404852307820076509123658324691030071902681708285081366534546799155897186668886440815983216185939009044494724833135962640412681468851162685522765298430708458185937924668692494046166244096288923264200465992616269963859827820842166700997312035587828820766213198715541730823524422854787403881076405027644857729258335795493135466083640501889194325023456038827120098520954179498088788381081415960391764611316398808585448136655924515015744555219096024485276523314972346976984927389456181451139249147551762322667656897164189597489038748641820372925511964851383350393903752137039251653513216025037511641286523517549826821952713578837902837880688433501344118405443781021794729123997359762922990624640741990225368156289653476496220572458649180829972656926350607935184667789467125556584410056107865819280217170116760835575486254173590564633211574845974468087471712563205827322575188388630753680878930015357096718160578366564691212592848325743819859796625055745490682622474939954037008148900328611138120227234133289475289491710299589766610533691968579561729511396730440031460397401724082600061629663132961445238726624205538632113640845935595725382351120280594059088317754773364247054017504370317547179937584939758934681401636876912870530592210719652044496704463766158497889953160064830858173993457776944490912418733279791954249381902881938017263124350995112422529213505200418115946282873640029124695891311591655215464252268815430075267063363801323781789540540458608188463829267883142936012377526362552066606879269210390381060612990178161737144423304409385132702211975002428282296163277289665325424701189179223936014563810010297804372397165857772200011010336324586433036419944227392728864985330212639804080414476619948782144798879985263625081405510897647516846344658086632801878663573900885967581431090844323536554447344232518941308836256305357105868752450568351372974433524628551077881382960263395357480524921674065961987814801210926013968377292211869600569057162408465832175528182974506332854663808209059864181390856588220443176296069908554345273113689549592083408434632128583281011793839006422188421523169647066640899303015785951918385993327539395770137710171828029528053363676648993487914802351322076892160100101808591643716253382770066709488332596076597260611095769759624257774155322498824678842935571147274874600306511717113516689101038116225721321435652797807478244855553112048191441879662709969150184723349811878339703779578541203091974917740065534825837842044686163181901501566907627765609782338409333302600606956888310710410511570430453872673255800189683878211108439575389533346586558388938420430241631466607969398998293248741953265186247689087527874982360233542353388687030309619792206815294056315116992237384508151044864211002698158375996744873906702487286611504331487035032051656306876822198143772700138164530458774123783659416951709289894040618310769552604043229089449479347351772862132489901788821352677195200238069650890422317263812176691651392090429051951126844318983669913566392601664911478162628922344955825940020263417456092940818422428941265054978331676795285413721169376555716213380869941252779093569768224804756497609512784597253884037730671422151880012472314701287602118016906057125715180171935544225488205409241947035012787596708862270558472229330012640258063637047250479725822268275655443687058215253049712055819177589152433417379270783279510726773759023970767822677971120882831268722039307122542496364249806719037122543604026174976786153438285303011731542679575384424126951601414266620764656237521812800156526619109069881022810627708611337762953476724621680044698359904262045779988766221130657407427489373640708532946069575715177357564104253647700747405334064684343260013289125735485258144862941748546543825822134634412867712172677326606410205056786309744247131580571041393634265840015413135054984271417893849075395391070106884126030191089045883244312071811809496737628823352963077562876276223492888261878698928901912808078234612743180480021037785604724382094685367073991072715804727161349179522728703684955558739424042454465113550102650291280543635871228817247408951984480982872487518380661721980081019233389086387427883080080355763349285919259661673127314784623075751951547412377103952986776793043337970782584221825068670553762208611941361924944260990645451974392483898517711646759918371090868896431461411126745119979790220017406657388555540274516518979964512208986610159437872477743497511281507638000106880303523326228013059491000809280955972453382148103111145307564478024164917921035789431736198219147489286251540493705665533388616169854537798450467780130142778374231316606236667799691368310130816966243229872731754412765550765520731994096056208123200552634275104412720159721362474954013932238326984481030185650662684533145609360515524671852367493060210946207009164586344010522180746521153896032612376112298713532326104344256016507858128797875315867616064937573089759015225768177497041600940187752105509408686470353095954962979107051978636616773255330050534066550142953521310874851850406666438239511358557108471456601672071449497712985444371640570902894509923226249840276567294483195247209323197689686225764117161777679410766958793996527036620875923281204601727115101846607139961820341685350531244527285893786667468807942858948773343466830699478799458391855424060818187590470262679351534686915533631902678662886755901913960379925464649884506884950554375494152897698830486098310579475489631020492722851310761300371888787931765728255563576419015269736007336358055822259981615136469964081668239250120052710754746702587126909444339621080936009212838093748042765650842474738255108700545705890302023376205391981618542500157586325121016668972232824368952383704034039318622857945797450028769663326831143688428737286530878091033575882535382457298222582809063599298351692071981305777723657708186371489816397421137344242794793322104689868013600833065022174658590945818673408123032862532101654894002842167182175838494743914367239791411433126903370930732383411873331354647387470938178720406332197879602623244172675401852872579983205676310454400016902634781362149544722482330420939142373406037415534645060133570849267432215139813943642651421079698667321677342482645966818809412964331549799112283927621876136049553776607016798630683229313636000631164992498325441691728331096043165125913896252747951140357350080637963319194006566666278391920085812852838725177157880032408083620876132126359772330200175644543690511143341759759129339454027438641809778899501705669659310665221987886084349945933157335098870764760040408031916357882301151636290460535561846899658235075147742662180279992779420441815238185836646516271937062836492327076864883249596041674554576293005469869282815238920994714771129631095407682793408927973725131848589023056743179660333667688863558147494616682532457642709353133059457957018812641983968704246811907811290192263302170934892654149961493170571154038558632886249479791415282691876795129382043978708024017517947149361456154535596473964809501011662175704230034456907282550511035982068715971300554289838103545365394312539616103452603236319837371839264308835847387078473698272598572088290152008217901977686759689394753230314946097330599367484409927938551653105060108885251992799184351324158593977487640597838477747772707463061630311126307617974482762642373056142856754399788476875771327566802177189749488325978194968315110753253110376025973128017746905685891493671431606998144350874922303131005161094528060208210193737945284242057189967554951449449865118262080541822582567029151282894307441403928062470873588108632844036626589032747018006530703375663016814129400176805074239680777364727269467860417707552278222647557282376520664791393311471920587472637250541571032795613185846525486114966857459278488657226801957294674178248345751238554533500545987069164129230114316496467532443414651348779258305939209711023499554535147485204233327551579535927457992179532587954466498165232639713353847447859370772928380310135799206952226282176143232747548135819093606394242427611596590612926866580560781515411458853582352680952395052177525391737586269803240582855129892658446444855698739173715091692687270138311179219860397024451257824370575854042027763321093794354803510718927204864631017799260123075027749390189400426141790206080589810987256493952920262147051607608004480117884501972894901646573703538782510791442784277677418463712269342538565533749015265849751479113331562543555718584782264296650189735276031549427828469511949081449539929222438410690426394290993549669357951895608980943866966982746244969594501748350736333056025810332906790846038615267373503063646899634060616832418773711073359056314168264211741966506449152652560821309112442090796276933767508394097543734666626982588413615940793226684759588246158864726822111375011037401205534778014880564801460064423122714343454906083853193382659808430321596052864272212416819101570153728230499352786836410089858820564697783125677356277795861624357340201013952271947890952181272768584519728582777237549563031849538390475639390639669935369969992653685189928625624754005078635676452285573655943706254557525201631499495590581562519038219691153182648943090238684621322131662159755930268455492469333381563959530505791424770970973107048564013032246530787808373287925453721641424759769492363575469051072588606808867713435889073508577705007892330197197965078139746326925114887313947423500849837848533452442185063658500412303799455667960121156271519948084875871995633931776280653321980669512973850442437871685445193339964480662039222781013227633550318610241577610694741520786444733339219488230564166015706896490185204858853655662730222287773796197575860732984139111257832101574604454542183119245611091292340315594206743368301454620356085101642200686569798038091937767247214641649912918616236132210997038295012550664374945513830161668253018489029706100487183785952046513659435749611629233847248526920327922583382647520818695426792608474497331144580199935793908448008889442089686954160981408102715693403585684881651357941552050267328909326492314702851566515341974475170525008593942383832500116221472497783900685412290144063910327814266085502983994078060908983497957670415966235716671102105804153639049041365194665479849258788320085478994174295626056353642801404878665954823988653652050708285604496843166452872821021713528964772374845695649135186695396101118862504192787493049179248417871039858886214092845388900245841137684129974301508087746846533623017189670883644333163481291311875367804675640140892242477693325003885521061056988833128136016339071553196441135049664479195112809503961754725123995237848183991345308689430869701729026795356224847811995364182602588232630998764818680309980715126718911863597736589215633265363725077870503925854799526524673309528983094607686168541907329628019522051233934592796406504860581000464395431697996006711545544290445519483350049774612566101627063466900356324405428787025152605585455960064403347302484972860366949477752438735137449755790210777467797599051901232974447199284568815351166944114917677214690166828541551491578314615386349474956015921054706881703927583651006716363271672198808449292635284644542692096281649896080173950023359355363668407815603814839375305779734050230828623026371024702340613929230822513139575435041084642147588777379816723598943266082946150490496930194843579303497547457316453697924614159505501938672580932703984131935488755282574242402731088291615729159689574922285152770842661783762552567618101852162661984177497955101294236605453460779405861612399257983063581145365834248181330342242907385091192320324638340636738541157986272942779960280802350929888959103025978417181717846661570317341635323976113505484006092932563792076394902933377728458243026467101399561405887646623795510055168020469318701438735728311468390868877773831776709572674678992660522349418705919544513844153427406031920958865776534380269140692431331675964352927983448985268168232085868227672037687853221005350672476365421204127387652849698285960469579128757387868024822887287424751612935506885702335498240403253396309628373685907741899655209708003597914814364497848648760969624203530028151810935895947820274030781565663443371937234007204712175035523024450039304282929288851293546457116640929867384095085611635846720227421722906124413854727052329674277180935305842602879324427503520472975554025516182434941191210641559309720711158559676097825505947081544106822661289284345870086611882299629352695388566328197191337027294016046522787459781073990352519854806838261911660518892819735788354911011354462952010615143928044745176489504632312685042696006095437905203327987278576342732632834400838541972812736249283883631750938495934843683550052815997649011772781558440487302156937129739322053782413583301037134845231949536515332274620540535899907181711066306600933914533089132198151806228941351460190384298084832222239121816446248293904127298678165482599376796303859678469622691943076706435870288487273232196106495664002485793305426470038024478986182604743030792389568151269519315776566591759096943028063258603328303031061282243763872847058479731778185566382747980805511412231906151541480658028962963141818920139960368906385312741441912262521195009879611123459754686733184126715179541579197841024780654962063222270483337638188088527489944211160509193315594751865501274211683307145530927651472779860112738924474110739607077794213511183255603649122748813159444275638321245928138665254417371788910117404192053617667910201090686022431134478971243302516252263189619495935666556182684685836533815559926409394479935962653971007342021391243513072510022496879700832985514455924397649536124432749797410050876247575292243402103816457711763413845734591928127872415154104142292300180833282431586610970596803999655874596025141922143154662408610816464422121326017738366367341062286399401593906071794551629312200382720015696907382941642063038232332159660514665783885970753900178651512850098995802780353475773013109953464989525685030055947059054216262834182046701810599330678478759968481713671996472716234494892086290376153401839082070718990025094235517611902383885770893190260669348371035787217467281126107556266403561349134107907217410973106612845999667241879623608513248257891041963627450191577246802982100406109595291430981312751168749859926577346103620591365983927193886447536908610396546162730994790852305023178769679365763409033829387250416888199610717317554065496041178625076164609302325346833829938574921426179252892047520146341323382335957652242100643111946844305011599144810705865096013803526031776936329185081726674584181014936022857126088383961028527067280665781571479772061544038877650120565494335256489254030146156829430806026637860884787226639286283051803461748339231012260008388999633673574550949185948440249304801295483257627521640835707631692522982416420448933192780001741377938133270522772513252986603022881130195384430837222154773250816400486508483153651123049801390758464323672225221327080102549815553717254304642710098420318629929004056786041552784486909886389884965581989704954381114613211505834973978210447084917322740068210630565053962462037494312088162490694530751627763952652468032016077289055969127405603346599365080720402351367478418254976581932540950923064471051514238999895005132805672370844033276435774390033366946147018422687588280276728018442412539486351858855629082183818983283637678490055617520321259399713953194354153455586969701915070579425353653176603557534355304080111524395777886993526962135776622549711316689472052483828206117017967865500263765816388430590417918803184678053144570596283972778148408911320623950109443523112715115143434111805928299777851126857261040500817073692599257641450414192643934980643838695494458231796558788512655924914384063483905629887322415247681962620702239813121357808726401304220134902740216246174657764234041046087260301160694781021684519263397184274465160834338591796031629221345232025391094834745711356185413582739473213974932151802424203660004358386196124836418618580708699919428930952236115098872427694897724742438607785381022054455153639303226349790192840863416717552199993763006165629649660563816142019373020311095412812879662904289936303139271821080580385652028072534678424815467495307055627332892763076122278661386157616876569419210682249662063630519680369054427613881092450604590095164727937690507815144434954505809724929094888760014373154157087148600230018066254464764044644386894194897968629547938658552600403338827578429387743974556662073296219330339810161265496732164621797541581804324380269471733186957194579070524134327489870783596847332149438143102254621841088645060713159170421245499988965234177198100454266682216078171558958427874115998947764024025325815698552997780283183306260029692459147590430494814964330840142177628455073650628203775926006136315266271313577606440560834029270350493926224692128609263528339707142163446726423609322065523262414077851908993446052961475189734057313674463457856656416528346154897264146299384417999786612084826639505451672969240368891235804171053558229081178674047007546154766379540561237183173417079675627849154533091943668405946998443214012123005368859939019695699622557368048238535018238283309006680478990769068881313305379380645637521637536715248187923263016268693096404327752124686127493809515265023084859638134450414832858841183543132445821764166231399806109795542682982677328962143602910914675712413611772977695071837654636887951088469302021627970412656559623622358256231987724288483983623588275354851254800870789131332095039007241906148404484021984946246764133892120635472149361702764209245671199661705890710927050130675434703977790060588208260946084706418603023139843503651454095157248843722040613612532299682775749444624489747075344050131335360624162352505182434599035102313953970960910163110477613252601324129545648752191152086395004472932539588252300146988270038455050227603114771036489434094060756511605952878458770531941377930637030146225529281393629794072978059074920328197611504933364655753015009364317949784762144057189888559491180384976310009862486597875352283069537260294140649395364924570825797061491859805546744541074736025593711399512959911966938814757384147035403452833058858643732566710023332603740304347527414678112926451109844627385114865861255609108558598245292003440053331776522516519546918692668185636666852665471561953322079942366261656333594874679180112406242061020073812408616703178712818921383250539860087323801970813842389856038083766114621758324553660776118879093804973509349692265274867306010500620401587313600350391672795157729165723933799535765975727768146625027492975108789180024643659528438825826783976243166444209323966970154511101235203156363008318691116170985111880586189164878044358880094601632599495865475583630570515848982420538766878557605086212947520958392195798966193038091454618104454369667662942033292410240485704528407593585611278785115756550831488970288180101610247128047496393783046759010441451701296144169374832797062717583853049934486932832677988407893795115047676412695034371903058497182101878211877170315170599655853503276148357717672591473504221039709169031109715202878891292439670196463422758343087351009062078327547527066408523778069894558203628491960964526843463473670268527705186517173928673495571222778219094948419422676954114414766178013449454046167367249286149730862247208576704297977651457748696676603255698453470405169262208396564546969276437428327114052519747833248454077154258352256420192385961638074769764988656463635337084895976816310729618158366811003254910590825753447230219169541307455859361017153938129149923197734165661615279503606944958043834807739741850159817204191870151808227494690836013898278788381304323379943978091614318274883239912559646031602555186295229647690844154817207043872771226982345315018079920436051543667846171316178195285726567609623784584996532241361683777516026635021941743312656144543810299281458551084390929231018189204901060206869635164860643159335604735315712518680846820970093438361167907634032498234989357042641520550132091999686976735244848489946276333806068455299211222662785871067977408803132285486018388078141741470701436331173005104317609521701157320040475501907002832644251478598961059759791828456405572774738614949072253573136921277232284510548699964410249546040942754012645534645751338857155864238967631168722300882896859806593197635789543200589538757773633542264952367178438627512357737385844923193874704464687358047145869401882960420100976492352764627685802467510142996905992366794880933349603173646776812736951600969864797051944818174273958909969105102813569202983623957493061162160203907952740078754199332923166430326445099424504606809351769013434890333034885452051634034914359981484343261839151339540893665898417956502244749234132806650273081093651275072297369546270445116139223896963773500345992197509862976205693035907815639075796286915282991381736389898944793520710945492588905572430975638010660011025793938421084488054530864766752704477019192197412404286779995416016295183696633008430865708774614134185162919377449311052374503560759681218076648256929021624290434514857958449433441427008325544133657764980477263284716195152430939693773335239141498942551285534331455144256891817820111189478165582593690693303816656456348186131590087064795843934531832403578938444192407219465304643790717981314177778665966755458046891115123735217351029629210171847090610508965880627793441788905181031366005181358468420962061853870333882322650938300183813514585166216916943000675609066978935983865394459071350811531318853046592753544905883633466203825699958502144886385285154792613891309277990696138756813855028859682902174572390128485783801328471308836654981463930834362211003466201996968037825011763577857360847732596893108423037800205081237849943808986074472628517463136460069581841881908315945909377174617299634959909481947411882998152235885470887104510090833068325063002800385536516514375243367432539131400964316360163480750447709023463518920854470975561300458252806266566267041182026457489424821401775361353261624491839211998145903776469569932295130275606203414794431068296394528427597389469694749811649985125861986317448340097007739589433777665663709159307816109112345587510809908768925432700099755216487252200541861235849864001744381436821865016451266319777071732756831456482051325077216892765271847379782670064849307498246809013717716427593464300183731126318204624336896185981752345646617050828194999508671504438291195445420296682622000383506838508141103254478418159003045016804798561902465100035782716680486076913268707754379472221662706094692128960912537364203326369304961156798891731048859922962247876836181649705643346664886912430239134906510184153382993023443668287568206912052333426601628001115812626203212989385666619650642484870870174509720398723616593531114829912927568901015233890463148370611320520501108675595022360474267174168892617840610405218824833796150559569625343723852959001825801909308188564440132074705381252268125773780479515957612009508641419600208966664450640600633508278422991460736632945839727562734494513449549821763519163118893763393980755880589631257615378100373746486172865664147040859999240645952962962018804435624959344260212583781759311082926723444520582042854322570185689843448848214892071047342571276156925708896290512929715524334278484609121033817246771380785476469182263916726342672453291606485763092236789359455766304578358064559458576654664781149311816949331941965676454208701547838921203184971631849580858928255705293330775495229406819058049022894322352205899533095252374011297491233931956483527806438188828997547159912973684327884697859888796550803775835564400982454822944329354484717658070894786726096793734060869494358596786217216764713037830718236265338672467370058046217913203124533776348400034520314034263523853935077602137432568485763564125144988307400721459274185986475165172477116782531446855034573790661834004895867867735593478268378227436288787455633195455458475754000851152778478928317450171141745682732334090793852067820840656524330626211585341990283897565323403984182649922122249730781791075669460231484716527879501585547706753750739056137216262448248465519492209415171356725014176115046936351775296198771143361683146635172510830364087393358293324363800903375139877275157111563613548449678265966381083052370418020771485963876035320266730183496628478043279327355257693466136387627391180203005982004102955582363400418848846812876426836622831212769788728466428572150856246991473819507563104739670720750328626518319163449914547446423516406649468742612193715433773157792347104717491722572980879350182358309750772194652491602868279415849733174998479676618106512210511980906881870696782704750086723062855116351571354861455156570040694357324371042508837113248046762416972733010775310260104215930742210900462798125064547713357537611501467440460276636108471762150884917202958930012145777415362612796271966128968088847605683762851508696168899326191754972013435195219714099711190654965020368202113868374919408554368367497138615570907425089509217654822253776441185993409453615520839449529481510432234241437209211345383325436453706855674082590106502937064902790183757920810735094320840522542415260331855085759880585203029861328442307518559102469520527351787196809696154866766908630957026788868603931248906156683738180150823760160569103539060325083989527662360244998240515406890879968932191023610460348595491429068262001235786295709180050390377855356683685545383553992130959476387668246668319422055364749970042994987014923993306927568093211386147209438766157283437064221046639825884134253923608038087574213682665122617450055884085315327840207448660679626569550062088126472747535801872704542421397319730657941426861181863868753484520848266701897672479554583439230317984230220591128037046079838001111152565662530463338093578784793251094935624022850231789349891699698649260339621016302675955850098314107285803757549858155916544116369943840062489903858749033083406373834706681262166049109365268006666977556068823621574543675375159885282504855389683630657447637564221621960902120124102574821587015963439051200587487318982055947756075442050868810128607518578417583417083125334500236698247283357793314040699908748434561549796894629348605963973524104573093736875342233090882344511678650873634566872988892811383598781281243408397635471412054626202071575224697515216131213856357456039399493161232572263363193438813739951300658377992419605673752313166909391853747344246583723748916646994692235046071186525478737689452911762052880087349192807178649040757605326269454251485054125184913067486742751519614575304903657667946367272317440408687849674404679106925398269142032785817602332894245451701560763792401056599353953168750373927332457056101542323809152771082700956804095919185476997976625811965691346373389150854383050099592298023713655973391556261850435550682901484422935004260555452081563342709744304055624034181926190004830028138419488243461087416200232646681968909725165070865555853688455274897557707381285501187535088037175143051156836637074483323382580975616974285241672181502043460222048616483041339830419403833068820613424216687271727660360391618317984693637808437708141178969653476103391935624080810619530916370818884201861993811063906082769566188660892956524279845955207564298545730889378503388184650149367193507313091702629465970228279949314244383205429115867448516720247008868760406480211523783708764956702133685758506581667749418588485530624002526502855745049930975668326422227194127846079737869984514942061404480573364808177916358781458165586315535726136828283617090315838239035613461768820308115696189712980177397562835759284414872313014557956133232081920020890857948482091437049654769822189780593146954126121892388085751117745200708950207495318730386280051150848484933362761269127668986802001503019632267545104824679085930303926586544600394429674949105898607417563973422243229726069265387933731530946228044210144312473033613433421790119629129092419955667021832035677202435786162068933233962754641827375090536431761011081072048018632758612808892839026766674746377466530895142834420239609255776307646239607902478548847648310411402336937147432902498468625174548571505419138852720840592451849604927735283127806376712622671972091099690593109996390235050679211428455533322825741834940767007751477465625319564287079739300745450309837760290599204776107137747574111408016268212967697591404704691469619264430092315037666764091063380327033056586540666067024302088340609600817766060317615934327757031620915507299124318992049943437349129184394102796360845784696247757254101966605798332323900327536150068276731878940416555615706290529033534154400532857178819033059622686734581384799542504411791575800301500681770748602806113127179821331672116708489270213358413127661186988718974300659335461572991817295011822301709007382780754421665475651825821898410925956274804756425714973344701060248590153612628672549191139301303704668205833943271806943720924879498909172249909353274486172911672889250459986519767495685235421954628353961090423228054079474262416708938942031484953826383035682252830597760268632375029006160813652181823604923592895925673429674500601703476728141591217506863084171841241834673436856637795282555182522529752821279615100603115949042626869205144649882196389544383711388838984218201853621808032444960840657990756704362853183538762649061595247944067516577118967321793795037961126305580521205341583324484240054921886841136714923240211645560464909517421176027659114206369317837924373371570484428538439779112726538885986449107161658191163880281889712018517301841197942517893109505126792849498682537581687891980656761521331216925322452101825927002373256451932238381708375028034807865234966892365685185401952349103927241093851288612351284994413841205497857863363295072191132707343570566410267251359702321281684700892061699372460031802056665428979098331218206629753594791210954370104137472177263190342300115288950025646370312017721894720626600015941424241281437207850914271858500491274377162238379714153529050146895777472657082127507805334115655821686493004600263533320458950743595457140049430582551742160347548852552057594030163077719720303596566500386357728887971131115791338814009680267007448357497178408245192377987933273410997252787907523778592960799064987840343842548450264442267737389893811240823533638817593956764506608099255002940773170661855331466379004771656520595504566489746223516093581180987722073995605380454268379159762609744129922137807068240553861891688556380639018090001394535572970390192908958408069376461283564386410770582764447713234099205240143091357141886559403425493126193792305330053784517214955622188402446239710548127671799104479472860900901697940236626050818009668803070595670066762769997251553466716971892252736331564522625641073169660485836422957189776003062264630105362454369399688183077676352243230643723891828999904883724593374131954441239863269354394837781864921286716993946511245750498415093931597752666684996362242480468676797027586865800150690748350250823926969950212487964274181339425245558555807550972242520157991421480445588942866242613439812068972169973622056818503601318634441550640929826183760959907402555966124987280920127710633036829640950225353641025335600704975549033718267781875751822568465091773036183406128614662654018463899271719589059879430533781844124917093355243984563525980798841915200540843443974972401020990043729788850501315946588964824582610347832510225477328835056148721337661390843458170654204841028053390577265343578168565167907306406261004654046258879383345510729523625773405128772277635532719540899394251138667778650986153033390258478105969017103318928611756138521685729265827103636654481307449294281597499204583041074430306711175265204359889368137524517495855431669727645273651951933898106238151257966592762050077558393493977649751012664141935578406494829287273443395487819304403500043280662337796342994295701422947465135309394830947180001573232426842918704662455980857263692932897933694300064906119939784713756455942403558509734641668269945835222792995937385706779443627401048946618864968985362478506658850003188613305501014144805441721631557549475289947832474518338146721684017129111508935240741135860743401349291185698580815145387094205665402357435596664508202942580155076486397917921216947738741044007085905746136327425014540896355872578783737766789764106799457245815928569196997130595776269092673877731063144541000593126156888500835159769132806035194560834507963348500445368350134296222192985075042156124304299285500012131456535361033291020955719564074948523791499805049302360777890760910348099598218236788831462373949872410323632762955354656124465976774474681101388106693654705991906681628634207487214056942888119187522391281116019844348483113199976439147265441872802931863805710803601894181351265859403235600817546028150734311217100247657619818976370465082141369624960820035162628108978267580647316726998592712616929432520470099121666137817788044011583445985099056301147629583947462424461503126694237797195673059539285707948331883492348627125412563542775155865044735409862819841408954951372299345004356743330328479806915949977168011261946458241317730625789177924328533737977053197980764198343313746878328108108074292556580725975539820340141982538279240887970599715070868153645130863640501242415803266580752002038420941209042257710686717009616436715234191265245808429873666060706659955477459085933857919164260125731374704866850443705896030440409961801858695972154213161444316567771298584704101135441415644736254349713587616083454032714709457017416348894317863761409216039999838478108769119133678950434269653529604681506504159644870347749573026841431022975685360667601526291822390747430829517248764631894432765575380694616663930870861325447402479721227556148593078141147646812694333772814149499719077993722402016102579507112291038188046238036573316844982027079466382284109319625041737617777602936852022135922666358402700467682246137817373141308633345304182939642892717503171257451161147379813711299092815412717250032838125357433066125207049102424162973915210182472227020595680497854175231207486372607012655991247053477596041341633092112514420056448966681096425325129287029097748298788213525420163034718334672944251451157540543413058329998600967647494528440637936516456796017903211385838862985249807736985177895911964928860568486367043418105898166313243962956754666789026394651066825109888110201620420996163765594112001911290411649979663400755781840624399405260765027327402573617526399190753676219453216975402952814004727745600169307768630434870707850308176561949610843005262542989650332090037631890537922119718467179891930609066781184093482079093115801458156549020887161953582331188855463491802407423993644558818931137245705601766547476213551788027581394877528850335013916500762461237704315301753099524586007380377269663831625591209414277155711815423149655296119825309127482816251473826901942214681263090434019201429838801352935875450724059138634697915239542092252914463172762845043142397048727366184442695941196129733435347067741172732122866475177312106276611605753805846680903693162157398028371403134976664091684242630945560209867325610918067478433284544973554596858615358566103264062819077755617587724914884598379329609871851775102455064599485870935434330790586358853251127864601498879931996300419650138339093148483112404845113798631242340303628325370207334910848700010288400957082236629258268067643472925054278588256676785643398764544822199411798343581687699118297654928706521946844337736121778320940416238104670150810085484829364781062698124005911259804786013307239227502146964417839938666092171083169076307946320798578991735443268331870878674156696581233638254448709084831258673763675946771417717984203627475615071029361363410092033975634685089338485331930366661555467106695316495372905119253920276932226081233712695447247839423133829384255248174163695939992915076984844244358177777487426302331872021081119176979634430198231035429058356781224494355106223140466274467867307628607880428067518252796718363816367510924059787012079985912115052025808659436388426939877673047149036249789100582925125340885485980343969343028048469434495500319928923304481433983161505103359629802957629736921453758714030751530662550711428990726689882503936509651206100012215007551099259865963014588506538370963582543210823793740388245143336131762987951775455759290723646152273085326883987725758869118422195230143649375317603880566334347047711013200184539354667591576100268870574952579322233617241107337885938683004623155445228179794509970862066187374358321896886742942657068380249774569962963545244428120788343651546218824517107494141866325221043032118278794394607918859979842673821062409585633227730901433275294390062882401367232982082330292806537310466788865036985579139622631838352162087342786242680832574028747564873612730944605098704266760854451710250795764550896235625048467285765022896042694536071584081926456614754423917281223424482849176182499358377722139604308327216505506484501532339025159745179263096640080501154329383609308079939532532733097270357897210750363407321448038240582696748746498904958463774361002029226484077533825455007084018851826162488371565717068488765742298188660167027975887725907695109616337842551825417477113523300953721892635083686532034276497882824918129610649932877797640413417692847885902070122513409454434988642243657704635846114915522379597307782270599167907287784236585949606535518415036313913858843873114436950908578913694761162597766702922727226208378175789520076198026863364869644717647815800275602485513857149825604118833144759518595341430420540996418983629492028902846441058554128505299760942505048814464597472129945663271159886776545139716084119483425531330893236200123974431748843282347362165839741199562974687770279009856636818594409464881216833160502222698931921067269902013413932777938723284237765753451543238900905107772667793674361635417284297536433931944374625027339713118496601172617634326702292340275167122022745250482823668965447857288287579083470873225520751984972570711328737115065220894913907756461103917609200067904744656895954498508629836173653424613701702177176893420359040353425987099410379928395277805573580124516433381501703960012197231196280389609187116739654262547730125566698101577125014305155068278353394830088990233943072623964123016138353228455515195151942871671548447259786928458773404504492512850143000122261144921681917227835868537713820783773245791042310973087311047750067238458130288765613829604376256110002886949234644152265139040308477714680349616754926746073390024253855763365760781084835868494996583216749808964263384751548720309698155142569379863250525132637404563186199440956174164888558486714286531830722962826951725482300621399188705466778754033069991271144388904930574942200779133789011659405039001988201267357946644564389847247366978350841596689548674198619139498102447600562454849701533033686680336020282428260389525445729181412173222159637939885405347199652272417053110699629319763621503533888544321310329190982360582801658021508309712087653653469003684376356960198801475013336912606945993838791648132631696156730698275515977872183064391804769475600784495365302721209635323829918507233478192161854555669349879996319785592280017162299183960675723924463875844844086583297890190570331290196329731893154657381500696271748148467057871625420291550370782812993048902207696695951252289599112895342650283197961656144104959679115915037384174954810399523691782876255132800465358459301086261693486792400931164006642747398191340269434691605179044097628630214147437269517108595034457224908667268126254633260303650916774537483293483809147858716574009575730186849714812142158653097911062746042711661316535432186555247691647371248612921402790501982996097991475876666733084883227914200534906313546746275245536929069131718571872844308196782278906305540740246950456795032938967979261475654153355481090038907686162894212873740694945825392182421928056836254571569596583309811009939384547362643558941244204920281849081877070490520381569710607254220829240696519104917899874101059980300861307211211172384969633313996000446373970621418929230318293220632847969658100648587892511818337435162572107782223182273874882460716068475964769666544071139178292222058847950853855796012800078957125842958152864118790456972755817261251493112377973248227254410859282484039701233980697127437547169011624235162831641040876649367601149813453587845399592597253086014113270909444973602822044628616350959618851064582932685699027243266686489923206451279732998264711048608559401469445053693141300785769964468007592472286493111563206118653842368495856087867584075808682424005171083772631496550194303039485786449971217652950843210164692912054907457589843784328431971180599631627263195422475247585880981016088621084662580656016822801905221931833916745168819205423610975408015394382518131701299022379867096402270081918629896145068855349824495606931043921626221691683158776306025170024885855567083822152725608517500258806817382341963757014043708144103803523645382873621881566285094399729671537595762808045793138121744270814314767260836373150711612276103922729564959135211014158217674988243813830851658530788137659474498200621285057558019429800913762510119887627417744442368905742171933083877912273240793297784037144550788249646536321359502047408133695270981752765377992804609295370451385677998326139454231880492987278045600804286329716484010629919816361996101810702168947091876686357130030931471272781097387136137696661775677699206254074558143285820744055858412487371018114167847004269774607971223271168594001746039340839988821151794749347660192850226483685993649656700441994187273686087985952548249493538337359560694298500918606723506783376372128392470635207032469635771997678624206171745772613029840698149850821312641795311570341340034438917775440039291509801817052179228420912610800528756477782228648415889515533964843628695234994593439437856324141639043582715790312137550098972813818669507367386350397425448552588916983911845619022581327614890723665671990530661105357568291363626281221571289451564738971764690050323702603644439620992721915914731984297861382616416663296600405562881321592434261951290700735399951808182806329610454028685042686342704083177196681997598812420438271540915167846891803841822748328417206442542704088393215519766362885776267302314635954360684831857470060382370700756184748995861018501025542297510486142024283918766386718883686251870071402075250514212938563521542827580645497272366519614537327444966646599047427915827211090146606012809081758053936895228925333782387223576120551018933858169245417103739153123629907912692103175511410582900797505731013070146984637703988482325684409038798887850915724946048781658152541630598017316143346878824880157349988996878458001856615810302434510221683890627085794603417443483781233495076507445555006427418180981584009114061815091261727323262316865196423839239183128406716907229663315581099341375143800989808474448454090082764397234399744565402726780834104645054683170281832472631844515296876203104578479017969518624882568614952553576902598035081583678996611956097381769326306691388408769984787416634569395546981718095154266833607164079372043352646138410558829794630866431556179520161353062120537067175106496795732906775576802992176516226346525705932440705171372047183122178840314242547487589768218204681521325284060471720916695305139703186732210361860261214591594931822998914964692863755527958709965577462952123902531113709580138083171004110244458968737876428990072537591454846025192822190948186942318439460526500752762499546940515670340218423348938777394974237073059831718649942759364669976731666369366619655371038980448991330450451058591619899756486261292145092967198806549840631537010053585930824674576687703806624047956461441978377317255336376413231064703852383711968124393602418707618748992442758331300776145736946014024016919167978419416908700381418233471176628527871220973796490705860973101400155305022413562131236062542542373734066787849046118156700907072191332327818863795651714471209093277665978330185936419134167819827034816920229712683200028882916790670225450891436398108450340391819273443119280169940608318259271893149466670947777406102276868259777266953688781770538153223224130277528808497493546868826228666130861953168592289241348900245748878677875919390702771313612751720708611969474549362927148724995713284839989899583798680122203840260971217552092255367914806187621810151601388317993328607869575688056750749519884240804083710835521522610254249343884071629836396216286633537206248386893483758022496375390997489250927265371299214258696201289110756222931205119968202595109895929476100582148401078570349466201965081884777883811922540942167724027152659538321010448608702008191862490460933569090557319929339718201153363882821303692497394983955083388690499465047919152653059430544865371900948728740152121805592850909117033656287817410015586260158557476295931838384530945493660845846446706026007696409529060241402954958576802161463978662348397199165647564344061257854762208361719706408596948688275346167205181257919012182679630848510450758276951264323536226988460371583249727675432050813557336109423731743905645156161301718441592697499862067662335385677980923349271602485571194280270141465751374219294611539872257395448174315485868658236652416138437132155336372354897338169940413603251006862173612270545822515144016111582657480705854146137735116132719983979888368049125460670242086222190980346167498801171924438156421230020535928652767410209104623416877900670292942596224882704613726416729502344797361106018640770574520150856153474700301828994511118992032975382289619630576714074283126558716722017965174655786981031389529914060171145186534428856439427221337524269830530449297268860284536910044670707080134270531634370524795715292166372703937221937732040812366966161485987688101004894484163441092159292982166611125211792311429983857879374845762841828770260774959147846678947457571401573369540028052522158734921629928190418192401487925669394851541874727196773933715228142070427607745341051351498492888708965915865796897871332757713260554362940635701649319939537007231532535711310743458081727789376480924497025486465716897103108293734611986514688294098159782691781797771795968176404136789780361378288559368377791300882293411182194654320552235155225709233149505314358830346645900180136952399685942459198075578788005141604457635140737679034311074881793205793103004121317473157694833209014924329034475524780761630842298815303419672782227016390846251524843886574003370161002615472459116074386450859763921963815052646881972888118068503497979961833890408804398872564326046352130061396688729482716726420469863772620139127431083310608806883817207947425700572823576484452827687342163457763925251872399233860139131034615979596726386698739192746012913234467102897253308876510486369068700097209977175534661425508509641605296176865428008949159979551534441908498795820824770721976428965300365882632558546611311770712955123173819251618964149720986370392402299848903205686805504720204362134395345384534473052749820399165353522571386865727795975625225828272635117593683650137627609164165223972386464884557865009192007567769378072122413992121623629219739162525017777272382117879853713506520022971611272894694968723642693015420686602034309518151435408620736746134696128763002565945831806657883932412544784249260763512338239227603098947044917119763929717925355441288606722924406250774933372438147402792859998722773017644232611037913512742345129791414846332010903671727932227750464539031439019713713212372287706005880760396782475242056392521049013899954295548939618378783498566216467440796038127837383315208322425531392582424852707234034634547545305183782419227803926853745938327805868608093514926687539551272512262509369506932354963856550690882193939562588383534656490695385362870188139046945326159471741599313500804726585741176546725705923179403065268149433650600563392201360404629240244328058272390221297366203845595240479419146740610362580015922069638646269139303979487750738944766857604478626042165870687126572891834177394524043360301191106946950564026299359875799319302944157033233836258214800439884413191613396915137037974545074430774087442097084863319646528687812800352809047177083198935431287383594733798547842370496079254450814435087776077023872309027631478477333906306845926892123772089849912515608816763352664368859496196574153722901815322649627253391274523976903576058606212679818453723524339281558843065061263362996226274801892589209328341476358083190281715133444437696086748038914893679887487402241221860819337163256908866700706176653071893503061642245768864530855066889029575107593890558443690772921769074362747978821059678328165269446277184659925328296450688067858585621379465996530456888900611224876213347715853035500482013963991954775526079676049088171214945482109328849528197530152485772584726922363624157999859716473300098253618818714444689085966431205453441570436378489696544115841352215554268663081362339759529821090920420074226004801288964847927916037421267639609005759632195569870803481730951937036776377542436874359533486521106798852603222288578866791367977010842359882083250440986389797063444118969664040837081841464184105221520538422440088085227187325875586729264640964454505675192562605988029272349832091863869918439974165521763708642557674409748450468548836688937960064981466561380439896283509731933480857581842055224320859407998998659699896569608203327406822319518852080988518587439016213543502744915421652999046780679877899544985969414543083337171059810539172837296638852386793470044506527840831046485537786383612206165778652842303851587771678299812973880895745859668818847127422595376518389841288324548111246745969496735128503970811801192409139215914534020241461275091910653430748359604044292221128506409153748049817201670168428258978961157332376471468237122189586016016638820536841738413948428091430541828046476529265746577555067041239784246749703227745196020524886134178929769524833679956532573338374026574867106261630955686486639817461097085809508243327956684901247091577799826262669296654007166605675196842070139438857220297826563121786789129850798704484114328025050264431118070335855755227894082064865778071070076235257551414360175782790068448199729506744959822973205385340662798332753520235382533224016453981411102364679007128724577486954382246266706010842134983220486390416307858759998675455286017465912132802859545017956099543522526191527549417198630586753865844953573060412028133914907921460254434616163157491220409455569206133529506585873122379751822241797533991143179260339300634232928498047579252943243119065148483728622883245479626119961839979567147965626813945194767505489231516054944174283700825129869621265275736796057215704638855268049570676178399680084309716469481044261002855462665953509824484890467029637216884845892503380967170325716285566126190168652572003392372302056792238576628282444983709150907908035104482673237030026626264770221639066124269674532953238229121867714966394366554025356614361672696554107823291649243012651312058212299456898625796010928319513555431306760025035528663105229953218246810837295186368368742328278366156962693592052792236508033442623870391096967905759538566839932206281919392589336360481838105836408227327036363087014305227007781899837931389818195287137616070949095177033586149227379674649435561030821551215898043244408245270397366622983798765404115695003611662980616121851317103897952193535319968220810211519224212645591514323184252890025550450010531306387681318847003766702704598391873580923002351548488811132482977557127986772026194541432912471421832896315244323550543622320379013174438607914694279975290755526144672012907897194651951445759124536260673869822062858377532543591533632270876462661700235064016753904615777100334655146027735226811767443756513249954473797755610385966226261841405589713679746404924315334906271038066660420598807016877580014030249900087792425729273218714443243212275615192503483763079160431736926775213991070864655649605091624396515497011795022103543319595261812133792453641108708051918135951743883527535724888581425816737130408727841894018370420350293884480719692614840754336842991924609792526834071132041955845759585207428478141571233351346224486909442699840573604778584688700573593490632614798141635067979540676387228734786443065743243046512496612472496689333129507680881557616324128381915789092366315113275711686417910720679373440294231926208973658161144163333828840158961683913499321341844792883236595087261724323628521237966883538236683777254057192063899491415585435929091418403863870937571482180722577262778658210542854339783758307817558180164953412646207781408525570835166732789982678735358148739538059045841511168114744997536623758767529402147213705374051321480855688653902405504875474670413712016667494315223386011464435265867305130085786070853385730713983451747454832739741617989676027199765629665396278550928968136111416368406270331302404489175647265836790427953514756829266549176284584953310010063355388684980367133509151010777628341685473301820254469812681092612587404117117424556905210722859818469716826825979694942914822878840060433227400802713946485982509781306764052680824041235961839213449034074714035094380527849963909888318090841474473317661014017224464444173496462088030726519056104455753603298325510990990524476215586182807370883204679847164759062832320012086514268612825984108754769764233613787144883355583857723402525629933294925911201077281220553079811599531318815177071562464144590132432430826176839206834017181941339805537314960454018482245205199085909886028953073264542486308452383125525686796523897242988588162903116196565521071271116276841336934660841842499634612082624105919599522905690454213179424987098609814489761496181258354101582866598062499673051685157628453807115957514071223858519073000838182519519107080276870587958154375032153309812926574162398661199776163484035358287235279800680838244918593213893347492048477367254666841825611900455720295559316009434520194656620825102194077771495079201495165345469798794414988709971848136466254143545381360483746856040891646568184721735766085988034373165577507918452806656258955996366049979698268747296401992810724509238341084201336091605609299181019455385209309882218963714270707374465063024452080084861567265324326504707248967548113264146295387195899270222770461295457278897224749902768615518866475534655321655635797655958475490768868700128061303346145392647273446830164055918173031922257541109731693960031409505334469064956045200913791457739607227282935088383173377755316397438555282629029855062658315198360042261767784257845467693851259073579952227039504440066868373140816547993554768346333624700474538365998030827890891361716118423243532774769330743872553736868611070203883266139795558233519570569209567794561216934900363961084194755345505422394014845453970642327043963488449370475146637892637150796902354539183791756009087004591342128410394682659403933989042568105201020416594132788229599435199450069666861442214169873060462497247592172129186742794195277337503828414602865517353926325615893923640763333483308965971999148425999369307021775751865457601871614063974106603130926709354888278491696436152852724883186277196383363868853694039853548694150394747410339948540254550537391597259831075659579446211386641982210000372114193213803086838645217875815292775901701703645641263359533880939249187958575572611832967395494693942960934960370599511191408585717712632985279806545007633103085259067079897662582385753684812142769139520057432335338312439353139540007898893034943511083492184364748783320154255271335518412902616375343944000483859753734326119953146969025764246592007501340095339424242398940813418230037388870036039579852251178591613824131026250071184648280282881826332360930213685777454326725018828465150293357095056801051237683020321762140647602851015094868581172828524185615288144312637872443787488789590720913931513473444133208640963054398981593876582469844010277411668613949687821237000027101447265439999462123528595439264571208572074226256660852245757712437959677102646200380551409934848592454722552234603084301398863050668690489320994499667917163028858731425797431927087267097184092987212526946377110801263845722298696193070136459800277863700983403469147745908269438122531379830657231024437791915802632646747489412382467528807096062902252309182642613973184245900623208779828142272714018414236038252828275738905328720765187096276446730533916670949844749074662105912062126743789797114507084854424192841197917837532011120342838106331005216633087849763744013590855225693834123459578260949423559888861020720361118493352870997630655403655123616382529619403829641153586686841277300488992050633067342255954885407739237118613312477132911773214191129835058199026173697662040816489354095385397905889620078983099029993872066461894661852722614691354375463285020783765955499106676540193162533192475266407683968714138150946728335950089234385740571527724261701992472836860746308881254357301692586149290617949879892230142008902181867430724230301041815790547529058445648583776683534331300407360404474899036508971883481481760620295891694398698429354202723751622880289477149429802147400294074108504152143856915733767379000759965429264349228666783401491749142126896426020670308459226889496529496996507322067308784049666588431155037575636508905088589562446385964324129982716458263268782663011881645909608040143455928464496842227143866771297586956693144869410895304901830095308188332552530116688508692201737099706967713500191746322602239114002674966264105618995483132000795827253897064521145267947496774082903770143000345236623348456458486701731145992388807007650146771611266869045456785416238087203881322177026531994844269642775408406893232251719525638203948836002694290865346827962760558817118632163883239999843058757089527442722335509750110123937760497401010016568895850835080675902280609137529799425997659118679177982280479154569879044057630705738265413536748447114102318628791063561434003096392334605830190521503701984480839913563858666572918722155665304679281691117020446696701118950398219616557966539507438998798134487361263881386407396771379222026126026532699195942417005961054369313490749741810291593160543208513206505693710002680591975109317712827127229677615913733170350269715316991725927358739697106067742991995038940920082254057503297554883052978535383959728832136741654647900314381327718329449334146231494820153301495514461911711254440505316897955097887059616995170948698257534584501158913202735610834324496307909758909072722232248107794410500949282797914438532382458361073717989847330401726637729422544212004954476733406721840507302783407063459531483791060752468922921287604017069726593942460205873595626891115251113681444120994046499035945717587842993581713622096295884205156979638006004005799484531223892011172061531669622070897484363092310944033772272423575331916896516284675579724293909418159746113364335608533348784595219330908956631547165685941486216856437673165429980833378980535717884238277954419678171908774569041837376835993347032082851130877133392941813848007692722229448776406335345754632781375097904096587664487230122519784376755144140817364270414683425159524799792006480722191215059054039044140407356701750996930780798106760783924493242650169140667622281190005946854235541301172330982314411701028399835700187392588768201486546471551326252833254412256499583304015563015503483661104262049903739490938582790374643500854009002527081402516397834786762793218708980584380689904431576214365272762894024116130398877318803022675441849135282213892185701861722386865587312443694919136274203643915520619311292492472643994889963894949951966870977879561503215682315514070928518082477527795299701717009202264863572080557870551619969754614963020194213480250297725826877380165614584452850338657725143951651465613364018845597317506181321145197675241526833625492248629269499063949863618635933215814715648750140455124977976071806112060360312478249403948383732111190242188729190632949520776279008256359103879043640185063653796470127642824747987023753214001967840191105240352656115351906414606247638886492167267525683580111884493495091894928627972682098020110842892119144737395591203714941325223465203308926718998565469734590375293319934052881804121647152295342316617453420157718438034950512374695100883087259249354509892751731636403668053365675238181759777940866591176081205212749901487289569845650221191256657826076313257592742011552871645601339304860668227149803363177602287526707096620630468674891508204276963511998903298049237054063833800379544576206884789703723213273205844128254977718395083954138691435093274369855973617570857183901663443460074287263533833169628965953865824407587187578515524362162691191755591035975693542466673763242973598131445334223213002321529844626192404995297729750061880881945044885437130095462728729065750341943218917727966159253383247491377861967086706652554478770803788146564812163994358095305227243292974014991508669545785756079520858707619368575483013481530850219226308760257722204504198760080582111115262180718995332634248625295276039496880510437292032657477146766902228599353186080332064127025175083662876885516186871291814618799894423765205461951714708115077772828020124069099250640687250048026442288426809659546339221234210825465849821311079216474178698720720974540728407981213922725537762631513741487282157090900135424848081421831231999886823678575966499824122100915841774626567593138242683359119508800675004027887784822971726437405235614512027171158042101229770259199416706711893221187435747547197775472938232429337732856992480156286993349038182629829648345485170633462055054702710412916400339864888970307538539424900775392448373407476863301676141402394229070460988708098211358698763708549130688389452048509012828666541195175185393781771254459456556980270154178450785517213343780882193756716687485008429719508021298441764860519277612110271103921792539244436915394777843561027188056174508731366186502405917635303486492605395725161104723285710287107647497991967211492808280376560480871248822118432657983948895842275848391298671458419349543021140483576019738244433356953677883026381467240650763574337808328260028364144542763912858923184824319470409151200943438357757968813762219543255027411161086072525320742775110707966808519431380933917159083424275413654762609062398376581674464529593976146203591771472648477439016694043777504960581601650502570120715408045085018068825325803759190054686816100550621503264208228553138059067592361092123979848812188103383374160927098386080768708336888644939091669759082028188145637872635699881252010687024582416813831440953748604113232932644921478132533197892024443981671026310589069091011160808490159494468970806302806004892581750037716084409974683599004242414227211461664013515160101252861456870859196070943285072688703103705132159620052281707332491564483734833152040148575922407063230471305559201841807390892684834835180656233638705159460713928883195970694365774920816755148341456733574550370367851393440349718868196587296252656467219897526597026608797213323814915566051599240023467213081387372836773685994078955761278756830490077744917979255921001569244184085541445563242942372066106215871387914383882190668153969362187265329578878909530815007203827141889113909444262905393248205926072426724353710711746699399253718232884245190121465301197126605093762607147016841546233124596321222746417808006441756967775449721884082219363376924133983024226185071446862982675005927837322156133520112297687266531859909742922718380242105208662507391063538564716083456190893319747527607612098545520189044889841943863257102269179990296940655212689407380655723033535032880564738795555827374726019014136252973427802297015248177717128637446640285838953506840555382515807292859991537252820795177810006848878270243282112687992645346648107514775584977541019795810239223864768935109165279244574609555911822623908282156020176820404852516695472867963995562444321282940252360947909570333698579511019525144894742981495593755376773419364786831614732328401736845620097982795926694426068755011434187189154600557500649045017580103828845853583535038208592366542112564993628551395548112124529753508980695759627272476369388854670157066402496196080172804782233113738434325794239880846654160055194970383671580979112453805897742694130831355713845940362157582158436603555734829305461520671136240886483948693656959659547835113251072685512999806980843007087301775954839874191757491823031501831895855677143960596702474984550602088733520901461603071145500843681305428900665562102587459744626252634468513692966805833899056128353422210113922811268420473785579903430595372253094521055982602355671114866069451037815212150119221236749756417851420673632409534161367887954176884719344971747232524142383837290392943777872893022732362900303011410370357317914685883573938319368004531001465690443783074955613951177515618112710531401642336206824606005226406018438489032238571626040954290226038046526520004350122235109797046801977223899690047020314549013713083707074724321035749902588288120590339768305602093356660804655943059200249530192141182602426789167315287265788475928884192198582254576511284934599356704932845921081799201484909562543199747816350600250002667070264919809583752778970640290505845986205777802287100540097451130255548632083041608581979297522383207373641365659588391532011369359918888469963964351692626846796794330580552042260491629889135970321040847910011997063844691948895373460182818891793481659085244759200240818244465238932497966304174937333851746493391671332424606887329100042522992930858726867764320962217722961506592094101207255964218788335495293803764122513893205688134342553179618131968279590459142549241203799802332643218501476304279913432772732789195560073727116244934450381199585932847232231623131462995074790204525160305172188516068932939912048902710836905871901605454284173498094308140648630302707989210326511865522843471990462134962073617574992638649275495094132014106982115554948624404901871026833336274532551125865329167152661703073936616016618232947427344075787238167627152248371563417172440147595005992872815423947595857634791918298048918945211942890503925085063502876142926509313138787853003549542342079683925257440808805451001985630859588944303860354000094259319373054317529926658485661696151355327118978884896799312016888289922794994925856417447069142035888781572236294521321485212424191733005568655213407618136212102482488292005565829777653184781319953046937213699402773465260477870311503598300682802828126198758456826223249170951756835416493769419890274450682624786813779496633404198929061424968733727583565210222324748858847626446551742541127485794775231042304112557616745774844802985658346270057252347631438551525709496350332165301770164684951106699065258766538273950449832223205114337159079358152267487061330761842373328811962418690004349816956925888717151306840253266281187003485499045338806904767112209913732614081162057996342088711468390577130200066701271688559947628237007751647844794669790383342920928429969214217420092680190008301005608776861697248306644184678234110491567166554952465595843676441873118432421936568351916668275816897546023174706240626487367457092815182999578072762748114494155350064281524572020986005664454369618741488750885941148916673587570848062404496950855360427775322048649287316533703865416356370166767955495892181659333601876455327791897540916543374979025177059134337621338222831595540773267876417390013137434025466276464004895346541690591807546382020306575139907858155316044309231728721946479942005092124793847653481754009808536442334348757528070994539893924191292572179932025503250123515556099297129540355662749896154448318783503939554796970362168486424084543090029908385593731952774600756324529194684925655912141197784343044799755531911472686907286109493615039501362080795609629894176196041899162030019807098290055682537466461370848478601037499079239280525173246788147973103483797821506537452379242504604159659519174473185491070338429689215365533945603723884266073426989648148272169642510601562454476121776624142315617751232562110949799711327498825195933491070031324886187611098953924040445766574715580415027030503367772768842777554229422613789002114732651966263093540697547245170315565150322554292915553716546284046674031628821115431567351691985536925595890243480276073248817833095740066749247372756950092921039647123544483416062369915084407605185508109486540132268832668865551435027761581060966195440362449011456827474719269244630625222834395142266997702824550228471604388252379943893935558004285545930111222602128073095710734203865485171666991868299215745297624438893297990425703873071901072052209027927055187471816928144703332862360400032155634402286056977361853665306016619750038167835191531289461599775944046686800567299758222382678684875525020476756393114667666774141568129714925432880432946285568282520691676722253753895934613522730728217675875523395525444527337486257873488339774690790118120447888012446861263834040280376396907229276510856183482382491609390573527202585953928088815902252297384189987013177633470390081389751816903189772403561142316053134085833629450834766945195118857814765077976086437447628666284110392093158244776919454210235166249188413291450926812822948030299832921500944119373503715983510585406542195416960340851956403007611341769309678542416326342157840919867857415640634597646335496551911036657318751977966461887079113109725699270101796248995721018870739383197692304222704665037094852154361171414821918689518381408387287367613716181354904538181875160808813611741037263116598652144978045859732006910560683074769042038169706986581940913800204915410702034449560304570123361868570572350597007555711158856593836191409733773649232884683795795216836555079044128368777095771372155556399245583445985709578235029433957069637647495123405178914730589305750188293854199968593877569089192221255427645746144206405190797152825555425068892738001624470825705670843036737299483610433222824943801272852843937023468335486477723046865206503947063016399140506161278993298152748311028920544708322564916840151190708101475187403396468207374133865210195448602607871741305148858750573579549073104983936904193314376693665418442975051590907867395128850959399405529347366903087944860648162262144331351050451853950489164118327787490512245293940631453498459111190568936432640137078125132894168536972180753225680347642693529452262325004493127369013336953343370187815003333377377326185389171903087099256341898706942555554470649481368784419200877876110908220639744433257292868805891565839533448447355309322920884975500985159742194290051806050406492438495274065189823235010384635279823603028608455134550982600947698287180320105628308914534089306584392768447532181781379680584263048402221954554427814694411670844268182396833264289414037708566491188739563324354709868902236619009900972651783406837224976757339994268215213449772630178094979660025377031266232403961651804205108861139400059499362881650222830417027126776748396260739088813117994964522965113458398837859800098889963824698649774309515186659926191970901778987284210122096163704358349183762800872852995168027433580808427035214267648660444161211364346547208920097940533057422181661792177380432992257762706432512421829081309212417918500979646437663361070961993933592672050387917781240956553180990445882015150333312963023480051836683829345378308723382494036971415017880765036711358227204614280607966387173570708904138742323059317066391077171997205131044746871214821788073120795382996471333006214491726538560334552321660043978314214592971061082774188054246572394178783963733651582487796338888143693640299428483669826232628713982619862337442287469564182339348144750219114520058747071236589913771182554140599043805081026480904195080733486565530386141550888753055968436293519257044467101166477527568818100544064072541503649268961420790795496948204747699004220237999749093495524208251916062294391191778457801428853147589417755126177080357990573515570231258765928125392984506260832025834266869761017689094034308414327429845888215058083660819364150089948420067814654972063090701932385126192913594428185758758262997519109067511463601704420582952943934233351718269245610889461399262893908011661824790513357154031695953967939944716734693761044667705196599416455139480428882180719463236225210158191615790812528119990656210567054592256576103074857310196860955649086042949156515557949271649070860680993289675430187438716755431285106145169921472798370225951095294313969434073032659363500815539301534548314221488523748459009957800552003073457753757220640242941444068427687343620401750601729779370174060154104867651615018348112251140468582332326857076816381710527935883343813293046671558715930979791915736697579607241528765500839521437743452097290504031304192527181905051008274541754791437606354950837031316316179452646564423666149261053550620269799014218984884838981519164890819924697512893346664531837871841609761375704000272964323739064739011122762171567160347530997590495704061546099389792716395102981645314274447735262692284233138509824168965969081799648799027535192066227891207281442426887833684597934989902319420618944096192743527879247617939699513620440834399589025691937540511369239203917373504563204564190574635398505997117300853977053910089045151711558147371664270035678639983033917285601450669768482520498717792682501346365680277408269604345580180646532984527646341585996948774669710932926585083528351698412123434228070612750725135495030814298630514613152719667610673293438041098710913147720226904549671023857062420248016927108845902090164351607488674023434346057642431802942244231388868269260051587048633301957512394066490269472707525179805978673120090897942336706539787743003062075500641784970317768145095753509585174082759493252291683015726520569211438631191464308931433831874786967985822345829377161392230253810379912473629682779039642534777423157346283443479544156535106834928783416893500494521659271676876165222037728949650215174570529666056961789978391409594511413305431343522905287987119170706353757343664387888930573787258912317534859796176386631955181670757810050620355209223810179546466008255331799555916706738763583102042480177971471670912558791552461370771801679836218526885208673599824865741014860267475315969507796454094369944016265504194037211951790830737752466529343647823869983003948815263734934440572840677373217688574673616700066219851706237196143310433460851480359999713442370734903885317148193119232192022359670425414314996645639577060747093193102593014344667217023443897456749469033020850137470963693944105023757854972258843584779140732443598845539902365989236101477131457660633304473762925020852018412228866955715254843177281726589147959796753881722076800078306878427298353049151781522700707484975761244834787976200561986119905704536568270786851961099014768443458353524325926261773430884054041495878766578851314360011036378027897519902091684210251058597262506111786404763538185791307582303124081428038849716673857284818600442718656241775887510733747706888568738254208978673997117288993998494514424256010388524157471236708064701151183619410422106674238669837527515028325414611842043499849491180037196494514009073071541634764880599891298601022274104507153215864774666931249254987871233069760326273189116840387310599305003206150169979490363652099854135500159932318734163407428555292851776642519348122976912110708069009853286226908906486559937923727408820093996691743211807059574405941941731043920691594930713907268784781937041651050786943869610683806392741594234094283337262105338438723605843526725250118363494198314617108936117080036884864119467913420856594846740204916631609267120319935292171108922655233281853498357712253488400499634505729215920058945380337206993206228606605382266311035248884793896843441202438951913876788144064677717222800638641934433255721657988211780046392295272334567032563776137781491834212228555776343903450685417369283793581395737830872282273060161270552253425693499770420609999066031017391834582107255421616646381981629502992484972699479233079720236954780617025103066275694935286571534159365847051603251585844995024464595643064890215547220165385440636225012313314204889608925471917783837523634412555446074534890956875338853162611374526177808210049537616146848041415580033308515753724904602475060874747083290367484721642369151945059059498902440822263254838103368456197864079640409762660292003949934342119478279071518126017799830168880407439545556343935027511868884063543507324450794084596801198646914454872938246208150101567414618886752012811075676475778286052631562407751708622226677711470306007983190457709904638438506900382713604126629680419149102261852311556697199228754037242019998807992798261109438938582446453138218705897337276100406155893070125348994787563432778874942537148988054126280605746214126501295122767350300154582351102530262299117093260732236802964284729585222808799252998863791701674100622320209409617090622450525339902481400056166736619968142523793029355682512925819706213312400989740870971013725576330610476531386217415961904657835432757613427843257313809352613014180788642784741109151981451227181094080070421119230923620767631017838559779440401719379879184542199916026802434959273127296010709294405955112397699226271898828662798329430824760744567325937503796702035905060781432013595046985521430762987505812566779716828475382933785712670604254678156154793618200091604949183784046763174108008458144193073406557627842814270342479095584090830112776834513382987034324579142496671736061700678325742655691151797080533962570995146096955042337451795110836712454579829924591081693003054474611206572120072357713854194030800395443811296993139942562580483204462163048018753969633791810328774707137010247196213191128504701959502371867980518853224638818658005057613282283001623702129948819582762495501689566891448519464801752308972352005736887649662510776791765683325238351832301345639337798973618886121054892368839348315967457741186556599557733719798601801346869049212002298709740659121767573261453689860946045423615829555693277340312730122765099607332856594185734558240314442743846099163511659325116408954348387130186548720701694888612516053428132083108291205148395667096191441128297978861122349384071902424891363402696481362444307348755785258719319306433135094434920478914803535488043231337409933843533971861308766998030728939011647428164966370255456599527108629348444929791162193825512594218502538565841260455626788270875624743595574088897789087483060472461147101300066262808828271823736065630935396391158528691747501786378376020280338113915226812745279000770364668784058341519795482929926031005149553105565674840941504952324971442690907494821983312327506992531101355976515156153827240415446669492512132302809216675324025031676186161186667418754758146101743607502657840550562576991409406864974366376421679988041565860860236901871965080268267030036911068017019005822180368375619763482680434556336614449045984795972364729846639644222604391266334711526559873943143000308273265991121442815167995712137583452100820529204162172093659794852687367031070958878226497872389049155605716758654643637580994211087824038032125087240449525789263305059754555070989828108869033199833797903797836003436830394924316720462793093058279073617815646640561408632538022009328024180302089034967679041993511167812743748034806998169607686100202335029124297453432226033377235528338015741186729677334746603440917329023313890956987149055294477709988129408135803986213671311458101937823585418593376145162055664317271764818202670589667922383954972692583356064250442005672276163371860277155173796661155610227673936843964356386920238550920551438610028402976986166330179526609791814533405271399198816943234752640194745620777476624157937317880039899783183914933351708411905512033045046225568886898984152018560429188281200679512340620689920544234288267326840176329517487799081411261160045658632760539074820356294064300146411655006966019387096526522642013127860663722764689147998004140689040966984115362183626292547416923173958467753445439870623816712729873997843363153764098290126586551752594899323529930237155933681022107854190552990088746161596069417607810788116421748949110690513634143067505683102150128086969221533195639919544073713419296072327716005662307630769814874895996551621673024661178504033513373017018364742155608433075747568502000255372494828156613505230799097874103029367446296890229819751443751726227058680960280398827986735111319263675956014181292924830824616536583616364607245796207604177279350196907541183680404373006462928774444898825518962739390994255347653091801553581144368888048301888795523660137386713012563091363314133973292898676574498921175016190596509938735756390821374746825205492406684234057024528112567791078255739019395751845049282107614087924903733835729270982322596943685001643413288741268378601249857655001316650154043290078575209786569903316851892330069752492321435304155656029781459691135149874031559662540670031542778030347364009843209417282645162962613322665688209056699506912437166962683188969931321585487804331123133438228008007644421588051779133231285200340828852277208481431546345324653326377606267893055442630671039775313503453773839807665622191362159300708611201568819316016443870412926195759323429305485200043767076829469643400410022272516695094234427156165232798501046522679398030817587847219364997349229607790406226841006843877156525167211720896017544045739497187965095107778848171811982523692514935699229388642925908944009855140387380799006443312969327282736442453196402529053819701233739927239375638110168972888943391234544461792926377243932103658778258753476196327487639453563387397283397728691747664472443083216447440018920364369526120365335666746170058850207417272374233065576427077382766062696608375933314728083776079687745967002040561531781155637713957978463542068500813313922317689864391338205748209504582134143516876501854582892550877815646389369060934519775948955555477264906197937602466118786139592679082171553325808991014029116195381526596488149262303224459915597417653542403955708080062244665597616441828102300610297724587994312827990627814882200975272648358566297148089489326895425449432748047433179808025521827192913199885148658295765640004688873877899576545510638720722425485714783764012593856934404814473333942498721535139811126945755667026334789607542421429667855146574922567671230257909946327677144643451847813819359030280032135148060276733286680199110080653832118335506555629510746175958938150375992993950936847602814611261997402218876600220904390026067190576290021372365678249570944081785079055941942118521165216659803486252753730135124556038887596614834090991425903609595419392746847932986152922123982115830194246237359210868739068375664781656497680155404585210851847617278209122702592441371054072840340827215995366039700427394065874345041216111940271975925648651914743420062214788820579099024857214730689621770962997087169776928693424608620990831286649390372534835817562467460898610874976402103238810920742926125963677044928103243900332338232343387844637942527553095690546458459617499182950117901544391403581695785056498769626043268349857072609172995968289175703645999690663288109074959708894874226035805768157938237553715504362515849807319707655948098834227876834908531926878771343779801468013352752137068265066527721660956684255197796403323493180055310566134171747926115480837375057417845924676674048002912730269118717333939310081899095318379516044247709530740016556890851737109788669396208150160852171415731917141964110322592519520962029307188346745529974410537435719900153983259023642030549829704191203744143370342857744039717299102401872893637821054811249442322224438491623225676051058264168835281546347048269040369384475335945384789538220442056870317388573285197836317742024694601901392973725209827316999190478788547886019547131134385699113238495440503949195801748641480459295098224376929315029342748916352548111332553262925471880714466513175009804358474556445616753626984415300741155996988840784901834179620112368803799187700936280087083035947916442618921138044120974971038185119401195892844852025740593314185198866750060167984069952776645691244341443780591558928395023299163686786854323585649016753913047042263895276138398598244841655779392055509922164068248049737690351440772312292248686792320125525085165113153943086586633703383312479550222190910071472056824151401109515290539168282499447994489065887979295181982780700172547728963388677146378480075789963131059240484188124742397951396135499498567192796474945422627624140165470044369350875433641593421882845872127851045876271004041899485325030581375820852165984684982661191882774655848192296956152371757049698001712996863802159472973091270362603535757338329001129348189271346165963078771081943080576515422395662307410670946964302364387200401813186489033372783693965115303148564161146349602304501085318609504921852955701710626788070410371594487464176672476427436001434992438291209044450016120614156007782203810003997858341530078730333927803385430799106912844195117095791399777236223516251175229759666467363829681970662838456670542490930946224126947505635396723516774473807505230734505599270893143308234193699976441891233917753616703544445234540933886907855974167263456319222199625167616558774701510008022164664669243556048399445058489421559786148852273117268308825533751750785282345160321978888304179703049468213087198472745986185584332714474085054529103235896100532547084885940847996218657789660293839844058825196204262859775998050210380893808786378038068332680135921375770482773768168733147421874661629866374423991789341720313917932733934976534062905167237840490355675511271385253157380946684941430464501659986967076544771412274062649029511448880636961003705584194315778026224869425024881938620180119179351889614937215033385716682069838388429647729811776285442920411648928235271889373360489105115534863447461512534824215769115979437845172153386143794004408282212631840759829419090151058648970843545362031973115084601777960028856156969000983892695447011973951416078168003585327085825809796606821008726705641619298244176891563731553896306461357795713186821253917837827822335102032047124793070476288154992950708753348169150041374964349980818998859153723876521049160524305337731695463715904368771309428843056431422567299733388515447365944228246112170920195381379391870047730657905260725055516887483258258775964633317711723879186038317450793622683165482455632317991685852905699480361166903456829953076213574682342645380628744389869222141482066231076136921358556488758081403838484254215192529415148518001626032369699515020974920332165847744939787424759191756379786486484763076676242944407101951302147552343042705790010775715608823235409427765602378890876580237255619828397490227903958804662594667581866647174644237523747075509854360754266329252173419033252491983774372359368817396650274324069130157980101318346104031016702880162260505353305741356455307252992472819327455599225986422198735207947961846645940428044990714355969722985049326692568782773653030383514083252218933539004469196898552338823920059591985461191936287193541902321043442050451966419241051983987272131830853985197324793840284888457935009054885649132816162258838595233729008539852476995536006053600492125202398411945421570433597667024876153308706464681917085146825188990813768332297951599446189684751741058959672263698852981510049527665806895990834457705882436280934008847371998975683499801180502266516958929467820422239152159665835615341081027168471493866813487793442082631557536743331036989542386397421648149178793404624446479520157743546206496925927319830594144372104307464388672406287739216923698243144050172439088752520822761315308693579031917980448310591761163586039108199678956014777198778444778247181760836214089032216662752878240069416290534303001891838743135432628753565868364410714662747571201550595408158815969466293646777729429777512957642418119825689938442744410939931287999229415310778772856164138503907823593573553462873398138050496921445522296857487370001067760778585924896889039177597375695819596101336284974230904662975663425889548287127636255112971859530533999596705080461501063818093472301834363663828182414040659989586446959616834710482885014297820205326725352774460217704026661460181686400182332083740346987529695704067634885228364714442503363990706961725504453787013380150528909414579556520990109182720014046867065713141542947481138031385688387651409309024403021729036858868016806374917363820325527580631588869472034498007586141436773657335513431767999382639615058595924039287601406094376466427703802264015477517743720415595816137584627254487695947281499020053031468239520814735877601523875126454663794493198570174969970536157210602738155060396442921874124558100387664125213288768990713752996361125735961162204677394044808405251553897275192729842157663571501849177723164857637918897985131538225615112072791710294612688128075955568347329514643294376692594827440199211445540149084866281447106262200885344823202222525492531297157850917482996388247028058589096816777746426631520774117873495052097358466881819072602611362734490461650863550702342248494596788589718495007804308230149769536209512587078520356075484723544086125576498421316096940836618098780400054263470165088850408258066932155835029850356457266758490640459814845282666293895122222907326847226571020526944688016976762263245412796970716750707428845342355306723759116643737338085924860411184866755041471412234807878972948209858840910864587208477276827563440260785496519882217980932158008251820681960513668326462972203604090714203658273714484141425492821068067167872567910336056479051233337449256105561855261121168131521820353301461576804485170758991814776525675092600062637795467727884016675316360582872663819691592058250627552265360545525778370356677090226088860055861768940617426099463249323595819932274608277139864207635140890877007039928825200626007987619349451807142885911429670602184401107304247691689435565597284156408639122230208874391648917456757257238139946532706141979953106845950099268956953977772509826540860436164174743157119632700147359849299213517630538903984611269004030597947377763056791823852752564367820678116253588859121458738689506437196875151994951802479001312464925415340290338782452765185027323701331079420617727781625973823330291756976354610526875866033327326214810057516922164566340351929073004750138602967575348741939995434554253678459563706674609307559511498304258836477665935218170999286239604906325122305782901660811041159177579618768315962090764385747403408456536859823782230544010479293248982463314432158985132355194412102265334679000848547956668675076323085257764670518678453601663441151012632497966230516094929331768260201885114056465504778549612654775698481260994832785936770342640878848542451540766271045714249549066276636827670448411599190665634379854634288270381546947346016900219335803492518410393079108251028980182783527218798147544629201953316199460070958634567938091119992008111526640131625170024877556073187049974464886039727683081601951518884154947054714241174069266098063398856061797668074997045873536592606962809351175811889363470669038309191749636787442681477401349724066556093662891582649132543682696803935243144436181188878471817795873361522614136922149118742765807116522222604303471933571422856500192251493834646819101552423167230219447414248399701829886531047370897941437067002456237408790903353310281197732346632759793675183396085214620499812622548384664985061515714378380292241138042048401550735639083962623204005367615719329400681353264894958223170666787896197347346819240498186270206549536744453264304089377535194499745366420064454462041448761031228100330338713862931062381978145077918232189640940138890151903379751048804312911716991956500462257386166553760861488410071336788022706406610702818557334418616334006476840821533984642195104058187075843000561926043220433532348180143616213333262022385912325501769030195513921616341569485217671566169899561256866959215793062273668089483243034225441229648817256654686901446085003363850048710023456143246393767169129952994409046832337914090498654005190599338771519983790203387837238290567042543789089260085547355911612373542819533521590752087464149923569768064369614362527045845878871810681535666778684375256395963831992293668617908639609541934197888822653802267404339035414165699068395975246740307575933780982128971445547885785895541510270212414407711053053809707826547189973830928868474236078821159092960522981002146481832402001618581743849981519518130794837531146844561813137057497795235266361043538554567881517908340868534972102653266629586087418632588726459383251798932109941662533072938544698348648087615369711443247191911095759675572858462736835193531152521182530431302665479430605021095086184444130368793052283634470741094364491425125390511058548115541644861842200384954724918086830970973587682741059376231663825961159625759657692413384178755330423914534446655791084794467706034428386660146236539481701582353423790207089792357973308854494977827279061206424793067071838698556992728296406426264405804703249357173591270681614897287938396286362040271227472944318697886974591980286272572455133227188258205536576926450270854326859848623416805599322503366635893626147168170778669381357806977950917139232816591506649113996580305120590550106085915782678511476019861003029253010877396924058302863366622284668307268223436027961298383284454292208444939864025693430263740153386456433748471870881506541786938505879907268244291616255775260597922137590979367677474107523404373601209319501422261119410013339583898760520211379636134834467686713091489451905999071196129080151692415420477660774135973550673421402073002619525158451150252019842791175071500434541965106625688464142830579106851584016867288682902873496317735786941129102073659009506662738633752329743836338986315157485767723838915230040989894212150350170588022615328825736263213782463856700899510314132402904835658322963311762635522526706837789028898493237496750107489958723830005225614500541595492826511484690926806752572370007965701843221556807793624724908881615722520328993753567224287583755470099231225342705112849341251488345059776783589813608375087920324112307746655859031650788339524523444582625480831211080962673983732659381921875297751348461786820066683343663808289752410769399310086082066145666057352245830498448556780904213712925562239529954308379943988007807809925153255182209361404788230722116227375220045236482127199824959207173137584031154575896259189409653159846219610289166786238070656227923775733841518024808311084344371671594772985276198934112501618533835226554527587190826661230005887793441918669007160893469538230019372747060289441266874368575103874160561042076970049651156412842088776249392316344637368405781379124778234834667263341088041839588410061171743181871276040718714586319632584065314133376933036934871727495089791457239281702256708102978976180706580429702554701826184612425584207136392687954873017144445116564320780395508665856501777145635773022648896278271018251470495419898125118720853265656995697402826448554753526881440381028291731771316445097186324022768130711004642791561551545806674857239846285579414227191600692258704268748691120522982654911638801740557023810262363977783386245823378686754430412062838208566919366298272314376234372567789715572304909257610710971823098481147940762144421517380992635325594563937413365636412989269120791833862259829959825691696332298274672496146643318226179938658876952613960543850284278301891408643507299430156630003120671955122831122844385070413853583768625368129362546498070492669514018629280570063031140738036397197659886566103966340146859075397489690309204041444328399039452523559767083598184657832269019940996715295814129249813316499044399807060740402663184985912998509186011737286152436314861292255938785404382174520676627265905629899054683681329459753975187519470732419442334530537950264558970678953543257426822062176508190551085047298463905279231365865693557058732211856228195897445894335517665804977345640670313464888429935609576255888788677520420831197474690076496401166855062633756551183987542985802574459862673455040729320214223082765976694293683635665274932066111150299525646126235048793690755061162389735877544412680372666123751641316753541427347967495964046853312284477779644808203336479373293522310648075299923427667241658253181516468278203810674039328414413648773516596283359254874171330858253410389276750204612996415459111378423611386817261211709099940067650938649531329720422880312921711007159913071740664586151635148303932194077974571425489366369021703518702116923637379444026084578441742266838992427539987247757114609301322858841095850076801326430615656800952854842473497566824182080526658409101315328568955815218858649590076577722030363475268125403180216197696678766429588547563110656393343109471796732241169682516291000915663357349899477792008889462418223356026855524889899848046596366038254217434843647992306027945144761009616808784970517575448053820664984695018086016680315123282630743413417086045366134604164527974782112804252989203277011193519017584953935594645215960722212137494354989743241257476082491577834550256454479598808005162307295006201466660810186866739202256956649960633817638976849544046995902856633486123637580648678120861513243855266825762182064546510353714666253201895369931335705147939612365322221469581867554336903989264020864461591196069209410285211778729238070452670558259158813899409890649917246602189370162168016711660836938973835637913895391698779081251548224907494491366836004637237589619314452496416165754697098978648506967355915202691813979314495807552662392757902540287305375664688874555195130604141306721759478015226974097577096723721309597514397774889478244516592242750418434158342634391022155575596117124658064300204375438205545359148427744222506933858290522838994662458455788728497611630697892491122397522336142235251840586694553059400374568977868150406252722188005282584247140663338077678880725549421531751659729465196132343203182794132196258809347681750881998729708240548113850259155970470162679534508477213191823005041896496453529130911675165026583406970263823800928821532411098980356904441372189560331290846841678303325936631936407459404059495785075404074000015713999037498560138491132023723397685008131699371355482683071453139793231348268994378453359289774881691166529168574375166158176902567143561788123978181958206064144153428958249021804779705979019268598621090687209067799627585458699713901204619650333360408361990050100423963639035845496935119082371709688396789119379686368607541056528370051396685933260432314660591028120116594770894667654073949350141801961224856158872844112663676836206214987844468005312019643944663130985178506152135015657728100564894520231469305679930106240676171894888845401448424125417853503014768858289775434860505017272609665492199318083195058395651405055567720131232353422746495267254095231033537100671963883477746099150802809113711278805550968712951362405847251721571699720326831437316892807443413503996740950993785898470150310017657267640778508744748577399524726115824692210682609795723611197615864315612005347414076554518636379605028696855552645809065500763458411305404438698219495125984751694902912868177050802587704542588036721634417564866630804819826407302581218838044584776180776474753144791300712715220004622694275484941431019471251018904226154760144956279877642047068734336641250771252966952870748400033632642007318221724886282745886007474337553060230949765216228965085928774384037004640494549657917408724208554597824846160883342161253812802175435261960865867260875592438136618099749180741417113214481864253110332087879805335740578572679175904107235284363139464480966491889486144057521212006511393216387175006470101886238315137650548507374954069070573721031782732560242267695281788760791013100775095475159251034630779550012499907680077151339514665846685331070879921008178477939214488678835338028033845365549294893809606952657829151443467984950517379426991256419651053516889802275687405123278757436099612182406825383438958476253931793781265385231218371688742382774173537363926984008025543123762242538907256329068868850709398574582979027571631446961886673088170921816628807145733464533881840408486955573736107132088710977010664587727589116518936502904639365148113671348429149151435771814233618188813791524061297548971913798029327530277195937050675796961558863303599513696095328521876226760995077391415041386250461009514259376310351648967119486834952675691509042757147452674907243376792246327208649925466478369567941503460531182572575291043126670646992839414180062248290527180173583965911711781890369940872506440875926903766710431928194512879814912563376637231556825396962625966058722047325907786700448099105679765683559204132090638505661959333149881061824041478626922259336865194622465637397964769523806903160374283934695123591364176284156552388198788339970834332616005810159718409641418997733998814863552873787888881173475246646742334332412092499880690628266417544300400404086509036213801282763314749063387897602372946481044693682064761523875908775294555736993196163433355961919130479469463296061526161033137396204416919697528291872013307457193197230993049197016981938137337953309243452248157498881227824430298661535725682884579080226234345401559410427589664119803300879089321198146799257673012479501315080352798051404630267769523989779871641744631385009437510015308596704143864706378140558610856667715527527571163158161791289133795013369466814993841039520592898835090892570318136997751612584443429254886951920588933235351006882228829784434176434236990567192324555346817531491522004488117702480946654744089836775057586588679337012622255310705128966918581399420032656939198988069398704520677243970856128324953287178656921973310745039528213285982688401467620933744047981493761491670163541014938548037983428198454036812518611546055176426150178920330576001311603720048371872224495804692165168408387544371589367105370823939405903811879529352072227638639513944267351190539552303619843666966471037138422638434899267894643671514910041876322694917294986190082066441713509968088135076066415326087358686305603863327055546899997165129128629988881377728028720509278379248201953465179679381285163986046991394015602403424536479871671027818525626143766255286024729946641628912721667700145406583570168788558044754969882410341696632220995537722325042151211855995523930602229927111609810948152404198123391509922085559367349110702153588422411590043636085179196997288722022834575697997768925591787110652347394079252501346748247656590552826804668098120531307973128852841278914601462594631565758205455169037913388159635055789741615524131607430121105096646907572078227802919378887109148113370014001116359384975780695118323245946342914350767216044371987417429658270446932019248690521216425231752592730795163080217807677823074783256251473922569809101363656603525906570536486004102439818407463310409953068677604474122174048644560588815337756810187883094341792501824491034312608283402454709350530207965580041337433815318669192564629917437289307310695247362895834784077468244207514059462106063271110665254574190542883161985246615837120162450035950840601204747221574520752480521480370239578819024349470382838611591957847845544806219078409218618452705010339228380685707553110774844975233311120016840421710415212278592729135215326302116455651653684573664853452987102333318572537308813483835305599526598541839914848713323950392280547713213699513115370182448515979791837198694151615098908545263743851883128545533917711273582115566771023283554865503668628608642274816823208807346496308424979362950054455846196350331257444016374476123332222871306949686177669108549642235707063763479959428292782061993373475380557240456654196243565685624689357340850832661449521191241932143249723136082299570919402882263134824072757913795311236851452700937876851505908251624316402494324348625011426000518085483908513187785705425481819745279318659638590169394773672418043047897900285701437760304890038431422062557046443324557436667256581726553035720192239937363862458584234157656533554551701690959412557401838838720843552556292895442013890578232356375211860013411800455581820679180389890269668569154285464336341404406701297442789481990515082574778064123864108711240669849085123655214180039028510201889450442583921617421556128499410182465068673846131816006809419746773065285197006130159193241477061585638773726059598367480210014207516743260756367445363734537903772235205372820249305970536852670239029663873427503727371687267155058597663128441176347551779354761095987453270803982780233940715494110435728438215918670908396609217787022066984433346702358409113859503915911897194404989944801224415488660267146260076155375713935000978513279600429148743171958349221006956897670131254217913667167202891261799318525248750354040670158490269367640900869651305665790018772963369047011385850278271120720195201246567962336897706413704952283629674193642809676474815254626316921474529600115719703745622087500363689846443615777914183606595729694723473173495284551030203252520752918864351734282830685416436076242461982014392115132787901034498951618435150270816445830549114828805352075194590865673118541169291024517689386334618298312961283310883219260643985058972488584876466928400466249533790988460596167871874492860835752697781960589515059774823384284224960545206488695280905139634246507710394850536956082339883865241613050771583786937814283442480217670775107004031656978579334645456793677031367811286587518169927201214067079867231200002359686916666329884934917762647327129167706828991206538201754181998370043365317633248518747076929570670918853333226284737148826905663301236209263229635539502360113039527138681366507175704890937858496884579479064967400062287288750467133983210520091508429893412068997392037619189362590146659632835955792163360190633207487333565378762491418761702459936482369950102391465791550050828863498094682793144056923932344915935302546031029173309575639658403396443386524147219016402362196879847788982546541389040726390090995470439171555130107798576348789058527723447209250638429908471658281339486984217528113009928494182356615712594389152820778694592510711143839722605065196489515378694049342138166935437490209792820992385709068171037303934271058966526873446124322493171643272358208160759428546200329552798541866099343257715784947568744678814926741574813904367425351815219597415847965354652844253809504498378879377465298354315936747959950953541093716150385092352702204924116957179647128906208333958149481146006883477187799265695163514382932718180222925160019371348096816480866049344921182464243282456592405223775427873938726100193487930587826907744648591539662488437713947458114536515118264378950304718318915045080480641740665045183496641917135368866083397057911897033544461224564388556787385214315378099536360071827126575178430244542015361702703918012119933936001533537511902240852980127987281580096130459134401025272404756908365832159972117571133853554392604201936450765139428483154583393246024257538946141942733209554332038793203165895340664754093926841318457315486219146604502837056476698299487472712903135931395216222009654213581283802153907474313285092696283176042056551646350679446299582230554248566532957645813880868195467431240129675212519332515146793083938337260222741863931859895554487363834115171911155632110414874784540570519371378182221337667417499388748458749546284033606321158583904571547443534327864267012019563667188754547674679566820959709697685996531079972530092079122643751312344945275558099273456803485595687741348201844473527442570797991956662060213922356106921620667146578796368116747550481885906395465680337459259658332780545882036949156757616779013439352837600289547362945318018686477221757707660926612244569124232175025744783251773668708483186857449461297045249406484215961103715592326827682045273752784454277452999647896521985403426724664399739728319575030040648724336259166701079964786694119202229547521541754767132043498785741501881837792778086962926906735060893539626909703053650127898900307141000730796536314320669564951436667057810091705886103420193409240405233818160035449211843975730096479620100402438371140032616950989383121418711375162842221577116269839532136759812171164686236011387198922777868029098438144970940032363498866850268263264118131249334995758020143369765808096221855749258554525332725111307093293504208700274475671569599937274333162526974447229967301904497494368996960334627248992791693235807222907088976222593061531628353143088469181421675798134223216147202470896272988303859880488626327113729863395215345079085627185059737895929323209880011374747685325709910955628348973070612299290036566577460873517786408435869692136803756862528872256236632903303720381763628615415880351734590369657781032738199460827927749990448129114045140866904516247850352675139680778588281814211519352754130217072881769576628869282125501606644616484635825437677583964346823130719489605179390172961970102801615158537177312538664057064461917852950913150576393125699557957779638228477687566699649059818084311907365868968124507799687749133671297386602113872393745108532772020465151244511633945584758144583422515103848874768833941103063300549559017038749953579263631189253100391714056742448837138446279268036550039756277069813575410141388497610223558149572867311289329147242407880147641064823582178724274650860730184456491455643180557459969579146208750132703419069424142448565214282824876118677400894595599743671424203138267456558870003148211669094308714632988281494642029918117152743720951270799485305856261377624092009737704950214577396140970235488119262558748505076192443446918143370521968710935821819248229444961156640357630606900822388330076229477977488472406224999434216523231140222347169658694142425055492068638127134416959487464588625251120317564074013908344384890326495798149695995486873147719777834267202184110650998122062109214627475803744863685635016662842195199706288965286917970949420545586349433146905801633299596973785188829749859855846429810210230087643215700108544372263140123140597982856174569872936605723752239901451108573468628590515271111242777617662310277909719659926041571554994280142872044424976693856011628690074516245776966883640904365283899415984956609777480514814799775982727565720395060182631825478960163122729304856669109987785125706523945422502133383148136485524421922333987740260216704943453826791994340238684885460966817729363842950601501628464428572090036600884871130379417871711168991797126194848356105587853941565881332552094113913091451687086108899017820948150058642800593889242945543756719902063202117321958193319749791430850038951559895051818691717386369709965736758391172562183814310165850791545865218532768420866760433073283392894598790453907828521429000278187926632779912127727190784326342161578180435108470538586033670310774428454783939688665538471796462084543031145129935171819173337792651001313846089130770685201718323712677166713282353363045064205911005877757707479629619704674532418637749901827140587898326451538398625411849202779526829329847749642406116356491546224398314738025604465343663369896435715440688849006611902727802655799835061632502794550611965300592409675990425032181745588844668487922358571724396908458032600375704031484338896782438924472999016650568743929345296190964657736853052837339127191994684286829327878780854140488501499864519683484890682851165243233192707587945561074649620645980390114022065679552152977380768976428809077557768241345082669050376237258126260361330073534748271500068739925259683685738044609470280958683643781258257028895005839978576524759258266991980845278910109354175587328695070652781218233266395255021318215391389134086844797665353093365345036436186746108334559538263106169066467905061203410444133635973336473462022939646810072420428727154286058133602242543175922301486143250492255940015203616561495315989850529663803787528488396825291658273150026068834418077671369995507942315729340605895776652420289254121692106384848022792031145120637766334079059212260877688016959175599001235440932108781832252545040943314741366687927296296545714041747540500431032081295507184894960935704761955354806004007570357265120656351335873356526621788269486351887115171513788462648739397408103181124413647602247086623246414128994004719310708773618018540911446818260738627031848193580780712474577671597554620796108650850948608389383149984088853188139024264273993779762529477715908642069375022613621452119970156262308640124457256513991902786205966684726842159037096872701098597985417903734525407921237829737668303239598040653424086766538413596051134985474042192527577270451047172368365565130625843360105934995463920188125129955784489124200446627487761692303630456218916277900376293335029490589193783672818899800170214948888590077436983434875640792104340268315064295861383916819416888663222542856788223833447932468969410186841811382568402645013426922014041541248491275903859040366945882359270566793956537618860739076969624338411260973400055569046964107662465844207801494477764593151018900305750065443101550527928654940197048512212626126022671157536752721383805570590366184629952177695523285425087826056386198971086050234409006252523104215199281378570320087467221450241131317117521857833114674824985498140842261869507405171617632484170990530691138218505542644667820744845448068907978845674974876943513897319939563881944295329950816114090628288340747612682794686859583875044276135943927328682722604992070294695716778020231147040037682424645361596919326481850301280777771245288747257119519330506111458317965997063336023450426884640960115785986104773613092814555817254098167315885077591128403011440724212167824503909217009245255649631938438520344797310546223228836970836572026840503957028055966474016453472911392865974386702586978460509632861400519327597969803963631984695024661492980488137686552362675770599528002878327924277660239541183940778678770492859187031367917747761046081967427449241229161453061523285960636033150997699529822177232053231054670013827569535820063862556482733645944537359847085220021602695240537082969355837015628010375391571924557487850868074982002253952941685476338539516425164142131387483944858160325786146856768232826930969005416144449460048702413149694688624749670179784338788061950002658736198027911219278511818221293858310805275677669204171675393763057779439435792778151344743595136383250383932899790146864158096832176283163715846747581002257447760866354935186038028479403293843529375803950568440665188390046404724119943388593559618885560563071197491940661266696416442228123857196933924247944589126204985156616090519005633457044233009414656469706674692201822575128828119130112058896089290596826135102070624653703616455348000241609608758585618395641091914905754528971534914483301351855205648140791090664125061972940482377291107942327202271279043082954663527069410030342954600844220219113452651500948179469198654503790279257765833173672754527928104759033121890889355916430557766949532655088859633393094760973510159351309915456377735636595015307197887969195480121651992581933994346979118844834336538590073795450578862785111186717444161263584287238998490749600572567006794502260844288053286733144725536846169710221710845403550463049232634326235066713917923722475074218433985934284979779878112980138093363936564932068031274375419842004988870924185333197813764348411669873870134882904512803570018004284470638976079563130514474598598380414355153810102598888480150695574927195559874920323463304227613366695841627100162126384057071425904316505519849743800670432118264336133513967035393405895068680415948269007801329494411898111400652008810563623103835816941991071569871477263180091829762990605281579032357485288721274700934656972922079399770577465635105686370533141014739848681264068674900092616750782724196138380937727870574531369135643846928912543459460286483942929503325753161405766724733296886068388372192341545923727274704177218072122900650623178830651399418149504808451533409705058005520030665321801391759801431142436146777684254765916121025802878711688599283427208269534272538720137320945942169399818753704317455856172201879743424540144121285272110777279766797874188321662811769371451302357926688260332862717022450589575415854743344850266317430579733754995752489967276330492720513067793230981156979902450768699367097440248450174814259257914466604232849408455829495455863715664919278194679554938931694676492410048164678875587787839541388647445769425103214853478448414260149854945843904889822465112721737896600460065571406308484018927221291295460313191883082183157707735848616202986739254441370806530987759179756593708958960829577629476660496143943780583492461291068208615123097614335338564385795428169814596372643413939174566871011403887966825018544876973181962128729566543480950694529085527453655648346422032631069466609739131490615890043722814489372343548978694842809140310976739660009507855657567235901032807347514792633568744121816020259171317107872894290301483677847264906339622531179639707755774844498116462304389009299533002137692154264507649505213279745723538934938153166874866171383504430410704051213361402620459481046779172104882798493950021634207356067478887648721029901933407982338154249706285625700156750344019426057718134079498285038145113718568235325690583618473128295314483485724273465593652935883778361690309417778119722786155334973904624919131011809867009642367114969255341678721233926106880287847055898629967661886682038548216341727002086747556769234507075837770282379890216525065664726124502684744273558822305573807796458045516964694330138620578587915578461019640491350425171682356422615574978857558312562812889711275001980445826792124872915629531208684502191394829483289420503004230683551460144567066411934071496810142698652386470692124181397385506022394697248109495880995338783011990599234778537759709756443815746338309540639142539486219747976414053898397534798066201731798602163782095891003276553765173127260572000719120562632017431526052874606683108955374809921249074010197312182676406628696425735133127650049546652260128997287070694923539891767208910297054006764306997796705430924171853662612522189424402269311718496671054139053931521167249678493643662128123741597463424875370926014506221566024271010256592039242044023868632971270084787893760032249984350579857079449394183208742384707996406927796409050188536782981125242493644361741898856882153266671057986412115410575135629400400233553461176688577004795558637566262561381575029026218625140924948263015951079482191246130666711143536160520758212439502824519589109508895545716646622819849342389876071707559428867962949484592861003687029532275137858321056233200415043645981675958135844091524373576450197726419741176540972151056157804568560597572013278450661384035569980632039961775203301579268811695361050541863602666817785474102524994471076121057292235819440229163505823842692171382420711353285519883542468330237375078815357522570871526365472022906457478354366225976575330818928925928253336849742750181809369691358404366602181674293889166228515033116193087141372602163466930015671064162802254778738429906448705863978086040097308379058171065917339483618809246252802829478393427567420749369247802029208274528497763381309365699541056655418642941929110077803134475042347010866109159087813737273186439731721039938070139757548291337439439672963934019872934569561236301717715524511750738712038552442138628929127085773733989043717066270470412727061966413236612604527774048735969806870222450328639917965484755301455656496448444578555850937262248022313493463848421926952279561558937466463642924790707330606189123935910382100284829751153939445670830888168141665902581025063013461107754100597321297348013067501699884881051450256122071682484062016534404462329263750496300145920513260402073409185699975688713448397590814036089914720728018061996991018995585075795326702745861271058169895809486111167400798375124640527249282184155274884984946734638180264012546859931524941250981068632798961924016746376324410574067899119521170890116201841329721913357856370700132988942413858850891459649875886794870119895062513132325381007845522144972066272820409002553099257276960199896775499173519418778794270219912031309090221053450284304917649452254545451308792265845596814401783481153633389893501506581890092796998571793941914258492327988002180965708269562718933651196198845151270659685130564885603020204097482670535776042244471023249355922496948838496878813364650632406110389958970133436488477917034554174515626812996731623781370569533370682038976270487908008615318846506333928608939633135731873411473774909194202657922310638029824948307283721502760865859203346282723333195373057386757929142688500990497486027939733600777131189122770355641736831220265691509978129434936602963939911180623553660302323518204507496072253567574093815652139343113411070045761207185501262542959957168468934916394152890775472138537114680550007556972111799027209941470658976184253507344058922852430507311790953028535203627565989554816930139281994457661680168371091619280241266934512216251858881452998644800650180196793257282739069339237545561854532962714902745143926970712434621677880788235203148295415165875267731443107015025708759378472375170657369021493762526441078110571145743980495501250587947560725336288793960093405937427856194643908301331520522241131617781053209280229633082098831964659540026946035592131841105643721391622091653497244330622638982910841266391620350084477933366763447421123946263940447805363900913067898305473327847871928476610544455047234687797491808079121266857438576695984518604056077858154093504997519908764154136364193537484260227589567194050282836607039020761731915592897949158886397197885723191408127575243479051839528124263682802490047468185175176529782501373099483351632307725622511955246211792216118429701982876775505248879929741537341109898081773991083776357701896100624978870662431963300661732162799622614192766405154993527830778261074742801719195899213702189288043282488507335945479290557231866907736619041195849698491614288416080324594653178769981316320500259665589723041253502942785934464968832655264259336095337161700267456813141523088243246406379255886947299394297438828846417089510283489247362449657375054512746155648629571633539868443383774176027312135922866332117382532863264726731581153633088468104792489162511609175974855395897684889810330455471878706342849253373695589941285441594853773616595449288125646276536183301233421949109622916592401435627600003725489011813863375646331912289557525131174526436069412945261874487985332791413248276204093603317406024465787233844737694615295211676360209044989536233446425624440321926500945295722453587081444911629146415323366706466981125024983906521429754175105622352127410757940536409771911453746428134409911464876316703354486269788039519450639960530490609371182603578533632331515021009515422374927010120740844765635716736405070904671406243131186479856963202666193901308402921875485227107991730738097916458750186062402169498317002380726467691857328819825716341958889530739407797274047720865200861548226163843438289124923810422267112870251169243754483897010677522474640508797377115072250445285976311389607002416278748775501641461708948724430204489252540814916569268094934162026695638101662377646697548261512582491649445055612121573626152793901692893647966120111808409920445146222200203841333432929871525856413719864317466068273712473524567130335839770647103878513079288129651256732231159521742828983450202501358506012946143671708813198836992339191837760642193644262829442494135080590326507761854872770558505341965663105738938284848008474477597317955581058897449172994059724350884903147258759870605930972442871516289245647356097327668343822445634387071241760661626451248148161310800740767057588513958745395437838784266811204033605495300587611255150782542978138936933428658125692553758351833413210791769292951618761992086102624484305753907124989858352837039120861408199738085149352075288698234729019512350009632233538230275492674185118091648608993354620139859142831602318218992555991142350376918830891191474141562365149554523112963550003210528169253160083623843159332847842675509317393297554183137739757570574557421318184043988935494486023551470877496639382754032777561725890786471845957865957253151303954003888853973608664115871359411001255810978162578628886358303390810930159825784730097160934128479778196898620566871014299818777377265523475701794500076485798608355784572047482264378068860548706482880391576491018403797850268336631785930313998982058051828812470643838830934075012025113220168040719515476989108696871844006053238049805801017471797536954928920438193674699473422506787036044290984190899406898068827407437027421564972118317546952268101398328556381137025764178602053092131440068120083418752215065484270754276381370910996327028231739749219534460769253935533514342090440095871643633164659390831442342560644738488642291778090828136082981139786302601859287486744030018195066397569629471630711702810151453035699426777175443770508116967593353900089651904274569151569205851867682209563427939921011296493594795528469664515073655965963482012310166581423071650869554702120826965265886351769711570819938123010145757236445821408071510077312275743011003341526659725453695397726166089702673105933835179351017469629815542485369326814219482079404385117826239619941236350373263243377901988441488712250314339654085617874775496780566271079935848558808989849441191690700891593367789445286256542817873159825229529489080823630802700828719495218567464522529312351227750582212247063055465856617077447697830977205478513633091243830955019291503751480582601958434764693778239077775172596125114196302658135719648570474235591435460220227192056594942189001755444418003585523395862979711875669364145019967518193582376944322309046168786604687759119554505953131672117032907043481766627705211165674144945492989407323728279858027174935706294962252806571771856974691296423595444029895356639318599987105838885675734785159884635687111125844093063920263839495629987169520169054499315107760246398917557444008091013884384889537192636188970462621317090431925609656915813669684305953492854603252816713608319605080942801006044623793948956903620331922509484547601330071205851473289430060309956335786957370579718285094698448517599850296377660685656938941562242727612306980055470805403652511754352402624219033229197236744160612820571040860886757698298877861258513089511048966236407065894557897155140346057303574579888743593371624473835840192835322134133983898466190411691461959377290465041727614824422178004753397609986430427038206353776002101636067984120742086413086566435049260779976265598980460474696770578146744340917078145599222024993393762513035656814559835786784953241197149166840241192360709729815857576954753948091864717747472508979422556309844140725189103806437738836871236902614032021559787418534720356513841749361470848236067155116515883136198171088836512777103515677427939500830409984379651351590052114957813932211465349106238450704577291995543180350928811202506319669560405822233520899300299297467564603160043475907309740236975418962219177805749351843750302774363672230970304329788385216701921298874355058412652664528934702301284452554685291156727218648941247305636820750731570063496152902463358435724406206871879064165593833166571894045430115276808231586919593209960994399181160346228243734771790847007426382281499516981693122224664668964356221446834500892042662450057071778818444173726467301998772299957494920469964348125939716712404836938473937862738082313692401218273401051456334092675909844924629793900313231230643959232211985786798287244253115670327738259766698778359276373306367806161676579678009073715401616623513833583137904308937054296508325213350124526711656797114618527727251697219082393550422386850514899016301526270528188917782450134118897253902582768503476346428138674905567018907380230375734539325357097269911805032129724582013577106026623794688328382299677856760066067663610492980646852358455024268957149930658488223992617832579797547882137439850261777251600133701650392937834413664978750932623919075223185792332520826177764612431277215005244282775074417247471451292277043182017907812627024541222871292050217608661392633379643789467704758308112590857540342953635243266729407039651524531465313888119203114582669571331643477408164056487867681869751431764158594507528904974967179973077066709329423074790508629079527792148022736068311899120781731927652980906567857315928325025636693103034730450554412812370013868309494038885446534515655156905937177600069193122353971002964206695297175925257589521201861086618997833889864841386610986342679973228513472077469100176241093498259746591589020517082543069202794326015951425396687021176179260830623210654550675084413874146872485604075563517890926755311772272606038685253756400920268572787918912999582822631255478277912897749799032038876673881484719294766580251783869949452674355186021071181613092428906041254489171004810949704437140178111207853486069188208569878065527484444554460886112655618080036483767303643298905741129920136153590390413437497629958366933234762970458794991892964140775316051545200416110071890795395088475040643420465364507280324514424498733108682347357917140271285061217035004710177518556776159232058959620080654546166197092435572719097943561861567065394053084233388340940182370347952661174472679823750765232318936724348505467826185304875942873248024067245352427251897017656892296095517690928982675408941214213058686048681301968987155425249424562888914079060897690638743093521780836102756541517961701861698924524476159849466526985721435937239007958321509636520024816345827828098111542522453016222740531022650847435766138623517454106843515883562002273303940635601128155215802434699460567830074300204749051534153173731593010529781303897050964008646348800564266655810494448356291562238185663928678264331508470997014168439462900461786416258230970168697606728069511055581191988418354377956685307270033852581547748813500938574388697279771108356374817558174643503809008031314113863511371841840410410164656559497315212701298279474129465943072222056436427013068516424960497653538498806260598592574674341732177153287776170045286743350677488301990684804823590968178318201358591284792534713210300351306289642421614898266335279979489966284582177100281028457002892367803851873186494733270557499032750433054904847757819031299567717161505582272710479459212294629643953617757708709139235483987792820059216556829788404069676164278242222567297225697037651342410654403488943444364637761747593522777290863298494735262206627625248765453750855692578450234500551935669422606170284519844338963889841893631786723653556367519607392536425186534506313242494429059557224358300847957980717987096789831581536166834056997297771323103097046874457669293586814613186889531548536886165814682101175984750382926698756855200815952258481679100368969487891412040940083401998993885366884678441915493902551952715599803328416822499522371308285058788987687893701189057509944688634895573644944645634049686923780491177608470094241416203162227868465280702812251386875084304255646951746434102889962509976783128065122490193543111323584797938736592745355661768642589904910173967561989400655901623089040467369338046498014306775293721580268574368880076752960257683443134868107998602036844831119080722178744613281139144331873469727648899376019661496375985884171137297964233112323787417473614556358952196831722738214745989127283101374873824526748155876543482028382812562552336045762489470540641207840125525874881441901546906186729482314034291021580486351093785481607503634179342671074118652098182845029250433791415546224604616136900826969691821376071174522559284545203828204572081799059250122467161010787512361501312304430604668452617195939644206606178139401478280954620747893355137102174880432167016727993911952965652171390217523212551482227785793692767768724713450163810991415159146671098958356807620281073832046269084691244086245138828203139213749176596119847953052868463348459894472968997846804716465278110629589518933834596958518205594705150765123333923290649686956339320004396094120460129729696339217501417698784065810538345470557044820337796902041874536072522588932638219217274919916608705137952459117691554410263239551730349437304416758839209106683893238433757003897552150553686556455073957411177988275756891092569256224796402736120237893827607697184809766540653266351699963132482756866467688525063925102718599015789226265114542519863850651854162511529346994388245912788982726046961877804462585483877436266909627917238885732335005054392187161479698747599233878526253592349733357674607429472966091404195973576276379341590906443966699650269760564117233988551968058203632968115152652922382006182869126798146456578780912073670023272440247592626228964912795213565886242784476757106800132878810985444270877901455764407305235198948841515734707993239135085223933553707480249248465136369744444567324834165786000024358674807811396643306499090778436617060025089669593146961256680693085539257189547851669739231031899365296389406679098297892633958224758337849833229804807248914062035769175856395784468862232807791607264750896339961386750627315960168032754671881880708451780435659902549746372558368608669122134493955855234713061798130949554955758027286769597206489632446654442106273855292485137527916743379921211309959506658505120141251530155472226266205462079309949795511990186397248071926544821603638880022706429958117056533699662034331644831444758869560342272362962848202640467523168215633356524319173434324160876375435639196563183608503775597710969164496683850476337917510110178672882812110057752662567063770926271979144711232079618487274392702226174388062759266578479350243878988431469673698884423759667998027475889376611914790915802521041972568429895452740954403511969853714251587476916146052423275777760229287987321382838122730564482797251532153345491554100244603697349021895978533104244733815147064113047486525920062743588926745281123014268055083751042594620493614889804199398585993298079966393849425963408709660662834703873018478574679522665347690962490554546102774623127283966509214560202300779188334814792231332343251309055777808777840735181783455309571987466275097356160120567375739522639603608963072832342942287507985534839107707350727653541124883616397750063509385763212905071403898746881559345106309148722933953419085246240553610912795468096624924043925447437659737159564578217500900056979900173355581191750349163669133996642192966714047970065585973935912196539155967499935391986888282715654157301943117896288889750194629555380836734242386014977544785051867786043995871461549091609607161735103847362821265448418074016515543453650664238313857751245854629222467040380065189630242135424747550532009135405213802085134490554996783248070011126219057821516492365708493147152173089311788431212950329765323721624499358026989853560565338873696968185023491672207342674200252686615624051936545192941733225632113525419705124555386031067715157547689447562025976397489813276292250801989178638521024671303090925604764797545299993742099116119959707351760855368698934115766965219171839590278768586277740256803855422252528856181930366386496380479332060700389141508684324882702728807008079166883680077615322843116056658182220790684590744567835532029365102755751197710265261464297554147294184069898452107015496852931562502323044342526256409509474062503345449563917098032270898527364143080204690874666131173532391941486661465238155168575178933867158924570305305503223075217613023902285528510391588273898155185762594532531101866432353940880872180580146014808039811176583233712047475625866199181752368616449111887809306558512641970980510017636766505038244769733066540272583297512121051460890109371803441229256526998239806119806666364019935041253284655671786155125232113142853514685571859764977586323934579229557140953337192785270972612682190436968435645694945446108566238627261636489322170807463977718067630560359458520392306240954664488839633759137990792183829834103847993681205335001387548080699904394754757258162842115173602177421487843472811398015258258909618892584514193849136969719388103150411332490024801528350615391319998828088730983705521039670259921523452264538555948498422104712093923772497915547607796146619050551809953953966315693269276070209714638979695458493413947837122365880633451539493791477960169577811212734396874073268800855451365125403343094330595985689952123887371752616540123189464832432951407085836382271462377462609945537487607239389134459330216170839038516238632967116041226371285597103417897201872677576653756679179956271800179561482734632322507844919213638539676650184501550684751787201045424401220605638339308419725633305997996242064764837343827431543835357920227592528667873905189282865103477485487106537406351171985072725586413410895735365749713240263137942399854172419321796167855881830037728479497592833971742912092187027497755250168252083218217698639840944426888345651006211128646338047315053802305788108860113829422636843670940388601924741784430955962495872049308818793617291628011585436225717600977246855682695794290578149096101730957728739366147940564748793212572915314946182894640457050504947897719807614394261720057481645221345396367675503621125212864863909198905241117294750098678302369953411252833464610015617331675710136907667569877784153680356473176667586157781423082303380494109566272617560391301475426212917854993206128965069835175071603884065727105393417687945499359085999660576878725365302457440558060263552395462167460469588697585998978099582620326062075354592147184978246297179760360449062748633119521927615589882528183375273595834460748409053752381164502359855571922812790069110154391628976741357673747679668711871591315178875940806501972342299294221074917062229403742092295844853018850519017829320705760638423631075397038682363549325270154169019023811561310349754456247494551302559238030069598463512690729846718187258027678561166771198884190384906335253674686070939517676206420261319976395666019433273569059269227252951448936448367281850781828690953417883478128356244986417951749522082639058901109535121270557689991872227855558567962821038307706818164402130637187346681980189623182716378641781473158182716266155146746884437056392572152987688862220110925765430306074371930854678477624052571148224035573954664795709860843547944198493943731956016096235610534425802320941376051945866727986707952559075871552020387834127816610820088508767219025753665755697138399635901900796975723047832411648930296006000331178973512097224503045500135598919070836358539525682142361625255629818616672422166243387954930268310703547974457121652555805490148594975742873819779176167782478420876368698068076515329155608729960159545005553073337445175914107978284850866389655089939925638533222892780209026996578211832116572144600931051883324574785993232208504444688861049654094655982254327328578670075963289670506180141752015490734732778476763841497402442274531275405127321661292628707875288676003513660165619914326200813112875255211739694781224288938309996562377502596883150676754873225921019822544583597781369384042167206204836564805521229329625725775894534051358140421022077986120160214982809466755165443354069842647883271606857378550917456096298000385710985348988846964857919810449617558658216355054513553424025115722322282139669109870249774230217868007795487503339329243734149567882514743750967995227957539991680366098152392422510437364928292699261227285384445701090972863077022470765319277845964536489743866298926366622749122982708834252006949366102697016120102163801536950606157637530198323107364093371410993982815392163523961024574077992164960165932891622555444172548024788522813172365354179530906353193589141268246664935963817296336525843612526144995308546748106659554258090594241504703240550535350877635827447223940773498590361914710619198437961564313514251913487778454186932773812474007006866478460898642067913407927836505197716418261012741762598258439170271854867161075293585611295138105956116283928999737971881518176727552885348765497894230802477836066120198396962724865486581347544545235213494568424038437360275275262832322286149204145144586535077446030268879371919473006880586594121222509623022744525050219344406036304428264727559049820069548073177689038122267978606552092431671783927158297995404277685361311637284838536439003171438500373875039156146194400897676530456814779636087687200555421286908308612271171655272098800012812348893161655516258826929159619942914501659417847514186710467583787382566591440689212528051205891810618878706231862086081287153374081894633560596106146691171791241741610514804413761521075082595248604224027212387860687602582606563944485029620047590457388753905440467836468177646769736846604226944299025027955554311160821155578709482149278601443723875363634861456087578742023985804936928633702315389002083673316424020367252925932331234987722903560269995580261544813914263033562476668350764758258865839584742061703106334078905582586601718697159725495415682480123927322689806870922157236915850158987406132240014139380900267006237329900732161834066578972620438205885696473181563127008588846980945618264243809793291271238124301091825720141888743915677921022557946944207518442195633271266724692097031818344409492111632820223544504256565509824400507073454353991832147243677273720814015113443110855326795051370355670344271994889204677456971903080228574900326870101246311263887309030912563295504725230853921522933286109902392409611041795836025595176357892377996233610576599438774163394677883970689104043353956730003742989691156385982265125423440644208617915194421242538105741304845920956601042583883730345759259357865646906110247107848963197525030763969726028158707754516402421407127556987008120039143213613747930889740740809027929384230532942089809254224220427284688167130961313808403592306164715968909533763602363851358462152265526320721965899602340096430938242488213451493852722600082856998364551318794592844497964051194442236672878205659887582883903787385343203540275631140669447352275016683184808542891085398059686698418115019751106585037049788545537256221076783887709667429565434704480663574618564608097054528146356920269242205440411630865914433654491128636954602337183764704248058037693699903749414447384196747755798872433616727491045270422885303851249593928246987648510416998265991980393716880364712631750539781551469247899951105581235706093442898640732126317428051132990069200144862907191129749150354107614239565445629268776499331588841360223603426090764574532961930648402466818019314526134961812261219984407067998201182626663583584392237860482921411258200639992834214721524421534509478451385252161065757538792468277053779923182856929057755233123597972842007689474496109010891376194099850232736582638667732492279593879914852658721258854476372696258708829336211007211249102711016646423396857524594499704748569458380560531139582884534051206691345617140009137109243768019851856935094592029258754691778792319996711044560040659839655770753497410716826730340966562711048505211496370660528170929537819307655293205220324732232737273811040317570031156026987438082598154893669253984106159206131889591955537415914936935711570030666198674154657245869576648250573409939971558100597814403334967987318444590137456243346865168570336928570048501294258531359996559784532903665567401978364191351958218043400292614101114227490913090711518001579992570799019846548009897425459544276384639425649969537536805787487911503062161768883214709362563899555792964250642368271140879596824863280423688867013210003959917886933821135369629022317390836158449056610130000296837097847570842019091157925786822891405124931646351766218879587330944455158805688974011026981367065113277802514714201636963924065157373023250378182988962848409611927702441260806730823399900015319466537678681337790811747744999851787936660152342323131095312238282869572318151806358559288071351519748545407478244103341814498512186690490138745224646302312357054222101766007480469675114812918090660933708489062154216636193332911398636738376127054858019664643697079156311554867513640464431935395462958344467528442961050491781391669976102610334688662272295349105407321258063259121712936930640837134447052580271157187789575558103413895443555433112638436093917118249525190761511802422188008146924837068170105111428089819185918608016114056001585790743193598610366951902317899423893296753595374881186352502575246037525816028792807983519158724478470675674630405774885059224471190681179622028966658720328377655081954675716327646991690406896098567858392039046443217090810017274810476926900929250666918058936717597441899421433038991341013004381184340831441177077104942085295742395661362395212255072549764487054563775583057731868026035011389871542163931396852287111240287157012121991496702535516756104246979544642891585566631911695461064195947651913896742036130640652784828623806710964286827313616075963949416311470401973747128704869655987238446181651944541716748826940339132140807499992353226566437433187592128674839182462068271908469729573334862090697941537911630104322625171862010911469966127427678152958418599810155829273689117513876789731747099283301806109967695638860196794304575949777922001518589529975183022309133652649499555191354486041796605714590059426370801125274306511735343452412117253870837458672563294574412037874655586485507700809951405650185385710144873221534740982664364126041058231301158875950670847038883915751960570725053060232662069533248559389903903786453947708382453312501981505784758685560658263966943009555332060681019372099258229917542070893631160244420911272284150827250020089591492142692476709884898230940390360088542860180733988433468613917625151127796921104237834788377208509385088341208106777251235822927619768252417649830070035660965962316328187853124447696499225980416812725933059450482536950841792292684877144588818677123437144532554898588956812836498311638548165510601992603067670482172933746035241524615514696092972813572941871173799807438665049758858444807783354890076232348898362640297478500024164134779861976428407939735861088465723655439752903729548035403571003327396461008574526500678121789675903362758425139413695789670188631372793412595088603776613730680078864115001463247813537159041474988370238548982986876651530521411795458846334818906448934033168443426827765001972473872181081844343604972248249241621588154662527736044807637510704717760617045919761981128108794078277819565770099188624406725448533186765275318055059351224519813971990898018910883656798361575944470044760980609218157234877788161250963615762863358877838385249070730708525924819832081917278682697467713402572564201514832555186555797468167657964704443159554620561420978074477278844753130922331511939119167121751620999463379121911708271240595467151732365481213003425341651906948316848695170297286364988677507493589216278004303311397056105472750633761092767669657998070754084066655675147218569271250007638557428450024030872282339262998341753025505537336432279495004030786492503746721730841624306412086338497317305052052329408623432598132274140153922177850708853313295638642834562493224884158903474150984694369651365812105500928372963519009465631600364070963755719735993932230911667655807755769150088784180535376892531365447232018079533149880853313443345274378736393089333512560506830685707677903247726144162851590379243665397139770342615758955418261564109473430272424538504209158662650775473359676978561935752777799172609591670008848824302122307980216421681528895097822063412530183285561236199324463298397718351910591294311073046148632541510689312654107423217130931247286188364679949572641028561864893238276721200913248100636642506255161216788850766799579856694517896188454949397497058954913484163172399133175993588374433215902087556240498265569781420651923726410803629745631449505229000966162055327736751541560429593511439149826984836632427098088757848530825494985748037461288729547439257523826758349102068281078143785015502365226473901307180901543697138733135360487555904806419950476805097630600886069030079562345527792295492737726833088658762840466801727847185419181938221837848306375992786794690512182623289890371527801891476860058674598745707198802012358947462701147629381335239174104389810015777285518408496786522412424416990449400027942827952451594376621725815811354645416979717703617321626264134195241500031519168494659486118901863965619610342646857101442757138502927446647548296182495123872201514916940060037806787795847392623306118696529331589811505797509354609956079055344297204306649454284576293472252635313097984675426677207136043026122485768277855886843684362569840719116134010861588815157181241179596646449739105141671594200804710349273106613116975883608705557050884070419635023371306207273975727942604306885202335205266231010419956867272034115460366822259266548792486497486887457346670238226095775057597366304037591422468640774514682225441987446693636321921211758154668470054445031515393549126320606663130364248764560745725273349788128352258528571750328427262978918346847676288670025149445085797600228762936222095075532137823309352266773470201508954682815409334170031083030942087238677467427156250245436365608059709505551624700474228696177462338376001732631318632372778377086057436972011929141116440390078034464394710185804663285659165528119290862767044242964693580166666097418885509919297377138051618243203317781084155175071865358952334120137638821897739451209461214508930793561377353402396783791430008275097525829557350834990752848327438490390938555239007066900457371341204742542992019133349559132217320266293632133736817510490424080390686446387544539052925354025760033328224096733277774190820712528009928200417019606620968656061311418762502340465972965353558649143078042816577836740109406179843168379179954395106195511398182348349581446598624639732220138966157606726157131160059508837429604708207800027956149179892371905319802732940158383609471233789222124976211047414006231585163817820708875547449192404743851718970843204581189941886666022804243318674329777354722775262037625845195866361980981367484825099835572577351056520376889802814817915115740375828270816104159279367981175673971588687732717182943518292561739848272222184120582774327275000854562881053288707866482287156608415136333218300047063680391185515589187897214694738032798266318896472419725148714834873310488197462926527318541923255135814155486868713294291611472918011916274453040312977149924512602113090524901877725058210122607209699274042220852500325591563434327842747628868421652274876130408610600982709640719667650340230389826670021955800651711149917724146318924982621719932639649584099473904413196447272001402335260200352298618531956103076180396265413007747536927370004378283287562791002282276845099204262546204045665487352207008716896866367785769678086036484098523805526839791148036879468965746281959817242994196824625849559725959692717045633300486495267106824623739031696993169436154581580989415728666807926354867047396426474433040673327710694894101990006933472363540571873012506085038046004025550576951447749092317435885296256204386827884217035792397953325014459780722654211177710595159869499599174764572148130564531150770888833900430431256597039924248971159711995885162018181233747285948668996093965440287437637061944458405858438245802066171378326206021101957347828557524390167337918065547774005663726299335095448336568595772741117924643600724602465118090216447677583885108447053308209780079837560043283978759287559144738240075064887819994660494377750487451971893574665339701683458869638728904580962451127751845363923962242393568118345379516832333560925661501478251929109496640520422514230419942780154844531512242572668704029759589709340964831349031196287672202421848093934819699676675141324471331839938963599390460911920212865126544071012954383351654309555905258384807831587004808614641375009296882430478176322113066526176047264573653862900024702891445739284969560393644407158772896859464469804984846639090797179325579129319249555356489377564473943554215182984387134232919835050012782598970321670893410651266362259451148907247739729509338075784428794726105851662731321614633528429592454649595261779307643750950957251478203980228445397275918834547492954288977837806384309818528589568095639216553726184119482773945388888555069160349897072743288215545389165600720775755603714726866751920499567715865217485139915751102597249728346817542844789987216210969105531092572816320339148242074997815999827963301682977772454958706260718896949852823501417022235221143488966566498484529922466877058278808286813873940698987390163238528765806578476961955187025511832474811456998895712774629484510012215945189144249989416755124487011391849290176587213375270510032871426838667072658026532277176053661969100239548772312458238241469725700648542115974215610827763536882100461296972285890966755022870608828007205269359694442121922106754766889298509049392664976477469486855905840309295331636744929913007257573980538679905138513983595861746415584985546540747852410973906216708834759163756390961328619449985608247592698450810453973744059609936420502487622321676600013902239653586119949472802873246275170569229908243529514851372986515402462330649989970016996171808355960990000926788327424129700543921462614173183527564422522145752492092656043015804191765748866706926808450645014033318878250704321021564468745799765245327227343289991182189211008973760320319283836650823781221263266013393527686320159940449831924632148562097423769010061410730943784492696925536440024510318431962796152458273911200146234944413731868856815224762939882032837533478816666988512507782224613854307278722965736213664733968255094130361090824519995995791299612428643795251046890513377324990052055717333883992136669497021753286872749158730980199846921078781621582922758863011169608866449832827660302691355446271679144904166617021303002013745556251136665143506298884505850616487868090209852355930100462424231913182111353707283146222527026666053878943171257526428031609870607182967433624734804540087965937004423954340239721820619801432476176933470319630972891656727065685043372786482847309204159365655865877296953687412397645673199654143190926462946626389637066277527061648239342898214350964126715925903468277669210335532745251307244601471931991124002571697453859221674408825168975867141534169864587486162365070869299144649636932546987992203788647248220502655155764825986917013873460308772199536224105253245520561979890809578585958977188483471332285978222604365848247610613174310322713435718392116164585773929923039539412722163758599318846957871595192920332484218801747322494955883421390254501141504693841314883063091308771553992386332200486257055093447722473952052661948678789205171314552779074810307861384340249732642078369848622281632764992426959217932402396908193831573907364767736924294618828456754611502865537375182565082403623064799049341464766760138886038245987842438205383259469191757436736822289104033798247676807943819927400872122341208775399537010182899634356795246792660323303891194327597484101088345910735238856197710313702886361318488376492568968304635392838834695188873658588419794035249524802777203588981338900931335772788026745036762948326025366977691122350718260406581721568431133576344626714953711844627526463282134878434457349317860148478404091900077499093245556880376919574318820817926484223334646280969345596961335735169564389494419398246974825394518549914898558055710336564315496944576871386354812789801733281860829682964411221385750537583109685792574695445311933320495285831957106309880352835805161573570225928497755299083498089566750276858369021711999413264254052535312886487260059985710306095948985916194002087331793763012210626212672745624451473635372799861495670322778212897854198505702990939815906716410730571215544480617364339767776312162882959488024254668389643877226297954536803246219039902154038253463270177724835044336349607133006614936794525111921434113871490036235206279357972496153653302711433207970245521258804399333638304622518342724729713253287071253755013845704082491488596341128700383922411566253772190215806747498618545911361351886919317200829330357758401094598661407150190049088135873077978006910441623290122117993408931998393485175169391373595872481241761846325064521087873759674092364436590408469609031204117376512429392692499688908237893214939964693988849502404616858856433947055657517666309315263620905298021424129594884628646209317502539794146546830252350352483491373503633655237834083508902317861949024888743509202502748220527924665727879139198342542444590612705434092468772490857370142679054185932246902752814203714882219056687288386670745725072529793304804363841989494632064269000425098563325549802810289802276683932550655280223652139421474589052063408016193551854626103190839036831932646486767268863576700796216690174962377378013065594038215427731298702443124408097170236145350344896502154535598655355898763079291128989882045497865464701577331934209176162666189241403037160697334119469101202735039551111755253481409134188591746615570211714880122894206711173365300259305130500520361580326492757443050050972868707760313915209091719630996030846267821799160572979239584732749688421436786663174610681541861045981177092296851743114935127259790968675566556303032308847904785829340121359162604810780292762009672365792929634048431410004629335716397651988512273843399755942952687703405236355939534498061245197006939039690235608549538207567689951850192479639411175906360777335271219968596659878094661200952724404358043384771782316368473821186336154613557735018732886854961756943423417041594425009478272152466933735726850824392985160223157401166981724915897131464603742145993875239220391753447582437885392304656015568297329351379009230665156719614063463157327242426715749363900288173276228749723101726854522526244394419259273798241520076497692774453716336487189135503981279189686140080779510754915911134499782199913798355289518023004738926988154481349420502585691556477466182837715936515518717444713830816371250781118852965855281710947966527687499039509708458370144415976185683806002160117908467824802894851586160598251586175126480278263505340063966427385255382096661803582222299389715133325725485227456586560385643245058345527783316689265272235502178752559348938732888333639327035622006808125097527384012831520726211141981918233463770526430582658449361662079372833695228210123165633385869458119530015362342950506631385442914032271134155064805560128365116419595205069870974425293668306378022759356185560081115065518309770897754709467131342320719165117697974702627840394075816770964973253840683441038883831041080223783297325331248980469199116088130918058786395590266924105121999733016243459286863549872998281635758462873732084968854898634330853213994226617648485586134824576930576139100981090283709870295623871356996696664269537681322234266283549990447326515292510067758702863501606411349776529606956161331901943686200422649636616744090436607187406973268863472453433722181240250517422518098602003842216375789988121610806972075875152508180886607300402353485714264894466538064812152839603933276338178575582194089026147499002867966579401578622050326428275992767966710028253149760421168404709681270634195240464753000226875827313257770189574006948357068745844827726699245017143721330333023178001421042018641925384082426614193608178700652936600361685756682543981077652368465392045273769300631675899417783807044219515392116802250189110451445733751066001082605590210105057263743159237323420748383926854816220354856589088927693422978001667364223453714746473014022483093490190426569440638785698511665292586764679118287373494139591650450604479630720843023443260629265206863871069659633151214130081191150518711910376232050691292014383356477907826394625667953425771038715852595297762968313295176140744571140598860771809645378276764887629591417427593709265236365591349722866990537682860709443799866387278823641476585299201074997569004704891174035780471288404566875148269411904706423510246703658795609650201879987715359953876970666066636806527692416607483263463446630884266120866293694387632666097252382018143055995456383587475302664594225374624509383603496326654100102334556083491150234024573871635995209805439139510218859951265076458380572191453154310604904611325407189921336307648580371494449551282201911688337657241682958331344145549765404314087739144366836483409742566582841916760996230083979881771035759594592460171081257239101723037637251079054007361470694424161144552252676262507303227661321975026532334156479983528004724511131841485506428391861951954345256849794609564403177849837248503394010563705944688075494306203215100385800699662595472265649512300115446943085503220162699434669530711602573196414984594751546077900058877879236973930289251874236190102127324174251012807194749733999274696647147829251544135935118848843324746792164945717569038048997904507403826479967782941781919194762725614763889975511876921174537656263815305216994487362515410860677883634785616997847660011054670083256099449736316990705417533736071476673586898975102048021223647932109014210798094410481679556147143087783667642127141139295663806910379635842413398791544273452596434108346726540074350544329162180429866359807097505543119215480771948506056488867225148629368298134176284894268344332900641524916657823326614487196829426637016635025099053959899804796905478362946271293156779991580344199996407152092066928117926722438013051055120077022313916505743196050027721960116891919359969877260646526646090193730128537138229646259613573507137832279834932237062861268934412171572749092543287723664458110939985048389425123512544624023118747690603363231151250624105881752510520591699821897590607864611825495936693429547242601424316218142530483431416246358705095556551809968826496468258257028360439994026700202011130118612235163720104626702777714435721924431011552036177152004360162099238025177888514993795041515459016700623807579175981231721454255672386925232687204641106894243760606747693564635377374398079179161885402421002810909245788495277910747053451085431664498694590789138032003263558648498710152510093108775470053137622070101900624802892755128531802764607287399089280022262395936462532754041813263669587900081281641098429629692687966819629453845635521356565627916055049143537635741323319665139487976009744916935292905378497141773830141860381694243661736147471999084248664805600273281968345837275285944343792128011319505123320473265768286942204807088540539227029193680463715354232501880972451939739632387244655863448674009675450709681931916858882725366110487860140608380506829271768615862598379473541337801357213000435597758759770460246032828882486856361443813501027373202651771688237456457979074442094965568941707106904025372478866755972737955335727990007840410510310716304897785163417010023530542633820022172341113670907765625144498875261979102666421730963023365459945172010923736047281221911199246877947848110438253866380166098585986027887416890430682086210112891298657634442475017003931617204275354910473798587436909906606317482713767609838250250271361984270149691649104818366686284447437095175462153495186323067395512499374803513260583328178272167230695072830648700195954793562221054646601736881907676294697084859757298209179089558891898075497737893783597865036263709014601749071196113810132298959067396289284564380408397044086464659857663490550589423634047209659679809196800847854251366397478660707199432085955430642992313662442249626095586907169689117990309846684305218747983083780799222743602178299403888368427218055414509051400038855189646088424732004882909355222926264985145608401201172077383410894523014071732853760130484853390568518964444546695357712905525108468761086667246008959670199748948076514326199641128802219892206638342787194347778804737795173283090372468157489487877253511139692442316249474461996328007709614531464972820664613512029600157925730028048920826986879241957538225222178603523108684901470180328446400064935553530506029636176817178785795949300536134025563658011980195267437658776693206199337726500468971893508654733714140482877473544741930157714139877316791518590816047848073099955972903090169359144129508523106575114471913181556908577910711096541719100555579420612185896941596269444808474961870193901245481808732948535015605435015702414358415647495264436849066740355458523774475047808746940945997296893342410852050267140854189088404837116752673095485735099679837977554101941581376990846552091133095427815823652675509612131572577654908576134457725465284743554634038996738279757786407013617602959320945203006281799083362924169356468066026964951159183822343311255847771022014187198058248228426169669621549294754246488307440424915551541819292323203213855085397581304484149679730537167059721401285985099487851170873131191153309276978311114248401153229767719832972397532673476916350237393218270787028644974773763554115460205319995916667878156868131219157921756653939686352261828862805128561565537843932642190671109389620620479430121052381634894632328649975840375668945205966454799415038506595097377410561928093016395593822148243855237008000831236189409306813255490579192051387029030508258137915675017337193687019452146209967238424765864929083488744527741217366927396764684441796368035542655792279016728930258825173190385258699050318376161373619954970242267877458125942979833966040350942354962546326890446485677273560615298817340835185613264800950934289631627263064916306373252709556245274094709163979715987595861957090165311343381659718899214069868600419738032119132557176779041421395782555707983934928126855168455081271765174945098479579270055004301877076295612464001001118579951380328168091183926926047761237963458125967893841213775025807408621887964191347038139094826282589413707036760895519134319461703078763012836465239386094267461443516267234395819872915829401142389733647407757939809578231132574749980402849714260564475217563000399587140206661253983294176518830931526902762432513864441877836176556436408378382517320929321224541590211264576119016527515292954919796464287316946750878588859205655772926930000701933982306466544179728603067376212904519432289690307774925230501819531413936113800090460852191494041656182520730085843439362571502499877366820018693254864553962356921118746389386063908157328564395791205951744259908381161222071861790412763698543964605653659730687000316596248489772774076325881025087758789564183387910343058697488552494534814321433350196825762965958640880821776226721453002715758495120121055266666435754180068949794287422551359786425890827978986357790341102546414460377765796660586237021104578761549786827259767443869350944930702460978133940855925205269057991943947604438541208129192405027692761799521780902207679667994153254369055312624829946308920918129313643657815749757729651566264459229675378883243982180268930196718205224776641775449702651161392310793312150672985168834237397291174379163285714887688411984370332809369215209150877663644922439383540284319448571649919189139806746983757331870508374181765814994060593023207050517565940661750050934342677273162204183926696004088017332789455709490789154842607486092487865449443612516284258616340269615184775068794759173510198018747214943502173382565283861404396680827167680445462653347987791094261503594307983431620848908716043101842497112751375353283930601625068317954899420714116341905726435429785901367348822362486292581551053953779443897770642891110045923622839589838362559307385041935291585058988427951677870036487962124043064142533749851585878567429548437815074648083551774719218815089556808790998148992146242621306807833902959990959425796333215467824208357649811761488702369986042583913575852747051613532756713974585367231732949543867430668997161523915951879501186594771890492197166125430807873613481475694957790548166600535811249718418265688696679795029793168296930206933262452130634526729048844703655837980682402747886578202190350754554477077212250939859862212927956082566577974375325026030145666474955176474115627619063470311072955690944423918211617024715083948221665258154182932016773119264817395012754177620195712748430969455458154556865759355957586890042766704602582544800473650229376054263700440639189696951080365388713573194658022584391214056208334436030938423035824113264879120878715685349330290869270815160418138554417376910414998891162087285662261382848941027417349940382015852136635196542911337371985001350397713350532810021858111554635260162937587350781493321988321767927229318320484212248633130083461174189477339945943839891259485372813675876251556546415734329510154275849331809334645818593886811483033478942021090257950618022523302047123923500049622703721374803789072325023836536371914650711697841779322536624815883305910263313272994044503232787304570975698896924444188695401199520554823120888400104853518144671246706829507851247021160334231734277170633447625068284002919326760384851316958692643757507680505505129191532701831774328349784771289170371449541060910724191824644295055240891751259004616004397583202776146062086624146826444071597855319635157923039619155159655542483879416183653000304097224494691569263511481902455858876130389994520805387776283562725885538082183871117602843562181402184161863654156225721093339656329908820983100356584533228557452187230760582230068945754616472138032956364810315315709408149015883733134235100944806166085534347333824137467615002997523254385202892948444459783006221624183571606958737065607110884553268988531575514357327389921379669000535757816075586295640589697413619899623390841963275135401005503424325564875000331826919318683340936602487730135652917342882138642484553535440036373264948895020958721922195230567545222657470449925411426311544538451942863759893678929756017482483543826926835980634997311068163818363966155529476965134495109343217920066513919617607265568703753622324694496723219142315991997991802288566364302277192820164826824615513866197837212469494424650419837792913851183227655465260460309164257296277301353518380969083424672209697102400666539746039558067882338356979403810596111939761479247560583172165637795225009838307255195455750187102094768379498207495611063676841685213610051393709789032257010038586516926060667227211458196801489448691348362751721029685088152749338603426099851541171442897150768614653992743924381226027759824818833665863770768827730178820268169886931163173436498269470239992096174517739171770289784278748853788347338863733990800579698485490854709193267084298431591591191399754635252795375108087478778637652305081529787076308082037054261316358540555532381326045992239737677531638307272180710124085676090131450381367052323450947318002483314310325516750986701837425821777941757026623936522128875033685458243088440602586826639996403877511344995363383456979379864708427577518334924556957585720869642827119591959952263123700982225843580104820442042359542229881609086886506916965924314147854881027268765322990774995485058760412951210301852773895570481645775415017245790990661175003316004764898728309549386652361069543086132127841721281593385132775615099563633128577746719222862974705915808378078966684483417919094092840883807912524788118962032809669956093782136036229329927541811326612200187288425970855283092016880148330812096374905368138644320094949365792439481700823936417698668561081707544652865786045395323572161543596517048740624218181908613465633908858328621347019556261538970853261521844997450756020963856192983002895612164520504716827330270295635092088645340606648153298364070679079005721464555783867259953642756531732262377971609516312872111897712010376703085417565139798143295396911693027564968063513982844379677364372859094427482631311573641866534093026613359481759941807252106647832045524179839555795648906480445925298888556288938517966820264916818929537004583491297857383936685471349396330238972324546461617669779578799414549800497424379264993767777363648042122625249792527314832646256646070727141708507270344138845998823178150398135454686971653136650392143719688963809703860683838830752407406329253410053735056425462808679388730644067911357289914226916437327297548572366127762783784059980488361501680738832193201474098276623906931878704338974500589650390624786315295202294420179745139212816731363958904864600073192881372959046295023445177878334076876747139292881582175119464181276012256025483247687116637193301970401345808587764580113745624886300192094867975405640782692623160619802157030717050688415088175775801444905564305256602191571721281306923790523176142571939775493944698935426680446229381715046701198012518617620646608680757365212179381370298770598167609496565525975657360490701707306432763029125101949954476778706784722944967295570115910120147002169043186970468988728735409326576422249271568386314848803103979181134750196411371828465824980811781293189250563309178217401383145781196597209747138884179764850746421030286929445090024369872463656868394480391695474453506093465719653298551004108746795657750310883369670043419452610539357705209208250842917639571109890378579439966692892718612463000684697123495074239283373934233595722781168904727368424416080771532798814425958573164433758341151428309080003012373894888752660840630670127147606222007897581610195070749178312284472646788643943866993386742606739086145027601326367382349966967568817169752381454632239723200641546856558156533574515093405999187561467976299264043937231679328081238619428758128405923026402774199533276360891884251900148401773139511793212579068201650607964564271649555502832937139726721274071731423335859228536900153593509853566857794330243613675964364794897271429689224998760794940878388578135260619723495238406715308922556170271347681474189832954619926461400777954290709167640992361032289949524679993966978143986052960408811140261989206035000780068017484867630341382199735221477998240299308507210859468846749608783329984397606667810461327504745118418887466335615780947164052389705282248567156871747567217999697982011586822020902101355659142723717515495825483874869519078275181833914737863571014833573936818259177663245232066501017165921267285866334723887507756823187369968467788192581915139300317361929273328764801650145248572604170068575922698958273777260344237648465037313420065917583237163786401489398111774482684991083418552597747927560908386961315270450706551510455204616590447917736024615168795161571537713558517862752080573504935336257951379557425134822163671770180138690716729979751160967175177155614433837334777729291202791273183034107397155277945683050420305122316478456705464324502025345221806471275355828237776525113762525429472672820369094842814870212984920863239642404715276024781961706641850104560169484298811027002881824039067342426505822646013742661201702133140303164535844962567126687535721327479641151983775614663675464841555765667608529312572433446576952054621854364363020355407295962663402433509539975543502474593375174478726743795921677340614277208735920144006714280732075068847847906312814445970171212463512149657271092629693036547711339151895807028777805865380734896443843079118349190048891807654666636806699084949482990686422388173506292345951705085395923531710878786939988866726195197972786682583168825039500377063743096551727914492501807140112847882391215920295312988468321726045576590301668825974678824864605488473897848260326215937105981723687043382837179869550062025491942490423890746744598239439807227029508961119616081577742278454046806774469417601124558648871901334333531656748845283535835174685572981894497354474095114333825732229123308656312272216670678812521063041390345342393181035212442151967814471518775165135096086604883447354956806323889486300435413155931059692037893073939746528435600588937001593106870973619978461072579771556037612152108939402093672141455418102744165025186774372495031417132788968685419112592476733838193288478043688027479120502265376468179134447394253372548139812774620419320128059313466197701905747246494366148780840728333490409949611745715908807849034648591313300964111305408021936704090959262345010318764594596249473769294854914207422491073439648186651541826314779446000516425111481997992974225579580064261213594198724717559044964350958978084808556163696243737213387199441149813387776509749217320549786040865760229649800723056460201692800237980439682787073845778220253668945776806447002545715629005399092594083796454531155058832166179032715914184789476823520656466203233449722355410748892024158808022149085780236705678380234570677766880237839351642579709774036892519907632863727463686654425941638415273526527029206771592033114010532437958956483839836116041949684852539883989222658963236531966946315292630675668866053292321098040949813400107824409628409343706500200459909994657130670452627378305122647006822361567930565532492136454369080479709127256244824398045547729556514408826892480264699096200339863902981759983253077579796900575092791974187760693975605497693654715734567268352214111687601873953554451769413342930685759649750828201878958635387323767331712837812016149453949689055916555640850078590264695065798548028212351113447093284972540355077281898385264980284324055535511726554292996748631970131237919625078869886182225893639507394905267774590566387788672703922468771998907479107253195919356923467066538576807345538184842135515249779038537419719372603241428120973659018642216673567567798947441366693149684687894665744331527334602092111271429773567860574667455027954732632749620068221711547468093804094811307018275152886363124729018560167474896755464946289984411437357252261930800821713869510630893676993407333157477468129950486403131593315501485512645809013384265940997770320902198471272401549558200230393548429495654885160167889896531844953231869962361803822231429486194506353977444840560512523805972674139140447322486633584987902873621177519460563230871334468136056669653244398088808812744618049689442582910080781603547617784988542208377617182272694184939474523350986551459296319645106809113505803575024293272095185783705239770207847483675375694714661761301417474933678413595677818819348487549287003029250507582078732030634742680971788948945154466771007789386923124138179918147227947298852103749594133479266959415920544031650729985521686077530386180463939889103953982312559171555182070808744236106257292396853493003110209751018717674207327380838830686069356521798725828529557855336643394427004211591530874597306185982189857127133829667654518820269300047481243893851248062490303327182252750642595584483112020002575003776614769529752917524536730963159630488118725140391098800126429433773543257048379115330048459607589123611557372377033904852582900162221146990444761452510086334566265813952730267448010147187452938165791398032151815509232866122598540252434871689193997998665874310737597608716259995964623685787160445061909789862032586906307143262065220958646827706301985159214065136627941327299173980011561873470152245055972005020647260016042090959534824644478657007600800320190757294992170454490892335563715530103161553701812664474883637776405480632338132030163712869890846706013030896231164859368298516498266110470412135957600897695558991025720185535701181493748474015745671666044777694438530697568840452161612829650846730859856374225817364966256665872281938624289046109628645068496958860767602933507187869343517265910812336370317997783976087957146808746531678889612584289591381979896562927676487429530159460412817431581219546043847210557155013103187140183998886401665346687583776098076274810683928417647914996609983160322079252572176866204824968422949672916110574253895394507097509019820586841363658679757874686763924893178603563963074411918802857177886589075642444251517937895201238211073357353931861576989581630401588563156849857480663432703538405704537069156883744995243446659573429242509171084601491290359216882896883126101332237397244715210496254721542004249950592501073777205658088313660062889950558887515755981225878706073238665045093449081649307748235497704881396691309770891012004635272553351767147207846190161380511992130651573668206246339893495392143670252071040112547703423598891529635316425465125959067351672683768662061740190918476377020458791983797640017568516434221541091310386390400472186218556575820925414678643672968736060334397774802779101912349631976955693734226126912077698902564820942042476147828920226339154655426516014766478623364981919174673575798216310893212385181335410460414921546793479352520836792068854629134981010279830243202048557332518650529208016741294054983247090180183144475059290747702962400884315138173785076049376198266264930742038837863935084999396797498017012917453480044426424823483414563403336538765782097511148492293347739005997317651282581500382407643220910337995174526825274803937093095417555463614507685902230928580967893776650362211330474568480644753387947777294089381923863982765644787522110678985197930889658521107899675194047928092597615617823779306158055824680455531037366313392928050244574611709955685168826683962512563911849901032487498000719758386856586370860419031778349339079137219447397910236180655606772297004509651407850282112988923322319098823962623881309023722601522081708402786729435639269825819211564386356092009499444180041031999735156196903346038700028402447271958594136310477599001068112459781199299948490880160782322139934172731167399925891789407373269981759799861356802866225015801967671605254010471296624760507625692049118308389390906471489142002363799020386961267754059498501774155027794183388208881496474660293281774557204521342006712093305005117802574016018404081279732639418807531286902926611932912316631415551198291658856794466140542359970159258603929713953483616443209257203164956198504615582701257909201380852354581173311468080246169679177797903306640029355219685498567025932800656336054314578146117306422050206221947468240319579625301015725342898387451745352627419244294361467791605651864656181654473012371686920048423318837248430942857498711119050984852694611244516397762442593216229160839500542487990621336001487316404719031239307122410170887403039823687682391473252353345743931292847040759970989488549971559690935191450913184588147800732600447557045141238130972840203900567639234064114076525927969853390951668869070169983334621736089081423944924330535574490158776986625658958641718731922192075147957340578088678636884131530306404828332565906139895490350398210089393641225662168829432026096113845522496019233384451561545537066873958479736141886205561990568309455941075223401529735067428139284552063339143273076269834234158326820750776089424881708064251295755329030145981274333625232791706543141084628515385939816130436139639842575542586732646102510029616484495245665777664485030907989126107186119271608892683299017799750528749326133509696232493843528286398805483922496556720837745723099097716729524379996454915076465798112977591985590931503068414570404214287404188351290905405615910890380432476087587662872587062284210425476103522864982752241711356715180323908192294287130309630288249271347097430967992640657166380710769234166588456225550909300335377259959740636971868301462809750523371518107480695416823007747095593078623605819623170365155725154136563973782645020927754293236913875395462490278260444491740057934960317619664465567851502920442816473958884144953589102811493306481596424722644963539789410148937618132088936800282125771640075892965719611877555343478139090914506580896328605960540766604383650593823932069284265555081673784931789474511646939257889271258666269832067606690440789661180849678849990444910670241468771543392799547771698333920715796770402347682555949354517265503808994331777594175183910957513806818167969668650330830310694271579671248208549283833297656294565571630680355813469809664413627196698818087332620154187449117916506631195004527290382007696585763484091754377230221489265210374962512237247697223148584380466583643010657934620847638681841820831217367991316341973231149623698427742215832568943012536281747607682768530890476435639181947957133325850731904225565824584538818122689461899079670450195724195319114420503234718689438181088703792090028869276122251141920390569610330896979323781843581837339800946312616473889727111486402777594544014023595793188205863417937794118541284067703676035628312585423197345234624461615520806750775992527033385562677373807405121481408198938917104473792346764718785120474567506835357840871189967664625837033344909860219226190607039787190962905168171295743192671501517316884547717893333758819134972729383039951667391606519491578379940296050855591680814070616682304321990521549672629751130931516118725740129433651780896689162087578669637459268428884872818586169766614267627720952834711900770033361316576862393299278479538380641786736612090617748279395480065597512900050806481397532433820893219544143918571989148299669170634532729639418840428973425083098797450739960917038502262743194945757960620776309828925253008196525508295737350371387614189087351904412378727833884178506710937160156001331672591935527153642778667594313012371033066001290640724791956451161386781341690267109095653946767358346761714233489841224107278779227394804213279063585392009621829424974829311755668135583145368273321973740956032507279636694043715301499366071307331439934419435291142366939982565130951399221127263165437799892586724119081610706348187112439053050322310694295226478105621694011188330759366077693561565048704118242356307828739213948810273513198856976148238151786916566179104108768007186500713548862585065976215574416565091027072697863904608187795461483582277738754978045474038178066699640383587665887046220626322723987852440252751191739598821091014023421552873978222145487449605763126866906322530068145103448396398736624391986347871903868446554886408894712344476251068211258653883184634973427297694098843048725655942837461250942846166329671200506573014227016831268411754931374692002946583847349895143313773251627017212557286952410440303139099008533086077058738931487362879292528325170862484253411121151541530872909341754294628943921633795319410686128430144028350867488283413816496186843429963203746515296277954603170043955854180213651304046019691187986545277375353205030936358610882255625791575562750204322581939924363361358612358209908042346086057820780242387738665240642783259147260455380791139303731870328145069265634174848553729069346644896590331267024038147099684268237368889483319184516534615343455047953427117689352495566616661973999508848445576546583831988858777520274487427241054264474941186735357604213777049591473568628391708165982181175273556538534823608907675555924525722464695254020529307144449874152770098537601224760762645382960929603598849743166234021477684241399524412819818005923152300706021364212835575845445633732341570550190281677162903476656338397316068978654703382440710423034136469341693335517760946529309536278487519711033596367882512147625162217651835138536923324857904285671102281955036954507763200106040215318582569671442380463239468952384923772848554163832671757007575324121949043895128833818939748381746008256674470611299882039093856428740594366656886700352015331761121862791759932632325650337329923581090914170043916345682324192952691029941588905696442580405285183739081840512197210425416564756092321919296392525210316294491887816259616884901851662349922547090272250437027036146130126624676077179625346557528494836641123464180227564635123058143570158137617293128130821092371303683909099251272581131130520534499052909223621622784605925022403676208661345159447558219611385001269366051304302653959158614003021013090720454111365595368770357557572598137419164055832994369256530513353686986379902513207389081329941296907113727065133606151957246925746390783452486890495481855949123589340399024288637204919080457460301921137174451589342021044968522781036490900339967385231255763000721321982279395077176988814261213456648656457230044933614442521620206127155490442618163375674435913749410513832672533522760630213210135486270251411928695247761422559847307872670384215017759012201054262629703002315891947208742963883825467737466866180602686964304817753721052007976679686941019657609626386931076520472628786302338101487836470057995434930703175192495210168029007283099344771814083094250027298285238207194263980332824156931783848317507201847914768125630065047770118307686409708278070135432853869530602298449990317309239210406542473058078023374815495707246943232289623083187281640335726794222386881680286167428632632543315056471892644884461962857945342106967654979995427996993573615553449277972157911493684197390388601857519696648773374466505234220849599088579019485406154371116643634141672773930719026799239253608741419708614111877910252696395754973492148980293963203325492493524107300960630367160292585573105393152717196275038173159649639389793217115973469346229938742269988785099001019512952946991557634975487350995409234992132276744988884396466789554701847216504319407451218158210918017925912189205329691873702498285927494653823805909773468699344020101974326061953416571166848731748129747509175269024039273662739766430963903646027455530003698789981357593908852106217329321744919085914372153045120008556474282173434796600893314823136214200299206258282938775955707996031993652517865369347758955682212190108159881951817741205058016774427592435961061684267252400953779208326173950402245621984375137318452293374801202768898296866853733941973085944844029160707527487849552680522573690254361555446823217621661793546403056531021555496674099904272286149840678501205520310837717615210365608725959556263738523074663501929916669158074694205265781453955109903219300349330459545768695753783150035032756515894040644166058359164330521178222584275851126155709326689711272439253488568879226855770030024273643120591344264125540005458452463955998552792787862594577306277915377566915351531033157077145771609868280568440182288637235440410873010035905659880840651763994442303049626624093550872772470672880043733121736555884300166414384541646726499727007055409408907337969812468816388063377997737673676659265296018710051632048913396889590732418128328076846769986096879764713463245850759529686308771245215693253107775887619872420046631271272903863916557675585827078660204606338419591348481712943082972693616148591430005666955163804824668978234474713394014534116496895127569209082454698343596132676427094910792286419089596882358964568015567413003724376974980992686387894362975418527861070250631227848496937812624919890724651514103212948830171149924064204741107483193174256179912628183885838671363902052603992940260607267543809213399312822511963634401633517857765051377084203765963811626731721783304236302638402934292191849399692324100677561143595132676555046647268589059344008244530112047026147778156964509010849143692327049190026574177587462176447850310239031268226152424417366327738503199454160992770873914839834387750578445987343144597329761628355873445732153960017820372851366511582303131202344311901004193992491860828656011423335992478123400699671402155170599758627707754259524829405949123465861995140956807954150951045467976257697805411715130218906207228741637068096623720184420666768514116031545066752643605469520298193365788781977466533402231181364990991624346060654620442967232840084256853333445975650284923870329641603174396969508270522775759346726929838768056871772074724277471610501786237427818360917370534097863465455953248414306034533620376979559318934221320922489453890792152021695107283884903077341792999316634336932513969995655551918685974477490079953846153195605063537853780741845502705310651655797135895424239277992833351473277260597652706395967014618745513949556987698799214698670397018887197644661171467186442937664853218861825799447282623738897870519977407907562591986025992309833113201464361395329692524670693478083730504559446233112903879592555841638286957396767296782891556299236669203116801129324025945331145727991219198849750045323043852862490425668728673669515315124539192233103913509570975463779068956728198757476436848885790481104788738249521510512407563529806016537077307606595000617593064830829641124273905377795646397839419062491869208791653619246514587633495522775735867148711924783995055019836803566177439020868171829118634127622909356698791106476582491242680943096673728287595445263057163824335654457558331623425544568427570046661884899227077004101845533178701650142904058482021315846070084856252131256576447903514927825022409477613901325842027513024199602179735178506777562159315263545347850663393244314499039442646148370007484805632890174483104525326296423123457906257776092064044803672887146816829916278648702661862702431976243140617261606973549258542918676224242110862460987942647594714763866637733965780306060591896331777965842794091854373715619984539577442378605743976032049278279986100303586736987475819861250835492408975991626137632661337930978776559795493578413444049988220513272677800087670624067950311802562174129545933658313318878690032480637757313483394375859731128619263289291298926829892243716867705234096760758743712924919131591294315352738302713408664956021353990439441732970281838509690080164217132955642231378212650701214910333296071925796110540092572872940484523133960687020336872954925257541099659363991346492183701123105275448084070663322958160519695583820229024689332547447109020894843855093151493511174695930198591652263460494813885385794681090789216216818382382532668621823951134769060046663437140796492970538659070914024234196602076574990050528037183433629806883574731143250741615976297224535776428847109644459360979871427401535847025992733645942269044934138160673659336095079438473154558336364742072990879369293148532915257418515322748507179102183315200210499994254846354926440473229455370844483478055499548400495493416325923685361615050455580425095588970271862725795107413071770270828933047783375242088084488926857390403384284890443906739285773198534895532375032655076459901173298143901394527998675447572650068987732380124106072306681067598325733436075027054854844224034478570944514202559468553487989528839502256496665086468382949136605803676617907598685499126423750883464157607024895729084494665402037447723732005523069471395886842639432547106742002127851880873599179292359637994682899927995811170179403904404330556003760748234524383841251834587477544160882239624100733687482412078533847239531919878208598398902159859807485851695470153546143847709774856315385351560178582619835482815774336282791090984813463186987098008033145446919224826546671068097621433407439670717560998793200630606290793305865640303486793677445853456511315646103496139014431414790343505084270807991335171698806232798487593025024370239352196740230690292009390845465022826158325780241274215982450495462316920429771677142998940596296965827955560127762890634805839712987978531764424127450460673369409510775699730180427760002088651151551997186973248206999555263811040053132959861652608594674520109934140275812490340833125465728599653186932190058423635335144301757290614887106403521951489344398209156457695785547763407414936701241400153464061741946388755002605832567376559580195809445351994745495904718310146559055349407634561106799459956396947789638653734835341992976508053013711953872648108748197057110539082423048332114830975621621997974286038363552430269221880587682864257604993967956259811651911180492394646810018408013646771669109957483261526219219509702571786229505454030967924238633866512616271551504839944988515464208272223631195842235827454332808566766152129329425513365731492841261374249549573502469853878083837266337205896233860674594777525713384216216107236176080994847635684883487917427173118874572964731331953251076864160964408081397918273458041248537661791737865352733637801347323378240942708985177536783651353103826599563008217950229868320680312701028830981074423204947274681432129351537524575708211348530095398076920000898426020322575610132300222149850814364016714004000484789388505972911747925135481589189524792460937749427056010881958002187078883404462780522599685880066130304543626168290820070400236835685228556009213439238522770395724753542895384665922653185746190709133809167011062166586917518946188233037675257239222175437733067803067214838584854532661091872153528366622163041288548748375807691920103198423002922282600730733656707907851180538451745735012104697059447895796881110996282233705438338869301693358402837893956641311495112514257653107073360212719985542244059827740251204891492070321402667981091338575434323833516505853462010918717598862941346255970808782585142348833488304833009092505700433688548626422044975923029805645496347228708432952182878532548767368049943627002846374487530087831351932066339148618938673071895420205755449261917702712398907000318888806691798028014573537160387843966837092608968426413529598678414286189833837881531870606609530773969543336484566364507148622805591035520084623677476011330507918448656250624366294723630900498013546077257384557474621024691511819568887685135677248139223622319126722293282123932083666027102347425749664326693790632470166662654974478382311464959426853004038856152359352381216478163090217741532021667619505567164272382583862408381236954919856136913236359578003700274358814432799092405835925612825756292009939829235080307991296138626077212991458391467952425031788405682591090388319441563855020010193424963032559596468489529895692591512116266652832669472476933897953337385378245482609576117644732401450650203913700795948657378968170958947941906591579031473200453458373037597251849897397839360412457652373587004765595318703029051157682428463946266706922292430077459473272485551142598696301341170070652080402511876923326467010271650371936906966276371688957414358370418223195943189477214680143141350406672304259903133687381711619812843981824511470238166594047996455585135787772891910329534367348880101631193213588750917229773551919212971774551379434704491963675902067198764400877011193269945018779977826418217036866070621176467728674510341589671499906344377294271334326449805475451907543940265065646881563109911752206705519834581830278438191804188974044388399920579687689102262210259327315383537893847223917889168798684969981973354050506017000608014558300057822791536552729690013333227390675332834125248144404794060115684765193660566018639348281766319002913016776398193364110522822256345010408680699330266606292420338968902234089190488296768611780510541108390805776832281786247110560792609730933057442223275615787783419042444997203514653445698537814030114609494792951947371524241475948906744151000666972675316151862233356252913697302841118796634836523615086775279689633471693989685838504233314316261257793116369361381131369895564012438986483448571226146020152510964940824008111643206156592353995886185200383566421772342178675907977549179294227151308249769963820100635266082830861001433637358272642760181606427869019388545276498454909857422985989194870645113870294172825898925405030512780001447735749774474345635194270494126374169889260685512730800771202666663639849143072601270955447487479957507519412732987244145017085290611753333210506993581731048996579428829674597351205447495959745574447090464188733244794435900792117624904991013261377976619295769886629773915650633112484347176892545400052602083513934441159936371749619033617021969859648542131797694768002223355081559643681044011372375065821257836303388426999282993543541954198652079000692099357433502971930434045718854461127498152028937878468883214761770835753708462354957029612642858188617526247562989341194170877597511653660746978074560663281636329589706396678630562558745704046733826016199133870422345013711003540895241672480057779894797895855901935618031861082924973345101287820076353780839456130577668644155010950697458782912606216184715325808572572576711989655217416183832305098189756814441960588072220092189408909087193648417745614027548511875158945266911265572752933353177061773129709396822653329730633836980940543324270149424604209652271812082681838431563561989425547781431388515761527494671084759476969465374524291538881000349677360272118617018044923063152055922542677283588636562372119260745618394772116821002964379284943737998618086580951867960637623618374663990410233111494201042969431889606659769935251609252834435364670672617257071022515657366994470980001219668980572602176753979845182596819641358310784592647303667167163158801196348846756821291972214395331159712265502031768703635576086514738103539940067282256050885677134177279946043062187855099220113088080790331770890424385993119379285780731918354033057203909151256456344261892605858193772259276088894708187285448324656864587059193065317842501758506668731469897535837059219775448243452631104355124556664062398247785535816201467887064585127557128527702751916638350864589459501806592218369048094656358270007759384810904142030830087648659075463776639515662777793014114831628479255020820252357720119162761603029955725855405838102557608463266480396608247346639927121456483864650816530608953563530516158065230999115598904974835104324619566487593733352940699859730519744862034452467132210851868536707831307709618211051578347141219521161655222719090442240211805924380115592121613491778034520228202566709957223628788747602044586197284049750333880660260506382497047586985592732843096851332061231329197139383530139339793822443367748554637019746793604212153726621681132310475389887856230032110053736799875361469955711490853851361195002770342833329485920302916028639416538501868759119448443530031196322341627673108926199924746357788883520472048208386309415116118421307331437282712524809994611206505750817979553912939931193154540411615504402202349244817276985483104612832912453951533414670294419761904681243724761066948841074224867583114965040937964042385392089280193957762778316346335022490121796056992387267630427601499318498260147575131704884730572705814679262247530271458230751250802212879710543066065344569609480073251758769767877313199878533980040720992158955775287422178482065074207732554675930464138573969769687483592218228870908899886652946429060099678768472303794683923072161430261583487955186320899295518214303536811713915513343039372869430593055689744338217518623167202373208255811920991843061546800316940437751224608075287572929525868974684023175004504909511921825673634452105271729525805494337470120714564743525400759610626572560374046516502664752306586710379152286171833600660912611015546699531263356764482057927953205272893438324660698497419543170815444686904265766424996612887332007601371717778534178768449533573016252412726894026558998294896660462971455842756951025734455487806650361045045145533328481797565050663914901826587449234708227154337309737041550349156694648599852015180482603198026148193658339681723198343486391065496066667012851815514847163595261548953835985349630451657901195126447399746997355205576913981851220873633115900335099566066967467169478843960304689398003067210395002664652226252269430439533948354790337647942286498343923219769052178296077396347003097653390512031049216182765947716646700668403335617653309531148459536669710076916410681028142029367700913299800359823118642441463584841159766760155014952674475217589099694587015552035957917808662387699438028714912293430182071471150154031620778526156817563295564788861765426024818027849954192986583983269979050105363903274399766917277268195322625208328536227204132892232321084312470949072364796486144344101351678885763818661602967765679880051373565822113214930618713024461063429871119231715182779884872355103243567741668726428184383741423373583029595214864271662775035071859855455378601627023580569689841613392371948664920439480422750930156531063345744041201168067594373280387074920212026437009022732584664556533276511212778518539078819544166638221302628145265260520111622834505783908631740597604846523118232498459259906736707906440678267964310379334116281256953912777921586553882983602433869678681720110177563046596569029687539418392886563827921227622952681379303732238510096557658837529173680147168141636440299065061418015551594765771818255967269463433066113655548011404406559920709817634011316870335034272323494399207534113067614857931732816004392543962128135144892878068734724974614918555374607704870850725528891385738665889249300804145926162538149459199412751762089387091972173455247112118303342760770060145923758285675021359564562014891552533162915772513642498725945928177703628752075291461742742900932025011094306328463700959335951291560347574623444230824992494577379773105680514070905720036277145622676186693423095815403127123721616573420408098299062941751869220664793234126445746348355098286256618785725276758903815856348338069193555008218933861705019183730218079298341643188547988401494748828538038466368682095204256080616623418590021703906907024821973190584579198018903433144524830871357465359090344632552787652783495418222461784502203342690999881721462899537047697202040168983821618456246290796006729252261761578868143710057359540473892047789156947591459185262051964121519422218539462876016036179341563363114539671930469360675899798412149411546633386415244229394738011684412223660354935835834164596899682981181108805256573019199171307906845665494111173763067803347775285567688966483766117772033874285363470290298235302292226338369608115881241547647451404939225827654082577988724884948746959493266061981656866589596901190680943060636460320973930730017728056543720794349222755475979826476388298746739265831062789389431563989330184521252361740087229944239702136175326232217340930636428044967353742638185706418668479639120419651425166234677112898350975477540488921538315844451965047606193395751231146698580974037451294968529902995213864196212393109583614145802504659321253913369741935405805188349588778039443447380684415667502298876809741987961134468708089031837195023332743531995033709875773134458194188493523838162913439761930959915697613028730646563242344166655711944171274763198934893077831475845725381881104247390391564305957132017144211198867100416928718570989081780743565595450339425716363501835874767765640284487075045452978707754087870277259237564384876462700593597356147835276485152132668132495934041561902775432141695758141580177709073961019606801765183934806725597664093708221241190197240536692843402005155688559427903118295276090052645550527723086985506412851940436291130314027075585238314906163652256924998913870158844163381857845518435120731902492768233112171537252789067950443575556414106960395101819930192430586418731284646552180062596411130136682856295204658222423668091649401100964107677279038503075536993382639559524208400441468488876569454678161542228432438945401127592772027090040738628276867625683837272497711567359015375477020133914206293021635570180024060348499709440394527497984907587273376967687323368325569173291096164723611627936114707884084537857321320245260188960645350470958815326537284264680867754278298325237355812881607942342492697709589542867587766568673490095558581267557109938355074125039822324666496582618609585707944681519176926469746384294220026845466119533940479465251098618813269685629764740489279893588458993445963565965240437349025435154434259314217913134554361151482026276342018849012293989090248921097679401573608588707821044036300869514261242037626091050741306293481083989300195479661229444084605701751263971271772885719382863086071131112219269427648630207312620464990135030481262993181927254095227341815996024735754552159202806054425933196053791087006262312232983633587337334881371665261712429161056953183299927065385638513092893269485355916381007487401394442139136502249947375833461439725223050160749967506149274120119032131161726614415874795508563040032881471964120116581695577114009804160778182247769676177893369116128445715170090501224241973206734546397141000859979446693150513775348042434460513018925911289002688570470725491538622658492880425269158387359700919483650172596669841256405681967190991076165039336359710296124563760048320885464268105206627981864225137751808801998213920269797754684869028168514698971150726255757708368428512504606274845976113602085762989248029868835236264632781423485951435576275774328937146544952598116896193783457392564358630436709345719484517455650923587859621053961284885903441386485748686820534520666079399070078386218969384781174113344753487604868602942833164819844931508463602398612976964411260931652802274905022187156717037626303349321105974426988270251997683683395214809803041655667923810466852059103324539533626178752893053644335506143606676387738870543970286942920074648758900059923308445536459134989193545534319535008701424945795399016128168331747417725622619355572360644779650244424342294363244668095044927554614206598925227333356679017146769612360884252686309705965633621206240157447212381447679191719701944157004633096147604512865385215188903634328330939006344415803114373842234313291508565919882780769275428382875136611301800323369900656187634759875768157876325408967626140411146214002140561152430376711961097384501987823963728012592531943154222455411320686295195290982422109074080602454525081004900010922426624518134892537804650444699774384798377609462528041212375971167295743807291076891782964559952936749387692935344201641500334256934580622681527643444898198808110926435801297292620964074906378441594693685780289625513371365560660406300910424810224904585775423478586444258043658519785111357833448433618672175053417945959654666148158033762125069220274935818847369226177533128403795578862516033999826124363763487472306853313040118278865706837574529353050136939802813927742857268845907911338027536573402648310815476788608606482894168724914293576614603967549835837548520253302071360463259511360462610243675271020133074359408948175893876076541038080392184735271358678770645820389271925235782504030711897235597317164157720259767228433415811004896870921445440963082110328275419532135302493200298567889724140443282095228293839201874582989010407855502109638435861637257778727224569176378268778514821953587467869208779537507342889305855773527504728283972710832744140719639538111972980338615797182995211457610856030634155711889851884234818116224157054787377702420841525731418702901350451868119038878630531112043827942933639041780942109683716280010272705279414974110389802563047861717692356953219242810614861484688812618026733924322192671447155569806413580341143637301561851141596754171140258231242725754951453927312241890706364199600248343398346218619415135869578456385646547100424942396624049815442838776605595037316692502060746442566240181593414745012818240480195420235188127183488477164088639636366231988018882840054713765253160739222945967322727910237907363414017562118093843754127285545435683531929542975501908422000046671085290976348174544103517099157429860608798697364832569595798213973248311849497374127841754279726556695137649122365717924612142389980812123020991677892272739453969800655075504167048967886315963562836540653679112290391139994824225328326981881181206426557590864936852995745096072322842610142521716935611720779910063628051587953610444423009997311642523463335214253890336792330786325848176564268397219506269638624660124020203336687402931255564949806939881127685848584624579027442439319470098285794266931601638600182696271959254071819073256406760203075887569620104133209877599260711099819458062980829770988938629248171197978994709846113230721951409677285602637150944025123927891938729306918108487515010987756015639816975448700126983888466578018123263639019464704571439090300476988748951722190615432694680674795488708430063177496093357354104926451487610004816788736074022018907106891571797618260011913688298860361457669544038115725818787382999718900818745725735611909439695408207466841492243722446807599288894332201179616401312228061866613333452538663599822369586431105480001721275155796390133010817815611747334658599812229299133330314340032089570612675714456923466585713887513582847488228054940958857493142931518398983738230622905585668432117343582154394512845755897161512263539281587826244848018472444987766609197485944245921560479625023534983558946185723101176919763705624405061136479003553255382485142856379903491705390715413475617736150730503283717763904479959145976380341851566123387275988130054273565052827950647753883095279290866559408000702627718484142267565610777779076683826693287413118814296851198641117145691946450331842624946759712717119819923138720430488569454722727022740491286931812835358848189926809492735360913333328748608613755957176230610771233845868278399242470251916869128617582985364868215439525820056139383705033147058915638114369081029910032401897778344337615906118848072396787372381454937066156519514674522967256591435253831555206828022148142617975144458810661250637999395817863911543780494615048648766623172920227086410915179293543316141387070217214205151479276142012342958342038185809762522655594576483753534787482177358979169969991690654265342563252950799750469484568330947913735220604363662922385683050553309837459674474640184637947695890985831145337631493571138068484088279048612443262863872868653334563273752619523380997934374442642173153074630398838736149327603813923252510603186334032397441088533228657836638430465286987934850543359608317148758400006785374317105774715397599784887919070694772074445149676382580587217358165512607868583933653753776489370769251632701267084785623963631819863061769910845443492903616423998889792553886083697692075886642336460875576497187941598186719805943118236384430161379801062482282316101679502771263424825875232821158108349395367266498475250166076907412926038847393500905158057165103362623154025919250367228671722053872555616539042355203327696115158471205354252169274672301832816558067781500260986159335915935145285986789526859979731003614733089746343353314106313304492608622323998073433259464388163733356341794420384770061949833389755231142601980124876675769670744133985820951489839538847848358865429484639055796825306307177096216345025379516163283089466966340528267007666996814054317582542048769814198643973163942459566481745280570764087971517009792140060682616064528597126292984930812712657745431201727101897764278411791812985262884979481830944533661764464434149321990624252717844393167471187628339697483269370471579573951700347063160810034683682644957875593805536366374053791813335990744527986781253397073192314541401814880978940867138813115649592833504590660854142078456425042324647306269479706586691776276861174388682567310356345899205626711258441473104373191804533794234298743549745747889957042586902277382762190967781899742234945253460585940273563822969299683165002411348839667739689540736406767285236905963613205284698946874707243308024173986591013414522866766586149706849159784287578580768024953802882967196551792123945482043412049025032208486527921412505255216242824787336243354859682319005237915328074985581055875382054683967136733891449142253626065364183433267033635064459401497709272637090105672014858024474718595809059864497951716679596172840002003080420122138543480764864516189475440212917006633241644902153304293035755778054198495971990622829168836295030770844189933467578780186260677292466104586315079249940458305776359024211880666724263958732824698816196671554587485577071011624312862998362078276178515294749803986743911791586621040389954543467618805592027456392043648264215058409360354409405960153569048752890310025454284762254434635299987688410688687599299595939984227265470404132194956482985130709672554196010094030090707159749021948052029971128140959134405673795831163414079761971166767842744230745618109340089216218591485881655566846072449495155215247525770592858709923874524300178338850599771339475012274507218451800731858649109822102750718238341920127618062702800897094110647881299698115911011297512044024364527967638253867310783997099008535880253201436064782590150789833594461693213302097871995148372974451707793568350286071382846742566330781978367603354375815092023563309753762913692910543746720276813179861624369343102406041702580194815097062283715708119540409811264206158398119877419824676586602497344328540673121553512133297522248675375692455788822500296989653848231539568639415171717879561132258940289640981816417844288805078708350173026992945730286058731915116133493280253527611596255869430307063808323765108599513143538451753276076301778199786274094468474567632909275626510135663747973277586293558258203551419418227359655247012989511496886864747846046326668718460519767925487263438344289444016256478633523523386958287610966088793326271926621613576642774252149543582816653640777279813433521667495410329046472286359388198060573163329237305611505308858449549778439014500752027992368773792800239189008645347461227547070588660489759143598336277222146108496653736584321388591514467106351423705567126017551603045952430887524535718324884378829870016274174505879225068280025047334033543074289842332144545850557543797361865397885385322375931524411415347111321508994016183759797314551137551427794076438928177629705469502058766100730406391381071308100482769269073541700264678516642766268752047090849688527494674122427374577636585572573143475463469620532922516560073249362107484019529967348281642524535351756795798037078637387625697424370582491931900778492734186131807894768259371026854449499862463877814219453995739079283096515848599936764635731674417113572711334112251857104162610316021323358514499714997801844981754538652300812068701081620955967151475300483144078136313741765665435849134633326450984873404313070267750616778356067406179563479003545419497819028711146554445811553000669094931359209773369306313961900767929541799010404582418880408528552924473150471601831438050969512039984389415240673633790885226125062270484173523132091342077944338692117520061758103367256072904564443258029855517981919534547906531434553180622880515652038318908480711130899218859727109711156518498162307794381115995937116951015100768569504004667881562678229620380250529496259588480444979258868359132409280474761689041748229434997606591073247832988303542632423020632817961371396162306504489832637231490969021023598438758064741250477516800239135043388485327592004464248574223797281939980472342632717997201351552832191944167303665767476218027964220998449713585174022993029835745640502318852156102629622910940921834741317903535133960010868045473084699849588043072328474728852824451361569873800306226383321003628858931018822390374501166359151202090928416944946454931829196353615009622883959699980134914205497697629983029056866510108330901342762577573295699624317291045875840666373611093290621688067517639253470427642380304887483235276956220432857627902169944490766599712784951322000285623079393132178734598188985914896674508554910182371932000978252822760519804289345106653107023753976796461500580993691495043402478930068082853718057193671448846238419033802035579112370523423620787837788560507113999642877256712051273651752383845903332900850818986406554957343603994076719136753326244572419210441769223218612128210960380309626440830509932981853211626733651738471118310420665561721516475556241045306779047289086565724464279983856700850501389747687521211277815392161981026765036643195559951590329408204530988921933824657805119743557391233803371331507089661617152995463608982058479818895827907869416950030566121985138638829941454083948662381159440842358409010982554338683147877999377097968480719868767356812000452508331206476738884714530151871002415800258166719452605341077396081921730001593402158573654143757343935587247622472264760143985185152842755789566258693592667780448071139319931555864568345183238552590858186153523836943069486462703867196411090378804108398936466355942675982491320580057353168787666279706509255258327389405306992844990906228011376558665290585771757913624970448549121515837694511189155136020194368359828301257714306124693387926489998259993764342119715396065774234491251500192359888005684496985291567842709542207719859006808618872454142735594020236369964002540758828397135985474672673244050184738527342545932093636914475986104530896578205500322442683598934734389957739742569717965169482615177626349103433920419241058178860134288537130794762983606793240489557488613410189889918674468045964404038056433532586501216385109327958247729220088148123005126133919172258679856165526989365534190300718254335370274007853085694515609229362353832747505075444669632271913028269411855875748654935323938055016106149220792379995200036943271993329264941035605634738219366973578751260214941554427265919619818329049023788227377903788279236255518045988738455470440380259642708562361151543002607600217427234208893986436446967766188905961331427855084860565062675650632001793419843863760236873023787406848453239927525453551289002678640299524328287763804092959817865729912576868876427937471651676258325587654091695997139446658069144820007296953543111256520409801049925374952961942923272173592092350716914471644392044789257980060862752732684458998565147527614774521448755526320564418959777660101003865267805891356442546134560272625285092543279066976390920522831591019090002987381421305187660539950427805712490136850384450854764917218687531717565553329946315481809703032884611531529432905574186311713004654292450141927239183847629710446403793612283709263244900594045370421687567827440369784417525449634178226271413235967586927967474401678264797916212643330224722884364994695255183178439967190213953091571860992084407029338219496014295767468770862643165070455653556872761177911029068879730715410559114479053935500290314151092869786463092862207213224227745443528658165306574168382441160053422464626267451455065436208748444213893623480433710501560114900548726628607942999588076135989329903807085872652109774825456022570039747188545814272976299234452927485543486636808859688677803537124967976095793238107104106452134659961514098398880948286867995687002195732217306671129856748749799530672960906221149971474182682860255108105563307646913946377199764424890708934036953418276664287627138445429865612169433078264848809083652605796569141806119113256572513988522609136582652360187575999617978514784554900779053463237159421034122847824807241704323709096683994494610522415340368186381618483170700035922291074940428951389972684232145176673314432073733510324833147653370388092699495389247554834542407353555249069297445715585864721830964528351026645699444830007064582007395289584047071412202127016000031138435250511620003868310854860998994291329202380325234274965292679562805520076708731342723724654470717964720580672765318865016421176740402978250451741443422046047618796534681612667448054443526030373802090298875909585190060233153524750237434222480887320125313656583814526349983665416406303082099449061514284951816360154682304531527091609526532986745161377250865361417276971115937378174933887657477019035754150748202439038984998729357959554220241057992474431683525874765806365946318518787939786429983414480392190365916865400262954797697664036924371314686189057031081046694793449667278097335170543619758566183785981891584263673957449829289376302653198363819730761115079040720035939400003234224198767327256892051778262461158902359524812572597015606240951367160492094902042355266338616312691617021533695366464570646333231376897267838308015726202129903503857916986147164577680042013265371443756116916131593286571133916725642739641598167634784943897907857752383604035747940489714891648500036430622536075426416131617809844315551488958388616283738936453622830596431249682785174103171383712824957409944492996436555194301064766839855707453914083400132696782140294880594527366135307649248583841041003387471479560909762384915765255517336869889100418854272574561222989715068628765090530076175624999025220074791363779165804887105854014347623894370095419319945833834042122317058289249270767685389176607241274471433607442323506288696338917332218331561523130725168647805887148427536577040149286479168410486594820934864570336993567640764055199144028324311745668991685940866936634097991754855915220306286255533633022437217872985437775190009354754213545341877912345247831824223481346482492916950711769861489915091701825881530537335866167324577373835740112151764850587176326624332275945853968424465043490037119300970685103690160596341320776723105531146952619742452201082409538991697981101927942363522546270995628681982319173789265613307763280094453926024769152650276879797988760207975994471895519740191327539112229734511488133045830277840664389588787395981222441349440473908485028255003465508096708959570363313188749719860793803433430237665334172660191963924478485714338702893555041374671150816243242604426816020291920984597651346592968100399698465199706493993505469532428184772355880691763877774453950440528943103088276457540486666669598947753862945530241403698357491170446559806619443461773126810812444343568281656406221301142462064061434353524041142982261039854842263534864642463391248920198117345918741106969671634294249096893904599486948948465027766302158425350725588600256459301734502400302539948736762891829712637867282202039442768450539997527213990797316394303390102497725631118575908246736452446643786269718614808685084702503380244121532059059806722960713826813197613075860715552761866143260718674427625336166331767914352476049037921095036552165648300054608610440047754013375540370419200588858401154716256078431999008290713847573640609825796115364727280584123000798453847122809140717452723211107984793449606208208424656349760268247141704358698893666433599669545110172380486333111715272707193732275394605253682312206171049451060646697191518539427086788654084346969026998276389360457452661232112884228316311212817833253969807977715667724668261303085039332839840450759247853319732305937233046514001743599389644616299501675875174768749856702067281878219713063965789477978797975547216531303782392957653626083279840725230634894874465419762826800536708632032202600805594023104817589602970009567575447380066528272919015320581614421403847720641448040141181265448224591355090514396143777537630813806308832568477599355711978625025994059089065939289328480226340580694750731856820236278350675028227699906508571812878936076666625523889735911147490048088645464184814251017520463058070703514810516948535895502627443231558854706690656360038279009515140073279862147206160469163909978503451539838480222744045602797661184052613716564568520137163869840252636798212389403334242254382008794990524200849008925962180555593511312121018489635240096649418832313169035935568647688295111444677422938396618847074912619738154935166942603165254833486061166165770350458761478099042637872805964493494204545763019867207349643174619641634350654608423313868599404865529234410551067984496761175824916844243842117914648130758939353241409813924215715236242820896398628167394727816988708145738915655694689308426142758052405381744264763634174072459667521960901005565375326021697856467237212581361560737300213489016864750180182309800914992305260351719842737987878176737553212824651292860345441827905330024626230661045193571177342151875780899479788950336148769890892747472314356167254857818215725821400189887713067904637700703004826602099058937199028559357078103867681808128465620368315841502573317928950811359102989706144696537673300287934236464961082233983758260625181495946261412244048063477390516135971835973930670070329462994031002960117922180125857514670627246691458739299213409240993013409561432152332927062019526091902297638302620828061143620562103087062402331640334291581801583019641912265732131133523271244398348537695895558773784596497953380292613903500934755163526413239020219632815760367242233720394665372217150866423327076682174041963306090021263807708934599373474466031408912227019073008468578431269789607789669345907968407159672811487683575211006511781552913146340741513939121377073169418613206194838025866193670131873754533048433506768095167257565059449215213212762422052329987647434224532082633393830189399955889897292934511588452051179962913351059102087883217617157268315351711667594288920803082807058406205154945360930891719916314996240147367549948506448900234696529967401257409968682563022326207314922338743218926938470832545758915143076338867120615775540970100807119756875566605566627828822039416997478487068001852511939996709132472316010096137090833088676524334563066482213869104827104330766199643454609467970736260736411403155198416669085203554412933416466803913869606347798677387470923451306093365652683555891367179074669041206194337847174808717566817986021901548085612929693733077176538143907676857212778033613484344278601657119193691082224513813539818253650962683416907037201594746757222154911757133654275628108970971779033281221438504843618294525808865700625101739652116481396613228609268194237444797888937605022836842388927394805365595017645915047610164578926294182766557240617466237495555922184244051233664647688635208499740781059668537610115034342636108419195369926749379286353637100644270403937834083683028008078855312288315813052474598478772198023402657365882922610158581386901820611781884555251215107605160536958849549389354537205656620943774503613632032435641921320165104423577774257955745754510342277979063518472158551077199361011128888277969888061314933294184875038961677330566332874494435321057021404555820780746090028607218333907357552746208301366864130599255406550476211975580950466969929631210373439370116912310148902246290678771455012522474325561311784584178493635897739030673028150268169057585026115960897785099628235539413407735189211203856108241396588568654046378151497685258236177521229851736511432661893533035780231904465750418712576345936609555683108339032129564744027118485924723880178764701943101439559465965548770273447137748865592774114451641098974646419371960927899100300846363421753762948924889131260193087259218764825713381221332506498614852060265076698075890872928613926248723042217446216814150928475750171477011837150976972370498228664872958344743331381325078637495937720460351117881909454208268282403982946783613163954010926423108085152906872674044934149778550067465843110426272877297879505766442765110404743967171743296325375880812481442828333908100178976745255982394785519576104656332552828217964136653166927158744838233061199180912247923575683658129657698704386533545285946430355845315222816588146072263070747472627608098673268664800036206978863300642485668922016181221807040635230496155174535882989946783614058418282628592298025975058090862392559592730984562149855428761749953623094680986576552043412665905827907059887943853968486836461374806927877460007126233689581414647974793200372236176653636906484307546335195728065280735755530668454731167318613110456719516875254878623047161395322751072574459937841229179163601619583914145275472237713755528109327665299432083519555753290605335911971132322301790457049417622864817425297360877014841486115493284102170435827489440207748094886221979976777570908366087689168980533917027630619304944585352941461816208884560394871313766982507971635303109844763016668206975519756791468727913876424347196561173530749648762941802340486295731525959624183439496863497154742292610579281519315093884135768464384667828753744211370085401231969566551105687491471400642072123960028399114147872068205287172019218621508091157600196326919810333375940087584347168436532367788887984177217391835684086452499983485443856350291146789845008880103832664544775872755749035434512812105075128948763015304017482357300780171692518875287720712305886925432352718239956367951595291336817827694987428023179373292370881283562152326207246784867916494978499198894538135787021233771566749649271619823113086282984726851728954233014279436087373148678102610267508950882425357010491325613102504584137579064298818698612125332705987750110706520740619114609507056947280067290794687510254442019745418772798649890551005916777345463515995597500164654929989478781599932701586606916839017691345737324973815320612743756060019247424147667950604640175790664089316696214878526941796190362450876241772734606459273593786208262018218524240455207316345576812309470355683917201883148113933813391883096990725836382903559453325957195093450312597855757458809779038988177984876595689171815429875847140657665562545021725671850477229040099671499203016281820147042729817389619311152172106115320643542248484276518148206279579330822705531858347773059256145776064824066059374900318565426940816079017270790078699356429087223472568339003589146235939850296475013340441718014090431156602204814467708678801518598078381102144693440705604374461665362217073082405811903497761486578154739066553367179919004967897957220958905070859395319606550426725327653104230238750678349396521758666300330902608532243089269788021127585254600091717337343976188138043784318809374195522475404686088773470310564430615962018572974529332953936669533548529131050894402224581798194087088132653755667064855586499681945408461813085927916491704406194052821549393842251760863076184876909358698130248058046179530351568319235287381182019761373595310863657141446600908675238057946870232391341436808389103766408760343962517694907561092325966467109622187085950159557556112893585681475891267615470292510956879761289863516659289650531322385120704016098164753669922140470255888383865038179719599555480491606169091921928531520861672459943070235693456133331761452807978765824594308188004476034570011226998972598653774417018847716542620732747135011440421708832565595054383750229879031564062390722353355177478715344105838235546669096568444091054108750554602983804739488842667562937580408276170745041896321263573502081745716890627517255623880097305133795954886781282334109578425508350095044544313279118104816305605818206216100092555500164687457109068030257716125784033357660147537619705848176528631531039205808261180788192804979571104167865463928130717209807118105909747957925757981284178247634647937890357810239518106458605005720291539917028046711584779254054360024876300549922982057087393797335489215261078937769442805993760889086005691363066956403735229420169443597643874946716564933883630398156738866238952906945928545596966857311342236734630309285328832769928089515220675475093412965291002723194150209415982478126715179745998325110241809783667148838527025882745321431368067671521317864523649999028224928948495794418700834567100584819005593554011165302131038051198061559795528989436601419077542612699000820004641865758817186754822060271999016667306984583288003944839474699195312966635644323479004709917366399659177001366359586655900950059026511497426785690989128514717066448196850349385126045319068514095151286917485239674424888270090445478888470182505983455769558037028017380697580074352626009778628951819127283739548109001836507122314253854946835522792307653390715684469849794540168580159696008962090563713480013224987378491548148323070009339489614838723934628424924006491041602823351561658762337126452423482382648135257333531747290120554360555776919146559263311724701752093462400963758570181791533737471103411297727521791912638899174982866134983885172657845208008413347924259067319496411446399232079024287858476293716613751797668769795788524683046965695636375218778120911361925133623006335368553110888343202965764614907718210851456692032024556561334026222413438030864829205131606260816866459327942246737422222534066126553642174063363612660357985708661306522809139991086895380549761204373931345530619764441137328377793926799906003318845440229932454709297113864812972121932059390256970601133613858459630654280125649690023390134456834110891554638448279652351149265346130196815625688765902283229061956420831971918288082625325308422716016559531077234761832759487834722355667445668860601710670841737501752292408287338463964355457221785192071839911913040829227872379608968753285648990807359455193966442046499713618508220987358939421399701998529580535290128711030514146028769479513571350347385228181814336655941419313268529265693209977239455663862848251338837129765948236301110173321509423002409809131858348354433379086890701365857077843484938252908012217895913434830953259508293489928917274069009695943213466241998293062645083778280343465354506128768409301849880133861390979116734078635465693126651338236556547526718788761358140079097374882762357109316412378728985602492692956117162325545891488733394686955097794907238906806559740203462237011521182535872692588384739413993025036562837109333486727872400141247633139768942689981675417511886917294837265514586180117624360760078436462577236245004078204830341838799554706510176172154447623119120642530608297913554414042437991843648442180627567555280788351703789309754066152444210710922493215671144785629857971177294934077789140185215450963696133206943643274386297450242470272105331096931621071947527728484390760534205102972794888979129692302780240631140361550714300938495190835744478855050108637390772866311232344991706180256660266369063266012438814444586107599744454609731740399141400123564995186976801884767180211190251661682814139507589563222447550935222387510514246341736556787471871668985506233498982593278650380588583628605055368921743871147779824691354790178980239876204150376769254147780958438177858088186565332162661245214283496323928234245977600322294020250086638128468995208173728277362083791211540027677053797696349830510335676028257146802100854350388010462546413261504075906581728708162244898867954505064654891780380784716427977618129636419383992256112683666566567073196707916576037887070407874582512766153966233775945219003730527535792844186336985825801771243647902724548104084622176909798707376808547626718014447921377716539647817083909444734353722698489072932351718657505693615628228271870132685802351644370732944918332838475645118309654120282881033366431660191144434777276040005674317408297252251247310524944530168223003063515485337267473874905037388490290685006507267861684605642575452337271987588555784103258549010528505527170737444885773608250462510989120317218709370725687159452360973730161344093411754880765507627633857451755522651034020067597525208489658844014185452082472231628638000747483771545877676885085423370226310415358829783991652727864497553734527540267574871813805464062606106792030541617760020209100399290919978438836011957489753184221689615816370841721628142325507606424343135706911908692333426893539632620522096155463139460868642750647247292398873081120134535567054997768089990309707468342299696175848464473125495404854912552592747649507371803100251540830319526326907403121578991354910031139695480886396955870643009217563629667101043471209604050803578276816465146547941286672455225836872823023561556175870990814517994089934177394343320148738103620024248436215247559101981103295256179796869391126883886912454416830652507379767573405488797641616731338627963482905664173845611950148168990926902154979641594308784123646738332628540718935538075555854805989279160042645596643375336263706610992885967745695534847455617561835818045410706062448141304389154344492824065764052717486764511363318657396922054804547365378051569067813956934392856806947389894337166852175998673654986903990822205743350693021971273767332542552469080965712432723201505001398888389203839037152767036652712405794982567506056831826509526467345775959554334084461905982642400811465296416028982103897012511100148313292274960531605411150936569858881282519939672322278957399626397157488596337959542912533869930619649036499865493520840690036544966696911779806435543572697025025647839229382549909828964153634877383243350835953690393691607724551537858893087273442141301889704889934330850489433198366343971006126717583614268764712337069844788481623574588484080214511226855834033663703253630421671966814666332781090083037486383161523322877382102024098693287643290933640715496411722875115676994300246176432829266152737256247957471256132345670301979127660318069260296724550338713625066734784249995615115764932364084117550436516507542710864310724178129502490529993242815554498210516744435860568282687197415492910910386304718599018651469100150805484236894815877178065379424356829181442557250837861911580445813015193313916558853121442750587353908005635689874703406032555134768404569796807302146876113820189883382419134381239640326716086334429846575333421751340652296093544772163388560942283634256371866311024982585415373900871976033645804353282708095594048693975381344751950241207052604617142306263789082621731046753106682753775898943854055814903194418219720665311536831471236949827286630327567420247410028347595792855455642302214179665591938432355804449470427359145344525105640553613484040226701726366735643821402135502609472918360074410384749417905879251837322269860390827847351308351624113913441118329706148477439064278984032702975277306285846158337915632508810947177605580748864804566156230140915838173553506963194617640375208162149475232510888631492725534332394440836830924677039549574420773317232031952678547150627496128658826996428430467715392441063984275861905786466943346839892632664428162208319607434757292621967586807407440547345685335831665964159405201448743698979407682380074319559499595594295868304313599392252714601171699205340565472688684342236542829635294140602678726184684788729277309604804143024322327715787193539785498865944868621593321418984258108543044292468232208886950642997849583934842778024668455574341431915563282170400537347186023091990428051822363611307692141573035876159852904265609830361957243501883326729363169700587293104032702144414703668487760712590535551283239510306971555065655689052086704348172958695103035270418781177051322265033130799517377471049047057034019019573515600986435273609645290429388391453514663521018141925304168699304122660298754519688647002623747262765261547367791624539289227848288902341596740311366990196326636415912295480110723680868555982388409021698957501085075269389594612785638718638077831013002665117192426936176696052976664048280626585285799958997548199317447626381025996337139998576211366536126126356491184957430310824969972767451477884991465594924843810507780241027645597526875278887552882333342211296995749464382041565730511180683995064273662049830253322034826281242769615918948864956858048501963357124262448078624333897435534447888616357467629398996203983024950143487510216076620761551613698286593640552400935045004007522118077524033403577293289858455342975116718251497528762506476668184820671095599953331972760374187742902290050424071274585552408971485832204784977439398262265377886661595295148725581306469844890717605783120034960024870100703813106734710802138704829975083827245717469735752654663324330782730075660106573767826648499786563883976085284588922321669774295195369453982070300742242472271603737226302353449636835861961882142394773114348554780825225699224136197909660406677003193016267630705174203844823787980093668915260131639834416754113629704550888497312885679855142671351491128206238296728081431160023922998350867359841575460848519927807273190202607946724570933121452883372159966854272939834791160510472504630538758127775437809566181372796627994865641560538920074500041889913379389882966011146470469805906664173764635809187690311255748485118101117729459398908609166573580455527897801631381054319193304639808330195396177385445156941672520791338806614642994713809522274536446196259113116474186189854347992917740766178075374168580737332606074857363289587007996343027549685913326703210839816900374730704832737107211538321901595003852708794602864396352545822381168943064589606169555433133782281986261478463505726101211672993045347938927122906645374961802684596352641522418978599263805431256378830133726617055792276089020663411932144768969464694127839506453871011008713907625822565478880760562267431139230900319795197566271379122182050335449385369936767324326880004840327074588857077834311633624956357939138462233913977219984224816963235932185490568408631809417580332805867548163262979086184981721709722369696379634729888839631465165774899342638694378095722487874737736446069750259295466740340881189670383683480763011884105056371228688278929026240703235110829964269332819977116332121769034027657463938590666717605578491868129263262330390271642976596657673929880533685072042763052272007147431867099407785502981192750758806666575276620060594170589397604204259341136092454982763313527103379164892526201474832950522146657360710388840497051336087876053164721915971668987779946562627841906047351003630884703813582403422613132226913430267751662198821245530904930365278897024400799189961454237221823887940863959230870234906512315594213713117582407996374885502568260321760414378891915080985589401254313622807985917770886927479953622405013578146187308120936937212209249580185288458435749250330256676017739282167107878935502100401785571805719830527138685092072024520929761968991138148034149048911022699361249459771032139998628248521505527130735000941629974632213339037910537735164004666660729607163334368744221500859917676289079034361203129422110258482642355921438133724018257250768785223377428855118689638990935316450878030325263819185892892333640188954327985126492774955008192828732729608865782766161874547129706082012740433255873486087044867838085977369731244062589917308638534939589859299738907489913998098629195625580038432797588362828159499370395545363594081327380551735253040235724077704851414340856510419765658106602563426558327958615961093181355113184873317576033869675535086907845399847651223467083791682154019138102045248639364001332711059850265602104013225028119336241874607061525934018443028820721762975408866231269370882665613428277852011132685401564654521397705200718903036617391767807700565148685162516626673449270797531174806520304807534843811424269109013342962063131815837309519401344481608225777794139917017643015605915880836893092699651482001457441739720227177440347757332175391872303880884131766152290334355435929053695783184200986061011337561587398323005151252765191206085430183126266002375975948328534251487638226985574167722794970504305111677847148898713200137798032054781993179492676268682759536341388688279028433080162818566284800915098565642895812853379728295838852365486588601479235746325081534382464560434213143491517230194675372734419653392865243755827691822255880147733395334979068718600380156332344172238337281929568325980518059657479982166175260301556068223536244959875599950549719903580489370873841661378793639799053243542754874438279456389857872925604849374609564061923174527554881086348904971796504290289049771184324420255153030685204193543023335681784807947660875905635415859260265335963129319695714496807837719674076706344503098531350481938597777027489020030423832154575384584731410824374851478291444752677864741451894541616008397586928646430988234374987932315164386653858500248001094151938924721640098798075589785733194940054134659349228085854122941402165564416115527508938968412108260054065007438132808340426325281459856970706368269252571905280219655004791413792803150212291070177841064284568557854748060619599582274340651792868274136044351869837507741608486310150292430384696389275632317706966874843629838867174095558841303777540540217688273443030756263180768531518901293616187564297328919271431170101895371304631677324322932078141724620430731434202936459256312569535074109138378077591578990620627019627483335994652663567192243749724270921922329452574039956406257065715669489855184072222450141687780342446278136692821910024587208679457337002380689081240246364974289363347659509607711005159129899103686048480010762192895368675940700506294947179729425782355062700814115064392911887544866057436811458931772470588854789603060966866087363272342762923596698927950910671265479051545984855724164149613876761453355931949353601848673441774354893872006364643474700964280463251490819618688673660771932002382466505959276982522595297819769518450079661419975332843451052262562612246745288502862986412986761663830323578587832718396533641798770228523596205537931826694739636720875062360900203276195809405380058969828483482709326953836629134399108936236775776640589602405004813769470966292726717753007231345085454399367402218581802564594033389886705180602344307250818087162711159551031890234961961366104422109847456302656184310342260235568177428668685606937999489379957754751564032082524312872629767751114432318811011361806022493697059054577325951059378962669398441496348282818498671159807543082717100456037622210840857031510209617859359551240165104836165871067241730881676004425657374441791883125078485530355351831319581325742364680429479061493405115064851657248749050351914596473951783185334522470453390539319177292019999366100023284961261040091885839359242227243322313560768980279070156953868074785879702033053539871307808370189197132121806707538227171495919618201148577796980264980270317637774556087780047839351161504929753633356444080704560406506330829562882105286772520817255833796913555262491088333929534708386408601198289064227043241530923514178279699404411529420219720973550904018715915821973397650860834572006242586046497373735958174481940150961788629414685804685263268482095071607730978480180275176845053215132894677176459799672752697131826252172401271953659668006966221961675731309956171893614972812349665092055252314443053825848706636683937664808575679926427193896829377048475352823754595119153555566633231317784678443630437644635605246002905916112843571290797482777057093405321494805150144999876735995734731858178868873056598916888591540120010270499410071821959951546949964382707759080351509403462661988894236767946869317372213058288722655500223638036982920670819895829114124295257335350408729619491823388193094769179178708566456448382918561850823532920867019881411248503415134216220854989281096353998862862931317055517572725626519025576519426109655764003695360844543745310357503993155265627297911368556671913879291636058798917430370082175637562277966103770416626075614468721360204510238868052411868236468215278617802385817350146869680757772397539567745498555040458311385639101997606292532487047811598259217268624665803819719999037585457918459612872762486455191450029289562956998648889598008792230126545255115393232010903130963094818245626948158997395287248050666744726565540136341401520923856778068398375043927847639382569554159523336563593166958040946435323830689155998637447339245025430718407904432159643258121237858617153622774598177943405299418348947865298661731309236017753833714700150232111824073713212460347566398623354905431902966559373612429172518029658242967557145170033296930878638979897856459617584178583960631333875335499805607762592943963758548215342745672263861380096930163090523136001746369200421829720360546031212422942047177432367170768177820683115656044974774951991174682323596960767327816005599780290678152688161563717985593539489518685524544927607438501684019397527332203153438810313086875829491968371116432610535817129696263907657100010399946071183835100194414145531407565223317968615803073094661643879978345816445500802176873099661840730503329220276066478801786087415362921952865624953435586685463982257410464621783318431281982310921266042257200966508624642832612426688029152785037219146769572192936899791049365560544255417530080986310175985197869587607910342196982840208310765806109283650612859067118913567830984319748467854650590610279871454080280489295894573408108176217321793686031626390884020363508247148825063381536766495164643846932135649576220370859794852689177300733887002128412461368989111693898231558392542865071083402123421230025726132569772226939549972127797632076567871825492577899145196285625488489208533093382388428571738994889775452632895073046299825104169886110558266755715047444096615878613663968502740517262912463146234565459237663153254757431979798006640395259412854361402417277991272366978964513827699601662381813106841797420021732170149478909513693643276178744031393026634826960190026069760745250488219534199809373517087699024948253913999384280883506115187910036456777389706576725922527234864935776241749112496809862526270706295782626804117152270814821040730164697988532240480745764178074471178018570034634742428040271808778969823547229816890335963467054186367549145010632217237837808164447711804784903375756223041600885914118437329976081119724219352735364681679536016811115019110142616448600480370414809557852250740947670351000166976615333317575107958727277063342931984258478300445901139102759899959078017383560008770850735643765116467610661755227799007274419550747146847675426020001649436004066910431718972377737919695766575581762881965111755533011017017095042677963690405826284505098011924568908982430951685816118631141603837068556936655977040586824702121424559948315988285277798309142069224591998344047947975669689308424341122239294678657850167204820275016449455300671388171320385932666371061699638441352755026113573239980867100915578592174340740491037666027113095857647439704057515725897868098707780206326306930850266281563855374011806061872339824770248234907710784836057733392670173571825999373430592888177461461738616184359323395573269735629242211397544064209691655927436984656990004666274964282894491636124243690725131247485073455658961188771659299990460276125336830147101119568067360518476227230876231441240184344690314850989699704212537648927321318606028650043850207650127166357299128378599296237486675201822216141300917831363561942285437852185236725899216455274415470075099130981863069018231127901457748096901741111222366894671444742631904304210539806234676325776767033958670440872253325499449712561436011878855076276239956915786193694780027241972239499047442252615468431254469522683726009520762951501057246482260223120783009984601295521314061000335719113772865512524504448672002406968509197046717584910389397350061954434214644132890054668072402604711531486562679832739586538037717809311530459941927928615022538372019733824278712823443655040728741583605399141447354256640894545022538487708297404854026679822978308524888049266761424952075571821279528673388217767068425949738581983614659567696704511901867176316036905141731999491984685314517032331027529223743474247365216926104739750266721143772823425624258196811397579721598093390468071653433395987038102768092184217336576989993807005375808979756927393874801973981783207251062688212872750597667463744626970210114774806870570876635959273680062031781144960319505871816235332244324167927557742207659062410992739584391348119036725807263206759401491220323402252066631078738548623297532238624006023029815808342824533844803853200694501798852555093176650600937548133681743200904862624246209560790982335384165419231301701815202423012018515044423390180465985544168593994979826212360990796848925404062052056461138329724409324923389010243241904349157531552553877417776812804169934155926649331290368871890531162222452168127176991818284883962657341829449676159090164679764944598765946278331233362519504151715300895134211499524937461511774791164486944857811173374674586031335314304988906150135811683796073134496312047505200032651287251928816668810582315055619284489056550765132442615958596194387564092583832500876796715542789696563159355277162811822232842255011394126521254618291091831710717837024988979323187697127325338853616242721441183282110746746209354669081489895576615222622780631444397486775482793966127191676128571615646987696555367516388372558560157279343054403330718420790676079179202878856024659482550329900177010724746490824129149269372610979262402712803161488740601309248415197069483723877257358750752857041752260433862997900825546669844275408642369149854180338198903205997704286976937236820865635476007324468795391968492211837773668117955661754599186092448368352453470485110463778684627997685554492311964168907609916274016304475102773883664364631527989645267908970098973797227437742375693281479777258863183519380017241024970897997790142895875701761361563586405965132459322360681985683967464479125792374214432815098757172839214807822140411811017740854385084397423785613056306671480058417820264825216668846189428383452610157009231886416076891042295240671725061750190213268663208667714678338467041206136503707549482442345124004548962641268115126150338700819674100546626658237206004417023480593323223044427576488997653891491481141873480873617250660428386677246883940042727112415926404358884537225515943016379199888655443351965173490553273582406056275937762064536835329939193331790674455989142547006915489130085063880811379967972534701790536716206165423417651775141817128944920303792480129605814086759400421342265796184260556280473871347683811350107501816888273573971946383997953597978577407277044183359530304192297328631019879536021994676726195556721813645448609424207894695654092460062880476265528363478751552104700043020381613222433129394865861472418123301218768195274347935541916534676729702994279658294324236949424184080172951756525495533100202442905391943460688370863538422571116014675309854010102007110511871773157548224649557855619210042507327472001588049345595205628262670065517627294453525705060112228980773448435836992500394314707066229572342306605053473190029260509285130258923534346499768561563633199853413914496395838212687960170707931767825364073938676014577050709415722465642861254855399410748871216246475785846101782758129471494187290167583564833272602355728761028744195143007588886209856232433334725349145007957413502028073904036897330158705211056644111221755101280745047967582715743548684885899928678807607596838338328351355070997347389332278553067984634409917406710109382406558798419119769711519397371355495014762074777025332340768903289746053408168189760709170726973955240208375537634912454254244745744287868788147096424764231208336520510595209876208336751793626318353614801950850415386007936400830293328483843313350994729347110199393755097395966841817549657792268170933882059406562990432833183248339149321638786471468948200683798829551282005731990872731509783097275744726505612169456579826134104585241120765325421471827902314051589594977375112834070411913933455225172372190596211467409282075246448281774579867171454735736814882343292860328417878074112184429690715975570319890472383020534723176573789020937322604253232993899920570225375633424394794919003837025874688883422772225723083342810015268981990521701758945752117884706922296443255342228020329254588266825413159293058177879249927350499857781661580744001314964857777493515207938520982038646715813766514599858045120639864325462024365799912346056894824855303408713869706390672903765822411479879421544367160204961236352321873636894108942078160798929499672113414561196429210139557088305295420568954943626596381862857041533819274172778181417249447963980142864506873743462451859840894125793618189890875183953996637017976728165726706609404239787937160061418088413162413367481185489621300473565104988006327616540340451521170159929424174310824858786481189609387235598723083088345289962358989410996042093013751766907678512039553405582116072320481351742309192510994208191714416163396709560165583468439758338445318101426646166606799974498589408387514441918411713443803084358605942771374391668064591808747952061361812803535474195956893328325896580873400542599046105544339031878443508449170337174232232301483991349904474881421786640048988748977443489943090226618667926200287533999437600396173830170402207942818847256793274916394127734328906698012998500582053092382703090482666676818663908686984804716114244298450406124814653990369693281141730844177091114741469212100780283820445621120704848845110988725301346843674805745117690445607240221084366263421101507925427574200955232354895947213689271514620285988719679452010007852442904040982949504462167674927919954797826147591249207567338421787056037975903709084948780074734904240080135517931417254063566610912307039706955497786330390206782859676838161820171626206477925629428496328100901293823470500956719706372060047086109414678574795859833789444954838547360794654213496093942219502042920566787053285982761767091268488030562743094966110704752312648285069228405876549674257683893174240920932970943653229554944075330100136921605315971900451057896881185569678358494150661857918027160155625345463266982032669501790440431534923075815605546944441216584222680869035632307729246610358411600034006115463758513085946092360597708622768326728013919831146273605027189317135434917076832315417170242291461004211797145819648158682352274669679273598688252083475572733486433074564637688851798497138772183164508288022336931518858617632395297281600882829923569200620524929693375516609934786224847198222518558222743519352880951424740694196815174835726208205137172377635248129977039276935376954774342028678121256008243271755891283278375781018941769963642502163750161489536410927070147337866408957756655454351943719456306785056943393594213498547731422456751993854698418356687617583732904180020501605661519692136984021420958949975364511992246374645276772738876308828033502401960911556115985673668738134896190210129012467266513606604518368178740449616769515846814368028460851700067816799738442889114900468051645725430807006657124724826190998479806103233781438668025309414537057133407752579273870947372222678149215877463109739171962250480566042575098910148316657218743225429518243382459805969271100353087394981104073950715959529583443067675474062537119683836533707033301165093201277741312999589019126998803921902283039866354728763340416655331679540010699803332650334991068087683220947719724459907798932806172178081667833068649596738543230463450624777526945502177229653934570291002277172623323587355039639407896944307172326147121270183655771849537118564146562537985412225229733414920808821516091682274523077920449418488509619496892583898249376980659048961881410077466933188079585003940892378174105687651554244355344408128398348768553376030568462873809079476359050451696105187381283014918169358195231144421368808259920775928640121120458207125767343770557718156597130191173332443461322230049455758312475259230983081036035247933916686678286920387316612683624728449139801705476905872113160877901898089837483615966197963393389161100501137539329018434777955499636927396586902727201615260792143581917096720950257736745179791560670798755291435050350559475656694162365579284381401266350363600676310972231365356421426950903427096133773290823179113420353257116706903508420212066180389250344082290884404587473744327512597482771137661803468980227588807276887279020629831763531640199208087123639230706442813005267236999996773121848813011135798799657093464510515062946014059341984731881743338246279577638632176419936765246669164896456599159550579840680633710985198376001731596165025800948888274286236954559027055616537536498671821680383408592375411614356956489718528241623678822884684788944357559019748348942323607517003980708181242053183643200680201983257083352531005059509122736274959599864164044881628545120564045361719815376957921290405975095476756917368368902425504571887691589156453903904426517787661094891666717848023836710275089807821708260829548538030274572931540886882467415119826914588774015176215236948578981169521692140139342281278635857350537611464035295225281670608997413971557351651524433959038453890840450949625699412630004868593469559682715336416644267673390147832615345069911351888638182056197756833512669713711951798271366438736042909438030383974951003171497642150184163262568160645196429446062059742515186571356578429991417436862604843133759104154270669422770568561940534051097366263583071050915000775105511719309257973317857354143385151672460683877841005269326339593816009660723760691675151845155577854825393484267415796049229444232808839030817888029138487669029213274087429129743162888988647364710889349708719507533256762813755142968854247620621705271778539710767946356338137137308405917955647339045138827332047416248978435326918714541963685637599185315606535875801654929559824723946117249318048133512320920902208790169148068881170441018919961131782550304232796369122972999256446543603619657958860522480725424596278643418893077691870098050410546532827227151994730498900976084746390598761108115458426728913812751619243434624021724062078875391352742940401257289912464526256957251961379678852174964652207895953783987716839498487006885375480769556661913668313723894497870539632805190792952169316557989754565883183927927765981063061704375216149075781318109881793474880748437629994047068031390064999314397223103727149841968379042542197298989149495670468398618242221698442112599132832356469019990894570568931135183466895379916426405845394309861736441383847539764517373058086803903515820332053020898390003705543476996436847878139998060082200467413383362577611709220161590982378577372161169404078453869751451458771957867919589321101607953265853345166164332322534166025764515441317520537450198502324460234287222135174744145262701651466006363880670907367207228097571244364678023689876768254548006360661211459490164995090070500317706541100125746168578586411395669214511525742198698377887584132294415368393594393765213608506508886198554332381840353630630068518393493332286783997558560501362676000040765849956242962567564519584423274120290371737188315234276033663648429268816918564411788299816795093570064067440964879665987919091001500334490030089758491250908212366218841363980651136048012648820256485475932382838551843276089088928311113679910814448891350640286000101939561345152842095848134403137967013665155704450856174790005853833310329364738620859438804960486233564800045114900260278617270484779021007370528642476837158744832658900484318621732444425917273831415475437109227156570575313519450776844342289209544305663295761916725947155612809094081830003228773662060089796708668963436061400337011263060686080612592160789892152368079945287970535148296108186220461703446420346866013064899538079662213136362209344240041543052727719079106913033197689334372838873681289830930832066990461044390404134585999854180968060454266736108105507431276565184951737163757563474358387562244948738278421126464759563034700790774922159669163788753042319487391084385594291020881048888510164870598826854977701707493275443606755470401471480243411617272120994468253008839085522228566501729612282813279744185798927298228441716920703354176300341063415287724038101678302290615162492441913909732502699609956229661113470763119105810502887806002811699816600951022022915329552909294922185876469790921821917952216280921655230405211138352106868347780795747930662115376338671494960060778931257843040257558391736030260346084457282950371467483794457509977574361603775718344803703488293420166915937604031578690374065136285683130354389716517537734905671249688974603080333662184745695830428405692899757442525676289670339794235594827141974277859886376104672876403816669291981084409070049705348883345501133582035652323463840484862272344006778990067713751033953927349300456150744792006968859234387174046696051776464333940395561292027301309604643283572178705400323879051025850135353180265970039056545256670121601456708174352129601920345193996506168590410850020252608919827986582546135812531887825397193185027091611159602445652009317439689081968613213972966467389370536110247500335453699885033204562416068043235607550766594365119432443556962433955379570374139811650874399329801755311615248547356098107423427727882885644390730179909849304301349778184366065071563548860789513511601437969503203673579816300522732766353220703074948210314243968381446889699998945292891582859747089044249738708505370842284740084838065151364819279442140616618294597187785319399557403733629721704359171756278345713522141172174069346350308495960376239003987202091546028946238826241815363038887584523917207761100371167140124262374169455363804463456765338549065571436645504493984079877656666178638838193492337166524330455333984050981315487099554125521094673509603018151914710239677930143866816912899683205447254028218719827444622131747342417118109944105700878914483159464544591233702284914695349574161230125072570651863406817656219006241284130834800647839958620174760397284320456325600872849948946086826517222991897981469418018547221125794230765652121489735140532691001226214085400751520694507842822770016877869421308327103545878092127311861190251210564586048807031313979844542191966579004069955527702642011390730524542773102990080357208880276123218878935475472080807551791948628823673740844556699498656975591782125363614266140832097278080697861727997440263090742912852626515682889770425852426390643818280178145168039814656909435917766810985316341305773862265955770373589354560255444622097888010494585493737016463479752677838684147660370083206113998845249370685188462563537632508242260848246125866031311749969660985162596853543678542376358375275028661448706291301166279472564910205710635259001151194190362697328742762962112747602244363915550240231292175865853479812208311137672214129054706114165380927565034385704618787417903026703430250385508989843498944373066398274223468596582147339247549805439208665895934785197147299318825200186249262693727427185628884954465343143027704804033133998242616917789624795184807869497136398151558853421693423152619597074916022207098563276859727447878819498867098064639594228862266912676041689390011426251149201847394230391264885015420845242087730518896665219480411331115041256107288733092797644578085224224842892363685096853789595930772599166860703313727224452003028913767358178982411584408396529221169066611569379220779578211582658663871160884691013122072299254514993300805986215453922653357423591319078483446380113282405760538938866422250337497471206082843605432072666200458104418917693452840647937367557220649856284946471104013847043178019428852473938789014736720945740978081219803613732415104991201956441463244672729235711258479290166103244931336062056703248449403940043123628606564857929015208861383010768102159890753975952030961556422002456013350732924959697018565417468738564644891043019124807084884657445296444354846074791171723863718667514651801317425624250925203671151705662148316566763281772489988376386792159813172062959721300154358214596777811911816378752051301812677025998229698723648491569621065778308570314354918266779393139170967438539756906771377310600430418751097354585202083743818640193743858342835153029651795624120909871157039345007427535502753268764960388702220492214946332222661187120756619720451375694823754333882672523425986749018507790041496905395026336340903759670307310969133432286744189338489305391396885916088250721858831989342160308502904566602276756876910520910795643414332802472857392689809158892766637801567242932498553924884398120252630494451485551494828618480122064155962550858834978677735331643613115001253201126488927979584926915908601545040798889558997613046746861972601596702071867128130719346176648375724218099156483011659390778922560343556446888003583743857355662755012147791210041071068861996224077616171176740959219438712000596466590251423755739482784891565818550416674195394379804059424205497782839874876171910776960483708666124621032828012962393278937806324854543131759107435339688507287324595932560693593697777491415441857701605767006751769853311865827126450015508399602571262881093772717014201028158836138933182251992523920723536804397901630122664084745596776829968661771905387016883005924152431689280513295502688148371110837874937782101871447809292280594157994099204061537763144044689948171681359306532085147497922940881642087894817612288367666501717562610240549973707108724665551711527644017689687652757820794105595341148957510117592336460172658547620670157601291742079098201639081649213770728752839994936631394843807909057855481102852491438101397871487616144353942468663033709365431483748109609925227133356879933293494872170913689568249028012936138488261834545922329453778551725244069109361972570838591055473795640850497064218537814737153624732892224330514973073668467143175709786028359802440003305616366765223573892955843095487271656095350204483654688356382184366967943395712992000555840950431712545989681939139567177618945750844416179989753546733912914157567588923348815780568833180927293028192976883323837721121887980004576078753133345616267167101532483017321726597765291623505236180712532625969725052604731020963165385381276435015165999128294212147357065173446663156543922265780691737097161055166134033860243712751664493203560191229763568715098260715036600231213767673000289286719444263724852674978803276845633824713399892321441235900058063431799636068779371490011263753257635215723332875140065924977005795699312296576491785269927941750534228214228104395239165508149390870041911805560703472063480712199827903179006132650673763263177712579964931673513523549672795162127685427238125561674055338769470117330791697063203721652540769693437158400723153602750997516588913540507381966180134355701203648622633940615326279520678216445123438832899482974554600113165585638686294342768055646663478067757007398457674281392446616009476898640938883687758286089633159810747103945489928868846765665513152832021569342528471534391560779002104989856925411743268190357299379104587047506838295665546401272919368573081594374556380705426753467949800473686251627256815559495662174671194734145955975798188137558964022887863481536538286683962614172440218888878504271740455271154223148006548510012366018839217016753715107272367224851653665656522422993982509188540346931769759070394097874299726805277697225560596094859355528313802780435457516556639203406176651541126976193233227675921047115275298385301012246309339575172413256052895489684178918704782319788688390811422996423385440651343347254265139930187713455709331761857489741081584752874598621214066227142773753531158975025344464185770705429995745331145344103202237727460676966464271836439223957372840893531924037246353250184206635292197899543459622589456664679879735722584291283834537575947693081027338073320908558671427859126072219823172791090742404637186258781277101765994401629884682384938560159855956854337727208838115708145962328012429908344681529540935145636004289807260306561214782335789747826345673408186080318289866899979745645283955987473590965673715621992771389212070478559509916002628772351530623209755794234508733783499138609832907451753972828229649152026581179832613049498227584185293460862688597783556283644620302368817952720577662924237027676067395058046849574914659256222691134899569985402328302196355170886953909419605816596644920733667601678224523006648985220007175518999583420393685169716012319029194526212235983742323876653205770781322973324146429310979584445124458825455872667010226103523682777031092608967958565466669575686231584353468908912095091031378837416606426354769796761018029788171702955620742568943836168092113257860757762119306034565262514769258134955368251178508609769784439278197301466077952393872403852009526402963055673642235738478867885994020977142520905390601663273775557282027880898372154412647107033387374019298041678164836529615473737407100056033480745754016484039013696645068237607259837547727540312483004278297391318523693764824915435354674934220524400327550699946946751696309635386262705404916637604145582704313748711047948665308737181634528789433623250746267816028409990476691213432483255338354859267267436861406678396268131156369277465087964853369172387840812810766297084452233463266407407315268508902247753523801336163030638543025283205631082894215623265224731418094442366059775715862410433354054879061029861795238072819287965710438780027388429572405119416086709121062984071869668081576229572873077963485732468612168478050407951726661907118947293493173571223103496349803731419084520131890374779493623420939721374847231326515966614909261061765586442489473849879082768254103666159103134148696648451882146462454748551800231269399150494614478520014077823302147872522504590429623792390030545280250977816373243931454819018221711975105400158003622836901887576068684393070264981693755779513942457029766431892230515877768626489367226170344033518249248087654793016714912160277143189104291555436563842759755662268253878103917418500446776447533730029824033864317243121861884034450298637422497376420323778561296098296360783384442838107350810657034451250177820736566143721621359660486594312257893757867501458098312342888010157729255304145183339453839831699882428304367610514779267554454107277508045649237893495528696643531053233697135201351014140706618237098156451763489272005605922667402397459540582516956967170896788759920170561324977493334348812349907045988618630253071674832170987777622848507959125413906432870615637314043337346802334486293702174174141212895965468359912770337908283942761929180056098437015298487292882264672451075295833023316700963938677267937242660687796764854291999983333800596250188469219972773499109690763500611994863344278866585327247095227300656049339469228793283152025749412710256982401183587454175007873566097160640767175111556630111861264696087126444933527894085848597139126282207726834979636645048168425148716370082357543692385787315133866568084990572785798837261962955600653810963619515264482400638309681532757120071188747709028952591627493928879195902597566253436675509340577205219966880035039758977754847042393018378856050591854066231858798679634643808367458579768423992919345755579629088732004939227779205985231378537136213546657540755740283566944159156552881065992765039629517491428683839205649171645742729888853638410428838581327966379817996062336882129460720560955000630079741513878264004366065682446126040006681921278476265605544200679049605578086599042388630641632937051092411502397095553323042556972052929734896482885622519128115534036000761353072662281282329291784968430975699840813547286980733030941637151385091253614749271592838583814138512834533230693320282499468378232761666884260015325720966960363034471357696379578249145469490900284404341380463713000239863073819115198838932246048658340031640904400665717091695867689450328408568894352100530253024954520785109444084352678603415880124319776145523947888099932945697099162380374244657269865996168738781477009516082896530916120311920225296858837551932242777791952399648904725483236326490468138532330750340111178604654034033710365919995162287097172512657862446197688769562959283087832487418142159466616977330581420389706643039486200025336935252121115684619403490346040725429866298009237196157541803525940539649396248047402863166903606530385332765636338839669011405671147583950872109031669531119161956429806415080818863638703944197232683535178453011781915206290234052249105558422202796881684549726719976544477022200182932070468663263706231137514459074539828052436199381859707017021371654668571240710769997028641960039416968702499103246135642853612326724900230899737158036105523894657459526091987067191137974812924882935512051913701419348687053477849979660035666955095104528630777149120998137998747835556041089862511622025566890200610979684693013039206070499601866995340618149508497828865263108603720108345594732460819726398728752657168475433988681227279894442004823949158074856547503129902818447440642902091405506993566054824408672548396503907712749970973072537090675440580253744475112217220441494773918269661681835989468227032468384805441322348997075059875818146659498856258077461231490835510693768938527495065154417791427592041725256154100862235597583021566222922836142356979712916969137069007029624310348009833922882223149052212182065708661396254749451903810747330402677540681860367479020104311250371257910304234521149217285126873542629429460173664598227511022290519437669967903808984143729328090010884600848169467576982431361128779263249305026606912465514095207319164383390516002899280256807451786560171890119183923546182843058692002283664310706608637961119610976427178055886041844551005869649688325591668560859432037954350355522100448194803483424852791818102685214131475484188212809152333571534247687149909674602646187533551228509220690202666658126246540110133801055127443691728654420848485072842310571946666177454466045710270272656257490678163013498562752084538107599160277056474412603137951520733134103423754164241222218712849627161568479513385605189540486135182939931099404788672525267276511745888437230427559310418359920023666089393894659267155130145671681021745290013804568985104362936150776150448489626739912662035530635729594009904379393116586147528159921728910260264434025700313124837613021627168424601241499172500192375748419606946582267017390815028015213081547723370854157417635819317388268077568882074139750012027121553191274335153994628621210020999412039287904368763753655087989994209959877424009845757244977500293297736420583486521089394063093977506664808579957801275895626806650977112140212415703798780731000426679075982146843520392220850795754950497336036020061618161479519661404982461572944379628144014277514431571705922920085774365187079572144258515326607430008557829210175439399664149353830101908411040186970573208746601609060801085204141524823557168382492721978474233517021792206469292529456919737711606276541830088295492107963689476805093194093931923522880499954807939254569094729413534474473939754474171018748399317711588928763302814799833150277179185143911565353183845650809389814105526822845749747660688621002192905860114004964001939449587455263305581130519500047046952339855922384427948268225155199140969188382542617156103467205854810983387472820863654226666500501029526777626893113885555146781294319505171891742599189112888868965493417523771172062277231686816436119483709089535416835169838189854335514671841536469322184517324510067064678929191250153413605101666232398037098264552261275714652981057877128520037026305640161309098839224854804671549272611093749117645032924175605111027222548619010413257366534607092697978504388441474563970666323364099332763776903844837237700777713171139245391964602870114471722157880266878313823487323539100206380449030216628004375038887070831140994480133402583561315826060369987991522918039643566355202403146792375569185385490125620037674344939950230000548249690636648830209941428626350686676653704283751794879341396960143791538119980994247529189392004086269563540622911750157907118436335118049741852397362869345012174651014390459488759187062078569998219838592991045068254401452606983592732505452198660403538700346021903797284751073486026122388111883839157151201040142404997107821028291352463613599923621602974312957861024664327327721158700747686673209558440000495656147465555120336582367670780811104987433728944642201826423160923973594431331342838461390096732242472115449613052349230373401540961352162877553966792910529470252456695372199361631485221688288936257741425440107574136001815835462612830560527905222501362247357973218400573757186265623285848937901498399465170712666340378216312415247958283389200496884176586458594048026518602651377089294919812267946250031409577738637480184965898772665782986936956860862617780952339597730450705671000726536057698425438550688337965468625743707839317944648674814254304856545670506520187200396296114498907223253406702377108854176652292550784075657023533746766951209384461158804663485853745775139250537583991764494678652449819202966956273468994886112836982796541180129231904031727308675269062411972647731810718180572611797551214534201675724169716690926952753584460108915501707446640937321037143008075855642498231449666979920049324758441354292495273482738067518035899168785510874160617637606838721617079929158770078089004354742715768635664472615145484702013045112372256947632704799190992084528350363642400199582460302357197295664978026696675697600531765933569268711645966906844280048631748933442914035781291881656934122793101529652152392668414925378244398395872374587337933756682204733835799484219490076246024642717926254656170776755256355482201355138066342438502742415268007875617562188361934566776814838597954054273339976495681347048477299163688588897672899394687021215522953142518919096689533285761630352261236537894109453670279385483418159388582610592696638490806011032218578137120358141518429264159973431911584245634523476684993042427558929844653384797725262198669453150727230518256499878030415048424106034113199510617855462214298239415205506694251328996090757986521996641902054428882206869528316617829419141660660596519491668495339778643268034205015365660833145775504388271115209979492771164042003270392506344096516764696055770453202062772235362968156533683256599092130500941126605608441583679593732532444137107226869728774656132212530751931181241489407902716977783777341526988424306393563695434906361361066839743991263954147388154048483764807090119393275726507361806725518158557697120873496064986914350710840105045255543631689253948285160784241932268193422272322620290297415634443004983651236758737579797332869508030438334149128389534837138243296772723068587683013197155880498641518035091141867881376798898299569415265050737132332458045842924542427753657015304238891433522220305651674997256657529724994874834656602065030726005281793646277784546317605408375995501165781722959244336866682283452509041373520081677280514284548693009669994538723839666472490974181768354367447117534717279770266602825603793669652933014351453384224638012022050047795985855372852025817025662307835884725110984565385290603659049230524341794125161953559357162653736380471919954217292241801600309198969892676486244686195229139185577300565062628817463275966425898479388501597852212364766499353981613672156391340128539207749522390017846659927932770119037680174988708653942677610593215295181479125583858007853737129111639693364488751391158582552031942236771391025472882898449933022373523551084309945140022939083488034832095621118182061919156317810463646660281534250684649801935649070285092444014283526126305360552010489578469194365226501943577258398891246959351537753402703286460512992350337350349380394327651097622318728380296209830962430756476340850818934003026408436559341847812883102407529180485497205863675205109865166413054338093196697063990179946482902957287102404046946789550449247079065982056607499581961899013946379751165284563237369740280301746114595061291130860494641117142029198184682938545675011381740708103944833105048348070756963608147524008254988860529163700435559609875924887513125150987938102714353909764273501170752771047926319749507079223144567902460394077873394385687856813173320189747975937922276024733448366207338488661705542706173057008019473487435513197392636901540925109570081360493279834601190487043535351081469956069713151364190611818952630636088098048569844511093037711549592634415484510196079185090799069578723221271859489917553822261241380309175332541574263911234440174046109354411325098347595360683040986761006810749189071995059185365876984892499777594735403921253664247093968819303376609086408974434188167472328439774272105071057720281417877024845166390236935284189884830540348144238674852523092127865521693796655883964608773787467294405402185107123071405192508442785715970026532256951977119338519803943343706413745109131465417228566514754822738558248077344463679308317525002656045328025407471332934202861859549865565158490775992290937479181619528161075611593442625446285009048644957014728719123009608800144712236863358933787955134195512324600748983096886455433642090356448558902353685942553293383727690171690934882090306233000163884349517603095887286328851689449262551169831912748545122949769124270400864411477858119355106698632959025709464604073119728326693121631233567194331716083524106601242556310437730767238241410306969761080037248252294591673887370002667431686817709131910203147865597739289869563577032213256608545720027198792900828873319589433528618235565981714962145930920699905602768506185111729348812244544796706509183184553943084888152716438009898568185063634315297155546514054527969320743872402431762470765424620255456432455737156800883908718679127169875848200488057411219342132600710738522941582497414313895940174311415677396153058592958303168776931301359197901548692830977408209240748180358005975562890870031973672343529910072421111042336171955282903873487465983062913915399970257767746574080318717346249676268311500439208285319952554433840231879140976795033186834269768816753339826043738302628200602210189006112381111360246517168927706075154893570791115250780072305154119579021630070974286801483348506147666353134660560781809553926045215977008830167441401759608210851222089812428837009319784477434879759204792379143526572377241946282952124899213468094932853895746766419760063146113054872427872210361708543093136217784649963577271381967139506466174337486834180590369960039915591776463570185971119340790696076470876696727563072300399487105363954551483649213365110538048977889912225573137365824504810439870778841058037989595328040177181929627348872900314427344670942319014934310093550683400544577972226072038899195271617450219160597725922484557510714069608258133132479866308506457193172022071114108100033312008168643995190265643576835757362650116707838627918675971078145076685305211228505687538613669093657119768898867026956784797408601200420072081754285466950367662401563188206164134710559225661370231675411461309555996741986096629241439224104532700428454849709619607829874104404489478653965728515481963806984704268236992103512117660421061766333072937030085960624751296089526820966952405829199081886378772829872742161272878613309109806160945336231990028159528317291454469995057117959380835740488602008936227765213534554742703344576313373216890835002200459885760038350278620233350831390841353828641398050979285900544266440559028518611171817142397787450939889366811137159445126848995624279167373941409290414763686736353958028833893024572053878266020558606379536589430707867025908134402224967640460136136482857698952739862573293784294595036618570603860800080127954263046871798919542080937272016840322419665070491455380584945402269425566663246172314147414920853837434448894997755132752341037309645029688178798874487408874702814758698765185616983392895777997219922954409835442756085873333886663144508710113027119408584548346417498770222868589923359434826491310131058100895700960704313259995975100603961495037223924304504768445949847121886964082138330900435849892095263948980129346940079721555336757665798545892864574144414313683811838662754562074976545285429542887960934073523797485631011196971913418854634287883886343042498100651137401971222959780155092831998647404325908686985591274559301021948554311031728802449579769614316649944642782708828083478735576411083059361517146058004631437852077372144925138340556490411103853014183172765708338385232108526809977135240967867920091421328962378022080208241032522245658245506185624053590224395402873257513706158836590448048599841992937006143982986680122784422953928271938741180952485217053886637516140432565504890521049258497652889062583108601110916085413901398489438583013692833410059806646172825130728785666494239260361607280204798979008968516271319670125073002573061201995575303424142812064906811989450933469801898234961447335411854588430225080611633204209028736452075365996473082016965867528036983925423517463691856602347492251774000517098886243024921958331422385708020798849273562417229144220138459889749568067042738761390514699475577492751084103551588771109636120426505321548469363676697235207844268820013201130176895665254194540818152472969988792087407898334170570298378653945063961412451115263758886880376269417675358452439981495527488972931156581589023648126147565254592973125514023683172143867954264781850491902291594043599558846601341089883433724974655086367345856803078660211447964933651087419415678726642482515556267406765653323022867812264795978097936119555626758788152454376935832258814687857714741719861565186514698046299728109438241389005985629872975856088650797945258882119767031041019623653422555975508794113117148120023808268213538979945148225778486076620903908557370581304852983657335968773946032844265211829086259503135704464792872962902773486025625447575689663985585870362673392034948699164831813244364713659586071688374313961060060618361842120559852357117033696716475594483535552828040492631935786915441083421147143568846966706424050200575957934963627284377287903845925927726959515514051456747870468555898194493145850024200647465753881813650674319151868285110198476719206089072991789731981117943308811101943615828323334319008495317743254712692147234964421232342895976610873069398539220186723454403083726476868487517993937283757474919875622346966208020542326285449434363211793411796894019059773385095114884652644708672900641955427191838329794592798498663396069204949883388929185183776973098671022094902105803532028480991242458952318681310682489855651123153674649574050498963617390339322511522881228991301450267573545124698459057416673874788253722538280391408644547848790015224506977228077475568685863546102275120270865649962247611435385056885161329800462448228658919644636159286211737774012935356752905465262702657196317241569852765947996915220769258636804772917442347006835631079846378281372247008465114450399146329884828218765534361397137725493893587028680965113289265021272038007431724323724523740809952025274486192116582589827587252778916360242823180596556191237277293719022029072610788354209644887234711214129150760592820145702864982623208254245419681120825000506021066646800845703765078065149874311048079161556212864238539411386741512162767717089620645664930601990223442515886084210356507943494906279285015247634010163557472825367024974594442988297059907234121340881492393964425046670389470923213720037849934578927085350549112385228333955919600338736368536754462239196813567265946192773803573922059319414478774715132138812839337562489412715519498875851202417957298027789089533921640201523917954472386388220668828647783569979274637092957563655618809635125077523635786890349531270871415683827393068377383061346947085879003730393018521076379568166085386388162824129072213802995715577233659041251005641547669111081013604001318454851374877422020948805990659436782024140115047632607690822720716595966102289084779239006575225854165503350286106771356994860059525855276756781608603470176694161420377783020151634669979482309702296637073123877893564156626712715104953927726405571758793470616006191586475679518119132829747425021242921866289361512146169691015310679653721582026353100267300092098457977897875998333592832048231028648854029590332877094963185471740075672658509158797277145743810529647633906264803794150865355199702087009017184715935991292900420479742149509702677627872455935167159316889119778569596673225140401874120150262429964604328970939814967444383707460031264044713341933459389483972577214292890188318610556277763496016548545990073542008025941162720130445844560148582042656778716487595964271077436302410451730720252929946981479200298101928148614005367263933006797534754429793319447677318234939326790803031298899839140902559124388632294072890096632793249866864937042957284203918172164724693883622916766784583753284244037991286124708506017971041266794550861760584491910034041582128952253442629535441021481129732748048742948783413932845677950721464814791418304854295460323645245560472688497876014301172214068825497107219335701019697009526009534471953375119299546011461475431370691658616423300322427073546897311476062527439243888945586148910748859486649816708357025654716542091866036187299478373543280285040357302172007746353943910860207545789847893994171375718625507509195033768132374461191562230580522832015462214006173525631883953938487272572132625935607063280456638585021161885696913252382294818381550275176569353769413457252274037722339781728633543456297118052142897678455122645681131909001954407445492750521462033691282514957329707747180623259110826218246619991329964493935777653266533553165477206449752030478334961333871124103742109098551292880730893118083328220308283544810538252819759391424679507959723893549857172120061261757474023681211344716914464445251509617783608484053604198835094065720264301332043626297648215532331975223736557797132432140563890864373612972027495514829803116168436249131721670867772930081157992348105405927093159684886824496267137903277623526568338569079342150039444532213196800640889330436217143351597399384200794689458781959657304392166013027690700437576163011542992856907549993453962587872531726392275471580212249015305835740918562850050430510740934637044927190366235012021311777817631210027432197101001984476333071742864003760684461392964648646632138428503059678541753271082747727383021076053710716996581870554056875810054723051002753222800513769833222139511453274508815608414745562311606814868080806519687945973733786226416006130621648853781334458168892535347451390884327533091663954845097454411786758213367782154741449381181836979661904175848847002826605089649652129339904122787436967839049619990549355112172545512419165792524991962364599272186322209585530711733983632996700571635931728697184850930583678296673498209643839118799940259224501814264130328846709409344711543346941927588941822045395357310819002804305691918848233592640856310671516022144897457582720450841795929313808715083544509591082838552460487357763629587527050333070134758811647823096845739196357269318718050008967644669489863993269450372958936673493297857525870832906033680071391539472936658374142034532509618328834296389792178047954096488227889707498816982047785330181014056956647357764719909272009926848699731927426651444197114057539701714740723682212246809229646961310520489265727136504483074028712138490792987804595825095197865213888453740028599943667700926294597458573368615115145594530704521697570753128964229475732235145036705584370343689732188904694317358359134083654507864611735388175354324936565454721197419054240229713864348371561177428496567435727649903516364068228774588519320954791838911438485745382301245703870607637462145733910573349825095879810501309802402329412671724470576395303847758702750288111171809685137863459728686951177440477814046458196558216237420311090089778789796012779143849359436530789863094111674101411944473717659068665368634524352326053843732698072010569523565844455396492270040044199969081522650338504657428621385922742517239672531211970679760122166767579244583393563222816759862014137185653631256208798131271999917591305369694752043442768739576836842381361017235060313009703745932062708985693119297997191929434553184556294694219524599076548622839569642503580600255911514038694613078377408468239572577742777858945039200202722244430089710878290582373708813000406391356399698007436670728716787600040856413995513260775401774796742461855100268951011190876807235305876653999605551847630403542387085647377535613380400661826334924288909090545117552758066958818818882509854704663678371571522126478102327723478834051862991788989228023640688193774487611708218490861151667219667389050977513485404193686941558903165889455747793814742505548174470320880263340828411319581468276865746085584833694633444291522832019116979187998699803156526347377559590515331459910706730946136970956484655281045929502587931498910652203883327110664524853687077570801029403716303194873918750947940169038811569697159591926562892901719885359216870067177355536443710571810778322463116785338147554683475006027193636684925987777538395872210914157289717043465190506467160839995580221622585907483920462915615086112519936027358513984071112599910314180810584033459561167041037033047977009256916645554814794137320836762805970470284817825156321817509556730747568832888419214764912525953490430508893095773859012180437431754289679659988396848721330819815932563469187162952045902074415039125983108903793382007021872362023254580714422743381912493361925501525531940723514671077869521069495925869694092991926633605145324432975701890242779528065644826170690173087817741789493073436820360929907659241100807422912657377687008531431206516179439867154203757834038094272237530210680238595153593268343351189052699925155898074219523386495987717941157539891377491480145040211190418910168858725262586988057620334689921959270344753263523366863772319313709156189194814244372171507046315357008654126247755280227914532674498595597275508161202038209582215800416103020010748139809844384158577725090027056757804468691360964639659652740244071724575705011812731824556071357789919710134076305934339137139288155479056209633945724515712581159402510058937080396012628429557035893772210302041245683504508662184854119380867247682160548421668209409238971057152106746063656600803196130801070039417759948928195948392889454293751656318367057534324372415183791884818102030072271511597769282781330503642623412156400340170521584362714642418181899671178766758160795925085608582016963113953473714900608780168729197661933221752057237863818159210186602680992090972528570993332417896730247264099610968305394232458024046653780985751926849466137578715899544219114048513528852458234609059450637882391116922629070272878856811902419171715293452509519222413453755956525393641013529148635598530318647728781430663720453135985690270830250733822705057366849817383271362105312408724363779972657436382699263651918129314268165608283075310000892499001514897277572504718253333816592984252948845545989780774448059445407865390334756970547664770761031093005101531124944259513210410016193150525338601784104338834175270964057007848909765901722654148434599047634788758476923628459478407860489853996016002339356466643624467127992725633430980739343834570575676032642227565727154697745488906330675620520107986031416685947570165606585277240986772165443507443496500391212209750831027337244600773743903352011533202506362747081845831596952444090544220843948713118593537423609367355586700088735323696983363116069122084033556524676109400266570353674592786850653520826693927877776181587164914176617409973146739814166152491437859019949492967691940066456241377619824457246627834553340979866977764223629645652214420257462455095663411854893198281413116637825787166105441081014244984758111097738148691184886035106123252086114622385520962918805252115154530840471449134991627752662581996649926185670342091101441503551895338385967557115657161649256093140033841952594486076528575092522402887300338764514258397501455413038665150063878755923706275239163294478201478799517940370857158934026249410423581424100946906811064630671078047558525140091696362401180436338424724497720340992449748380475252988679720027998981332804613246759837316748832235655105937292712730828338798670497197797460550209516462955868028464999380734856295756704056064159286752008878529203727320376239337319044673184187347025650832731005220162028977059293282753123068309296111897807345066415188126818044782642871244683659869981085964878876978390281972748423051334722355417293891219497565879688827657432453620551893118403044953964447842275918455313644099610514840558677807550204168245466718217553860296594932010155038524340263858495740256191855034137954198391472094502429031546327792017032132172346480173211200084741142988807975468345202816490486056978063181835710330160241077319987122501277228575314197863330235289719904692795077248888828731222519192400948695230315398849666362653429690328386734673137692335158342524369961547342880690795660391448782803228922031279013049196927317501728508128538077747169265967232624117490785334728428110458155098307096411378775321322166351914608621102311136258156620046102566373678657649619493386143811999040499013721424967374951128825013593880353855179423968973781512884959467738618696983614344229146450365806824385378829689486988214200804638847850852505749093975351476354800443189956165150073392574177161758975678518491192353019697115757349227615454316385990465175261550959758143977806394398450267804012995941364342961159378416359465277377694828133665623598725583538361239501254228537390628049169843691657706351389327321797388074222380597702409675197751790585390932484842814741420630770199951730258821044961670264580968880317197311659071243010183582856434842762556810027542851896207753888878184881780808561243705414323291620411704037821865531047433476966984608216006979189647089506609767854253997360702129023185059251239232704282030070183390141686427234473495341883849610401051849672620442132667481834687307917189268939789264480879516410994406745224035212210707910930846857567659824181610381492821300259219219328756733207686814353383836973095268677129661605344236898888575136972249555569897303988893000167361612552200397186221961373887206295672272796094878337817857345038364505231418657304127673326694726575002408598105399466384405679786455531294554797631123303048957540998403928414699693957400940799714169793485053103285204610870329169334242392588552940750182632325862435260145687255510230698477616773886263768739407508057260195868883959624817066356773537720549113088769698658988660326391639463328814702005829447022674368471901449707103985787580666502517005183714919232881757919410978679676163815573629655029225794905034154340887959962366916592450870738859511024233328484396403756780744894731829534960382535457909302551084179353927090071459300118281656447257856385274199966507118605521132065488097166339304735344231564256050243433645682940943903245195575255935842523940822252097274303221377156264359530169125599921403849377496376359268081535016415892451424132826576674030036675865380450157078053903473011683737045308886194814455597368968487895821668265278590205778444417647705694473412547976898585539198059563086128682885731993031019363826038069285750638536423220081754601680857882668819319782151697648244247376974259864093931152193919610839907658946366319793447126714025027434267558311024077468735029925531651379493630266014457449949724745380407260864493661616599373976801661640764139636437589638045893902447352890959728736386350390144473463485680864653901211236953364991519066375878313224767952894574212483084286161633582795113193994831074492922090901115407925015145238635362850354640122297552393758659837495756463175548808477192855648245637485866675967289813398256174434742273073318021782104028219784349782988963177040501699101570476838597510653752447994888129017884379613064156373024475463691348798647781654007430956083444088055173817507522489523398706454110002511008664294519968618505751770017822913497656723239389365854988116048099488492403863573273241649850354751370740786622245308142824770403712672061687249689501753053298770161807770101888364008362778889864293574629449837468091223124781499381158877671361882904675141762399962959607188823309764623685513582669204334431490688303649587578770972079337591707786337303197459586424492690390533899037113448402019962441639557002398568178427498827208277637036139531972651221208600054087192620051543611066488045578469059521555032685011720418667282275546323050998351873823740472451885289948278698619707780508510451972554090603270504439777654280669770444373399551559574460028624121872217951209275780429356600643865323038238557575630782329668504084347281578649349768492317636039464321758804920227708051941952003377904009137043258820968394498735018242119144834850264043170779042861636640821025422209421783937204552393301495949981663255829836520304412068431465060919287687718989600713074760385672547600358598503994941215692078654198301823936636996717394331430645684059369087238165110085538964395064024401994108845293656309274624555284846477716800439263820902905169776137688957565047515756187696100432615848000947418676667651409221390256359967280461399061807489934272607735786398316360938678390741425236591220583115439575223087563649017200804875272019184566671315663738343532783401405843050632721651903302031638463705217688611962455031072117083633594403107607096272549972498984439226600175939061645089455664535078825722428621985133473735753390496331896921812589636171682992529145406079743278256618934372143027992859613609547858763417953595774307417485657441103299485191252926549330428991176783859204709529874821300862584982511831303107413633346182859514336188110905353122527442918829718427883220789306462895431858504890347447014357770039957545646653256945809178874489509465916354597470278788572052836204302824544579816422258771300844967598328715133186776627870026062476895516186026920025224220198641330268662239968901212568503667927009867429701123590262405143977556129997014985888827114723062576133663886806402689471220924951006290793633416817043375861987040165263344544140565136227469873102268643488603629889942066761650203414865065955042887748577934240181863092559379145100712506970286334640608888420826709930597915969652657111530328511209385241534258347689578029876455010395719702667997286253030867903671245722556223097909139543940836995542400642951559387866737498731472120175835668274188397912822594018460763107020949536794097528267640205319939476209316557201600618252684971920870428519429035418641636494102242094520079615399609048277907785846162694488191944067629911476069403372723069201312173648680301798713112933666979917793632904604903364397109388745333858483215788708301876932695662743412992263132786169869051268801863878132278143156058881942229332058210511717076137133898457171087207845343711585443431636903387375826780168020245754431242526752532525145970060483998736742388575230833307427553441682702858761177947086394241486036188962411122738337551202207652139037192352013623602066192402042400603308987591251879852642895078792906198424836919507567318754748532520737776484208671960435647173438261724256014004235766921889761794989455065954284022778139128815288571908564490611015089252317323969745875111425982494445633928398292414117782798097317962252594861592598653674190747117035964452183700038019261616378465580614437592504767518200590961800604107524659896464692387872094645767429822803589725214692385697390290125278379931205827982324273192696997584099965503672817767973855987675326824738986310921954427544079657647900734553754483286200277792141329231516915776783951304311334099394401783048783097007684434493618798303260030122650807720502943935292752119525244700296739004889703939392345223472760214734534990439728757268552985499351546702296239036290670151964489417673813430995461900541892690927549293923172020670579272857530660907577838607669561402262302715841803927186085892320848159413118937551661205727088675816180596447484489693392319470778710268495368668531623590326759799577684733581851976217267661115834387809417555049578467664520423926020846686697260118396729413487767064762142650583258936478345325350330807362569096550617701197494226286337759295592828360241656849461085663603031842446432277742873011439693713838787509681859984984784814780346289971043765682546060936734943125417136840855174545830347472816546490156477084694058274846729446494040485951610493745838589116881377965076420442527188040786998386573383003365384027022583999700095247565089260454691459370640673207535481590583664012484617194332715766158257414051535958526155340944789649703414402898243790524854152750613854578994693364110576412772692533370752848666376923124238777851921222124635684522859653607647813835878682339985738263972780859410591529183087185860127999620801462594040769786092902463803401829404617473201704001639932081429499671203032495014412315556615801777165545503072543810422745204972806773985030646453468245127257344821770161633026747785254079900428043574164409153580190700830882353304614786958269661254610187116551270203127564117711415385204335280876581407843772138405351370925683173555414907820232799829506604577402834790271832377675979519839254122278605978817108528322568311867965981802661753220155165001344109486382050837491723368297770477693782933259700954757966009950642011325986226037045960064596217917218191827694373359790895941078680233527043461297166364124566272733907802700076806499650977801353487041666054143783819719566542037424511116350188016132668814081179215224402763205376427652210582341472280817111409874220046934156986205725865151390684206008647823488511383251845208693282317651194632913407960357141645752102723272529483776421753129516655134686822676962415436232158755319894336850146330915247331613640726142471032777180709834143844571906358694499568118283113920707133723685619132211468292881746919912596545349943245692612723123914390916636900190156356034930369547319544499121077790184277162998028357623718139737682103772551232073930749481784664577710540578252579904293505440471262714379912333348495343425736463130635465343990629357823012226320683136029024397947777279056425121498598493591768818547614214747337716592928358487862657922052742541229699697712610141054735548391407084307764289057098604837058700136033809162558300223746618125759036847021184349536447981648205631751644637719082937662929279225415755996395612004247556749579255097062894514388970496683410618253313697010485788496196208708948758399032040318761610130405689961577386467487788016407690949646270194815528456506015151319713344760183961757802014448160900667348660393893427597930243448725542704208509541803634471598971972677358994428782597014737899396365518940766887184689309595756009473794738726678422607740649705671018434649094597382849452221127816606198486696726288626945122151300571036222543219527134681330627243898936536675589443369338834332239569968092395208964318090442653215620936482100442119156069305870922100854114057437125188010393001374798832185478961833857112439824356758439556842055991825176602786197166311394648119745150608167796493383492695895625795915171334291288597512184946959287891970068719488984631443821771226465730554906758564625715500500048784425034289736957964537455226278135634106222495648417228242968333603917361420968196246340512551183020502022838114180463054074897596602879402500436090289618625046115298325484490519926285649026353413629369274934538664202967539845541343980411800414734891746420976034579714011760384890748124039854807405801937651180669980361000174844360717977053978684396129335942603787207143248057132931009110736820674370471779315339941016862439671746109193173188620266166632961382980622255624045670408099632624900307601963394630932637679753885943324610040214700216193682578505517479110098680795923273544219714962497373725404205598132989477033366998520848793985683753920402638152843890519471785282445896853036309056421809772241629215938395799183434568531577301636152705301575029598422731929485679060928976998220774685042852061599961378491701746042308657305010243728997464740324326384588396718630978796153913848170815683587765115632502473621947495983178673136326457953328737874784461184101233731212352561351154309923280983276832286056590105440359179225708505830889310917947280449219871740797905151179451475902240296142880176782345461602730750750984259526426110717949440566085386832158939945036272183705963794793836181088376324424843291161181392156274369377060358150023027578834473313844290838944577258431669734951811268469415096480647462872532863982233298168143725752370792693936461022646876183773666231464870211498020601220101979858767624780234526748884806511214043823056736332530710200134882250032016425421914369917750308872725285231831339347353474898297490619873084522398802419256448538244989874965864122505760709988257099014842519140372033402512441070389054338062882901339872455640831677886663542780486827685810902100934809401210629133943256613763832431677225465381231685405467270873278920249330248273264032079548562572059302851895782281024934884650653692023828405012735660065095065565227396471284380152559459551141094411694803849166585485191575085863683530922444042170724881960026734552513587932454716835183855457217481380525439636790425735518746346651018922856370032299242133575191483572874871336605858082916545378512920964790850998731991122175290092048198353357427561363592070723574870294373622151339353935755685982382053901389887404711932923540404507328691724933974461852751659011678020105636121539515372711099500757524667140475745468419074483212510571265401715422347927402251211683027861181149106104277496784126851315523165098993514122882791596376837361989726127259896830940041764517305909086281874642029259436425430037567714700986289455374505856345056365916540875201535558607348683008990914918873247162726122296286132491255664324126770407582771503093392182760299727877059133558533247410176800483633028183270544344888032139662541553926648481866006790293099241931913251381098449675194485401193990593267604939370980524641985515040521141602881788643987693239906273726849451683376784764260768095714612054132301994744542350863364710916356365357761091557374624544579601487234382218984657385561222835208038217621587617761400651844185983101885703978714771374717762328796213439299992724103026504268088696093133263804268300523432791359138384892183674937795955897128787436155522533574816419080480055846738495853172169266253773591546602179195718024375536674473662163260041703156995454823487985643126370478213765198554169300391837180188724861654383494985425461043130560446440655379938546792143712545130913773438451505319386912379310282438449238205986539962488430003857310589714806425819768789216853767746483920355173263006677003817500933388299967132503174204860216754819480415489297338624442446472205466602695381009413337930313138260253200756775515207649509830140663459151921484558233162037959808228554928238667990473095637118665122959220366322557043592917619540212078121853049135839765639808076764412254543894249205085187761737517898021786294778648566477258110352506549636436541497387257087857786966623879871934709562835267571678574489523028817202482506890638852006087402142535720219070517540539160276800858849357999487458410795688828332713824210412817135667380706595147990823740888236871978453378732200964631800817506562229429511887594330971620753814698598007192776037653211679143815627558280600083113443229440208503193132142835710915805569180642979588001160407966564224162693710552100943129348000823582536590326458243748510777929494535251199570404893967462317069376319539614453192398749567812130670969157695856404143514116477242186876844311467927503855500954408766954684513235418789691765930300722829554576151019959205935912313889514812903300580507869824234465561232444146949416792406288128939296084420051351751976413292035997292632219561363152870006522077136304877145084005991262623603105780936193787426708703223546241187682862259376090388480411108029456647553414616744310644611679895602491210279079361974350012009579184093138764314003656911076084160167172089324903204865829215685048843082686641739063324395397568382222260211662866651844745887081504485301525400467375231001505115946215483701016059659478383956913797901653464307051152346786029477442515579655916355417667440399461151976583857095993824069398008314841152532112917161979890213899323879219547998797292061659963485862924311183702711491393402477082959722723378965539904081272211584257711614466466222076275789171123321992013114836614888278885278301510156461104008219864386034791900578700029193376687118658620674859625849105663807893362918980266468960845806842501020630629778716904066574092420124497882884778480575760915891329702605362113695078654113118644578602173903495221338442494661767274657369446078739374022038486628912839792789895072088129570384480586824887433771322804516515472752376381160957397991685081138368748227877312005117389007819060152605597345943146979014474336148428045884969867552983415387857886046181332555675585775702639586648904680760105930986892005891198080840245593430354503424104692438764056072330282930974070030328223271289626313855820957811926345633553835293115788462498198895464852022560598844535434465029138689117144488954316451273362192162196236020031590683467530782042389748502900982925910103647089056983055631100332877732426160330670009528026659485957249545327114626044310928354598801835152060423908534359053610634257348501068173169301287590545998545584984073521755129636905160964268314971044179535494116821164999339108859278565659056158989150983005109398569147841332419912663538598643615606912754688418846929811454241389580874321744709442025278198163048209958618375041295559297935654195887354175769234154674456243983093786369004773336194678919075977755976816684670151771602180439633011489490859274135691902972416060732301266763243284728809971089579431289714027681144202052747916524353885965066811226922554388345910250248801913022852326400045118006037513614473970157131808355670716027998730688201358396011318838727326382837383075192739655015466347760177395873375585241292794684929982804389236987604531741398054050672910613253524225851930457890626129227070620755358607206812858131545505079955782898864766578047692012929225904102658414172415338874691188894141605775189704337275374526828172938862533478363639276450114033429097468953037404707393530545210158309689031606264958625271272145261472046516003964092475788280818675717542086164413543776638001520991529389784502081136225713443929015651405357681939226473231969509066628197545756001630217434986158089260975835969476375566642309597553547666638135910222428977323372938254224604177264627707816487088762733155058746810970926724538628213450443875114753125879335619826531208548143996733657657850887791485298299833974604657263829769843000028891612675524884292677114860709830165276097622733087946869484607035503309426081072282824468677183308594118027484497629760835648968342857400465260316596496377026258291775940507685933115204654343079095064550013343025889395630025639726743167260605025954092993032866045841575817810670730845069497551335605568254452090584319024214530950189705944945169108901698422468983607918822375802640279100779502100861462836562807999448001520139557043521712643793099972216094737708665753885138089537249523823580063251285008962525804215666743980847408902198926818714368263868484475353666458960945802133383657356138005749845700496859916495171983271546415160052283621041197875189941448187245803966919391415772146815690835987873451923797854734063228020198747549272634767952464107062478093045159478257621931278766551516138126813309830288034211118435874697378746304829242644373489470880123266352910784835422678981062769766893542975233509228049443263743134308998823830077355065794473829101700455287814007602492989483421860722828388545906531079267696589847671136656390369552024970644799856986376054520743302561750606718053190487153957829370658847114615795768338538075009951932182846700232729219031310893698360545352314685326670401392556586411782466530379022185817212588871181584132364142456057594282415259142541189854900031206982265549575533757894795862832947637186053441997251324597483256002497974817511144344736396838982964325266774146151832793511432218631149271020801036124124419403971435585719366833086515384932209382814504655522785256678992953002320960011039805480745574310125696577683021723516917702324470637496957377035851287012827325962577749522586460290977309797730178278247037053502871282853889501308848893271448527500029921207676283399968786387016349110733972647915764452864586741968289662564832052712735579751053438060179001167228551091392327993369159123459785704146711538026504309390698081974889036798428159266808897511417919627455947119898223768923929469860035235172883332835917463674990191828792912664333362288826041182642669428666114736194678381586830917279647694400206482914475560477102201964304097923333863847229497995073202475939409092698636085633897755237581358958637240778603783338181292008443613103364127258595565608440850303054006155401886977198108393861220382956218953928703183529780386154970948364893369314154991324722141231454224725661023846048502717659281829945889704640007991298057032752131114244888672214693005821679677327773667349872132001787411415534242317719635806002117787726488342564792442728553500638309455512522742161206722099740108746442210054435390758641770880996696507618163317456228221483204022678875629702656920427740020055266498212193923382279203742989282283335724352732950235645324910708911276165402626212944584485808865620068996814813146192574253923025768788024925061401985275452106557820227394490960143806062531323053543536061012833028124073903217554308543821386418290339601256193628509686248556257152640708578491139146265189308651891739412609586043252968376497926943595097060170262438813192258210530357808060884061268167044951883778843657075683914141140923587848754445904658299777697055037329420705219307759932767383496319360884373779589161449629798628517389242484945621759919793814834309398146176742380397983854530430806986902317771265494198242630769898570147529764478072133739496445230685934236555981357331700075583540042377953617476801401039020654786905512136618010595518632101786720129011357681933471502182670020674245004559211412147613786167673749645663879722153967855087183262306058236046141497477533310302497516314963193487060374734829520055132641635201949624002520874724014151518890130872581668202296649106848773628162161094660114381327491137693574360640445171430236404143799761089432358773298871718577638699206954409450031244861968870840233652118896308883512300576392116580751225354932063286288830324685937195501265600768316616101298339733866600978663816954959998339797628050291041559571868089926921509863521153030340650310065141803855527442886697273703778266344941958158866590730600698649772253203380509162904500946350138115360296441199903338889021872410510012433005655383457802214913872779137628821415877263190812314386337008631332258022303678742132755007225136408272241941110517808885374513433473538537612339457168425359150606321707816900587430202967733530115480307601768652180981962153620203682233611304515002342373712619246800731188931544340692708189666078761666805487419004558064941121716784615479326752553101823194153802801147282451346410650534821611449512286167845948993822998585084247909662977226842823571311290111320015254574234415661720536437933381457393563711053179552217544688865330244695494832962667823549524711550572519861677776611931038350471506152096663530241559507074162586445772092237889397501484564542693284683318662248329112298612053061515552343815114812630757809765485121908580413973187648175245024462679865675651049676786867090403443912404340469830283869011519499690661130133793601634397344271775239362014127894923970019068623587306197231891600828038920875059078414705921673201833426444208155837714219750394515034151563161369048378620434325070125175672463388320827308039230962009034385136287569937509969429231162853386951546402926954771298442269450819453975453855611307985927176872532001790417638548851151805209442192227727692216937827584830021095253430749410291072993311905652846116643582396505073878700637312287992319774802190460759357038903658965123818229467848615953120062048257965801564137401497359848172928145344049080167671616003358118140525119730014895231329508887212817058869056735316554725147446093835087996965011108314623895134580462776760967348456963236514109868812229660357998348788504151806026291092583618259591830996682881642741784564876901144933706382735176466775234101629124973287879921205562530335940667632187730146540075222990299846469701446680617167334609047813987693191500420158764502142293978635079716907359330524285612234187541117396819884692963522500670676684240738553788162984496666121636242625942463595713690378634049190894784226081973719398882699118721192325735069047922205607119393178158351522846851270651196464226801162171437687075604318887248797844821594373293346129012353877294709847466273537614148995849917218705890926752533870105395460896683338406839655218144502541466699592156853736766719501057263516849396438327770027219615917626006412025632081423620516755789805990810030553480261831131423008141979278605862907956697297890201497102848630254036130819645096326023081730588518137736359907237886460137974229847933430324376023049748252230285767466085376973918326892198859719472778613146067776219830711116627096733253156337176418753756895661109739573745410551225886945699366439392507187040497239753193418496034223121864311116986348195012753372285751281050348888146513647451524757461935636037498683602739721690892951392040014649407551831831923386150375639509190094134810120602556031061075828783418677770401747596306471191477509194456888479338608759540388953468606985658813136486892763974110625021046431931722998974280802923321143543648985193885466035337290505766538954871037566967985116849807597368089973575246886446666588957101924203711368823768111701707487777265298352658691858185706087286574661165155607163882595133942203225451438667888557574241459560806355149374255688560609656895464769099806324503854564789092680116897577038916908053784408789519879085046024543393812872894394472158052286493375046530607947021832244606227179371698977106179636601370210758071645638965685353200249324404211729796043309529049641971716021630779517203951546894062359422682683283003977372881032705707415605486612970600715307673908212396290435722921127491566509495751705448459429889418671599727276429087504312164606218279404942535319595699457567631743584509505590777625864093497281156018464701671215740697401244018267946363550599833321443350814680158680682890045198805628620965655563172806976150923515818313266376077362873396884047210100900905232799092936238271920784898985246792817670695987210969426753321311725219651591226911070178340118378250037832346637491415652963798383478691163076770128312669228854324476069466774518806729325635796678531260854646311703998172709979705697711591522085578628106085213615691106093241346826189957677842911425460005204911179530392196693515553713623357925126559416432908026902757263309097175805966766526082640980656916226528342226732138867899876182646087098349323387410519973238917321142744482487485657182086650617082306898029836706836101149575868073862819667957128878904321347780387838722426244632950432839529011403620018987417367793973203294487258459949585446352724825376036023383026034066883869817135738040790483215648483635246845327047315888439264699546279661372350833085168046225223088927726000359322761837986133155255477478583069259276521130819850076170618368070520916807395857421396908650531428416696130804505353137279398143538287823999645123741627552174145753532998854996604682501887759599922887555248414922317771775829204106188527389478741991135188146392611557194871218904276027935104680917173458444697766064825443882387217195918366796742180691747236092401474800388870401540222401789657295128242648681232749988510363432203194189881320305361978473742102848580779706955010146287546756424955812314450146717285410627367801355835477788061405918195436594116932580778710172634931424652311003961435894399191000836639657252663225624119862456920655132525377003342532104951700900349508930267290340945952406612024675344840543886775400014322765012070281512295174240294250181924123981371879969349122093784625957963863783282446551518494528260640724883908218862133679752807343260306996996173750220856741553369472951145096990156079845338800328697300221165442863922345398609588104258464654540203909417313089100601785704143758716049934586648563436861438447468035081206212749654269356518520277267146398765108370896895037365635801522924502639586475589685603060639553244952610077182112931891295461227381158656303554264043478443405807861607543555490591175952251385175762894359674743435274452781640756474833022332530681258057842189033037256418812424344163916586460394920394495910566552662202557531175402350645108333264071602456402920597503894447823026926469526972440050236310316957950437668842739173642122878071982616891742161062860692268901208245368248706323980572483734160783235967860938158721556362124624901063880394204651098580776993248813920188658111560392624690801321444378901137254868858786923614960232977613290278909139816071840329156050978725321126209528111706001237027699967637268770680625095048111357696860936007400670164095619768297631804206398167805478127552452851393110800412317207125984442081819042753369551115143310539892167874283987053329086362114977573530323999088319508597192577282782472553451820755820420591731683135206026117167994279241287357921790914200493718008622870467144543745441061779101559931566770285080280078934907795283041360716462286156484709502337336840437674072648925844869199342160514005018172799327544742601982177702312203686129568298298462415656016079575163755530129440241600603187688432055706912930876458170380740498657456145904802270207942582231995197039390264050507823074474545118817706592133168517353489141878476900495533886037676394417900252957934797834367804387819937229781890110631473007376827843644700653504144844965960581215595280048756650957151556492805054092996261921006577635154487853765586559260633128526735569505983088678337714042769118210707122937291995098762764608443721263357907162038252322113223130343627916593652503189298531242416331640585210800723848120833712002405341552237091527087118002346328345568416329891996697425966899530318914372923276414298691386161419660844365630273325327540217050977686141455099005907383066933561566568982347419878970191236645485953061287284093419922504589387037987766006909550045235235732550286641164661056636278976832365666796243582323756511935705545272984020017800914564053009693297243032358898367562422707799458743778321723289710382442423912066833399368294478487684902993746440845793050741946321599989890075834000104621295388987887789057925545701188308561455772397313640707373547964321810388825060116722849398482507292040109973962412581879744308687773597678580648799233799132267443957692750234963117076260455658956672911438250083649358579725297297237862167655383689261842456810142145043552653875703935776880294011549765926818719054257560865372751595017405148396499103650896979937125838358262205783055333840020036525939046260402100195881934280590457188791232254344968118072888268530580361545480732876328739624192303105100097159721536356609367169914700451611908238320793213579715486880242356555692336438764550268418276925431307600895511491681676508806152352498461899001350613945480530595350162525761895460302039295136444374500140856774368345313470688498893146191398581617102331092667075395061996567348848613680550768987255761798398600210286109138006437005740732877310697961042027555537773042917666726223270397522126830969118568845111534195494965652764326116206910371273028610297009765105459121569185524410962761055551463260972008121147751317789221138040167388245093082500446943866218181093936881674329751607748805402062315801690175772389194408167944552835429239619076840848271078182604616123040677841968653290583210885063833526771913152753156818874816340567844014115799804785786430154257670008942059996520668416718321146949171506343478459157325130223868660440619490782174050312455597134570974190598045045736303137622625128926180812214105304003726574188293743484894654811195710888954300045346445891065230783387882097729520862946029240123626153158137311206614523928691586188866819442212096081618784795145756976622349811307708061246477022315849019628598105036545973591621227472046380773448585158949325874977079674871149363408981510407207337264982260624654516323851601193638437419584999390932452321387790290370002280242895867812619356404801439089805642772979002838715155707365564842161540125114832457798077191639354347525699665802859216014403400462690011950708241919425938675791127014483465581639547458822372186681979139756100449516536527291753067000545015698156068373003569673444518000704895530760588284354517815302235156637540125115306094270195600325806432703018344404986474774162494095080251293222312030107878059078634025524489934442091509660816060990874662559519605862349741306788299824040213137171410509126317808846683670680537698325973635606754853501687231203013410883032875765646885812127895375217797387174369561603685209581397242409440146088720464979191505448860848274744258420971043478768708996656759734623573039214355086813647067470846823070202252976629944974438869875637962146100271162930770386081446911527871099836970346245098299594886703566437782178865086933761017672779675798077551900798361050762778457917595428459973886314469950494140472867879602376859052236627463428179616757178064072980728386765213380882236054638723682146514505223558136670568829913142819292050334566006785360487405912577056270140536345251249076843920211883088713698144779971355420448239504825215872711104063926697153594252787254924892785938481998671691372911601017463352006257585993065735472424372445869533862744321728051983408595762938083158925016882439020852667677255173610772799224719463974544926580720688249809211316079710123642141825847641707743892485622586940264697755424120891064552526285124953002867606722250339770646502922962964882401186854075748119643435823430128084739078934684416701257018640787150291784678741581665095434253847678685800663852877683678618694972241591136522904728816574719624112451571661725681147324489769465177959397411323691197193782960782111292287011591376582438724415517109734030661195013292186221869401415790583285267827143883871060208906101617430002493716034298255398204864436895036073593759456772039403575588174627249077823713575063496555955078279427698437273903774377995078188646682376898534882858725789308937513660075209721501060172871796076035181789344533614809159453447825169004778012447449895902113774118580995723469621503813557781032303358532992033995002980441457630673596069622848343061464528545532713729931242494724283286274424225471045479859267137268729656371751013880421300669789225454235816655904349327333155142011068925617761320483065501315828358689766126050128480749883796853461781587233477074225947592274883057376674923607061793748330237340508302806018025175441164941815731698998584159002953637222271809516045745450186001422071374741075140703827744411547778098453905017490481879500634705888998551695553392692006051093432702439425545677614520343807903191198244110212868279239738914833118721272697420718821160966075645370391878145611727602658324022467236760742842622263360450853811398592415679564342317306474264598684645192448083891329747101690579403384106265985978473606467158134918358187165272500779313654314059990892804002089694566264485394951254896050828994892645441076786680801882855267430682675807335735748818758371228966964845310738397831806118976561725024790605909164048238251403822696216638607202546342804120036701456917287914378637932891335589023935402311698612066809864286988224738937937829590927436212223040899406191962023511690500934829482123533585668936169752998443298396571158252042023895891608274436792756917715377953580665577072736627826607561012913328567737995886598898053386965171141917396027359686155404121954028297812558200244792814404827734468900319659826284959356689528490038051533427921727842994167631491846950167851001526246652580465541616395091392183018168943189477003563917929087831062981378573894601543196189490421012920801040693997735622093292746006516855429071090927345230821709716424767669159626492268015424689368730365291069185495788322955606381964439572860285781948457225169360413773209562283062806169441484020620573551962293598824498003093723848275338346490256054215256162731663434674442521597480762379179348670720343094166094008055554104780333269083457757378947352361535681366153621432129009040179783292291926891990792022889374606148851923430779325206807475938697318911865085574154270533313577826520304948882213560025625907586942935127340882104325583866276720416271682886183351075835527536859645087562449601894620270779964556122452472722187298220692734107147741974362276480905863214390256831302266663087610091024757250170025449867337980359092733306884374356085329812039744326596038632978185400431665839299383343359471263197040946387083704422514552644159856247351158288185005182616414734292686286196312537385161979463389063553381287836402034465474947437412512649143108074866162560553122226827005233226921098831922196041705157952208714665548390404623484885660595372625371316328522437478648389186835480424659237353229102637973208579805428004136534602471761938238350891416703719722641681313059993385290174303763512074692283349302144055743356567324151654942897105568799457730823425487159699419219635920951533038060767798749507863056489037063026801370696175803195200002129546554311011199608925977143675158360501524261457864329546034218613142771705402459847892891630288111096820600462345023241754191728784705992153176752480983422758670744326462697150922877966667452994749822775029890290693068290642555985779299395823756213910371833015630542307302805377913646251194688035874530474827586843119544342831288881078378780006139479142191234537396388482873114777866890235803212540856948327873190098679573235295430945104572285919179617416104458938646783344148409952095974477100436375415583612248153427793986006490414661489762150186804834820683737648663837907926975712588557410329012021116641257079259368837916696050268839635105188700153695519040564175082550278567864674296221993558301450743345554231438599203457251736896864283753366127455911806715648884739463553590968726838229013302557753336250896856551307415587093973038230249894478447609505927325143795622798045104611578948122810321958424224763061280425411217560008529163378950157216049739044758546908751479495331438827384461421573465342422184103462758719322763476460147312496461886629229647995662760114984068910144671930614769765009591428291049887147894363423500126129441282062876215274436857677170127997372248808272360486328471428467441209067934301084373869989639716650494785646691153799211245145803869705128942485232721233264384113388182450313620521499328719428010109811790072134306853070313902692176871640830663848758256997949626568982731268032131187933173111895947448910504953998669768469120121019128208964440141986573435279880609306541530342197401439801775874722710738951813655246975555062497905431025596726954460578774411288458220689176849773622856729692983557977781704451933537050699861659178354150704670851312094550778286939254386555420018018540655406530788975928567756355709208889739786145229439867691482368530928155972898810534512878301846734787158957811514194022508103654931595100224773336666550798528285204898520357058240655483942863548066593585117740147400997248100494776469869407636468864879787039339756181742500147390855858753942976042689993844533820575595189877480009828900915699070291779509902354204518175641900661656926352608746569458179051080682528670397133639508757693381383025883937009394242736722957964823142179341053520843747492369991178238128176302881037446906817855355966661271123294505601083146444385621615821635661594053852821958951357257536219962932912271243191859712663044651018738246495311974493103230226971954939399893074594643094042117160657192972071663870821645543906367104594370039416570999581286894259535833355877721485320111972166097286216639106419541698004305842664157817573269160736595011910966337863578966381684448861211522015885049398150174458898303325903072595104603372323255567893935402014079527371636606375581363404407147337720749042621314449455200824338621026635225607173460504036050166506205157761230811627522193634933204077134503397825056946270888203786960891082566730897200342474229789858940082258598532653689852203457313684124712734570416393595334994512128929803716080388651900386920707325790206895677296526068873508734682299980081183593973369573777429465753017740904831940085508264740088893080757345936526285251991029672989263582369490337605902470005274330632627375473896515623330604173209003567042078620252388673622049503464728661142375459047237939821824916849432670027702385907944956962906197528675592899000240366667266551724957717947943373577802677148764728568331249592345059128170861139188250418131622519187786243448824168197323987302504371107465562917036095123633191554807997244815363894353733181396233498874194912031766643768130224510696666029901025296918136660313492071322374643078483095039982135798464972104384936272659682998502517504619418522369292511581479595282078851639623161905769941298286575792200765941009498530533630817273281335311405828373202056853955344623422276551320461303209198707866220190039424411230023956123945248396804984880635964499127179015632938506562407201245593389422682013467928759803203408415638259308858117620542571251588243103729081058253938969314658543789369353467847049966713599767914663324155467376590148469326027837082644369175721245865091311937074422502168283956535710071229626039127356284830531663392866025294053458155961574343555227848614959942560733175681215105497263713297253813933529549077562064461610792478933028930994831978996657332148613692281748026261402901494157452383690101384393591811427515737838470353782693873589356668671301255568860628706593003488724839434453220601727159232329408369264791445903342523771059253745654336890153409792529820666186745060981329238768590533272593305595676188982045155103020099628536805482027890660167869720010993210738195566962348238189203153376134529116925488036535196706741278629860310977594891221318398584877750131901295595836602026478848341268365359280702231112529538253738631432947741274691502724598746833549065050716788074266263204769066081562022671966361832005313789599799766287911966115528067730451105137220211331459939307773508557599804525438599232172138256793934233054634839992127710653264432594909220272204356103244201068141169351029030214090535269567018721100617248301625683164829446512696559671018025950815780883600625745519546446593457417364813548566014269210172720393674438440225467704961548405097429016212877092249806460294983295713636844142177630343154331492511946127659358377956504773594281389316040661506221131814120820170127489285695894934004864005616115578328982190942069667380296815369473300775384879824208996235250723281387435797006817633583154807033015444098394668884919626990512167358683486846387193662071922384831382527512662736048473123347851139317230312702558770446493261551618613118524218351898894471266922406581425616795620548353537669856046038689931728158571312697690944564635812388007520238231606515406215444373902204299078800859866536277334821310434212412805051276555494323685954178411342693425972851648978816979090307284345553377659208843084730598366843216223654223552053647727480433744379117379399772085081847007515174159505763966011961115691425261339653461256555945138616612334473935877344302206408294203013139159545322534343198325151527982244658233070037929953974964305102399022297665424518951426478612533297925878552446044391031231489984773612083835609211036631734704674445157523856131420641602095118412576273737205393527578985349180796302232591546898642110290114758967378497043413487959454384255209143056987801155781648008986702003984945016984350341243635371797773056272027226611530946843848990555216059391116892092912776038233738370565478595049515047493743337872717545145517379179141910524533744546974187620907616962123956789246070357084610739481404788337103726772939959783700972706494683332627112111461130223662821580710811935036940716110669883387296590354192249640934298438280036290214842285655128795717841609632490772829295504006962233040839994194467820543516438030090040356467090887760282194296025340866352340299448892871252084506617754806469265787450404617657152054751202037414855476975110900528725309180089916527399120779133798584522811628754761650582324117010357459347328985841287769409086092135787629750231804137252589142204466835049420263741721347201683013375661123372144550355720997281996956111470323811641771608723964088978856701764619846451588793046255190452920962972208664426206178877349914755604510556460511835567033193135974873267288292041940679531307034292256667430579927427544968929398284168083704189683114791573629584891955869574533018917348657819445973677966664765526356617167404281550334196712661068591667470588116601261135367345489227872756741300962999770619041858489546580990696738277890619919923038376666794782292687973660117806991971831543452340527524923975387812330732460199245590900375596337639125158520217406714494245661068180950681478759608591737444575903393689301429240826079684722124543214301857571049650526182554083505509236664573038183465431589311787429015612686785741996501350513247553182809323073997672099884295615208667417684167953763002856538657144851522072155087228898291632561871101096282914156469771642381971753093221400565114309257592370574109808916103633747295660479594320775996641984482586943472978894162208909384035578377847366322578944969708594302385244636166972405621428413705600941361552210609132509458375841899378234070384972860301305707312570807686955518160530897654875958614218155736696750597230424736123327882277176038219787053033758698776302209573331346749473932786104384704097287818715688291246465362440943004030992038431513057430774040211005167158731997480148888051050690467221192452944304871074634303958804020721873056430532411640982205803888229264847227974413966957979747820329994929506431512048766029830156180321926694789116841787519612171317870362231727351257583087333104047375969279900991893065883594193555357502602662048661292804790692491001034764315030402445531297254225700844866788896116797212795880338059815784933396120293339184388985863960287273549967046759261375007723664373303521692253571268391310314082653103883242243984458070863087226488341844622013568024288475757363679882486813386045309155605484269080836291186245461916306105222343982605034020744440782874003609722729098440338614702289751718362882896070206327701568217154023463987417484764381872398862672930927684513466734862682360958008970646866733574621655704797404752729526461862164753103106167758663365179109212479602400078484398797034078895596336909670625334465373168396854351471554078491337212762010001276429076478842767979523143296949483839638437321108214876903293551005096097171869993344300891202123580531675981438258964673671438812734151187678416496471609568822967936797423404912379876354737985695840105349537158450567655986425244712723083060117156674631448230241743221482689267472435686620790782420823041511046225237681354366431507886812425629034660211835912505957422735452369281863505236773634335684229587148197949736879648067300319691325354519291524187569198932899940239437176607345569923316641615267790822035619368101519445602319885771669751801738077141491025521668996424006566029117019661957032394259896417312534533074499140250751299775593961606029517859128459028433161668820418068229089357158437665679573008316403471506261450075241767969774481849029802521757032172672970252338799791742333180655699898690750214388949144919291719739824812462014491006556172067737381684961963954531759809364398844132553515828671229669675255746628700138965533359028498399833439817956263736656198730111546585959991015854716969958520360560221606520156182967791935089279216251417900331004612577875519331084368888553486204521926560992984977031544704202003167182052846665731161011322592795339225251696703153616697042920232449758660566964985979940060425802260273970098067948581325123005113729976989449591879630135301957934967742461183233132846983212801413793335205829213043636863971989374544232318848218050746528770473120267163990878719169371303540863815840648752089736466864280939618629163111797325627435426768660543807265445228973214632458328911325095980398326006370358488180361984730830689601896533661195547638943097523658074733356264968314622324540991023605346060847575241887484945682753985684689196990788278430361262966152720931432469212747804869171094482595585560551324122007842883306202339862410285402948602614026870393568090169344143610278427298082067989613271335252577511486568039131906457075951702571330615068144588538628239313900373334880823225741556555734997383197585073747205822078867007736161307988533302878244368070345020413732204351349321485946303241064327458811838206207413065563103856674861856351270064705517007334400034389631075211439123137980401922129128775492187401376986926574953513893272901649917968743198750867769216463199886151014614384014668672061408709995703463976378642180979961201604346703686099487300597730239900153950781884829216112169544296888812380183194777036742260277449312349245474984548457859863673868953319307981644266252818087907706634016989701067583734950378166967477653486839375135355885441781763433591441342670426073004740718148238155486064472870546087015412104046160794859439084558902057506156308504329154578041678543814133787369412362159583013701013594274092954107772369163150562918995494157738730619247721094420466622227946273873762911826492455323027934202933078010643265605336143028063692303498070503362637767670963956285883033680156681450249643603332173907468594056390703664669040728752824751391300079979764110333897743821879404036298093909228198351707829084877012364793817108634452124914464846430478757376317292299734177346971972293518022868618550344490625397140758905414752434074315160601506906310574721271298369454384001877128856967540815470309531482929277255184962167668578688913885069273649564873847826587522261629728353440101321075283487285460820438557013038688055151367934200958615990539886401376348772140986292929565736141138071640545034656741403071478982844716901397683109136759089526719777880250342147621799649502922297500137292865677710353516664584300838711253852551299510802186101987194886090146285512875443326589125664624688903727147183299599875390078747715771400191724057887610685495734785212151889276751107011060132673285769081107783607696921267725323233538088803926536932133353043865503503893655015102729449076428062136675650755352484233220675334463059497356503105283585122748159395717782467227735728888887682989126307488603359102601987061320152745796559771002874099046257661642855794865310459218220900523454305942851917100136264888421800124462445330525287915208977933852397687938082146004141189703199519231185242062329905372581555648258970298638788651082408827027435988906629572840897599429346675191818044845558537212738389548640754453140165680294838649974262080624192484620437420437841834841573806696293717199510292630148272778165760159214916717838785460867981682346060449332446579400022538744684982695321664061809972424907497510228961083457839374820291998411146334927615673114376186730905263753862949950572350360034003742056827567455957647223381230157504415136854414660183104932844554000198789316617722721623725800093563535900883130714038907646997447500679559798325727491425735001622916884151816699744817097414769819404987293844457477424538472399877170131705657534269853158213046724983041815637214050308040983825011590786615083532283227231093019659674330442505695668311276281986385378536412458227060772405347528462383933034811403431695718986216550184465473849324973768069898691198455543386456217661653446730430184179362314090374198036703856910492661947826010868709689762682143817918615353393213547476242027759381549451587975694510667671857938236021714656524689395104760033185908787741986476002408044230048913947433658915271900886967179256496481907185615037943850402566665531445959302986075654288546186957605212598506598378600283195627674429187086317229434593049043033449457251797460632039714402969129095753526413936334216356634138312972865064712604504498398655066644564011910598492657309880620253588441097091101273223017323052744235913387813180879386355063979638367771405720742830884017408990700825307985388994209679507573217636746379825210116149624258344073786164100223071210400335851900076298774345206077171581956506804723951332268936342786606344667396521109029565419715949056120960984022977536962124076846155426463204381734893936024000535221948028211404325763255606837378666410807884768535624489774460329451822221916211987814629207765150841186097632874286063030042595141267482639030535743295301568736645416788393161825454575052572054998711562780911208881871717488275637632542290019112617609305761129160058092584407084521967672095951061704646937326809697863908943223901666784065572007170614317867172165388523980501234787518316742388964935565979338839181067161218663688385876928056973734366878169524614894064503491037821402126290860525554426329790505861621665140739997181363797446774923642624379792687326474993351890969026604076221903660221103535626695765969016791775249022326435654148770652301008010562220641956038640205999641474690823649914109164619494407542078941109359714212328960586651839847857028815937572528538046050741604629191144895291135426949901265177913241604192360845215874336123255754446549057988633565736123619201470130264385702232331987600444687870825041971507470403394143688684018479871295006455570563744052304643926326006618082441204495124919223341691135863182290148648174751677748217457627556933365221268420814476207372222391290038284905029854889811086261183459722101821148846581717457379478447620473028350584914023620609627145579871008366806190354583641533650768740779038825793372776855968172574259011301297885807136626385708167794898161676057999422674381576128792323345935197040093379752508880408467559384852220063581040092479011062986383814164662639686267349651441370560911548115214287761728882587690864731878272735826460473692306783970568442507619176377441414677041564056849345971556902846894828605251419739796827772620549127545023399454797483568411446543929917112296695951216572916576022014268865872741364410350400331570910783639641572345414849664933555799726590924069830847546060003566833078600521868177953242279441167983357273119391326760515220026160052257886749149085653336889656669699770121231359402573014166471849774205017764058745170800258134426454878119441093263433367328971949224021775489250585066774432675149014694626586839161509394281800054544487131348085870175891518168923977509459453291578014325671523980223720414092316181673073587858516839226078140499541110315483446793935421041699541646209473138229502865580426957037718827206839801594643962736433732721133211783547819532353098234922550665339625057487938445955578317668627671438144299619771954587976234936150480587881306507306352179454400912748121359685896683401689970090029323911249365598487123880541227060954349277711616696022506798439911209225234220670924226848862313857195808245741529273419297746479883823835464983082579680618644180417036198819708293104196729394408287200679434475976850351634994694648518101363504701818225044702139624435762597496868127001594593281530347492085388814685552354532149301298742489706589003883058654263823736558676955123497200440200343132415916185440037906879555912097081761724321430875626663419389975897829843063683852539221338857673442056679376099311890728099940294247348141067834057456361090869214402805667890254812649196261711349183205482944898643151756807967863541873566954833648468330221951515011609549261508212992383679655961827865768289954193513715177519244769667092059376696856488954587963614386138580172276901564279248651616498923232866717172046752579333417634878395005676728866144959748918681400364125024644734489736754781791765925443847920985980341572493431175837953573582523838901957006954100409036341508589138014688558809009309744458520672370648391773161963858145996784469984678218269160730140825663422739749112683941019124677170585905808819291055145818173847921195686129667079257469798496594986233518758289310132838417824386117003429728529199092640884713053817540747179174826594028923269020466193429416925744307804337884210957137424911523179960074619275511579798700403230862754916602157067272990683483712303656595463800579901691857078272335514681981339981545121729694772982645628957295518842765834375179966524841909956417633856380679377308499863893543849243239703706609117214337158752488067463278290245967145232629102253272747718937093638709837852329762276924681251405081611055899966366426166287199314891176218917495423138206946877854293422825165052409796536138552660585010977569394471118304085513556651345318512980266424912568268182264611836769473320468180460881034577743446981014031669009466098532939980777256557770499416354650089794436929659149438288813991339316068070282574320864595457029036324320417244940612742425200894991092469186358387364216322337176275230149477034799715462250378569231491773189808985166265242522082012545823616087776010647149361815599423401936977302750770583105288344199571437265899722893485233648561634295622514316950529896430071789292759825427097064960582466372905181596380986574689698400661216966266332521192749977578527328172056316777961972792739244913870025367810525476672988647061372469564670398671618507998356690321698886053402055315389288547157723424175150171124889401051590111181536497615909426299022766295998242142642194891074727494087598271769657997700286265606566998800393215830158965800265943751888203586235169302818870552580837297508355779546511262410026607683983618962028559094715067470018088436492979795024959438205567112121599499892045143811395695148692508317281397665632545939784517901641798016778859309836888786430033235271304482238098329115732356523106964665283232781852697817956346355003810617485421020267662913110857164232616645724778825398944010849970284606769749338206018084890554867542805264095501274602189210711403327765477270459945578781619268605502482372825362104323144753466336784347781479111891678432040053243920701525448405323562074389755987255653717189529825255579664175161096863458725016118067287688186498634011079035280194906260777235106147928380663986966100862431518056286251514896115679270648492838855801211243244541211662550562873218605506135569811559612722686774125513205906802442663977215403814398893614048961144347780684834953518438756261564054954537383276365098247472041041330221183144891672365201303839145914661590564935811991960604606545290808084783575028783096930915492303164737749874436873795646676657472525481997196492059660190139517533352893319066233548047357583675811495377434983727262234664489708728831864799370953336991151626936497484386658112231871685324608234310795955606683884859944990671778750312461554502833160204218322292364382748027757509947015472883929072035212450587594510290243984830363730980854095816329291245927437267937160579235563973064722086132405183472248302413028420639106189398438349642780250374867370376071025838185743666865708726830827690276701494629645247979300373867029109858675806562621499271932322007679265346963899814678619995964803004806138598978434540038294247960059839030028343474934101770093736310630839657918076709308675430509264994890231612634934505866975842295138802708874275362804942049132181959081487826490117506371407512356880107050397999212576297195634548824549341242448225488517738960835396217008356515278355665148129369479469211957467416532113082003060664610085344260255788392481025345686262416784524127553121349900618365678625693617659118946066206264241189215932453147638088553279937865490513546920477702902905759262084753594636838673041942038950964054386726023600722238322651019854737272296331457175960912858945241619492135451537589922757494411721866982094852497954236032404257885188764562077260778831027392184814905282679588123610683013484072733357712991187951155228247485905648836821703903799395703187354688964945006404059306880036382212432027343400036920997531445414300706726436599020050166282625293824275129237970272500590730764428454835086010037610275625777502498173047852739444080241361206499861315082455729777156265454140054145749365307990246850974906450554815427995232698372907057658976998241617793077765512986826121476155135640581991412347149951033358334147593076087494308052770249543382038310571568774089131505914917583589715542606285875324262958195090068680561217783014062448623511973763548642072077146002556970181722955885885676136092516151067297046915570081744490401349817866185830067044682692424658760670932339229379757402180580167049429835117933820011227528703566196543989950511800673895169753342979982820368277735238276955878497550847796053064621746066497666780586296526075523563484727786833053409132960171838401464885958350980992413208483938722123358214981813726673365078809736116933552382064290290054083360536748171247836468796289440340076330865873948807307319674503381734828335283328662115118368015153195802357148669725158903766828288397371550300925093252832973882463336884865214687473239751308805058241469420197390636037845511928752617942235891456221289394969317494527005142653939629384315651363321275985221547696712070651849212805651552283789623215487904009387403462980802165025413741462980866184853697845893595875631752153010261192914887550952776338776456628056626133142211961278772885502160449593714531942794262669194461094044664854701303215303369643576165979277299413201973336456049333016321415590081554915884481391999247042688197655225327196841961147232622560934637603338535108789741384954202445121190323865891082188802226305712630860097634613334220116995372655636376476283108578688285328401697598488834970861644199922779419284828085689171628348882572610186107077702799661078358608489684528545511173786280490302289037059397060929628020028083013585672540655225450228476927706892837032750912699791004240306230893166937454527231223294599313075019927743784377829224803843654377160772069456831447963911231109725621514160710862795838594174691240237145033304854044160433887218338313803114185517642341197292637762545807170015701936603183793247399500281872310259105141221643896477596374310440300898927190491750633643756968643447441159279286396587507826884648184283684991120560606714281012250285544186101053543567753265302486190779236268725100976860214437629529610557204379382466742073588616909755895343099129363753106634826723960169039252712171904115161645174483523646236242900767255042517637614374922091044847558398950000384487911565642732651366900867185537724028395113291874053260225413441338389089079518640610762596973151367654501117291552199419899143134966742959273386869343893765246967444283093204851347012205715089440193905037666192747619904102770468097625991118083029270896382861000350766798537224130007115068766940684752248635985002409243500620121008283052398204982230732815336812542785461249450987461301674620926566466697137511536013568556708148828550568928729957980736924842372215519802193752602821922401172653319185882093056372677754842411065050810589970290462876761933982041692117718857804011378058389733106899069123845087736706314676053664394273637438156478497286726979655134107478688964422960480055229134726017585669310566379726962703705626232636163140718486157640533443139122531813973154182557418898248524683630154712217238533699067379434323531970046850790474009030718453066633473189769908048052262826363016020814644215275759692884622890526756638370094055264320379627890461133514962117261249219755417319700971173443826498643958204044335632947260266150619629174714098140403399337758400727087958799776109279184510357980891886017458550084710047507603754855420173905156790049079131621902103465693881530532697780041378543037110589941649422901269417307079280406936509189274213406321322845185455576020260781551196528857270745025026582822363557435560484261590489395388816624573650759444316354884884458398043130339384351816966117166795917727550911597808529650968061094936007662233032906656440864635008966942096800358305722676315979938569805509379899523852782706217709283028398766541251297500734918511127539590150224184046036845295957254863383699009339515283168801265210863589948663620325784876987733909500416891502948926702812769720075195032217005588646588146446608287977061681204543585155798574997795182987713388961116339232604278588267596981909738392068660026164068904919404780602895788850406530986196610523384282044738916069442819469773774036019347228862761907201414182796345500122703099059736718991156848855719234182321726744543818671660746900449947923514868670655971668492738819124229429896493193092639663031173868071963415800874624683295492233187070258221196532471257222245808676069591115860649521998694269594215168060684255839596810682387716568743278196147625307318036336100015135183846380625443332013587379502965746922483484172813320025848452641605731484788115210113626680177685178114798892210568091836098162677208682549275910136865263796776053811733497599344379728385531269552616482135327995807793652596019163756495578636343141112550722736177018210521418654533628534150118670801739880920941953062380270353834346802743308175406122360371086932922499087605145221856211503009346414414880608140152690420983732347966661300947408654463926900340152911383362399490839261521639103274842546635787850804273949246979377957612706440383431754763657783289941614540362573191311125013198752785490845134267213501291024848641977493304086131136480152753069104055542437575163686296317492309263606379477962368396792033643315097489808861629333102909086546024996991173434417883815260595909586234003168935297656326430794894102440519743578026030043559835241894558776667269548667436880396355993659785921096681910746175098955856524854075195792218245905292408816088696167333182866840147790451626977590286542437284890450332125362925947212038296818465096291403120371403219597979909040815922700234472163367936026010375021846892413950598580394482766348930592274402054341780747002140282663010049935249091311495730279712391677803998517591594157626571255446363989636407782943874720545880778011518623777786722099463596889837972844259878239474059394019299023057044737332464353986639735789282669766818640468916852501961432808685943314625684566719958068419297688047160153634408637294812934506622673846484635463624635834829762383790873424784931804810639434845231903959618084183905594243027656908369878709318231122808577138036440167805438244418645337124620353043581179350671981652304188813716835433084166131415308693693161405448611944741942753714550002163042297021553025296583460531365258503588590219294030850031164606119780892291143077991574700293177291852303391545962991303150649592791636836486407784201307541617076347552696376307684891692756888123337915524619762593634407509428924008923705452995769150399459335118111293228323959895849441320559664457222676940678031938259349602073943530866538294427367557416655687768408752187610278250187710676508653858048478558284154853517660511505056458286503923507813236306039563120975591876401901692010692034652561828684314052048784115425641134382776580422004956852879176876737023300548302935492283756986605579390629130127523486576173149246572430953283780122614622424380792109739951862729015528430405916512399151001506252298456902406813785916674982034601766332949809123725963151535541540849699412160210503366186316664401472952292656372907634868286166948936898795418897868198167636492131477166955809903901624503236010299016690009672582360605133389550872772823262516581943791477059954366451203895054603179341975210776366906879361717939448297652609440154977621997936923613188098291067742821430757211568310809993230924833920872777627501827502928747390837649212288321444924979674039003534511850863630404092971638067417212735026216701222337233118332574558952374004905193133338942458890906161937677582174200958552724373132117367300322028647040063878238837194454200655147510066034444679595772384528407278497024618629477230958794784321364699631676700566712896433208003880983970416042882887127914244753262278075856262055199195989274401776140006524727387271667764368588045540375996894457742026406833278076949163604683704096664197753478511422895647540856525782637281445432681498672834921168159776780283143413524655132976118514531387383217898767494991019229661885813133507166660148270276068761820425453895567077734660509728899955264562215239204938478470247503857984789515080464805872710653763401192260582908453187723681440716161696951336685901875125810634608800463534261195405490998790495324595505452214831999961058103754194721287377996892867748463228282944088019862464990511298676566608391379185572600228972994761495892801316114969251340638791580088110384551308923092650806458718384368183054634989155455948749489326637267222899553976027528504001329451845593503193029364335776576510697746696987045354118025098865725624987253698558936882810022069583928837854744670859795307228501156045868638265734198250463390052537719391578684570668722941496170665223939828756844576430067745793345980215454195034270471929103630533592302107350683113786400818138383740413177600502414629862320122567990518110646224813898128836556513685631023354724184652861785135071666382292971174469142901209037580578744798052587525378766322537512107835394017442139353726965550980715073099394264740219731692569548195019873984038691601833189606215711691459768980738366508027096651144194041666846080767567780929344579058271722860762057049677238879864074989509250424473017608692521321624656206643101000633244802978772414433417762429772292257621167003114018240823472797908493347713487535845871877803106015186466033270780473789987446311192968274360102528501770616191739022988421370605670567121120487556333271465225576797197686704979402287404875471895675842768025489869295519127292381599840372026963843116881306174455944337823648691635064998974770629410069360840423456616080702055020890913020369636733711823868059645015907239139833060111726185810382701003820615509604705718695923077107855676348031892961102789615470127653338109675414371949041609150646663782730311831049905878411017603810066144637538514723629057015283424010006749677109003499965131135460972062587148148026716583794198411072993537266266969471407546844496036178991583659103590202292637214839604429318633372900300647471231216661069778840526376884476591050878900885718739895524877804635535421769509805042804733289264384634843514848728387973348771969050340377537401622422932062730788114678251224257290722304497719994539510675292452700020104882881467786362564289403565013833188909121031101109033756651034423568228786297493674762048391450684230363864252196992292001333394815583641153379333124075128433374190732645607193315722182326140293674471866786450869189400230802415313341927469315352432202562775174061821572813304948894160634193654140232276526262141090110759522729526871474252248865308771655897577048602006552933312084163063860336084916983182535270475935155708540333416759490071502790099311442763098067012627676456971328058379340533388366448245890966079867848049479111091003676016338758103884655878536627934488006342988409205279970136014952415344758309119695613201378595884615722006348235938053283141760514625595111568087606977717523143915122243898195037492724828287722951651547526840544824603248230645430185444760908176205770367034978835321218027582366619448062309895745940825013940907413608749137793986421750040592443969389882483926362418502404746886733666861797382721380732440825540212103102882460351793364537499291022481168714545130239787981994491314191835973936983271197911338670365936192797300543546157755159403795296294490091125470382218256013297967336768878011878790824387056853372048086424057042614237115332150599792434896207944816319401984558784924878209380355051937569788833300462691570411124955720554003567063363459309344568793742260202671909250562811511691841697665748960965503537456762479592030224908610185992933751133346326561905680510052820198709250441681145404856516624309826516059157288067205346700285866574510850832311852671784877486392876466848532402434196372419872638762000299467429105023353712673779474039076238898385490590243227758521527023759353479859120836003325416345568476700383743569056475238501874578345156367563251726836460464429180334489171130012292907834064391504686197455347115938729227808296478131137655319706360123895116763969290955213998174518848211004391131140585541707731016100397782784343962918065663707179572724814073134441707366174583459191519462310014499183203915405956974293435011677646741675080500049978789078632364047510052896898832050267599180790022036534177805940900491902852441675703103122938670229749903452422582371119049496851559424352478569747358845254455618738245423423047079126716259168846327011570800291369712961643845483716153949268322403408551862570299875679265166062566449702934472828009424654701675376770765257872735265218044145588160844607811638927741110805081526990692616304499861737261137835596468447160964855249444823180180673999009629922830363518151769699408837368917079718031465095742347943820329470532440002798745495920788512856639727014082641551565947844717452231335610246733519182887617804875711636080743330498701752587710674280598906134274166934794436761784553223385435254339052698960112096674869627828793755717341627387116223394084348735862198880031110531687305302725754278506754263008738600885667436398057907861798656222266429840397429322482376348924895087905947162562535568124608886850384383661685939321738274489629650692784493189255969468200429732029974945960774083079172223682380974615609745111909664830075342909836479748250640643979181565934517139717077869243668444645920904714633626589892921802716160397349028473802325415781967758195464193973182678240987138833885856811702377826457232116819289358222552592826582037524595418686190432143062718347745242658517985437882810267721593948514220947427157120275162510097860815828521661584914373605176014356389422427170466100635820431926977055014376168935342176067572204855346695792668985100182862918692111088803717698616529284758859016830695494803056297696061351093515545916882630070388790027106515742210798217716105315641503920657394039236620807115719434446710597956395397722218620557680980743329602653536668479668455970320137147071147305619870016545302750894517887652583497654989052996591358642069668933856890949626637093053110859832666823886927071571033326315210532599488884857389806207922263929083055452393407190852131531757290338576767531582912543563705780295809944032879401221162989909592651352853439329392967511351782426150569086728366657629364832956031287568222526700996446357484031701758134533405102423608384173156052837709955916590910954775968098437691412789165896935957846190070443430639005689223622960165531475299561095776329352434475199236450320433788116293956309864459260292697253092808987355682193554402405734946791259399197249865018778360242230051991659787847250085602270030733679884946466981547737461640867601627629613424501064119223543413331214726588108064698745830126009250930952631238969296348959906876250549181258598020099446471250858359211269371849088844313129506473566617504640885547896943805300774354981850538880132053663075913654434285024203602836364628152536546266226876318213803432530314545114766257977285507416419496733977719232316716343618339121923879640233400012853120123719860985867405822108917737308325825083344486089905834840089561132545170890750284874434420882603953975191588271519835673781336452003369732759157657442956437412421654696319047851394913710796728148887580105198902579887676479477729958592983170146568021159405140331028546956697248216522739412778406251375201070217394314989604126817651688822848029900517011687278388455159684579291836421899394171523201580974251245262891781747189481984935578227048456398130971034603169684343127173224577355128808420271235895140614803078950452238376560540133638917548405546597347292688074102169886499999733220870734593122319507470405495723378780688716311280937225889999508736470988621081559168747897848134219104256287480341078134542462845372643219105345272264194005152490184430992216539761600998795762313821451019522296342181274053995767724465376602997911106078071704990201378791037619524104946921310549596386335746464698951830847473538251558255401553718928168382538153833226851365134934707277120362617715555762123623062078671436747991131999000621424198396377512392790491564302621785181068114784914731170275938349377063142987779599622481176701460731491005249609388552276800972637381875204998599010958725639990478366251080037613235906140870933093138515981361790854756644950031538489333225290074629564171997747512300302287786154846396342713274638998582259981135275737095733931039144171385002241517183117828888111142135379376538256444174102328347994033000573731595160345842773572825007624110748427667150789225675852984490602985410964917045950376894747130379930255636184832844184330190160399051931684765262590814616317850311603171603502042555902701610986695572687650611666224541931665759822950833484789665783702933206763245245478918817629731076626657317080583376542918986654942966228527069109649840936212836484104743284383636494423272314756652767213232140504706973425021276785842197030756918974510976564717830579118821349122445917357290771400018757560555393956509861069410205726835598654028717223446280358552899819790876809612508026636966426263414566650127107554187936634251923130963600394117548393863548718856585696511949320422806614563482900920173727917422779636837573908439061786885084667867841846004530970234967060743010181513687560734154250766834598208724697706317883762888927193663038883854718496809925227694469940571089207142072299971130008027376477489188738571840895467878277336528629230107155898068710884549243229077545211083342159734929959253107651206854601499250766671520031118030387065186326514005776491967874619016797966727273854301200165571435095749046246595169260004382648055518390269267582717908513164784523559496666188633952307565932489831250019075028751111246758027838826571318969351132813479082511497595958916094130697049514576446604789576968669289649805961288121662857466407950280467434853651894815404904997499385855143648973440799641727087923983861952470854007690656980166087320738881460842782777715047232647620437157252231955585943258910325420761025653412652511241589150958363793109716984804368623601449838507071133328479430771922155572818670064407318264961936291110730394013478641807889950696992942362771948775702329266018757164281805699555572466845564698812227538959324895076910039952951991273362067673438122614994002537887075959377798101911087789329641094007068883164781346807664196819551932084303881162924838446211052464337661765206365992814945296754993497595767714780988668055262646014996651414933489245065655094255662028649075957437336461583208195786195490759571485318808477898317983695227934614918116614053275573320288034046936198996383807027891050123630484121691736522170495909115803331084772522078835372755668863521571098208535061722455628459658759325829164441166817340200237035448140740273809182577348472762316807075585247220219326154513100626061341021529531648755915833387024756660548308252793769662443489515779829754245385223058380803382254019497632847824800156684812790854512732394777124253087085632619512897049014663374670086173755765410933146601410402769423877021747697892877647482388712141245669903362347750351134822117980106083120107417458811118950134370314011164061566597701624639293623893170129269937719298877761730440096535242093702928461476957200665527916669978146477221171380875592868899379167525302141411496326080930773597684825681829170445255716031343536997830005931787721374407215993825371006024944367070611673866103125840249021667631931965211427137481066865513099735779918828879520370789346624281370896064866103329138895838910683762477395354436681026586359891502764530768373467664681158039544154567856570592601012031795550349480992821279210470556576652548741902923227997587046919313764905574718859969198142551295506013387241598720691256417892897754841812412549935508903189077103121727610757901308463445101501580539323691529373137484867805984927860003369587916732680826131549620709927592251642441707714669522372466927034716517525246521616749851957358659816196416265443447781591462206200419621867256591633517524930300120551119350647646112320634045612277819922357568001922929252472743030705897082917702676518801634949546420093847780005024878875408232551316674727383542185464019971697670919602379292620978367272726934251145590392729176516799133715216197936859083582614128550612000053192587316686679651676815878187665989252363320735237576717746521446708874577561878667819339151601966445169121242948298187461659112222117655968767985446925912796739757136465937046913648124560224213429788413703963558464661651299357234083930337252089804352978178211972604320427437621504616868283089560056550701931756303423238041989250657256861278558213103619282904942279648386725476528052378020910464590086875414540206780070360584560002964478727191145372944825990642544745532131294571699696237219541119474246770464659562410360925741873737815285535428532936338115398440536830970900547716818840887350669508503587744038639982631310254280586310763947018096248712725968089881128309225639483736434073533164545922201150563454204662211865538752917771130797059681597617526640323487671026397084569020802122171047094545364744086195734135951237044387889313726593274034935583336856163836948180571654008816084850998965269637707137508184458115328603618373804616275809251253316237116878599051684696293643912804393967180075320193782055804890611618103229677042505650339645473794806875047252205227209573471689247951804496880398811503859704182156006684148901215534571685192571367940445471107538352138465590808740001867283720979400797228656721951771465999105212446280205918142464337809036033070943133656522594221293794481583351186705111547410361645071750893417718369647292746381358488861463436706856004626551420424268678021137765645350270553328535722148635585006604351055363404136208672219161227533948432474148187440213349381866851250236161854098206079634401206476095723416322378254830891815340980309327525966651334641722527874263735883203510208370129861987762716329814882763295116676485960333599829594427827693761565730055079905264622229670559509335233001281713550702984710775143853988940649586021249463199343776481034297515166771906620312897575226209654827895036026797754700646072987356785021666429308260363711699987731195458037215490743820099349039004344011243952308731892651846241942803142583817160795838897372722442433286321634717034411783317453394021876455458585479203531153979523366514056999445788247985682413151428656559477990404083660630193670530776690722668733530682824956275336737668589123706928099350677449042815926909392594118867008230418372466341615156638217594226905882108875030881076244950408904971929593483264319700919287500511915608312532853066043943490536614406752241950332322667820062691286790416727390577848799233756067868686764757822399000579251465160002518809971725263164998498863901594820329082314977266468089246695101992266987836922082392999195538748820640276696905816146884862896083435693794327316013548458081136505543905887695472477361566266620077698217855618062773301027673633797062269132598133541860832638925968944754610441001144629002562830598093355141525679836848205955284321947695310761127217399407295129582983674218759078668817286105629216624327859378910367712077352324191413813875698017751704517959527298174489308547988960258115535105763559951243812834693262019090219192094609231153057679741273435854731544338122364691171517614696598651422139576999395793890699504046879904774453503145415343873176752290190356448122692226955089766219062895273501786668339813345204874839289679517870340768382104699284007229622917886171023263404022733035681151371541193635179311279699276843540188993243043589373076368859848932234131937703845963467986705494269389376017975016002385860434359216478682080494936039565505981529261129553751845865062122009467566898265971074239838158999158206737297774530011544809974879546207960032039508511418857297226940361310626670657944502172371584512680433348627628995954602313948618399970914104497591344836764825214654229202615183046053368281557531519793814555733717147084335142610630962175176468739612516767137178194955590812490284631137960350425145729050741859046307096452799116126717252564917518149196860611121839818171093087014987216259761489294182395894764315632210087934109494125470620127481132998656479160012874250055135587238333135016051265199872162649498763458646611185893538938284322472596195544014850947112434771536448998962940890018991421844110010075183261652076756695598061370075824147860257413058079231562422608585622292349589087630823752767722614371212341795825341304917289623396966102342179323512240437473018010629053963916353521996936577132936239711094319441584041658249732671036527130130096687578788099129592090827290961228726577674355647067447967772177089074478696490814729748250191370013844487098272712677799833978254388940683791849075498822712647289246442953571620514063371523212464533298439750429432839691604236747514789906403073439833350202023084078999349409446630842995566361892009705189865259882037249407768211660095391109072511857815007961308940087638401625495477690383641047549577741519206935893657529454890087816244657635640256429403640109065057687287672153538419442870136118784982603120496898153962316769833951993379043774561217388898851248441192462842858552971508553556855365054068582692829835505767156209385816446093573636483179877486282907237379009985661756588774917758965453862857444988133777828974919327358429081061911541333601956345436827755433965805463006260950659163619601798455437560035429063101227092783415860736075811471251093081688880098451564054111146844335156568215965968533166411872643945823098947546008580814957365052891938949528352452692018655705537870445583356290509395412238185665966514431452793678581805502606459310198583827102077489359732341970000890544598459684535038870930781565320692188434618244164888561676499548427443013264240035415297673661424864121141112701710338075159051904686067715711994483184694612625484092818367463561393806106945900967105389078230724036842495815587709053342420567563888392700026904569464480835849465926423838201081645208283932653923888540388405984805956110927273989818623694188817644877223573308424096761937620276568887610573492107501713983578935565704762402424515686139141362273272733412182155839571570325657654818505725411862550277139257512739534023913586019095337879933607179847132407071357184974922253629932758965650955135480082616396752783907446778687720299333470206894327925498785697412245437228896594485646092692845273809891920310019013700453453112443809231902511350068300731834631026798474542704318556896913937669076456297836632976422799986372668747989108956133033275210251071199679099186502270654313317629747131074132330868296494185705037633753555115000630181845192851836495438007985525611738663904044073160030629309087080371426663333524750718897915497776979296840164450371065254415977531661352939133000569224576290275730567804380901671348191129806219195452513050324088963116656039085896360848641839417943503994328237026864212839107311057313656827515907901868923996278225580211142072305384902829623178471159950287947936220531559711530382385940359755992721485660943274049563683677005274747411610706554410520500718578521754516313685995904385899291305426615463803616470892723818062278414811628890364090903052097981442212201881931300455172039594976873871508426559475713784491825892040122046611443473575730560147477928801087991702687044288351669055446079130698205471794563322634768537340755581806873982259884536042737253159856992099497711613410274577334003421781452843077451276412618233886271398857905412541556712033617459800002241576744979523265855416232848491115364032864380302615886097421270390590312985329021879738278584464014235331394225806134486684460110991257043915454168070797053033987598388880521089658776570226606316680914265758460428009454321777595388420299788331451713885718817994422821819521648853779832376057784315066892499552646659712689439067539150929108809195963084961904462809006951420799297729336972655928559834960901685107798837518195635062939898912415014139066541853189517353535739422069528068897656520432136491251852082486095329654799333513296703212699074508253968311384428357023733886827673013337187664334775705806892270166882840420537720238990955582762740943937737552532640907946420102926047246479885627259504372888965803764954283850643931047952057774256770463845826486518157842753117257769835575683147859770575454895185050902615115320011738652614692575997939637347083652891208631117868297218714943101548333385445417259083650047178970643950707830400129734923389135262801960965870775486982126825850324151875118409150533185791670064867259726856922150860781595013308963220417778059481883050020267101382738455779279708386067074537443922200761971762840382354265918585724228641485719252605134344057505301743014185890301724359838294128264564259480632999844689016019236556998057999899444036228749098208172676622629776768726821211998222252043232896536370431968498581947541075347666969613722838577784237998274127705709636197828901321172851919967266911054221308075612591665098878211949892364932568203195833717777692383388797558601438467649051254893899046066380553406730855278715114104405409720969973819999616074539503667759434487682444425723468650748148424782954415026762584233023871504903128114215022721081541534249190181225212074642842080956479119054221149547127154691882227258485948357915888831281162637509023506003573752639581727621119155514079951169185482326479359944459611688897292938535780857402775435393166487090051035221271503937350444996036241214506474746611278434112015916254942887736935680678152768974001159488984897417815515403601369369581327790398477777737979545095667571843912559839098243699831932784671607740368043522129802640736695472927961838815909417335218306703591372261665334520083791598776936911100222047656985350819191445979271336407016293680272549616147193170961059664909911286452002506430103425424252639586760158877347053209577611970018348585269309759000252804629223011021460283725537158749369282104674634586145940713044028716402385375150364108648902914222825478642863569966973911564405696060485788986952492592178494502041768580369962851596522757546229361911223838897181520421825904934476790260307118823191057786387968796695505489983373600119451573476270015473155249743152425476801924793255874540769031721188288001478012789301730575877437817480105929014240766417245419452497065407900102590891626224034884921465293063893834925930294694366103323782874960273292960441755619466101691203836611125224498041330089903076492358261747517966929467498726992043852975919799164414419164145271592280485499076358080049011251767433269750107197844432220252034399019031099692516492228962031578627244754731145649344551630787437085058132861559939303812782400075248537185445346884546456826308908799581210692154437790775674902432613411000525333236477119392471467481032273425784512760037296907508031721703082738361152826964167171109550431022669809430274348517072881367185979845766308603743586912543985440432004609798335861770340195733506893343719392264261436335927173617235936603085295434458280968233161054424937586730051586819930888774077861975235325929160898545211371072965734141608772034286068957189800591425717506411411399268741509505878064890577536857716765557380863004990672411637641473475158816047158917530434290340845385050563209659217693770115239884149911600758687584660513645830674050048402523607068681779089169811228357108165203222179057580701870069916164023145086744094214727932833361257022341709647552614148012232040421573131125709849965007517253923668014507746829472740522258731960244085653824555454842598223976861156089104782203036905989684524530816813231434397254227770038304168875443985695422659713327927494049806007711530710984052528779726066852332811576947998810318155393043018853199536577824725436359490494761648597249553956045283061322560981469946225887554512382968003282381314009912151688167809775404922920001882557079482334022342616482725670367318597983801223042057400637792829143211497177911263410494514083369318187265063191604856924157209239665891370347466908662118425850975330724957175750466787379065246241638386697105059963760587317222244346354918478538368241282022271097584469881871967624612687665649168245589784400558992888552485112330446775778586719551351712467825897819627073866684653650069590825667877464974309796580780946593669633971928757602617683530479469098003161280452402980485260288860157032962080987281460618966917620848839414502434352982192449977181235622201193149847887195281008335890884735135380296586412970146258364306737688183290911291417165734827425242980625642092835644214223499764475553174094108745108759960648418186395107130736180064728306744985890988318303739441808909652365426220165682317102123023534583284608116735944244492857830822449508854132382260881571122929018672072665945727371419192265658172541737087180267699649840714627204813763162576699255746361139369469984182617902023931213916212082132708369629039429740171524334190700419349530606910204532427028328029965591506155597150669876454791807975235330258272096853602584118035771761655073636796674788697353661525545565691045714095834784272637132029977926008137435298712470182388560204987353137750625777297392244844332356763364200407120879492684470149290890377238508070092786436484619613569560559399557029625803940256408683782171461159366020262074830363389482185231965052078920346027649540950067854574832067843453489893970371574067081756717335723890175580488908179315328287297010709865064557183508661510864409030648982750401347937970894023259876077691827953368533106615855391807460808393926925448698069404008578710019886552958078481589446985295333594221415967730792906110589366742657054385369856757096069309643550371578679795684682458869231100976286430365722574176778524435674085466071953661186603122934372003743899827925261769063738741982490976677781076954127699560126492448105419217323158427829761037602642722741940710983488720977067785867137329642661719522276007392546236210947215309781920006376709522309594758371234138621621649056603395841080739213399290798989969256526245723045158529260782234123100888242809929747798989309045806790584426611637377774942433977591899575947920611040840013438293507139349200049037359959736689787679705968243180319785277394726373301164307735317841275633240200128453927407012644970466756267535102266421244451780785829899373445174044103537143006371834575455870931899071442867839227787360366295746964854317109561158515333379714212852022207504377003445668895730789954969835032855556488418822272497632836359193668699018874728519938799986740037779583177218594708460519442977789568941528616763066294123319294419743785113132266713726855525977430147263028356878234169246635162879693127302093351530692559606803716031070740552162067219498188202381256105265480557370612537759902643031862713715680275422370209590709338030000275331160549194945766003802479183537405246787123536130514361453858059139655913526233922727740238539503626110250070356518631152386093641365625038384329239321896248899724023963916158270033439299943981804150300489512524725770565194095929494159268203067532973109644789196950902083942341202389631479185394430880346937649106427718344557005582119060711667309621400778474398422941052987623412233828556095181602520688816482302913147893778292284687883003139999065660970026530310156462694350112996416656484679955286590991268031999275932159965281035306358012814969801930651932416840276709870547031679313292452848645485953446928433230761038845393380296812554928634691934332339259325026748024691050633597405569407519823226722957485363594640712805057501661951875407594981077135529533661441568702665350843308755313096999413401174087003831633940627838381203085485794638602180800524157299147450424836990463175074309215933079910435038722253050470723793064211217480979359781374892344044785736872110535354820787170268243058355332096442128754356832545413874670293326081085895082501514951631708912367414804099944254379692504694114653050587242460904754047501621583274209152563356131467477716895843737742034374370453890210697075333970819534524898421745258732695394356416172022570701019575767037940097147844491028434157064677590923022243965291350533924630452967674222399526287796656836019230137533379892434563690660143376133736707736522956834360543742461521672229358684040555537892463233486118939744246579353795599992226074495229001459273099693045300185113389632610765010811677975370798360814719092710354936223553575609765581948697892464312854349999082641750983763033896080690055848404768744419768508147266415527583854236641759192569480269891716513052592080659956928853376756002891525338796340958614718535751506155546720525088468387794326474620350466693446273985386877612621113536284184075627414019738014711209360526550837041375891110250608112391949573209236511889841040858753237514415762400486746938775908278324795009890386324718588879357004777934423461457022581172607099752562768773003754364662916931671137566531993599708962187057772320170344677819951670719112865184795628763221373736722818057878211089448545786597009093785920315005311373399114932108655627475688405788974791685416099261782093265870989410169590694602821451497337132556109808347557000130574650905574890527649895341933833059011879704263532631877752822143006322655109431212828934767424034530689524203060242476158371177551150981846239535881327280891952179477416003771335730355907221378094683785914093887386108440569694988017899295697665202671979664096751061295396198997300228407614264226038169492367156447942743996413978794128965967680872338535326298446899813871037433305435693944417672249146488905817142514340349929762074408634842128385011483209823248677465673564395911334465257729200063314684896814455164522963945667223240292261636169839190788196088950757661536838355121011661223971742392786939276547658136634177997265798042476414284593401500589071978547549013926040351106721146647312755778124730364048593200055916279239585578849112037481259719759726399898244100495846000693595030842892924444327769155559428258698517632925718616758243323786268676454047628288842478649446742721540110648775605619876736303004825693119940147795380573075303862376871207943322360598826869780392882160238266202489102284049156680580645549270040720909328397806860926154940469904588978462417594993826069681365169855174373547824716521469998493469517995445535056619104688478318835937118899996771119432221977267051114317076502632029453767779679313183571809218227714684385220587916922426603814778003057500669070262081422243789748017292947569815105019522346532543163131360586739593764194611337519823666080929524087314919644669131675439758066325618291596804843922130142433196415695565686025090286176900846798122316175638801607658182436749526105325634536007878794930465979354427407444887019222294956707936739902942152705476032102684372880119392935038608742496202203451285588239106534763482974889643496878357490232892824338943780436407368267512959358406196614342627333136831110380839542932060213703384853277203621229519942480738081621415323423455074627836595176490401229526806751756518331558168472379886285627369897854117234251992071372137234388737445656557657446656601332836815888038925318704121444932532846375558849712033322342388220253573054658354767820407232079742785027726837567774779056082525606576578121797849293769777567651343733968783944965225697514595192109838985373724763896417145933545988126434511363216205733310306236105245773297365775257206768324607750648230850858552646917384838255259591593501001080708820232138747376057489282333063893980000031495273087383830037888022732921572231921092753686767768001008093439362577740480059783272509091576661245642003150904501876076978293894899438822508080851641634341172994355647628546769623384793179802311376199628759205870401505093794683595315710159148182473344833153518368968366863490248598955056303927804399233477877099059081682416137053508809703541653276581188167983732461586059561681671637609086193549843779340122916090511155419753745452554864264408798738825894757526249331908227673323838135349808463791381831883503811685947813055075755967171786708225246045690954764377238811966249804032316896020947239344206562301391758674374661446126076930840840995311032053328384690100631796592959896158640343156746831658016074652914366885074021413922292840729805321957948449962489762201323981624770961659193071195919549306699706464748717907407803289206638589259209064166604436594027310101378500739464930413073219083687196967130067012387487628702727328396574485758221009307870940482122412338324658022424194688984593705317020614786400936126593620133151837432198338201347837436872441576866220955167125307568533241413981734559966700075963866397961280985004678003136971723503447641813429687093372043843108364147258374225555548512439197714910170493591146145953197221379035866452046633507423149479149108315364835076002487396075921244399557589527687885843673834595738693942213547830526752807728440838724274089354806881206769249862382714245116830528734234871288349880527633653346755896183845330469353995567897838631202184117431578539704020626355040169074383293917902872021219728954841314001861404586850833341844975074797084957615886076397192165426678753345490044296554094037377745903963937878106277961147796050696735352701360042639880715426313294977953564731003567596156132593325076541924742892786815613570782389110854938878129039242894784236885341897725630740259546372530444795103579607409226914765248269004649256078050336677697737293369848540176150352653238836330308988217810629416473179140879102374159013093907611234519333420265794311366873243800385074887440446105537470035692217266574435803104769900831852354928765883097429416703147951681895740460958188290493595621430361078673233450197342649005731397853718660695266907973844624286204212028498852114752548518866525648679577678347700689208250699065392788093002128841875546131663553407613671652035722253386426001330417366843656744172802494796950169072596043439976528655206647425933190490535078642261788889364098902523757867244190161569897131975315598408203589889031557949060604520938471622896754675341277985720987464473480998039248688679296508957674914286760036704343114617847603741527777383839651150356419548386460120744206679717779740473440340398001775751740880720388865652097047263620836412259109508270176117333592116496805095128966629078910816719316220919715692133460873793458685434025412856206891845401346192741670225191668196072793663100087122635559630390805644047133926588140388258510498419871568249149152885361823434823252315471599263094598678111926295720432654710669229309732186786234751326604930972885575541337675345539762896663207627175126332791248225142173097489342731035898016191456734785922528391908168598363124350606763262390280660863552554338984834846334506087371081329096439509624057680299546957807976761569408645373017550139561420405503054650358185791174819794056392044304901651319083179898891138867682869988561399556320930965253394863529496563476124443721988179639787055669231945491465706231469420270899198582441684605007700051978559525032631616679981997439477359485923737532786257107985445762100012952240019489194589732904142808128430567954642701725643324787499862610899972364434651414139162718289008525463637225175175584521121553723459917234927308833958895487107272571374443382167145405072214968210137884616472676494717072993842912102483863617723211806599581901891491270209702480627341533060870776206217324456129093847537254267561350661349603875556719715169413581687253077118362578391588597321898257061366959426548607927169245808335899530926910976690951388329540693064792221740820348218662779606196360603643747842409487322272727918740549189923952388096701994100061642042814160707359185738597092356694466061632525427152380729803302786473464170861811119699592356694982992194340500187175254548898322945943160214759455629269523865192981452579686989394899455251686940754551987387108840146413334114209559707786071024584957590460514482519223037857271247873480169330463724720043034850418596708959883060344577142217558828535830202886254022901780545904427895815910852270305686126872777487651901038567699225976933531000062972549662677154544855808140174330317846041819919569503280573628055275671679600284989805433044050154805057680837745167871772456332535540651199558929095187867059670958149495273790984777016769996859916183842206059583884879283443907461212295333628826587163237361764773814950099777849419987645242548232259870774167555153496347478734125965841677052640136332496940149216574270702244200229416191976929613447162006387356996460363971446570234475830869998274245987334340951859285883368057652276504895637164910347014598789636682649286505722544547968370784583405014866932455731272595662749008384230971372875415645656678801100791178098880260139300473029918267399079707526440410125878992901969874127179679409223625853982047255214476580194414466037842020240455092146234209502215780774168536264658913603965999125756559034641840080795623449288431233731958388101393845391816570575685609335329118691220510226618238062928682156293575075353689927033193910907389619747141331602738674244443623465590544354846453801684164239311086660386082172364566400472719948130219600381554359778142669631350874429008653686985336444201409045630739421798339895355403066648107428675504957801306841942711611767922031548271778788465757579074461187129292452289320301658735351245187778059036239012848032109644500220768311468988789949709492293170041002181603899550516732729888751367777805473856479379753063510052241570905488326603160500128555351299929519705121964499091181777130247930371546864320353596380614285691901846509532078547363084830174186373421344716840131579875947623969838329337852114856104489161475494267136856113087286664894508274291151032068568029138594162880644086574212784147722133848139018854086235920566646443454479959123283866789305394171761975589623545418545402094680457564614712644803282906640744817633796240320759278494391667536702181439078639174806702871402512135736102284672837705086225223632168868217886508666214263980091199362871743349094700942877283505464287400212363606009111887495368353715030313349044951084925293522185395837713927605048387510203595405523818741484793511306629740636577138883375806589578458884036979727852324168730774262844672123201618059303971904237536933151775208957084873085064303853708483219683834676658048318944581096917642296468050898520853624625869848667975427805030376215901282385700008996854265508755797129242839642712618964571887031916142908028597056859853907803575856349640074378095298844588676463501282966715426070903908693932864893615289482408012399535276617624757633548061625575098613068043485047392356823374874987162236718068783217322434630266343391627862973414440009850909383526715983679427962615882734608839626371622886894160384053007371331568883925376211483592927125360734659200899838967276873135340841876715272464322094042493402797412452856858402643364189578998293764781294130829403680431018273843453912204475862980818474985729126361483509655574269266104277153538541174825861778769373774455990062470256358030413283581025509029362467516716871797818136255249182129074438227620187455800179052258144982762677909826962804685112505497733470694364796191796168644089856674649129764399060010871741569314842313769030996732848232495960585333910314546422565324911551149109977211781782086955273147326674939939631852120033287254606975584788589213436163057374898133286973103634136167704060076372382271678335560127975255264527338555115063243589405298389416488744363429182578714575393641967360192112046346690964737621419268916264107988790702119762848513985113121382916448227081067480501968850187411297370683886405307740624502477450444388675636603366922240055743960836390108997575097576208518803973993298956766258486559298027713151670190332857106536763694754080148435342025695484895566815024663602527998421437810999938699504415704273526133541021168503314779442508924858523759964772096739496165731510476836939380053847547310019087382898451021544133008673064244394223969150252216526180225884735946784117206613633327931652554983158838949577681632934022212529913050642117448981092849142814013938365309164755832865806717144276944432037704235565159159659090991479311611018504276902361897524681129828750660450399489229780846844440508591692487123144785237280506342878057289711492952104281736947204638317503325747015308734901176919923595678054629179428201211104425268471718854694820253801389116341363766415211225890418995586933222776532320836805986058005060146819641224097157162394644629073574924421757451333295258048100908809275713680851297892584864018404230725339292131190052500587030451205497761392764714545140713891417751296379192269824655116579345914990820048385415209321199576629143343984374988830782269456431245993755903062517771020377383242767879832851112536636178750267649780273647015530198266648704694300063335513779069800908433506234335280564588095081811773507898648641335864543969337372670616406644171939092477726499146559242870519110547400951375071590189583337679841341333416559321563494440982147532527870368507964731237260536401341695857474257522646359111321728779668003948176195194388357052447877755003531125323347984787340951024615325804610481889956396706170104838230207607719209930233965775649144434798679497680380340453505391092296496012047147587762886786979879475635452747497330691960517479431187715084940454054830563449235334360606705300753148854398221108057573362163001869416552064002822052076295953984226463540174867827680534566317376169583286576741011078422354328811494637890923071647168913363485376783145133756635763079976786230661638559882545007865128636820245879930688082299672651688284328908014709899062893990045256564092273425461239555486710751177054160104547546883485427417413996538671213723141822146803780197091435130247900757355574802344729754594766208856586339459372944907119335114303088690268655475074292809765600443215358048736127220533609531902287663367964148187812099132028029583721846451797201978478495893922886035577825609611015361584623615202813160922162241602436216298656401084664255766715555894443078117979463590168455906997242864709378405211701733218997796142019317364908746846566881025045372840345060992068169961915326059249276798310263107420810220013918677479408058335073768877495886720614456121912503847289571681675658211028790278782090528930287979697977946172513322068032592389206686263515500062347110812381261516379444298659390118632311661260888977199507029438294253784009767047967353707323652837685340307886831951132531039257832645153248268728658452007519395716883874033366404838626572741524845682026932449722994860654447643899758298285511180156074762131679564195681474952292612203739018653822324864080373439984093772488733263350207869078351890957554838283682411648948503949757430262994805868805611795843004809804256576181275364842214130617760509698605950722638483602571194722270895781599710484231096550503629502250309343459201248307715575185174502879131035460861507838031123978241447290702132371090372404779940821226533502817565341769564000015244072379228440194050187604729056413488895289375454024325927533336098404908614054294295832633133747967243670659047364655246254800371363666475770540047181365636688759033336063472207207688084437112457289812886403400997217511242062215306617346494568687879352137263992885151710922777595746794703231103452267700073008510934730304538792615061322097268862851850449517339735813487504387219736236751644005704639042647119637928938860634509948501454401489893566096548698596105251721854460980924553029459226330437128265488425531335998158159031662993336041952634732794165970166362556399630923317685918272579328833565107285013546382418257101205033346464856741423469761890956689822160165450751240689041638541993832949473036292015903801949967610190141045361496574957725987471545705122063584859243346439871573030863719826218719406728328472403732229360042295758223604814325868968185167415139564938030673983772765988286648748046304429547870284455053968045336279776099927691617046522718198433064616858042251260416568127907300217926844561939415014313019514349725414039862338713022865664351999295740422494142095982521850511529536595873298556630161727588924302594029209405105479900820795508305156966024567174720590656550882279685944587174979815107618946698839508255798648922460007587361080231567184473743099865639255105252960175915437085919611967410311981780225029484174743117701842829909917603957098791008724155028311346249794031401180256657292462999181350792866956271275463770826684616819636709317970377163254791531975767726217048091254033833922441161830575405056622903275875223942077256010064242442157825914296906145211395220369041884585654512147585409597905025375792271787604285883664834582505693142604030749405902356267664842465920858666020651582073435470201674533925536413077045065994457068518538830469143506078313061941627110930082249375896857383533958909075276520653583340401788548259673611237731265563545510229228835065212109317460038694082750343651375667503620829068579912220078136733901278970065593029525481145373650478501752872564306909442713120026295373361553555680866828312964653334459583770442264018197192495428484433620419752828802034463912525447076490951546950943638943466228992577902142363920974400145429298820502014206807956291388727166523389167625954147418818008799213563804159975949443866928397260816162547217340331998459863777579630741374264047010766039891812108298852789965776371899757962516496656815510148124480631165993639124005798888653236876668987827669425037416816692927097357276141468993896122892781431960300370931624486751636868322250111676503702095104680209165441258119416223148408099374810783365998516885514577456595724663985568166864655205158709970799399544061342963487934842934571759058846762207286520091575736988471878538828443889533401397077988856428300589307057112564935821401835977756972914652290417971829919423836664239340474679445999300838386120894684381821196736328332237434637258621665229392162145979507275356014652646360130362436140073801011639748765509387685777296904970285113560140389608242480549972173854694149137537114469171544097602083073272136726432766073890305555554970952249983642499488617077959925356521342903245287715658309905895187763489921363090680273503331203872009737025203349728186548271303696141069972192361342669834292251551355870560057742209224890696467346940823923130015098390933960544756265099040345147343502440078933136420052097967421742803084659317155654664968883671020108964394601888088894293043379490942967436703828731974136489036375333670932524262808692699611699343766600076320889067742209134415578555269198591259460647627571753487767787930903953530172382462842841056174796878243816672692946393573715383350357284855958129817769886300401244623413791945511375327351580275923618507358423350163981706529213698288636629729510535591756625189285590776583902390342841687638281717315362466163179351816876906811976158225926230037769305145031277466597983463775581817576870996165344311080530895565923514488770389766150874816032933972201159962267712404068830480244484107171394421390572340654857522290447713113666160172850245200716982842409514732456856296297618092120661355771507619634443809146204268354704275208254489425063153544337742543718876381231506015683718361370975802738654262685109044504270851501195210712417062114278213325034408651145425005580514352283767926734799234362033560952324749939831548887696132898588713986213917212407382545828243227512911578956456680495637367757672465557568485492707218805357537198243069442831248116978146072020978384616199482277726376371837723568181810024526777853793656239002944937969065595607141864019506329960849393257804490632879197923188879881504758221062470923270101860852105959664151816174326010541888907029964633455405612271678710623819978834788341796891444281797869329770196586630118423615805512092658767443819924826421456174012276945837401788149608206653264701848907509418353670634574022446012593763593544358439912582573423078083888210767351271898801677995612854915163837851097129255595348133548260052123184505474045222157449712778244371356973861173930977742150055681847697696442361255724224027735556835667689725763990664372672648888308633270789246611937356755929900999096517290912256307951639521329130851069099672688636270351851507170738824218387648854284793928295981631767736949461752036107595135296728760143235092057591213905242530128783857843460544843332577591037503219113469287454974285115716255482160093522642375484780770643693989874415133152861141048124231133015186107609634181346834186600977010677196160130086279600621564622856817892050081643072033428963532981075670923020874010155997067186257810962839641149571823824090783084037748728110404674925568634471452744706970083005472574216680947537754254175247957497450305627214025908075583140618658574080697530685165666799665962538473233055756601125628377186856112792931153331821143482814513210972803604912585673807775947388397712656665385319413847232972422188133257994941774294242378844141848469640090843434754558564435361977172548418730933327463887683904086990933726748979633535246940789217836703948340777634147352589211656003805347390925919958898706832194113525960456317791243722410145632279819841112039931963687731557852795300265456095326547521649059555889337431191956071283213962412351601908196585487984043860142018947333763768505049766497370679304827788549216015885927662523567658327331126082540974579182655351203878383533823953766301014164535050171602023991737203810579759757410650915871211731118850150464735093852575663271722282465360463070296545160515784251226036432370412084879128039936457563074557038676817942770946914512783151784621415239560804758734279252654252048968488733684728050287015747581235847311862744199754661036886479979066505795969704595709973125990406260888249295589921316974332258352842466286530405470496705917780974889062678956946974843576540154401562540654646679696643626349072313428424143292562887395429129656304595460330470992277153197889162440761589809498203093233242653633089542349824835093572378483009805612646491425281116230750421630071787375052608502696818698747679698207248116258035891646697215468752194412986739645961425435424227211234235134511620999618344785831298004187527052922090012740014904453328594333985117022194759730247474656023470641887212170661651110003012805285197671740243611441871427731558716685473276136579506687175822293593108514676516735471846607267583044215395095916681437139490309870673889831987300804412517921326952533051048501843100687773442377345154377462839305204068349911247321927654629380908596285104860615011573692577217714930074161401298705080885725708978235272363301173290885299410809091334475700116041362856037560073350971769070450847149959102473722446339239425857727044400347260083209426997512631982763501912173750277289416434517115027859672450165967809814421796314196241544919848431255571957903283368987187740978668315934275130699924234560595069189237203945066828368713353842694011243808913050641360253999851567543688797447474758629566009961281848691554957263472858172110745869785958665644719075030666230529632608617493332665028268744133177261253514255729348016474467899035804034180672262663382981154961782399943296932318183150739242772611609451489450839529415357417629611089070426545350417763765605923157252394283269892549277462412968524883184695707593173772557813597103939776332339084693426820898986624467820943762691932966065675222228528347104231283463455773535018475622087730739093827763391033722451866534356144320061836517102685228558492964350675003612565518325571897922689213761306803772625766771697150272081065779806911323279897495515916707213699672951375099329414382969077259484679405488641550909200661577779160906379240876444376669769639135578019121049850972531362612230406427444077902780238636756763809210764692559075482447103677703364832825888457796181749672181499380462981912459553951729649364300173428064621711650330897129913704953872055426847898195778202053609283609866803270747041794257521099199768398451988151550464878123218998679473027331792676334145372160777205272662247992245149225360543047593007642299061921358797479948222475895257840597181271398779467411770458433003693745097701321090211043852301232560457926717558017385763270991199211266130374678788494960125577010300496378671554142454479753127074134994112751972214351573863034776732439994253106567095984197777386152317883161688157772299395148636672527979337784543731814889782310022086401610361443232307548974561325998897545811237403792682991475850339603906686037200143154257222019504609957915760062503260334826295312156131226199788051091283588587409743524152262523025985820805891966732571254431978239439503248642026296902802284561564676504967372621906681665186064678990645787768900024959981358685847977604957615287715969874283047543585389913460372148077613355765697186300238882154882218537552430468403821403480767667190306422714581033604382637337132350271527901919411366446196146134892312953678242214623129323603104137239408583113784497731572750476762993754468473372150716078821592619539689150892258968032171775193828618198836127835388009997117713800656329417102603949620376344991132870914609574715407724342070576720989169206757135389632714267136465033110613953548129545459262646461578654174907060354616320142758213252639975219391068727930962617681388843601089840489506614276603376602796411380515136504780036351397684245784366018836191771307577969000073009476428202524412138321821313394395266292179450756015848934334775851571752925644345129688243815371388709629586267577323790909482480836850333308644111781946797411743209480882418533550006498382520911025083447230956530412104661234884157660356632365555912116537470432333704496688430134957400164733573927146881895285637873487859903543651506837282840686066417565023001129589347969397172702938418887376559291027961643811456119244940244224591232364357749830068781790565781385402369763601342563440684327345670674577710722578761889281919024468656929205747267032380913083310947048957756905451925657637069912941058976350648378080560689437064805490109874805243577469615817053380694377915993924618527745050290077841543694973360462348063717409546875949178015357187510234312585991275037576939049020875848643196269971121906954167913907577374928529585901274337078721768764584735107985949385918985266033589829802598183656977705768197820631879713655104454564214529712800089188740602700228506558418555551381533664067474443008732686917290504633409794042156045749551075544608003324633465770444537265312897762609346270572389880374115908671142316550169230945879481259961520877778670404210600175368462056947021413930831263383793073294773477563488245995423427823071572284342991739268288877387203706847267538173504139482009830633041019263195815708943317638928615339107193273175648011985747134663291897859238080718074556155542453578919676766247570502276313582584985281060460022178438088214604329461618807190038212591513326800148677231286739266364001309286301244845309304622806337747763466053086460548834708676781587478555039387324583480481888476553009875073477143286615119455497032662337669322216461639967432480241921666286315565606095659778719679062914103571025287404955565005209824839201933720807446342435091965821966921978883074778903594099299977527306753360053898246932157160552020059286179182650705515132432251204716701043008216973824595724883940774934199227148639453745086981606165423331081475189431626880089527413215998052813585262701609075708688576603178266759690218062956907697215510673323950244105616523077498132871768835891848867786241267979518564653674977609966231351522742573505989445894548279145333512525777682944281084912867509064914969334371207388060791902153720055273855400766276620431578688485089710643383892503710382791999171860634933703236903165284940265721559323977951025953145052358349437642365937071831610482766562752165418406548727571082525725706689940359657337010496502444572987297486803470413225929316155021141847714128101371491769934230911665474804175756375296412868577665682020832751607693425711057251965581109370056945062457557895210070682317208962996316930339914794887068220130874762302035154009516147399681449693593794361334025428955802038361408489430407578676746908848316320414195191582264658861396725339950368340765355493775987094102829666972514577602726946903936938548842186482555594059441291561506714969024051214252888403488162290598958511328867833106702265869970724563484301090546800932790880581135708374883427483640710032033204483909265393813566946743840306732863567126780731958743002092831607358231752265953720148113753450095440033966029210522663122950094395172865371527382198107369639027061580541296188980707662159594385420766536099742987864038835103505462668315395000815084930066333058348378868020779360441752359915580002177129672176508367959338758234413251023395451145737525320959844845767588408365823208191008511008495727164326623769278623452961197112508121130735715033933304607156023414827077440437354384820273982747470929064982583440144527374304284903899450734898449862342728620456711822166080804186645603868763192865987504674044525676788474315269966420314805308387334135689623627443103214515083020436599683042413364962178831542628458438358989180925882595728149442504096561809377269014704785978777178249636673685565814120352954461054767890804204601210809318613839779019406630779219878530819388123681055636788779099675543655744793435471605466581258464044298867767693555825377029704297490827592988067110095448480189358627484045431238507015320017026942117271725846007482648169164932302225476627710647361963295826922143196333816303397227818935167533273126549174753771301062294913067218366520482355232947132196115577374783844812772774642602583236757660514638413733952248449492252323577084834840167013435002384969695822738363472099565808019907738956899369633036146798089420625421153260335070587581660216540637362809521448772561052898729812379741766463706987960517226995842401688004609358692410321587902888295044998249064302507727849886198454722698608354735661535164138515557330914008016569470524952625519293187128349145170377076853558662847005386951206233132237562858894260734622848000121235699090606038845085134758006155211709766314114910630709806553929116519098494873466993371283555707826226432400267876670490284037597392644950599654212175738012444156004006165057570498453265316808026463705094283097485950833977439974063603943918817897063870807304151529927365579464005639109143375928692794220853826113415456615303807902504640076818019280522759473038782467576241637326480443605793448549059062487242047826168604489191436464319607978527058382734630317653189331699083370650477034305676658711772039360986048692268755596616241039374468043003700168074274547315344165382605257931653916198619279278678571771416544416024536596061704176002430149174681406785680574551150299299935692915725326028848971335384785724595400128668277653528856755225624840901220058851173122200412987742498496570171941997356999743976685140424086467271039289914161310317023667196006273416490388904815740103083256471628732567136181486341176028858184698745324651396210379981050308096162395995027128470335839955936015813803080309310236434611632929995947134086219019189407141658370982669470883316324228845327677043572194186010242898346680544712041026409827161190619201014467096739531040192510320806097302700286945456697267388343068378360571357359235803921167167703877229550055274766466102930927254976005255605157968710724272795717839980499198421980762670794372096330671362654795313323361388815808679833876326301309736559324724501432087162252143521347594022880688696399373243817963254084317330102281510557935517389561266490325224982845280141643387060939002579737524633482316505527034746133456712151071384629199995319487295630480073854376920769802068162002504254018140308278915274681463595632482997234458233905758605132580396499295366858764157895651722087034797190154589027121280993312142223390314730545962446867255476862873703130999605402731524792382038412481725032032262946257911753364107169743800515283389987186639902951609833206127265331291643873825720788078716651015508388179199041877843682307018199579042689518661991007258827955780187620982942736212452826521136185550884153768930113690505138915469833990182826726452168401713831239532680368160017016291121935961035942001865659127872294996130007470325536582990266285841141600103168872405533864121973946436907171857291944451285084181061022906496748171607920297990598745352065846519906535654194962813564413490410156965622120026850563116363334450187226874115166223119370407468006423800974502146221664610960920065780523616296088680203210509394637567712021359779334483632613324943380895971019004566486629674733757989538640032409219065531732559459348104937749441227826785082877680206776938161302733489885957414328918066583017116407570545279889506495899096315799846070831531653377062169903838412467791977084423846643793112909809632549971820646560693485951084205947209309873289140460568482420799296869250497832028739830555138924020372647449846903082541578296284488496509731741951080329650542180903727400400330056301360067786972244307069015986328483560928806225302973646578973125332352510836562427885191720305717775972791363187242979778577426769778374071621302650807996574402411459074262920726237254030936207873578380417068192975844873844900386339731324005558034496544432151487039045160078607379831153488380288851919308099562796082410715921594000873077753775894968992469284400154524086438639112749151631030622755014128950349807607902914576479339854601922878572997561114427990715844529108853874933880396272425752250707088016616687802712709031568910414227021597658918245963842720984280208334599393850180733320794589095716183629818481312889262451962022404022609617500956789074758510343410149334132141791612788975572411085865745802178643364719765326653084497371053254748554903607280143030580061325297398580620518090760051426631493176936795213962212500713351006650151306212232232963471876229146200528164499308972667223837206344002786808371255864555437585362497029466830148891564549003646516178796154500637874992108157243568640109524663120255915059647931297394909043630734845722994678501975708767755787974397292885776938465202738638682713727336048417545200725611720437951494455942086599614756279380215569454421984559628328943935477293658142431187934824402372104673881195809060008906181405524625885283190674938180401566823462652230799706507667435376303595758220736688563950786003972124845515880714753898692482317656266538929094481309733664232505584070259179303193351841717561665410603083413211972719387762067696500161376465946813201573320567385739246413278914509512192784070082385368807855694332277363608005143617761534619397459177496724437610123393855324944427721393450469633643719453607223742014110651374091594884774880864345081025186616181117023026760163233512307327306358241715624687146608071909166676304630141602869406940403626363810786607574928003033635633146385929865956682337116651313383229392515647759059191995902707398039770006013141364384151164947731393873431557722350534128460934728444918325265676304096527119237241345509482380681811950023966653967636284668060373980034442981590349144460156825575723819899391114437459868015088313351964686748910004754711718714303785809205732394355040276293503169093145256506293298142366566659967336020530617877993944708060595821948811927499224611400819111135623949438266473916497472427190665028586156786530600116948868680724884661927889094396947930126054002324785788978586391552563628906733960507528168679276378860448872245561648116733902847303703361899455576697051313036399044930744922118522892771327298302984361868098268794233698013280932815854369547214154509456249492510587723811383279884181587998389268139321587944636867675551413836361532736324852988915981026994214203701012043306706440411179809194075738530723826050279863218782649521370467219208479633251158713137689322961922007348453466405431046966870040537049626225729406822069082414491018907860608015638665822682849066785781261624889058858075587722693642611995258756187186582644600189815939615061644919298929111152853073693530197762427661144898559123386325286033253470562183604318675227209162771907653002899986614864183537898985087315921783500641277755238580752399444877055482659950768697840185614457896355958255437463935063204322091745134595155188451258842960886186085173925975181499315593222211679421916066391622407163589149825879636373629734389298117893506329644655204773672026768730043210548346826518880337770729895276667440272145068424432627184309860114849837762047486391568650217600188928490516474589776400043323605998578447154276341798761919923255985333566440099034440829018262918286518190743462578452968306977717239933917241326123877040196850832840200435488222899493603307430490985036883848214881768407806626440271065127314777719260222537006031100005936439750113004396585024710132529055309035053347025490739795977919118616234337754288941476728696502900441230831978916823687252191110733323672794787774868973642698640497047158080303527915795662109723376036204159503798770529124377689278130920004370463145867024693977981534335660032127488001732112357380334703796839523491956635933246151760110765749501066507774495019541145655781071649717036948809189022306919917112841075929192149568960814571619800473873856468992039116500842007976583886266989517517791453531561858949217047157907836678658818970310511205933951912771477366756397324901451926333238873733267053601043868325759953996909630433466844139227160691498391991034150813668583280746215047067851292954951199568593939627528251876185155647755430587889227851850801531265715458992881947566233359521770956563769116852972754260467042987491588056505665060798410718858150864808154144428559978229279057181179124900997807175683952442471917860798881915346395577983211862460571789016931177627279122357837954198896593968943524978499171167896053527212432149843269959366212124223203601751100128764125363945015407234289496926850904730299690238092187454395974066070006066904062302419298144080001794863729047670785066253959253896096792691524356408517619052507755675200837446355970039922490587788656079226444051863004117914871517433915799107251389186459432174772024759079595246262173959319610326084899598649238979373908254091956874949920083686371259796913235592922628990816295175458372128084831409275738896087398090946792835823658540197029649663218528008115486401740081188972662933142866076870098455866819963699490893894057978085083510198305596793454860846476679641396387822492290396056429275877906749542461241534569685232099425471588811369121309902521617258347572246651665777663627788218255252253161171273100948514298857622854908852013443185178800180313405569297159044462120254935313815211444382404418888727498009782916230022363065903848015744182758963449305711967552495466031756043955761862262766302429331644893645151329636521273522524822492551169149630532705693246150089498836868671797937511413608135947688148693881272182969969018021589070604283887902741655056211807121403973388018200870932102958447898465401070247774733578401647102119080489289808888731834900024444084271118218669678765391561177631219548498220876381141077295059576294207096327195731800888571331992293600300105074417801152764167528834274361110134002985266917902853133872413219367740286317147534209334370430597341049579888825297601256720008439000465206381640997589655008142267089202028419203629478953628610983146312923644016519763534294430844127764831212885865966994868925394812404897366820385263272905289496676418943424457431790165508220426636584082159317122430920339062307273697939498717859393789181523820408607011154695005967593248987737163106643594232293124072826395051088119029360901453577295952683479627861779326493116031508799373034208937586051118577734491610720302657449464404648823670005413861636242576403152606680490813926005907212109136922773615694112258647635640585021455383833872984570774895669357028949167588511864270093890893891131956706045000539890920906490384397269134125587743664070802872266028821373300089293200346716478605531113644113156864399857382634876643075929739971997671672125065036658196483306774375153488676920690157171009420875719847780246075875644582552169092129288045154925697227122133554373082053907884887838442039203194993365467583933138732458281749534732195204729475923182540550079422780782388840317182280201924649871687117881613889521596639032177998362392454395795139548291521526169196891426026153496657804479420718332456075438499981376015922120811158809709200635645032508191697660962672315869638478227496327125431834848479875474077644810982026018461778991723874319692212474212500193429211011929654451498384483362316040265233388856508517832930591495564746523085077660911603522838865973851652551401064866071948856085405503414892940888011585295349292825969087127022278497611817974859629255947363930847632001330262871665717057919875182022266099720843485008034755650400596176391079050514716622054450240512114775498716885627260287963281477778873594633111905897574906144378270610558362219637760566438041477411202635412656921958940193692813028762568551043342512267298973040726407796714745167666434509131671212859230881632030549680765539708869690559951354399266570022436690869630622443094226197185177826975824741801301376098936167767407559814498649995832028167150995559033464021196600543170724731281165387649833630481552600976699141852561207017251986966616207697468119117493241604087952272870633143425796398943910388475857340061024044702893333097660130383050025860949207024822173377759229977625990608737288087298702642380865668396613304890632903152883506149717377278015684068820267894272193319698474970191524990294647806220378588675935946576296727139231082871876800951607631389940643753000967363586495687010315111200330548655445956603249483681353326702708519611961486282152470105985735431884560619387248295564410742419216742884143863960516489213525175553338507918247259087513482358183882660169155800736853386290779516690822630747342202352335317758120596165422576391040082747300717646186001698657787328551608097806065649794562450075232302374057464668406158085221164950676961817145111970118988118267869260686112132621980606599619450318837476568669881648863271808454578115881479752441255639520261025234848835801498037906782245203001216730423087813499755072971113015211813978401977482474420649713564576483023240488182393534660670229510359734752675541490314765104095420997847614561583489885942683909490340256514134144599473223597488386869781744194371612142271995877318721472666480321702680294677319336189475234485640257944682534071241255827405918306313800898499914267748114291108926501061119802590329977026528488996660344777207739483854103619028062637299886387841799990516040764842691306928984541217696381916742178783065407211378073907728229163864738312866300513153130283976767789426071723548856227941252839046557037795290454030810091688642751371398513677988844643547274793923277652215849228362410634076355267512689215519760726346553940058645556856379155905681215936913563951534768428178984250731460568744599327059310929733789905007897434305705090028562741800463245748267438535296786808210181775933155467241098620574571470817585239585751779437920620165260433584353370310212404732504444084046410908318964579109036797655627491490544670192671264095575413633345207665314281860499848416466082717772437701487708700484423169121348421792755743924665241117335892205389365183936073894221471925370499457722444108112649051074036227380227519676471267949229355461370134325446265377369342653898455216800487458657887235249462463680737803666913227446275257999844697348038090919781215992300422142313789112231147655626371054783851896616596640345354764915877386339111042956196407838704244413576350294558405947808228704659670936145544945172986609288702086271952236050054697287056876264835968346870026735754295325743906590335554434805451722366391349057346780924182187204659853150208145746580376093214722931281764101584254304383093498893845375934135176080835279703053076618776565827018475142123278747071388482346449335839095535020390285864975657477472578678264958978597062722955712719624140567170527528460943473175432223415532975679418928554458627785902903434997918229039803755223657594346833078185433651782904135748515147633931208145999712683952607197561207962066281714314397295752240057830303206979789629714015939045009527534141379342130455241644783820787488531796932676141136672664532396850532295199275232304174742960045678768735036386598957559955432583804678076229855541363034477082839865752034374800768293866052882359324249410703119346669008563752769561438301976123418677496492708918710504209500553612334091003492545454316599798509124932774889261490435904223700285790835490442599761514033101448254323980080790926395054331539057717312399234481103105040117414548374817457119668369908758231271953911205657193678846469355660403071499220618886134579366947179921443401098917402513057688397723357129387215609426524348568998056174076820044638601759497270555757132614238871961873384352831894957070806257018277878269333812476617387826968829307992055787322699237059581038378549464647649408893006102071261275187450874994801230254889211258840370264718630081756947747544365401546366645305196041805623984516185270562948794874247241150296731408030054101467787016032790061790274926857772344128840454997630089340611941122094802917081348955732799139893443722478766175933800984283690655849662690731304304985497315677338045136163290727375523479313144602340167690726464105588977788040129070606262197186043688344142598503582039470493368251202591755500805532959329766375604568484273428008916678002888664296325805428713775570733859988646314322531392174184983618319810622114037139716683806668774555379370902995030136070387174336656314311979314822720475363145139000568471498252535274281019749292695611366342019169989909275559356584188387679271570041646054120438048990432713430232364450239415727430410844045889828522169326522920166865126948341625694843764657741245136617841453874855079047647702249983609102346247764352453416999563263913321730068567097445873755193645539642223491020408045750711453721984280304303383814569094305778756893330156963700175709772029273134057697903347356223368754264970679474249497571538406339387083348381134229988122835375607298359535178050050726168652839894178923079140136994704536105430092338444981889491934897111937855361455705414077286051850926718417529598224161891291804727530904237263061931371650187430784304506681561212463067070235406520843913642497659787463084383979934102804009183062717162695043271983086825258378307035098768565509779225108466159616501528648243155113216876477671125230281480365266512370429516779225181943008470287089487482852849512674532405952309706608888573212234813854664482996212471789332241128854276091350131641932833701562534567061136327428532870340604418553586139434765128700803491346191507824453593351972621179320088164447483936553749469445946791009062497932852384673353971452188905322963026785487814574049009915837945616160509198926735782913170048275327733529421840246133730667515604779369039194305727850099628820404472618041032194306564420260443249371733729358221584545000473459156768341152326922810712276727394782099791757222019402745545747635458983555896871120906347393351532871198406048134541766535356161080369266298673872665531020810714295877354121293289327842288916524655377910148180991239670856545537042156597469187582336083527436043367528002072395907872164195019577987256784871214215343706558550485354564657062533504422543447689099769982203434358253642378393712404792044706433541368075794454776055226380410604451032009089960049599491925100595712106384589686594604480229933743493366455403973383858741101923932330462582574910731807717817319786800901675927614482286030708410346152434802534015016682034790346096638868163976200835588682461194162356361828895155719429818866866413511833162606544169722737623483463175515569287496498299953810663596005378596836429281354565152098835002206858225737809239973691994518225654823016833384003191244974540653330244255610686843734265176570720105193725224058013095646976482285157588428587323316299589813246736873938086078017792883567180170777866287486899633286523098004226298869211188204669952010592105947377830380061787580713798946372584621974428366580494039239157445579581759497674133532815185497745918743379726085644960446212348426064517685442584882860646309800164493398910158116009947480445204847623743154513496517190104688433432836544008725008717043061599559752545651757598202250524467372679822128932491081356982187737629684562030794427522572368932217966119323849121659251360030370798283659861964916367954508431543170202288340527994944858369295778068699561587831146297714079123438310446803995390082691537949651233374950596101217737666595484858012412325488149977990088339233096216593354991725534885361371290635207175996990095993556534737364625477577556492287376573056101326712303881691171838694421263204681041917596118983036944103849412701729891662038743183915695011102096632898643567691282785308716023223609531177837357235156412329865970596832816809947194972578080304611905143671269113925475269109830578559527743009622295104260756785270851692092645755801315917651928889099768692277335576431127954732653140430831371788168019000824836264689300877977633167829395459913426766768271235033862016361191772756981867963120271240692779243759714628917480117367949239729317066649257126230567597203959537957359612278507968610861492106232268753744059490438302344228131964298231297080490084907039331665152757456942767334359942497468992579571887431138430166747274912946686805078465343725185483153332376342558879759267188131310975146625185989112111699266376558573525813824465710153974103380737462067453621382584665482873374131104822081216835515224952338250700717858369999381764542532401582145219999081847099939627810642354819288781804325918317403578016310703408209600493240843947011079858149304671754551965087414004731005624371261333178197534805694850644325199301627664210380082488076139450975787715731916299677419136642383435804670963331097807005234906826426963507614568767865649831801780595311879862662240832282523832110071894932654274998129634103734888727660104409304854114681089990480620392975510919342810688335243880249370588400069115804665461698483982366346554590403223010448576259212682472089809441052049521919701676349137871911470216202089845006901926740475400489959411282017953532106473403185927448758790573664285900384943187314584358976662934998190543811796140903057345263429867729808932346049656888795719553597667294152842749012966832184016834996357620671671963715100878352171771029448449601944138075978296070013317684878303092326721650243556581570209692522470923422051010918468569092186699378266589531488102602703632624267921038633677052026783700506554644249735411681863876581525057411422542442961149193427651616854322055272926134119840464254167247592223362976781086930370534254072706358576398327394231680709572821271484650422150970664781639958875898428420506352780648732856920148325157586129930605522425914984858878852990176752443388894068282485234510835537946601579175928895783538222726023974044801592668209443250210244039950814556110200148201366932629622645679418035752426007527313267967525139066230960810643166313898629257241880278847624272629324404922026814889505460112699762070662152634568229768092160818399124788397203399485808374832935271610987908964678865336151070747464092783532761126718455304312961926606215721272369474428218484841549495136270219971869647681185302510752520703496081663623614602913964134585010455776880114795162413254928810208383291177590693690992352687232874125290495719364350505974398990444057600373013269667217384797712591849380143651491463587859105011100825733857474871780183432137383837698485569691653265464922132980848553544200308300496145617956003512421535491443822309928158540470322543583955296762473616099571096768793044564478278615824578346301512717419748423303347160729020488198017013362290491340064110114705331467136480235056883291454697513442769503145097580486737535529402012159121400463049129253948108412187415173634298734997848012417351580030001589887513627736116910659726341833317658437193472284542938492134858990967751707781315498204616698047002589740321467370083928455640482364677560971471463024648709759975311596218482678071067236585725841179528690856735925411071700630400324975508991827915422969508989641955265566169137960725350671475977147263703498508137115483648090464323155997552613261647650956841871798722137933812136421110570788396118492261161336152595347331210170138958054490149649621035307968156588379951743164307789289360533049290512494930522897463566879032096477725034967550445846998663737170380121646695838667307778630183838192971988062755156902119407694098486666876893372927201389182831343625250471362425958427992731691746023124188186393770788762929211657550995685245678542394548861171528490109777082222847157502317924389257463311039423921965952086539745752710668809207490133012723087171045642960052953021199417704145552027715913688440522329713095878044134429114349124964959947873913470536918092193868755785922964259703553106896224954488570510469599821546633206432327913620289785076962886138733952298515616802502028115920392085114900838787757416205308855191501693788708227650236963990962779931894571769082870980291262980319658204924211124000543358623413816901073444630745566345807296017470500458226208693168614282215708413702485946083473721858181563961112745641391058657610441609249443042883292552900509321280955160768431148765014351725578014947022663749279048146647660114131328011476655873662713264791665987734951101256845083357492451172660864205561146514329708286662492606650387971709248154745156183630939181341646958246805458690693279029767017097573613232392341555837415266674027640425195491065637860327863442871284803881940463730363071013717171425437525171679851101607441177606422060123731645672712068546201325719568178585400638519100388379318728179843904490777540488763405830728360836390171885919652943533115037702745836563088001015266760898727613068612872038078521552686674242315120711391205631381341046075109741700436748055202357161278444938567833607452299387106346328319495151518838828202951305039500883375862559825634429556730731715518771535194348712260884301998131249233756770889373074057039477799662455256282504473547647732705984211163022693879916485688337572306349809632298250534778528032376954826611678459818946122061396247012107134347148173341657459162484201491968576551301525443959808297162627435115534163202943239226595686067081588825333310068069478454399175080457795883917747662213354248379544019929690937998744182414682667952451931726706946911653449218708820263242225961411966059529976785167706441559568696414792180247766014295573540305409686250835013178205622028196101599303519212824013978146015891992080494342935009346042962444219666370725170487517223879967692442328565181362155702460833693252436744204253904230362736151904398315297018633447664938428060396754657732660092527721343325756559926151884529807614032732102771164315891232111647991600396588517313200805475863657549396694731838698365744056942639135764275803926504716212990758280006768574537258121357839342330410165644762679755989273789368285596068511123809771918605737966432860492900267459341696582552582009775726550683075149512661188784045502742722666230512480306335814915164992753343184926165075774913763492344274738646410711901234674094977455089140982387579722040433863161374656272988776214541466771529616023498879056402291832906613217754957053683062402947925527639392361140426943697546524974607549038284755194888038124780729020177474528890370472020092212484481203595767456735260035388987497931281946004159037959763951099201862549187927613471655548394627978685580872541602701057098521571018731367471444311363011416617950563370290907441761851879180823808058937134285313671096876927221040789825980688011706566174190839348456395963700731521602902137073228789725428036435008961062814780474481491458821813661501306321470510279232341783300395999599508258657760030272693429081124681585800308274376629796109670202724597922336647189316902794579793029383733546947572049139732276825216459878063847618759936734192930239102712972066674788410492864691370726579215975297099861330815142022677443002941457428477810243024513453292738280808615793416155100969837913192839193505152295815448054591393636091788869268855015948917561529310845729786481321367755271257650459990358504752287714031853823877287298369791841705978171617504418497267801559085671416512976389017961647580101998183080324025695250527772235329227378763081884815940520145884586211957031408591007665813215592351134684691777605875415924934945833398857077379717748538738031249359330823264431936796397042545330966519900392479030924021659008276174451347277173505260985276745635346719222560909684099055293971237883542030985323582975774958669000592067185990007852548539947345392885797284614903182379165229005833715304985035858028727092714877201298670956647297015554655343310744007364688673813302700701384116828020998730242319477373789773305912074536231615676643861432812714205051117145169385687181429679194393785740830426823784594683018816386509929204071728022130842164231149434958038003482423743263612979217844534814580497688826303372938753852597567250426736980233014411017759101938362354632278212830280106714985895713761905321741223736786811386629702430182732761945872297676456125758671313897196371322229526286542241629850439348600063442300277331444273184599459784565178959910264491468712665234788355469882871557920558142190821722306842657632222787003482580080141453247364507819194561892546416096207503476616800265386405594740521999865277615381429188914062857956007536418841032824436398262784830343490877019331562270851212150047341139368287664448892928071029675686046318705260510045818612624845593079465269853654965144702037925674701653044356528624526966258003280468759706034151115713440228190675803034184798007117120975817661130582270489064053283694241414571875702811753987805778506057128285586494302169002312402819470101379700252734100383147578910352515516379211914259868276052169574731843379247480236889736038050615623514546200814959026105573440092889086601702479482415722913501078564103291429198544488397518487761668693288671162311297815041434227747803832059087026296541870013793798260806070692809426648035727314010475875766367458624824511700134292146266853637888710192591238441132611537192410041541268532517466794078663196166488026809653088310037086677151907432187413585247276782688878906224797646256837013436290628050566615887816920197753702919509259533857450812015441397402374284945556586601594635467866609094569333126754750617720913534964011163213601040077660063830927259115236955129362800120136148870029138291687279991249929943769477301675029609312338236299486093400927730634670471610722122504760506437277741218011876955640671401736127464150068394749451911768932442513946284247075926454709590436923429913144813788928699986995693847639574167727198700800214150997658209533957148776954493296800602728393194715273125222533682518061965772811044922345049787729987888173556093571298927932517536404838278264372450278201500223433556090536426212033061873274163506499255671589412633045461055835487706621195821245440150851447587326715179605590304048240465539978673360166986130173919101805046569154987789409304275243692700851220757185057448996029847680468698052764436043436491857074647291861655250816830669533474947218145826317377114628719321756114587938688933235704162639288903242905579450750638378404082475473829009813164635455092358073073095366495808906338263555454930468370844591904167177427504409889102861571556198470639788108120028484858884394702376488396683030144089788775048730673811370021155114821958904046434516659320961467077820306316696355346998757242186809628780369815743648057136024174119917235108934116842225638430156393601532048705233588515121422516881898907672871619507295616578346991867529465181367335801749831818275807134499493602562444406869350486808232149841635568658452106291757421636998354591764424653087439950722490333107516234893800707548091856889298909621757275537956436249491024915536669548499588947159852415429508305040463228873760000109464546345924247758931111750650383694389621709037025477679238559551682140445085127155183638380429088432963215119139513723066803874983395286878914138417447250581199795719231275498460890239544125282875772462355365758014622800415814742141894541317192959998771996066610328603956055385682826133595210003596153342755117526342128851646172033943382982416372250835439956338864510175143897831720574076534547294695759099599093154882027107914584481566608373173395535901295514290853491577101794684070361877030813989351888374841950000147784301520572385453793417835850003285576292988905531621490014577394782605989396081852426022851025793687255547632984004053755147350597210660548253867045136677485108340881611586644661617484570869491929364514146908857099841038426802527993095310376263518851834618323300624023103468921058085292965310579918320175751941345577622238243172071623606544686381224829726051866794669451720803108326342879791820905233658786534587765165243901277942836166112790306535311931524010101232977023328758117628571109054449200895333715449293099704792867537574663606935523246580422849779841423021008017304940627501155122454432511304359251166348880496145685068662069689654403418171587148636769427401317605476599345550663151060617434607873714008282636445899921047511188995113162717491603736226361888798896410578923062070666856055181959854570396795845492939346656432332227356402094170208953660883253642167930020443244906912314197710922903897865388944124121051926048605586628724367928363911879469867759247180553863163441136063229948302040164863523710118550292437720056711237368487845874479480448856134478594029034223462877614103869609990757759532730277652116803257616630248744027022141836466421485930919222679832645326305239881233186432058803768365133366860680955321883941612403497177548647443879128932153542381829488515579440163552155495823629153970276772989355686967918047293190990404420866354308340006515305963565595023882234295309932112035418769036108100363096860128392677706208183811824929501829725676742129892533823955994667362228150474640474458368139029428825358510053951181973275220537405817133299375520577790004466479479500563612241548777681101558242277092267246085048576343741399235447870607181743048638741333640028659159892503527093086768384589525929606654222271154346469143802955957304708397419894791420333843733394077673738198637447629233460462031274906110718224376835567317601612753003024373596853101931302756430107765332801896545307182815601090602537820527450974686263450426142465666990001600203308254819107849884095213442194413615898887735622066941899281087625444664523120831326328264634927482735726079651075500649970457076112574756813474685580515671293796470139127274905319982990854376499085269214347539751776263412120732444418307509301263613131811944549281978375414801448491185259202353765045175717991444797453147857775413941884636361782260300009485574349791502041287140657906049110483440470970753279868753810562318777044565053404368569321843926152764747926522853696861905523108064944214169636039018976572085202705178030181547580250068625870682037216385611379860906747734511818097934332211523854830515040756154787501417547901068222082071732722792116814797051759369019455364710527887341026452279537835255545664043157666938361094339984718341399256733367971769869579602595056169583472086394448143674780823924552018045496608515187225028627710394834930512271462136429620576853361703272196293423561663124614924813095472151091796885562595638154821657456687098308852772971445882068177533496663341159600219307171877468486083323751993426092887976014625095997940501222941487871180684670802279003080582852971418914013250844873511786281867404401915197355259417398409007887518386086283149368882425197818467164442663661307923099751313716018171976868627152147080553757156694589803728253830903154180094431861203874173561015727623249096256270887883252922932399267080511622814003344202675601407622726980892129333101715781725849916694333440663926839034103116541632947053042891452947993342442857182933025242028034388293395778789190227119942861059374953445471616168437043632950909707944052398924604500807312294534038922112387112938239124460476925094595381548462482322717555212610215227802213965120060931232438221089247628669767582335674085844618650901988725002246176201574873017050394879667533320955489975438502875413757101626847869088946874028045371824613144994994236276723653262311133245240289007619448426242111601451098494727101678449689095342172783371099937641673264085672456285402629905754578753721178940463055511747278341010375174089045968047816367099897603766241637297563516416598592701934241226945519561336468710384277926659449049489879932352282529252683224032611006509437269159273506932992736894930638604605101748855288661189093724263101632064352308754849610546691887676921626108206655485309722756197861359634555730395739170255018234748667191037119983228703140365930864151755599866129722885939998533842922020216820537207766575537528588988112288085973388579171475232770580731698071657917908743031791174532845974844415409429645091809435668397049977608197504987462249925603169976435998782371334151245021308935233950707458791380727667666054843852217456831519868521906569509252769643639516434907075927698324360154242617418308426596450410403975084014397760975835505458799491926074091957116442459894134856783515937600159189888387953767132448598222252447668727568205313863658833785243741464211582009412312685787781128696785728470396732602808305727120026357469680169281846509607407997032144684649666210212444094011883442522544332270869101375512066582621000825542223898295861334521525314670080072760975386025707897070207504171874296433668032040155301132885314192417552188261543173736186586058529914677833683343844977273570041972398864976457492986795778301996797176550480642109088030729119589946439302466235931998560001369156724765533335869841701127440935228716962358963832756771564374441469420973102207363098581954977142458409240705199596040690236258873076943075581112232905887934138609485881618865345834278508005287389804043348346335728083971366578792788857774448075501060732953776788630144448750330238872598806214694690204088464195422220715719009443661793814319521952164854819422715463574799405358021190225399568446890602474050132245091860612731491043802387381778534914432745251743129912584603545312356008673412166981193426912764859137666611159078603568322664027755341640324396987002078614092578502893842251610019696549027052759313541905131790408079684908301203455538121479935211068121506949681067906793745333328354031396220555373903444003936076742654180910372322806131776888383507035754564843657993885059327398623705265570619309402001561153211178743428494841331084761569836105530280530601843199300284711892628751575102956751346756839850516984750901586369823744355663408288127785343157691857058660513065355241104338347633487632422924442057983259714904470533104273177248237612624500991806489583838268481636669817648194984999816530890089169463018952185353289294302334614773795021982122587587753703337182029715420567503477744533612926444457165029177475197189458538516296304404833794920844491981283614471071750170758421392447655275872940385253468056221711449496444546498487082922425800447450301614806587089034873241971183391429434415651322262866465704462236119775340326635962317097092328268351327223652845392622603396144047482438799439656100392692651389174049732333542537518456405036148616573523324174902988326707618849955810820884145800751993812503385848539406242598583438478506721730810356025010821120475698211310261718089913725303203403349728696336165209018939094386576145138759876388387119672532354835144380327617826165683855351573537578132610560317883224837652606508256311631055080816822380474472224018100679593350785934003864997393856167669737018375325214087139719122413903454234187337437653635462935922872622167822423000995869953300004969545518396040360696013756542044655038117909841453999860550015799915417027202692878499739729090103820202452490188292927729955187602859584575917377622537105701183260947189062577214897934913165657290819678917191322459705944203131346789235960718614038826700286662126112235179278715704023836129439044699812568117799756324018149489505294933985447369715973098457148995527102206356853548447993993900269053841368637206581480111591856198790505595754437344498461745601934327915244347127787796926985742559584673248654431135366072216319971757531195584522337064663582717589444029949596830229622660804628663733100042203152703405820912301485330129192213514625309013949416601688240447988010548114981484186187778772162478815435794894222526148408523468883789574504363660753870515390974134106350932647245235081510255940674938402452812599549861373484867211576033657207304929157837781845003741026152099981637679752210349644084864452180557634526635959484080833329748764371582190542879912301250901649579547006400214895400766793045645069724888446363230166707491492131374285166123585610253017303549261352849316814696212558695147868298798904905575593595444577253156002998570047154861633927888140707753981447906594112481214487987383775464120129975575970397423886641422580413921215181481328577802057954804934853804987228121025226674420948512368465082532189580314969277103589845668968304872225367767234950623872834995737379901804356080997396547956946649890864348850802478996519253162988902177060403104471014019795107939503190864274508257598767881290541925596567585033470294946012542593721727227189263480580043280839809479382708126718700407919162773173142555316363286550379309305779815254223807292872133206928695721325403738256381619048815767409682110191734927583070583133510178964341597789883544394327029482640338194463025568739786879107679002087075459424437986129073932310176989997552792298976762034071016284507408581867764256920956791932139772112098543333660537197831316112631473457930030103419028336706684000185801728441243882902152866996256695154782430911804152816697054379125204462469488903873535837504577351347645479027329659232194132756624493321220870929448556945712851873588303817244861768639851106701787636922796728170144690601762239907107612413216194170429083765458770072381495700520171458087162229538564573701876232475318440380115338244167489531688556136840185631902886018908814046460358881043154800863186165577321266278270286831217982353294977958774012859803639132453193255944693060637766566708138620238530539832882181152464572115221882926611357303896854803203249580819495453925127413494367447548158658292441924533001308256537009643824276265301192386512497898751375415003424862652583433129020427716938889009527935843509891186612119733271256417009065809511800821581483543546841801274550520537496598763120309359129806225090896541385553900726545170738258179805978554073313718263508233932369622694040496282872322417729578489895819299202798657859334469295951774200732905596856802772065229669301442026955339818540930473008774791433021669317837483930115366217631715570716589766559785241296675670608318119312852148826479389208594827348821885760471278970174684493575331664020783898075277177802931406831721758535150873719494828384781897496651037472828215892681591909817038347074368756668213745538575939336698682399383417807361534091860582883581556853752231360640528494853214517933038104642338709073650587175365393793791393574127375464043793101764448375056939828862459250899999181298648926686064066899766608612916404376990014562463902543085161641995851940885993599658171020300336426971323542787053169033487706651773279938152565227729666265410704658517293190206805874475690031969630630509317951063638382413043017473338531546775309527976912785651063488033476842388466042468015267838795640841557864549091359117771819655236795359420593340786430743740801417756106062090788909221454243075265691499413420567617305981421216594536194951181454026497845451086573448630479860852981281122178009954449198542049315776160632640467610473486053263194182125800792360153445152840898929363791431651573605449084378534977491190337522306467365584767695117126024058393910372221809349362114788062937252119748834558060425191369967329736588984937106956452171102196339839383366793353974331613650131678190931675466008346795516447220076714950203710783274633843073003698817017963343223260425856381823223824621083093449885149309179039295081104264567569829214384271527705643693052066476950038209829811552412807003283867517250105720977246873037088931282844568700652709767395019884887504008449036259442968249234862851541127249344283208427752984846997878422397102957842165720130213345178182742363925391788599398863214750647743141131013425196083809613163568235539360056501790905748802741768861691992760135081694042242425839203614360966389786654023267262188182358815250172509756206968777752252800018845531416669624729143661962294427416807775324956696915384942346888132877834813687104959781669487362159810986836630752836890916060464073490009403241209853968343298319566409076124671363075784974459621177276096791495051724600312152453703256138280817265936104364354170836457472619894798455418043512047033878590547287160407928391303380085444332904316308201817613768412802589512936304998182490368939389603414816650014535304548260475427318663226700508723480244075792192758152222625390431873978042526277781128525570795929190630532457964207064790107542103673323929733172447922924025263319806227986815488034741394114782157710402673075141268306904114599764118870463203930671442871783740247768058338559160824208718965402905195930591918381225862412684622599315851651750874544610601991659544273984949303165692197211567654068900001541287433466796448936795843308481694596107804448851085643962366001092855348647376913591116088666078803573619016474774274130706904104797813914881958396117763507902062916053167020063166724815567618198342462989853044109977558633869434797161105151765416498939635891126651138762067658448986528023180537864818165609339444935039614623827790493274122729832626159364153571542644223039555858848400114069636868576781914228079888247578401878078114986357163752702422128849989687096948795578097616107520057583431435375859281775651350753755944708239775669249721490818648007972733727547825103104333362389251414741625607276226214371237498293308995623810241053430252311249500844958181616250506706261742832405208467340389763673867102512868350374923520112838424511075902314719474212824087518479382330932816982382009241512140549521163402715296612160453593887092476230257838740631238676397776044480206498960195692383357411812025674931609475588005563709984921205796245725448684812948015564964804497164054965659557630099859293821989842163342612293293994858853156475953268836805911363843347970508830230191876715051295134265730931848446139383825114555362636893703631448131556674525173638793600748098113944264907133120416760060190256631214340349217702278724365616023812756665574125738005024586144396010739023587764055857813840432907536948142357733471728209237713285261565703788933185564002000079353751844552374534213903580866092406319423969223430500278449777494693331152821054774990405793464561970894919219266291895204219335414947336394656052675642216166122509063416929253302023377760422156575408534542646480044005845804225785827752261694093230521126403406277218465095738200874184798287721068033700380126664586065786070741015077172515993780618303431073249007945864153790403289713670570063823615412950838854235705385784124681547197130480279668171134178752232680222323364535921345480012747170632186903387908232967720785303830130813455236266478473643854086021800650116217543342976991207808600231581135381660202238223633224975607825627942787393131019820753260760884826462433282663119030082791554539631875379200315300815245068100372496799053158667083626176703740134077577657085358005619203847666877814163407459065335069782651304850581705160151442439006571145129579159264715055354886327109243738863272580184438789376757678603737587836149351472219920526540460948981137957907031270754316583989509403420219316610831538280031768967224130863116354273572918385979681161210522399163787766936289290183820582349145529585076843687446069509695218181858419703015874942588619855435775866887396026393236638079779957907014929375262120390922245483515433024043052212916955146791786133429999964398852704993105172146191948993006488101009268744091285675563946256165356830540101649299829911349972170306687728909333996199026669344697432614869864166714495750678241211611696157008018447811845128548001049767477079507636446111107237831683923717164071038342262936529585247357223601561767275527881535902599070566126375661177997827866733141641467339408534513698399496341047524378333199499524094110972401291084510849048104535901704726054954492785808048627372025000565223219635484337801877793028194361946245126359799622330246328219930633616527462285865248479327644852722459188393867901205296204503447734458977958984503691885457632006126938188107338663615501412272703866053405407157258225471235629275612147571313307399118158525256737290343981030196584067916887472783814834130878741104660265641334727667561585910014006197983841109767310193131445796689409894153446555738176195887780970924257637563073690341441325906617110816526162310728698703361198552018774169568113293132486705168403219425912464476930423555235563717189790425906334877472594299452721627836378985953898445563502680366358938729559478996243205620113741761841061815419395231981297065153610106448807692072513986792925946515145179749031738859283088357050125675284031846296074538877170901274065419489003875275317954911457029525988930557066944236105088025525811849643123736819327172159753983361809292612506437658117234180240878002301226970746211978536312875880431681693502350659631765890315023128619397389980364934252686285744485845640989450289991678182897864131470220854175259443449677509175599613291208449177214875107662487890035002335152820428990168933461065361499527407974065212743145151738812376232476995648577799259600642172528778803020603625532206904497280593302414057302607036732990450805537321413284935351188085832849705687413697589021553268192369160474373090972684106712310731076560864080039706149849314345435527712045639517930596513720449500284164127120493251903809139380788639019524319692288381944711760247546343199266571902696133391389899856344598700359228347149579740660025728386115775083060156295018887832009557699666262786605449108456884475305946528273927199856764156314971939039375853024366162743693910062570634117859035575836492546183337335504864697974571963260065316994999386270969592733753517337516819639488649006013832418493046352577506085986889079034289173340859273531053639577816383561843906732723733193755752629666478342837847187177877267414225921110308620650518001713389818806999291401303317860273488249574773731789593591848592839702929219030719265701536201951237012775665669810494915884345833802680763691851409775228359093338252701100412722754708873232317406295817811770996700744150076204509624291825818097518449465965784779434085525532196004543769491993713604233932891865654836399772702492555973721753308847323069295545313275428547500362893329935486380874791086139201289894980510071648558530088643860595306103113381899144304088101186100271823050430415988542552422685430802623995970636858634162745460490103973837458472623417164720640440845039652236505174157715321857579499295760269774894066210125084531725459064512002461529622867518706932415103087894266942064133795288029419766647013463861313955015917107838479284710325262903751491177868640991496683889123386894451324723211167107474347611490087312959880591626408058300432648991481494689847658475998403415256421659387158558602449000237218638911689909990304461102717423906349047504008606667013595287803077441705247680286875521583383052258008113477550676571155372738829874788322068401037981281609872536598110479327767862450157119952821995890480597604017321305241828609926800957801869716299676087229467058881553027551038790476667161913173266608074209340124416412583773203798988067043184963712864372892434696027221752733909331298172691299960648166128686499940609239733433693195244296948047212456608015798829951609057182429818952387073370159483143648570094303996852883325465378082651675877584811738203220186653722173737997669259668215306864720578559997150338231391416633490069010961910044560925747040077179962617469618627101741620937010179612349205976086723421229766944569342678970589358636380993429532416990498825189022014955602087324811143264136442883078427381130495208896692424914976517900063832266295987455275515779981673002976017066017856644874886300091004379019282648418713221934991391206301321328508733806850687228071944914573607715460563152670787116135546589774514088327019942314216854145118239514395855791374432352585081689242385549349932433254509650348403866070178173700936997063178391310826414857971359734707960077534699573159116926097993046735416204138215627345954553881264418364993133833543966736154224506930874142807910390555859183900274630948442104955790502385154488328766868158022339273070850009112527032492656467440467376672186449503926705014184887586476311534053549518520592374529711919943016684018478918174908953836061360828212893668912829678127479107163322532856271498598631717017449157378649964415752439676453824040892104794876739178268758924526784140829720743899046497140242319749939690749575227439894345916020906772476487103495567061322058330180783239072066622093688865975397023267820855687650536134534363245377036943299956910128703239452539822532928706029955528975293626662671395810410331841769373975355578377032917480326748552220150690907899153238753033632203773960746316557804055967036075672399120684107570095351487584202660253112420923352763575045127635486936434073062680145307716775368097443066108608307001317278502303413266290021037597779248124599091039812647585335360391179311119460455954566464788249582044899143795424969405259829677631127088790278282159342087473270647360616544025645197552936857291869961670509994872042143550650569517738842625145472358302729944437142223465227256868904551587480962815011382092936383625150271096519645337346001828616394767385428300423430233138291212383921015572323718641586398850411620380095093807625302658863709288436918342919624227491827823820738637246642341254508061666613170632733734490735958592842345142549070582338104077515336845270150689486485273768055633869610743185260386636577346396287095184850436379522679572442473057521641488516933715720208628115400182994079087478637032338667687688457976572918528055999039987952840696660226169551946896601957388533987670249386065751250092703201292871103221954821616247348706321904034700885431856193942995741998237597680577173949298409807087454624117677997924379736359324518100002955971431819477635355504766835401662082702798373085511693174820501673097616806925884418435169608785145653564039821069032177965247084340413085826472394302481628325699402274180654814001952886764013436385166239435924265729470983058545277462421970734279231966634263451932205772208822227315390584782826479762342550239897948816764199312114736725535579120350136323943450366335767462816426049267420557740295968395713410218417308632492437470775341532502872005599954439433797091532796023238581272133131796404361912915599810809208707901069282943366903108702116711427869759466691952830619610238745679026570103000467578469851607430073386249967296785630710435081848917638421792266875866259180595691373401137469099087720424230900752490426622483712458249000611100021405363605029124382499655711230396928613997388375968149134568624328122641918062893023117208512917869557366024498631341140230049516044196600234744246085891551049980389341186202444740434345815474186091076583652972949507729616870999750033439939472007912664713719925695095911213327739040210733569097081747585956419526030664562220566047357731364979370941432191569899686006175273377586885299651951976709977099972529603859333907449004739880108270516174025020184878621278642166090941689456369758707019439485498869913133685358441417953672567648825648927382024697040502585829033944557873475044369708818957280924494518889128396265227016309990140797468611756811392389779495736483950763498831980211102834872864749344787121822742096420671478893407095564544783092006541470956033524242490618767585254468341375872829474634625799412545883354619764318365549688964329986264849338833966227935175472539274435097795589528232083312945538971745851701687056497741525200175970079214640663399115922427590980230230108844826983685442713545063268804030386268334582835158948180994694018276898562636594737740370042850542357762922656955359643774601986346237102959326954771431199308694096336058957644463728096207555283222392064037473162819854982262222892156505418223221848626193522871656233370351165346199131566537716361530103597341190381824845773494293148490931370705112100619690595261959374870334055521093567734117362635139207579098947297804251039471041974217321101167105712304053742103163489864070031125169270376772431042083890783689891804463708014859952517980147496387686441637278062045461282447319722397518875603570898752980378500625496772169511318775827289754694555828759212988589000066012342950803847555335213936120371440009938508915035206849692143770991518866144689816144472725587014272394945826042556543748864222256804873239278833246153016492418575099356931111338399278319042250726875616989249120033080579319252312751566887113246464091727009062823140321278769486516301756095029277269622153246442548899304192689390806400704544397646723105907432551766855107443912894736967837840563986855506310221449320379875281760375440970926911224971902605621487794086388392996639069637205427885983418531709186707645918898394983006985770550438790785124119856423395406213968188359515339902843783059402324617563997542106785879194783800572212505645239484977630988567433692143265136218704526204407454458149407942952805852682720029410027448376344334033071947420711275420989504496136663897044012053342211379254817995914544022407002988895359340191190015028462547296181037442132793943524926437206879047876060971815352984091522283169601842177210576179418722278904011627241096706771463553732009048706751993235109415026685297972584040455507758285252162575222620078111451355193865369806966115124270643557337017254843132552264571052425862646934243177113404133030103384203878118523472863340356062729904586579825177830001386336707897375815650551171272982368964722206082150005630387171274049024446478057707567088969291360113856554535854895777646239686025568759885772930785561687139096703839409316693898972767627594615791233383395720931746739747512447015788814734673679062371968004878789339704904179313175847635790833928888797767939716035806694596653372192371064440915067583154049180557767698929256870649699545677502582422462904634720254059950605226820362976108928846923110432059200968764879842705998044322626083604142897540100012993408533517182092784523594026430228747740572448737915595765747198670507214508438564579397296687854939423950556770303016419730584518204168380579200575675836491285106314631528387667590570763607104890409113590503954448627145854065151391759472223380967959588280704068882928682934271383095572702103039407878498321786654195898554590440925738808659385167489040422956608901578065880124468452781919576573237451639445754631906319016939495540198788716737676288466781184506376110893650166479469648172001206233443716824278913709669378377902818659672965698535568388726601468101271777132455463441642650437316293736173157719395037730707314709167896839839751842883123131448505311954730706293076426158306887510920979842906755694625889994408407865943791434333761905302362447415937457657083970972211006653890109340688931734128222559491310217184865219431599544936074837583130300101652579810306935654853866391593100448863695145811183422482284929050157537557658841536950619659677009006055412696486516213106410002758513435014626763237168620216170300904191424541329147130986793638045441949234662321118951659261676164440349223968028515286295867523363751940795149342577695557344074166282814094835246879124896553348973691614623261295252549343854833942046165775883827354782757640805192682655087261889843260249049202126154994688529169294938479896197935521476154594551392257685933612741880397083519933193724033305140789721440209049899244080633719390447363723892614257472289597271988960084801171426558527913414209515818024210682323824602479117876986324072131741663596362786638631272641638594028377301094873747750842731720192306167461832733424978981466384411876997058748734901222958118096762096513479043071776055102315631709513081626786528820019497543320404892780264708572273461678289538620828292838839135872103346986723932909292672969834618286144352723511165608323059827972522044835513086024031019946448020898801968058201696076516968900990207111453108004466969353150275022670858394558907270723835620998614624427579790270347714536520804463861839065337408402888611235570966566297053977270241848005727587756022760298331161218596200597478568856545364934535427457313539903001664193368586403342215224265116592550183167427716300586909679254641961682042215954048661347174846943945561501877328972553867962089069523155694983106412661822373655357800199111049040096981996527571897898031708111311928654299698126669945454277020169900853698289049440656725332661329020679174797611148138339143834118718715045780111073875701451861959620649433424787424409503353009296133812784324278946355572898142822381133901668516099938739698928294396547495130671554306967533477291765643165088799911528277267079750939157631947291755308748797872631681506310423202968247174358501488286656269702927876848690101296871226225958685887122499818495635889102093873079606085992820056110387198756436526818671052954495609462854330370737632883028997639782237769080603416750562511420737354889517059011647902946508692715763016296159712459102349148600598282751323426939509006577229874922201786395099768774984860232186885613530275797798548572544848610090925961199447762302231809035484195998501090420951788329228332094171343642193884471074420847419464413509152253883050227091408670570376400767796412107232173672868382074572850161626916532984954036411014737692292539367112035195131026237678230663046603461818776471190252020880416743569435125116538611516850066433447018492516208105451503504521635057925213461490751046978417118929583429557957073867365082151551906126609298559048458444339264167578512288093845909224101161938721382419261144208527037375573772041430189225720082905372076942204066034259748345315653693670753446675062839923736210706509541841150268384959776002521497105848722984776246562980676992433897509523444436384108164837765929951993831884546732316453434712139594611961478886683673029773668485640593376403907187594770810480085161100328722797082839000238172064336297296191698573604449612080605672758270962780919353758555748635376092659323430529183841220152552618624826053928072465827946158243128280016050352781304315876740710195375189856022552658506260188613641103201076557997249806413574915585410333736350141484037793504031629256878257905408852334011794910109411630278887127175647982927991321525417961149294210193037015887490912016116334058555612207697279514738652095662285142054870490551312182715739092127716535717334708328946884441652082634562087695418018136347983938001739171166999038655609691609814324113921344178350275941809115983552351495560429871538824994806061650982526090131382009663339266937732147171365517749142785965376388891057664452851737717813758629929550064085781262612069673092764471316546923039908987407952532230670558433745831565570583369180882009519963891851168871131625513846105575918122300592832402871948475967859428043586954016365521671494094117351990077599171156925651923323892245982155467385383511004524714434032335548588674871145678459956549285851136782427327834732813284929603341599007570755255839811186467862069249331422449101625362988718145647090337592482457276691680476362031769664926024851468206001065402110118028718740069901935178551976497727005232443556124636674719909095183023126640928760656055958646787910624386501973377175632775590368641456274137282094525576835660778711548140381750466973518366666700436167637487698082245680381643300574845300181089569259501121911666558093756093869005377342930512711964596640792629871562824121671147909672345077030477059909798365392294651939777128101821205550548785844109370604801004179035654099523725899143705992401854272755401036938353589528417714011845948109521354555645192347821010433371645278269300090603351034832280309908496066299150943630616770592592615506023768717841175798790887844628968437281906455083328026155887551944242439434136807466595571622654983347508212176768128308886584906968261778704227101699031542794207586250301335433368418795661174676165191520604280479697321656974902487727638683353449917354518711247203471528057043151968705937394619535936869113988653631875408324919093530752280006781228218474843418887977918474492386555791647390256306389358159977948913461925717624448817765759259571969775234682112426586968464442172099354981948679007048523158979003879704096504240885425109526539426951720843652905463224277788567333321390306816950737739582329941057688174219370933144309879181101740318877727963006789683405378023093218656114545211892280339256601545801408197463495183276590155375313454182917010072244452304187876911645752606485032452806388682300208281728257800219484902868622265451037210902460128655235209906746665483246242298030006563158313680005641570301113824202443640904110311164763245721446465206482228843213191047262152085542248040244336553610926853530572028540785682692529779548432787506595001759130226230749084871507901116263027752120752105302078968010866148274394168882543549925813787617177680223989544684313510722627736200850044143592039507700982424725334679795140067783380165479117035782857141584265270046853071228877647416346540717205149507038112530694253443424993002115747924742412611986044885173102931136541307467497486373763731216772115423133212280921488276997223594960327844839689767210002538620838212438991470889667839681442661323428449916627341926192021016610187001472982801915905347270116349762641450642488647481268487543374989626172941417945143850350183209824341337872329482075082469575472072503096534448095519480063555349675106004754618020636544524016274026652328284877468255411230316925046564631838193723804162851637475253888169682961303082692353113981121408850357273983852982943486677280152394604142429734310688842199320618970754032014374102714618122493938291762450131635822237441720851041591563859242078081220374455534001455245074298538601802658789748464848037876406379482928368385375381531983491282067540252269287596166612044114752608836625495384200464456996077782498065149975207546367515922683808114202107616654791964770469442160583807386294825498282944918951847741754292188183295111060334999117392079368410027548740174823608278248326373572918166830294391944776025797857121560968978958694155339895772804400794092248122992145460468681601784695340335967374646403656700075924869154843301743271890860091749091176274854982751205196588557228995879911842755864165134853667004448073651887168734188710317296089272428607460446576929116212875810134080567407420599524899902647210060045793940587749566337792922674642413807822274982626427365020815720435964596183901111101393614641046974103809529611084372869401308193286930466257088258476727367339679024602391859282076040189259598820080009244505278219106511621852343579646905941913893435227646059431027334048813308035470595002351899833964650437002477035324468163164479553738113267717144228419969594880857988172901138972857364551771200937982745095509594698533224147089068712101494636596348712338045796996476570449250796865788870678661331790449997635794002366503614381501742996386234299790282525185634991230362388308710929451656057872956596286732938948564457823597977149879743521794699609505084310675172202171930064018413081776954336142177849125685732092115100084678670849188224405356206043761622749079549075160344512278993414270917841072775722166626751593544085242696795702118324860948555575156658583459635031207760920424387550049858232681596207387051741619264896567650437416129927669004722568203097848977929777559948115885596561076278816625141499193283104699910037128670317950697413239020661049846127169115296027009123624789332441574656383009880910063111281298886803690857976241370637168576970360455849882451326721701494430530925563461504382622462289679419626465374858105949180667710180349870496573177876260717119252679940037016168251829514708276136125199335295263818371859821934085730776163639235986206665066651503102567015244331669662576560692652102601637322072786748630463698177374729300477204184875754459222971111449410118281266837142288994934147824529224369680333861155007852153028809277611412346043939950962055268724433294318738941146922445648085074548324445570545861059780074399824079055775891690501100927108267742291929793867320644072565369446470898841326501078831111685864517948840293432843653243077018472557953597820839510024120568488943860982437086154536259284339931440842802330250073677244878104507531355705921974656846053933565477223989017051592923301276435009828565733954618111187682126744787339670755008190780574132681233159387414834301527790854547112476803143569147917647327171785732301186940516271872234901391521554279621048408976281358380445684042078418128379112952426259059259866892698416331403140842538245328644469436658047227050054984287930620693830112405007857497567936979879230715427014176677480308609987367338907174814968619109987769541076554018662830546829888163946263851025951830375574063989797010449401782474289401179990098179958187890295741656178484420055212389260068113417137873616685420210442195119600030173212417085221907460850878376943618484104396573810568040970698134351696999468839709366270547666268292815616067290710828823369627461289215237020276684973663106565359972345876052333805646594899153819904029740898601728447214900455594940870126983566802032517760438641620559213061486715938937775042979860888903305885286817788454352297916052477053837529718049447208870570557864441716055146257287879328655773519367496654585646701506833799306562581542255421318710611908877603603718839135492856868934275265813628493200981305714706247087002392195396159542792968199341930743013190090997001183397480245709634152152486914336644603811766241467839606222733250006522736156993114532112280502837428766037522049002252855099816998424569562318262638363747210850282561922893031470164654863377803371306624894713550182777945577335859625232413941801488335004381564069106852958590866291562426974293060180757459045465287802444151867108335028062901869836807958240473266023334793491696560152490200042022478864320353586393353457064291209598595314262710233988687971404031941195793851159620059830178995597428643742457865302703811322728931012872725782411235558063638049816069730712365200124219656716721650657326649027347144229377552818869076560239754090774661222359493232441715301965418663021947701273522995457612891736335826641491935976042933786895212876937829257038148032804031156200830718335850671977169961187850919986208214908426718275150581310186755859753504260156422442075162368215736542606807997060420806425771624441224638215304702946379158770970637857049211277601711414891713795783721499582189526564634631143339989451998998335139249472781770792403512558881576019092154802241214962247056978166624228726433942959865749326989090425075275223357041527809208157402118190390557746862222913573074351767088734385197227269065539876066446148200617780287795684137887178232001064177133017013411628943884225655582093069317409900504571550551407144921371965770611868075420433449948869755918920966224588859836679766953641023546683571405558976669257415469809597867988426637726284159883840584358106539872524439574882375848610713844656870902807259730100305675411537572401660099110580645282632709527278378467925788773772375112856669272004423211546269795032339927593746226594293912126244280897613324192274270791151676977634842835041014408667050709825840697210337089611902059231453584281360985088790615890205940279802816900586833255319362996845083516926039872951566989111660998873370625700915680172688797211880932318440301389458061744565368304284937749833237148063670819659861030465762537988637218908084963486706544797381785244175001198250072511387563325984319026650360224329215590722937531591998545854882644663438801384090427999871709992233764382576771292183808752731705256066417007803219931530047145764771207842515071150346292517886820289826372910966442522612792928270730225280137655869184797895142130599229746033652343863900369251889826030374748435931366651499585912280993648096811906900349435731481233819851601641597766118353985637976988174385430257887522999441748194727702008872113291223163848510048012689893017236506535317909480332998385925749039577962285734353290404257440335753174302108900227721587594121141595635771976328604666264032972029359259753445808122192304903640121572512195859521990553557358165866209265341691549679618597406991616063351245421668427433159182159232314487177634310898737948606264203935340800456502966319189152409692378862623892284193727718162820128888814027176907325803918370853654766346086770029594895584002124046323343585722436642104835954978033422053045513592898846508397392244018343826662451042783143560980173574783901109276072441295081595646928592262862339592882342716714916218530367108981240384262254900150434127643080497748879878779242669206204372603033805717168396535236393242840233539685553821281681247160729455234526173621664075066566433745370957945754259512381410393142519136485908346873632844481982420852199963448070061643673000193595891588378903099873008507640410058342569018846797011264329110669952409771806197857738422897264486173911379558511765761940049129588604596372914776443047206181342178057365673735177405384196706522331098920290671492888655194529126687608993248167309533267754033372073150736073388385441433862144223603766787551556036608030544718428910813892576136607165765630966879396356026680741403202584695143682313492676840197514470609635568259218745088662673053778208767508269009994431485125880322045608496383830223288822230390899636130276644354396777029668218004051088782530718776232411660881171909140037756822556577294737463261517043992767016293952507553016357960127751469214338723077211882987840777547216192077061445858186059219864040673543036113353692314331425284459120381693887347028301019785957377081992654611858475535396892615931830493952349093262128207291666587991313628586664152477865778185277828596965679570053299015628329541238028084804576123942914856817134737220076951244756710129756405606029238583400036388718017340357594580624651221895445172488063607939575677934181793906796383979850650908932182521667750385052581569907561094998364228748616488216673694660344983465135315756660668852871878976399917094893812818750817709326084093901084983191782490354064646051550843538695644016132800520782166197499495214840995648628251320940910403159862030325860701648745531515979251395604640516381061797015295879840801854836973320425557411824567232689077870296823045882010128149522722511147984141325349444172489123964450463548941449039564158007787014977155733919682198990320175512586932537269305216616191053354395399843894364569416323154670129049420596398945527851727029559395491585514115133237464254668517534030256955356746270427371410364988953320001840145169468017257389554250916730001482401902116242459744355515099538754115328751073027513744026427118950592540574245634249492092302288931255970141223101210068024294743618206177068898293027645209109590579827972438483456299962948963339618054857813309979593763244966359567784730547255056633312978017468601081693024108914100813651161159546211538599787732078361496448693181779413656440300028754734967972312747449059453871268537138273572950998067596089161461836307679093191319632266978849700031184610115910155949345098795713242113846633000228460184393141661892556807129661808838010237673036951800570523564555951185319690782604255721005292754333871921589926409942136060507390640506322907932162727957153423783555081149113715644606029806194803562186996228180643211840146080823332950359789201238216391851054052817513823522362674779543813948863245458352518200942192925994426126475023307015040711219803050650189134922845674551051823438086298383184949872360625454323827648975433451813698544096543027749023676520083911735069946451528679009779869811078669342970896672141726524497009667289043866631256785141816725309059274809455722221066659428183335240548190898166611075545292546547561997300711806164833843360053243744378819748474824770349752485828365876988519065779947581958931132619736604013573748407688352035665712124568387463881815404765566341203965681093805108847351409485631461000008815264261692722267431560382753859638580839954160156252732689093670672073934764280335237338517496217550352833987670011324671635084324261414915028241603929435820494613429385898145456562304214431108894610095359790075405312335045842161393331113005141434031340941828712448042093190420879211172217929965107579236520637088105681318382704647719988770979939138321185017434578625433634507478516587864389535227996424605677584750931402053687441340318311508068235884345119733042962176944882551165146437707124019502920451591333164670119806823349904015150848496581450043455278253950161339738046028411530641319953449087913924716864261283485203424850727725866602750637695381642547991680346767540102314612884104161576804228070614428153769867903225430878856611975151968767992157360567760721242360349615368798625068838321950844604647425718460860807884992560340248708122570893888141693491732769208169309570194577096227645251182628377476495669397103620243852213574982967943023386086456953318835757534954277441469979508263904891198722607864375966970624304352674865575907922208220419561835132245031474670759709409458630698910440270423667417295504367175448779469980577075984544146904621885817716908686087924612790609102206902890321518224545654551353858465448441466378170220964036970531689410602417202827031632825014219422146685927734576776150345056252792443911570164239124927117282963084898657121917474138073389457075921479965705878334693975767468628376945003867413247878649446893949052141536076530869008294083673278901419823739385020500462721408750530761064314450171720571812020913557858996123367182913803942863406727441618775846883161290611405051608375434981067005185710478180064422529078142824242845291241962198066866978824228651933360806336697471252493036568573654014953612420476154617509223144811082923840443521233947143402734121302527696862980529092445548390748949108185856821404617996820064072652322654962940140999928208448071032305392554048865148097007250942478811524120530737969398791345036057624681328214665241989732263545829122285360618873099234318447633960055421656095190939639877382336349737621483635000251764717724114937308746708247763378553992856284359619122578745993733231154351428725569115588061109382271480141321687008480958052217736630333659970564466251815175724308330392923598230019065036121737076048129448995765676558247695686811651382379830204554662341502308752913656089450758622232973959679680171269958461574305322060404521820495449935008926210113765160882071585107889860972015444026977009001441734544017385423682565125984090222620807589581058251937101070518680710482068724004824754031737550803898902683136802178948439074134173131194194497424002525454650212887639758385442983820634581258863256903177137101256263748000557430928773965637682699775993314483126906348926193293341808567165312788809347346585242663919148473792396025961017989944947794458018459027733754213580163859142490060571040160628902628407451162906345219350585326511989662121086598447179818135725234446659031645153084102013543790970585436875982709359316488144020535696108730355219271923417513015024788263267938810063342753791519318752487537801781348353618502156226776792095043999583914882504700437972060017980573853977655410326395476091056286308368163874166665639987372800183783698043801230287126905809018583381300903141820201876119726104375489312877701363289763483025132611044548447292145586866569138906122887859251448634433209136793473019774358922161129281478370505546650328129816225065660164400854785264722812806982049086738933653286937428208595934254410037653372657112473663501105334395293592352848398640500841220794118082520486484131111303532282711600118396077246811590088380220877809402441415534083524752664603703091382777994117085673340183223480214624344846633137754506614576003469118629609877402740390615434043264863660861698893837022625524247918777678994132431021208857962397680286018166194575512272804670003368310441825492194249465856473457200991300814411904245666626515607267082070389313238251900306696831018767297763162013506725764895505595566376757193996334368177705977127503041451007143043276067173199376508809831398127297230375374923074918963971701881501419764085722400199877621719107204516533339445683214918697583000666051398913982615587521968318561234068425215222947260289289317632676026592425290493928342315923817302750805321070711836165546193754336392457462878811631579920413842967545178556038190484993112435140998585895220667234666737378744524289563434455383485640619292376318175648106912447120395401472772915369194780348310176637803715736364484581032275579744360994517960530436627714926273316460598347172513173357506774186028986720195215083480500128395591190427641007767043720910504946534341958176434254099767954219934477019354930562166339384136923944158620385745738925133413562080761614763484662729605333001002665168801246869032066323984592592509282187370902424783914789938903854050150834465399824421086006639288383385418629524771160581622472209220124191815947995392868034356176272512518866359351268473323555475433034578225268611509101470115719343310886407015623177968800610013587149263849865797063347836688008507019373337573000561993866410918359048675737963340337422636162671058147327721128697987640107528531541526460419584501331871608615078732985757563339714907725089975626601044774358787703559144535921182038585143842603834766751265875427395558066110717603016680945189735156118769106442070740635126883829969099503160145415611159435997413846538222731734775449615485489896518009165988936152530009271881468404954623127345363307113487380889380800109541131280587197600619497664687603228416981181849229839738469809594962200395600114276220060185925346982748343985233675571619473909316915050177718549953423106861498358414786328030355181195812294323027604031131053795485588749303665697325409257905647916423098862844984808303774876074172689148757353991855411987080117904043223333062939404489669024543244053190754090043549544990551923394251493904429446016763425934479444109942946898521524547132052216542614351670382520869557483050306622707463721334052202375555552675021946033141454918598607415968261962071317028911809044977696778523597081416147278485950560920125082711557034863549136247614933278844696763211387468935499193949842002493515863832029775278360197367236640147189273713879609804248360859794663597302833579698379670730468559648465350679398561360315335572344995709163224350376359347315848868432059137461098573752663502636255868016639227142163146624954033610584520725713783122430916976759083108298230173245940333491401347611261670204990187825882223077198060969397204772972077010248857939060148000951913419434305249647049633325696644216456324185144522348209002553343278764489699468773673267071077555094993571646619607883333743889877988248181262918126207526357060095169583380754602260133792566681853886708566757537130344029038167925898133871007363126613035584236299186315398436157889436287044367416641007152626020976400423765625309485013989984757367560770889471386015771621304967442438295096616748639746651301772238051989651819254643904945334406592152214204401577701973353707983900757662259632781425352434297837803289100029739047540984009544105345428835067942009042983613286663231288029595665968441623725674417296313186653900455662176751234141690699715660946968104230789047906989961036028283329827613303404027924977824176152326365617222096805792591424841752117651411615175157389446603177898366972452744772941667477906710946721204388321489608071645146070712914370427296444895286246681221108475218222797240447435704154324061628438526768918962842672048437836025595307360553136563711262803511105411068875335187973859848860248711456616054573984940829406805876429443461657716689391130516807573625059668311236682626769583732769012000128071461749931341958302697268810767396435590479317939524564875614817935015513823499107302692681899878642865623048837114137333760481394436220639263798538725092195218931435663233287932747888779219739950727819951886065264916840226512338720633876068451536080618923742860946317316344749399049698090976236640477986610042458749416810646027073518278370414884968567234684511008139365279748579766107225275230049776136673691784669513393836499923675694177542326268145288791731589227189603420657107817389315630271322722157098011360771560068726685530469940603562091624455541285485454165814143619136086969371188361740592688427890786591841460607317298882202618775572302705946865777719193996196060380185542318033662995249596339068298787916701297974577897620521944592523622686879575929216674746544477347706102728859034317850212357851405848041431252196304239936920633881883706836101053977627267835776852499216560239383961776013589087255829928733810807504197778533162435381623829125326242691807569775208371726013067140797616338207222572605401410818076352002836905558229941377262167356933136832308545630236593692019314312064628000503960427667368958003971813990038139058097271521595291255630723255439712192383926339995470313016436317543163529547764431809507847271714460534105958682484667706303249827547676092900570501919012759504179985367508194718140895001305589893281082897636370278723966721822765334419644687908577516946371515155328125407468897514271844245960365990109461697705350068619975594737167655896224934865405103542592284459771144776816161287223587455128581042057868370213187698556792816156555595302540775640286501771946672164034332130547322931613713215108028314967526192487610517375247922359392288105076239292795850598804367929143547235893764181135673891601684452911522309402315544621196380299607030477543147727104196347515681361815203197358397553655754390927617713361169353274237012129929043242585411407751658145275973386857513230460719743771353997193635719868514381230868009033129041252429744819919468812334204702730536322768776843980826413032450129136962481144466304300231419070635162461316594662970937252333332412749000886756898783458478848673956888538314866734551235292869516360489742931860453095843992919670769223640443313982281377542865593188072835939075861192633469821225677095595413176418190638804457171597871961872368657395400801082228677821021098100095729970991834240457847405570639553617409757521030580670559686942136024099911887875839391949840551729262219206648408908618573533526889221341513812436854234916378041833799692405019419510244215410964997134534023282316392438355805678691091539224931094384388168242925653355987957720000759712714603049293311122905024798977536368431406140946624170379726786468578756233393554357047125254908624496419494376339020971018670815411641387193392164703218901228380059258254702468315478173927324006773023837034934732742965742857029902608394215141698839987041506668653079598370767191281592195432553478516968390038987980078751395172666978227807998287630880389595345940232552673542153360024015278422558865021226307391471640280221893032358442974999550578875682595100228762083521154950937865503296480783707333772886966883279585166090716644340112928412259449867862759221442156308129220614759307200091775236468246149188951857903836640310264033856479490846362473501312215261987120224009102248392388126127911479093253857421214493007277367632014331631631471044838563678286211458738629630534790521874861446553908280694223003531355121075825760046633253342209249442110543348434272444915887939597220898707568332145038940345792860189053402420130198185114183394174452974262115387775354004915002216299025388896788919223226121562469684467106918069233267358750214399053033266155470098326449452408132224372265859630970453686505348522325931934039007538807302919231591882784844924473555857556601388204980895622837759922755621036931675204333073257391546841101540219990194651209961647440297239281161131114258815895433306359802829176410011935829750732560827529704128428091364534614457987801112355719175159972604180311029792359764545488354252833674987477577249470375051810041352988338352330496067430721441448176048632921003406584829014552715503166674686903958536496603449609274984943787354392684284035474425986789814569828024695840507198986155087066693617243461464893084396960864880095764735809728704616281837430798583038112552987324421449073156776169893029462412572406437246820630055447992731267522791545441937335174193956102171067004739703220437956891956463297716768180604094713540828198156065426114266859557686922372116307800121849349047956186251494877952286180533479102242699403699781332857256527865437862298473000394873428228803927096030390441175604380042907557079496271200330852016467434165264038241735490120357745749241108787407421915194005048610726112819774050116475938492610009978783210615751458780533443784495673573564918059657708200512358250007233933307875651802353745585146275378511704261716432390027017244151356243028062424040598087424416053575645899991568741663803105755868096848182905209214864110563695638389489727968415238940125578251684604539328971140658026212776365031490086423840694997278470624511973146338695083326675241321472185051848364269394364357625084774486027334585044854022717309899479851541224495395186165853330031937323774423402745721654536457095821591936409462532555186887446314967137860244297797788802321489412709452128740500895753388733116559615562724413249914852717990611004951181306507508597615303906630299175095470708482548317125959233040631822187012270294162772862407828612414324591857402022547389957773381358896830286517471833217354344653444482734352152497147565907246284513289486184429518754332961848766313110970616889264460240260675244846851257499566392616911575612477906726285104953402411251271429130433356520885467436124113252136630133053441390024193612967286668459054354196205767288583982818731831770116313243567987327804732139833080827854972318769509504422677858475780362754942374769008626682103529469877616851711216383977014737337452213857976310418287470217996684453641086488008693820701507177617312063033009193625399357025504335048452525821417149298300447049296207871195549974029284133335137475924480614286377968084150650704326511904405742447146304578724223467560425533225816506729188904728657757832919543351305566092829636452599255635714107770893972721596325879665801886506607885054786561028796859303328957210641647460459672501311185787580138417757605956316919520639998509036106710493587821931952173279323605940408473402208098845571898968227951367533869307857877951367996013708933494804485040677133028463885935376822834056834429395451847754339490278113742737592154620211477205390562292428874131345547507503257011584038417054114787658089858540491116143452440710804450497598919699295352792719634948134417505157628131132643981385134289675436427805882331973443004810973798949452749638185496536690390845970709072849685115833590577669690951419041825958942346984771748621800269933952250136199333783673274579863867980974889183183791942426834250103309308087829466879413350386361549109684459812731169242356563558873429558125776595494120718944786923574111357486433485630256774604340604647571744339601912992887612181752402091861505903608478466724760118737371275657348963476529058818369801617037915297675856059625169811494570043305937575269995084744997343451250665700630587720367480301625243703842822128876501884104422283516139550082590391465529601719143296918088607393896953428523296380933029836061496743344957943478892247906364291738560119017544745215382962657741034754274445259414867513815120085215514229594580038415690303853945101261590602635705488545055762254739375144837004221299950381079102766219761540899301586831323802837472093838533019362537562958126019490177341316324156402162323316312843930615830365502097003026923683067706520618742587916562350396525088995925240196084923150004276190196816113491427407691758792477691785219372839642583300507082442546257171526294974035939689212970448024932813434956695832486127424873073701314286881635401346094434078675231641255729124798828531595973509860426302157643278952711065371498290762695288656399244318918114642512845367146817183487039696204361943343551969874161932576538751076690281852492893973478127863784634420744091026353703658759567406598625525024467497673392573761922850515575998386988443668077036824781254308018988395841372626928978589795286891142213195783817478357373333792568585167375253203615318643065229575811254213920898869352111413327455654867029578952027329408104838201517367770912593776932099373289656840550387388768996212440470195182760454313202103680128155066738461518454357467274666996158974730752164369777049488735548233197952002899835371580239318547715567759795138982490746242325813836535325723642605579128969452243960989025094390315957693901713228268267992585437384019929284520890491317231908563543562780692444545215007625160176536913322364502990863708899384248483184291994210849760454873657669942533681837868240319573396542119257226096003914966693802790923128223736395281928118403234345714978795921969961824164769505108731918976210325092971562517437034565308878067449840966937526711051848410930167378059963131648466388942005200717607223801852423943826708990968107610179821819482398612130503513317744339228108567417105632135166021566058141164317693583791253944173545163666369938876703411743554920662408751757550796532696772049004564492198053495723111814578387237890501319356722594384590661780925828990979011344452241066367996767901207268414553179151302050557043716299420792900487444614129260511841295005292416492155988098076309236686579615173670328702158989750503653064875800420607191650501386284782938137578131662651414527960416745833618613601047879740479897164819419636399258057322587241563898387868673536566945885439959229670116569426843588221625822590882944329127619471795508020397323964507961607418627479565768765274543933291519205836277607510963617533807440370067238065598414653864479259138896532918276893735429802363815710992297188783432372092384176908365534290126726546397870448618090804217068735255083127923151522491504653278772195189026447257003860794240015738706420480544051816894101709150231764893777706567898779234318978869558945503599239164140943421005100262411888276538023635803358991495180477465160953490732252356329976207795612231679198249655326864025589091939782790021072391627086410882497044806579277978121817707998250234688470421748505234571567383171659522143336084275039227135501226381244356930957899847819350948067320865250179280084054520469956823064739211947144776111113262334031418190911139717787625670865928324749739226565228826259764606562268871684292765718919744171306670748584062120231641172736727565576355337332324861853052270485286638611152631945954589534656701918901473591763341413452335562241413168031773669595310634707606466745124153287760055642114342165390588416322233047078602740197929515077493036828222951894629020368688168436474035123170408165963805712124000014117937998919346416532620566292020410685507494951129342718867351883203620569957660668803992281186737735523360305094896991802484921030888685291444371927964564244754116939167336907350374892624440315581475585688750605817291327953188889840380075707447724143090632795585609855218069683870226939274789864733063714703399348887831779737655766777917754010717164080517183569420710286803380196893336203705238209069591130029342049904574969779945183761429518309096465902943334135005363485062150980098203353419860986187728406790782965984113682617702365867362640868739159869747626089257690066455243326283142353368812658997646344788325890980582155961784540318554926969897415384455301577670091362096945309961284608599315770777152810932825044482313870138807741104214608284893408626102665765318264533638684378060465996945027920965842629049453587711097756088872211859353809811156557257938626448105677966706446026560071046598513363832443947981023166587423546388845244068208702746924696627501457989556212739009774644260140606808690485494586223835855178987083191613677583130331381261464854577877292911447048675856752518353046142176322074621263128932789899395183666153219802429304712045861691266092001756189130176225851645208818737862564627239321668245192776769465008051571628724357963884149322976815057217966163086758729635649633349747319994127685656288305198550696757921432103102498132323162908596010173826895232014255267751746958639999125627090722900298074960161728788414080092112381672480672193735768013500954281228895827452726354869793036726787167283753659339454944149701684181779559980951637779828530449529675550359481836886455640344131398812652058452347496783372884262922090273469277984165511205478656192435355060248868493606861568570076122076897261662590492872358458784567414332582101480873762865525238456751525971033753078802811368128247578498195225622011666775488220557441135552557966412138627102215259196528872495905032307146072510841227527142331380510799403001076527208205480613034695796698406753738148288808869731242790617115502153466622100058874849230300805503572642116890828955672312073829437618548896426558383598412195787679255270544923141152609810424017074257749628267649791328986949948493004732996829386205445213371934824973329378736751757021740838879132458377985897687698067252464510547785470313989865158835944183421062211545471943646108846511705105547924423336220294491360789273551526392459250931829321215411758921088684041134216102509816526742108637817764775676595076700068180070395536562542994970908242233928059427362743311006218286279656289351103505720218956466028656572315001137511432884457110458947724115897850081173755193862755831254474394264989083997724195830372521572288409483692244740199582203348646815364282893045118036635465278096421169623857119502807809015321590103350454982927065941850546002223465227672262314776870770122354355380474400946288466128013877032216900397916242926200197846081204211741940087692624904199795155453678591840433244613457452072887254675788415189334393910129836007406500481750615965443229635531645905591252206613170477332208433113289564726641281558479582631244502658304051178587575746886327787840122611882669454937458126575430433547611544885854565873828606939428079122153827985909346629181589306446686935240948570987333340974362097177637885970484623843958624135303412004648551383856079926567487363247127292502069876231710802212907010798492284408018939907556787129533903261947457374922070135116369914570593200544141494379773017648790923313595351478458326968514401939600033459171971850018827778324315754624184747067850436064585288710590501368695112668435490541129727622650590954655609738696049093768788491359916138581835182603873820849576722888238014089956641150107686280103050089635054283606309734194449136332036886658327834043743259882064610778297474877286300589837340298895497728947318323299723300623165409462296374281970177643772504016984785837172182426250744545790573289349824517009428786344349269832566446545609274114047988731525378146382472526136012838731686035306996788973346492777509059460059309888650736310411153871156089533647612997141742286249288634856170505678173509300341501824290769247934768778597315354951904573080636548464363714227103775043244081183074269828279104330700863869722401684780259267129798151586955525081951590949560377499043359834242307240568659838760500231758205057911024906517648701783218980280620710259902360264095538201369898890574379830304523770752105666075369117448487631780082260829549225075594525856003015067395625832897638676745930994122092882583344107658967535858420204396643737657239130609827559845655977553517848904771040628538592619958597248597766745617853655031327745379543117867739761082807124510119185466979001203171793594879488860777661035989060184365705079630650089364234503607342440551488913418177875517003997891894745468077929920726422140583404435442300407112243443766170697446776668054264202722936561626086623812414544292688169612382497411253259950221327693798440893867368914832120403758003581582765201347125736534330835590932382511931796119882149981483312813309972607287408354771116625024745789090943824418840133603556573882834140171645389464625974868046106706138480379604602433504078159300757181054253905828726313616112597351383656624539473516547474845548735147674784147549520665551883421269899397145094727788074438829375263203324897453205686151283029898639660133957450031419907830539210749636927791618847487631264947159211806473326047866857431691826239629629215518922496174770241952423311783972101803573024194739868678180584217664383841225938333130914577410388406134892090169705480194223642741874840025494838202685860386805246080302195772929583697956174796963799292688506899103748866215816861717864971017463076613196214245155423685981418297641709805115358201486045597514225388183873545255211586938877737827192130454853412537515918989678757921737830574119739635115636872901944938385275768539260114666530217490515600051739734721758282818074405121190245614771539094357130265709342280993743951976072860982779515936889978892762796715561793736661650447131872834691455599952605246048835552223414912065023684504626587156509585935026528993254235977199805959739758050331550411920436403029572138532180651444462734084216734984518862879645973841006257916259147678972037961518727002016272108759040931747387936084128815107708746544285699804970926034986969903636954692193208037888556573999752412222361234994001708347813927379627542789320878319429049037172000826077313403562921601607019633342277158813045813817112274862088213423700679995409112092459641275478763069465752112495600316169358051527623891750585150647104211587671161263200499069248017400832176620709667540854894182428471155457383552385172361703066618763856488638941659865950658289244149633548886585678337010432916613042077235967762657442460384625366136275221026257363655847319571567363234453975828825449646950064350862123263462631780559693806396360014056139104328455666916810764221579656874963126020384313591307039391122546635083546226965902437265100913676499636825396098142428863366901610922298026019178575126853551508948445409191892206756133949866975987035662933134718617968096650614426848098522094766832330660779828925823776899584783952168839332216447088950759516330459039274802930149252852093902560708865507060298231680246397098041008475970986429306224821826743307640909977648306209812611679772354713465682764030620080765405136124244374585248579727578872247691197658700141953288472682926703600443320351678471205977100496843521744399077368991467114541988259475641422194380643153198653721347112764209204100657168144971163311619313965075010847943686600475683220031162364115482240801068478966435497669784171824987995009969285938077075703425581842545705659614563279805408400787665137811792555224116900926628462504170031023487433382500913805888564772304556193030067498997243596766479777073522956278615269760368677377935276586654594396761859188080575215795959672121584278779267033917087812276953304864555072735480346337657909409562820049196721840455626575110286434225066240610401542009373694800515282402124751479272599477554912833093339943758978716100615715083110372305762389216859927895514708651461807520124788666550515619222854140655994863096183271424483111258068398915280336530972072663296635976349776601605152343213836175103270019729341344173360172229212390831729626440675501470718726692854953882735429496484041231968999024361760390738685696851764175792833420204372464475764489657432409574204843124749392461952025176845083326335215002921747875812282861950884473727287940295454593052405164459187976340539542485628308265695777517267858992598434200000071898389504734891590287935522987042923810040242094235693985484383799804875341387745711724064053513979145585197507745259125471972582635322643554844156233654384972592755883028380261798332727219370375934795440948404869500143890799879172322901214219760367386223874076042169152919755240180178777294417012540021245680268221590972022132780378994485831053616669340233946606123521175073396011962547341112836854419749633448231522415367789526681759816993780836591836740541991260832579528572359583681560011080813428122120192609477861864804816047386037721379349905386454328087324378507268997287367873825809813827814639197913642224126664900062027323669739502047355209506983219955640998586652412679969420015085670754634183507760995953781775357743358541375098705365519058156174584920182026948523184843987307601154397111472219175122623409325240784473780826561269048403303223137111574033840763387972694152788576684998444998320262031020366740483427357916266981559733789966888650282408995648019571013655317705813739841652796189730388158903208884174653437587402871571538854576786527680120173845743005543778799835890656965632760308068187965979112730451111403302503627229256643697561765333413435854754721418363325862678843164017935610776852669071535151245839646443944955135519663263277307398977567396606368953523625507992083428162030924762800975383764192054615534703636507987057798898456689553751246990124509504840898915626521099311918477266759347314531697894483669427520728509545783294413789206753764317573434491521254468494679436213580088583844922124941559343039053602753597359583632534384028107130379850762817345773933139948977002203928211727566223389637951341187679844634825916377844538850921686827887035740036056027325098452386078953463642741148203664997534111782605066375773295634588460651230941168731121614815485528027223449773141935083999670312099213629341602847395108586434802067678812273551703711386965744340544411619444669748992586918818244258356270501940838895515642637275627415172251023159146590299852957294585632956648385957661663911188230342933986460353906251901504047851940558148794365760926847231857149233735362841249659698276000021911693138056375659462347705751892352301804539729038962150775980464874230691207676607719358767340911991174865935911466233181671172935086837162103400350667305979099964717165640718293309429000049475621048811220386781915693297398149269084489612930221617938307962500187815759786235332307474844151103269224025002645474425913721447776497221750426252206558270232426744086991853029698533615455999637008523615615850071402195683145281433799831614655123956374318277850794129213315038432817872870678420128714922792536801124015688363232022568732704001369145238836989802774657569586375784444954412586523210792828682883556027869731146389580269905176951854777249901102673659978025515737776526599788231475539213582844217083646904030039782158839782788765791271222792048804280286509889160353708680886131092949619661364104162579092275113068939204673155286027319816296963623305478866169332513883490797777092064539459276480441327128347388997484960755316495525457661240833978670772165993703585002540505460200732363241852508215637878388109885333430476725929903035999630145630175537001297632978613862660915585336794353322145329913249446801139397768532942126825625015719892144905350620774747174634725374802852387041584764248299798598583951192020638512824177234705428631280636643447571805916195665724415774929680450457612623505712840259566753234761785426606349203408019737905462884044516834564400415668953963248205817651521196426180613896716567958948696081767330134791716451303423636549347227955248884169753219525072881377972101225874012790167414374300811287541937451521714683137413681956757664827668624260598231616465549078588205100491871131275531852773136668147696253948025362736903380060803534195684400388130514940018345069670491671979663984190655816338404938751625030957772387524595478388065337512574768058743322409589442935019887289256273771491763300130289266372580259143779577969640415384546815769074903704827633754106308389085049083885232550761281278539045565883193367017526741291041605404261033498761581282051267969194246240774195872032327359585579942218342189775862472269307158605145816958035878181306296500860026882826152998291524075226482173670571254364480236396869770293931343573379158479024845166683776821144910925321445607132513665256056906371508275990415759802988479854504127697963743962166315057182010638886909922683422552099112351181815954403675584781012415149562500080308138376574035889054535363954795259257489174310896509427089924839181833457765406647811982804895986108427520615739966025235704219736732330125175823804149108504788888771398608219753806647963118324977724161809350950630602272778664710512140171605854101674560169511679985555825409170105826073691731691880747859249067138668308966925527177065602987798478860748572628609895868965501822905791061167668103719776557363129523474877570999928709723661764301173446215153895713338532683171649551643268872298807325819705441097539280612078233635495656923935755850710666782779770862470131653584425452428707263360801392503682858754750855399898365500407198017199775855611658182125501582207013209285802297237130692155320404661525507239446198019460690927697429747487934949601468070432488999608931915491085641895795219436789119953557297197895131987197400144563964894284388730728277828746807512197664503432662916855751046103576727103142290268262987380277407637026540111716069572162159665837512711612364268382072449909054335130944838881246781733071459144924148869496874620372241011416133057057848189246672961496232189370295679010059036484737328288878710795204427478881872053008367554987952601079446122826796340068881798347200721187642736303581388716732555186074765920123932949035591890663135550503688890363178366591742826966123853696435307260263087670470760809392566475665785856110951366191514698724182708176747605316351154041053134510020223605654984025395859655889400114002093258321458104304150134348280599378539763011535081257882486507183587258797369178545791691176697587744069039949471121471489923717780867629804307213237482017509057169133031200301237629381082157257591839346625120135151414464979892470376273945312670267706872174674062766060695570646288881916747628939196437250943453596154700326174580827973768522264597146663255018439740211781707671195486175849435484763656094527723413902876294344595048037663250449119176443598702983162736434318657336031195844473922525621358946456997970158419272391849449943727520363247816263595830215490938585622301471424311324129720366890970665830235582728266399617286507309952801641504168037013399092809710195087047453080869852239438485873615041294120481583256306020219130624102524146423261229033858940856055203577532823991920596267989635443141093259070649911100700760592168509978979796192676173546760292366528470658933389384926949976601225800122234616510797929081790967917065381214196611474698576901421832326978670177295380216520073314614596025844864931182488217901667557670878999674497834009375283452918533626356041684314109969199430213422346724214111575843460356123487385011584450186120120025006814578121551648402152694423940764863094783850207891247647157897851061817449501961471143980092714022137504472954722492375776105797736672013454219916735154531775594768439135448999229409801412383049594025578118707863865022984739670501903588070028096589705902506190732618480572895448837291029697311698507363624690544447577431538865340583953321637192434244034047308111445076397108523152876483979633156188277026862588503435257533676696759838266635094148340478351486736997746957578189681562432943067069515614632487501769701091927492142462131844828779698214922815504098477512560338707254284300855131501349517022438608457567948452450606066492549017940712106008243422966031219344145066187462431439534529763856959013204881954612812254660191168842544433936113643482660971039136905668055222419085366182689977268801344037378149827461985858856314006111389634755595724466835914916108130195413358678327676896717471054441823385597796209107878820250712522060444814849325697803590342895899147598959330537404380812509291989242682594316865668120192042306501008993709012606068101747571098071239109417869928669107687034326940808980862571505190784974375952500242673174565867423328955045014347439330858413367087648076299496155859288466593561508339905460232496525489490830026833344729644024291962409312084564708023691936882149097139786081080606990529979906802451609676060115617067759413639380185924516264390998007240883917092157668649783670126114733901656028117089078763639071277948340947228835975819022545705327640982641157586132163856177689403564802667442252414670443009812907758929667456197015626665084098206267311481344658714051241563480433229825244647015306379833491344220747101504803008091517131876602946081640700533852504051766982599939049642490336838517496734567487263248432272943379763258984904585004559971907620928006129802534291768300239884909089171634519044608833646015810766652752841559749355718199398136942619442406143108846266171991056503629799949713896826022850219649211019369725768493953415270950956311231590029619628043317132250626602236881948695700722955199801908483668230024439123087841457684410173005926149815113500824550455339717605625581320445458473657976126254755934997646324239906002616445130903017081294704286850756510807079680151481153260622371049097704599972240483540217624490326084700523674971923768021227704034234450870711229727039351137937356691677293277302089237764140085294801749838638129537499439943748203220467143408307589429058550358536846506151755835891902625070625335208527803897547985946575450123173371652772739637844718711441789698819730412605833814116034154708229703531780568468795114614588161891831107082093262207656840733848727098064364746452705587432831715300684592570452450354430018189639258766901037273764173641431477805682518495556072625011661837996304999311799802407800202526041003764855699290983083493632259695518769641438430760075414538488517241648419151400193177991955537576810844793828867851428550601255750796487052254483812805648547634937893979385449722056922806557774524004905555020420165084934114307051149287026094835243491931988729740898042584200460946150525496745446260665249011969060639658478793618761323730171179268071033649932041033437690869237548485995822534840531336827744939079600563517506787834584343542134727469178190882529325395051319847423499456846394711385994827640010584297701716880090295823626641994793730802326398173160939393270621253828869567579197415339791663652778718396044242400889352823063066868177487989254318051389323853262247658197644398154950709912694614144708618427379793381404706204567678103789581641571387464822035285970015756800576429613500816641542832869305265567657584354215818126945466887500294350011101042493528494701225774314467275904493010102182695894250607856638769171475714941331716357109686641939694691537676529985216812848193376429565882984942671620346613911863708600528966417534197755923510787581831749546657744887138749356528626375922037737873234893518094326322030961460786741874829401856836232869394933594599147486837821718913705506909162116426864791950128952876607329768871183700184984501296850007747205539631023308976531848977052324097912174701909183158415707715659137912448188957434922427267162506045620150241330831971873686997621918150443997141298272080713144578847270452702336264445182118239640484665822219437596122795347391430337769023013012669984007399498140782620527242445148579232372531710770694794362729812108428424109533091787350617825925773389400884395991418081494432361541203877995925100471106482551603665579453541696044007426964518420646321026920954469577698024974943159899132280155829401559994327729471542292877866496827068635601919844154921655524674005789928252408528451763924289881089611063324497586240632295179275067440979464877957316087039041228295897432402759261404259837837409197834411943466980401643454175206901493623867564249627409641787170408899100398161575834097523911789159112440219411081714404206492855273941282522713466628606816916573822810634390850235016026881129755530804768680070876790780653376662276279109948702389217074742988621028253599758194209114313487976917831309584753549640582637791761413261434842567376527670396317539394734343840310191701795404237188755226595957546510949245846401346816321765248609962006908813096598119197533578327754658073189705160831625230146877307561152484178415996251161304540540013262725191641475469565177820852672878553135014565010384208825240396868700747489163992874144337953337720331750126009184503630101878002394288607303855429112253155444868945146924960707574357333050708897641835248459254814569692944646238438109649450996783612779330455404565104382762689796856145442837164267945300032517330096115782873379432478669358359464236091009376304028247167667407477615968713380721623945536984333767507845476905083592249563822603886799884635629919787249448179021915010861091241550755331603599013318086870146058792535422057856948519803986523728324806104789459263877326307756663430958343590576138828224874612824238984144378767648945612367991362794897152473322505065245464303653077217534514805388008604003060790185064932762420811600316813660755721566250811153345181648528362182058923786022755730250052986002367755096660948283132834775987395962414009823208124719897630718343649650888802213069451646224672284655601439620722690126785913455173620358006517635448408799460047657755722621757056829327423976462736348179287142177057461595873694777155759684048524426754678419434643597402384560448596102591512491455260625590098405418336944615174299929194931644426758962341297844141950618626937820413251607050123008144499976109077182526508370276346359193727668988855821511093238225782719978023585368256736282702683113081412102800962698190486428145933720470733301632442304524533103218301143715163120398755915883945675511275036922461753441656473350122609602896343257857170027470662900620690651265678430215564437504302118285834918025241787281828571901258944181819432449184091970066251041251667313728229928414794769456707100900886708183680462779291716327797779273223428641742570901362943603144303573254156231803016887427767299670239536228583119733743026127989004184482723096226850322117365619583341866816851866095554269247662931807559362560662223750661257560262156027787837902413783085840757521067209772165313979707158853919986274005726132190009353812638735395042200789682771814616392138142623458132820982132395132189380038389022728005014565700619268925923256965326383958968615612844013823192833526873107202044323793483456067281298380830225594378256232073083170181436955375454589998174240376477219410261688569849724417561652695641899492154539584249575814946512267429045192106241818598217070948591736323325578834843589403500640650842073047915414391079101902442799209246158839467617940459314990393079752027944633785780195742380531633619489276961323410841224196646965403227608838244631276979060818470885391486001620570085051530583383780659144226327001973956462136827590399303937057569753652026353381809037068977277379710514858651162478810747793083897841122198925445393949076052176275950909354615190529462778027309690578412611686515487876242192508652364056163603172942671158963706217563212750415617565124288369357716313846218135143633664438655205392971328338526215329324426192916778513069872099629779288006595081162881911186198710469046165355146211918667672235212453515201643325677570497515784804240559552865169699193911244521290121984062321204884310734087948827580592372672953905210100755463402478749949338026838456562848564398740067664263964329651023169274458493187818048348361487044331790739713341602483028825250842493643401236056503128023634715305064815821038258483732419939427913679667403174026639107576360368812939343506934807594555414717899845564438259633008958543791658214509264325702265021728557774160109459427311975947266386540488719415513188981961415985960904505039650720935522921750668671281097171905495219596263268450329691255093828428007422242049949949092069436370659269506997248688883008339838773641807716512855677651969858017175729160983081371616160638282716467365744964206057023085688915333206287990219215368137635051143361805478336211414061553327566145947261813122964082680923107295647767817173323754455069488109518429019885603595548642727890363120455790588228106321822865279692991694514367733838849643542271887716397797048294028066410689422412104980244122848327647163714693418196424887785647502125546541332645242074670043217906135636342421434075396739779945428531956288311205472163090260146627744213412446089813494169163691096441113810403747809807237423377474412124989675442149324544796203913656208744186779843900961704052469277858660972365554262675838175776931493126850018327537352526850078869671269872185191773185617185274888277747160097288739379745426302424386204446379635843205050521924863853862762341358142527780308356123021040074566677863309478177100479950131161734152412089946539141285807145532455978729401968426525927658824876697624040564275792157412085316264267848298927186910340937568098141324926783459889001729511824884702273147631866936031244065257418752362296247746275513583899899096738337969142372795947723909790078892843716038300415302724824130335437964068069319358729814318882467942551375628143768998142997332182649598547724079682617697477025868556216284093000529799728649939331846173355442300802831604432848645998744411876639787130439719145759202926462712079428840198754134351308274934806236617801862967456433324348438734503619352858463350245712510235492969290821922172264135195953047567640397625320489651392786121745027002006857422658708040895167626482990997895457754600406786098344576728840457009869788355203471160570397124257647357458670918933933299881541470008349565765302869979808877564239320279201282606431953232748741678162619424902372941575335923161994860259060381605740140327950269764866120669960922138401216520345060008483876268267042298791774653402769430884132552275602369377928152401477147671172179638012056917371213244547981777423812864583751916235887616753858491598585489601608356116600402524397807625970455306520390369688059122740976100905728779756462691163606900737781200130669754877419750166854412222848199079617899203740882567765970577541454072948160242197232795466886462704409523841837016750712965493298397643783332809337593545481538453942527259399002079123461964949097781163914254553054940363805392350587730365371571271062006677264475255908988831273483042856380195027019430269236354656484648907056635560638491135747893652236794502824817346303271971510635809536291457294877753609185050740207882414142026592822631985664454691424604210836032262373758080426392478339564148408321789837997995661301045336424896883671039364473164775442935519389014363832247798439987702861039346895265009693887881363469169530811102697800897212219324285875648466689169702629025386569240870411164265157990012985956072855755211273403174465725624821721117175414142511605861856513838672038202602005110982551629744292439160492316420958175360265077725229183509787565870873807337284481966494400605875833866917064245897121343440109251475611686840818152142975116179488573799016022433753641603503649767156234810723979678420847247758193131979629911522727273486183941162575018917484432254110965505136967277147009542156276501825995189208033155389881783249825085001327032525919816664454688200575012312114389719624335050827218754791923371942307746148390907419126119446104540774462634490687648364914021463573228164759830476431690536066460258592778438906359755188903917097836723138641826122456727544696699444427107208974344913847614914355935371493454548067365097339426278264280301448410784297936112226056099802635163797500399325132305616013495984544145691920992125575151431172264136421155479822461401783506841807904609964302543346064343643727938075325320923702803821060082407099768019753208922925055276074312564186902891468993533278987538679775305275934187399333330976852481655401370841232243341960980232395219574060445747497030353625222151600507576872152635275919686123366102489088773469619085986936106052845250263946433915738260599505313017864837410640506929678212658635370083299645443622371555157185895281302575330505431802258745106350584643526424170102759244886337917437992785532198247859462595993849462644707476334385990669094212056461546133054961344846106679426112514994267170383362504735705715738845203774062131143377337128902995407904835133733924499756053017964564869277688720871421261685322077669133946410834989523930212031101418913912466683664785402366741283921235488039306563426080071751663155865068954098547536967637451065604914128641333490902035894958513480581749590202619525011470092288030095978983487442347616458634356267088443522469756412669212780232039228836682076309105987569849588901339443231726747694264906166221971315641947625727140449232197035562605514934749508805936746343855095024246425793629972055107888477428005462930961800082398169301711458875742691207979271432814058075065595624011278730552249600501454131439358674380135292026018991252308832670430270086872051280694032591694148079079952679171127249022537341837447205448246475932623795881795352966937917319337469333200859635629210822573621531892107310295309106777816587042129414747567448347913680786255858904344024184742057601970632058542856745701655524689820361128214174672966109470243420080928558579449440611271551037059387127196576178697118704178361735693820931147038666161576622320595775358993096888568947013186058649505901686645742875996827995368527361151535723945786636078481627905170251697827421336726264439165855278256099334097923255441213785894316528832883561980399174308348948882793505141055517238507978112837314231933769379571111246703681541009899537625731008189343696577203546566553526368534717799386165411997760233417526844345253538925559473398781544137260962178387844053025694574805407082614578222944471514382155450420071731703531394889529641484317234216077246728055644728839129231858118820142091793510334627681679036107059683514160741365355367709281936741539772813566418936525337399653719390178954109294730761289669666812288071512464641411325977971307688395372816022313268760180224679354959095391197594244675188227875198813986765673374027952752370312358831886143286468596782252313203575072719843949658996807654732590599229611574788756371318450723860647511671265470292832384379489685289479612510475202563256859612657486517518583287779205529341269969584485602156468860736795510024915830685924575065596719653540117215642139737048648341761606173939363043796482912959096202371930654737288225313396514457827096348287719342276633382229980189434028165040003523429639955534100227063512148721701858105612931916803323842020318231624669818070241300357170181750622707500600457999547453131546589432497839106978717559339590416203866748754772425761667262206688767406163380828868571444585258372251264465398142108003111087990019077278684479045131544366985005193515539521359249467405054236969982934079347933236331257872634579165986020086164947171687125471541134563552667246355140155771460797235705562638434234923611548261408596859456258671337979537286846360283346322067793632124571027537067784484892199846590670797100080312353251052162077521768628717930385196193973807115263258581258772218211327590527165238926031651253908422513285834133154025082085861093106642652482426677729164603811190165275489792006436341910571966296630633922494638038287324390407063179825694180944472984078726984801373268921393734466853644788949397903531932830997802196839930806156811513510392104823556916796097326667191977270648755513246262794758468214696306201166072916816435840939897845407919295056072285586864075908071155907624668850012367102244694791879610540323064318017564552455721411406711321860902541761766971607501463602973035647477310726132234939426962049813646811350053731244320181651082091084275353123574020645610201113219987148521355923201291263171696096379202395067423172997761806114530907021950688098522794774798407815026949784011612356233158297935163887330403385128600742569761591068282200705290143190455358919530206948624963017941700542045628074000701497356201664745817933044288270112459347224072747170295995533167145402994342534788467052815770292551799873829829162132400377183877579708048595320527515324927239821275830987265072362297696950043336685670752903991436811243536415752849753908366909353578501201817726382046347669943379809736416860281073327366965407889999403232086419234844203999997309104943601787967156664512136192724595606597073445404236847737199879319858078789564522694765673236601932528086199652887745944159517959637498082849655339033114157841896826863091487497283019856104478049279138778971596405194161458105550224742280644420286042289804445274732505201974728210665505758331885873041691744520355330746589147116957614767315104694903729830412855167801393328733984649629370996222574224418753827400837579721049318475992760198913416511118368858499764260008957835923842977354206978489311681475076215548489697136505321263694794767593947800393751032871561679686543971874692462223915981052117283867621673518031033210533803150483952810144559648840949210007203411351742454707655909809081985529381439518786336661017111480429770239572244310725253856003382285970254148978480710740826894346591760022523052949312515202515805875692491358673353597972700689030986412353107887067819238970126103536832084872873633363740920805699554180757288857030397306970585443107978983323850333606955070551527814362964314829155304922793399353210501234506556188418885220854839384724802867346269181622155921581385430163536351653116379181557194382994076827137842132738759264191723455349606782768771560477420016108152042890873791000226235935807689031166417872136231350206339622449905779405195931576691407398994469794253383175723748333777865501107161442096594157595648856105073158712047370698799366376238773482519241155580227092605576567798169938963426724567179793760021874757013029983349026924773465319040511847928602643865386470576432801246632354005883688740305930662491557083686213396214843446196908538571312352898688036746327547685641200819484298678912599187391445267733459622901190173185836896539041832083300103081151035004166810809554165767112797653301204201320339246842369091803725835074106670174492600057378336843489167357476676496391635539888049591623105441328646500679816497356765385967235418192582949846037727595687006897764978246979609900953545235358478533351196972501833557413169623928539448677895003641656455498177083830107944489496748297475727375186889125342482241975678958158220051395671741319791917769173152584388577059831606601345214110540033840467907107529131492058961527085922714451813083957000769459501244648439881838043203249718646054559379855453894361093451750136601335560914815111746258600125260743036728218446921107573967382726797680059771210974123598616213157900491923654846704921305272685845359576853304626778807100563140825001512190884452222190917298425470212771816345713379596013583470668169603396072996041450575467441014594171567367371448045130241900701962280224470870507903511877018539213433279868035600633750259742027316967547084022386039079914646078015258090652826491959976068044551444739533809663504457754474279350964585259394173637449643460328041233487846437459773181300162772628236025433970775530242189501133235609982326033794549489529031804712005422633576990875950814532110880247658315870960126903140335223044862426797811260582602720253231498889253659861046499871879526820441914117030876550404219091507738920463776193885129666298860896815361106744977471340913001953498474807825999856456074485620189718319968322858353699735691342825216274465973705384982752059969736122615595576285424705469415432576746110399661637450116889921720854286842725199943558492023072395594043862754223710981086033945761527944145788261205141196056714586183803065802929952044072907625724200207304647671027685488579831337612872952010374068826867467669891209745693608548190582549166181184266496443012914544503969896390074161787191461976635764455623616966720240182741110139537868333638916970109486820731841570100714285469118343802566148983209362901999494999595751905350439694270711511375249209282857014970382992606228712363758666390629262489602570735544296892834041791493898081772391372424208996604858720110860539841828501496346967973901967625318784221568111198537730976420104721351693472824362478912578232300896949586741286641009821351712729283086191393775649902528087703123712822915514315127685739840396880291832288401145651007424641081680945662832199838856703474168189476476644415782886046470970045039527701877357930100836352182384581655274805368990781417428113654175943744933536327450771750794031610424901256583981091489598694415024501113045247695504764457850580063742140588824112194372830423847824139266289222999412461206757112962038147334681993384296214444799872266170678620487613670250940421327865961432276301033991093649974923357927803121878850269451392081832299715899292166883382936142832908310189621880507615207261664885535205475329407782829546618973358579150437282286457757691416736825019921254852542130820720908216791479891857393202631278821170577204944817795416608881128608351222461817978947936784697159102411018353690838318148501816805452682056958487103682999059154521245342418131937968580677114785055025033630346273633567284024583211536867635359188857754009674055138363902557555328366945278152977207780681058584195178117166417762491100312191048581433978824796142101404990842844187249968746073419169817051103206615302843847904846307096607407282289553271651978079524161709906969600961004717940742902077473610940509786305210051139135143801088531134285378298106007953472467336717286401702285845568721488700374519220652734675310756214967543934448961675552237590896427369118071838191326770733000370293407292685338010946450598793258289762838958206163698123266243399784215789152895831318180868571173855338318264084317936317420468422032432542275776277005555029945894874850097598283164653686018931525931081879155879433070546965036426706102697974457968987672270397258135267067958437771464426944394539540891294476213861478945720213711564153518796456133337948979833943505212879626041955422801107904160773100396613845451193028965865139263833241326494549075130853883447144318493552037921297679218345366249411435843853121592423709482779036946895162083647439687520173485467209929745520882897499308179315607371142354042345367872440631207697984260642360069869989842184978666548617470254456009907278602560011751545529654789842094739240715897842691182008302524206627251356637042995557849805392546896251097418034626844391721932810665340271686384264518317018140226125660388122371386359567235676570313802818849154612197437434761390813756377827516550522837892619612182486635287019596912556381285048447430470954483414601663723289161900722873269933224129017674588511882130179145930406121364406722654889051109662843524712498690349222124266985071334871066023735998097024832579088510733028376829965647032142092681569540548140676981147995987349648504805105263987326042397555152702039095177359815029330199301814079016872553770842461829639994690213384690931833622836663321025275749635385686529406887402558121803284072231203041810923861051552833987654433209193903345604028359691928112212257717828778596122197928195371788874158094770117617250445255824709875646088183832634511584399477630450330315232985033587469860268818735844782240554162977912500194717550201140095496325178278282296451019223587029321274365795574960154850244995261920140438787654766343387399240348801599007297276032882999561749023165983532509232734308890502191759923986919487919982092402014422940662710125639403362926792414638871939044006551902808917510946595399349064018780603350781091940397506290706690500957811405953416346121072494148176380395358781144099426947780849530048333068797592881222819986996995940785179579622359294237872950769175470664295995734658036810534579973209428399150480621300117961262301442201153956106526958889042068002065440773943404014804956090417044066136064030880940894844761129466398354641732664755576902938628388802764372652757885673367476174998105470536616584820367829277560825296340457469032565718685113644803785932289518781824488473568030951729167700173833398328683293053219664734329627921805814229816340805889776503784029497930858245892569956514335580081871293159676012244892849762108094564020134220330327961982706147200987800621237717711754120818472757504591174695810191817670400431825582792724008116321628557939828304701925158869911120674133581220582470817265705156924258578504799693866497579888884337172794662224704201985693607375689821529021557345068463803368361894639894630993688010392124954198545001913250093807328590436164233707688145364178330092477303853891908865123517365072517767609741102228214108212715642095764102012101650660028849937801634563236217728621552456800929131521276310962653116143285273383846458534611011990810998050309906409177112749220111069715375745709233750074409296344919392893650822032254100534771695966155846098214136366516318308128107238098765475337800576144569672506285714229023553819189886984243980966325659321090955988999752272086125285122356910848981409773579003387071087200206320381309402070370545375836188461257983036169882127556566493231439529514849211070871589362264713723732620755803797934367083629218133108711710842751035848260515051689040565113904232426104694691266092647766237117678288756063853382775301821982184475731184451661406675215483773579342590186866238117052814354604551831665310784570595870964334855904944219914302671291351368520623062232506984274159759248075637666162736144031483384951364292508643502312469857397101646796073035191702714319211096497618456577075475193081115786461259593872920515072149675532203377452562882038145515058668794949509928955907635558961883675450042345265061693140808940633056600293592275539228432526566636550311547295765743742105394772283388577915675301288515782128225617316695875100032670401140083161387479640408230448784094970316275538229966479528569082906448942843395241247867859620312711274379137048598523382255954397375141838500409689907759950959527074111541513591923795908583878072329587050094518051286401051849607093243223148923575742524943538001857124589863991577716105576858488525728532375560519648209933295149187045191143008576966344293917300954241590218602025736834629239599407713792089352178549424323567832765533790674041086083637266035740232052710110253155602015325581923077983702729687837811429666612066185757517161672919937123010472238336586539352216219524386042908836717967865464864713001546887239132515843448844319231280429129726659096311187775576822769618227327857706593669267496327773336814252054970303110957690548339206940965470858198368347873135284096981014643980157434316605570286809918375051737839374301639203031196659429204904541473523165111196827517429432154992774334989794960070460826492958553273981277180325013290533863937038359434108384038967659268016424052903755451812495363919993268511770120689785709525886579017208017739267828908268116310794508305748842833877552361817295135709905899832264847660730392230389502017019715188845011517887429962240456723347125146656763491938336769900026754427074628791033388114922746521094347340247733322349984468693420586137898811180573286949894165671816291187705526983272094856008138067450890985465643274979216553619158010044602301143670813317293463968636485204356524927952873840590912545430188822595258764653792602211708379946724861716789745561712894947139746663382666448958092997711553317519060347576445757025279273006079970620133179344510445423715426401781374481447814305931821512684028115587943663197582109691257790367553099835201507683611031791139326807052535065532272820100753003821409422677656386821482786456179114763636743741420804242604834279586763050964343449268800815227285473717705961368260065291827546560517281975343439638026683046916384628563099952768744269261278024264290779062346145646543259460550953242102870656203210974302582018007909905353835470855357172295119471757128175279658611031543909928612954311616548354881185567616473844152118082439162862650890100567685216213972782413032365781029602318216373955522373647230476267208669899699172663345990999525086911512200634495621495623027861651573024218946438650188407759786945840909525401016396792592492527732233150990834853352156202852542635958531385510404079488537188962456217851509156356437349705495656941720354650732331229961522472119263638132575866138585339348946410576938433504458151072964670115809897501618923015149496846671434723598864200541710089425194172492169143068296325885587521544964317210157261882231260971657519562544702273698692425094308425111544560878297403870401961493676524550144309440490633193719134284349035856464841374351724938028554757106771798409967996315240683750101033560948391644785170690244451435762137727950944384927344276759719794869930173781173392308479110203298585697011654036070094041937521075499491631573289841605948251077930867257250560624686185672874020797982048303927659522468536405175535165414066196909975448618841851412985831611983625651153485116279540896942896232638921340536554550562898154428278524450366153993485813751245711236335328231433466685198948796312894236732543824146145794096391016766896299603174002591915305747166532656468485571289249994246102515783640542561917256720408823851024363552787738312802341505005001277683588369989395117116361915753108059653280927812284580904617132487587458532849198249498224578858442257614726289567598380651835333760659174344351735563354397065288633512034110979541522501524380136912630266445460474702310126655889739867163026737976194771621452958130416801089743657333859564736349865219430111648497209783274565255171190226993433566313751160050767598159408523015223989940321303380415424966400561498583361520187164549782766665939232142799693704020301287467145697187878323809968506351324745759551829089922210987685991929521632793642648992283872766244508049265163076160483092576406111530857724286870886780933547433216431945179304620041717880756288971539283237833005802885865361439232913313306304183243216780879432655382960340051168944813580041538015222043483896864461773841949478654611731696558558739960109650809832933977043909908743236636793992462615257995750701062345179790468116482779310505305539788309845125192001481912846422323294560110914997595108565022430337502979892344951827209467433239607578287623438635814082840537247537809924017815592413424051946395732808446153559600451103278541804021430488540398559437726156103475291002960092336620479432246639899231359775848657157070041895487261084125067921833471679911924296325948186257896805616518211342595958626274774602481031926598219960631283414100228479752115256933585809984515194782262110958543731582821817181650690225490168842852547612877052334295595770542022735386799688774893522745397412114064574086170010384611354748195019872276878676823033408263237369700763565535716498741348923051704457439793352812714456695870411642743094919814377050486475174528970073447691101609899878737212184494443383334516895333300839708095656602032161477877849353635048396840327294715337061504730717120514863204781270913545514117925284041610671758009249705986633509190954757452055846247393533801876958161513713144432557286671391443764810743337647531211147223277882428257604025618032441380140980842100472238345806091337251122930387202992345604487383584503617891404109856033320190793613940370574111807531011389150547442715755435947723502437807222362904576023231523652327148848931729459350661825658549136137107969755372130482158771299778971173565924551989449215756877107079620075554592749765326956903793992249680287458695500710353023606930268542826825941198549226682758067404282644012355478170893295565059305563355596574318193256715191298636971542848714501339256314411497967460640269849848985640478209867651703996108262053247876792047069792970236432234925261492972738631303608896535297851683145416361427174216374296571337276653081442309807540127906099127060032988818899830430338764556389642235212073584337442012943178626048879902284881486524794338528070385460434376218518769900714818456989225900884284963505325682928013522983106109225432876448537499847763462690180024663753729501208059984424418193794859022954282332194826503538366912833360966085879493175923511923077087200629496692742713333155676165937903521571673160959196435694767836092237750026171278080017410224339537546983150920865556065611013642642947716027690463046442781738093689836335274784308452890481514854396709528299716620874579666212398808125878632337405894874028647153570831523554424423641969120150037772253488404697227443526799724472411742464399177019483352060796914488717211825755422468789919944697835367026955745864315896438132247130675451159528240217224631219282774500500786495965419979547884364045132979957179949025466977987871840354936965694065514793906924763323713158185994418791573930949506770385756541991440936938616059685451603752526521184841430848268089069437808988050379652333019920069759788237599891424968998481179214024812950820145779541023534071135329562125887958102717607735799142570756705024600123536807315618187469123746033625158448023346086073762524430921674537526846229600995416945432312988497447100164283489779070232985804949277899694847419960903390897439913419798886255577349964883833495831524460291023076059370642132428808932717373554567081239733303064259589214871004179714454631345996536377940225879951552815220048630225804637644872808279782233421847707775707876469210362544702349844626261891676481748710757160828488717362388833932706429209769240827488949869013957749880018838702413931221145302088740078997172027673877897904766675909407925832265913420257153938911565169262846671434145115341543866235644877189437808359065235504580513867322525850382239841527225696842573782141544975083481133798211330212521427040408650781745067503429862064497355088123236839263669543144141903690854990823610582534548694937539548355150114894839535081045319052699987997529883042987461388358962127345733053198886274495185089433572222189197468445858946866634640399782598953692901185535080739196810485174485882998843543023223141813880584057369833711755981903228794079409928900628513207083617205371320398473450512889329741667313835339389520819624740003552481532057392906948511039002882607882319198883303466216171549699695394952916572873379990257737824853603800930718706419806241061614449827982312832901307578607297343561479857411131187951003092503444585139191139149826389022427072435631728395228898782911580385338088196955033033120480190256799557634220615714542179989592205872405962918032253100032605945265587756834419425390826827878003959982988806098130026791472646256377154351199570848618503617771200154323107176597169901088106242970885686144351402578838609201446398642964076812030789241346938461390773322486493793440486394295463340048725686203763783286936244497461492321646780349686276477369543960338434247806399989745869261743622605953605733372785612274211356897321041393806576141632913224042237867617513970786732028166400957334673159038943201853983754406637725324616494749434552523754777569184144678305552819815244485778723875445427011997729882864662308511042724999597556267040805621016418480497154909015708904498034100099889032815142050226331330513658849904553998465534311231394664027624038580687056815403789216311521893677802934649655648077648326035548532609187863233052356177228504736727611373106060340652731659579526491512644997977736335988116523453276511993636750675203997539908782687894971515974970953008608985584617530697560299360116685807890757731302108975160370514529745903354952938064331506714139535277813188007544502089592925590247039574335369456405367074734429113098714482472943249021192692181435699195065967864153172621494969388518168632253038996920138683150504442243373414774264125665239653237636198956281910974285352494087288174419243442751726356951062593901862507205220542397488802011064528871273564716122007367057795320705502073886959813721174576151657309372868357771586333740060064892071558327994329317513657112431724360305468037951386113683815737684325963693757939523621360515453542615489967585939831424915909539989068470331987877365711247065671017326250841008645868409745390630768915744014922425354045087391693146141426529479110853675180814048132989860096979765894411736682304086771452241625154997612873002909759055673731789106944668192436074155882481858294561259779938383822029083764602394121876329405174626238925304670994958149608787325796198505479797101163098310520084734606010495166481131175961447574046251826988591767132744695920776754834367527126249360616214646289163452317160761860123077581754566716229977323764839482094131046234429495217382530276983747866267758787944463507615422336859961703362364304562558810799987549877757492043111078513594147955278705117602716341064886252674238898143211529927139136599441624634206256275519503127109225415223247936651094926881117709646325453553307019452083532093837318824738737722076710798082477755638372442939007752049848946533923125340509664221725339444513163974391822701622342174990817333162962306365908450884769084951599023710446304659656959124053477926405679437462915464435010655189328720732721623179004387284378558896408806357573510218084368829906972844662280281600430136326547177193743755600150032335944471189590109731303686504868815714950166179656950122058725181851756733057085863654581789621989037818785681369758623399579721699141215272468525142112581308929712734743241637944882834294718566890191823955687069902987634033743338977294020508816281986906644913983932983904445266902063352992207069086516409867127700565916171360908271388135848149274354942602857722218803717407395067205933967961340751328640057291147887157215640917415382637968562214231689723015445084975823673998066936315484766781754392491004042494802582826888265015374292209991038217186790024049608937792626044989695053597895781407640658409082468841336800181781192085016992138463394058592223010312917748374242301066733703119273680985750145361203404222875681639114187703123352516615730197488517525843745049762119150693762043631290077623984380141759082862537530309709072362082414758216075790701993522947023770179897217224445985183913908785708999991182849940291305357741860537323214826467843315336711211421544157529625224674186066233100545616285041626852258622627208891758228973923177588587302918374311300720188967089173381016694236709851327381126371381618316831319777320346065785883617644773761909019733367174166683932370587419436561784746730832271774091797091884802723982360793818033477179933777209850423620000480947383371925698501034797816531034093677205753389847578175386101676305805475732149024799308842674518821116626630974796809916722157128893180336203440014639525773806516283093396102665624385005168732780029395628247172830813404495194971542359864037221551703340024431461100399234459675045840758579374772214557771678102459316286865954459339124940285396752967832370551126371273051550196148735712973970416770776967282134761426665745952912011798064481936285184610028789632591947681355054517698541560015679550347221466758334921240738974743466836576503742594975879729118180987719966962089606148842044244169047840527918617403753919587700729716065982712560115418971226722365774824396701259400153894608284152424071602228319376285732434175177462339100903077701669039911466342361005066572567633634939722403213173293764761852086978480462086472743691958531384571825978659625898436362428674616502772281361691667520955336635360212766226178996207932506477995348916153453501641018290495839988137735232625056736563449677282295242135639208050005816563315669743640287116889244139953342626133512328951489823475272641744665651474772976727527317082008003341468238814379473059456728701735637697274928630610639091997433079349384309760692445188383296643487254127790358317708621089793957081694397036423839517189174623732435535852464548336900819900656952607222943070477757742506326111799859750231318853145849967697370262977541451155189153471156974904430858229185301998652862728365914021989621369079868776026405702198327126331663051877479460035844482001483220889712626697028198372120429472409496877805578112302631365032980739561873299587368487559958943107049086157826291472392928949089620587748431390704973050661796355951488142359938375716141322439865002096833007854432504785894814549111254742489428958653148264808312470006061248255154208251437631306609218540892272969469068234825112518556448517434424797179349173699631167139926345518895137374439198508653799026861818963742233286329828660653610409375339619531491363910263442311845366352305984381895546597591794910881113107529647942537818078778831546004027597169891537611505601748334236078862001785093953200746979130281003405223704117198558073055558630581330425358881828375769658920832068912698374143674208174269310870785502813691609522784781058336770277809550033483433272683862242240249036534030601966791765040989150456971591083443427896847784189105399998129269821528377673587552550621375162322919146238874546450371277736375090882230118061521860026297288074177562997478384406977792557772067685860145495471284687843726703411260288273842187894436535689781101606290630227005373039446242557945143647353973403088299393070653405503426324181828012082388896930361744999586392147889834633391047963426744654276712993954182357874327456885066147609016022180331739244759987043097575135684903009714728337191952169991442712416321872153042642299878425756435325990577063922605700537004467133496034232909377993408024085255808808827345465055540363818948606129081636374642162442461809348460922528403964367406114030429327544097546403677419273517309096421939147544690250356313762675613085629988912335433277901856544714739537320423626974699797705641183826230261825542299807347453407658482935406374004289131937982766771130397526225312140838940536391958005111971007829619932291614865441956317821656048421298737052843609606231715184125246503775215125997157400251609792765534053409664470305316070622879403063161412938596985207295642060916626230599548845252409752163596297326401175702028836811969664968960777093891555104457196786366075683189374637365050312272922797002853314073005547334312558588886968913568901429017205870714153169715768286088481563804756954801606405543356098184060193609332640213962300217176121577085374436838535464421893829887035097664229061190513675624961611930465181136159569658960084923737572195103295200042514501259985634297518115188642619167147286611314030728625747534488431751237320800320686715738473179149824601329142571128448978827676557963508557668757231669703488720632350838839817535296620399448891469988376428636120754800606062214006207932642410088736783266771084259697759249139294565182368529758211410601815766777369446994942898265815202463542226859054714185185528363473173083884389880316186333546851246518786513382894814098171371460680949872941355206145010722742899357446014767226875192577014390792204449035044490517936622699108880887473840246195943419956686833479087240542767243080063585158082511135918643852146383367186257795943362179590467003985223218067455703638438093647813666104908259731465031372155726583509908653695396119047524369330840062605041217900433392252780018766718481915501780173189400405723042774973807156834177661991533433150904592916428821013188827613379673553745556510383079658239375097308775419055371212035120216360711444333598043214132165315740324706777552439584579495135015188666881415529543009618820246245953210703227594212923914817351244969519880101185630034573449301591283777962679235176849107378389803760098884958046420196714832022089871940001907793901248737541443418062974092226824854968135710402431099279036608825969722404198498953475299170574861927794399031532232108245212983406857937163334687093790899328117838025437053166689586938681565143388712084395341681007823128547335193160083780234167087569354365581049637062295245953734293847783758521301732184202280126849187966035435875037915240991303828424192813221994466867435767637828999584045798492568854474835367415646117985479425827385617271975264797497594810949997207891780395912920739745642761360325591595471479881158033875109671166513261096258897682238517071076257885033948940040897612781860032505512180084142706816757495841086724536465390481214815612294695613374429004721068763257859787481978227909497883028788206328083237221514738990639148517235087965697335795154353726397578151216872710753320045847567088076810287575589624797969451404080376602823511040812747719388934544130465116379014190360283664027030682772061702850380666172287009102545024257023639153886462279109081272645147738097121711515249384033207656166510405032364815135517862057484370059371756953648806530844423410831680097129199484426390876061918472268415574841987444573155690726134629270979346816350335813687852067564715015834464925234942133392682456962394270022514525837087228162198737172995716952108050450133727930713866860520929018099733656219357099784207647977482141476138829538909868693458490987469833323869534063793506522686361411221654509454087268260934806170628619495862090544396708945172614455458864085026882311279446668232791431946827926512659789447271036690528911954860821217426255517008015825951812670062680154740904517966670840623228254698057633232829562414531677499065250444832755238482150355400097111985742121480660948245055565610420291868899083751514380570614370101950278335743877847025067583637598821641834562412497380258609315930637791145337162385250447971943564632577430120308302150292224375894588695127441701119415138956567454203901431618594100580139008409256147455148358131026599879361322702555257604874777491434884058506316353253306247329742947828274753431898173354069599193792816406493829546166111180163533660954026834890812855541142732974410428664832808917781209728394390207143295742149272996384218782233081471829325648062892955080974957715244408786516027155416918351634292802586433834937167234266160608886652475063523774802603613700936920424166805980569536782997818109568365017585512162372083733433245881043084809304365946373121041071690153000579409234355602284741763152495033835406732221664309332469347369504256292278998166264715338046633723234984376557644610953980667553441404350390258444995640226392787595599686140273757125153660861312049155246014092898033313935862230999075149571116373953266097855796201583425050489509919535546796420487862884096420969414180381800561637752583879107387297478805900513740372040629724361601103731905999348098074468816081538331040048182543696815621389287541215757451072527055111265538825165248349711675002738130915585408771265493326356847082917875743957392567337597368455270312931259056754026418643126265937176740397025850130135897558768406370948656804690130356869216032264967825665424579544073226696726143068915120934625839036673067948805227261908483665768161451409174111030224939623775306046420607084288058132066366461782298739096940252341830859751484593922430764299480842824551518262958631419632464325391833382752934083053006956136976706988863843279239470302102855260819998055036816397856027496233284557179138539566373585544689826402538945662306679269316103697250511178227953718498631846339501029458611575458149370175640159954637113644634313658192541667558928931615409024344314919474169522798866072584284602301174925707226651952106650358192300109896251683301284525033887724359388948224591156909785946369506096076510332211872119132970279663619526503922123653351798126571156218176166361377773740607928729589834735715001684459747221166278405376679710679080181696742975541779314231470733992238400012460671884512821822507982127408312670302166171329254111735428724060174412699209650600155493107132455316154664790190937680208660712131952785447671087238762272703697514285926913087894757525452370817916319482759498435371365715653682850690549415484194056183285712280095127091164503175544814391923392719979906511478671615933399416250220864572569538981861323574006691727521202172400439218293978913259788599207577569399800007586633102983284829668664448165649931760862333715788199783659308526303923897847877423701792234164982900292327717863535294987329844627406442999919451929549402350407732680070757754734247741298506789106848824877274296047607045696629212636607390670372014288293829458982691247108461991814862217096727063517770854603964211143149846061677490764214394077114297497179005498515660755448617752071059004429361999643216125454318377084743397930519592086259481401176538411843158482414239231023016747904336080226940397547727756710076749765956376331515933189084459889052499400392263328223992139685948221147513347736365181384242368623688377806444129059301825810341898611908510766076473436363943273504051896197546010043403209074217451167646215533972930966316054457898101053795842390247929339809975235843528423412546199741538911941355592742887599495480012120656985352236733801290972826084876232667561503499847866119954127060805555474651592336691494712165788701734483810711779020510939605396127532512939344390377573884430166388785342890370268878758455238532695628098459071496288038391250575436799540012208795092353786064689603368863372169016217558252581522452360231149095235076103169726172358693667673505567451858473869207912505383127458722985589743387981115326655333842124121158800216204436387885198508386078930862962301093219320021828136053480997071317944173798807421662072061584446337995807773276090832751643496128235533240739460709952748698674366528798086019230269702756480781200888042122322393878231610287505918262726248383264658980491184668147557005571045599249105959264709290950371670595423414905615930719243796455496392821749407400429458193098503187569896255607813013681553205823511845747555578556202481208716484745496549788264084407104784616263902065115720724438737234933864685282857478041230089433192977703755841381975163179498583714516242514445452087136541919281145844859777675069705897359791186350057413070574425218168494051052716060288768163150888536403413373602643365862332768501012821075195647275403779321611440317032716481043436091942689191065793463152716969277648478199488163550402455782490103908566706101514907771119383754076530688217798134164800655316226341585954088722936235800006259168791770263150683831018092063188301665612434071754282444651897015299855298207404319769288409121364589370927622408858658824716932837941115534247067131672344369782826154403188508019224657911079851325184373477159125116583569758008019000214529647959875286177954681098210364385440134110609021199236588560614023609494004883239986511654968371599820595287267253460847961049107542902657591766394594044728164584402647192091410785822430689691768226456024595408179918180766080687424164769695519854492274819498764896951141456524653941002779676429954527542101540526005754837558820456102473618979811040524692719113267970769218632032367931078278632798396842926937085753065949208220353746815277620334770002376504013786506258972279739739424419113041136678831452109594427333842716253768976017228424286719347222345890874791544134157766557969820091421254517220643783531058422790223759795181051020863605540041372989041483270080095758797814313585418954206860379470901714007837613679796760795001657833152233404749100415273920347543868335395434517751583593593435668542854773311274216871470474716958539811551133540681009367456357996140296189157152053743562259983898421662595362759576695811314640492153401417274559625852174053524364176744056190291240314780377475944591200292379322133180883689428672261350134302351905178377122641326533526187013517354490654099838049740756912471432791702418326935212885858245540426094666597888968854469402915957349179959160278265475270415376448644293093576974550069141239081829849720610952177233743237838536918008745940081129793355906363045861313400624308813080990995154673474025934608741172707676241605912909418393594519233734388924936780624686192807066021965233043385881389483524218791007951671579501940006818928641897316204855818575728470564866648825779996613974640149360757809388810119536011776681649059739391219665315416451778944869232145409328948921861927895988255472950310612391077130061881504476193487490924877057773143251930266522320426870017794041451347420050664629151490918197409929862757665184751407829391023127790973966945412074124203400644553819004853847646039387229808088814845218414728861934956576379796615371967512309783572808524586238384716715852418887373660412662319404682818165117429502576942098470381807415495679620600778137600470354695293894579712532768031885013875143744286029921768570059689587999326207421347804588863474812089311035138624880198470024059700148102298650428671577425352266310971445686105925012424899748567539689716745670153000586808490008007881831633245153556541351752382719752905943228489123070225695084006892056848457017263012702273279483119425128376895041899322769794873681529665440079032396682223667594689020794579311189437341452488284772157534287405808465545913965909299213267650372316909759655468760108336655812702707195236705410942056326877851222325423009340094139936679193196740829522117241965630222140203948460361667840590266454046763427421643452032917304746179935557751449128292500904073558981981234524015262454197781890613172215455850251563586168375219563648987340511895136435516249390272463347771711514878279510769615685474482951982394270854585309666459287104559929363977908811013330115548147717790757905106759972002983038933563321091788788541774241050051000077896330403445638154079877560406702251170056008129232581088039012288133256257436731744500391258653922302143605293638284789753306701834364730798775056714409166897025483673272441124334111147779817294296339737357666616551184116789148267030851505564638460563806562913693695553331127522903346133330216121507893461530066307843582828159364555483005950441400686263687600179850010615923676231499787624538794327089834017896844653525232137469050361964127951974132847585407583285333339082087113612500030226636578600348675286388054421149675743402993166601416014395745740916540189002771013701144922637357794420309900799630871719491416810137458037820050493925849495218180121937697363576260715972212077747808955826883331191260616675929355238693685034100999500713513033560463500943374615093749935544340299514251854934279700361134817298686499047330878570512808496108570609514744282370054330916607559990464953310404074621558103008311204146510793833480577764935964527385628850701849886839011499845983681320024881818334731462736956104124524646876605876392197437356455646802793803825459476719109455957801612204545470498009792509267445670023062722669353822427678353633060774343554098781279646998840649663755567866344568716528326587313143846327561798190859698224162599148886916952217567147859198966842295738075232576971400686066363391576528620597250019227937063231128487423145862587524525893696737011416875598296467610181541282985918704804856599328434204247070186870393874412396336873084423087322158415992476324256291614658217494479864058735248962357006720642905394789723872049312273840750353185216284290560796968213161290443113172098322189893663131330460947301939271334512513724835348526422335511699136346210955883831658544744700163768215586081908667663902688822229292316218148660908055305009627935876205350943750161706128532715913901373535572448926618013211087196428368219147408117183118386012767500154014253289093077802302667766693033844844163551649932857384358872142998748698936423243097259260325049667045673432953754827320441305270526108807761944790488784291962587353786204942144106239711989295478537412043787967398192711094996801567271557430600802584964689263774684308779930551909894381259845597129238246434059252076192673788942849083832075083653703646608488422067671083289584904364184243770540065807190248009825704779480008064129320795724863058795669779715935956993399791090516821524689067790933447307742452807190064194018963892421290655228846789201862945303949025749445609854283520999222460982616857714528264443656811044564018201082650872345075261224819351858571918266363040194913702275706263747669373410651160698008430866669433411534097642185797958904848760556116978079112132696871781358368105451473586120589308097715677489623220365998034449367877030466581578320129925631932951533683677836186820008325409605076775802121913531728628311284350127845789965399180953257061899269126647041671981519957023189851383169126817411145523942369788494852349684643583921407000026144538117584481388149959076319814713643467810401610225163058884354951363103952256596892153715824868246757068943620977431259299738476651208096055598414950870255625581195655783654823806192229547298497096945792648495045729758486825380396572768607870090092505650549359967912292114591840827933790767268008270258239414713408600158316973337179681262568476021358501191533336647511773862174843714194887497554740337250029331040715405704934127099350020207033226971125951177740984702738987489014611160628948081108190173098877521123965083406964293373363304268371268334087725464462134683280337557326594519314319388215646514401124600426281907056697614522046435860533950441627355806253924771545465440830030408395081220811785792362627394179496851110801867938641545966885354033251073613504294207873424003109117354917678070386753715783765816374948977358052961609754177317468288843320025747167227499762710196181405133559523542495147869690313078375037883121778853286500530486559844497542845320284567787101883682264634071916003957512572069303711239290678055277779871608690658846529452687418919028995223037704633645405167445220095954600888275780494645749579531284117293044212730211463271498479653234434240507207655457269217155509747591103906280562538809256378422492607513823079690244700782186365271170133331987662719981034220985822998379526711670102933691496042770678395048599952898836109028421152956363274886839213654518018209482350478201061828532146055026877482374985979081275191082472874742027129909583883873754371737398738334208487462500525162650911299075130096208481731791495807050123131250055699609374381568802108940286792505925628208113101546552932054225705930825684958175413047771796980357566441460095530059253564250014310440455619574479114252759347581315288642193977045306050115517130969521903185506920044907003488170701582246768917543388208396420472574479409907856037521558295482594803306761090031311403658892196328668794202487953712739872861210812936385803590759381361678057250936963588347025456151153593514449702511473612250951666546031538916731631565924699118408335869044961069635922492117906878631004971131031783165769548551757090593461507170955480416398300107763856504525083073279335058789108066215287748697305667496093938409260494052289537710695533807217084982694362414947150437443070979694642535371509330052492877062487458170104583264995498345857075875512296423118425487884575363112796958380747659351320412331309750213081477416525458592070113314270509605841506506972142059705782016710681583223447356943968036542506149486791600657703450017232589869205687433342469992339728800132070436763272075161546963378795670191358247029364250315968439721010752536649669434820454659348875230052368261223305248258853092147729854673377783601481604835003654940606972061728910406078234427561921347018287973321521818617225490256834370798420756492971620506391223943618402502384581054534188746264313928022365143846989522542603173927107612933005320875475454213729924558996096362559372070835156032250283229995601264886686006716976377533337799293613402791529847511881949583567567814403253927691351463793716070565130402926112338919213107155235880221669070827736392755176960586455569497298256787557447711606844708773940950399144343389726010077052797905120514293698154742640539954941856393676980435984595380657245716332381270338984899725939599379124242124280032268258596072604667767878594425280016565720030993432769075777298548020102140784228230243578349710018370274007031840494997389344880993206842030353222671472370457759516371097830269953352336982298296243790334771462321349334794830592371377879261625525058375998286414032098725590547045924348742546678728677263181088009547482155404324187955077527522515732433475800398169838998816890745057065828268219790606810171416079921717680832381014496208035746446815104488684313564665410143255448740929923862509749385721458592625995326188208053753748512372054329761085617539908957200603817402379538115254544248055902423017159519183024519913334041281327344930729863367220045064201122836297961641398901461201026649892356910569595256139985191866818509119683263051430415765562795253810720111740258948484568562622776533148791066730224345719704913384790042620726710303667414022435204485226070660731630254192497838178432779074551177009035510425889103636952392946605818820756116194431097756019862664906186460730733045438031555142680532514554407362329282715689265924018613442500159884238707790906661161041941181343205678536998785126717270156591378730312532712561575675430657793669229861254638319741309192857449401595653729474110686765870137818772763328126817435715116199438412886665426699933243636487491858146534980567525371491423484016393489122138383070367382954288197336996448951344745620188662735302036217853355522070978225109581245978454752925841755039077921500232097867911258228137825667270433301160103219054920928140649911769035148657714864919894717495537991712025117838989633128372630437644941330109351276511390275634550502251819196247292321558582859067295197540016182210912716419511270045784329361040727571592126457736901289611966935137679598873546766173274006141092433985025320122852589306809142689701337937645427310628702590733663971578460237569819343333412541770793699889869688410685618896991182124974903586706751389291326103044406503791203790679761041044416755236730242912566769781153805946699046386733152079818626198123128981653849853059698577976355535563986908447740200871482734463785368227386248484230481526358442174931590163000353229719796104622592183282906701273704652059514726016463037683930062282727951098422584560590326808831812190634965368153487138906042309353396580077262780237954968143682467061464448567792483349765078793596688474722119784441851282166483477781952113181787937831304149523759167917458734659145238143168722882969831820938522357548770761888036316055572041359088766786228050721222740484879648498438016326897753670997091157125073132818177858005389359607178681166505719538420897786253718696208047336133958843276938421393484936695902065152764703063184093298508093428458884786675076347232629310626804316511445334788772264364019899583606560017748120650000906571889106988450814455775361434107571207198753828786224401438624890993789587966523282239066045806161726685436097374722250539988847116496386047309046643955868467330588569619102099311270675089731082547217888737290999981420813605518917326887122648122072349911181616881662269948130411280419619972624228187619471109236129155428360550300772535036940443406970580404036587119603339891950214403791528573053875752551844242580330187486201864278092454685099386050702397319943699803692055149525087034356828606286834336534531505950341112191933005364490406863774442378141093843269553341056875017736032894630753688971185884484843090625781407078305841198679755032972983399038154482307706372351539775372903631152662374994458664196026109572557419693218382928628112859309057749137726319654707374921273580829806408144198229622181959760318467721838689582161897152972120844607090202836344744904113839198611631230522527994979267357383836858190151232499046482423042505846398796547441865694564808875925146154597041074122172106422344993902001697928370042792168145652523416825055126520795345462762697469720456230113114772359779632377384984389275805185374634419816144655671296817115859115581981483604912869282321063661043311633856346432802148622647341942373785664296359935744238588669996014716134045254253277783634944815884379207589094041536776445905862442604931516653372545246980173123460352003084231675282750378256719632115823981847181459757199022477045733822189152277756272098851799553396581823309717978973859070799930890397448135565716840146777828756496770310528681340267339296827951963794029080368577467755343930096018007074382901177735871551523371402299272431567756922047532545919163172842603926045157030764914100473734773046215224415359062568473524204085026014935365633564284612004793068938713961057429051117992360665378879360714538168254542192809268991793139472323321919330726786308787716956019326607459230019695997116011948565225024057222404239567983522501869261699065368444086082072931779246552872940996951210678358032808350885727206522938751146995239601202588030969322330827469112206276436374188740307535824543128184155729195293678584854085302216009118263109114812936679101239198627509262479892876587018800448640729995925647370610650634108755803201710593454283718831274678788504216154188132052756917788982163410926012664058115111876523577390464058446630161904904981496719186986143664050248504253475763261446232563319078455647120473623533377893809793359356599240961562986467982220528756253445456767945388757860136691156952020273140107607227999189366513063595307891444964398474944395154934863939265117413855679036340769764490697452003132335926727454612588024737305172276071480215424683707772448561381047460363293215617024716300263280628981149381452776703491267222918496768999019294154406477037401995448367860703521531441983774868789796522886521768322456138422798355694162323312594573424039758606818459214169237346521450603705525820087537727811758540798120840059360499560471481402274853392345404248429473079008856440917748089130623706632861081873392532024292040076381125548901435235908469717894783619550592629091020920681585099174859172683900752001425866969226167470063726029865864965433573222578633938559910609723058337620230954497486568353291865399136304911088578163675445052107379666361196668836174925806570090662736909308070395964506072278583755063463946083857198721528662741305512513509902970995568961814749095725564249729051800241473772344435596563989543913509162787334638750248982843513635195946859568568934164996016298595737881734344951696465183414877463037744754270408837704952374218227538362542173866456673137862267318519592036717920670539298034541067313082231898982826718893192803085266454441126113000011693865573205557658943921612398842934853385485520929774963943353189618144209318455948367908700247969074506414046886632007605830174849075072329550103414032479007790667748005699899546482225485235865968516402934393319537851988915878916836470120667666494198427662966652539039993834292886938458494426234288979325572613351325138635765326283544221539726011278051552402220852912684882617182040406692543288459731339626391224029730775384009962851889968472272036358180769608586526324644208785605074340162662990769029837596363316321280172062902843032370257879156230745581871751589582997412626411663199465234615359852823604778080463252019465525384402869610276001594724146411995316231337675649947103281079334500110026672980634390102415682745263126571857986724459458262756274212603065386688740054928306751372869957402124068469239361139129776221973314606306657156628214182935207314207616060830049032797210679205538799921866768912489087430980768915785862641220347458101724964256420156285807374199415890922888162406144546769120444086359114972277929870672975783386739069176992201612703678502572406473607425116360336015774570509106523942437474488281714081930521948330284095812098551267600531843918510041745743244996578006550592285020570565429975845826701369521528108564507032775866955659356579824783248651369740092516039213353181622250456814649037166269362712867004595862960533614548193758334952600080135240184990732434540658135569482312908745283681147868349070643180193279262243444997295245325826798821820019298189947931064160487917424598805315945161275476245542293161241267188862389065068274286981860901560324900259025470072119346173530168435526693243190693348510164930148977510667369138680009421874024588034815963770440371958452604109317099135085439521222298357070299301598698329230980335037072485028405100934501641924363147220723926497688051478698084642436041592939449987069348768415499049827350029845656151088946647606859670352944548264701522562909478836938041415293242930594089953194274229765362428484432678813017358033369592783418249813614719327945553578350237165390487068435512374657821265237782415008199141792443202097528919476083156126079529592120348192318736893809680837527719763326762318194913438582174931947337017139955236225331093935001826044329169854937946494039905254687872255882235497843178698234900627323692682781922336605304038656969633168251657862539589031596061035885404262316959791538327358319298787763547082139901888787836397998286314450722511670947880841008558600376550554963564658074528208124840712253550539924051340179102568880800077589534909836211178246969761571830688711994752304424292147222631603837777061421877396499483922255462078355166040540727114079093336658346150684421302318581066059126051063437967034792182489588777010559776628961675212375131048152232389055313665136441658827115747534186186093633466924434166513282376396673664897128747515221454490320603980226882776537226849597452578618902040356206692314120818581318496654047706447299882060314586964336650717127848133743839237589955709693858627093632015463718604412414045019705675817178490086391170406840058518878178566277297306541898377006267057854295821812350286192116698133069553013498462502426933034823805899011199588194775294902771270075090661356230845804595888180967608161254672301699678594778629887561949621428472385398869353142758998661102643691389337631268378043075221391683521733163648960048592153755256372085580466865449640483469718206725408573997075718558165369512848175032599147117599414800447283785789611466215781066655745575779046431337635267354718052643956397224312534127962611263863390786884781508531112548968673491070562828206825943321250464506921620240790286685678888811281589635405602904157682249699444441679734021166135097180214024175450351678669501193129514543103854935384558041081898069084008710567972713665511151266774496530531942201814147247586896610894584670618926983386784894178016653017656942341591697758079254273367181743429698376443898540952657767618836789914613924248845337448230954046845650383643583684331180152279932657013156594783114157032876452877072402518309503532386528496458783981452901708147313118668041011820916452316301108729166023002707149101089158146183421677349422662057358399143560499670009488932883684894289421155283947571268258915832052793808368398489760117398107782854999948685590927473913907586798249311543201184845581607685797781902777322560877606602030062473856251583404112300637202322349806496565922745911103778928654892353109599187056334972247740473491281929335375308602187784421531887798198030661360742884734080852450534598526665055422618101738337232101496168510618671339899903648905289930956847509340103379004798912348477373759438125085064985249329554285162925245904514510835676819595885812168985578220124682863199452116471224146449627425531007759453257766096686577067483025755434974949471143809270342727340322910596822812212708739053046960798518081791171209227941659852705721100084923070510735021706242872181477953334736143710031546904413875607274136723499921788464395760071969438292182021889216191405503833375992821207149547238681319124885859551002647232434917428026882098012555256899831438117976800389737838703919111300695745558916686509650748316765174853045578441348761663134863891196906331608512641042257712749591538075043267269699122496100262628722461740444479126493567034511912960004892190868159895898950180852850306853421436431399616037978037135198888157274368478501653110077724077678887415025635735255193789360075171252938608029516861599016989119561472361919906363571669042950765969140288534851627300116007589569468841735659772395009402063859988869514876775648578953124555464612910011823843989785979901154710952231743753984974060899499720014467404618005670078168710804639914498969307899889134712202065649559437678576210831841118842109613896743144921813241674082467930897245457125940332670833979726643604465881600463168532362667720482893675294497531886888356567347828487632245110291862177437144546365356943530952489548907607898619416112087113698996510738372297329279723145747504281668136310965009419491081261442956535651530207779770740034103204719116632471883315963244311397030908815540926176587773734473434727201493067560841492564746527890112938481522124156765860190138129517447900124630453075551866699917275186792200366778709120606233705331179903860420477725958745247439367256308576202041725299957201766304986079908194592096001869561824941932359001057750047001704632238970467972186601947666530027689483166166559855867774366958461378712727791551722394729166097152890716906027059209319261445698868455479429012020289052562899917344195403185210072133148678045836928717793161028582584194408198478620677440137732079169343901913287162560861336078023128929129087379016880164231067429233761680149585735948241502105052378381114276333422949389163897428419970384844164664443372902361399955638251215140835865567681274322454517077132245515243670146509288121954342959813908326631800968819635070766140088066132930512480969609353218683243751420798471172443892256548386363584793412015157580684835122270892221878070244474239510766373911503743338722281470298070843953888148394209888321332742503849881451869075870482093450671305120770360529768544805705155165688666338374139337354002946693417196093199720744654287484914023869662699461467915022723064031147176834720334175236200430901072663465283650379629920438211534581110313652545144336282207707989840612351405878740592344702325682254361192130792020961332473892988755685100870587517532102293022764397467896026844064997161976599236055903704187073754499177045091120909797891159553616992151188405416579724224915322824782243390616479281700537073039055192511415781312613470131003737608547276509782618680254297166750864666488835853832452373969435905777857030896512750991290786018581388712118766125444301594221666172862079860650171513177544433551947190490932282562490052901555782722410845135169072634701329438263273114643633747418656989171336597329584974483999762667066543296636669905954176093400273753187559799256232516017440564073226128086205075072558723625283406581385326109996120760154484800380082738201238413698998961850556800044745148643938194825051280205710305649161372519027225348813640650230085988942597232662827729933147487142242910326392573952045653449329755122264126425238116886240773810162872172497817879006652826734660332277553602329868122056978151701740571871769251452729979836139469293154994710924399040647470962848774230265758177834249654627100785501787436765906481488086280230040153112593184611322060089934038929745631601478171889522300645757985822561707350299839112713543592385240959164797194051766017844168106966789523834719848953115681616221926793676343122225070425856336482805665277992749726217983317768873661181125185153536051339937182058427457210303053064435278072292600351705610173431627908315761649972403109321041343931656451039543991953108262164319595710918626508823217455447593593528201254473587616648871907101437979639121610207074521938597672235201337963658201019860253154668014552445868872196963446129598807813172864606441388675196257022436688634856246784922447901775746421345022730284516962347522509258111672559551134272749588478126165447259444394556676696045770045262009194213564087111985854641604294957319391225885150378428065679580837788369660698307107578353974474021666889444605440580347753941704747207189829625575766254610242599608852905282679279813879890766143732063849587911424351128880949754030667899594440745695858789945505864839729806798272180432695662865543753941318937444869385855837096804097973474511163371407194882390087048681715235437471739611052701477987433681319653482441537040975503603051777171625483580337499283326941977256232815912592886121018173594228076537641535138435921134751174529573345245010794923818275942604590246954777153286170977142467466955360766491093232834785247413319616672682222148887491622173171085938290514160981107887205438521924338685290532241240440787239138567515224852723011622948325015518323646941525795826488359629092552643325826591171433068734013877695105004102989275077559781852107138283929095062875351048906101845409440367163798067160238687208493278442093751168077689193863058764599088804896686297288386581282803757600765055077779969890308998881030152455002083719888206857166043411010367498248997897902936304939878435060818381827334832481240759749914266882765665681422076819978353361259186188925797140552672818912859058886153636082751640612598158976907325656302259702772769148614011171307813331583057360980546454738003392244504340161872900561338051550902718480359049814189240026802496369494711297318069930457701573391783849066403486126051507187768107541336801235866830081973302496704747621288248311041304639992491354615852785421621599826210209469826586914409288958115319702999317962626854414297189236194796544245915590920401751815198319525144175855567303389824073051602295213336693754133531168492190568603012112201844196432492806204844637284555934305497142248200284592403072493476998588177627371686185685759465584421637788702121710993475750920565066572015719987843150833933985049889236364834674278348169980768031193973192717889585500057673307123322040110704235319775809359907771078952188842059141917171639517377434313716739736397431480992023987382771824690423799572894102924573045943939910007979518450424922569927831193753927403667403994913856900654282174080739594220396448467754341615431849894707518659211087292646374623930648971913478722917739389852546395359205444295641524064162095944712930836606306527887433811777315671405998303509533696086044940862482715039665128232275069755219952333898655755126633291944454941240090174922582727046082678934993112042994557941779073365991380031207549862390583322066260623153594140430350231510031408968751854035340264095718352817365692213073892729198535680963625136301835745223265358628650180744826492512442378416205541694773651942747363342742492330848908137916105655953442431232179922690701230188455551159583897203055853549354070718978985047450352081952116966875153608818297521909100460326191498914043591511887947357925276536144423176328591497682906379980276879555731332223746158744675446161411744264965766531408408451329641786892361821766553508762408057569377010865159050434604902529569658500338241748478077308142939701513635326158066222431918203106351166045428939490908436197844605484663323610721538456892699385623592836715837190570193113777707542394443584127029873682840006807301073012626012742275080522960312858878023761938263637865004477845413023998036116172094732822233018873242350348506637749894012750789795555223106414519712900542258648450546658194952822448699866011812782005519843836531833338274235130286012312561692699919204894042073187952609718843497714689834770504571351705980049057813939222630749394182181174331033334934740298591177837339012008092960404384497799590681196002839904834619917883553255390769193623795624378129461109153301927937468368942843626565974512306675518974018168223552449064636487514722698821202218450160203752847974530554414725168065327268089814811265676368272708006866587768599092632260291584929223705790250472806730506639566570664953436811935008933704827293163930013296804231945651730252695415341370494590243991683626665794034137603798598305502317547675569868591669489906724813513467019166992794744125456208691492061156597013251777539694044052546174580783643319853524631813932868785483465617894144015527856323803170747330420119046567981626504777539408841389330950701206961551638231961990512338515321174682956202222305552932710356876621126872238526601254695868976436125023829365534758428651659849293384275232089914297633578118844523954609601192700291837873655158401925281514986878745955728531627246674745158924089984957944808079347313932167626810959200747227281319082935297807414242073340386336391285281405855689823953032066248050408809689685413478483700201916235453737203241774616472914710787317358581570504063880378286972679485689926985108974776249020058239675637954750814411798877179023370410838605040849900775296737795983832726975023823595100122482034865183996449689833901821590145855277766715031791878720038298048818778026746744395726785150822540153111296167987167757352119790969725544282778292102049516883709737566397146200433880284616771391302131847652810616565786126164186135226214850797133020064304452461475654582026361937073931049562911815140029981769745140359887570524857758236102853760329932265428677556995928890638209307513746703345792391565768800220847779345469167617565759099371540510589584663066702241661588843018701947667850050785347874231194729512961793981513847644216836858240986960460312030257017073422193612339704533673400542891664386452255439749147066250209816630021565088112456000252910604538765179574462077275942174451614483188931415895251028977540866299782617584693596410896119434234592882599252998636892789305322977568629005149451242478749360240082390513597690233411688506658936305506482657434091475309262149005970069148132234856932588328575730169983023219946057000304628844213022150947169998270118860683584686062700411374491342092208982378726060436829054510139725212413210934570271099155703947610411148297248661570471363357518884190962537616520375218402139825709959201509986907475730065200988600322905150990762122864724439142154607811904910315371860751094871934653483295177087596213700144592602128642260935484412560606306493134528343896175204403943973673794381923367128795204150781107709252308081824444446944866750862651878233239093590038027111373263639445241624577014479033433874210506926674344523271101883983968671280582765222547526820665550579047592190077545399096915498972279616186881303679370889941827538905611888620349372289996695196490526910837857064078807606989186674766197761284813920855383318057700933695826925212694220477797256295065065267490990589006960688549080633186680548243740820996502324197353347777312306505239027986500575989198563364015436286179118484565563536420798729967850154722042827435258532834436593204456312794510742994329208660596852500211722200269219198214827556525557666876557800624539540590610266194240415923158942295235815818415209395972249478250217281324422686625591612229171861918155424759778925871116538811068813839391167095698933353940450164705373888608114819532868369554102881033723508485354240360415372674293848090538181898074295068273772228888644110300262064218124473464024416474355292851782641595244248476325293781052302158327071997951247153629343350013057382530767896599369914067417094242393852825664292194721343823124778189774818494373435477266794264950720031225643635613050313835821797792891193145438354988678298045379470543844166799999368115325400944313658012292089037216565234024391737388318499164718064183500324289308386632772183035838621365925475606440574820355686398180352611473524055006507189924021353381407301865921532675865268493352884489268108106609084055903562498539542905332783070938562130013690493281883437226927960933068422891415061165548759284355333616852673840054157243447666223861626908717228390220253576858797777646690569028774396815657107540837169571660657782493834561849973187201616639518969562053453177974889247735643431080430167560510344764131495949186209610325767229189513773508252348885162700947676208425430260889061160526372107100996954351103331603532687207817534685684189710034688964456615396528159089607190968326785849732768868407114933545724276304145487312511509683642785199223889655750099559011067241880640524247447344908638944351565475082736502598295610740927966588524841999518929890875530728642317740104694899381525299338139044111863764460189772297771854751721313523933890894501757659426258882617721854495709069966432737132589983309304251583253931419442034010593726482053167279932649929027900483941593829664655548177357877690162808148383344131089051717972136661684438200132381809951039148940473887018250836015443227512098931363509386552880493180256223502929097234901827174889130709550021522877604749398096823195218365071640562429215905787933603391483766718905896241293340036364578991242052679946089580488333267911486246424903324620016667750277058124157495342735988387219059932139488279129571770424157260557159799778128798309574789270805266895359603987728804849585807097400846783362448259712363504030349981001314646481108002430699003647661724031681411351805395605964331879940030992019755035773128421804669150330656173119429354529782922190502785350989521967343222640346093190822193808722938502113019551571348478423807546556561948253961654883067041732258516909706130953390504461599489426138705538780933146602629092404601428958995262832645656549451917898466804214245612536966895870464614619300832390217990521540165760143028613557993948700749044561801959801734292603602438099285487440217045463137571196771546471100764893399740888204025592348704852869487614919764751235827605667744788669836625153867605193872475150490146855267814131080455315726778032227331364121720792139771121163299670200917629770602078159309414248618129703640136818332414186404315022879828259703446297602376759730906666816847981562237486166752939228823537651965903089918218968859850974146930144338094799406215534656235584237070087529890507909188595172655317309548107578741387563215079879200708228751230931281252787588668615776143432042183036051636560243395636063513701608416419424501702196944271439680678249353497026876185371134362265648574934405402958105579981009504538015984469320817228218821382067507817069160575180868398407362282207185381033916159800129940858892515117890685885758308707022627054658808778760966182976255266684994342087954008898095622773943631113329799746541947504383314958093677349215324751137613780373393912309963677114522943486032438129578669322425234301718686636170166229657402367157032232829507676343564435581123578055760869180751817984220785269999823108503522300133169683479421687185919881713448233224614323085997449425791471233081867604790823143466691103016662048442072973095316886265479450893758345191872004774218165732357550081592266849978361706541200720019714660028828262797713908538132857493916218173367232634562058082088740614469596960995392345895774122153980716236494184283435138655806035140377791847761439301025069389136321442452216217982889931055064019121969481463472163091702311627338087184201565746255423632791498029359199327792175891775816792658755030399167450751628109128002482444021133223373826978153647805200362756712857135440439694291965631629176310752543058736649749539165482719191027760138030793671627539246150714122103951049176060863792744438353482421055244381822144194735995020555881067961343001101571244518445654814225977269214044394864606745876385756904172736927340114441934871075905595597271241352016968002876119135658014428244095377976865243568804273312803678047313180887697106844453763995264441412041969392520255315422241258422006087519541381040283099986728483384769422109663339336182986837863781004794064940247335795930156822719450120087433081049374401107186749472414742044875756173807192709025207899718790437469014436852603306976529261704067752036816507098672739814726576878627880082352106288206125086599165240582497964195477573208288849047152262356508687225117226954055184932905127906392264074908471644941953374030731921647312229229094602422190196593523505325550725193650521814269713783075612988813236315700196865570616163428335349653679776704729550288618655472907737522048736043453828916773882926855145441871449867824486188963259891217447118440863168854488512425902211956083867012337450240593160954722224360830516409718863014109734847913655047241583251720120490188831318205428448095631455351652938683053467066301485707170778532290729164370967010626550104390739944323331993592201051242906178063346267740498788065163459827951724238029793470268586329981381139909351324224805663907843074691542843571788871736463979656892310890570923489643399289174118295932067948526056458345946494766512966005809644007274000261171020174019470624590733534299217350462840811587186540824702065146057619221989422168730070509366230260608685784873134082922767492090902890225255134951977257504477754037031508516829276109123810214215676604466469766919792207461138811505989522127398079927736136573830473310328535262879023142168504084702194263161649542511792104798008881394814247467006509230991352962967583987455390458296849285297515808267013079912273703371741429519708894191025677104140476063659058726337857069393582230907453416408434323079888937659508426590482077705323261075544029269342463721585557518759294112184406612729723581438176319523994952132717575146953245515681605432894611948453974992263673509845791567794734986332535903604145797149132455046725543941266802606551466643789501777180663493888695611410763444919863681967864430871988257753949331410097863616450999107168724439704467326057093982841570204279801219028446615924720004146516522200429105075739693490967250679619484864522748917833569513507824327299629982730576960841116566607273638156708165447010253339751344067588894518630811761940888679731994299401557878075705797109129620873970140902462178102206701291185139019255181886924090809307189665474742446339374906874462900599249647615770889883637492552002237997779964992303423001267815472051616455530839359933465494472587229680534078695562664095451466777608820389256062368557400563000992314037743259688551972028359695640030775397560104102691690936008287669249479029076126650024515151724016184577854510533767615371568384024005228788732599445286296636775151241474039016895641327970142168471774029583274379691447348644628132124258868640088081339529746484604236879721493230717190667496508430821402843300702353981661443175466642467085547638737918836595009575879269202764215177998853829764424959955758529508118645295785424971429834301891248439683027257766480754404414903476837754796777243544199712890334168550097125226494356882060326459696107071382700642342438274966689575180061394980469096842262429778833918834932198219490720079516316248108033588593397598628847004500926610271631601399960559852318500700011261664863135904358815633278155712714730490010884610798937131648073338272028344664056060370621444581556044721762280358227566867166819495984964149558664636464845949461672346983044389338010702400523480514671783150763018380409084258974796910799488557779392274644282379241349781326758461471460357151671365473128199009660655317385020899735863479409100414287334496941969750746987176594923816607684344756673665688073329682842331045700341851962615446319759787237701510259954408541391903334587959112069588221002788374244947434481279323343978466324751391698646417869239100102906965843971754644919094046261946919269600068610254920609032091252961565318751105623425597117690150932846105111291178779387179686691242270219581232519711549222316773835800667114201363073179248011149919854885432833245110439457222520191595245607127009975811500769318284940290825880497674427730721579340553962424994491259207012170055124205812383149558878751730006771158392687736417414725707176919041383717388443555027061401220220881290411434231894842292104774733801264331949931415199047120089547334377592249342970191537610993363260034197390827008230330772648550783477373826504714439352642564758640239379375355546023621377322329598300722265594769053514267827093358008123729537544624976840314527990011499186250152225215834820769569496536772101788361294107780648607439309098996246093329651341127401970558403256576793438598778583238042117879083664342263174945672936620875611869646673487501665426048186871504522096112465771237891934841832512556997364953368238479363310803757002871809358076075624480674240093987893138071082670399067555236985702600126212122339599699059768993686334731935901116977983779905344494656989034558039308186465510860136473690430000300980452702408804088950071848324810287104902770639327522206509388254937992306409933882381155383543543450469554978700114350438206329936207669383042784281714688333608293952270135874484814313683728439790649487602531903380578424275618205438126330513403518305062883452696747526900409310248615988482111647811102264535768612131027646822744609969336746204240772516804342192979595592314917588252946568532025540237225150871727116465248931836500732904231434555892024605225529499223129776492820411155991084551644753101570511380922454998398427487742073569805833725153843179306187305470166081343647983421742737681829913981502478840374420899867471706778782584731137809192847502628720008870386174168419146280526595045636414787593450527096062825342334242646402286426825305090737470503275207770305523016267253316392414111813245077640916337901261351857300924401190059988919030328431645121953360265804220652729836221826660119606018049414275413593212492694667645390623273632702046151938709788990091473625541715218131128650421570271938442192679019061916495552387593816036477225699014357364852149848190355463705996414654820275907260420515204341070597120531194472925727932551197212195416040144432421731010403204126804361431757731739676224042365940060729939520921696167909776857177188894792064560418873899283909125649760679568361656352452130609685207667647598321035418740292659897052576877677633205480371826564872455332527187503134379992338282863109528955541900698652472227295405787587188147669205208876451485975890913021436257438457025314184753192864878430623822770911335931854791447389545972587850032297182700962026762183209583243208194452004544716068283026142380628693869974413468317452502515982736267351334242321286380945360760791269633471656233860466274195066586857601706205182331712984444180326046731939102594044333858756664356997946560575546431370320814010167653291140545565368823161285253044024703455946681141647150694225172661136649298717156761384405661006077388190665973638930997841555757748451972937241346701075876728648065987731004469886494034921697794241801399835249801492283638138978890222848109605749837776481785975993433909240847699717537739183525076134409853136023720754427719110831413832211628678112219592570129848502211475848779075776917886986655050523879622886659039484809043812231954121064085673277265918163516843382741870967763975033038100241756430357993568178729943348820763907128947405623345384976817375783604886222180323825963491864190188533168725706497127568694301816882492454184442906893250591421783235300286541897697311436769682186053801488719094821730469134267251012312820480820953788463262294958283823901433025828380683521537401346480796727495881457758831901651333525848176055602575101878081931447494574411533090314513823775831199758021724193228338283993156637736414411905144954866663979468892949124499995561366879654211675677869485919046401218361365825859733462629166198498619967887996397550021711806739920626699107876834341111486977852258513653094227201602847670847644554161616267470231588022629877325844759147512370792298226260148202830452406790565385153874443649964452084427831701989641184483306520815877148452902891507317940857266854039162544195146597596160350499217505226934924077857946773898534729191163216052311823897065346092930196580581903445375345851512019241073988261581440057354785912033236899627638477086354725290661620960532988863805148899579531005207519899465550019084905125236397677411829143400984591804585873105803590533252014069853356764570442459279900414797641130831513167808575109437304777419819835043754677904644944089376238532575963751530861622024241582785640078855216234237818318790906961758628483365174942515359698139806091342243337837233514871478967585195959934684350707578082728564002821893925107612401550221465107997437100162639428324715423955591133612736528697987914517839489187036272086774806927575837075526484225985840402428047417059001407851339770015785894435464952943853930529741774336898085370407077460207272488403384298036707966181584793471992787681643491142182081742817334665402108717615041554217158293979985144234421071285523101571674780240426704399329228638198678942877382495178740150832916056422788295248282257210292710491153611018815342854807858662574689450792369673308385417712209045544971806758312463793110277719195816967834467672998866298506762689925190124289190874464351165261551772245435955503650722651487286941653199822050265350161099968892531019092468140932589981640520448365576484419853780238935113137527537516191687858640912443217584801194925971132038158942437473439891979453309408034191377359429803335915554783923172010426526692139330136345263677868819779034957861647294778785096845811070802284693466022457429888637353559161137988382364716335068783897686359662145273710655081632763301751450025084613349723859868486791261013798164230423013863865878557287995866249640528515944336862714037457860747012570417694959946021746682849802442618561439858470553134459417420468886976040202716342023715292291907656948018459359653000628543547188001240407362080932011187908258691122199370187191227035610108119252642118481135858064850462343204590733063789973357673192578389823114210306342273323970614924576622317763218775616776054533559818901447966086552358386478186017277827155594777614181678292997438166476301215692970230792166354169679690512063953769095696915554205837400997762659168049651815637620660581384201481532948019784247827338462741682791813533673145540467755443234206507895842330710513784691936753508244563028910373094428301611511878512296242130911600618624393232837691621364720850450165227240176722209475200268358192811393259545434164849809695712505195500759720223832157410739791076317644191362974248822649643811693953864796816027451503272820370559153608652231521440281840753553955129140982625289674947896841240370089438062044847666001780387539532693432151033937488321499765626172553004297672547039539453774058547190045757886496563767005200589870067662369541335197912280920337703000544261539852043248585904526338176050981187787832260840198132562536589551405141444806131954768486111423492209280797921170243213474979099139629212419447175483389490950640987891804488075662679339800934045439405334084434521446725088388681266893223630867993711361249741064064545032676457338633782798275347505012219119831376885742360282229048732636326097627173298800442341148030092478438157372862249821272903496246019203629931634418172332258846688737155203972739063352688654554248332453745704937007154449733458294548245872000618138232076805069027440499294584198456144061169588934582006924794634127649220761639329628901149108912515324410004828007359275436664067628002048984905383153444980231505513637294964777745297021652906680833986657605556972520319751918488092513200589599981857191052490901948017547147544750506573656224890649371242454595573446067261476089145703060166075216753845992432584284349496626689297888592389033453539536789710418850187783426760133582725812745437700306679798544085311746221521906326552085891562433443527210667224755303014461815445585259229043378582423167871912330878355566431469724624794699810123638302231442625673618868218233707419135800815757416101112837228839573779773025180420693390385297881417923882587241092297363420481811389638815673579223817522381203970336443056229308698083433153804120965399510990011384603493183154744173827857919618360817329226720896326515113949092341599846686096334449329768899645617605117830997669645760249642833267244741971947260899620543508668595392409784056131932812798759196309440648187926321886928926427196593209691385274975315204550864122921854276196657230161290064558407953841112892907509309502861377393747190009019987560170214272993973756706741357212488163714514082961421367917229853357527459725851411601723685641803453594563380325175557935666480059779309293571920114501421553025691481220550368405877556376981158177636623539018648793245917745136012903609954772319270496442718423882629166319088699942295503591245530054515855682904108131958625269116417825146493323812337673620594172547072843058593906218222177945090933212725332491454820188543989769199968311515317857006401263167544918243916323167556052298707251227072272585729490854090686465060834442868723575019953627337915327917263498675026114078579902315187481957310070037449456807845448908652644806156190114301762228818798184505994195321746492771591711535662146970153860236801622500000796874928199412135919152720081219310983757106511856918061932569337478506732994570455875579102324072776432570469609504271566957765481228363258735686788165783147640992362825957695293034060952351842130430245752743750764110938961623133771449371082538464408073615037738307672723687494478579233140275179437071161800580735454054957207670310183461007815189300863978293942000943039718337344518040038756690933487215527559166091115856571497849477676908791625349715915251992486287562529079240108696082705419787708295949682137882154543471817730637758643018668093015784367010687087156507691920465628083790054751603253720702089101444613749696529287163991445013411123960850740166356209342547190167061444855922337411574247173028594969877525893088746362953942429430432989475412856420814145479600779306799199219810604086709049710841407032887997533034608659284278923991302453972018176383514318095683352534225087412320890081703592837920991765952845988497674212691989150588190792952565596553093674955475846720808214217037662150491502204029157048676817866527966994160052081131153044153878360539759863725081493432926801171266219874361307602429841705337566631507129463838111456497029568398329056763365673621938021769184989380299616722891253683559984514214336057154976759963657409237304545330171442259867078577410418026048793506070137113485923599182509126109851957200242392899279177128803477188397114105418473177444554211045851338262195859992570086101766050238801314559709157115561394195615409095242408667081296453153731548076167870790770044515010290606008869114539334894829699979316256444639478288281339623813016180349792810441925601612220832025639391630744201053236845967821273496504806661557015165081676959140664018804908489431392819493141054498906225122668590244354476162606852173159612927302750790375526765848269999002825015077132290777555453928189366954982695578156566439843790848223521865384344044983996194315213693705711663633456789523104373788555553588108866441228363208265639832306706327312855159783148324927142972356195266377967185065111294897260720445663952251023793808181445728766345193365602052321368383392746146834157000400152968573925446352423922797395899764458805619519846578033440098504299160644744975451053798371559666813059912828287616380358199008790484820761135130402564538023448242498780862306254892462394195729791848506322196111036961046042700441502295722636211982732881281780112440684104513001024855256764810244774242191611905065253881041200390478322444035083496735810675921914984513768524617326911415806449349623214980796879718419973274457560089116803984300754476411723616725204634347154272668105719961664120759893566686393248341422427875285351768550258550755450194685724891222826282817806357258976826099417483027017998398751448818861706397756361298719540714174580940257980704573058308764202703805617770697756686753605694875364516572453190359330229691994749125436107362282096644314279420607695404489426915559277381023669579396428601695469681174914737497106458064896095746945208182709641967366319464028106256356149582951337328479144249819246338603757423872078443563758341570250009713328446616727291459712072253972973430957204175436360669570333906481044041693470087982334741342106637856595458302611497974550546674102172799157326026127589821863438637126694331116998186254448585176871360088777693854775381279733821244061761364315409237048459712652705315661498541263360074519993932502169922983351311238067322312907051906398700904238496389880474599677194747040239105192058969660421343088163642713007727942044558521010290317449932947521500903709647349800302633233169450490682817304600697903591611523288893443636842516728525667958298696855684938987724731870808656111442879979400596308619118548900734251072842295256860581157694982746699039581974807671746829987095557862288786586545336885088772731328696293054949386911972647651074354322986087434495703712547649797974337007988895524669577800110581772622857895078550131525556338806384396387523008762037195557751018293510249534356411781990669944161358892701778006262797598531511897631844705339587364689599764931729805093558872838074402731030849352809421722103319331934621858245004028342833754923114229156840398244056940983975828063200323083856545921870740657570299413901138173038453146343969011503985488235317411149096463911440678033310200329925209116523633278427587686018379171006713721997586938444311208861452576112423895065234607780368087439305722199279172069476801541878549922451028207829242243262785091158780308757432415500312050882307976053449013275636533266215142093706401544152316772354874506671881031076993282223603545183231469214261671037817802562364160986177240419250011076285763848867254147098745539180204331430276368006095365463978738539369280815826483890552379102491802887954811780649898086879575516247697743032275074948675792252170529685246694391629318102929102706663804681032214558044702047131621203771495449475405280980502269883260324857392320439532432719800391654706574503815320507027821455429142569600046994091818957892401360392278333211868397075693071672406296584236687034336649558369514379680004756604081509055886056780938599348347940031411796465298621138616676835142234551962975049491353274752198253345435125730194628607048066628130358489108574125615692935045742988095261539029872725544349505007790157551329595867000449519548723471560849558366828436447550947434441666965554860086437826385674542436434051436927761513476047644827257501500269320442057092700035570050968238135575526705196071254682235831908159544564582911043636343909491744140343057354583044598776395544129007244914352027434574095225942092225370375599885660118942962705385474539927286603590894414086154732942822458007961768922053808741669803768866721637426914728452749938274441679238048411579156378310092459880174165305763728779036093543805224304611319814410769772516846154952110097626460010812438240824522540135736941849596787043313527390156746995208116614149392465436241188724816385456253236045189581356319325775986898081244133003135430906471716093038417523991317568164900010478951336851975672553118899693227629215016913843387488499117879850422385639392685814322939026464511313217193277699033619151320472560436124866086466482555242680895379679498733903990633871622948829664467340128044317260198024917851278092341847574138945800690899193458843681709188070421122215589083101717660867078156950240110468448935155909116575453574792255224419843103671267175146193368326544696141661513709745678681143846297550190268752756974304812135063988070459219824227060212710052810323566523662013349980109640371074769811115301846668956982551174923990996058655872541379356081943050165195939783296412361052023995259763899957256792523009241807353304906018197834283135000266333723300984237428666491407219854302054810352600156887578205639106516720497490200187291413167691427547085729596864456454606116073174144904673897289850639822196001349469732711769989532354446340942867063338548807266814337362766789405369481100829764786056401078061012631538168977925853198566160725203783419487093837241667809797042409188772458733015586755821267606907388048161915301583728709967644225585644961318929051413344449298196517554811005726113372091469676284205001268666613108544614758179673720545248840833852410299963443083868400037605904068980310070301422845138384213859715602617952492809320639709894233870778715295544379592555803293196918410671753143674851108364547279061359381697326525605300319281644236035044350468323243180985715934688664374691912822598292805492606459028932854078936678786015075002689561095677660446631501532614941755261967707701510568511116633459625669359506526226609429328459491092178156265663077614119984730641429912725659945992752174658421932545901553926049825579483767243940080180452625077978860479061248705118918915233024746996678843062243417109614246187243323835737023402542741695940635866460674120334964074300544082530118771370587950984127833776280146375728613027100757252347363684949357136264523295725961324625255197997464978224670207687349111385451519518579825266894113080682364877327704700469294957000900896121490131346006229973703051675213945627644471906523886924153438770499028007644060705772983711303738289541856477788785714404580317913534698613759408253028703635873062959660543964077325011897707101857390671364242563246192461450308581033098492353924281114058622843727906515324778766980113048681590786092591076503825722024338541885356033799500959416169184235721315456779372523394737354762515688113305989334228195461417250115306136721412446400183625864428484205533401497059448418846476216993098837516541246064432875908254369693717978973700050036101070567121658757109059240381649465681951811371592804952117289508727896164149660874080472264751107583934177759341428696476262448964148004210597104244387555620216448088969563202048522955300297877883312334763030992565082918508586701934650676911567078837095992115407433898954198513764129135992979835709242008317749604190844784962526165231812816065567088169639354632348647259868293027393614470724069807928425560757019427255562025627159859189120458334447736953288900358438567267547430286817971281952866044274274612736112408757520974186582027444339736424423060124804217922113308454365201543617121169822378141648610612533285973848913727234945215671271006676635918326332599702844757095571394549909434733404295869846413458240899697710018835453543627163437692825747712410988475010778325347452313907669858637075933983074678575943786295502579601747847870570431941765268782519066742811157408723504010766170852985437676593203370913584015819211301397233060434079506603065412732220368614910453798420221568701508293352417488139132771196015782232651683220551018459557318779718160949094289607186041439813535187247708612533967921678737810054092407308921977865076008438452579429373242207310383082197679748193310417077738308700420911295933347707436590789555541909177753509495246143168090963091148187759673864839480188764999357259528268906291100676124046015216360495462242417099340834222088737559258277377909099662371692194846506744127341168939930432024759373286298021852430823803908576377732818629471204763688786523641371871327042612663038211926806820000066442843458220256419444308796802704747714978537671979779938238048334004931167162379111095694691248659520373830551477230275542577858130875549230756837276981004369980732370009979064935605989080172327262425934367663420321975600026283433291130007479176935306408945146833403440596567977465353471478730606763638478790614009045642903321999161562043646654363393422175012428794288818360152816847702218786668946360206221438582841375957188098075594993576595789403088014697669058418088420068719575949137349132614750113615498635097276846604929523451551649388978651328689251915910721556333807546195614166174577056694533868485312332260810320758622060876449170008869869953756322893600709376435324646165862976148634784659782960303846352170854052293558110581615802947661883861063736394744456350633968449023199365759822257393111154117611651248778435261567334158002824665024859862744488528771469377664601082725744524445726851816833664411489514513953033089716626024860482307779607507936255439140575620402527170861048967611814384877157789482355811886834973000301277461331882634638814925152490442406251432326136498589281508990176271982241791778891312452433158683759312993705871598954555435597991344086159444715420883257197413313013007393857192162543994780907482032519822302221190078831592396617458079503064107911149861895602603495809570805555939397229721916562838190712984711474116835774937928938262436965930298812762389766168183160581421342888436836117394421575558554117118314761946639002393818959004619594048573854913665832900872706552808671782167302615925929844043916383308706133170844127345064246261489733298468592661015783277579483501103520212470837081519565679443416582818540162497099850658271379838238974215639679988076628029575897124319638028466720304990887963378170387053036138407982948993177195909342159004243412295918149577572449682438462003432952950092234177476212220600056876367042819205438543370479570157217689377491722330469658494105670119623890896457742682873986752555537208989349259019108942949670716126869876076180543020957140920076000967163151540280934381231787283214220156729932116163294012305337276478554831948700939737922774775373690848386744307257105639629970736905705602085655106253818282718570074634592540999122099685484289525335124653769411648367145795708322764115543972232827257919774719206608470283207802534971545235851976707218858024810384180172744670751449464518423207169483120964173853066142609852351619776424733554907016061812504560046245286453166080586325141189172444559410139525225648455441464033836801400188965820919985353862691062005840920664871555896788218644087378023437923979349745590565737556173066106492361012290863931414109604003163759227369278091976349110497679432612509427166837124470331439829246478447076681722267070378714072084696057053528368310469213515357408004822983156001723557662060159668249748663953572063979251208334289739876873023797436984774629997435278858985166206401761411925080804309933631896678544969706220217765000018755050644887958281520746735986430916617193785919037461445598224501352132525792014874363292782294709239380979512776285411814481136957988235081201750329705720614675877125173486744192611518467028654614781580026329567047043143168559516106111012094559330275140106124518643833660879585520234117061422546672512593566073273120820511652699041186228382643194703621517644242290416810706914593741740948368199606398859939998174557874300872362928568732198423216880585479275351417692906557828512235531541372493488585530534313687191957257996760529736711345102438928980792890653195743260544811629290078997506428522103931859912410933191296447354534264896110731894483848002359153680765841612036791248228480566749538906970005118395482001942901450293151786958449232243577370490317804477437943445697529468315600359788329524061993742306598672008962509400974258399507086815622480302432609879600772703451259659723523012789625433684662120047933848743286790733533804499463430195590734537375711488080159252005563572910624705978752907130137328349566144741695498143263506609020172961628170893071676895786840433479853168435023466089654441782810427843295937326962886867877497829591641714245291004144154762516764544647136462304426825455329943347731120944739968055911258327292175585254320080479088997087341740596934466742095323195028528660096043190616976839959448191335332890217581254688393699567021546300444755955054516451515355886764569138357361046266015560197210587226322944725783252716970397824464485750585067986310082149026882700056826492631150073135555928331689498200874507004631744216387546155871981057790294311704850175117857524447411696182139036876986344242995958822494716679956749833438063474504683583317004287716812892997353902421411000159344394189354356737408789488868219349531269315173426690592404830299669157922517046139869139761852550174507395784703801611095362939210418326745994065480456617947453129618441498705991071345155200187243051374588757283169936699022123162205702416023444672473635257020126061215056925062820779504068734803200158801990887858082066097412450228733062971281641005483481660962254803692232048189887859900247865891817132394761743240215966849906243861454560251695953685941410161674014234582492621793629703969655258773046367225929223411844380148282022700992348653831500455319437719619282258054656488369761736204455098611047563082147252481303739258824650912499950775119261518567511858272748648080590677751973561075906325524345799099935640809350616808022620424897305910871740273324444242075018994561361383033561170556021627496889902634921602392646752293311176513057645520379844176458447371980704656433847426882277767546804900962083187069280608262548299544959576945214623191928001523479010635641854096134815527129996762808945943886670606054877049236889682330053722609419360381919649956759716432580604963899848736458755849844798973339711303472657906754848270191229067608245959020158824521292189527144248325069193707521698078065881728387890852547008257402605612424305506068665753831406744436760596267457575853940079354365796317396801386838176003534095341049044561956705343096846232308259442807726877884187036471501759970162644403049288047046149326113209687958944751997388706229912742909904678796217001382892248678924071477827433717753588374935936197268918229073177013513555837684826339202176485565716131367034874787214086199168207586836259184478128288553433548632409598163350985945172757921922354938988156665038225500182156513210838394355051969626380548092423820496164946104277230165776131485305603510650090692653219962266420140012796441953987154108697781250999750750015866717449912220418892259812039880150054828867714683618731718633261003470414223904326081671935605304658836306882544316458588326358249358431864481529324028295403755221853223039104225763784287339318229329740262261753355369185605131810430948947854794940974435107151079395247041732825426530127705825778491673828345161204851596561661168673108070195024137841386203098668501612713034876004385421775011224451330850259504558829308866262231828054634668687408064017520847553185007918862177801528061366826779232583721549560236204534635881915530247919449755826226377289478688844090559457684718534214739058465928017166010352792172103433194508589441550773727480159668425427443043734495777256255363449663600565859017419791697124429222275423495414814657237378485620618254608870295399157190763631234444877325192621957151817799984801279328244068155152064680145322779058348807725371534591949000387026660205809787042594391975619892523023103860272347863741893694333749152626520874256303192552281404870060962967999248416454208560959844889163138667244862227173815591659738144249461402377499925021865091461890366092312127985054014836804883121221781576844836003500921319612359926205560556443441563774811151217607529036594364761611261964148500479240865361036007043650504791091487666243064717711112562693543422308903404931341062880103794099336966617484516017329003382202710319705875095884161742773866396662416817086472178318364456260230272104652910846787582126427004118654435255456081061165589284584009009932929613176213285064364285913956785446188805291999809440367627491343090264331519979509947618941803877091540011977018439378055566418156610785151269413872659175450652194154498613937313540978041751457267475774655870136179563437256994917219212412825099231643128248210476194264668599427808076290214618064120165777432145856987382981105320748101711517595497519611320579887792907120808841331948026938408420753753241730694692567871299051682165970228287986061834908232717177655260909288693037318475366442596431634642852863061106879928871744168199313754544139090454024890570047067087138083003433615455741205792235596912995843261046787335068519627404541377876625078176496739107525137662675801518045177063624631073782082922939599012318455333601921570767141995364784028953060642565044210304312213765302236001850375315269324359832511843681475436711058779181576691065869819725942762990630279013140520162011112593111594174548052406376819985290246532059101343129502188351101878198655528201293690652447512792364389363253005724635084632558377041865212944857971238208133543944851087559894637610388645430370768329107840346811434268126004718858189618101579296031423550467847729529600640793719184438115193135762137777437719783228503790741527890015025280874681831351839921149257744789572006775757026660304001462681022544002500005193831551239967432499123566559120818863684527615649207273053605704137556300660242116055817582516167347049722647411337582967237032269526780965061903976390766268256431462282127928941568149403128606890825238269892953550203526991612463863615720171224867248103997431086573959155305558610688628816004352788909908851071392556873006769773325144535649657031313329129700549859293417478061323830147181221488525758942942352899636650723007784641187775357825138547520770189842448704995250332364758461781724242930823518829092881850835987113880164320834403351119578813984869103399777535698658380325086504525302993622270579646268979073404878677947697602979204384050110783688641015020926750346005850664320583267601243154975808655349628241587507524105227077948466211068210389874753436098786673847860661426399497402836067154930070587149285961294483954806827551754561195224740379343125210807679291739338825901401554992684245302188978023628840962631887458835849156454349203060375297062603764112960729292531365978982462089927626244811577445180365752533923799007075309479366799785172391530224470929928458107941369946994223371886835983907833433129565512723645874381455271435329818069510805870831401684253708563764124688928945676178370199819316381741541782832260183199338821832882786470680034324479440381576356180712470281821682903215109916968204997625740596322322538636371437278080625524213411687411650135250879375208909764825727841580345216236134926687033269947885617325892218792500503559384567350823417318176402010978006927282284541982298349658082938485187199217098121596481593873106803188096923167282123915480766313735980154674751344048747564459644893558889056279435689189938428498979864817982094428491134431083314838405778602439358036995030263810097060388262414665275644556635336571620337073916971193376622717744140717458328722731990986135458922122180710848492270692723102514596568512988812287471630425086341230838539069309402909222859879334188872955294540675371611041812950208302164551184867297047596683418818966014030149932136856550847883852456858468915338400601539525759622168730120170508716786365839004474813526636189718000106038794014635543270094845996417292623442154473637587057079340103835337489616869373183172970359338937903904249477984627709355304011793440385758279446853230588009212588847899477881139305529097569863425116524328256278244271616193639097772420890639265450325827754978638861684434918407835983683325120238132316449509845701364872052366799313150355214965862056265356140323631359983825059946928017997856348361704330193828349136233265900483400838194395394004762251406472786983805515350710888388928067988855908712456740337734883528471497551516224311518813882779188489950419805198312524489880381123999245167079134968300789530507659217828657009863918437891830372015037850429092473091811550089195521278418276149960636087009296553025176876313745377887891837522019875839612429591494492715782353234242347403811028704216258268279141766889688995998680992322730394581936702466847168739619595854661599244463796118189182814612130056777533601699379263191793041122995376069581266668308702121585257320475486975846942985218465831224631532840772908831930521115841365865207321058754134052227702677421039016767977467601303772525629305400393538747155611172459574213478553411951942874180665859310307447271189379436328933528970551413457132990657254635951118148027264985255970459268848753370337894008331723660847749503132979420092801028297338668621963087845662719807564530551350758855893522871042546934995521927739094875940238806813718705170073071406960029270013133929429481376823554606948720116275465584175644573420554092058046475968153573474364830530386820150992606343728351867717271602233854204126290177431236610433471625012807715542182097019518612506716546577391446691982925755093756492386219183545177224820164844637954201482947335170519592816326157736873326721387920975920316329656779959372552330610197032022575413873109567552463428962352340133209383793424040363297220506061079921381971229745518668456634727730657159238424334941659606750619460364637451152579992860466973082856762330024914914811982247743182344753518621163011427495595100009570850617524921790868038794605052237730205906859091609291853846050172620331429421915523888077084290353383767310943749719777532660700198212340793601137774057439572557075982517594885163581955237807234964727618789752194726474154963021720684312233479608769851057358896091038512256563660649537580465535940903482233329179782875573218153714635501227145353291308149169491514653346647208760646069304175374119392191105564470766457259220462686532703165312493973990239997388909650735190765865531282130832333271841281109096755567116564446545141332007774963171959750708042658081081672856091418556479933641713371179060128247489839563413102284662609467570116816202968339177380277722733011709856665699025383743170141885625690516044899059498086567178308514850402140929686252735930238851043641056388317228824365468106419925365225099164638229196130092684809601196470474066729642317942484248446845421802777947536991581419468244514878909891930339304702416928461186598360027574600806428378071046416476472847963723932830073946997219490535731410993587173079712636748522348477862247508506394401057145407814418626192200998929966385459240175759354374365303211685563194482291951658602095963918043537392518286774782709396780794892110984250944451181775536124091888415302036103849759884001303193232809201719857751796723713451179443990762214968338688716808184886683635100720023144037608705381776842013419664446536917056779108607304211551993432828371325017257856485312176558241532772872891671120689259544737041513407279298233161458235332956175839311864315738829158176173939488309379435666501696084137055714872613036121628969866087901611570166740030700787693436874452147997865130042727441219427045827286579577659175643940956375908020366814068332665209768811943234897399086688101502134881477812808781361817027041420841848067100971860499362481628611010242575049389084625666441137191662874139357255221793318991327466945648352028574971974471878771038681684807201952410006654951406821054556671195077882564128023696329362788132616580293873816196154773853809897203008105911265379610788931754361192333376910262586282949608842480409325274548427640079890488053308382221281322301481526910663195799501610835059323285047167029986797355398721286232965308277500884198597833514507436590172928774505626725151467400567444099190157237528463681577007689858956439308128226698179594685851853188880846177838330964011811077921704179325468552920312425959014248538642648489934975125693215848720724593427895896271302038638665063499699589652526261722548426683130088652930750310698146625711035362848797367733474995123910478692273773721572572186606041185791813312697425248030257584790862218676525254366701723807096914929144752526086788789011417823803619891769991963530595123134076274937054266437332307671315542839518994045299595976018241683460267946846470395997583985364885402564487315216561457130005208370024960317639594312556294846606619073961595578575539156850729508699036147477060569811824286517495481443005588785074941999717519219495508438825713335271971933584389865738928479797637944525342711794465947987211998791053087704826885680052484231880745744616237057555004190377209995202539952861506729260612803762511507224330597494352124603385117439747198302917014800393920388957932833770294620100488779444949597851303862526557640777903263730571298857484963914857612161374604322633737728274085724038510504241037201257362313948395677792855482473000844494503686596211118422619289821695834335391369216601718560725809998131191906781577498825194127520992209422677104782244422069443816985524283020543427004754738594460017723515846262200630789210699734653671318179808146036093198998515009195826060300163779055567077403909301789710689740489088113356497849557873052343636125874062218244566945737190624974264219451251157786758049495199961489915513707267877338269581523511585456745288960309861395662723410408040658300133035193664051748702527352148391560121077354407487098541800917439303239090895410306382081773159326575681124339230621837673525637729766875969678774017083530996654858424685106626657311206951009846578510594890458240157620976236641421171785264383183079208047434674333397107718059125738135882331397954021671247264490587238764935185538299442866439804965549757677214579769685288887394776680074924889964713718169114828931002135734989359643376907867320814749881694540731002416623046123725877936143957489706078064605456427037142469224912706997502482199280483334856137872965168665030293364789384900680508162961767290386341694002073029578658835070293894228449041706622238507861482339644265130597906850625987555744985752300115344069853291795971034527564429933870278698937048678552097519109176308656811187358595653724932500030440416675471784244428123553749781912993791009755706226945457340317148889834912628209673936692489646013810767222989886445742037328644800855200857878229028470827708739771344994231678289465625731102616476429228359217646142902920487394726590833305576065439514238388236664057773529339831979824356751159746024817276319362391502490319491938759369385186104977653111298328131819887822765590605425844558461738819859879555855244549893947027636817969165377227468198184946338829303550841214609183333614794216211496964365456230126533524364784593327264562085927063898474592052018960111250499107847343311451496457493508855539702659069105894486361558714135137679936562195243982390091284975788925307052017819333249836381398059962188595481045819043951855193287998343546388761733542641817939550359074085602782398488315495532427599182128078237013301569621185483433788394204042599010885240144439805308987194490631679925177208990015000497445803315343197362919640885014342286819775111389797806636905551349737419825428770131954282678295631654786668337468125005687102490379507073465985937926534165514588833529521966627767325302632940656566553282980759262560769087950708707303938506163769909062656393592208250874566103667821787018883693404107804842914974808074341440416765566455757753591529011955700641995338775163429197878544206069819728770631102454074614147208721856758804248506139273373504952065050846491355204452288484727729251055901400042509377225189195638592244110556485770708994745886469203617336159849579634925231626258446780697617075416454903817268962742986836975547178235268402236248644277889451836070541208064602932656679244109303292146451709808313101551156388077549783321713380487902673313065263731465015330191555540509915166660799807228887686026834044907334666166348483899519752885731669624644696024462847310376239093312391687530856027432376992968952883102907725597218282992875882154667953687480155584795446052732651605054082444417799254066658260470830714932083756358311684247970591595586513795087670745203013971737453978472872449231882566312239488074375547837278818783513239276206160771557220776847367371995263491482019227445977945506617643315300467664045268948201118589487402809208424176083457942734581590480993841039419490534955501259887714353638300570515535628467075631971595995638851326026825590929921145079637391000048846942936220798465206718692999401929534255132393829642114073298299693788685223289322493050100597078120942291375976485630076607816411510311408072449365413622005862224151553385228590864202633986251225915034314469051286597375056684328823043448391441658757445387605483923381081505562411029778190121210867350827874080362371048982019343324164076735660230629550220172852382073196842137574353886132779106646159969457720274593117184028851198315985812800356067386896263505983969574160452146663634473554982357881203281860131652422712120482295888206298311114019207426372563843415073843532150807813350993770139467808379614765818635824968726521196386309270192149009490483079235839871333362535871748108771325091696062416670304163132562441288244934317104542013681407845553607181357060249414530786783897005079559484799102408709217984210522260945502276887321993694887943673053218303570706190005714003244500880026559391508263026281386043777769025331251495097404192429940516301699067078334604178994092464343046541173748667331440404546482412862520043554388216185808785137900272217831764337385205287196102267810859719901686011541934893503223235084770792548689292222803991825527711422209502376806248376451699655463773321499641752290566317582224761234846016440529596721706777307356286319237833881639207664472771880081063117433116528984333702528251214029843488937906540722428018511045154100994392500224760446281351180980526939918835567362178900956078319331218918894361754536057506116247760291002631170005452953149426767819271130722314906764591501836849714967547552709916646485157771836539717708027478500032261958977945378246447730561871316836887234902765893882972103208311404475035590668687314747310551792280528226080707834632745570299925369655686443230802458743112299699355409530575432526089491552465610799538031848159167812265173038077430462512351890231582930760557082526545173051666750512608693740443445009102081973105982162856777697954150717788161684343797127996003646916668448887881687791785220532762712486579327282652813442944359011118351591052676216895835285613713610759569283308440364552206334154084863454504279422414155039865044346704789414603967247517312835367726455086358383283967467149902434871684153841302355448036839590051711737664640475330642818417743718395616449472802227935553040179066028111779706227265563787542459727557675054375243099944021080607433007830287554259960052224139588499961434664496274143198268316204669558094668983725449766929530795905086991274574741114908856243413096090963021901112516833476126072510436607168499337519645783601828991399753681378746383596291573120398707691753902618015624149053662332481187133434724817331377418049343812644294156195005844149268340663780112802630007179639124062507668137707032865524701271727352959012564291935034783355421076870139600113531125156364769989004660231974205082654709286548632483413339688013987746825592743694022000018933809094147823444856140657814053349154192693536843635127195893340694374232662545107971283811316560898644040619282610597842225929752899341324178604860954228560862931692485379466456645390322510186198426279782418736355064215942162856366465427066655166499696701248232076403731467288590981433995228585164749478482111643392148007419643479591503153166607776447989265662304794469750298344249922014138374849821581354647797863848514807991103362439341266996131350227120313287965595101277726766786658866041673817042640185149959132764107504797315361875693776405726331580186939134945540717121772012652577683637134568289273320190098999495911530897244871492966629189783219376936808591916870005390675871604576792303414414013456913716247453938334431774917801515903886540021932484160856205536405093431779418261003980960060273476751081861539120728369030640582618322138805770754017790906103461222326724850117891793308116225415771815085790758760667558858172142637694857660099523689019611716523402641011297921409428298400110716314266162531017990597459164686886929577103518585241527850246466326521769242252641888273360309350358943346525825316817660414023109229132669032683235128329773875097872488209797458786501789126934661845555735118108503255131892409641935314975752734916952546194512047347514972763824820441892576739503544454067293981406476248657399213481301698121608585002087897996783079342208916755257604539704415162638849658686883505888419500387690216254348436999974763476421894093367328656482886654738017371257160418723940253540626582951828694392549637708321598638499622137478535523255398553304721098152558265186534472686063229794955690827471624941068675423517928248560991321198084251417166702655337396998002409493738441681746461596473758931268646280894135744818272065509904607386678653277085407127274655987861486621501762462436963898406519445550671019040902662239859148252103599092656700981592361558134946180717892910063971952168035898986763207119298519649902829647099773989741347937744190977460655721730233883085309056550855878611892835819334174835705819204836783631624000535874957356540092201614819919733451333544014587824952917795578509952242366122385715116325684067573076499004622728909855361261710746580218596178547182187482479472293173113028436361184685235749691951671151383713103646803740472995542873842902806226894636549802869427201301005097403882147611817267293709364494988117352562607279263946595852735346930517469073355673604987496814614465593578556937066584977961475718072033862942190664500408950752542402975625122418219212462783315110828100965287618051096307585289063728068130697666353134222337528811564710163734363924476079650183991321402640579890083318645619272803366420994098018348089546223864963020921916589544438180502696287558756774138154473604417663514011686196986374824224047622903435409401102245352640041447449136551855125515994060543123875980192576773114770276426465982689491502538242284242637254835785952895612407248003630075479091117521899455884935755414122587688162748527945726581608058570615393238149037025002005859252211043152453161238735360413899781195260554926642550892013651358099780375076696289630254677035245574295810197043309662164894584161630455472132907308233606791959060433041435371743269997269188161968870956631569785850389884647398281973944940199944694877304019094089297317171065263830806171688580589448375801623679453008261332280865295567265808277621044110162427841087617493516923542299745722263373065617900746281426758116556365359699419699587552420856927382269675941728780811200080457099916457657283571358679299755380477360608255874924602997601103152303403363078971400360444899964940184079039413204056138932387105677967311216810926256180844856590411956959694235292130294437990235669931777044193284130958581634994269926497937661556564913410806472871152398074878427111367118462380046513699787927829757525663009460903159260349445057360413429977098074617823270787758120562507877277055618952865028792349528379337700171672080246321594252771673002803261176911119092447943310729399778648943823033162976442728454288694000879560533949164372153900099099408375236531552489809655971282833647688793418758715584196650726382578186965691687411481470749400044042963058389905387275291993119801954556043976734407688732521652483862375371380713643725490209648529836817832621398819423912173108544318032963680587160748034969480745811711357175347828985987884211161178013731625517583339247057614016863100237044167120625150448211438325103623967898146893423107099522625021844476740620034026034522385375194945722363530900976926511199826397696898669684494988536097501853040987464310651365182115650242659049138800273948603994235851443881231551858760223450834292042222688483264712304493557848289623795989837724092844189497270622701233013577808094137929862880984285526378895682235482815619887882884511230405687232416225354731090895641559772385765960822289750129864486168221957186379189263484228071362200733540500162237578587945563508293181095633391624937634654393821600274688174752847839250011376759596043371236202763383526344195194191654876344575331072382322514387982898610252470816110018613307091795475219785843938863121746150913103647331360568305757165234504269792513320779982042257186696398933802172910192666304493325125062989774627807846256286324534594117346877644115859768520992449373833249850758037226104929801714964825777992921932191746068257001819211684368407960508706425734350617821079311199241940080848369473668607582245356818645634522314793277373255029182701195855323051029156526057747328978846438134770818554398891519680926745298945608385923136865094660592992435516093594053711524717939790600863849366595917883562424124044080600827382054159898246960321415949294558336392795976907001012007379586033707879080198703866596887792242392360040750511367334922065997489775184555613006007954137176656703201579817443225819704853580020979148580628626452039836099681618127702296680804106563634040844628401461432265435453721903375758149501383084379517416633512496689266174408167337207928899858640133011391043165837940277850368775078657913353028556687360763330378678241803734000796666807763098595318428019322453805581098743292404862858562608308644777975571309798999374026817448983829277979395727392120523557536566759395186476508843155355609340238357238519543719102951235245572792208961793351817151229189190296013803461628237825007455851633540000504393720094357361827173092289939070768429443235722460203973724889803673488405819339662834737302624552077033176714003218846812841237745269939838528984828117924492347375781957849468965328838521420292549227903412451474407767794938398702012602929675832091268889598285267137164895478801028014105581823305266324774311401312045051146119356278596499790996163433543771338512206367132589985841822855151137484960778284842985822315578106415341663288834395068211750051813012977251842223299810994015279631616444003385619421412506458339992496446029645918830562978417791052764061469605639476305626700898943020473782376324932986725756080834305135401585418603274554096233707959922855276378356347003886477667230757492533036968060201269710264107574709241971458791429821607376015425268307241021744029739505587943260313325517107439742376379538130633288227063576592991824149395804027964735102537125664710793904573748624431340348774462652511061024961345629917054057125122654226967273736280502251609380476388916774550882122586314365181627540075667780054866863279525613989773876011107091249958301266973784179336173750502901014791187620403793468739003745982933871126148011107345770517556373225925424444199843138981141024899639757391115017040341304005497591529771381262562212120829698992670591575743284722342192176019211161333341023063319228815073717951968791113178479604079499116030695593034896900417380649033972699632640765082553405381867027931358343764053069994886613772990230746979540595538455166643726463040016930260191029238696221716340166883924176158242716445049777063615010668593970408126886096468981931018752305256814217344798029296219608682414519249615444459415585990964984024460798625041832308895927613579735240142351944862602430353363626945409615801116644061989918273561664225042129770482791944590886209641936700258210903386779878733069604853498513053583626186157884236471852690254853486847801254585331317919505667010196457031906251004595555193436100966719256377639839404102529960819897488417125662885789241254024192924451371195489408550535498192983512430821362601652632809976442865527133065517146571236271759640196601995469124461501538796492239112091345702912888255290337333946778742952052284083441793148289661969014130452661393027660439745950616462390294530277147595829471199629373572330351447040303475988631356575376143836280431473084524424789438260090438784235986345493042722070622674835854210423549242410792074149897910341268900214386068176086479734267960831338550316973816249278593699918166394983451673699582359032522567617983772979113497815220439321090480149966895730565908515257362614583486465695536001249112544163327638125908061285645046296333341539706389182026002118071107517389616499946111189923454690275838452373708756876556027258223946017249104826840420742056962668272077287691264279226710655150568018699947840516502505770168941828448313556926962187277916211091719054592348262843597172056257891213569405228955269058717487908167194009330578740618425552450475057502434851099885784536207435273031786644457128714799856913277657584646712388084235602396730023650355529559074267464727636681704590784624603961637444665311582375160870009493600695351907910364975907657891190096008204084147330054695675755160757983594141471847708128182392922656227546956652428553753115211538983992452941910530961175124641030229159083339735393427699927817657165058538459115399411935589940491093511323957120813157911355730560884468602263251566476662284756639247003320782479181904728080081428243683960953625627625702942255820187534544541937373338661474733087682514010142445021810367828860025926811101301205059883337496926127408611244176331302104064332798923949048880435397587643718424162146653612522683185864918849745414522982978100301487723083686011009968209081293784014865797102919815146096437751269252522713391253561334607692934301270751020770288554669975421542734887133900474919908993275397080505190758482634477117912876384261330964340279457366727217881986167281166110230411595337501143616176564673170414929279542180851356102585799821510635754894018863826629054301618292474776691934859404061066675747311991959959770985828335568166491875436220523952640067270750015461252631253506577406138233222439803889465718136147787004688756128852910802460079899283769978622406481698054812607900905161474040970166093812941713820964180883751955615081436003306602081306270875242663788555218863392778275773821360398183493604889657889211895844781231122456183898796489802043061529287061345552819018809835024062953502934325473532299655030093314403263964495193597881289630372031648117217496886445800192534754310736429139260298528041079511910097401164453492306813144359690382799679199724693937024548359913633215801413729557029970244557870875185432052580730345030141162476093751872312499800446408056910278770576915893320408390623517683375471554053148951549634838126146387199860995378245394324451255810750546564546552686871670669210505161752096372635453113740765750985219591686962045613648553162212582525746024826479197034744841663527571059007569116595456523281944024222455528693671199474638259308067942809019881093762005960920916114879877072447827966875907771543285118081543470759840778904060126743430689640199657032687719762561048168678750930227363561618922665929296858733264269054229793437446596899355092770502535862630739290741698314448167489622671021088183669924651783561824078946294056969368898909358264111611091813818635358957489481710375168954448408896335479241757513805751197196084087760607537887875009205720860949263427337986359722780884726126126967199090013798143713984933644185149133093075176548927439323451965182452339310150389222193060895847275602162106513765901126114683190213142381012250626793239680178493742834399811480494075738609283679477272402633177295961742951848502677602840100741269067419760874079665505085668888987130360809192090272567437182603999620760017837389548911267523009397793717733577092429589655286275138961423681138411767341402069046403571718132434307823301602807504063779708825354944866594589303863990409935583559932133726097246914891153952517571023340650199197460387617593738613619586369682252368165536637626879384063680607441314826809205370276896073401618112538107400076394417855191948322698907208374145479538575754994992541614809125949748842112778895655746726248263346062462357880650655865915739376020774871508616133995406537182406084580567774194279274105475320231452013086359681960441874887386313381266221303879438944402843665321469107786470117568461903352464342056164960998824740377917907645526837036341706381627114968315104706829718978929513536899891749386714702793959635126503830601379698406994253374389985642010038138252027402929336254702733492832889338590225484405865324648950729115307243965394169534909818786118514688923244677835046306802017079499158654041833225138236963334595221840513849306451438466902102477498933322960781257869212226849919022351396029141998549157112262565879714185381998995227120917527349561437189709007522943632485892340944960167451069450176203224524399597280680960440588146788819359303043792570290117124549749494132838384240239926510628002183103755339090712056749788587267003933593758816239593086918169150743210306361388551151500354309518097749241299708732386421521115553059611266724498806569897371555902738850488014612638911489023149478753001269457998869946286840889236795999742032869988704486547264103062375216594530382992249508017750778517083903936046180357893768626206192155547237228836770989106219474286405878498457467379358769589026283384926532895089900895834441355960367853250851706772216169328870155564379392671844681429366575579169472699219285977003996423067110255931430336971040733240117563092614802941846978499110445392894152297333402659671640851620389744406628781835498590493773224949293184772545600992971117645671601157983094442554952512291834444698815934658123496705651185443854630735646602672926231784001630029908765663613333050665873597898708642404558437485301340843843035427629639763948446656406896447522365878826989040594332730327321558957326238982707601262327472122874594885112385706683887482785930445414389251267729652140002630930949840451403124793756190106712159084599609467260428675287724945336930183304803212654930057762765136888504840516346533870809903198908650829957419991287411335084692917983296880981789530960474255084196781827185217305079503210179660571051356994132469900175938824026570881255032277925222947169281604495295447867510853335952905282374085472868498381774869245150461136176809355469185316163424180049783077972287464845161723657540351881498825442814416375712863469998114438167041839631743635638531273729856685503452964675801098731714749215023082624953270094260292508891721810343100410860473643082394955119478376693077404760771711437042977756767920987839526811353746873492266739593586235548703454523669436500263456212384260861858333058100112043088418748756983623031679660737966561342116521687866142617836675256509007030122222749541616061640603517826485305076678615839123620284286676857759131654226962000321965743039394476532853775409857719464654040554683205125110479551038890858772687658280388304394766242200115680035650816878468035114775606008818958416705757983278688250570255470479114974392514616958536137025799039685368121514252278572356307845867109884733581576003807027907283324230071927774559690942117009631447865885671130602570780230808741961083257714027860115160704520946489414417872537368886918772329680122581217356988354225924570721854906362770161143166514883119849103689181821492795870008056446855194029585651801674805780005677927630151785554021962116821652359995646988130137809028939350021637236030791227429394076289877664073979005578644120258175465178314489627060963821768707767894270636635409502144436456047653320538906419708192889019296100286846025904762641134388590869110934558119093845431569491803286393727019717955388373430056125711888419939254733459538756432403677927606208058210889087714263480135777123020367636056432238413762651912326338031293350582876631415299397203224206469300715212465713908959500450396022929730737060129568083173023400098206015927647936799438711856752810433238158356029989524009752163484520045712346601142565772980201944630749133403504058596981190407644012607509906470048464560744200996505636981511848499561212124913906383591938799198419950372651265041994741239161939945142597701584542053864378807061990654629432026297745139296220845183396953284768031775054671129671458473623440807196490795321793627627219611080414293267734787156356414822092216443320724596344010778923823340086595380806455454850521080092430026780172092782956614190697881727888103367628192337949494418367382849105587569066926165111227546469998131892416031817777924460712941277506096996733981446276283085206542799780149311527684170780576175134664643895433028569347509492869026390464812820426425811492015890002824130688670818832818264401785672251237090436327118908716156610117388898451710537706474063773975764209559667936490747672176434714109591424989051174469349585191097298066266735737038845667325114032452052113403828197402736018756859574976680639110090065734353474111302053629500285840964755034502031965872272495813746087247614853118279861941078719388833535122368675731322358727827448427214358920942294812123366083497474754953346820149567855426242555302262580438494557552694876579348479458084821089882886464223870430210817998465334183736274145213125057477846133609257565085756412347517718745238550773709177883528471650627781035027372176120485663818919443588082298040547056619229438341643107000863193982236863245534193830481489765742403002944731104768744396050064716843552424449336745621278078001447104110394647469102674641479254131023829228281156689670039202831081397716664668435623850289471520938960837252564252372829178856575424241917268570828889264444281769828576759250103286414488233823173739307753034079845440219907878159636649367995116921620067835399031008955243826533487407685218220283261154605962771405462784077977911694567315150352637709367998956178274746969366461043493721833739936520665548774274286600668708419541852722896368230414983375735201553867183489358377420951660139311385413083964735080574245153968667002068158118533903667291677647874439710759736526747838289001874616879508825040458031420224609763825366097961436393717970395170737109934040782371696472656789425034696419290246705988877460836757405743072935716405025267327574325246114817312710318517073984245396668815671971950222153454013128671992827451494887742388648640957590320170070131486489540098331154453547578728194861756195089528964032274853406297730875846500476790063508653174056098477126231682037178343382620231705730154578084901410610354513243804980141119464483038292169254645625388514848281283828294304399041113471817476643064419021793071934296659680126998403892064374937983088335312098761236657272839886195897554670482268966493576348282957144990354491309232363563599305778420354911964015544674236105070088574279544311149066120427295662769741525723013541869814943384743094961539274825533666830451072139265207606538001331105023173547351537331319527343490313342967961109557834637689660204136667822630349854858849744616488710395505186553497477972281479948603698318870219665439153897484757063849518262945935056709087207113984275627702813997504066729311372678991726355247285199463199723225668695838070185931847239525117566882122277315813330316486938090757275970159056694223790807243229672545946056482745784061249120399830719652173699786014959436185373964503761121639943037069300269322023064402987689825720475530785640125491599795987877934177680690081841797333834057636736520682014175169258378245718403517598073053542271069962536469360357717566029715375972268101433758203143649056030055799987134980779210756979248648395302580828024341668711512281953935300505079914296403658324394475823688913248924301751757198403935095452475027695230262530063151877338844223312347778924777729019797904671493787521077618479425678704213981455843453407932967414918416013172286857381772340919459032773238177145491515862995524161832739918375057031075751259635340180231373958263423943913592279786835757774166892605957362124726747969125358121689357318308273978509782033881901543324654450851299373281244796608554956881304655846366238491766994186044741244733645622730616871874662377519361102756279339573093558168383334443178597876885460103709993155870847755177941614178827046047203616587473873608821516752820269157607758615553813907871187924365943283680294425722781116304701915854649127748549206311108865364566652636460999264340122263361717040025360864371571448432845447404985439198557428841855289743140011599008462404019101457181148279198643620591029036767615117595843136789740181587109227198508632375649237900322165950722605199320915366472797019861916772422431224960382214098329267487619151961473969564044213190121053934813287902973916930655422812172967948145208835357463244866667910840558840704183438727940108739931020739163427952984798834438382829888188712670366446459607598509726683959360534148808347401751504705587750817003770270161559708908656792747206277979071395845643453606893672889576790387430991393847441016273617900433277552131057990189688655028903425900511216864031464716149036410199921336706070848225965520339874628130661590194778950541328793069349855725796029372410041682949432839208228242743744433362710317558578157266947112272916157416150469116126760238277693574368602178612962267404623659090117374518622133105896501919969062337635839465754048168122180241335175438571144110451760670826154035415902979632722697835145047645710868652275843414573547712967871156468648532597958572702751494489923452113100162661634607518759634114319467819952279852423873888384050034156078856131998865646327812309707977836050721085753515104734573913322390454632507925306571075208900402243175978858811244871871719635292307574403285867182384520905582186749296173860433467470916227714612510923874854795343361741481417041318624105192210573231279632524882727597709625350029968553402068454954447231790525569388104591484597601572658216596738116597221315574798698163102523326084610139181056714400631171639399720107781829215420085883824852383095767248891327964085427751916405110347399809654200039155282254619577469715248966750575299673817838355086410491777980359344271157597173592318024795473969580293553358931781178334062864825171329836375020864710973158535601444577031445017647260846530784678021638225193720845241282023204567738721907365545457252093666784411967711767619313087568297791986996636464444327514368759489982101225953019700433377615617401566202929462080118803584387113274175645342451794413959639765110816630011878929989130484174964421562152154124870318114321258932561327623227307797942966472976783739130693246014413244066006928256084971938589115359349528828822970297068027582257415053662115290518782512772451710208304977310950352850494836253421082615636416163922770912504197993309821751920829725010833364574261989888181942161819326901561017612448405222040045346652755133818853875277407245311299000808269745201775230932370496648503111344355312518308004468755457508569304273008563624610664611474536052353629572245054588752282186530877370330250092372742157091659903507423213269668951407039494288804697243402133213984390301989124838127966836123680549341426774791518359559539176819999336786150074986717047473207302851350793255554994897169307588921182606449735394996164807711181949891713218910583107874831572442114725063884223220000229335954009408442453890504468116545511689243997572988834065508103123143252990759034497293976704138516195162338273199011632601792486358995881791488522275488809167701169120440478495228638384838402964126163488546138497931518788150420884293198439257651171876003064938300277694523872447914873011208811106030261708048395897839617212186360324303752603269722999679418257432633147951819489519904081406558007317870841785274560325011416575564689059743412921045552174755209118096553230656370386756318199586639763784749813115701045485727613368585793514473723561750372528869609527170424891648077319445390864061288259606335421085314233267918090606797408262888377263908019364597567166705153279558542529107181610976561216095953051765544156360177580988504733837191458988381177489783826433036319440994905202842542351177085685959062090584535406311243983784353534371779376516629806901388782983634818483280942567608480443999622630070287118446789645228492044891024231453881554939047179091036592296467829730275762976137693761004208163009640094912559057093290315884522843676479072301776270201253913270321298180904501347180883157203453426660505118779122660770377294573207540027659323175014542497243648835188556814157227651701547092233007097588646988117770639439476295761746459103480306139029469857291199127917117891867761200747956667665442240977072829781429319289656367539224656288357789377852292229809420447254949001991655432568089742205089433658161576724489243701847671384395536283588301848421577849206684378294321280692097535884776949598481953889531741084164501120567906423187922514151162452570714142999323209081686934735009814491591185285144499374514942129504251476737485430735079652238035612992668173732470769955027375158903456518766959121829660547807809539215381224783324806899135259962340498148069698550812139927061407219715769235443714639488776970886056084196621323984933973778072938601831931954820707396456151995901085984003206811753108206142839672067902493718494690626409472189400635055047047587802181095236249503199688629272249951287341690719375989298283308109782220459487555215629943496644475331482554151737501461556604419790642578299392542532721252638807768034562780449281576878718339006767095794248558727845560143322790958752701734011734425062346171984413970841430330356357716621512531224621883210808985020031562194227783110549092831515532461719590525285202568349818241648893763822063051313684172596008883341634629682256072974955159407498688865868418070748098816834459104663226896105720226950586893291498732945682028847104934801243624167163649638702206995795038706057480326394964083556377432523908217426510521025926278010596338184575839032132938127131109863854655250635953404716270972611820516959633734035674651072408382345129857091317783536206911343238406990662235039562089432798055754846225494452770929392413413467671916921780873442567220252429673115993185844771280820433646792412372195846143990258478067767118104965333035508913513579544104094384648390901778728837732645395870538007006684174372837538129895837762343489166638841398261912713124900692445075700800056351203889621322642951533945073413228778045309494509444471062835415771488856221096133680107092886148072549132501436534557111259643545970374948996382875019258725184518858893667657194562470437908992741141166779348507197076719733726826014502969862431463814414952331053190457722300132966984120440130286160046266289616819939461016878236900570475085910530984844092601711326516289649792133801906223588753035331787348430352207092546589431267974985313328961831204284560733202409136476849189511410598810005748786196135689176660010187270796336291046603860600004709316611049835967526533279694023185211721988832373977027836339896000609068478466276903460895547512952907102151666941675150664570428246134391889720090701595384427733906274411952315071023719009175033954803000028280615367069452188756648214770165906459229758617918113768424599824448383689789444549256552811177658110371106909896051333637249269946339821510691818317201609473890895550289086481448102583174244113693052519765786654388732471292754967395245254232600409017152330989923509533990348200793658930893206553909633048212608166342045746111731971809490852794217303440333496837131727127254764508337399655471802392928349857973123564174065290952172492733323588407495150954009578804975937842460742766765436069305335424070893722290964162536350133799164308428966217952340038112705479276540719955513695925306844048019416957331171087516875964102374113977253359394969356284498367406363315635945302482933050299361759594202819625383254998879612753984733444467914599693390831470778080592613102295467147403450314931893848965582367595410138006470898066091427529291320289200693287592571892629033243546975571187096507803104330701345577872192105432982902045772254057544427477566718106196533410392425989451337503920308143018501807227283378442936450020520246199246606469192826587121016172563445430508814787782115479133594918062799074975759809388782345956063611941686380971374093531070072914464564741309562087301302233189711297331989265325112406671681655520999044987980148930291296247518631746396229013683799697672461126510753707882392987070976576660851251460455270317121290101228315289848471647435055105680909572611877158213109105587392725599444260242143546391970152873951954318262353975489752370727049969000401827782819771039932490972701726590057536995963953968349719733009672674796488800388057280975388685759106868117250078923448856657321710818141726585031715709063332864750431452655641286842773442439874119047818119952136320162413488716245304660121506594529373352320554346584738774511743135199880621401480609013378061909718400623359972274056741745588764014680168878114218832913090481783730422719291232870544126367700687424912855081451257528221306310234597756135784565624416255697568532493044554860575093956059039350893637626412071385478637635108659200870739880452184142721437412673343732123080127334107768019720578572150742991385830475819421556860086951216664865879377949149670791710424022297458865501391955567913744077236422467881025383325037821247599777277257233205759997270738823623795194113520775718297241036778774751418226111709460250654014057176979455068690532729354977490484178476810137743415146857214114206247188106307567055579823037080377320828615925430642266293386168794740173251478202382988717922512128147680188539048084666155820158056268256970547436778501224180237196071908107587790523655897022888227926040642283673415115604983205781212646997840648996429868312480847575563549113092385019854677591701858693501760841797829244255763056548479894196487426535374545507818685633694714529205896835665386818691570920097159225359710193115917418848609002397729233003213108230422768333718605255314224245985099698436522223459771089519764461709496153386150196800345342342160706903249764786680169508085948985186054429320214364347761111945769049219089901280292203671918543007641741317744647134860098835601456732014311992460054380247542182860510045236993256809205829514528990496324439367945253786242729169523216711396576860915525767164937706711839036084888615254890705757274404198205890333754614439444101033752403482891187813403443208290030489880388044827742717957837058552672145259809425594321179542931033740146676003186266301089840547574967196119600211158000935064880475185630108096350556560705305278174546163605432345217210837649231438121530533763832112543271057619037297303175335244852406442692556991481704600435739527191413731622834960455217056178854056784168315568623540357519344951689442663630135819051806795016112617129293264438552430449804348290602098366659417074782840211924885923287256966133535783174420024257941902055031016997418731550000610758864425926931383900355139489434922633333772761816944836400184137700270236358096875658221532990881102322295992160628572964549222215937268967978441883697156180973934648589072018697323104592119077033700102618509939332483875698382311016006637525645907613947241333809010561300210969805140479808871773650808964569977624325757019860037337227206746338259546530795179005287056337174401670512566503073859823454327952071055538595873124536038395486877390973352724284025762837091441465732615093308437082668340433079853815204364710240045639030390650885174465722276077621205227705357959213410139574868319973114445859112137912438682695911076481797965594670707947957280731293542290418118570908928659446915150550690788796900963818211691731212723566193444645380213976898208967094774335494737814374389172739971645163118473204818067397581565181606129381935018455155960352497485297155973087501577718464697911773375272066773688665225079773725285926063484691600740701906651416666096578021591824494244930807344617086015204760302091771273653134287225164776451514396349430355241679390623303300581669227335093719316075931419986722486172206245367481585458029313387711798321833473728309163422841366737430069871656351623103100721140669918903720541298331161055715351593461234307007457019383897323432108842634364710429138949526978377240065230800089447336013345070798062377404934922376030266161445883070482315287686318067530732715819395247337844649384539541446096318448693740628454937575358244101214492493808635942904310893886333176383591957813420007288056232056285846102138716233596907672673770648444980087361326028383993052328531934956738246208749440571954760739270815073854444533646962861298698734729188779885079663948372380625946409855885043679444129750292342600862341874991118968866854388681312803470072931907501260977524471641717426745733948001709296022054088610963534479588053892284899025542330680773158955880910889368630014554534873870411236413578555215851244699604616610247751143144232667817989237069197690920885052347435114591064691644819375935478220364536671718096070005681674579618671729085435390527165398336473408799483129649188917277366607648406544330051299722719346722539449722631652304760304893183109035113032641991474751536697644263775275481191099311354341012333452991941325595982338013183409969310160989044722363190881043354014153226455906749939777828206301355511000231840765485397191410731567266701504920853681304518743857554184483729004109618478514022308825116522447834596439086593596146122602407810383510541252749071378770463891040554961904083967547525519972333787843618006659396453659591285692244177550780421635800284170804271654089864753743964910044691582291032211922482867807671182906080061519003012577528025032181450613335221755229858238171824614777907501951663460862824701381400543802992597783274029105295799099449930658940785192260014361645567407320618152734513140914706296148433962150493875865119821929160627743973680749141730417498625874525760380546729197902698085682570115012963655851984097593739451390404263788923838060044270283023357567136048471245908577316680921599865079098797544092470450605791727514121860665474300782285760161575801717608268140089421215976579859502111107815019146499274387426226486080873149213677774801510764988616110176063132023884047520385494511351863750777686746096283944040736962918384219962362842233238336709776939745825339287687072235933595925460241346373256227582134770726297761350567157693994637581040323888270499491660907482609682903326022439650330162924480167151018047799233976235270136310653103237471272993212099448610746295008136516974605074654155441069572776057419011122970499686923407289704155280995710158708583861147637521943586169678572163510715231333692870266228551600868554501807012167005035134717410909532151682627984551122431215954640388846031501243015173628766260486176775850612010939905877903701351220310161049908757601037821953620615948515809459601601051688381507195267858615763242970641331688950376053756495240983382557408223347794918510804241116732749911176131640467801094627500339101583370521882296306500561706833585043123742097744213131826449069232546377422508970007585690430004945357931967476128609914485642561019119521910851270809818987705229965467846222395254230879689198070905121238785725259688359968689823936256656752657391442093275556717334199217503895197761166791264089314656383889185399477299507803099550754057587765009240077323911215968072786307807294783403699873739052614574088504280866123003391095311097991935743004970111767238062811898487304682071345992070554782714189805697384571787419912995803196873050631310495765576475442386246375830907130881132317331178655215026228111102994263856667544691949878006100560136076413422095316640155116904491604790202143192399090809030126856186664305150952446560378822591611684603936833622774117407938241395008037623809504455266553475506394633136577151488622517589646093282689516266841340524762481876259696674269440220152227938306656970546240397343453511323338739213657969622134243010270509203759940406697564908662115197834148414147065525812189958759915675400239619765874600071965208948532360702513477731525440810793498601274489793221871164183587615266828359763834204298163993620448395318359283587675427268296420393456153895770589362773931800380115709457096315296632098854555108682439530930052425239258369627461349001482799994629903602425034618332552346453987257539706578049471360646088628668520990441994193567826068659761287187103109304729038553946228717825720321084205926118051621450825910747811901010785075984992799411271037684088429939411651395111243949451558417995320002623145724728761213870183295577719711750707812560993621711783793574994355013695704376314471216078116430962543981637079735950467659415516675590841264270295905307728959436366726688535946461136238458098425514858335035812675698354527316191238157481294987297903935205805655116212358901802315021143552624383138215590930603444522908409580812188054564496487620129805820899854188147254619394008905408766636526163368674728988435148677866772438072327898729797474200163586184854736926027899778871774309589398055893085830199284454478565810452400219463965118423979500291881150655708940466961646708678177796565704761561246497645446481309295344520474018026381939645845180900664420186871249852074570202745257941349167124177625343292341776563569936446208711134321721464799781276040375241987872776428530812119989089167590536342484962744445053823809146243106152617804393264568535033602508954366557711613582577277221622837255509897017285171041264952931666708309893563539318540382240055877961483638269119749005359569629573675906379824595386398954427567315644841657040679974913039051225140057464342639191566895753595146090918380050019066218731695334781767019657828578331424563246680053399442159481932708387794668664672742764844523994392616781963032192380643860677350704856108301272368091071723071013226844942160396666770837491989755050094937532183980942583734905134974702345495090462430411192840787105037960048234219483322904185856551916245384749178629999039087784268137075641635050802469282040165917165996937080182021032906943736943023903195043140713461084728504926503362859733826509875809837165748352785515140371751029906662670362311373398188544731573895323686866017892106869328877661126068549300287444206800976202272615158006941287794636876308686337105989333377497052959967516532685866704052610099051557647447540732095454954579099647829964274182040464873751024216190751895770939985232654332707822309175630389958304477901717115065775949932588012270544613171504066130849843458676923175984016709811420817401153967268271535919421697008909985733171977763712993023085641509203209507831068322191408409173726287297339708882121679744577927436131542094248329868109247297012403956376991216608042423023865006144583406205911861703019914449581645598898274373556817897607052675314726034130738759467863246228391301384359107971727814402459245210775022514081409863614046480408722173439919528810591865429093777544562656275717434227512077437743313057387861801311757265344432983873420222921013138240901640662946335869189766325766794018484896827627275945167252681357115439927304980236607273746511625993800660382295512112669237649537056427383948134183813377852314112792338967110775672103244515076511276712496884441007813221823949980584143683297745999807213487026007088311017934201877524174328839184153779838608050818500446551651252211010280256443693694836519721791794808518297322068941510231609002403184729636091016287340226572956238163317908265938900732998798868296796749088038998492171082769661190504737852741510168522740104971157635512820416928441389178639845807028079528485579442979261301039791501250896198761206430944616473039378192674247052442702147566977717295280869421861332361570435128142183717915652662799390424357521283051951092761763012539657773964737670521192043400375504976921076060244895313238673849674738436989813700933300688667024376605960330582211676196927275744749260596323481880282208091877214758082578061390182526973361308246349711566446307751640506968380237059163097515130282701666674649575576200803077616891052873916603438299439102794134732893987404526258759596725705043088292799696718327002015603789551463247558776385804695822299157853863435952107254461460137908742830161451470385992678602313808220560674719949300618360788681245911438793105625396116010039399743318376332240507994305018496709455052644297642582172276439006382615585915668342208030013270482877099850991011584991202304784232359272786611552378909710279081777316365638217507909749249759846587913080830346782943865029744432765887717908158205397355027362679070494218932442793323470436657654017262443101764603658787976256097419195737583915465896730638640793980045786966853518134842186735699831303824188023132477960390803264115330452826933658117991263244529147401648501783839278223445842439998852156227606692645810562207474724308956007485060794814427495922138721897680999542950115679671098717547947818989940826018194234539257118948109005125190145326697108035307557195600843769815333473787418306288340128031813322880371179427203721067837372672255963096332560298681604695555062527788448085748705591186230151718067833371808862522025071227620930895419410900026339687528167973816636296333510559581376104303284074068982809302898370288683299613866665097566277578655050022297614240901964703727167275962642223983128296232757969828267170093674576684328307083104383903085332381222952346139898433406650940254894924472278785312975023792447448904404902184402528522458244612233187140233163920931104455537122432596232617116428183590888980662940881616184204295308141001243678520817042631698622200628026712359078166051233400022118452709316951633928393057807983282778618427005506610195894603276432641505545275287686225430134089173003551995425706892698441959734374939523529795259561003910812963620282499530983418139308049780550577251284890601827012338779973694292404394254938428539693447549834584125404009620519825497445940333619300413732577292202122247192904079958697784452866170199255304803433901574020956136996472484322837450842794499456136277437363878977975647344016831022189968702414595243349986366641941489764864927748587213642444761032853918413261565776035757996103631112499223176116692711532288765028794953813872743104791079317832352255951559843540258044976463633421300208206847906739883757595180905450845547880436908409411876238665144648967739612870005195893074400375949584283939989852481149360582200839058009998086589660623728134662486556533363811707313043674467819750914881086668980365757537658778050846787023431786122125201407861930379938065660767262508621178519217487025657342039173807107580919827550120825405697185594817274711844099551169791358158324753919617080820383362170115031214778570243896958330249700506391224062438435229422518991418895784065058396567715118698949207893155785417023993379664748891549780551406423113152085734498891698466154382798395768826161993432195822534789907393330188210956256035209057397438410998267231044955022202976390560573356546995516770417264781557140473918043597297963161495991368342919749414851346939489589638935443195272650747799420138766190666124638764383524894631955851421507304013107195946836868220901635073989024965314311880264497589475675857319975791550335287926712215550650529105093611295514467631316365263791680887210782664682009694899222495984390778264137568192014919218053880290020837824322460065541411598124848995154283925406629728219497513150180051072054987559419807804836585248608310484415124566035311042874562241662661819335189282137799504711464922233691962286233647576289948665104611021256660702450821972243642451096838899982210914039369133241566264265207489441130292312246078673350641252233002483532512050235369046446998998230608227161637003801937177138942634943830656905153189800606872534881322879904997503489891769329486047816665556851333501485626319530090908691691840331043917012208306408020412194362841895147992055501070783734643596085766163454036069775674687720791326811927173701527663763762474290308120970111588220251574766006646825592944480707555688907901650004982855394936289223227549649459962911321497696046620796627476173182845132736906633613267341565004021333532287007268223726513986937398021623797615050882744891233329749828713747235419498905287611390456948233735350702141567860594489429905394750334855110352636893268351639654243196846427183885210291736296831537610683531599425497953510099653731005938858120855982873018501065109194416621077175916608396674537245500844701994288270470690780234371957322894604501812624547089072890166371707261148823746644448531051065456357620255926229675002457226903614611858136520275156976791434529407207211020291674121361535927873597965295953948801979923115280224261592464888914223134633593001556395400155640859459196826604409564245048588702684525568673892436320151781424741714545993792709333246928764968096405997352466868293602710450956124452105664591045484829174707886038809050817035451619257115257264646068518688910102490463862518431241495596195430505042743409310444452138553458694830513040634194766319521058913008646970200640939423797544408127281587532312038899089173776568765862315930017723802000540022483069188577209764220858803868349642623583089441216545740800600480511477099412691069618801014072085687841638803990856429038532937766357468347507344103822577233467742749026926439851569298900588819348116464524283814630813502756152615238543120020529713866301908059990014571080528810864509260275324777010115036685578221485172202336560292658809013906093172397198560721556323165213166082022828485982887085059151028001511816672492309064607838886987365146986335914650347363149144558442969955813587911114013383358402114448377080120136051558457965886874081173238729740918670083531479759076917596889034408216271345938078879883552802466944026656353494908303678898540045571295414902797029877574294689976788320082252088028451348683509994004132633534638124608092950136973912549536331668698150069260490404052973245113467502449964041075320760348028276821317911190330202332424073449729790054097132992471793920112960603785906165131576837784241917220304002011476716082247535550272768019265997176254250843251658243033063171316197448296941196231225228458349983603224481002322003814419719386647926968585828847141340119754497165305969350342525695698005875543403520061819938503419518568679597032970510090149879347920757704661949278494160735375925783777065094832578467799533525736940065002480427305972796237146063081912079433544745597804317898810738860419801829300992216390760122286880886052021748526122931662439508494143641383160933395377156561530441142588444740375223208339583581795709392944251490456059495411041640552117135478848643785635779765050075706352720006231307109769300802930952421889519337453084375834468408297201323122110015552782953498255509318841083957742575607031006624743668819647730689043167877265413741907853515899617879528050575304299290293965911101097604909192383845078988674215527663100094148996712344718532276896129892106636686740135652549104583818736030857013833730372683208212078548373561031774358171692120772776039967494530733284965652806880277374319001711750107307515176114339856115221435914393936120478295735601985702075135127410550536307786580177302440165427895947215934091326213800716638188442890929608027622317388402279302989480433344344326882761132526456755712670056546189110341742355049893872013076110393677191450392156550015120978037360740005321425376030850505666009949490564091713324531327112528734319159562398424264556534798749529490455137681020485023684157563269466084440605410525166942980959549002876020206899501422547951608233130382175134660882050354970673285752118746877517535130130661250776283420129735133698797399923492734846385706028841513769755738371456906149641415652687578105783421844204094038556075923898168939172174004851266740461170036697126566750954465931389302075385188499470969943004735344471699388882845423475192268193476458556239844380308294478867300925996972760939522049713571702078964172616235509639912491333090498347813715648472010839050766464443866546905681479993848363457919945067420388910283220611470122280419431627544833063632553597344573317295787793197581728610677119259576654760154349428062307612903899400465855372984145918471140965620951479923764293812386310510693165520923453897426642940550109385326408560414878764422724761129546193289126495896620151670945016459209836803926394113158368568272402290531705916013048635011084999304218836908688032978127205956305951013362800835331439608745803081895999983354791412812932528858633859073304179343695295010184547542693504834771662664590933002375053239011755262222407192969729882279111378925690493310095509616753801610363075318957396690933083863078036131067499210936201092367496183197173650550450014250369894309670506452663231903588125617913249549458963617868685988739416414318151684216620779508918363536669800635903362888926961408724980328645025328075596993615931334741832287939506201544272571429847770248074458867719682427664046280942935739498703664588865292352981153834695470505954588937503579797014640409419297806292962352786688483931172256608254479815725780726730156341108759900300696101522578973296036475755010391385974247166679401241318427067537116378580407764130539159168947053822395336888455137755327063781669811568969960688277396603003333681365034377486085641398183357028045414307485277257041687410851602097766445786383547315264523806408442982042769848346729820931128946128349398779368844074099560899298612093828698032355726579667723633727184706854846754707582747249198239739067244113251362610242879459345070717519735775162307375441202706786549374037208791685431779990558598617166031960650132093602427972962916796198576339871878455402096904156148835805723503100735723860464633575895121631171291661282628220728274279947217400662370276189283549123023704055370482516217718398611677498804921472484863479335341635800421938859344957077873996417906584617801266705733544692462453804138209795208377959256655602443004480821992547164697386323107581809881208076217770972003301420252294015668535888752436731325907424459675308983412526126204324036572757359829981891705585205305904028432923803999701625004363949397235619989665696291406305207478041900485948021537597372858307309942563702549378367494540419633675753511458940934585637537900438893164513482870012249805906047934937375617719009187960420590747868050527180527725054399372476545087653494082890868121839769348027229088981842571062753027220079723302007209361524005916141004311644135990122765670487233135299916800795199277586256875568398576421374914875995888889172690161380969498797537216254017664204835987440696921265335397021758049913492285220695671760005662742501943407432314614163358073993217109345902822808059433845048811415800781811471498617664728854796476007179936948914842224941289602656193068518529666462918163744420926853455855665321806743723701012171360238271605081556438572019868768330965511414779098040154279688006695312730330910675981865017186317697238053594968788012837923172478740257333480117123126426125148500331078647128159005984028930543819619625510626578542016047670367099307677783691113352347621442017847014107949398638956563508686286149155815167342807379700409267171735139869285025866352020802429470386531563674274720740155656375295926972486133278295575875458596666078752803439782778812731735499782789706683405881288171031354586561671521727382389573507606752899891143042448809500203139932102525161091307282076690117429507447697277185792895480406702212056725061392057949935587522459248912441710242875711582799889803243843974063259964627735389000187838369774390924955775766965997701823513869402650948017274051459461565355338046814505725926035179032397367565701447094238277284126673251580178345346412752563209475221015629540196627341987701502375622056505778541056421362382769688493234771723872820890221157841694808127575158896422295251472713291985029684580712452191607094671473685426879504787930650862563425401974702189537581120454367152926994843193764488288556705356954046042526308594485692140492828554653616009157637714706837059899500211901008362121724974284335762373861119086381869947271081361649966910283699159518190034860680827541653231544520174760431512442032089242268414492430575301866680966289321553067819797009730242969333840191756747273757610034164330274274683406996697749601922622056636046024499125671028823847666887554281528592610821693211955475680016339722522831614539807940992591877442732801446927662867505972926101066075782587371019210972652893883196964316235453828663973040857731590860479137127918894304381465275604143964541291893362677773600740842614377570135384342283905699664943291000467399651554048650244190229467878965677458649969588270512089059672454644392918699203943459349257907478364565779167713872497165875583046212684045902413344802213216646098115409536421004233075300845646942804116987297590437674446765293890520221693327968755308097879752228864602119480204243483696687678316245577241427569811199696930321745181381231379856761162296953793908909392149089038066983708899782750988220986787501878946945307415995129459088332882657591535095825314223989402442232705162359458128622759422850389413467053319365863174734714964384485719431628523853313870462062698848943904779136602902446601145419508037902195031965448354637248508728128356820885648633119821191394591089847558565338801540010393159941840589045755153359673622495063186959491293696743110165211195253533697246639826326263295157508525426544341192864294340910234021452547880255271160793943243511036505794278121521241065103129296958825743287426277925067645114086113867057738271843566142903773968198526640935320276898929350867912866199968097704367001261145188498444195427403432511762145805018193166906821700577907411947312587719381890994725514102041624850133316468179975442448336056567726666100835896450900745882477528808622025870853932075840995311131617657679811290979635952763784224696056970527154029333152924121778691842135816859029871786639724500981906398564551087500063801208792103986225962962445731937337953049401729555270018186290338509098528685000990627560699182432482414415927692767858097098451088005950951333738593109581233472513754177703125482105775206039044013909530168386878699964230698504744122720115720705083005290783405276233368594306777716305629316888755226695421695305310297358030951350918784544477375544184139046247767768264571422314138969560321213587899805889281848094643156309715474990423683376236222235607766269542526038780367585293953996302504518871311939165197069731751399843263765528508080857612100957614333604174666699519093933601104064871691899665553757909841336551629769322037119683515882697953555729899524159169866804835943700141387035298465691296297436466953912228001208069694279621373634332236841646629354706797590511450304284853993029121769083780123095425842510080126114320542782699929609299335900252353985207929274438147462249540995877807159428293928800741606037161820995451690984133632381531265877487678750515544519042454010097733429044633282934369345176221365403438045525185438866775970323296986472470864354484714395704077462053426435723366172227267647615875455719312947581696886375609446869860586122856833232720482787247614360260438082876046009341441633941040565914402428617399391901102491595079620548538100934566998645139148106570824836362612855254996392609542767367216029926172991602348508593164911319880358258944883337101353791156441952135466890275028158549517151392652030916425321513717862220165268491947875429665001558577518204652361200277095723163198855609638284320761740671606780899279703985608357521384155436531752644975759143362462719775750250648046598460727754354925455514103862754396219222812408468725974266218127480164424494540759261328712035825883619987505407775733371195148562954514516556102658611614818625663199327206714519932616915578310420232259676454651912818890686626707647762488068187529139573761847290514140594667248361449512027888235932699370138213024619204236064161266241163123211674403799939757434258014293395886005091750278684284775023923260117956316780307384591259650838227024917809117041289957200927442707812387525561943871689460664677234912992399283571696332379230159006773209807854939240416801551219882602308574762623219293568503399003498151313704834419031412634997300985953472921801798663396601898669194748081143088173682970333193877074666547298110383306183234574792160504725170066420902353452792866375123817821176423992697552204772530576848699871805281105277046401937186466529835588128681085616402185254759841035199641832266796240448868308502225439572027460398107269944575411845236277204450248027674297606704594747413910806816023481882999317952033684563140637009179106142881432499536301388539367720964189415060188074327729532442400966141758004719952627599509066282848146486102723582248660358706602371801338431490230574690730241305134403538730068916005429892141094446320112715707646146812436951300401510729282434679504595237970400204519929565317119604842762870274122839299484705471021259155562631696427345203358521539717445721933560405950565809991271287997717903283603913572667320259293901737841661941810059966926418300224966379243390404713240596549828806732176541853016568250463014111115794131389576168183670619828258208070511583224858304843289628030577364398071767474213432387660832920204526625904542113704180200094997553966168720699884501068598452179463692841052909691019574940778653931790347139413226428048572769081871889129857884722279354170682216258716615760200608417729123876797865086188390388918668530314690416875093389097488234479192480475950617433627673054700764046106148010061326894070185493133655699724426202846324164860205083199463665587935538674621669777226584119964630464560852271837699024151350989969593494011133480943824720847394314935572561098788968902845712370068404594325423932695493789647033898090163663010109348188489557044943064308225124122749787079474434923197713449026344243621199204051459506959567530273990435315681758761067912243461310554926888365098483015071525134168969236086643794983632038987962233225834559319515699337242032037742627253393438685435887090820692198231135006953628941050903605050390342889952833716271008318332204960803224947306100636285313865413062805810491601898066016482006702961618502924620624911155618332904269537445031823416918183450273782036724757541279878712470159909390964343415429151495989701220009136612778091528365398379936225268243427397155723812841577554783793154268506678077194250848244937197723450828396392675589560002625289202630539601314464466075932255211422335519855901129682280336224496540261264489680970293119807495812864382664831219229367016679483604957924711636363251487972467845176515896623157475919867285868508756539776987049373104976488933111947031799898332308757340365514247770895345873475140445384654694516710276832021665966855617737561930471758818311885235399649168729302387811534336797569810320097807974621970679276243935252659365695837963909868687819744784934160158672296930479356182009785529082662873162707290244160684455662111158581732117706340265577076685019315326966950717238715050537815052620157740990522916986346245330412595264203736767245950262935927748763725755104170721035959382913460824660860593824352362279146809930678907511519468493765799692870737576718060868966549855459793724569928641247290638763843380241274283790247146654228874470353223528110573852477449483859780211982266774099130052194740602090899733039849434672530204304232625515223741692130968640456722938822734896649210874872322561678715496284464631412049631923908844662647783689788940178989374732226067261193295559748379974873815295572396394934352894342441943673124499923832092602530129253059930320512426982815509915713360001481426934055401590778733257304379335403226779574620521469037489372982844544252536546217346358597171564389894533950014584499510941111597847284084906945975413403148885995709051407872105001047591836282593028331315147648420279942644620180731121796464845689884227961080452326711648013884430046903490447175056423720260231497868812125879420882571549115335540095603583761182951706493725619951233666391861039846359925686034178733869625399005380270503937982242125902886695329020864389032014990849527056023015017580343417841940370720241891439049678298508845510075727628364747967987449248197827480929353499815024046533998375695488415062789738596422457067402518877247772734640612845006670918093039196758808414401859283427148238016678675608215218656442231207018987412915961545744585518417603298588320963454692622398898488677096196915512673907619258978674069856132391317978660998491364985434260350039006882833608295107179739147089436226666575689136364874911696845082971391758684420744348992706721285738842270526092481807186166812803375074206933155677915859931266060310825295387393504825429773100301846325864652104125670849705416472742091331431024157186772521919189632103947457922000862051888524661040257192468800799514683605317771228779322228000518860665960237594876258447039369259913931813346984533255779185303842550579130932470003363553947900249148743388080251652365860187601423987855043237857873122847775007800839401540306812653482191398990489203420171175371967132010279679629625688013793080159902179206032404972359571653270792527149934557950215174775814460794986272532154462838968101884049518547357349195550683233974720225576362992096029404463735470751597955357236857404792185766185386482585847504832544393843040805708382081617663517699183959276113923872340514701927670212727425609377883342606077327193977867062904917812170797038577680352691794479491382170655920282241470266417337993606188917568742596547431383004292101724800610184203358168932469544745321439159265185933029639169784114866864717468225892221366547554989657254710795417197296038862588055552993129536832012760696110928266153218375886422302302711096087056645758099421409675454765897117443273221956655375830334335194123342791613724826910075446160743012677777418716611363232637784370101766292943562266516329617312668373641605483099479760312825998363932588559736157087742033960927790649783477051208753215419059937236041073414086029680820122033339783826916533907239689773873530503935810555279147315986018537372329837297545869003007650188257111341817668025716355313788527925349276852904817650270549346191800524117909603216905608915445324382104378703231441735466619237181583521160484966445919187636920246481073736916784890837762473816882738487624519348602191428025276759605667522234597225477878308421364104741021352426340072384428729107328263314241228043445787609614248653503193635762388974321895455210066042940421673787070825020810847273459788445666389802684677166590372034880078937824442468193833921460772557049107667054021995218549883390504931237587729240148948570560104579430275358589096251502565237676571857733151241239922728915040849763523948419679230150280715515888336184129732900753569899985032817122518712345345926974093175888209741832154896798031037951457151255589315578531588375863135779396303019641665921708057927437824585909395584562190521825541311505043871699739336424791057147201672340919421874290091825156238624091221396103808816823476232888361729729280903993022513913712107011211640799847214703403176271594864230526541499121807376075545591029674797873669865873630438547738358086809125804960901167468769760126525259842500403973077266205905204317694610182639949289588978094858127753941607169464316507753407556699955663748393794028390164963515337275773295593531811968791726970397496764357716602427290781356743925993360080494793696571414974239175175095755833514205895339208253880884949820904825391144036966174863696594214563581985858192013653098918911263066529860794640633740927257816738664770182494363206153526651124422470864650974090690399480484754799797298919349931815086680687670565649199347909274911314079034046759813142921831586393366248957332056755953585208339244095416745086193444623354011997757904932609105841840776910576904310066786728382650404919644454795551944145233855581226571420716826747095959569431023178561386744827260642639025193891452249124289402274705603842500632439624957210407216881157010016534204985766731050238227222014762741537911993457470533479703978339656551791711068428527426125218614140128449186299135871905084724358989303038696447134456561115475621053202743856777514406204769759121639002758286462455819793727118460777514824551140138906000565152955947608183365570183166784355784755977846183171815391265939595231010173518087487797806049712563271833392339094808042049948956524188058116738400790052909444156030188207839687678306487961245730631439902744267848232457390218375446447016425338027539176071604617165323060768037425617681903855515738546323876543548266370628933676380903155216363566656086539691507343841031571453080972719256879226117248411376709782618660469837310004858538500009487219163105644036127928515546717335177380685391423371241283848012953036960086478106812878110646579183499583049423081149596100866313451927307765832525217492893170206658060425301294499431997141598746328628614289771319352636679672951265862198422704357147535977518015810948315398028414231156239234837647867720986393238712255123257430096600774122362420557980526832845296883054931785254453538505155126281856961560581205841065995939012268357783910622333443202317817430417006175969860255805018501096359496887551011291381893517269824719348153827452816692359911947055128819853206473787940127925324294434627805264345020479658014497363768939950490796432158060054303066531766156749777006875982421844615226991733311329231323927550215563032913370949364797018816128879035821577089507660234436471265735066260498774087123492699919287351368733533136610219345389511354255967061316609474989926589651390507049206759988883142125370503689764442239813152832349889101721928146378895940738088853760204573645117707605757475202624882728926979689101302507860447344928763963666066506458519413397543767718888007375126123170698959292444742922932200763236739841626649161815150717163363207432733594824544293422987711407307446159895690745410442342066348533306101083104550018288649720247641461944167123367514614802034650224601141648222349834916692536840608504266887933877077702118693767142028493816329833320859750204668564840272227749709476274559559319120913331495589309957452542439026493418307521073428029703501741814046816557137181960129628497799528313716283407445901651826805492585659964088693984567934624279078832778234316058965990344856810907290980130749574586263607788894653968435971705637168160150593906408199206444274053147958183739348500779523408941796586733410785865113166584629569000929697598783058370768284939220920940052687379194484046973074172324102639265554315393981512549737070255018000985452259172279041912922319298503491701023838332165073474952929980451568622693326947481331733939023435320901512030186694299249451170629565221503971705531015180822242027847060521142192961379846303406720450902859451991451898625048072558262798749070335476918697701682629661244347887134073601097673681465805281368989194015635841166142519515418263062107528036166065048151295991907335691218103754952887754373114472388286758530090967344547785940352229771999704604885316574515597982306570113326387325889405844457250290882300607976404221410084067464149130551785280269874473205872213047340007041688403223936167397345611231138361860446806967018460844354341067037026772755392192987563434299078891786164408415568435834264531246722111592482048585947986853815395117510143862851758671058219645461097428815376017318224916000078183158031081169438250716806988301319808851409236318108649420635726454071397457083108181092297407521013594756192871364173268270022284359504901520841326086783039280606835987890070696372446876884501102629348209388029491703793640002942095443777471614485822036103557988830741799700456974894397984333144769826658870215704241063580665569860623047288069386121798364939519431735399730327025888115956718718270589763415476299624880546352808896946355399230927626136879111505751143278776322046456158000548533121038966690772933532804672132452814914603336768894732653893323257771823923731612243358843404690589514573599348739172877393688678710104495757091956913597760454430499255772368388605931308012924373906844736384226984038132515286748370088313439736178668335966179376134230989822467073882432845136571247804947259742380305719011529914882583311528724530692666856086452011584619556917058613577075043750351559293695936272993654231605585981123295596453861791090701492638912440191278553522451202620782241924852795158000988004022863069092382916121322142611882426115912844910979143378573745958273742120711309650107805535623135539406837542465545914036181680312720117929124025810462329783878697398570717917540518081151022893811079323667445300956379702978893937735718389835896288815262323657746452681434309964539996839298297587492689972295880197020197739426747062492201766781287826895444732025967350938560093966986686115805508643098313395469713359867875988476589261350942963959761269175517703483734996511697505482060571462314271509729637342405789919949785274567632894835302547801521190314890376145964912366265063372157039606228462114710821526021051516017721421421326324420524881772449702956495881949798367744009645963421924005936125204048485060511000329975259117213503072586080987079049690553586388183363358436528242237084168547918818657365530589084333684248136850849360526805864823428489123255281283279813154594110395512215079204865902321790910495465306577173433559806889413824334523282272915748158457896466480633176820306996369324575085280494576430357271333058881188832847485201606077349223968232796193702363966934863857825879393475843357691471254227074984597097226661051472721941418644073611610932487891219447014445958025306622814172993777636380670035232909691510872630004221069239022066372908806992594515922421406366538499258139675215042364732340065156858912196464369122728519433556547848883983605528340220606441736837356747565060378623039461622211955770571265910285848354139828647660071089783457279777497700249278177302822932246679837316805453638462865868068523657529223540473790344135648403488588972571636444534652417980013984106963398642381078226857682389962888154536033826227036411873290570345733993676751258407417055562292464138313504464940058989878262988370593475276302898537164925044920487902266751037719332846714928519345802379802948438786176303154059502099965799127037996001460737371574158691529146032388954018473747921606537251311939334007864121846462561798549195194180872361447205874891289359773799836832966508452038898009160756261631915431975774070168009422870108607381921574682889534712903905534180073500231859571870146278560340429567783081349594244858768642958610312002130203366552560749067551073403650077666588390231951503244038023853904429699475554150219072686222686747621003601972612567517435237721734112285715941636577018085522623704313997829118250997513081176979639058078272284025935378383167070442142473496928273853270950284743185479196224403352490420458111355439883876612357343298564275563891185245930595300420726850986821927892280923768444735677614552315097748027268723687757724955866943442831467588053395186653511883030334996822771902660863312252755530931902038145424479295736443926523154524226125882767017713883679480860361814343007815162566816931542071130348086514268304831489279240939161595779510573307283566081421719499982141175791683156549374744680610270342109761834615841964304397611779335527338831430477943076684739514297258657699002205784833677698864039019982297155696584016163296395630862962590642601700147117464679458593306977862936912503052990748904935938431156228604690153584286279767635434376185658178111974919170384905918267385777766335894134121775530679797844590181508513293060665543515457574794645164442438070405766486636829643696797476123176417849555578747267380827597196701844673397211073070285289496077746034631081142829882105219678080965928377701486025882475199286556842384856040197161022357245639940838259453812705395565091227924395845748247264982138081043461292974400042993362252384743015435740953708985197925624088001869362615267085164317988354610130959797202792776250152310580894647527000624538624694810519913380478631065321448073451848444837975715358354785558671493164867557758401054254270777187945937107256177375223558077896802577071796628643409557292976728986690927288658873235854076236467119962254739956049085441219775911271381146321665099839073643336952936661355697956318914491722261346909278884408381712733574544736664304755867068466042791688528956049487023634499477627576737227419327626820878230913824547226481806206280546610629977502385563966046616423939976176088249659577869398845702246591547920544405818128316080155484148699673243854568139808455455919005966390577888919358032540089295323430327962488718327096389002131292520329124104701776961630894667294852656010503089832835214117414330455782997264743961619297894632334231452605369616095365671984922709888791808642861101273029472654697809910506303217748167981451390189254476117648058036730821640161341384142362496485140761431274190357899478548183384684262820477337274584013882281931647672466046581908259752378212958529173724391729426568352633070114545612188408262009034715099843925390963598051457378196849708093011949773248275555986266372518653345310353792956672972987794512747554930009668537410755488698299960834120339515980436132286301064050846231421844223138658388914293015281238449781143139556244122814565428237806315171988404411668028174723178420900179349098388662629894267158114963932561588282526499891502714966418120227189651229273987673232515365886231548334426623222954906242379134735786114189908750994066958296964932220163755681616285423227181182815060965275212511062604090596410998835907551602261018960121279389196173383507133118308292885179281930595419242756100906735562232867651163603671361380457595992487615609432860824851893889771108348703715396526029069323306981606420934136174103041429665786041390969472902132413526875870550894101838556832804180033502245186043613225027708307276261361165857238360142961108326467053487544251959308021369285968955490815877728371516102886831281509180741343618111518586152496726559337544566731648611211785460429210680489453251195364011112587738922731597631650745139893449674552724737673954719580257739838356641232201841216397043833074450318157215730283733450478685162087454366686234657603904453532952349541153465065864536133565551279093511834626605358516088674935526212051259075973733566336317969091719230376576535344205152214490499295414385224468171725499899597293045152444591323387897912626300916078691235515941485204510951161126556706118856898925648766047514962257897726857139626811717803757984767620529558943448910824142253549234542696986504091855499302248413180795058845681844304913137774099961339026103436850612417294503587323016699399711044646452762673847813042895859101176638165093301800229972594743420908839238507896683644686125953882181017298402858592589795804274572756377520645114405789593524329812122269431282800159329102986605681531623471711801325648478537597683791921735896035655306683409154395285909442923586908245484189534900213924575580429999943073797583123978245316716548996017151960145969366023308986274769792759199749406154761205736959892580207724316285913169916732998320876200755180535401424860025237751152174718791646450947725100105499969836107566191160417643336089630939588619115810822288161861839796042698517884287166147529799606123031723413267946602446689053908825590810614615279066087926330951104528431888963382032094747983193937236439106094785294609386386575376468088452614273927923823538367970702593607309196485897613817889316637126255066951828173367179257626461297754310927383744087072725148217263709438959563182170098258306136584420446501856912274868104023128369904029443860484919582397591955904361084435945789816872076071424018994270425672028242369660194933424006543238765786632087859527330795374336904510551268813589612796764165039439727700673140906307615459053038160102359046647435317027098528075078835634413147602991705830592720539709325602144311292469972199295146207809292584550613967163141876125508512358000118602969460610256018237788979454476859413123320827908809145275193629954088932464879428117279609905193056278197998065938867160100608054685373084528029739559843556043621592789750572548267070180451082616570641299107630951703473363015373673732516771308659907730490707090039651978607498724130321440256091299982002637122794827371643810205012382799237020434517887600490478041642378789543888466551579756791256902822601898783610683044556836071928369464252097402475323701739664356660832199180196575564960986148566469616753413241443604968506490142056220603835068109535613604615147508556064081868789315567408530222731460473114197790760916936793740690814174696758220357297769638684707810312673665454293671532819723310298102832473693280770578909019098766852133553846956945761002482647164937723537131933031043815124829581484664688386460300639652182310718079004308974165012477826323846931716642530987906884578129807028062883865421919704584072429721908404122615514979598428764601573168438278526038032394819363186212377427035048897355859058880071113654175668439311484857399837069551293285594116388162662573552637597547471328862912178362519845919251719797760922561924822371973927233043789570007068337723901376314435094818095935058909461218146637196856479055038637021188827312612019838059308673584189888616214667304144470232506487818653625817805452678263287375330857820593526436014721478189366750142679295471931579137839200591678592494456484532548912722594003544574082574667056827001962380433601318777100344288731731839073315015298199922835175027801383673385676535972812599279701403814290779222782881692971187344159026572603676469946275001821221586167755504531931002876479235359117012498900596252614442191875869250465105144964476816730699640295718016063163484463136359853982550285832004385122422274342416617577290642391598004280914898056880392608296256962618817329620945924777545523585407974092015361654967939657120513148262091260146825414865863703808220828076293920112168889674896217180488678476396674597891983769116472559806401352655547690094804735321680023417569050530850593576486483258702369090920253402634588107279817772807626675615900077527943864620611645173364537450490793546872334040187024702194450598160368918402932532355037111607725709753111737580468689798051668296077611189360401461851878833175257518860044737587602062104449462371335026604725712097506888533824416741780338223206526299579416979069445603057869325975635275356537476334181339370229035607435810451259951827862676082653555277166409269274115248350183163608882828670530992261778509693260952022915697529039608023812864140982491752607235272277835178423447044537796307598845927293024247399741044971512056023939556009021371265800923382575096182884823393093089454126953825596931088133561407188868554330916552430859096608444933652777164914381234699304282665266939131957870212733311144149070020577187598391602188790891431518479304483002415733354896448122703153117455546922709848130110943588252916117926840922123284072750076285978894771019468744614909820501565197161002525292793249983614479437093460388368897498597711646081970229268323593454047073987452164282726398440281212085653255482623866090177057846535979830566635659822627795381043304410971040000140873999510156120584250753513473759602916860984503195085016512766717536696341961140226561697858257657144728384962485920565678795465283614736831457809891387665348861072346074982486470335391600351292486095460125830116844570202995581582811093937024001032439232525827327174358952772756029035126652443734629338399364500255187619661178889190260750809128186865266233107297473051769010510038177781259712917203008961865036307629838061700723959725233067207296333078991679319157753643250873831037547806237901461890415193852179225288558397804279737915817174442739724539132270473406843391248441560075369395512225577192168249317416797165946206006716836229795979534937776523774249291789219983299228627537887917832363128121916363075363932404815522989914373347558141456818170908402971554527151112203585495686843075758717619408505286604155496433212527602487746365135243491944482711290239647311317067158897849605006544682872422135036599814163793353715971240823476539916703034651171276557718446416086716016695875880102468774926578317822626685817174897146549295919247903644530421060389584665602299963966696675127122239126235574137682923111456822160985260769715764284545347229362050164342090247272237354148886005667593159780509766626165785715134169169394260356780158621241488513924905459399239256545660133249854312922498355233203218355431984228092621264530111775917137268165175052615888476337026361638109531277636318460158096435176761382500838870215607188512643002757312785032817981934786557599515902439061895982683259635679984788772229990856821002796907222867982480458565769790932379949818400668161171910102341044884406276045013347100487804480615744280605352009580060029760063817450632798902808284103555324205000595152317363096996404609207744415328705552605785861511000440552565931659267073939075854632337774621331227512498119816112133762813813045868422305060124692841520910494875696904039332171733854127408782157678498382995188994224387854856068139540305513907945527615725938746076395343160264597682254431320096443999038055452655769856139629558401968026059699459497908036320712954453997311230691944562987937970349765302634435166841053589530211985717486283154128363318357021947291248957531815478600937596797007085769755023823279393672280097822584648015055197118533782239590920741412175019917724089157336032651266238637360330000846318235064399735004540510585085376581487853108275694081435988725556682633823400938155624215719385826030405490912253228745881779142577376902978249125148290558993085201999737989391272627049431284510583402206801542912431381583827360305371989693826502807498472045538166169083276790808568510177598365474876362736906831222129737475166761513011386750378148268675270241374689796779539792935469453592083223357406688804910283784640182436098950113974925551006522312735076223140255816869039677731116092241345110060722123544804067670654839014752912890623565695144500885785903769371057229251135359200020057069959783294507109488305976140292203148590813049712086255639702763744220951879831496918184225280208189266588739145510394358658993610367950511281232964992894241454207577240810042986647266893832935118867253328776908835823679495335176699262882664599794086900799005567033531189653080742199390346063825269580733334606583108652020882645839848492184674278034059652623281417778971082902984486440017890860478757460503161188504982652137378591155032381675210524009763038584745496961474140171043916854574562363649997200108487429160539679958980339323981711539086232876465504461676215392889594402579596085875199415114013656977530825999571122429811986131009180444328939856200212683038489047936655286271698933379179538352983566770109110144554369866662941294012036524836232301006866908751509598083609255265405899355662638218526630350742666602214897323913634735325328837608275815193806738458490285537880292997432695600759177982752219106875596735684909602026087887664498618029330438700621507807518315530157048385540516161586952841464295440883906277290173265819800493781708898032089756184031307825442420672579026402677640118698533401649107019573020925863953030766398652265134274957821143430481537833195268026000660272609653120745539884765256338789523334648309359273659014247602990671932874480139170472282983656620847675283128314853920647766908521228658991292868630795188775327113492865775310882179542702434359043559437585379441516269644263186865257930721425921534081560393918517968077577312381883323722756694248614922851851285572905202513326560762588592201364902891234864199303634025939043851353876669538947963933735848369694622538068238357866060365596756660864198212527437649819479783511215332961270867164405074073549254133471354754774785996158268099017688505763189545762012139283121078304658051957953254285755862608745478359175370523908503081744982833196671289612038268107285020607421999828079077252555925198680036789371337957264223341848188671241720171435390841414461917271027228573333463487579944461045123711336962448762840274981513062820607990212600948752755635635030669985950665129366851522790073702346005725583257558784524285039779082115526506395834093297613231471438460680958212804537149097444694529741125445497003664644465090719357098313544440410646932679512745807706608444206115973574351738751924476771219778111217164349169824577904297605951523837848564433590916440516656041150273599202028091689970381580495723811568606913325774145412247612281123232100177507566162640179769773673196016621890718485915933458958043070120377237766610902744496133383423884509055141258924217367613086122646369773174696944741045156119109170478615698717503124813332480974983553931023698437875600674196700891200514601019750743897331684807780380673730075075244734253705291318204637957983498555893547282111086504125840451302080672994936868355512178241832581771665486781791177872029845323307429044103801716768405535970743924873897791585037303643383793117844539503370846335497544409331670490525731784695023088844182303060013159114591086003567232796762702592917631823454639109834955971147621597578830136995198417888215473294652801855517608705547939121336229147331428156579644834067504283077181836646545505167150447700819797319812390973173346702047412254092802638940063307132172719862768349443122865905997212275301368930129546241424540278452143368865233758610301910381016835931712704645163239974442832668865797768404069257958577630771840358307007421089055234485158660498592223847285828857966668858113570402880166166233982410285572404100566435802111811056152089709035618483345211750602631935898630406658279943317779646587790065276872623060050861138702511912031873405857022140224700641954139682943576347396802131323872832141101060333009562090547567241766939726794484576921019934020519356649569406286700382595805335641719755291689050832969939821010539201510751582299817449789462899470959315792970142351547033163434089229666045176375204973556939569490719693480412447224596776069806837861981205477110362753564055141184462303119058045801029252845060690623279903213190405855601541762944044086695865268013771699756108575992912626138079960887626298038637515992197176233162184967700883925850457937435650790880492704971346902462877713181611126968166218174005946654347489147139925001939445308296832126882098997881906636894388363389180712435255040902047938816436849197242157045641092060925215593956947557992953757399013447151451593755782415929902366704286525886815501897757096187197778939138036170995389131750331139645154494989780942309287156353489460084409572360500551315499580848164074702098757720036660138307766661411290711338574312642255669652682537317893506259234492368379542990662446908094287786429701650774175481894934742898094576211323480274028248404800480655387352590268625008262218826982878617704734250703527482170808936543544221957212240123154759300690472361436443933048535732272311055555126067219418253157560124217356013268837009746892652551876214348283231185844238522159614764452494493739300359385895432153011217730110543971124531700846061189887432589630025088471849023231821137760757993050552093371262213193106046833725414434246881848801216601739727090692797750063077071882497213953926490181740219012563621231923355987482150904478682933684224669403904613302216689456977973637914382048249730665323363891319924191748145318676749033669883140480096363967430702208666702226547596815512459057326325316809491409329245843251073414360190376073129144970117048038330634571578125556400423865431860265639920828939189036123065850375014498946927021072296841985910497530934340080661848350711538689269176013675645195879368319458709161391167832445825253499165855200221497349258360275955922102628890635237556222850934297631696095702308311517689442982547851827074784116047392632375254883793131044036568239452094814355961892617035777725098500172226847525126301766076851540626132216946464471408570285099225495466560565683697399957020380470157568073945161361090344715467049081956294684642677130787336061205530223929030295621918297176535774438583185262786907569143609333069152957151708374216390224674308601054102130116982345274977114672246080223772602359862532430706583803405898207236381318730263215638895273184448067100625947690416055920670661679104189040406435346780935415532019856556229898356698572368947363715803729221354834217797955925683804152179916216516654802801551089889574076348407863867553296727027759639542839991376923597397387752831929167854796577784981689294493963944344758085598281794054766409130300805813121984263788656903439215187784713104858013958661397048971165555785623788463627813188417927621943682824159354164298369359955209802376605263042300596318267992421110460257359954698612069367913987074658388487781693592364531041770281881324734335124069634393991401159143887231496084349141252952017492685676882474272738873492999993061092961112273693659180107483345793202739927164874850181027604993500343259904346991899199289759502991844098799474879610086362052494500322693787348293694512868344125384548084956351614431498972008959734846468015691252773255880033156104350149607556023913796287432289651062324468817109597211812466371691298252935856421429268824470402518374895794072023755759597890511544238626590730542219265310640821886651212529859840110957704404220726518348256450778865861042072041125826261530825658693366155918280573206739278019957909949749187435745663404109391729855692079822849756746111561149153904150362678263792083251216328981555981357547512157595652806221574119989928767377429788663127233856477154017419799964651189340198576958239465205377777165752173091938387958811689385076805569533308050742046412695821869441975526084663438478659398514203221237025713148093896831933839749162061372055736862389022796777502094587749467317408601105616829671005813062858641046947519347947595543145649553377734959758634089055554067926646176987664774702204986028213047124737255815323688703156306353338328989408194973602757675585405712974886832332518172256582404289902600883090395636707470951895720373730188557996423941495285219327338762522458605548004196116287492999707234666961109872331959763949465691221726306946271186397335040165112279382695372324225756059466694968985680367735026316994482837875509433360385521498031012380013826086504666426543413457945848251978105047777226898853110087041884834298691383520409665884741379325914732379864123924105770701107052112425693300590576954440147870547794528611053553674592369908911960248835788684000858937978772711417726935869098372946896882122276737045487934504005705138380127280343452416406564518501361729442229385918288868017030999744024461955025211724727417793834531450957175474260829526628570431540638198415796536601548814387985837733142376590567711934310039993178985588151634905338641134783612987281565084480322113625800368579287582210418839802550109441377225114468778325751240511905735600641963430137593013010275816558961882603462047744230224872623485650891933896545711583179044803464924411459981703113890284709044365377026310549330504953570016977450138002401499549448530471704188826094093534015751522832388804184698282954457105843624156313385767284418814074946847212626608240277643770500089952842973906603349155446648718363755818637598410674323057690337939768173390943201084983605206966733757711581526028689752576117407182401307015565867570424093975843189751312116015996374641023268219361929295528097478378356702694947179806921162524979025925541034795490251189936491275109103365463187393632486142843636328416946383892693764807109431074093259297501832572553081483706990407917996594697658684714308985985760671387426965716281110765221446910280052266580377443748709742783271817518355075306887974386092171471593161187953098693226353744212624371580692739868186195253306169476037312386263412265614622486511039767875663440045101904744493862077110056940202293285202558185575455283939975651045845234325469610225424412040228774933089013667203464067820670183401557115844608127789556469418300505610421445543516249751842346924735413844986378463213425446196679995602744549330365678130842491577351266334870302721332621523996405221240383100314586136017385424755400126118202675993129465964025431952179660964422333638543805791671319117680671045143740348263838395649110934047225047506329757964262380207161076375238349011820449701792130220979763570207603188393025479049569942212070595655263495456984835770843191170296366790277306461859443957051499555808055312020976660173887676611361533252676132319317569687934893940629387138393588379909228843879168874731980774146331338147053455725329996347615299397876700121581363285481230594556251121696663645641007156427765061001032112721410961005395742417754074919517385884896351942857314491061641293936491097503264818665314467111157393077405046204461611450348157852289362454112958608148937455767023705721197962322333785501736163233638708362766870955138575267807658557561892419963745183403468284668120510264871855969763546595342448278111526218233399270400933851247951151975612816898047630543187821090272957220019788436404097328276769780339945686565708776800135085938110064294870569616091200871989580266706819330094970793665810324462487837045819146069018685655645936866259777048090972251817443863428211326422704222205860981812111958475889328553558021890749324519189065319572239401388804328902629884712578399798251081445161528975036521903466263021757939141383424482692258057037760096398776946023085189218567541303442853824718809833430151237742525425906073735795710157870573638785499907414668959269941071921002736107355457043319794506923894413114774211154974014528413600253978263886756795246339142643835960237080302768841058740171538794861600648186723545100452861328715916663621624883394300284914426535890751497316581631989937627880070070100808520151919926430241673981702479398952324675736094824011789997803571702816141815860828335158623248320119679111282520637976575523610941381080968558482579778628657935532405434194966186992394659666628391226260141637195760396454459167456141735784025292534567117702076194684054135698298185081390408221057492181773244956837390197609180546207865108221399086142862734333464848509300575482447666265270376614592524221381354381065218444845832477142808323908480587659198450102542750072401861043440798948855574048422700224408956664453558126607349202834010315428046897250004783516549807840144436970317133771878554949968734920690145231351745521708661041187845520946821630113449338439004219896071500191332407820400840187209637287868582697360760995062824376616279364220105148272182661327636566920829342584029638622722642857903149321047351498217281795004170341025357227322130196268807226356260272859321591161468257865911410718070287845540041563610331039142518731937388764302702158439233427318154179496189730219542397516801993490494054568079334808782634742563342329764385636000591371946462344351732352935569367195287844523231872112776395241083297822878208329052302400885950312507848393097471266443250140024465431797348927108485064535782285198242474660548703733476740637417798624525152751836533872629945148301519628367156506921115155921189160947497923308784279879045412177753693059939189639300628457113545776914405673270020996319900238639685140432305805954364505276859727020041187156189717281774024894806115280726333014781810678809618763702370166945793433046965086306889446143231707411949946648276793636516595026418107995400849300706375369852269922524938469786591466699443772325260982538822911051428268352384474544171116572030973221970408500530950590988583956952691808723693369276198559872106514723643003533781038602870447156081958529077025467871989305560148260826668920616039017818982094517377666420784180119489915175235371877646594528988914626765570779182013803568921866107294916670928750569499139634494164410270541425629397361087731181561071958473814869058469309720790696392769969760972099916916109206968665913328955276293753943839655007230577924522076682546710514011995716007666945850461815485867866356507288337054264494464313071750994638030970089066703176725657561286526401040311694561625647047799741065388662257970322135520656462952155631520550445839421081484560369940074490390740980202192735056171843713743004896123182590485104545069462748973503513894327856218654687037303521878745071157818568206547811220320409526943723436874944142846229356732972759853984695591573968852694296255824877478017945351984785917298790026649074788032453036699894247637062127506490912305056770219161308587580191323152661510330263659497078048408910778222713393712837032073131081795187971190801927118716262394904115077189321469522727449564127253658647910396391112413287118529899194665949645354049724428880884970390842930902855954269966788643999352826724826164443961715004746820681229897354928763814610792858148018480029761708130257690907598579132885656265901107356384103585255714280372376078461002367270387161075922368789813322131271085631907499926185044513157849429253619456592839227302319975391466968300971540826880496110474530856959906829504588610928377352008920532694310862028051320845813019731095886595325818118669257959606997179520953511355644998652915823243314518838427746338265598368543295620978068582955654976426629980640312789266578671449868116031975274940755815678047854106650124797079206041823998414848652815661893747211713219315628531646572161339062520777612541121341734426788834826279812048793753442854995320177562290493418780107326093298450438046366582266395463735765695984735375493564455161854503807591235497133535801174875529331503869296486646119092664896637991410154324684168418459471773191988883872383279074932212257559136224077108043852095666253756172727878287711013529810915913940668356456614982821215443157055076376386151812552413472332032029655210221931740444817158167973336770287432469460452541788153940158029311354972004239645717778794050572988951444996970964492798932445345136754172858879556142335834521549148204639759491376842513005595768279123668269866504708277810841539623880590765984481597700116462010112121249456926428596421507886839115306112311225302267107735765896380513457101970388619144694398133799147422730692678619363736289732521656925672019390210094635583063218382314147253791363504862400878085868139783715275550967756462812038391954133987400839854581762967997705781500769977897104129922944861667317319671654882583126886570657262507521440959164599421133045127172444209752877012535470018059118740314328816200412380672544814510493840196336923563436139461895591818724931675661407766878843691821441544066158774464299609225896775744848073155025414220484472642012361700736808160214080117428096617601867253111775962207638505737368219012404779064924801593618833604438839514220205525952886464998936810992809665528234839154827891769406664037900750698402057906608382625773632171943482075562286401920090232719391056038176399289685310381647333750835384852901501819874330059354820468412657298867828466635834340642218629133512647902649643335940473028173166885049967309276873056954144569608863568223555871031726128750204747512842156803916954275575574179257450013504594874995363804524170383726288258056621840223529390454274697413089908949190005953820689031168875316699044378001678908797127245368278185794078498876393714162434011467148289604304836789871885138146218700684770101660931247993982753793759379230777270734972348152285298080419300405214777744532734947012925055263298311348689539883844211369778208913077819774529697230579705101069730081172174536888478990973555857833619446344974087737139296035986760198856191274510897186851775121700284292757549897687574916400505797706211478568643264844295820897342992171948500610696000403102313256908756722682273045918547011793055049849598060392185176185942661092243177729488349074255203017580070021076558151229146134862957381446998449040871768284731248630003151497807354110589661892322981753265316804214593227169004562148844927250532770478572846389229308270117238312044414935151388903593053939047970996839667366528940542399734728755335053663018522451575701411774355044643098437502259944758795317536161513429474476250221801223961158443839900239566324060787442634121295320237269254730327768379341356342468780628406895302881899071000267352388983938219094668821821672664987416367723152196251022945001436971370001522304501448265044645805082248280970716188686286105294096136618950227759219618307465394885554453127400872341685688881714744937554186580193319944179266866232850466859085932783159393000011462853221634236002637963411730568571442223503888930529345752426604480327487915034635188427510025595617002660609003581161763311439093957721848263921957693514630132688079748866888764824220671418814139742831764874946308350844310569035724147366205860930010679697971515288273812368542277482728066450920261230894110170467982434361574960658760788153091506172168700528129914427090466915145191663789622126602302937854875816765707699492191147457675508303462164693756143899953880199232692762347766544415767489364853859006168254598103327354008313514042941499433479767807871639812383176753118146324218722706288982820219584049167771823724145856540371345193407292074339528272522574160684032145988688781678793397760239923038097911683690211919927742606064998525592637136965293077160565761864268062604452673154838367543427922323585501807322643643346063860776907590972583175773171093792084593565831899968018915762213742729903064649750022861031734889824428445550473327612993899579357428298458046763434790181187700304373292607669696375210840595251843430280106561783758767345100273770627499046100309407038460828711248947493649176794782859595605184273945823209709355976974747717032211671219946673215218272756069937772549412859469169646255335816171374259243320617206544819642177626206302485636584967514922497967198826306994576957428714377261458097209519697851689534714523595598233752349654278310160114023062763374730841122628807843382704573040277783648290849057346354577968116789086855939833104617862069574426277997629556511414298570035039774060392315750395712488714420170495179744832068688249028443317381581799967689941018782531742382564264856041156357848085821587254242599618570500205985443140195964659954385484615785780962803844936748622113620594354398557316833972627451440629303375339644119140462475636879317595768569992184942164455652293364490424944056703411557860832916153313909451272266406217605495435172410690578375808337472216625192235801873681877520473927309829334845567514953158064724958268291609235092041879976443934910596468884391338325700988758624872198834297503558275420209777545805559669498429680877201677488669925796737712170651548119751617199796458218545955784350265375472318953861560260490008145081821136299989625967857255936341937371023123335158245074038339538823409629365322285995477529079447043672086057417585983855025450303446614688680726357920248042785667841243555837521529422251996367980453650670482427048915996351182673234100397112120564452973315773883544077184957032068273407072162398697865397926947080503593420395537093261766697797441142812843054799765009695137055252233763207096439997048548488172326299814508056356873423143696655039266536074047660896011928716015593982842837025622108076689446629191243767274587581538687502939194728217012722719067261410178550005892095858966565076568840198422462533480286044764384466696576738537176413427173934807515101060767936519273349440359444200801079541516486408962984021940002525431248192928797015953025257932436717157816611655640359671593580352262226501833616320283881055399023471341286994335470322733692319078386303435456291397811055736916814121754293367048386550599463944282446590772752399185920478284262288085153081834925577038845483017682158212839390023261610532361602018923181020962400643445264898654124673260701389995664124956248652886788743913999896463992247492386317819347402318615913848936116114668668059040496764646326352308790540330320934514747981344685272902636883299261116598746636323357819881023542032815006239673196478864456381873472293953261078008582037960985151692755242748690925538901257929888345207492938714353497078469814486663075227116548935947502126789425370833379314534554493846404318882389965730450319345477856893743205119782623369394545544696342469289978301978619052343370291053348212670724670537954879866786582039914305762098963218671648237367614513937660236464329205350378746965563928867592957189173419344023780983635657021699168587896832623532925188433010667448295150446451294239992344222301211055883851742338640208087174776682595171807484049903878197864377381039183462318185116115378679821353915854679704314975313968519035618926385824388898151888287501578488891533301119018685557200765139508638370443941978223326477989083864802865407226305321541946633382109498938425220177030905893873039099076567909348469498037110135939821914156876371496980752342240856795194228921181652507719440322868780325677259314298407477917648762269678413606790298650842497358687424700822773838209360453763206258857005695305761803662521613986993785762854325318462635011972332836185279356471040729232228939910663379961227711388752598248569533300458026729927943284727153448716903732535830886197698118216683355458922346673006552702002723060143703668338383119122020935472286017156839461803870110440387955910376767162084598164032315753875214021729260520295605626117781892537567179518657860019082636253637757477672025784076980694755980913943850003454629966769823710180927279687079119259196744811562829456591495179383826694268181082173329361848820005768480926550015424341699549621946899441100816057320775492097740213286495817505897963553799485606049842040694174764852206743492211456425702296833395727112576667775567010393104540886629755163967299066730614338731088848193865263522174558352987248664665224358687526223863153854417258512802643347330309325349181515160736436828996750533264143438697099446817948634117270918687142607884001441796489902795260732044780093739178554043581387271407660344126068721667407580793178856320325230389447132839899957905638065197410378471777645113544990203346129837339305049989733595842253951914391805621477795817800598667983572119829071803227163369128514363510814106836790996707450392465068871982303490709718350628882703501188765128110226830461227892763041022118178046913183820141316725819517122643618401058556992958394180651259499151460264520347666262913585571417783621976295845540278501282965702622765190276018210658361846605704572086910983254885337393405584041040684800416992704831349003607235039160832368267632984784043632901304350072412000954582805171586367285333704006447744596194835206479796980699048488038294026079393058598701576532660529975158321341342795778855571281718861934663457863130026451812220706712015631150226290792832010213618589861043324825768321109522140945455799525302750250862120967279181944921192775118639044767901229094413587448351394192145605404888461494958452111591993777988667404593425093489962779465279162755137292384426584115951396230651703936484132415724737979575729362821629192496527534918498147189867960109078205276122427055606990124656568714535294757192825660735851459454057577600616811541959327303474972065724599047958145045270165419752154308792014289499959358006803645641456099091456957267054064262411457938912388744997712839142851508710432736151945914217105703216678909933273216787900294645336720230591810218160696228239684714035336570098610209749269258070156774153922488025742911731957831105919824395698516417980091313334978287918025198287316136555093602361182905047451986692570114133075537326240006317675621131393210763417699067709796842944429108942394604890709560978040635668359106393418029349685824390830631437743963565487346099517443872089440627324098222080365533478949640507695049416099523214744617497920231238996811329805674141823536364561398007851724459928725210816226586327496674179469046869841719225735531560246308936793445272868506588090398846038715539775380008865334273561391986439971370501902489216449479657869252774315994103563784031047401030281920849376598672934554349116026787160276825985952672325007765108406696407810060030424878230546965459568605445647522512516273398918504044021856496672983885940421564854592471597618595362835713244066577203714693317740148833031478803814061623255234865407527524550306281566307551526240215694368395791762745297442799747241669814552508146577735514745613906428550849211955078179710757378747821134796411271669540892744828588487028153364865565599289876685486361910659417807898802885159736341321483747200761506590938225045064245517764841410518907121415323167235281761892979040482783404571987662675430327778456318989356733585741092170324809590276217498078153693027350336809693551234162278125022151589576862111413482312034149042966127771202280658273456595186280910668432451552262587109919622589120578572778140461165369317984525408518119592499006508544910552031336970651690328496719174223225806655623305475068496244097749670804695821306527103428887254426318287998665287395190795065140254115386594005448726148391790288376777092909480418007611463950101015031173753354921036735833827343234724137823696770291986193618013480680112516095460295962447868794043457770637518424448778115704790552769915020356203899888069983973265128642052072284559993302849238273663197080143356341686182657899595172980244798926268236292220317939744009763440329093581975299821839741802091202797530029347853217265055291219902445627516550401505818520348447852341792697603539527179435082221192484814592354408830436651058267377565483420381595947064975938269086237950017246498181582617755082181116400311763904826211455448887116126766849460531889912819101415912785503713784579155727867141548080683801382370845610015699595630823117020308958880424879256034323436415460687797185335964196768703126556865586623057081068269218771425704894079290922278867136278574957985146876139049751892812321922273926406282233483558623240118667385416222616504101412586824183265015961166913576861910085096643840073472983957274369122726210770508731266883502515089837057416656819089318312378548051072998377488883780596785666610331294645606688832792612888285526829137523450192919563746252176188140419176737526456662301980057409159857352962288549580606151644476491778846717105780201591827236293557526888029250380276826892782408562689602106495585224764130713849505140438357555066917036488829259000855449948091673966694077509687251173580746820793038242149091382079743379561404520049854141642977248714771589741349564072473050730925846192264151332279418941930535337802044077219005350704125320936094352708377738543187379005415792931584994319281015397032883338910974086632856600375622610596251795039223413748852625401744952218662924365604153086026003372736714779713484800998876391099071943731688574343455448558315220897947274348125195409752442429796503404592612288980828981179771339931827552854460993263596522195363897652661623858708472601308386060704902597928649292421029218382782193797706187592269734679452631421709444306476831905057865723140751652453841783676664291288708625932000634996073015712606147190434569979085201181421225920675830369005407035889550489464740542298701236821274336377248319631695933431775936223665931016421300819429594482705577461549312218510418989738819810489887954734890262001624396851165920895301245797402672534505828182846151601572504804428850285239088774558002740444546607065408297211485461562287762150635606741389137243005218483264815212084085290776146728116621065111931044307950121749627644312468610038346519286424725281517920320165886312927864937201300790826446809321334055070974281200012778690189426353270476544302797134061504846655269065952458753751320991638923581328359944858008563886846339833642236697403857420330626202816201735902440733815179614518078327387831603879645268926246127147526588314627115613179912033659599772056936971723989659768476688895852614645346443079038991859315096632697760763885227181604050693680984739648920618300665009589107699411033875058280131454778778069171370001416588885316271819043842489759770190436172033961863332019053149565747513675462102841842189520526592190277100313377294204978367749689251142449787881590575665308009029967542122117375945855886500935390271772745915193238521863141853824553817276785829208560350431192247726726393893081889341269916167380759192275887665435741103887162083901660193491682861057937870588278938385632507324059515730120599570770757651126694770847093924014127577860811332503664351325324420974120803035376473393975219653634316081286868311676078445467668225246735606031967745039386540561281579111504546835906902913734141513221199714828003176373547136766409029884868552636527403296199609208830025320647839579419523521983899426780253925619120692821770603495646758634869054697380444754534804966290996408974972200393284682439746203889733503729131911136058123579366307810347245033187523412505984510818707064600500614346928694128508736385828071692570064163698285410843785726605499632931006021160255298959338484561813195062546649731414720779353235164811819803991050827181829396713602983589028142978847170916384314874972742367918953401703848625733644524152946004814555205313594309217650495692982927689952646144828202394197326836232129472275839838922984852066804659262059692037249109733285082652928628871631161141744327857438826294203377713025206289185992600959649732139103239091645313801170900311474726955787342926231773331199313247432592989719586965119258889488597948341139136546212475993593141208550691205553064195272835093055097020543091329385227329952606061393541271332091040158326316714131795919244359959670925589744564472027516754302540126618369453262000991062861403467800979177269875839722740505728163435028741504490353056765461457449241279424458653266792178955318095057924916763739829870876257539308314906484942483748633836802155157489862513876592722277787180920070583764341233115146604576740251399479788563082106108055560505110534573647971201980804120448613288332415299455241478384520226021391493176496863806039385762609734743653228108484455187635311844755504418421523221951411955893358996499391150015423054704808848474874535523428746138943338146064038202287193686266883903919985640310362217859482398913787838527123702684129824535225410844081724177125425662716942857308409953277054693265087913284851519879583454897335392746848502412039623132531106575804904881162019415976104488881014795677191847372280952997970754901768385443366362004019980555428021838886601714662665418934262971595191568055954079303818987028852897006135933937245115592948970747576317884381449946771805186068146659991437390634738737914149369531469177150767870530710188959777714872762820202970296084379480547521571373968249477130808285592653192525382949883224475697985569580576876919080570679887685975879046156942661646197925029808935084323254045593160177385793488924860561498115229694313355286652999335844094136745082880748853742145902943381614822510235610508193495992090283793806235074170706637777126674606256609114536830386813662379004479310580943361351117201954947758610576816289373393398548989787145284758507466806902601093056755307036042174894356839457769554405173636943761571904026463825638340029937704929394488744923931507738241624536507232963617594756254555663017947541508122481661064951523174336277380516483783894638030339995866346896034175236278409742307986846531280460034733619490238023599417938647371879270223053004972558704736487523184150461386223342683006668704572278613981278439983985177469971188328854732229242161371930395334308780178559009780458936189393600450114500819155344420148213986909640840192978644764190959973355060393662351050727711029442203612263086358667263663194455423968011997869847971013306958725741737958891535054225715803086776765020807793776245597339113789070728763430596894915118111716022729796063358664609335868124703058168781498144094610209650852729112372886656680898349630113163375804254399731488746363660324555011454321764482536779966778801639656651956589894436497538723303106435293949928291112407264168344283460553600175268478709110876989714387135267293945014566246432907513564285017991146133543778605719134159442587259764253094872160319162536383498176457449753361864119678219133958437230159031735148196612351416953251577496784848608681612821589147605848777007479611492800460577318218469620532969040978408267639635484226672802375589540594820143722818926148207342479186219110042554935999565882908057059455235385668790891029468674760636480652806056360634696559804802340236466067378880971925504881696626028210404851307284587169123443346690532049314870880151205794071037077125045956292999022464934997065534937692598579764050332434443099958869231174034950845919514627315050003365315413032166866639147782435683649771548268488312127620615706888155183881777996079580683568480548142457832489147583314581620053537347663255638749631883114967442868761333459564211417779350051131786023451356687775873994297013658386644543113841803359021944252553365225815798673311054037079523157945627267238296635253129714944620296275868212942708630861189377110911641060737305570452391643729371501069419848871461859491906954129135244599772620451350941356837797846982507055053713744204863150738320074754391615071805778362514365285511468752705493940266263251355586989221441252187068757309050840727807057513524936720589208916954925764379897563656025474784664074188255929598685304449161695386459578111224868382652397821153694722029478519398371041850508422313556846437572498069276577304076666287378754023457175732440062803711115629273496768334983010478838029047303660765613827695744485448547305604015988695451681047051634702512757794524152455834892057483940246865551048683890794816186570164816109661937092004303346253109460129965956000714144781093103243528716618800641081814532073221920519823538183195082611751524148080589976910256512932937827546734572168411539888093334369663002397144815361141527095421785851470299426873399388230742713309976799615585728405130811047971766326076703363958434968758297733993900558531931282744564488388918066237905352449551388541860840265161467571616876598686824448739884343342442103368498552329731123122689745505999072226599549734701913505423288727539987155315300923984093668807937167237500717965100888110175747605146198402233886835563731445463884245849705995707906603308500572851716971696339769510378213769282669827073847860363917249138096191602258488790378025619391926844143085138104264777605926068461339457910616232365845597984901569894878608466907184045533873804945265915867095429707317315833586852439907422895818837832417276786726265967734940566104293826729598120214502565690529726620780404226979144695545823879659115941664657575493881034521676308980757588927265485748109215872024793056554656938426891090772383889622799960064478871696829466638591430722921764489043503845106684482805211686506529722298232294981576163521260068084617779921799109972216530292514724566802442530946722455588615154109865630713930328584039081842774114554123206796119781222413481566906643260453588345946854473830665444224984984425330743330360185964390574135354713781966079298403197694036513219793013316792092201731507606923314377952375545090631323860798681191398357425729271512970211965853860900011076934182986401835531393231118915205776654269704370062941082912961367606243821576618451442848848724142642210471568898930339056262356598991338021168305581803685348593997618497628788507875049565389130492836726393237858134262483078704383275974648041800097923341781319790171605581246348857205038151592296263364181463731708969532799331117926112391993091713089285185239480520696232233742502374945733484903174713288325076276196239013533585294619820044822282415215961724629859863487330096333319352455364771069951777194233551917998654588673117673422479767514805908475339556834869539269411970748841191715564989388657706474810227465368654511394099028518149562483253364183441595553549461113004080731895280340515709838094437480895872659742934119488325756900456413615677805445348706663700672852457849677135840925342102067495635403524563537609431807616623409532278536216229024671127757731050337167110959976275949819350337432352730627613486297021455611890768461396185074744037755667782315846043297804327735417729919239686253965048705153895614122111885015849086043975905444684342162273937639175730653809876584104126172452978543579109986738643304000565088533770742554746258660525659489781049977770503934447344508747533864849940770844984804284313274513127621561627199399151620738118836131909329769842481460837897626304462814186625695811532413182963322107713072490183143611880026500770258207576865796751576135891499287965980061742871313148684108657620755008881888775106046462245350012086079886846710681013113659865199853848560391634059937211780984171116614205105675564761231107650100822951315199247720943094838108831952050308535162214281914149380653184538766233995370303347861867467729939526465783622159204509111501090912743614765856051749567094264744028348994352047817018128313127957265758287498631383221445893641895683836869278159190766331141785480852370850407390235423788154280155107261066619079832078783464472609359793766893185463209865522996265425432135516280799490942273027390781326423699447246121012722094648509743787005941563981539693461944419949613012233821236392389000029171626954147429518204200539888557592924512985463934033664664652876379594389214299451530643338074008648148080825553815567957592775862082555701537943973503429334761194731621175502196243198267524337173131421498811324794947402303342313045225918011591367068957084438662604490993760179326224007219893245222595925307226075401153686948137263950403783435030774720859992425464633320084616211972769614539513204609124718714010188750868829185282228964430753716099026906969467645208970608310032550389419027877862808029125179966886436622717631735741741830770743486680348164472973684221228861415248646757988638348367943186154950939812591904619392839298450265529539893468304622903017388924113685212965591287670286816233821812787329794318989308817878466341752431482739997867949524496571571717357336794418502595485653767685001063286153366534511653834456416972176290143812471261862801050023140911727322040199554365953125941240894667837461902767234631264700730094203627877183126840778581220533468237213806034643878615954133639015729909563701859503257555310553721930636818947623211629911775312275507524596871423479205430508581386761650123755755361106994237961576368823246121743781225031141072956202881289969007341368912262311177500699133884731788605141792489977453718571448783790905526427196488391907116986875078706698087111072884174812934126807301451672102862535358807324727245724235197788573197388871666104490742229150481751127039306008707396504745256055331038680178042826125015607629325724748995839180866196022431026398726633420628394845384363284211263973625012573690427515023588447231984256535887280714949054459749167057733979440688749427151730551743463642869868018335339788623560549899459970786441131208789954397465378824565420017681238506228784817683673007664957857502754454446281584744553032525940140485168940682645153720884423909865406552570986723954461121053306676439821159582966377165527968280774750884826697940309856894939269680083000868352101426520681793097036935833012094606166438724012069486371104710084786034224180617260959701528535449014041850775018671181983996637599843815019170359897985312383325185593028117910551167998636746355991864838900548874348910068903350919926879566756028112506749938253298577354218289641187326567439169762655014001993562979417007639455759346977675757234207321667813600976105294751323206906760709850797701595170689526615922137022102896210070484379063188703223827784844136259868358032398494157922169903243574591540864192194879990699839653320128910031746763973724064915814768631527402953591715674241615675873811673632051386467539856229026063197155336334858754661298164397779895659303566199175171272159887665950029837404509862815631802071882168483520152576938376117928429251859898642811162578124169238928545608730596617361775364179931362269481804232070550978395211403782240219956203929355851345843653464782655267016452365359883068853401276671799303525616045952922579997724220319950619622260924276696149487542940741193988937153930908209460497369443422868608742200767905017561828268547261335723591339674831374494177170013755356925531361446511633593475966786082364568144843105462859612399047241905917117777758188751980490295066530618121784305225280578735549313648201509897834565940643251225817754959738741495588399438100748253621882524020820384440729077476028216383401712069665271168212141539323367587535913096633055117897698659134111839557499147241502177246332076062270560165953908188991068842532001419940225365897126407222260468365058793246037024491704235353491612766125990312503854028301422281374802028151244236901446607764115268157315229501626217071042313171014995917054096921901174432799553069912901711363898311813340974402144261633998429147890724902329016526261186013127441051560299674211573029577535984882770264117973528753612177457735151654031342618821817135166775484349273711897631429676791297090456500333819020855414275411864821667638484407736086161897522966477289098068742327632010784072239098340943100933815563807203984044988464425156771798526087310119718155292664990726580833870846652823414115985128791069545524670370073858541598366445882200710117645954892616098999934154441891211899842461509939485179732037064652770514834314819106070715825667195589526137879718995902691765697097721708550947028435686573505317427078834301854288053293647221332575798033745171411812054195145733683270996614138783551187258041937174929434975146088288067717766361956831570588956014238319906851699938370111918926253381146457219728049387406721132478121355620092174551287303107388856107960205368793598636532998347653240451368183918320299664848825170750136168423809036601869001824499565745804421084731995708536166962766189367403268162051300889063131884931667191470025046821669214228138153480578439779355422373523362790600829628244819548135980948589271873029851514719890075719981286929550429545957071362230874798136963699685208522770387343327532782685718906522873131516299300296827143325667976471701677813148997469349034704645004929969550870161336290633019795808727729516625816444411982746506537787481732462298661304403785754590842719349371490103437022312959603533200218336445096637302049311599696219729727501969025529063508845171618084002837466801817675305493924227910596528858453260285988039870569712284935329354143967912064790360050536689174244369649793418081061766907262183113623667230683950705286407206698019217724472169938852150185517000757963758876696671110204910614419603444302885690692647841619733124603488015570245469272059158656780028161362298015789012459963510503329104392234475122984713736042261458137156076734145271958729992867479433889012743150097995335580425811800273175920383486432816059577146626036808371662175806669731167068369293177268162286831585965503807585071606034549292115966346626444328114137672776849272919496551189885208541619489271347823240393591150069496182357862953161801004900562279259070701714850430746670032007243221891362930785958080664049908896157239103362199357521138415660513133779879592618815427775204502532528709878720789935663159470774477264647322857223617319354307185956413841885345541423457856781060780903563798078342064653213443294585776724943061567363366086175916843296672032260959986157602172594261505379953277957905537951318752304264388078332763130006605400026076815464592320405221221948032289208060515975081422765745242037541946104219852909412709782380497118308738271075553310569323193919492712364132122968899227640468127065198852584042646430607515066265228273524503631841255018827671425322563415167538817428422446106458811371016996010573079277695119189727561209058796832062486889960686060280870809124334615054382966414189178674948531493037644119908900138830219321357447549037649539461639518067895028216276987373085818063852421193041963037243185124032838546352484307485588678041965829022036724500354693269773808067615794947596977788167138446171821322550530972842094575045899997144336512225996751996702420231581246913518397913449362323891569812355337969968677369462781110221573558696162754773444518546830338580304231509786658690743052029090305653175000161265863656340555927515180999249585000154035930620345797280505756557241439491948252745447082492974774363305898843971519800143993707090112910319585779875602185298881275226498723731039547976831372525275482007438467874903121547781386676359976968389486568245247400910412830273036925733138242292484199258534509244389888985178155594851571133319509969527078250815854887303780942877221430974167932403061911499823065110831445070526112609083087594695225227182475451644956075602972097002279363626312514939372678867918521396488075048201848980057268591657478492488191493531790114934518689063160182763808427109280721321734340242885010478880078245200675697491328267449496652378368831963161004483212910432211215248450935684882726920026266763833531750405599809221016146954146365759512112615052797136214297057468811017210058441072178142908367673248565635152546949615392973670955761466539739294142227874293212820170836459025076125874895381235607547050614199584252098513873260504921872852920822276937942421085686339900597731277948338192502103090463909818499076516800940986012649622050215024096806029463019549263559326405345571160043321760646478772484249602012128715107171001782592638974270798518063094021265509139453233708340830016454270674456948299497746943169920567229379498441781864200304142875533513481558360336098707878401160096661938221699541044239779463127839402875338588798464076582833518820100310328945016109128263569481333005512020843559365099749988665720634709734420340804822852059439355823175569101709138704330816266732296704037451734721414021362956040169782550341331540596134171049591837715983914285988798568345440036693872065541922236736361253012497686596506073186328935591121390383170280866794122968153434698821658488505360969675338945457266406847620421722080977968196931829748645714002353443299275040954637548019204111652638224954394732448322189059128914894797214759561554135540321657090814479969159438378106045224102860223712315185622613446143445566377779196773284160645006803090592037892837894208294957114337714450771962208984294836955435531912729945328844566567217639979961028892333892695367099877861195474917094920038860604811221518944937504644772893050579396269011394110891634680680399380304939234432469478540312814158846557967738686597598068431938889185498115290034974910741170146209720407474667775041725636065927269555553821177863039808675328567970928504681254991304040501143573008175566440375312506038857199994369309164871743876722579444157474828148803872683544333697789004685207745645784614556122346163488160929771195463792123939797394050440695716442938257755178200860197483461769211857718307243245195040440102210542849615730265109082245024184265903013473968622172689625174627372151920755565195124917999143112547357373044222806685895505909737246201115817853323100939994853461971616169987819976422311784017800396369894873626296728293155458625943544140939389417186136650026439912962638888686638741932742250181360341165999240701947079996034711618372877839583992197100079627039500177360230257215486359707844250385198579241383805857263173640181272591442406967550426274907504485937097751346754190348753057307279298871191167418966408084210500023049062781531699913128752220532144986318004268486992508321908399593240130830394676917873932586183972048347767958751843250927509172214149409003362756639553966396008085144121655222232624021544480136825276341472316197654824708125260120604054761893852666599713059467802375378308395767645599031550488440723241665337215896699142789868156411897348577293848075861093425500761435290972661300725616494721987091856890024373902350126494911341093200499776015535127293546389979976921899855506314050765256910027805513690191001592787469214247119935220695198679539641376111774124712526761991172839792923344009546801533568376514127096259968712795505066985010683921046384276375710124777340051671596519452025984639089251079254758555657800693977318762784880216808190785692148381641901515966029307528221620268855767221283908829889152450595836843337243129978817833513877162149975269537985781513315613779739233569696446832278500259111234352539573936780466324379131132527869056934329582577014864267961936742630914178496196180013804910624368697416616252246418076856464006850731751293235036058778415938395584601217795351188224280881733372464906159958702933068822257208656182818014514519660052543728557699535594397940604679188279879696731659985926484118992897988700461238234062249206569495330759768316341537511379756760899768080058379130053748926772515527913069762794165145837874509235749702675872153352278349129930843959236148794237911414597035944357758624684733924840985317693690375689476505120097430791197456655394992707817372652786007574983210462071667806379299986771493966617062915093865554855380662638165181973149895503833878362890583247556043561551246469818664426029932978303987047641950621800809472102682173582316242136873980774104894902251535761315009714745505540415501557888204393948973295944534516114165122554438082071582899427704773893532531405300924132968485697491074257253271992935054378365883140267043403186813510664253359479450700756566267153269519765811913885497963318849904897773749682641420173923333003405328793121188834130064407051025635269138691815468293082969743863627370885913218288045628139207389840631311972959032420702581162999248870753580916429591710156427861964399447526622718042845813194602842544109032195525016276371269582443049860630732063733791740779838833686187377137471018296996050717070322852755100727819331291419426724371427654978101635988717653293881906420251051401196512558115082481750816519625593951848331361135516106073440423914641676688346085323131468558736190861931761126002532388372861380589909972330671363755246234009270676785381885573992540214386047014659760192168954981707583855687753830306269147835488657550737003923185177837506293197227701424450744604520183468669482336854916804872759350747373908918649317508512880770560840065692484792677869150630973815512831902766629337425399923875105836723943164939845789610294019590348499171366741225831631554270836875481496064154729654770039901540102998625413351441376278479046092661834596799633813655856967276602767254360043498777191961891544692137308292523908425768381572959522699761118534640373904462649533430037358162717821241159679917349619421367083395472662438671811513735782188586468652690174729398088758178776817920961740434991834303243340907460854163970431865957250570306297044375201230808060390220692258208802217338688809768510175069085799077293188949826480234987356683161419798491591956038296056888168421307254242582002330750351397218979736475338588557335621357228477769847826394976163044465991625074247638157631886064379046929602305617394593836053946526599173420664620356838853859625781118605348986874956398472758665223362559487808709714137242078547703688689270103095459417778723689838675916795643235268744682814729140702807478963766088350340221642751024403075216754392835289163115659288185117595928779338918915284124752710049956897583294705185770702822217305305689105944279793862411658756276270998747518009928636750890406250198614542435709365004375380561205918948322805157472310886912738685554489104307364986923937033159459291797894394051506716504358451834059585981029432024543436856207858729969660765623385800934290078729892854232649561211936473012333903146708491565093650135292342659044077787032016255429896885115196693433351598067990775450125558312812920468246122891390001602430327579747572628765337605492184215660615948661419275579552566209088469933570655677244717481606141460450495274005268421266397004280025481448313240000903448250734226506952736593871323287686386642477684891852060798339049016335547133855559851486760492111863776635591395041511690948990900914621452300942586567291659043643446282695694093488203403482717040498171593509377051832272429163250414768538851170813334491130759911944634280174698382319346087693050046995137433033157781309481745670359304908218082348351581617836659818264744465149241436918643365854196777752559157010353490410654357996793883415967914692241458829986326552600582140243644905509342991187759303583822854825054075451684123399603667338823514459567140243267014230298186014843510317897666140453463936620413107790913668659930396132150224770436416942426945346425798371973852889957853880643062508812310416140766440523606427662005108080675813241980177408820674913308154046456935768563561326457147139854140577892565358430745963651431013429112386211175451227219762461769809479314321279465416895805689408652015954566809191107248465497965929282960330610798492997288945203158458152750215765564356061457944114797848696881469335308609826657509750304381475879667269021689858244270009912985322186392173437473048989456386508632980531592937326813945569589878487985154801807550035375574345941315925796008825964268345790956732697975807015864105440641048436633806235218595765015785734231548410145767493805536642305617082832137874143627776422868662001076369031944965414831899280489199036048923139651252515076491444853702289886330082266878665484627039921207942154790079949460481692835463444663379905955431103287284885222122337773502313993217505969967343432049894061100748731254775094874143184079404476261736668457547703284766427383665459899931274241571682075160362079672101995870721438969033679353184832841796608884017928429319381527278625202745596644649746512651255957204333052802952167106509466494610044999700309669067715052729781267827594771526633204736036396726866957828698215321830861875336314604080507407758261183593062087651938414991433763949327470294196575784191913684491472932188312623751515505749538419223976226983231901795310274873825793177456915240209134364985944022465277177841382893895064548179347400127038420470975948149960033060256249613470078201185150289144655506227074010498386314965117543886890250470166566336384057825338283640120976736992479432530639227882722555309146474364996445608802859581897520099990027837800806227770209933894360453779307456981041440489519947586965856155098103467297793604412453970813501753747008837813343629028832534019249578210160014832117715922968091538214936472437351859363866692458941650992569151199459049374509906102308988665135366794452817043434958438475152383533375495774232136649366927573854623034659510954748344202855252854653023997730935169227000793767635968462504075827288630073521143290156789646139862425054250326589209481309248990617527228205004755755836936353685333167935472800037439878162973125606722520335487989320841567023805957889634388994475019351047242009289423349604477010262289240431625207025381733026359952034239612322926824376678701371915596480590942092934603878229062878103423118005262992914043183650882630726832242365788419810431248044846660020525519949658109290706490441201615911911825967083918963507865881618357248671614478696969469055973863551200116785245395555894038718985445983235287615087911240986954571077781548778907374899489515430158833716131537592456372281384926416329247877755863180808902614006879980295086666236448103512878341874457263409088999845500213681692765858126033130314859838229284370626368269063057798500532645278562035120920730936540624455376866002310903315199943070889391436782813436659662973339557439779749256829695521593262550620744376169589952426246319866992196911543212062459195123690352642358379311917605514940404470289162000697624876575446244725552095237073238006852341765115501553266879219828091847268454015184189583559453693310513603981040610017573256331864445179776162290861494284162305484622751480998417872640522126159845886411829349306850211856585217746060120181893595752842255418024867502752210365249757766520256397569150182217401096274083996112265710808736004854972512861081089379987129544865152507782004907559206498380959409596583117807043777006800293108691356651549489995600641848794374734896275769545071840500701553224415353738836705236369970833852616588981652003394829137322753110595841836627551247261621967544355066133150924386744161415088025244621728058625602003529146714511331464718412293674797469800709682683017111610117692727746683500138657813822064129755386850813479747154998846260053623235510392744775848406979034547073997936241439724566442813495725562473197524243012505215936326657136477509716708837860625913768690904432090242348823054709510898157364393703308279432685111120723041211910529124597637833824967184372467957510532324145111080715215485803011687700178274733414292366544326836744127667769392031939964238028796050806640660107438827916412904876701225640167981272213436522683030817382160210976923196859485683891487557997883727015380363760588988081507714245111911208442920676605815284481623651261620790115867479157826514179629395057296279193478332195072495470381735614139650838465629877686361359075325259524396597493029155060989780030543944796329272297773076608301314600582157545767876149718989781799056767648926292458081654297870159712356818070352579253110234169342273413801732600873544035186638225645781422638367128241736306254208976130270871469940410664773518456224482948647537771386711636992712989836146369632840920082800362690975008984477048231089369258363255987106315161740230172500035678373793999765924547476744786316087794570639491696102131053413550670418979495155924767017056790321843111735082259512856544560220440485557245322495248638400283088838802408977562793992797689581655762213562039059976501008646727439852549047785508834299592198619669424563859578318812566497187080453996340034518103050752701551663245272377928645330055261993742100396762044145367542657298091647902021862102884322039408054105027990570744552720388623468446963874876919914927500856393865137345169289088859653400859148546665640654740758414011486097566794207910505941747267165184449616344093913221108235374882402469466532963974456787501105775225551657024300568214982585617020424767564809101137869424240725169907494074382350616651106432775854611243607926111283552653911842727171297915158005401907699212286880202847801749648877757270265502182746776613656795409725049275493729326060967561463656123858629288531719687501596096997647924795088606643049850762098337989202314029784219232667211295705158612146870789877659593045549528545791034307258996970681383370395004234444710550217611661886491150490466273295150934451729579386294983008295882460265937930880209235917761411817962992862349524410003720481074011582872557362269861505838678291559496586372775687134669887265283495355968261678725049712909573190711875531172762735270184030303453505982378914994995718431840472374047935438743874277987272604011766827412150894005104316901548345727049603007095620108762583702303169032324915123227067754983514859517771381227078803003228644310566052455394951871148230998082077109591569756241638550323986805468049862254006222924058520577404838776559824889326989616939134417514441457230744378523741686528396109976618793147635895108903347051381279421086110478119979595339203194954212442961307174732049218624585970110647557940007704410505866309194186509863001658679989643089519237605522881475806257778178272121938437918747751653660016957727272538085470232705758340730791375689470618137723718304214191357393811115120530213354909138412503082484038601968636591208213310343683927563587071031504936004847982314102098442078096737785546788677210970677994651740952641193163853695038888636861721413360527755578759392441140300365731809960719046077465447465955243865567984116645276263605339985813659411160376190530373479374873076487929150258510583599593258290075085225076769921191726485757719070646456303730989486649268312568605853868417240247123067272560052809397850326443206004229576376896939239829719893597602892332857236904910577081404730496479462735239836629290707468582336184444286716692968631444549798922196846863998763899428893503158805080165940438521801600076167499388560033094468043316284108349116444051013431628262676617367634058761465547010099210055372984915837574478258420692242993668698285044468832982680682980814029066146754973731415601185675152308180243696553910348927909299856613437080669411365195224435298076474608696727307254620869742210883681601924240510880370850151894770918105483888612444239974713250783114170854760640626232638098887651517773629483758320828709910031982065758480804104792635443653336402623912388015727142114241952037899705892537837539997257888990063685945314400123742534026863393163614719970235800596856654651427596797267604553776529254220094696456388341558990448081045897760790797416852849095799086214825315908725688869756687223776819411456607677114568100506877168611180570865005345490725591013189195285414368678073779277387079601391319591289623417402065684006355170209499854721649027082653301888603568572800001388435230994219118531933052372016533932555152583717153547817138823453277170146566435344676210037855227030534454219186114985184254789691019423131370276973211715015208629096694856871182040808559902022917183587189736683553776101821945370563538647694691884282623033829296360771246472853764789194795363324085571379516284263253721444544877657635134252530907467483962446289098909881522322599137380952020956483632670528862330145715328433944815332861821092534478561071012882436479088038918755644979982742604887197908843473625308664109719910004891264120214687381213812387918788893922665759119896251868184758338918305736649007946445365528740690938629356607140306607939856397740245407946242202108501631180195514208737513382181494170400023759786284239817949859762235405911459074669251114448015176186793756463166234018831206059481203864227541540374679847362033242586702662653395033587661315449883193905337659254482921110431595193444348096131429271738550145171015217724080521899174831849336900728707781233530141750697181746039450918068655991314933861082438474708099168577582364583963647052206868378497467255095463566955261840796810771609282075837975747076785549945197182864030463415688125124300864240428911514571548613597596268695593613440350890089411718296021108113857361327037751563877354279804699653523779002001125300476390497024912400372078107894863248404944124539689954454151752855917793284681261499291247513293927434666262425457079674887984834418709177161357869455492978589700793770532270468108291546414338022155753584356286316031184718664584570504381877473128773036020342252519023530898588010535643081572423531240744795835243416150879866701914906030967376413328150670691052957629617248040774956611393620928460314789856801488007668643857679719142280618414968168173098896784177671458765149087294662477659629859384941249580364698601604466828593919082118788705649540778403619487807735360258301172570278813680509108464175927248566611790096847872379900171528868030569113743792418020817379773470047929716933863333236169814287109707373977697573805296641775958009842656265016086719567409178703632161116034985061301500562611634821556380869688218536164690861072891397288388052141979643103902990575366122621516704170574791637762320640200148516289759011068835141114657297934747868548864391842871494722329720402811579264278066452615375301598592963660257577635915053483971287647709121331192770722050779848387781904161555425880582943045704662899319495980889394437781639066754573653115108360031224776357603112097025321509390246143754713113913798857962805293414553405841112326016670786281023239124826559354181154491643738067911821129994162070108580405600848241575349401641371615776025377775178469758720523536514491922343352823344666902526133256028675311677897866930549979104277914117071999547684492491005003391001713300382389069199436364584985497805579494519244288245772575032227917423785168471248488128008694077482837581511535277959640170140319069249917583811905782254762561356520812031788670152954617454667363173806303546982221194707601656237628130117310711916333869703055588105561480860148751083366620243649538713114442404501283245627482423994810570766764562963587983946694885054471188131491555073611212172740404670168002413780149370627096761383436654376046045789837368043165659981102055802957728874574652087165148480632413745272870606545224870773489664525143074893714751911105005093152295795067301374818974124618403655347253882592578260452418080158914086477363855776641082527393667921548141757558717398218668229621618612348934081864982272141286549400617508788019342509814733810302716600063098424424163638133682262025448347898285868882144641835678426166883257930878278053802496253367279714719405692942920195793742856197112306421756899826984946255331927679519408359090946149185071515707400146633697517033808376524189476735292358433210853247907402131952676200113695226182898871189996426689982070432925545564834881036053715258968121167520399836662556026476494719833360738873110824535244921228456737807158903197283202751759832029485352522738075085923377749246371285444935355981582365376893442809126185310765369006395563125974059691057490028838872230316860832747354377864620316214346277841489360922627934487120763297171931098675884456843643417606241542036078920204102492792709645961956553439064947414699841072192522915764730316176637461954931258222189582249740153599046442749335902989534546367148714254615159683141621657584106875358415558330447122640175246110402745770843377455094159839123164422507384808066509044291476535764301716056686459393040803829022948577759551837506294993867243735402645242392082020531759109718974293898566981282556387768430742450713031997314925962143581638394621640121436135018233539937973506974824969393617673497899420794522051514880882914489931287267753075813381197267649835475422660970378781830105155928989747633401878224236563022977193233937205380085314323288757193263822294029030111212280323901359151970534347570320201267975539318341167901620035348923689881061145077770759455616235642409878014491470625467270503653576808003000907017946120439290362566009849782672926712614660010440225127387322808349971073654830325058650657014820645439958001362278322839882541733638669642159075667898299355284956697516865291853413066526215415435714982327683996138137350915121984946907514323449926669908623307433665759855832767992490712303861655357368782409911240158359717597157892492138869190528776169989249430370375919739825942535526675267532397925202983912219484604863286617934216783853817578282111657829467501989737664601241100646844969782283240490596932381619154143565844705424560764201097266041272886957560275861691796223308115337419680362730790062776390950757450857816042530066282769855948545654977326882386642851961495178078992686151100467476190599673486421900785908137677210262385977469948117294246003633677127940403931196572928875513791985788611152182385465610824971329303895179393868551466058422189048743583145582729860352804519624094777323542587953602869992383552440342863332206867489919621447439763417348947509790262089920989659969092727428873588689733582225760397719469623187240647718965422744169280214852678032375502181169649766442067731037356785690445898750984938572490030796669072501645005895109774978340926760365673934762166851630359431062529780465580499510522758935880914807387754157005697967246810501461074762470110681174032507557609639389487326931389358178390384299825188169120808606330475568066478220329656439034996060910898058019059841452244217534817963126163729700149148339703592295225214606244978026995970390229339440834684945185149401831109540212093744937894991574415682404220749654929620133463845969576353664886195302780083583153270840786227999236349421401254332031124296370974425520698313330095098118214797167118359523133792866704314008032523357450138725275104674804740087507862038486224710824420910876330779310638878431040856345016100965469799078633610195247767563880493551220285170960690405924449828156674386089640948115493871645705181196328808419263024375419724769115555492828445805621923280689422879805214482845420922758845519078979054705949672645488593120471295017289381673275991947126268094593582531477729858719415348258046971920394589955280960912735881251233396578289814224365573162938715828235927500257900860857312476935621120051439650511994080393888204277587865002067769628774834627861657506709073000578786325877270257609466204808250160351934007664026492944019290054433246605248403772098566858407491445491611760210697829521855191439835757601972591859991123526532716504052250288074248629482037076614670504329075257768913838600153573149921473785647046927151852676003109648557837245709188715414043620535398859891188446140408215386714916120341327471028705878212663928133444430696697844070902785413896059468002109291360028301370034583072401596467276068823279340176995078955071222642904118009864134754503339475550629325411289926126848112940929394605547831181972177687658398543075084918820305131498004011720753643768480072839865895789951484709702752210415267555961976391783347380837792205943762286037798782982887822885580699805283885728886677265995811867170989421644426302727984279212410370205833285982042064959134897259406849556618635645255087090288680915651769853051820443105235765515975341032539622352197496261883850003372621203950829851950165175942871036766821434859692804852482567083959081902463673498209750741997498784586608580446587892439428231046899457525860841041643512937373257860888643452405903670819982242984611140001668249596634358966088572374301500921053172510954442614186970091915455117517068859561736903559638519603138606132144129098142309446913088221975734123354632780601068505430185575591213409375544785807106206919456414121391512677854363517662106195978480052188803625538489885398890521703065164434639295521915852262123923575834118927012586831805540597354305285576426138094114969591429034267900671489623675340721420634041648361273394560039427682013242893802511641148983015539361356402726387155674001559474039878844576243028540489318124499542083603879991648298758834631311776228235569468045406875842557805042207925670791466224645299321985871888449166042443995043605293638726381212611697729267471250909358789257525504364788581336977524662506208863649464561102044670517645366373684357422163294848609954153529897364422874061405639712871396213787863216828481698578768429456646581443278546606855367208306587025854102857363619289172675463537031988862940735115326946259428770241312712804847031546043555372915222116078557072101918734615601657818174726597993212715762383200288759240979024386202851492046605838232058541816005553058096500357079277442563509927641325569318754091376008851744814878121057663443497697357674132413075185870533081465316585016076826366918767662550707171090849793604381337647241540484941432331467378338976039431554407060663362767266809498006180700208372277582179278063785980409621182654208860963107029700518454431598683682339918528670150575591005999342099412688008978477763202719970088359068309040126136753767524671882061029216059328432237929863044479597150288203070134370127425971373549307615165445524669577498606743738356803730774865858309231186661357024131012745233589176061583203428551016407184406860886328002510988101314587779273731014318158909321923461659574583075247063679831350081120567418737883346001094384936947676740902048374755906915361572687057639083017016539906682484253517969041347340689962783021135643168504038204198263894088666077882140764594993965555624947760109159280654066852593011966228854073719658775749277862352384814707432522542113391541398066450605120430160126519241105332210853017612965814870340603032061368345192628307181509804577744601785209972282633288664899284526909655802527279688833685749440402867799582395744014835676806865354120709867060708103217340629552715720984584627421470590253916013693520458353104573957400541142752970706114011053993939299848283119117912497432884852877953549547550519738613767692645530933085196143644357913262577838724630101127138138306394092088279426613232604512604987051132474789984740980618627301419359714300356174109615027327651665371635019147492991820110672336942790101812367875233300398097029037066995252944857839214382790104739171912507037204828277142004619929372588513761537463786099652372810265888476918155431340989082094214169958410038933179033138271557978613344669237797817334582649573778286195079630719917599691001798139726987036046860789396850122958032056631681298562402869394237873219068875341279721611717833505070041917647805421374290477642182311739691050490779065880129597401072416796192473871195777554929450038170642432586653151827312337352709386405117221121069189368341905286886312134872445654194329992804039748046231193277886257339560170934399955969622286384336469720650891582967056826331435724158631657061372452525993950816552487146166400837533381691327741519574294994700963167918328512810767941545036447010856836145730711369878952718434045185141234040058491998398874601248297130919602667673826940365875583661970012868291799945285617475948501422363483799548620015245953519987263146221785100307600658454355027142137915778635680084360377332597467286048214796149024024070588653879737715802174221831327259023950337816240590592429237308154060925493021490823733250882032356644545713131633868129026127691204871206828347037711780968197593627305640035373537196546682423345736875041276957434178639504255297470043992633417742807138963787709009552528127487124257883600015301552150984444173268640898866019090106976303607793126273089138834727162778094420640094360859733520813608053973452349768730073044597670572686764760968022344162119354054586170044650622943087129641298292642942547434714515762007689224084863439989363863415090713131092041599859219191478378989092562409336972006674460011461502965248953931557180202319554604018295315239516506058744770578095259136271336846661943275855707087492316132347622753821925384532062949344221127987456306184928202124327144020316988014105874893899842480226313564018310805250444179340091932817067610378388621350215484949441451910780758750348486436609768219997038048023958427816646761030669383670202320730066648755887230823824809160655092351171300206148308172779702701467689612087073605669393330584249656628226909237113566690443533789475533825920789206391955371213043144613065962464016725637450582986784527804887293750975412186503336233336040501769496292191658566623017435891126395605822689132757839848147888431162002508982990721499583942126078282307041873603530642273717848932576029448364637781461743317399451161179586656512045897890689102649282604772819714500537366855171344096372011823881722950721622212270281882782181756692816956594897266674045586651559824996490241156066618411515323380589957811672457001949481863438827157519776858301905562412777856487867877371354511402086437822127725358315050001383833887787057676264481026917942279054788603285605918620671967886521355527852159393878244953140999647772189800635651242444391641465014887218804046271446112896400685625596689980526086879126319953592043223398582358279596065927558633056410271049201504977265307081404562174644080566659817491311194767224519115172090231999488490545040686584172514009830803321429431041581809556397694765312433075579148031191120177097704118792090308684547155677358767031007913208188555472373486736258589918377969789882538110209892611408546733478170369527666762127143308437465758460271622980759765997090427489463218574525954931037049061674046096392003157788057234578930419317524995769999688206912001957361024297839113868702325494317354783673074638020339994877004533786160622557297648695812400164224250144416629170147768071004192880857173639066246350280102343583862542525977032470542953754090703385231726907815472497637019451272964487255910586938709455643750543986634779440000061990990035406584356569712138509982026610411736555823173576897917976845331930256457409221689102574594969026647758253533327201293947802189407656761175034168759616088007953679401138613652418963663167035361717736956061894300521969208138761867847479168795141031901144845923716053482532178318147193662468466862973592773634793955408070289979624511457285669487238201867232018106207001113452883477637098362104464494952419506655540616176773398486350426484815011732564463305300308926278170660821937568187209865573645288587041073820654111852079908047977657055103198988445335201208920369067406134632027855491523771264131740909969776828645173938085318281507219552337747909182568875861647373881601456633346819800302238562605619300165905302265632831162148439535423800352453598100485445300981005498892210778405328822298259820887812290300383251192120892847415418232574836717076610423998972199111626163130065940836872003652620809413682102515582593163352172606849164764670816671145194457777955390047477930243924609000994619833859174757138917622439949564033859221606300534858077034889092989632547640524288484358346795621635721811050328572329836520719383909719765584126371216164509198315473430990843456802672184603245997110304379737988692961962917013456432024454668098427854260016181929324120043716420075072962044821167413008400992411258891339751996593413111034260092463929459392583558193230695416350038268253894300000237696927338505001534220550743064579241339298756769415102061438179807065964982309856961710093322854330301071077698106810373807595727029232563309228219648615029302488322381826751856818017703041027039886859061711755636596877600565725106624560305184395736010932978759569596522696493796316286608334595193745861621811025645199522880106886297921081027999833222668740628041089576581275831385996849696730309678276612736154381926661647995273787430129975194406883645916817498713664693727748837263069080159303039120063427027336951166839288864163845463589941254657285605405849084503359062734961701465283848774518417733765006270666685507260896349320366374714312942648500223792992606283748615780907398719991622716320813032793065527679742040451669358432995344112937335268620294789992665952628723621841387023939354330650314968455972308278246133859219439875956298758110850233228839740012161495162265985039735012206025039736034516640614764430653632230778121515860383038095274134796158929088764114792387058917137389028740031168935523905481675288076297484379112783807262616037523285052088715089532042380479940635509646870353279417706214235926747133504325416729206165458888079659220090519232582477014365313775035154277559985256575188324709785842154929843625622191537453243282615367150343088907033336794538105812595781360438660769447080240009918016603953187427818738562886236623147054751859621707382039930249179290037405477911150417478704944694861438448181250817677657089064054981441772418130830910478390330002568986791015353548846360550982974912723665984269176075496611792614383559472147111172362066640230827974987267527571247132326187339878237681927271873515581392375631157024305976690405302759965602890604881827618899892617066144728556612925745119175696515858388551618931574021977720616805023995336782089870902775590027260943682568410684819840346470357542016146477823534113459911260289384572684617084172504762422217018035321796075693308603130287084314937161956074688914899207330559232565366050107469400852640508411654284370443184498106055525663951665350835556770527499623851463532837412448780524484041037756398084786374528259613430628119608071906396638857339014810327375742978964311845706647735695758082971377110256845919873007802616737061518052010243516142647934212019512721749047611958547939945904210313848538326850456612449323590623546809891502371455901451257530829878929566800449356391999752201464446854548939836512422048059572138822686248162740123300006499661495089949002160219539228940572559390131927052086822610664506585803215347289113784391048486157365052213958532566413329324986403674964161294478968973459355758869790284388090628398625945201950846015898915092878485347448061850874746377759982769296891710568887988554222236859545986713712828803389888965690214164772286108486563219937854552608921145585128154015974304926414959219664839713583249049342564278939440969470669074515184182982367431267004453045765052004667046525711056437962154650979383493369361057714088070592268019777592262217238640310799337423917651118685900646431065429095769176311221886903166818149545189099066242073228675522351249841619580711637880812194173017730601232094321222767129946509439363546159377358948416346726899278056885241881632628254376098244042003895562175188711064032232779234273282884757472579116035506526762796485466314893664519095260793882699935941283603872120070003464344485554417666401961695509781932396289005021532944752664768979417169612475136199553471140210341105737408344694625308392114075561129884038828126905314285494821187089698637288891946980616227979600602501710463010050869593573300908861711506067229578223654963847218920373200765540469669208275002404668407481799230410763706605544402414719146542179806195308916057407875303708177793575389552001135906319122809555531216688633954260068058188575726016653850572786124884692766129537206284736137403991497588580454822925734660234265004107338612097112539733284250053709106481554939804066796042985480927114145429102811196385007422744137495454654992641563254716884469394488154682517215561026463306461903063455333430599985846803428979745292952961627218249922795523489600469997766845430370313728532870966663202899222415314875379460466722508773139667234319047545360199527707122653396595855600789238492164224312362160957313498684988553087902122095932831383534567319707605166344520171389051670629262014251157876311284709144922912956375010384484662863668103632674650363450917745797227432663989051112577549590932301560675197984950114872631241553731372657017009241879367902154696861990864538212026485951862970619598454228240875236892449250963431699971980440344854530214056393780404422254974860751456919493180631959821013589551134281351589358203373766987512001990340493466280103234505586694933065235522007270137905731156119484606418738387991931928691996746335874224213333424277414745490116547659976229445176119334918901008342920275639777738116166896660430922286242136002668267255365386663625476832922397904363967931895683752221742978079041371008224089962289602520792165109689647654159864815120439436582813386677656789660486868927445955908845490287983068698966897747556044576893046934052277392777253007195317129145934612094234137112589553681441536737648029302361781819602965412468686097023824673427522032882468606955653814635378567678128057817096261103783427937176512696749692187733781286383157608537372868053744282664876690070278203526623597418244048784804261838699747483755579635284594362483404079680582070299125712265875157235494888546926948500707674905198588736410925095857501347996734253171704046775645545308304663762433296209213514089525117159396419260632487251115847679885834060837763682114509642841447252182940853518192351382579809260012464038883908923969224798802578597925359816346935050411153509178771698939512954191131148162522261332747347365610068205633623663260120703399438690374225137191372679580090987962711018231147912309452634326034255546999695319618013446119419784580079688925498646297985666691857124450149849801417572144710851703546682725492817083272282993824784222670688857520500480767735274715171442204877640412914942471575878828827808091323309869044187160498188634164926032621642513984084754851080315650932869781350602230908012678272408248483232651446395597658479495399530311756042601218431515681028787584914058562590355468162940689856420017777583208280234248581410050917125692529974730882452972821765496140658394134018948777571803392609619927604256945146739876903872095138650055757156461461054251390009736213778533852053049182488709080603294957058760037866097601738845559426013985785476314501120783843720727152807055406196870176098995202403875196165297263660342885571532532511959036619491309717404090520852377310798441689370883029897264564529846168669641436643336512097550431551858558575035587688148777590123666731768032776678347344656160095097989718103710015079928566437143870579537871917759733319729365790151674085400969582088493937936832940325616412031827583607468285557360390724179942734771807905548926252015911710487294422912538419018138578375743429390374752545534538077834627295305107944565574301234426045548125160283775912265296676244036795023720042463728320856336676138713444782070241998765965525397269484813107214579069693644575660984176304285526895286269953901066869578942972172861205124922923123654465666424721075506820964579835660394646695116769013183204178999140556746730210149175512451487506500094090465800851499932051034163668474962334936944062523682572043157519902600514203892956452563036048697676901737822603335036592471453340447629637272796553191984429306523138692464016552218886376113099168611498948698676089137678578653757659191891832820730311170819882893406686727515492265300777167862211439172727945501308147623248549740082372713727908170504347478489436047262805650114655671707365236225166128449542637445738201563543264760229279201760678703340396375882261833074642095382120798720042164142242566716581059612168769887149685629418708491464943979094414266952535946376321680945427840313162258557362912287113325300951157556470817207406597257958594464398914123122076804097968295880965314689322204533386165876307295535823804884992140001638716095341469003523331503619221234821579479266099585639946707872142016788856887124243896909976315232725222356788951897072825733041668575855502155996269184542610210720333532395847394924301712154896048698574854924052131938353951733053576254936348546708241802174582397843016288293950997226768020084002335247174061002088040354867735586580373009326500690468135260993368742993936205687645676105621655804615747956105788515632890844156658906418522028547184096466309259034282289041305050638146005222423262622822397518802380803544162391481720335196029045819017062477037013732082335639231158224709400975392984782281524196767311455102039550897751351438278058770080099743898907386004104774077586705251407621381450527530263654675275911372417007725349055561362778407070854668222278073264672004796903573653235722745581397457597848133133181093535853561822428377790537315234731614631796795728262043594226054478096010242335282365247430546865798522609122872253664958798435897716482972884298552322730239891599310906752145826347575158651310158403413343840986226417320444830052665281718863052838363876334757842560482726567766073237303724523950296235705877004561231808531818760072229769616060003333396994050251758446282123856105113510978668543193926441018649115037312825174366802584599245971679185481991075613566029084111084988779356016280152356876021507636703035576647577275446765686945737971347293642659331407954431935123249633831465317600631206464046172074137409817908387391644821878953010016146189200745587618683979378471024580904012760631431058564514082353160220723535967363733755394835483957043001820382523607890077081562700090947831680388112351198438651438015372505183987575270580286492856062881849237147409621880698880606905561599159130343354486309923349311386536884254690646730595453793748222821635931425571584953851776295369636763216176661591651845228800217332669684781155783010945409115313664482963868945809191239372137383023129968409850605852306884914059615569053896582562006527796265376986321033716529450432998536262873819534399510761925512238943464510446597055105410314043624288056628737858824475683854335874709381864246611045923529915402947149791947157330360539739566273842357993822812517071670135312330958337446669498734224779301134968531151559513279051411624022763006223422260611596877548039457194667991492903536049395246483906800538861552475469512255440926164995342517997457247014468118316815670806528406949227114226412707441167479679826823649322203651123288743234137265878673136959754814757252662704654565222462636758866510906599568911996012275137007367045515198413241392139666167838782043115470562929384181867009450764777198547276655526324844445233394668978420734664525206765684439591691700660909055687512135855861163862781882687674798610859582967976209589657546483699120362417858785193143421073022588893239990869446178032123834466235683427499921662136627155683687717166267912993825791348669760060702229981028511127929680407512969016699716165232215920994400130120975576160658749845384643933026628412499188725923995207172215391730782876230054196650741559400922568554313135879655173074674330162087381166773822412921917601690865353098297708891675081869412891105407517300374225424366721002170934054851073843879274431810820303267307587824017065167518402939297906878217916267679733191148023062456384210873542634309511976632435832566829987718238322390308685153859209818201985455590196286033554891003406001204724021677488842942072536331197937601832488777575451252025634753465949884778201535425844047285309553385513094441273570207182610007741864430443570825905548107435225107271716153927807175518609234400450542059419861433122699005094525088953812562107414451241254239209574495675245843349382592996575373221461296174627735580679373410929305514105500824532788567184112807203702988100518511963414092741108571463582936203400279330723136158169980676623238393292518734914672565931345502364865026692607183565616564203730197984962661892565836698182183379574875183757247627088096848355828747415544210559982232381414871745828595287236430177299116015334291649722495271410293361256860345325483122431064535454043153716586832467297572123331846131903210317254253125106672929444724695469989879296705225955751168382636789078773921045192050270735198350542939478889425566045154587618551191376780875755256461414243846312812251531536650445281756511219378596166824027474243846562140884532278710900385790526878205771408178758465041942901940062738175184311612951792382828512267050180348994855681505283197203275143278499921035190387667213344197347602217276451747374177677713335510123495670464902574238908489064590188828739803933624697713485705603817848578675191134429952211781768784859112370536133957529198633481545929084795643887497542247655236359998741938160344073531229421067093325938858686654939495879521269519166697568035913672321245514579723176832137589356189196432763435463155405614796217236208920105505361961346592313426139227349504207119473786988549805102616832319356915918126012508657931918620203289054633533988768697594501669988130215758464177689268516391466886328247059232863144297621198396741898991656374405957631922437430459181926184789869266764629048048141553942469818020115181998369280851419781644815205710198740987314531504146431197465868673447634019911417439950633116188447258754899359829392836969484821782556258492422479856574152286976931337035707076503714854732815871133670196687522564908536549236472896506029151319442806850527475235680740951948417556352569898229975453956092551597831152949618252699692885878232332405343839817715998710320320684029333931652637607283921544654796875499194838703964351397263961202955393493191812046969111379095417449647154605680519555401958669621853301475600182627734697177134966415594509063224091039530366861825905636779041041034298238249991888780375250117269041720862643367872315900819732339546931616651517356310370061993407299262543480917086047324623670224990848528185727799999304873245171560216526100078258543831068431956773829242854227735747621088335058831292364625251452902485143448883114247185205941122114780391202450718947175292948788162988737668840501729919836173876085529760142652146229960451087112930581319612049302694756020967025154561715482910814915366096095141170189013634447898186456879109713775157692161848704292890071643560850114279449518269398436465650258339104896895868146464893346311773746655996573142776525004754080867318605409632548957202453498218061713107733541755971741575991146472453871687347270793616003753623864259005141024814484974761927581489088992888195151283030770941868792111513376106448030121536207593477322178390153416840673261952441514207550875669596585556142915715973336055949166721130781744954796043048536596747807551474041446699177522353661317692482849429965851135003930293023729130097116867519622430560098195681736174291033756154025793094338726320809175120824024432793233731001036706950485095577059653982939045997189496900598518540471726054947015096213282405312912537992880344910925944975075287236207269510713898683458187528222649239219515520491504795741030925080902292977091514142157331363396575648639333623902559326537188872102121594715895615152460856399257162425327274673894852287706724765973747392449741505077911911478527735018658827950963998056213316308978290401362587386514867831707532105269030976815399048403630741467488216517879942276487941227171230225153992578275867901200286635430877559837797610446879516626142569468611950965952326663702644232706354334547511950461853855397275108103056023329444087819641792933247598132703447133628338589896380882177203895999816609915328123938029931737741323075104492754835286657627804258257571428698942250618108757177153768193438623398257437187816746979534865846261695851530307303604556895767923047508494440941825305510363309053603896731697161107735581331122098782527788332812842739587687384588703798805420688395299964849296050144748700938430642162832352739623038647407534948429922129999376206551976785209269371869746053918178783115363192690153456901047264293739383509497594760694239888030153252717943608301966702269136084211845795954590849486304594692781018683314129455372967087960539672716510454247313682538199561578926168809073311836103902246598776859056763657299648205549757092010429640299525786802737747701474216444518324661119072357330375298561450420004283765287024731895397273053341394610191082981413000788979340458193622143425557013891384617256710156082373027094209455952156058637721128758459983156751505162742600774974884981994787158328259887158128978407074523416712649974700641004797172146188866016219883090222405444859976977133097491554882085443677153911222577367262101381887252475959373595709593870079995289667847381298812188221576383518812376085959183720140287657830624993053767938918722201243791075618054372701972188334374227525160253630298852951732179411374288700618537981335103188557840473171043166247259409191602129427673456390805134574936189530267807957387431791783516058943209106901862636478848569536330824111373041471621885225732759360762138400126124532318248562981330061098340098988398876642061513606543438463912482810156727990865279330341409273115179341065337145876173095193899406150283180307454277402373540230275654433786163979800905917189038487588037013825708026835709060047749357420955014520901199269610083632714080999448604630532046581438624842639021384413962820640583590920293367765913457860873799360229095658420254129135976674524584643292807514226664082305992883632860675019641514507980224979503396235049744812342869666412167045754902744220989983846927675993769273045609255781546058056701436973616090141886397059378079037978453092976724460618910382633398847144986560777060475218748646650978241088972699872332199349977606867996511097695869555204901312739793461655183394282445380571827395267200153749948802316069721035816199295780851557015453747701697382002507842981659534504428651471556132546093848249320977444900707394529777893357952106961281932666069774625141789287093442400816598711919258693887050408915924677921607004184892015533653229503201670471229700248425635761807591179758095550184804951826608626337549659380990880457586550530170441860048682237703040417901205601414742298249023399243414871015533459983491443940647596438376811361575504874555606851646078892970290203440559220943864309171993122585897642607033025540690444174276302400246325398104108987366649038333050589229852615968440176578467042271129771781508082192835271693586040734159288323002771325757347929728074592005617429142063763364437382362875037986695799333098830503171749731558206638635833733629903829532042645232386684486901440561027089170911167366580792764234404356301726536754027849205322548274582760657874759355370204106537997552924982158197997126003511863800250164021323857022343103646174793862134513754231172424757269025816957294285306705599655950120524638681315301960065729250817889746660570993835304380697060905066537730652923743491744981630001387942367926506707325948047837310929831155973542151313374244245600501894917785740964513520931594135069479090286603460618310981684143752904652224492477068425152627835547512374093856583236745258068995747727632426043496265734465380413022764012273788152246445581995566928826084157904016146853907297159848999533399572679222444150509604142167503082270559512846133698044503613546760412898066975054781216709114638078372599270565238291865452492634648038676431167497969998900799756628399005015723324373682112891294237922266857384512225693003781312138321682611496083091133838642417786703108406575737009187044781368956326491319906962749881935984638481387235773428127055802967890161053664820190214532109442659809497554139930066483953995142442540698677844914954012407242545764371809567314131165198670598838240007209949174239506672631571706402417071842536920847977028779447582575719773239551533125492745962711273256446660590032005087716745149875117408349484096746106393743191104393673153374401322277496126805643168524534620071491212049713050706567472710624637277637372946884863883490648144538623897818798625775967221149750128634146856404358234515167051646563768550071521189815184006195200010054665056878824552765973812720426370297958979679753054517296034861754453541297421860173481390186008242429559094626813836575076216321916955234490649241591860467901285839823135060445142342600176510735203375175583904361635231668159095211854735133503467283939635183478011193591293691243595266673372696196784114426321754195510373801058710200256971971373921196257067872947487040597906525257469841351951340674738517660459588276591740477267603412188545800723699613524624325645631467263233409133829965930202399961003577678203301253341127385943651928977224295129201056616960904003405758677048611856947489717800713514612813399676695761686635773162253628759535706903907560064151771306486085921095423639688025084899304413006197415892823030527954918872317335331243187273322958791649265344811939497476688089558996908648492565015652100444754045600639597825821526766281475257849137664709684094742766004199540272463096331505058937220974391024977091187766002844630482931300529968739918971172931021352192872107461770054433095710170610166375925501627410610121794523840239083983141343436220389518174646886381412912189512895228696081599600866834143499892407464953891180395304241939115665917492532493769936668090607194699489936205727125647699107743935711977813730766294465823145205011668925262262016759945838236240818913105864157491634765235177075316851664832289422309187012672907717435577140907301849460554086880250963736838404086059243563179361499110526079754958838979687720261592758170387522280100977907330494792613377852165021891590902244207444467176582698362489616515219720311842956518279228899126029006295071861354337422901501503912751125783311564357772688213052855701648215588304973626719706250085655340255444666412856728111782440132123023886051079969413240319500015656180420215627077209208053783278314835901292805953430241320943469118255709290087472749452155304453743056888383700884252593655659167017619051425111120806341859823241254041030456096741137934508959967011918884264667660612485133774133535505979796742282696393388478872557402323312761092171407031049124075791725388130284435842376513966175654621697071848662392934601641872956866939394230454277848068114066329409955583605677637270124257451774316975233485498012992065597955511528348363421108516216783595835140978951313999750562618947964421758163500077548274685832039413441132797980049001829037591173115658229944156451038142730246395813660670185941506331361914649248633961952287164546709037223377985085870885330434549963812454221517627765364531640032022756206495686645101764719692425596609777974835772940328240865381294620730328562184905845994422053929376616234884566882820072593985241272591370886613409193110234703988309389733690328053451360715142666742766939620750429518495422637070784569461777733013643244449751506547118809805020120848751696047468633777715350817584577126147105456233237677610478590552255057203271202656565061824671812927836075417615832887068859456279767074409936347617918142247687428155365113121448529688558601253123719870282245115148402170360320425459909915040417316817480364058745970138559495627975550707708738337096063965190315247587269361648938531427408407117779703276732072252598376552266968994978304202554732621143573043615548062385042600176111876281221627972209168650666490171832099064844629709546904578435943626934889170178735974349210662571858262973127147035890428492879962669286612925981346687728315955769380048449635151409189782451168904069639195194090658313816602640602737463920517702660286691881302781565492839540084490367581583950771150343232960559220301721251442642668647285841590406878776714055408564921262695777217454825126999382411976956613523756145198842472775466175925044102510111349694515788806283027054268584224442557474268063504406042307846266415421926651702561641236657131949324851458661685580643382009743985443781004638578756025141011060687702724721168348408257902908443637468422243290171997544546797416676540922274363911349383690890902621411900757574619634335802694038101191812565145272006835538150656535522586888393831988992201221744804186126822076258185409268932209684309940219352916657340716986197944215947357502067466903590912744700011772558004635651791453083939358664526856455559583737797190573037764520266715080918501132184247051073770755384526927486490171029072721107294134701026090071614394267763585433807724343546001440673440014066126149929869494812807818230512978685483268881752881573085629781649024200793378161062900933063663889117258297026478250304997968029569864354283347638175029489240116105345291956084712683215850837996516765043999780284393836103049521262663041977544395566534076595836700461660836659597025656059831610642012827379135912805907388594498685813590111299264653513393393595538545559743569515454973676972828769515088038725073533236401282181208611344469598210374662624950973040612296687141686457758047194515077870664157714791389272287545506302046325210167189042129379094015376289485379348831759805247898611913336835530630649615592470370489166374085615464168285373041185087643154223696885911689233415489780604145575887705782045101405608776154874931966567269943883800579595243388702394626353215184509614777606473555518204235524469126104105121721631295011916841384168153194753928868290036977674541640693097207259628970277040586972821862269607719524629219448656974590939500333440709297159631830513560592627968106813303093282444482987169778788222028482292660466981219589978212008176165467321350458594237187590857435660096104323924624096678107121444721798393865719832681601672361158081714502035016123267587490853903922171541692373004430108087061419377993858533912128262538576292246519026176566393655817273323491678609923955689421622476798958534283430674845682954263898218253858179204998944685882269137613387051939414953941594868303040699354821517308854087941904697952879760619198692772183719054869321795814501491521429495422005143730487837368257668121237183224470579994979294148011424615172178887388629496772406498181808951305033890935976851475109848390796705312559605831089993837234062729233729370085930181377299570487282419586927775652183422058540726726344550632960791093039829297280096064693376203234540492627181813090623793632941917456161996585307374703046509373158007467578501841950903505266339063598168009916487028740043544679405753492937585495867883165348885696480998032492692833383713363098539475466412391490142992844424009573511070780966895555017442165955272860386183394745544744569039232718061449015078971976258434453403435022648041550165170300021698886674920114614338718380312602853130650137765929556344518460594547355504031731609534405028509150694339724270660829606919304410754793126808452443085895994724108327410799758485397945676605987156807745861108173943135669913978936798431225097406913241232158112669787401046608384679797719929029467637143152780983440804627262186282454389639995960394814390170160205227326714278713508049045302272120413282513867579024971277393146981359003948059252798768910633782180788213482105032688721877986598060077102201552773381360654663618302996126113167918919520852046016879488753095492068964110918977364146584903096168019790615722322057147202768895172660775621351748994517346626465869417528624522808676852900392638938590593617619934349515529193893981611011675729964858443294977107795287405774579567476347730764917130580177834506748722163840222290626959068176989023355067141655500626884399695205479539810033949782137611840467552985868101662762240602752037457831260548777942566463683309487887398030713689377265692445861927212565050589105959302045252731849898783261278792245862962909476284365839234845786126726360856693497736790882791739192045339627972337399169232829235690572286076273170355657571685053346575885154837113783474918537590768372100303952276238687142697175730007926456097651570024182026196617895620979149187622922559240885301264951043969158935827352649060239061440897788148596559055139156836367916812399551685730652482365152558546351220003468634331439375861762142065554140825851173155479352187917041307997958119841806653755698481852531718437869972160937291340290956494668404431717420916142771211679058738860686887674485248897844524348061023532773461555295576178022215205875486619971544288395126021755044241163901895167746894345192847170326281906405206819118597479511796695468756870270175769401888063044903646503140322086834540591248803315469461447487591864704928611431336431265508985077174718558630525883963379695034402615117552627268546852859698082489386643195633993508369359734543553847531640215529974733223729424204389536919326182351802719214931545571853555588389190317761751346736799853106731567929931531330236404472941523596532819565673561965880971710390159021411657582633889667014271484857206069204630980203830626167046531773183404316328781816630927936410552311647008490180401621093305946200398809262147631235072567002096187804262538977094148320789310010005952274704076377808888718013268999443186488992740085510349676328287959533512598373137070419162091500033002433906718870823429632644315864146361824382083450394011624066366755300654110342154842268597061752534378805241409524169553276667757578823125536617521147292320308415706754852707931211440996203375275764829640019720773931347779919403473429823032124537010925617354402907822992308718506290141774279347603192917031342798437095859865564510726656341676895649963567631229976574000563321525683457565355484546858109153397583818637040598923379718245215234862512202621275448234256187080305348453537698430437067995093245118542760096396950620115641900380546436175194302504884198606109439546710079935776684124801618214330293690144729871268977432586821183243263919492353768304821664914023979252167265412438646100400727456673195083903493889943110196100563910504270778619149373794215925455578963153871637601019656221562485415525871470722891882936001444703504915715208619710989136183578583260828043524261462761657290432953727885245695021114331710389666172048003303955651587440623828083987845523931876540183450289235380598402985102620476281353081241548162706697892861370141611353771255762765208254178188261568677583391802590054923199251488127452116760356345569525921914978412376542180461343861883941880042642446832085437247150499894813071999750981331908765880789920307525182244532473931328352041817346256246722102321162018303289581922151358865507114216277007356397734247213115859762689976182161715896868892771685210368050220327596022033963232269507367704495905491645352846738840616336793282647374987414758161316847158450549193916332833748397242062896735027392383331862751087079748768823623713239656186730435077833310951712665266246999551362688176332132889714131867590040023694146697635088848482045120904637018890200729299433909450292551817358732695652460190535106580676986332635999024313883241701975150526581919375272816549539220757858868247906563920619000486605519437485403885936705266377125809017491596027259596299230150065578456607212147141315828499909567592294458803328865362477454960984530570258866986795552694724663699293642418675777612870916246079054256306147850840711815759937646982022488510514142812344004238320884028489987931854542454316824931330876746791898831446271955041820075299170218684416771621897648728466461169032500226759023445867687651427692112043635308576908286109966431614247252731216445255513708162043376505498509840007527473531213219343407581543244509238901165323539826955708194270213943475597308797989262001881522549161298621896279004783927480629155219110767904046175692868997375026290876243700287823330654513725174424963855106093178113497350332983981058430519658015084606220305353906860136419767222044594862442893123136310180262245087100214216515429293558505209566496064017630896878819422319679556145889048168553956468419634457906622724260907363997351387175447472110345308845936208258971788412435610440953899693840979964638909291327078882766569355092157154318222225086469772521440534529861423342632204414091859741599642619641805112742967653447475095125781528736114131869389384888891032517714299652745185209371483889491177689279287287613126286151756430880631045262953797297183185095539935375904702283671562582094149910044398130130064692221042767369133642407938152323571332853980005826397071180726738696275324237150346640898500502142911880307127611681806749683141448378394290277348155162388216647193100301170623114824817436930565150487421356583703611447378012411727800811904874955251077780039700377101816984321088532233343910946767417338041998361279152519155684428648772638303790069037110970834411401216355032753860055814811746557032742390770405180074276025753077741959008565470774478326776930401562340241486493337195454863571475361821424402310583616684435369880863384475412305262349624603865487941775043712631632501858110120559091855199232522753917147609293601753213326804186328825683381865685407175611167510114603485146887474048939965411816136079209943932011576582162546081148195312485966766474718442043287327833325103534978032057362918605329123248478961074726926319521645693214895603329779800012289514406440089759589998285926211368896710397984955787629116603175651670940622568693322425601794734276499914224352592108446758727579940299447781925871973389033340408478828514985678466475113781359266715668264579778089709452055288623613800585596846679256246531496063555550848185124654712661612585937143883824443321258428937548211580460919051469775008040635064983118801194097515229236327141391909273430273631881069974801511754877736142583057532117400110031081183910720834445526350182681578705532678984291630986099789022256822489768761289816155382814503293931601590466912249783166121181864941295569326823358690170098058884562020823909463838255230642053553466404430547274620825493397135114267608337580687733581661083289324329246823134898538755591511602651690121185725548252308146108436319125735468274124438966464970629308769927976302022432379971662737670601937059853566659363085034431113730712938576271129885027626863234066716222658801932610298784596066403190495201115275975596726255940807555291977553327340945396310289157936020075320960834481484464655634441080513976140849325923019837983866355828958587206218618426249510285727058476949490046261826960933309163224881206043034629940090601416519049602766331734721305640920641110950855654629442402320828991053383528257640535110038720140716849822021096354702008609656980137278471284195482220867261579698885142295173010424692041391295335034802221020722521933595317645956972001241583983472194826303996223457003985184959661936369594053093479222992111950541464510025511962007782860216904748579453315864016113553462234191924112786350176160662954516954759947722959328192220654070137203111572888207497764431054599916852660775140641400828617250907357454825950674159895799320446352155099362527971155905662218743210696697067052436232595267539037971337930953817216139501286441293259761416600696284513628924708129280595412240495993695771620484745811957879781854473984683988104239710556326851869646344032030371521620307105796532225448637316831852674580778481568791912145660907621621718904364111697208805789197093133874184881282802786144087999406846291899120105026433393246939402415873513046007127165534977804340285507281525084267922184492279257811403646343284598144730768620191050774015374818289313900293799079289267741425752327762580824438525033564065255038890408753157988832042833831934961140014094250120348784143864005003235280965788649793851174441108982853813835272265449229656521934904278370335059172585973191376344033350445882398157029276147954797132770305028466507694816136796838717768982281934152995414117501787546901461993407334875683083441250553132804780043776228484998783794765228223105888936684986277914672044511649359621306461925361047514716574746720282308379034864160135907353349912920392063576160243909462334707790669590316428189041260015928925099481299404339572759401050277565388273574492924876963140307439098753188533669104105372389113540920789786981603212542058366688244499187257349506387054196603144636682572486316245260144647548555609433917293242206374726149401507617664031276977045929979595752523700584961486327726596430616779255316964847715096476666034215021568344792963677946679622901035468238547371090261498992775918331039741826974662777448679499176972541149096971148987092392251817866580212367672578011200670038817016114619070285587752958860399457028683668504543727129665213396704967133408005286022726009779918434668290268471955207375911848958362974528019756104354130464431733308214386819206483275196663366758611779266632757099432482146292095445945305245570465349227672541291506978652558879954569738896886462880930480374685143490387345069911847651502832543484128310706709209956393048703834765821167104789376196226040680306599496735102356319869531542345772161833560508158405174974784177163425566521257543129841474799778857930454186050646307965037453240374030699939003310849453128799846460779141899279439607882519500740303793000571562718829722900767689750246467465248611973217973306994050557199606133925231692180603448560433462191792368851427411607950495455162263141820867649244921357223362608020640752012585387628997869127933110903226458464664807452400451598212254450091945420246560800114392995574925376759000465473552038715603440272883607653603082619041073237473193600447680562404102603665834041778890732977881849525980631825257202773111367064600523515607342714711228188109592896517637384890269820898064643728834964409718267724279627196501751115702318913140317294614586589023638168367187208703832350203487468126027420797257584512368221624092005122359127507087098887169180873016744112110764503962734093088753718160093918505581203400031251533265349917325942885615605235355469052898385505746476348965951642640762646777595451497981633203434902850370641850659444501238108329811833381955557219361720303434011324976014690855054227801769792425265262956847269179105175498690166836947966203622716800598880636052926961195401299510417214748167926669933589476010103653852800302933916890590828820560690558396377809052129506286475394344105468737192514311880417695073170177898225675698822257196528322168090967377078031800951877363245607092230404200582679065037899570607008952912023806801447527554041970703862101744674921656534967129291080713055282841087019045432217258700857202790841864923162998984655720081554201680026343821591373886477754796311242960275164538209479077017136717855982093106700983048950473518016630276990381223240312735873712377242050679616269505495493887979157536493858668420846113398293039537823342094622222612279531631659673610218141795739028658677034332897362544662613678512474474498658669606439079816901697863740671593306407702345375870666672720234911302769772074160505237119840779387825293264038427847652905825332536339892569146257098888017542762108853533720903291242088122299741492916555769588387701615254616386697317505769589126201261453937705819515409251906197653757449408255188793417517774381008980722710692651155911617218129633737533466054933166097835150920159002062006013639771521920987701060016935508598802181440255644334656995733220572190242728673420314069150358969991720705491325051336639850280714734032655814576077626713153092959374812765385749512332228098988997575906697390295193242991161597290682537279599525286731573767632574025861871266071514971589127662923933214055333546908894208332119964314389016563775249265731519684219779047615607245509977422360464717574599200891904221590188833020217512792243897383492634043002592584063151409952296731213236945005914476010141819347148021585836084239561245246851346191858810193374778386517927742121821540818142465716643011427958340815836989742932500031351478314826815338577755832566056951139887681696368608449477686083840777332363196892387214376739443427064757498182864206248769750070044639591170043230028454674560337458945543233974827991967168667381481950849230862172857722896247905016955386434620236317218229871045598774824714907958170013462563412164712189310920572136884761013067637848863601393559860473393347932998126626988648796043236738015045999202962721571303072255723234223659223869538784684224647866628262053968686902164011055363445483953473158077549860563921441041946423318434447231922961857856427774847332946981994236907267275973278838824753115782944844042316474189213972231836126512575737325941456016240017818129836211649008545867877015191763440374285957573157745863264037638818127902967266305149300615468573167648922561829845026405179427870872913048156090373898613184328347247528847708558703161362346035064131884206427875514286957011682076143939396654134826277889975124820989282221222675203423264761629910646419713106153385027484618196411959419381528757229618820948085224498179013362758758678689758208382024460331070373749357525247609324218125515900702254371341465884978743361817864239759747862072729445056522928211463519650042927840642929718165439521541313359044670442350688661500166148501091982003619253049217031767844223749073046633488606686218235379164118655828579162124783190022908896480602743034615198628105601848134778366953620224070070825154386101590589177918995669574232469691391608025746026112177021443598834962229546084021489209494814978251255909861197223582950120875450897580864586093828295274280010088355059755635163316516950848642689883363972822495087481197461150603583778387576242481847464257180155932084151883994901292083209187824080356354521809773660877478668267507860946575530489039912169990640743654381658060258700267284712904202317302955749676030083607090502603570477528935658624157895497755198849964679549867049712176740987878094157324271313041773995859390498369886778338955819592893874609117435540017734512875808718853482999699997755808203199824121890708776297065855969424488863800100425551038058739518063716627176768909054120412311927683293952470642192232994087733552159324348603976659208126785171845190933981699774586285448105070009994849799809788454298035839353764276609125054860755033218278981278714318678481687862444554197203507713450174974789576287203409921441314552765628698135186976615409846866962289325234458965205571580893175733277721167839218106055736677244707030421386315517423825451276689731375818439136348117523811388184489357231752197798437536780144408788193037981568277102161539040024079854744473900645185312798992314736973805462232042574536366207550977172660601544059927772167547628840699003038585785172359297361571422244555375289078020943964265897403237358872247473179438559053842142436026883444442573272408416082354172081912825122673291917610429263839112424216151694471713675227942050131600846790819814294766353317176158617413289483365449605344796872827076505641570736778847839091959255074161489825366603847949879076148129525908229061334309319069575011608008888397919860755500461268827738404679266128659348859678055300663646184367446379806253860979114740561213475063740306489787201881274833383487119783013718875884156562774892365946578254171105173672105244588113408780454894878883840809891892055584939327335264831913633850004220100155093918612662774063086755131536007731500517210395440719149147819319224007664630215842461187799702029485039845368890535960307305337114755600552854656580284379927745997675031285830793923907161138740272416037128327466369286843702890183403441686602999559452175460238309561611928640213480881056393890025438067148795689281523271653459956910499695000938095216752842595314605689888609571733875939129513538176546181923179152808603071473640397997316383135803995494967562212627755907115751979194669903263308961154154330057688561548608071731325474726131914692898628316985811408698165150985508742979042360858388062141773579466340741388960606599585582044537717874905954302238386571282829655745338890025321894639430222292651821919674610122412290387479289053332318777081782814916333686399756236131096565406027315894539847387259409196026009084126457912229289774891995511014754791492722590461629909924950858763547043323396266534242373960466125566939548358507575509396273887248375336267586861922568205046681825506142542006038964231464342053743364409662109250039266677628499910974159423345293633800696326628223002177589481975664363158587094081443079440906270635509942179017015868808725783493686223904242129707386569961334535551133185406449712684491014685628139692231238934478885541298726305598140294038060876404737941821103525972767396253343660189154577037391194121447345081707501531693805071757409762653399229440090010590198795170652832771898966557215662410908451565680606677388937313464478695906453412400013520252424781755363268267944909959651509607378498315511901823182690572217861590271722728466720689658278171231812981666524693705088977025323308434717355703659709656104001100341880395967630560885556885143505737479204863218341261874049602832310803362563792667109230794183881106090322012307066697478431196038657229947290336527392691772243656976375303142685827206531263200997316808275213829852237784470022246882945231124482365780279840019970815691342758914901726789015360426078137802849832447640083399534218318347285753229641717467420642708836134866811440847655258679308721313572034231897385844185725149189651006588660030481846643225845284281848545043981187021638081742909992273763147351836061735573211793562433706438045282892115416764442164020116337143430907618571225598801939767851301503525943488964646892910208796111914621513804956622626516973984593656657233152238888913154372984965186122969742586520617850908215782451635918326104078522640278443150671239343601179673241995507827516809829728786414374112687753545429050064721898908574961702202159477837534067929410925215673285274933860737111145245853647571386353994916831504699861073458112176329794283240478491933637473413442942825925654632863331213340161104581319326825780200728492820426604476227857897887880299934743214454783549637584738977891215846126913598422280853715210965972520160612559389521390096945743144013729913825343357970011730043312360593607765019690228346101345558925275372418570266485584543364214430404464507961417947966666497958276880265929021522546854966916862783842534059816677242063819045666578050229235442025010673519113068247805012692899617139572442571592562220944009082829357870731976263049304781137186389546183434139440489214162766833028363417477958178478888868902118477230371463135076596263564746059469821687271555563776758314795518354372634410985837805937684212729854618951556999849179517799109891475314343546594815166160049797266008581329604322787802992424830679651340574544481151116514582648857004074117079552374051296182272783705958496045734959688581944358749567267770947846809544335259175232850677559683000283247283871458285579355393108736487929874825554433163572505051773139648416089138581870067727398530675355396323507055894440314292967874522725421006667455323430653546789506609994008987291451087049846180009741079009618967553363941276355648533027121252466179377924056563689644777768855124537016160761444918554102640519899595203608365725843182603130371888262107497702056977386040164014703526245422549915494635440432768453783470073356743801178189404889094054227715903319216069444147656315136906545647812051930793971773431337090957174439809532560180962794231258403774900843497380366957922716863357859879004679639301657189444831753293078401578385525504533274043497782958681001465842864036870519725998048165194422037113262739818483634633904084884043543225493521476708753549862836052865063452173908691000834396849912042814631894815845047614651986065712326376432701970712389572267700511817638835700866261521773181117638891099651225845994606743745998991146067023339335798915244121553224244947860956901854923625955123614365759653556204917607013408510406555830299126682318454692444245661613271628927302522572024375723555734521944408380404156176940164648420738541467948679007596264589845030736236293497841480521881107916127766784414203226848465254787381867331187723375099999412675233941864119120639365910415565172861577794164247506135610515240221512475121535521506101351507058492500384402174864259195920570549413251424816862823514384793023647689419359092163501012699622238425805289580268440530040381119223981802265636928154551442709161435106565785103485365468259487300547467128094056889267609579948913917452227273749369128304201662825130953734484311532913854596828233499191337110096039694942774809003679722315462767728801946972385907437396730994156279175784369960963357142887523435253979631940880361244008104181370537266442341402136533512384022378586544609487452829234791938317355917883926607517638126874705044368086935623411866411236468348952549719718110501076292733965707818249448053608096547733403665489149794914112108465646334142220785535524586907956850205873020306651881459856323595986841026232836354309949682046547572783701068427314781026789980781419821743927445799558594179552791530370711266340361281394524636655447341441531104276815330616496079916484073929344168019819445001502203541232238082477386075939636180332293405267192567756938272172767450719714734382307769808432273205986358486422692504221165504993711237530881354429193928620421379830503472580154366120399650640605021029132275040603342712959105867879382674402927759679532055093827501102465601250419640196449237810717884012284971083052339827638466986251314627572475279777786697505956130836712285376904845247809169626802354491917815025139223807168015338127669145012698011235343159324997056504074966894015166160267862202487433891003591573087294338896016199347082289273511652947910907443656643276752233688643373777032334740153487410875986925072400647770020013986004589423723466462431638309334725585553616579310335880672221282831097259382687515477996746832452310500719086795837852319867047222659610700989303363558269525492386121529974525081927188705630353036866644627586998390691391846884175565560686098518238798403812683917137202524020658510439079064143929797447060075812711158177912040371408440214302413227257651917415645553552365475983807063577836428499984522503774788359744262088289304223686205177121828431763589652363469464095909183460000601133797306941321991744989079316693192002594856877892934385972603355759522398912448379809148591050468514105242980141441886195374371789415085816539540145039241563606148687144758440207883699816802716326468403480339238857045466449500749531209497898232292466169519465022765562037012672715125875067438400912951819062876079763161685454549196120293497444805315083233315267381548598628298945157728947959160925023273037484062621606400528222335934882331410237662760326839023743642339996054232916275780082979959945208734838040391167410898780172138504570867728338463557869905929433449171388368719641266670795362971254295848175947115173502496832038408985112358014979610850761737263685269169785366795255572822676598663108666900407586176153417169622612610658869609585265658133489369877876936133036368302290562219490132155470163274161824079984418398674282754983957170155319455723849505045280600266384590827614139462869275265962868983318604292493128885154563087494781100188694384469500362509730777787412348645115154724582478059318890803521391269065866501588942931069065527284881776436825193238304144966393161602209121169225301706161791487534128554585475645596822360097450735987699317796670058315044929254089428277431784147627204755079616572573813410684587676154804823547923748969140430743316953400072101879541619279747932533690400603482164432376138068806026499527855221830103479826923223325679694972920341881150816453752828492449748581227564720803235545967323676410377130152563035163193220784005740257759422283292505152347191914272775887952556700947293314474544874378276165487831765627356393553248520354021060179609781492519657023228620202138451416836264941596089691929970264836052107859173117681648572014123710013520499133622376754984260692573531274245889421487072579394024243771372749051555327746436037168144990170058049933727345847194584230818238509518837994567752737883351145194905209603993110406462756414951883917839110820736528600124882034749546422311874630239605551158060293917129736419321958179426432830313033995612564168080592447915093658297727073341300996545781640032822432271322986868738780298043463552304501093921431010160152993230752240537649859371954548903291292536435002506614760439422630989463391703187997257225497827036798666954852370018763338248984875690531741394996552465648058628788479619895607348081400846594790980935715279654610119848121452503788095064554144465557084822204975204920627390500734831677077255823824478335053354631313343948263384756704217858089162346261835436366465429236161221236755495462325951686863414403257879166686840482567988915445565630397446025477756478773289902904295465713425755232945011532616778254040739817094465354136998571241164007205372059395687862587782368054651446510276502819635983324596584229480428778491156112652180033993500351216968191602792171516084511117829670374829116106739582565042369268481886057953843062600903142656788573943195572380811294786549157172457160629716978973784375904133243358930249376922857515176802311883536624512093911631316404672488942733431401998638113010225657693988015553139868644750188632328879079877872823920091126100057258199540294361221830124775481749364756257295560592372235253598143700540319767161961307886105832297335908407806793082968519558813784353349456593528907650264759604858582870472225359828278122784389424098244447871938924929258340323652959622845982200808196937050531802111670363732243400354796280593485945250503146907290038682511399458974937322398014000524121887905320601599594743415798933769234488548117807476202456151875359354927934027512851682670546254196323235402371858722123842609003761037976844052737545042734245763001268400881498761178859524845765286835207524268661456107461455205163937421967237426673262219630650256633160419067300559407820615154787655090440267804776385905432494194112473592881756679247980745098864555654050806662477325177765264677593735932353884326267301046196875660414519209672712087471787962174064157758720275410654339646686287891220255328116539014449495695340982524695601688324903024596098938890639476249589796242125024992202020900380236764183452792359505357915801175189792762163939529278879738197064932520000583241500843582580743610997308238464433519308455398473499073887691067959530516745836466152499917187113219093248474910410190074172083836767432665571357624913330640927800999355196461346096650284317219614979924403496491406799918121458980580157074496227471000027747139002089592987180272345403611505185803231728136044412856822358602672517965300123510721491761957549402746323894313135020077797169602686985246063427316006972993619886676260313360519398864769924104629891148039154784793208863854420922069976827566077175373975742543212699785186196475552137142893630558419224540951685896814199179502088293550251801471806860994238708604795634497981661646735623569222766914264618367254462796448480928616864187171124503849236161460010950110974210792172157945934612826584280159472882527642921743423362978213226527158562526147311841338559932004437315759775794134990785953959250376687870934363783980081958161892742622454752416800471778639825313621369984940543533320869168291589534649398106909922208101837963543896056305850457533435855602947742642839693762604159137379742253679619533860853274748929030351727623370440962912392008282998378935824074580325004199158004514594398330215265988610818139044304429184932086803962971391902354492678077880034254407947467611504972283198626251812899844657769744538661300418078129750319014384954783922989836860639282035821269435726104925653829879887745892331810954403872037363628813988863483231406642357801780467906870041744909614764621865053050016355292811147058097258735794644662415851853680621366590462819783077990479592458479668521447769416600998434642538164913154721993794930686607774867028570635160808127543586105334287067042787044575992793677571094847357091032487429098401298538181970889067518027833939094881780721627225539177361604314016958210157155982174152249201357059238252217403545574965771280809317009197338745790216470285339256082269802481864581573183866858277744176975817932942615097263909241571662937726048710581209386980349027081436551446399791110915056728169053775453805153089343103237681321372030763889568815789845374184778724263234903728858611727789436034392238477237917419398355686698623227273950847819461684314213381389720511729208965005173746482543283322492370663781644102937998826975630731943321603672576921661608916508427860145248307965410548298615908594403619755523156013831033081035232139563986557556264892951351321269670989174758998051205568251420240008629675634793527504124322785076720440963256497304322184303752498052786461843332242325140165784103673475260322877849890305639660382030349657901181356345651664526740156693967404800762533154431676641907422340557231549211327797888894226388012100502853501962894403978636167197851544985636853353262789077900113713303878144230592701816373851606062051903875686389321720320327538537571377839403094432341536366442481816113949611390214509725837746601774586601238412819960280400912672161753715950339576977281499392436907407210013289204345782207631086786409337712584561963746725003761320858746316192164661398860261661583269898897827613033595216831749825400278893524058176249854912256098449863467891290987455890539061341103648424730449455544910961688384119252105967396778205621734166319057010754479398340339591059768930907772825746028671048809522191197634986516614022095539664301738295309228776144755062055060788180846459560877312661524515659613568379180282709712311973038293354847146747537872461926771358923655864344523337563572805129270097597319696220470514580073218883011675565398187464144754909263978452153271428305936314476265914191538613484675635203461237913375154888872218306772670405931063162539762158847675524090745001227344377234271179974180807499385038230195911694357233242720860748006229395084278167809305212848772094849403784518330579483429448334142130129701574352938904414511539731263677813556880613071942786565848317609107396934566572471035659816117771781660406007744031808963771110400981403869806500047247158253402861049071665074918649882748888415458062245004229133645375349131021652574196920252152065551899397419416839825109092743185495067335025816644539233057139756962164939262031395275914539078480833759604106809067610288248930423435920003767754474396586787242598938031546565524462615317015718935871014958109940349376584990855991208062389114879882560577810642370437022715497264573532277125269122765777220602570827864074480697275742677861148929219351212799364778145446090947005399951695465632915079221407660784992897750724746362490017773317310319484702046287013777057812521391911297006359941836253166131079815137334229079505426967279281257780569745401158866172438068307038164413921097941272653811240477241201454284233805598571361095414931997312006948104028684982030235458568291191419583868505296054010682135484088032964540490104116324288287581993692889424937554696474798205583840198177591033058752240277701700861454100923705080281675662969994725284687841219406614741094755627414900704595106724827921561894412449927446456424259469906223788727129701216675862021708422457933239766298004367112565366954349061948277127895100712210828257478738609277347406080765330703353829609260157699535439013532484811305874524789558158968284093787056258834159188925841340421757917300737588539842023388089515136038251717008723301431287078665428921342813101551980258778274272282129681488152300633065195501026722485759122947698306944219870367475453944369979433036486352456399923747466701603437687691763884871896930927994141346482540229113678671869266532207990638073863234861845956818360166485840448015519937809615536781873755406496251929007526899061035253190477511464200115432204926240505086116483104053439621354952858733643371964911221375536614321682809147163838883927534750504734141566290056693299275862057565181193628790242934191365387631076277554056261652242185023163224900026593821731493204072742000987931447738146855749903737255501558290339838515381431362776087929091716696613446917184799746151880735695235966399263570538130556575724532194805536118490686163569672975324379297095182307227532655670551027069824151349677685798332481883053113084017858065794347716237753644127747676862819055357451747165841474990116398365444008398860705464209829753322022290899282510056771211492848746745831179725111509266586510463036913188042172526985617037278283149502391949007758847156338055201082394295236995372694566939537960030678574247819748397158648761554580083449971439502942813361143001624361253667916914523139765185653626187286689121845298406142592568456173716761985021092065891495776464548780349969907877942219859628851338249882624955019669097073912213306300842481508329420919095057876511330168151370584107616375385752648691773591216782064817361021638844485650632546701636139176197401412024189735448907798554626407455289228642235765388704408471385942390190693967145220111601529818193683529504253016552153009383046192231803801167819939807245341024878648601265990819877693509857416617814754713073320268255274364052109561422811915008395697659898327552100767239557674274323427120618786851786619780715797999029324652635914430489068663625284385350818361634554582925349525633839046157867263547320356880617637306538976487877225679904058446683555981969498965983662411956473181845536906910572252723622877740767121633041733753267968257438476890879644056146636295441020920438255776136656767798002866347609410604155243166430352971382633873365669144754373123406834369390178567831773717124747926809841445445744798318083134582006342315086629105026887914120546222864028858282995336593437931391880737129621758633127898619388447279266952926631313311351977942849092913826919530586445989806258829240522988575387443614491898767023497191929928224909455912248985689691114031046089036445502446516753451755741964322631437396761383363697950391788020677812214965678358149984932533631539487710045528479929299327265496607470614704434778217324569286595582216161705678290118725420862032778230106971264385402391837386099531108871238549712843482168594738759513953138223241034885969741606825314958400024910684453026599022241463820093091359683868668377836574799833835956427807556602324198813367844756857553437878001359019663570171701992126896368646777617044853769288552569079552625939930073011729567904844774040307743820323557402167278820624148346865334218524889809804125040856389773876804434363040526715821230055273719466299198182517500446870946447534198087384009051665784613517578163639275999631785423678518336572463544798055914413821662951390568273332923632183018132231663826513014849067442362934332026817116014988034449752642932830822768216983128768514799080344650223042359121256034848288940314746815796497143915851977312138441690729084657358210911665050190976132589323074058171764802420166541790444253932322791087921484596689132370106074933496730102849319956963073280651018674872362370936461087954820202720115715822749217256093429398062786231183086438764854955225159571156136898247951230486791597244061856756657192076818619219684698801728608919203934990915427548755783359802206432388218071501223055370924520660548956573698987839650992955882775107764501700944215532650426957861227235956019584408117400413047342711963477412192898254617490865681595248522929197880440087344516497814444121340711745509170872399734300549825606714184985301317882941865632594141885999343351752423970601165977997565430315349904771941892901986223086024080936268532022938959871349961367309927078732593148490257674934201894698277942322668023700582323288619597676911448543881085799008070506656167147615586555747550196027555478921605458347653835274142806087569197143342146394748956322241268531359292147687875505813195046675588189425196943168899199481209969611134581259870952634491449587111652920233846038416991798699593763834366785197450637036843282688668842767022188611974139636053236491554866105734978383655471441358310762116912134604833376707769380242163668950372152164357852217176344951090598224487918859069136516928561668272945959370926151051108497950003153687375790614331705416685733731054322723292432811659422041664587585329907099931262018353800243163819306174726850463267776250289807564493815202186613655545810881061036590632549414694881882624831927785536652745072776498721662334430521192320624452943548081045740024787131355347307857547656954012290953016721301220103660020832238036841543381667919545561739519362805731991991971329202234945958573289224251538286305967013001310555934797867208925923201146702540309068290118535553278188327361810281124874296074641431843450746270736915144442666057826497666443656196481639959827116950474736023612045875392710622849880023143162976002074335418075502893235842733294287050774613294044670514635021326424685949156863913572511153218077284812563059180537743793485265988501217038167274221659829130423876864075501828405946517789642705387284918701708083135078590073896272476273276347616592329685129398839753027239927590990278220996539640460058936502856539894194372905205913585841509414016774720707890000116583300051784689911596790983427579993641151303594345690189245626517020342586920935653679604920898595321065018019453577827062892013604632889871009131652810009807563093303825965063711904979478162002242217185572060384758697922280694620391599967219135898757999074629352800624079989674730254406958373950011752189732673934384164646520740511178456790498623551757078887516197440292269070120140663198140235722238494574127911119905416594325473104505470693187448005079102894875263835224734821039134254506902610162784720950255696113541962465177520140189760310588151446276346140303876392282974951720901636296918746224664840741524625904099206853282025479158095372461548538306798736094409451504013645069369487771344675188244964358697837202586181001361957295655744758714740958355531882974340531358618889918412164085276262263024724319156300707276060166391208293745023801423057985327554040775064302715244048460975236646954260493044336463768854324929113588139263169997758279559263725415345639766092944004439476795036003834173292667272327504155201905842755957700345287546135032741316759035307359760565627427598953374311885058322691439931938603021053071683954420524266985286147220863230007835028484051550266024340071551250691269289624308176205828848825750887271817745397055996031335681800100554125007662699644384916615190358695316842763117116529434015221878418565321468818771533951195744647428128103730103811923275427723334758661151870265789805736773665213662701030709777103292738221306140062858695225191891943966136891506036413169893094610056280502533391607752798678817574101516653743946453872901068995077627681865134977876219524802453165596030528582759719994555011392072548119564162200758078464231364800185321887580665790223510070393834951970964295134801713859171822648355184745266189058639659587767548210052747364471034077028395620204008150984296631879833921475372197425102148579836750517076615910872279509807059453582070371392339881363914083326603465936144842885283662596647335475389108452695674028079095601489760358526281945214440307304531661889465409248582058683971519060523000310602921393415595955461479207075279114836705082605140945558933413145703702281478024275568174844992298553477303616501690982068490746383244594470255823599787737675108144071885863963983374145037129975398314789427971386470956815218601215303165797197286841203850319363361710625100214177617913193319283351286453453503454409412962506886368622196388638018779441982424473921210951886736940474108410842345093741836289041054637543681930248887589196353908500568196396897851779574295596901960023782607828415772744584746288273906341817040349703447476221109307256097499985073530449548472469318478355092943261437282184590492105791532651851667694253063223076518707387102451376693464087202794944020857795302057371880610821207949548975370633666122642411912285950569603915561460078639084287436360985441265478829934380744649969417666260290251131239012624228460535751778665646638161143747975633356204345065664362091935237542167138196097837603270526903972038585787207832652212492956178121568839521201210200897727448654668195321449571655707066900944888304575102069734424835490407233362268713914288200725336450551990903415229774885798194150949551669902931648069593517102206306366361295941743139455286249335257661781804587920681131654879728931548199872929929198870863202111425303828990619397176724506969624441113889804741839355047696649105326398310527295917798180742251493987325643919313598883443476985478655847757214641759538897031257264083454649899876475178145086048272177282830450981324311280522588355044553044509520710432414416809927693236351521145211224425060850383181466525816385410412219334591673001559827820068248449860959474577492536643741522031590909197569826476947896751162308284002820541179765027324260873341628500456466501219060128148724223100016941373199266872630499853989780943438243175977529914747490895338419469956585168140104300318683582765791616818203873098159708379087412664537843683160033564546396338189679529848281555892654778650948265665900931730330201109970499837789503269264748945835591636072704713245297971664361244420770547054856125110633800085782007894424258381093948249501018794667757865080595250138937609778162211813752775243192958881437305706698684208440992516995576194962858417460548640145564737053004892342379320766991369227684748047381519233345161247196545023417759865215166370352617864222561443127834116485626547051866935872327585179992906840593134443933099621814797817828325190422925820834253081755658410099033790680241662392928968286942699619393583601326754233615006095726960111259848189594387111987062577150536586876928829277040114024673076762179530446455642213909667334733976458579266679845613664201410715648935003925102188781902720653834367200196370018931552283760205936178179400475651069290125515109061088365195787622008442091074371743386115503912873796113364250936755861603947762628165863919301425912200353418823216510173239840318547398750478164509894557485640956891139213156475121070384057904988142521152192128121893636228929321302068080239837406138836615762897194663723732404909059430240204057879392296038508103414775850286469205105310935992626125428033705536359220760790069125768166003349788712591543879238137647434776942794814596709741343586435442319326390132576642211853163601631691683615089957255671030102119501406525409833741818983780538563629394867756833567830438578598924979208343738211812980941546478120839525182438849737235822618835503948111476127323305736740281734909929710290252644601242700872212443687006791249531610918463078288336812538787948433282941637171316054019452405766609066016355288144516293997667077480861601762038167801054470678799343770387794768963621689514688236009562206975898053776386046909046707251090430327993047124498506131385628027800517294880704006201375549796346369810932430947675416024904163301076618424380522516931622357874426628753062934328028617631431121040445513995057071939213114378412754696359835450658593164175679487486893110901385636959251103526463637080993908317540662460536445539288399291869175428554366496691760448796555565009485382057952100128523010712963166786573370387008420323848583231061526926752675105825999359883910178766873771001603746790765375997776621329103422951684650314973902563280604124379866668578925838040365147482576199081080115775435532562479224407717574492961512876965781563523948330579107845735672541960428445164831123464356131486553070748680163656244500661603666435586988989666701668805459339840154471954970699987130805831292674301685420005687876145605939183524198185562816330583493788185895825654893867806959931618314134341695332142542347963754385967679600713759822696049990359274048183644859327293752555300723808066750453961830484344114259360697197830681996827622651916389935911886976659716512805861196899738819816499758316709903870317820618808615979126557736007600137199561572150500139497790436829577699336395100417136093300420058759329530259113365134044034526608395416771066304910791808358894445480054986584050282006568107024730182062096654345129293289232955057918090810248385076920704797319962079179707058418145922799601393045370570288600419475371149395134862267414216621320859571691539218813528961628092549065454883054699866952458827413987762030753664212442373733519200647606639890544175458586244693918704121255812979626230041909053352098334673603483454404751217493103949742940028388733930562033697730933884459561867683578727161783186395517924807751703604240627752912184229554467575583327955206134138522402223268657928930454007646594653157811352982764356219955893094867861416329976856613851453534262206604758487371595081392406485603671232087855091238126257823145816626095505937208306526291208196161286060798941849613144789190650343700398181951362559640340395244374307999631494331598402025616549791679038053946128457871809872180176448869214847154138012813920727116189461625577684732007789627691345986847760288653837617281088005061002025885978115353465259230964231097687899974231700708675924163656044991474198734072709883678177886888722124783785570552350330113934325752546921404443524943949587094495929681791204220211197954669925077179471716328701782730253752584651589502405614045794443770125306474797076105393665582263666081908647249009581961805201040250910997149227342333635741560806932908651766442932364024628379225918415075569125552210551293808189145183586748334990998018646655907908349618136192472307946464894404050374908667498366551687949419749301356835311142585812797849251130223809710807500291917094654393595353152609831263119289460150866568305625610573820277377595255297075850819340656333313440511728692643320940066134875796676154251676568813168093100328439996975698206745620204563598895113650465249849182675684818989615078064109671132610783074267892248177419353473266853158749133692275437451255913580316866821983908045142856486022489507834010583824927409948868237969797102119166894401598400593883962745282540975132874442668238638981783592138679853589111066112491013360242706756496891865788518708906485220504558369680735608050979250961761473809456999713786746438764776291454904568198299956226334917538665532689161187864714751238212345348281836569821982431036474908219311346324978653762938866241282569731034001190235032113136752022160675228695270412087910222423960159645122183231056599476487353875440019166153190200466325065780575553402339656406549591544655057187329115053034811775754407696192751592633365392951195294905367795430378657331220109421943814858674368126967647381261864809100323962539954349009118690579983170961623294896788322952079584402888951000860189845014316876988806117132658712166437694280536317173015040899342453474696744112633535657440506993985224824583356988813885461350445156241949377398246872777172589604576531783553608723922269756131502013928113811458967499708909859247254524816437547455494357738480095357032621635943992711814965008205027232375059030495214601107998664621210438806334892156620039924685918665190682287566455984929819303739954008925211515724322158965116437915010695906338245527507168606400423610672330826693060294242608213720678061175618392404804972571558215515154388912677803077303572955293364536195815642322834550007070626871025826349160979982920804881875189853544881192353126505934175122878083919492679029336838042995822746727145971784911505495754392860122288171224579140624832614158884313443628632080957224776350023079034027515312088545263869455184342668043868404315718917361545440960486367461882780449346292196757436152861183455314014786522441587334245178873097682308574266759609368780597851040355043576727273335163268385605160980979068998479835125071858745109604102116709200138227709027029483461592669787709234721214799131078197426944355285119662555868037609837434875784013025273348626463593337283993859898503135202283542308606136398872267624596569488199783518922344441014730517352320013729443452397146198953630778238827804355171384462111498907364930678206631476820054286911428373099558345225766893914444718412037255330749636941016108665730139379718241125484956853178755898793606902217804362214847442930510675527377091792819835184434269457825598598765591824709022990736127668366474345318856987961269493787756987989728189600965209926807371547700472420522674429344998251599341929616276634633883771651515075200972068822594332022286247219315588919984957227531711643885971763739692794467273945902750296818808981279111526955990404452504582346181918189987442168219033776551138207028307178441089826522492379328816386271512094031138750915883858576889547594999461684460242042464464892295657040453884459337067801297171730950749089505972163757406584792687998425969064059660385798064513291629287518435868120524148501308303674634503748067559631878729602120875583859240436171327229744955206842376080683467179533936565684491248386860142508798725683271993652426008217326203062548657357600605851821328038136092196826679261299402314237132889552194503785131111697548843385959093732419634404303950999410110709686309581776280967964086003659508076453440511958745928705156816624424359191841489535223531598535607004528704092422312885671067819797873235539991300090511585874312490037682098107937600658468104994536768617410147718194632610817238282243878084405282239325737914617111950047431418220437590377824486471568805329858551989580536332844957324916559988503999840196514701765041627459587336717362470938311790079264109674727384224565169924074491784997479521654661688868265905882512820441590418994205299005840203859535587236338201929719025911714119239506242373273382301515178050604623449622360853025655784631133252069710399846356912690348293997556403710104018917665250716697640642480239803091880043987894992683670067892685553169686879657085133748636102640422185445387827263582765973008170694616361561083643148367946489169882076009901366672295086219102298028943894042153051417609502197775983067287822940243676388914895042293217936605792789438867465847675563996892026284109245501957240664054624489231740435811521018654334944517480048541315664826459672384782985500313497644980082173548165967979722754855670785054771246135887437406361386322301309519248020056670404874011333397554368118142384285714269922086418660460513790465187776011704608413735878423671251405577231186474004835806391568605920195708133734745265723991441539445502917280318771939553091381537246478916142676943630553944659975906481527973831896895470836007859560746959285906585992634468054117678862730472597530873258318567544229588357993448917346059962858966777323698220874031210466730525177834307694696269576786704910283677028146326893657689324734942854997179119692860153009032851870447462484451296909816120070144050750413301535698639559308572171033921039101608658707844764339503369862423440225436083141562775842308030361652853451711806258078531864477954814050695833218051045379480388350481841176877187529485326157163494273287945625847724142849449296674488599823790173147526273311872180951194903433642983050091723844857035702296626340063146572177234696981762533801649606943990652069296403069002694170083761159341436432846030578131734191440556845448190301152363864517257710310407422842706923693230229102888022135909669895636853383939216425247003247907137503232406701697492018063631566176991099833377246874269344154102467897325589811763641175598018984569956334940502596372527184031905891975376519601432234899688349919976958123288754976987235061769898582528360312264109018650079929645333364994913214525209366968834980851957147715020751815518660162127837127881379536834739818250787916915146451553386157635823970961652841326747239339505568768714693662841202343743619621790654372407644176224658796749107873090621606438341923347970917563833620974668429457688965528596602910772118639478532110830891130738950028766976955753492370010097754153206307599488607602645740592856508732974271183535049986374418119269784407947816816321629918986972295908139438287751967176553335879854615506410677137677026432855982727696118282771992408762315583980931497957422233836975970911945992151080438941835337633813691465087474951102227218884016096763020034155655320217408547008198069661168191525617411805323228409672339352553010655169744154843630465294547633540037892880087884979894159326942056757735357143101383232843813229742335710328062870843021006297853842114987389572487461438338044475885660191248945812493226784703388458933088826311568337427931783725296299372730854844553072222436159244035280225043907179741761782575777862401722439892396722185924963270307437725980920976545468276571185505886186443371678577125422304336226790167216509311046821138857466932857035669528757902372028573099614260988716629031579776578207994694003866579535074293539177115757717865032014487573644812842387344304771408986750559108287591435738533367912567411413121056758740494212412403268426110529976845076269070068708847296594739667579494403682001697095922012659897081166704600892232246048010820375148815286270393592593755080877685032250272333276934983177171867810747741000758822199584952018936078423634504965382042439772320634417197258366235991629674939813213174211171013480640736334862080590106892802517652599645455766370778214674195663493544337142478202112076479909694931780381310332351133861685546283163229409901076936046829612732790871778442622557272515702785950192075110694746349330175315519325742953993694304444514686069174371770146386957216582967276381489321746490276026819017389717986548997706110668118393068826981708592939884861530290580161942154309257564407290085872094386119909768233829548734942541256962102012644475755619539201800187166360700266155538444430937797746463473690825873494993989973469816723241138947423849282959583360584078242009997418812917217809090037073999054348756672236319319436149208376753877211190484583355287356424668763645411390051291757323277231808574587985656903970841810707225273904874937088574474172467186483967325600912967612583350942735756515884099802110266718702709509785820703887980682398937282243172502938847281132083745493628471771254766385213629898375950053088852395332067203426660578595663821611306650854250893561313664870285402644663590433186156572511250003974141597603813711744605735193437394599233688944632796313965920256541162684523891488882842714422800838735719001939068112519510217996024001180463909358821460151305161235774348106865121206102570866218590435325709580948186043343775698069987653668668324249140592128841705712908144681029960820092139777775034676874477997275645706388075859662097311394229599451649380739335297098961688967319104101712539478246839744736162898790592659126144299355680016181836590101844093480131241301717688051432602989242265130503521109799593005079080802809491029865935618119677718334275628957394870434168911570614594136696314157867509924118175485754550841770956250804718309931138288473984981931356143211711078507922747826687116988332203926917714635598012777653013777903864229363083921723550237987195808054136825432787915762715697053225586207756547796555045830548627005997314179851485686791119297940343043248781028559109982426383568433813605554316893259856689907472193572829561528092513497911179773747155495398118162634175893069402499366997918586532929653892915899551631429061542998011650352827301352458494500853692670490453926474497267894928363507757410732335908986105667144880222210637727993832876889825962792740630963964232943333700179251859234984619436619638253300885547512017185289098998248572300705462176250185218362821591480668276769436079331655274389859675743328603575412808940806187172202731307950849089143823857783232381180134350208869487252657847124593936048240102262837818402147742147946635669672045879805818223701832089829656133317611457730407892393068910455727837963825212992825033683592317886644335505928517705302368498836425010137835181465899282143735401131982924420865943326166752887811592033458410454928163069306600449457987259953760853033475821413651867018635476749300519945713774050029311726108107270085639266404002746984074585088997317792942343538097504815901417180996478424254659490475680866839137086877849797525061751062570442354555041267671814460323944482834381881421087639341155155751000712304486528735691400621009097753245768854524674983076301295084551558966842461035547911334968424402914031696058267253507172364217629065239566993502864560345580533276364879807558435948555266311495525921713465809765911819299372625366929837910717208159036107852933362107302410518363222459072672404270976132338678925449068601419151153953260341565108193748988260057730269158750635411269324535609958344255988244238752576897022191864643394437971675755523270311867137096646467159536083423075372854880444746074839352999750206643154829195425801488121067222307961902682608500696762859198903512497883922533019567344284069505035375794099440145087003064907265672370394597814564821544986953060602710692877014124182854805721757805180597278824845010147433348671979642539387746337042922618012091036591715796373784795711206709823364778301855075194770722379883982979597018419894306509659371585295119069881851431865242728710415741160748755866858886505871710321461324780716453836315008353364943530014392343179680060716595280730750431234465518448985297276726562342353857809696970716740538269559377793059725488378205011643189951696688357425442859409390784290323072431465755357490164314349061241462566811083935493034333537362160257175604661998329203498063910975191231369368717831345932490794035251905738310965383613910315786387468609192016204984407478955117756765958342883313977601590802172365164744822206496420848809665556179078468160039283906106738091374807075617446620574790936657997726625560117681160456263419705888613775195215838384244809772455081704269433835086643548568862453329198371959694820879569243677134788993335215616587347248652103318130945030678598173903815132779811913285177929475829348160839485585589491447012675652269231169579516565073840943900714215256295196239319805803315095549923934696622932419204044895522955927504554270388601590693110380417317659731341863917280414659612642944215298733430663229018753865236251488485394954802020970149961184298250449941192836792612057113977609367745162262223219664786903711727850834066001132451914589701732765100901407448785059970005952959677033971978710358178517493042056069750108428052527091963363932022507270786059273374476937189093669159936157710129047948017548315282203284304976754306536647763570387932919333202607618071330323606682826677666046243516776369175152992153848921793418540874190982122333610332002418774265721208803291037431667203021352032799064536104838527088053404151203915290488918950326935476197168678439742299446274283620109140236643929716128078524801813278776699760170890670331834999951415298212011516315726108282601782671210034458475743244310570066350281950238776492993778965729054905538667466946907471214543575394710774802424400581028460549779220353673043944877007389809382534670772870670057642902076313339875112236698225516128905662145782422614862516703600548030423177927648120394428881590011109831314282704839846346060274559142456029906751020579705556837988366202818219327146790977642847463064950688236139538450518749705558243942772977184931819730597007317496868826785862997407782128118778555912756906394210963296719466856668268053606005945799342308186184037109450927552492865366465686167891278858048945138135573411724961105971610329262192101952159020796266913939229943623456354716355735968811599098591196023942678276772880022653535086572631631061888766130982789736481387643632242733214707813207908015460442880810661853245514829918922839698335213876632796047065852979604365860667427286191634088896488342609660536421413307683965355749488578801601742206839865286472975169379837608597962731140111011958292984488123099550959652680966022370379771758279067412136955331015306805523214090421770552817002549949972599957047557342593145828619363028380559654250114563437341443870016842427240841260769770938119154711550835101254084504100907516645338997783031790347205422682542030476533463816278545508057428038129249292869266418319177931827885060193571895577761513673618855841510743053665556890196194759854052636814351492254397078440723185048208121956237220878645767776635512097759726611561256735067922871628725400492881320704887914874475068021817615914723650508392273371213416442141148861539079438198250825115632856370832256704222501429344074927059063284362864758416951189152242130702526553110279252685666385208902538270729240384064923653244827971184089583486064596221972182039457753725238209998939784066270977674829344541840565095184870121139084518638787560405924515281582120050363591375533134526622554399887013240632858024361334575737587792567712333804068707866965415351766354081078215683621940039756039270920945989603363467870790695312029769655495979716982783379085917150529693938429130911898150469772118930130354962560873227844190312241692283817988055075416278327600759174700812372061494946425432407604503072062102564644071003211931068106476415922509570486035381201824223002052611386419522237776432167244679316629998324277132619060953362033722562195550955241802171386083621063799242428292542832336226915114136336341793057933525737977746238588450807432700099281526481220635272834106093855153884619210112783552566843258644254406798878883047778853542487824167281896663436808371847947379877834021917687109087759060530390639374705291583012712753504648550496933881034532018014927581519621668860670907150383804382923768636935747143831388764816001185814216333263533607058082682599390075304662809447896524279200837289576329634278848327614929800343996223731026541549566677241614700874706530588223692174060693613021234236091786701422074338723649526422100175381089608320337020156131671054353903978116804086702091762079693231608099777072428414967379422425886330195837225699900442636448949015799753543204402707004298113902146051507449526448562819004777381349390920985780429917801568994571293779935970626549997399045474991755709924837014681426974643121973652745905757783985557554898053362730290059136718681811400346115163386312035961175762902857339256802675382891004483351952487275685671390726678870781122347286069839041146705866547240006071666430269336486528989670132123971218352468140563121829227703657463686336366932815690828943999914281859534359367207893205526286823663970526535580380497680951670412524927858944587104077802332566165298119063781112618142472120540140384274915739955255283631862756027774362447982236451388005627438718538767480102236966224297176861389378527302501708562695863466946096990234613886504606609130342470754657724568727385028391610456770204615566413261910039182114727636829597316973782414382506172952097115295234861708111736494646515614096170462842137054279749227481884668525338474964444062871136279984999409091006532528613826770683890825119664234847805460608623948098053669178564198468627166295817464676455579773063832032061713268319306649189074545095958990425020851691017675597545371449407911305266906983143741717602016959358206232502435109547918910237924270348362325336453727791982343596515318285125759780733911550024208375658478626982366841097396093933371515167693086438913204275848230627786679955983558403231053269172204580281559731685677044393518147513020708261105271861708428552366033666504544522168861615267866741295844296334665328413819679338967031573322261398927197416880175885502926010511239729268054006136529331531941444561230682473053197112001338802584949789423587353524612132506302450466157359974755747117190333726724150270500891611402363919906330327173154626379139538653137263279347974049452653065182640769365543642060610757615199597147065139171546639356859766787311464671821373226985084049780108264074658286911685853263993786832799604814037770338538366734390990833425683376351890068360646830748198047368408679220364017818091165319460409970887909184791393700084051243441071131332839110152162131457133244708746553556544293629042998815988148128458792063220082883147898003131795780714985357446512224399095216681954353811295741863614744892508259968362718949624884188842893197479000386874056317651062638899433622173566294320020093761724980318075855615591537300494838430124271298259779968311512179842552104582628836611989479810567737404112496892988891539036883789028334258246598512561633006904650710747074062687579393519145505251161573932950282471573111049117214505001311470282988712822296416314326806590463331823603407945265752317633506709110841530198207102485958431217738840100481112266559040103767650763508634855955892803122624661929929780029126762114545164428584692988101580677763733064450732417381590628062429737998275144574060795843695572749217357297722309732110906448609902623100849254075457668763473640113696881653925496043363712797464930469989990165487475713993522857116558910019056851814922401994255848528309356362064753059223239544243983443417548998577607922438052871909674011149510345257589724259401801948976997860968027494701050350528453470660741794692550092447701980220800318566615281118960521651277426601883237064481980445018520029300899553655354973752232250618136829509549482319516247185140544404157162479072778611359644451273748893116747994128022053024497455013944194169525485775303272572159561958572816942928224923408014973534331417228576253151984883660208221964700475634129299584797550325601251063021071660966732454193864904852819768854220709348675015398098128625443136735388956973869497498538084643635260706164642623878811441435668559128644336047075217311690074057610676812306825368260649891991251068328587956959711179773759995990537805621470844042109330367182335461203551104303476890341488140655855907299245625998409800026439872593732949832026980507798249384357808523967137518565583901429281915761545870833678629707937979774111166035181685872945083829031375768128016321277801226099065575434019803879606612149022783368712848145989152598513773896539628458955901897849107095927926270297736972354496796254339127975638573913883050861224391098114131958989010996105146816069500212971745858435905551153416598319932079005608360679454913630736841257503165747582022891035310446729026640859860483087314882638877205313587586940239038679597904322330417034612269727645737272841675433293573091106091307242539011530666871622688135929793828352015659508008251202256945951403427763642865107551071231360953362864379597113409374360661636684424652243065669760423372669088254143333200200880372213112518049777731627978832641765413744904836883510451160499410596389050899361357665611772676626672052027712882940332933570786112503009171512365716229115635029734299709021288026067800655627270120631352301540344732683665133408449306816256659206633370697339818258708205782936210413477621782703485067453289297217731260450441299833707946600001566071349571347086127844268074013858384472583018303577321192996685516414282395557572189784337802975286431906582575474594143805349854467108384878212004254888685771853237498671509260624200237255770990821855677958286908179448315607733145306365278259461669925107412300371460212384391549897808049052563811013530932474405279755668648395988142892830577249173947187070555713336173265916838104846670010726038264540421616552986317075128611137832579473151218072992408589656523556852829895872671395732566303772550322488714987941909841646864177420896293810852439230938323722587754754660298330482767776743215464989191766341288596693651877958958444458329597244075523669707837250430444556144389870582866615373985808413782977589696113301063334024211124402608842797427548138934237631269899454414672086803428314488173609245474490658023798351121084243803873717152454413049498744247062014682060736388458987493515242627308474862561371229828551487690937404807313817935138416133926075268398797392217393777075154204302045172092455490450076026692799358719347574181035786102274630932544995652280684794022641434750793431119087312004614084032183941851834180833102575351209702964544600690707435558826038455702976803073266687696698485860879911954198983404869868587732096161135585256653686084498474010979748659877989240119202537718682872088999224676905250330859681337069061390373698559253004054877703685063612231708840810546521755760898705581171889252442550958570174920229377555540705076437493410168754658611079477135292244506969272922139008938826850043826388561889817267436955874318266286170843127693962317645651161054215655657466479927649927999691942112898538361562206800983942507908567340508514561061689741570258494090162965295099261104748392733184780992517591098864868997199226201875257534376617932343332233263728481011173999238781265798321104270425947828962526243177566477311822615787309349943126148478876486411458461162577358640579965963571311083650179875091860322920106850173871391747267371631427580086337501288789371796909601591928637871500003017755969053275913183796295405021997613198800877656173716392054681707817704349491683008449393589050720025624509950709812784657413988850419926290577795300204374886370814818192196025197976184879459566555906946553502874909685406366913664749140330224272071605456432240107602560456042399319783627661120977699856831216704693204811081124540688198880183061745284982570476814468896492898920009078874675602357608813491189563073223023041640166044479452357493441787331942460415139744639715503910042195410031434169171134652761406888791036785315722361702389264271790253721041849230239541769289947313742101819393425082119666467013184393686656971192557259232892092886772871078718328504754948078605343843706745113927161708057312940567322744720125455461976966608501586284596421608904651988938538422631461624573574027776759385339025957642740362914352173477083695488369970245698422741376456445636297815469043369117601518179533773388652853472584835879706268502345210667688780055491542885327721646790310273881776276350078770599115508646421610737844853238441281405912026677601610885602744461616143480793276629968195600882868622029596486884523371571296932614513557118201874508857555581728206798490600002447750270669525386128331095028985835635407365884151371963042052741899624572437046983030840905764264785651122099803301572624735507930792881452512192903080854224702409101074947670874998727329333944996967002286151362710611143821651195464050613071230094503730571388237434727634586489462106564488276534222019212515889891075968767144576015440353220901703925042996162186764720100632327700256380145172233709905415223507287414082514768098666508343149428243759210911533495454737757636085430384569398369337493427647673053285741080933816317371132724294364427534511315439638930514510430855800238013256914614365728654663778327523461005865711882172133458560069038733815174983616908425826559852011082319789836204385756313428163287197144458196873161875620343009062041309791639937171705731262321732880747429477403359096746122340381209781241119096037044357323388989221878865034603600459343266451650975213655609753760930488668649962298637639746610814105864066366147841432380278012879642811102797608871860675652866173383136818903891074879430441794616445851604456212252677402970489546441457006461946153226302943330795814646746986508195071813964750856037751066166114206262353919682936910096372570398594010659659045372807482464434028492421004346286259366298053340766138107808849223383882649656908587708966539878598099151613408315619839746296898406036315737279255657407013641895851401796409515209200784167864191752966967109865132224027602959312036971762420991538474008501291897391314206513171928457151269569227356614822567487510954043226102732745192728818947574817701312020443701735466660137734053570547669719955115565470578112515892870105203420939664713235631104564326424015544980649252527253650229664560357709057662414154946035431451309670623225901363561731637920956406127814802194317520113696850941221870187379404502295314228145335181160059101981857926150830997730391744042381825890835979121066071514322998259578494101453515760640002836121372562313361853527954048165934673019085870558683961189326418786726576178177003683234614230459616689797870740255774210233749847624574058955211108344340532984164591375218984689475932025039472775203994421029023457432612514867436851155349510603978901916588727293461519052517103753938666385630025214518117794974089336265335740601636354541523729330696907841091458716653049504981884605275669619081109484896491836093794631972210557357434703004062282134484648942225579061094463099000445522957602295622762147061482174904182655422032968832314689311466185130563233828586332913895607700855870549746016888326241586381446266320808478192251447918789280266056879344751875879138315125142447023672569027647167215412181402656057755167167229982442504839044984079017921639652349283936204421654748313387707681714855437873592414714414937042664862623249111712759096827282340942238728615349562615852544269502233197121502271347305597755990837644114240107237171416492410410010885903040313973160394351793952653215745930268577112244156287682804240616535183281181796744099563792233897522833120054502740832727749763850927018293653518131832763224176388012915023610729566627913523244720024971117645887886583675177424204682257801556519484676616824059645322253801075740502592770461368939984405363714473207946833307614969833162993289362013944459911861693077860173899924208666142122044513637288955291990643716967658419649183809038619772931970892481974834386015698830780080735992260074613026050917004276071236574100217211439541255617911263720487970057564476311779869865176418202227072520537278189024046369119222156350962463845255020810349648467339330652630360317986353582001088621803752425746470117763757793259905565623206447260850631766476927239933075703954531067912058027442473077486851502297883924512147859256158145678656949077707438947566312061897923894731760865582462713367778222971803070625003176668706987105610946493584243361359992193178390265652073628252979631127453923163215057648212743566162279586618046345068087867093513904350376201783185883948808363032685877690243285968126772279340597870167932906649505870117840382354336970383292307163238531566189305249283819076336243327570465527034098902940340366341400271936230796486244630088647135230086003851413931494225065973659940302189002382573014565098482952524758491190529606055846699257667012802708253762420712722364806967815216167509730669856921951637056087370751387716215961162079408183150623717607599431318696680878370495617557388268345014528873711388094604509811481249765624133374868561978730240194823489798169294163331059646601757910949532635784071909419169336952588494032070446919313019625994516053219673040462100484921538058217788773297154861408802448357928300174116899049028116258642847836857133406642109367605888148425422178836059804416937562041488799634460458932382227893644641580144591708840111619975197992282384516082772183175822931146944042588500008470561966514892491814784405143361693000665729117968493830289038338365456035038254224110292472557092445585806863477763637529089186370355489699981153212539124508108937763255008655550402540645694775843551839058149471453123132141247833516308871450520377695029064964651244571054722647728913507720049908269495109526694422799178574201587950036611834121719991310961424431501289335637075109983879295889788509329701743365551147003910925340338403401926303160035225456108497910492903608096120365189913037273057986682546882605550705911534777187243793898965630697994868972674513911495383872432297879916901344532919042474169702006442601092381076784369533045205925855571615206201601656278072639022589721819879375824325849847140212869246517506499163469575233840889279863503200901548035515562657377873067288197329812140211257370640402155453801814188356537295616947514328788204218176822617714746004950297356616510816077608178180441068435035949014273979530267264942641543259111248616988314814443097012998495210432372980189946128562893115535105071052698598944585268572068083610750142705780431915620443697548173218263645155634109981501113989887297022303356611299197858281069232324399996411383669261840252020088938867605974752852642004484000565130157215071254815102944095101194967901903676477344529373817967907456121188073261201141569267934576206855814318635653759394246543927829931052732551780864511987977357020055682432892923814262177023781860724859444165331521928254260945213983171704155024939105815401388727923444764360250652912948021005360284172241007833267826294831602887392081314841471771170976271360801791776367548205121440955780121911699709428768939599804813778708423611842381640443081937452827015632716303059279464297647282141729468030829577310023568925929033075271701475017215815591014932322150532941540736411986387663645245194809326892132106552426156001462167530333667687629684749195341715263340611204544063878077420250477254595829362946869688692708734320659957846627202358812290286970815282508024367096559011845807778296901831501052795318145066529570986598171188017155642701872326466790800441306986335234812677450316834763889674338329927270862175165617584488274920927404045882037281897683668204291413960353809215371286267042280258473399200308341300023045790277784949935414705611096623698737793783816459349242945286958631902439124549683822856758028024205713773567496368627308194023196345174401057426270563314005295766371020640805706225164163302400181604658560046680496150097216218368098276877974480569967793360634566418377684410244710677497274973416414116392014942651923545103433492790696321059651747503923328944899438900071246864463389843745179092788689059547149423259215302195337989266625139671018642000752070339464777718432988973039373653951318849329264150759282607469756896688618788914544264161983735334697449521989798574868232574878805575213122621428628014799970708428080078748126301479811052039190681239367233549763469590866013169918876547960485058568879665551816046426604278785755702082813121289067516161294884213366014502158123679327311354645272007861959663911345863201876278010794649078973665334939569560292839259517527108334057981769704568687383620366366067373910959261712228774335003546587806051254637086221771248150221249709620060275962154479440848843118393762534847821697257324729406434136924992567380223579302822918885940367550919754074175056976002562427138765092941707135938698110408516102630511593345507456067771404498175874375318948481620192000122987819428368831285587561356828586315235550615730999128700335790091177127512107810017491035400516423254169855160568101561332456489095902830928973692100835730393762944888376379891246854289326339387904822160136984697642172271505564856708960332477434911469910289073189008380920786421909643379062144317954015907339089324897201402006737597175003166744685963534664127112776321804994925626956578917218398876889083331234049944635455788841083545412208294566564447648923840726514780624518721220701863112300157835306848181739583581836926283608277047826236107545042282715903916958179779979991622869941792398155876241487101469994704298576003431165752732743045497097605683615022694948416024466769157977570142660128979361394584032430184060272839142811433759755017482027357365522837599558364039297420203551885821228959027781358267465318767087898606205313719639178792984441870775821740175259803424417761212660513636034400362413455398940970551453253861519292070026869994805650518362245999285869673018899390139108673196416382461075893037548638755248915802209713498810237052272277351576370977559009336486637629215307578558739362604507898051045145466774208564378141603151116785287381295863762876428683607120844224258781589973272833716583579422724201908210467862843914226867263151358142773214300892699565174171458567589492225988229078103412160186131359754164105913057786072741343994258919139831128436298360464101808149690054603790023857043235630228858098886364232587783113739113426021795027484312491904076174439455052496983766811034772218954448512300217887810749948413405806801357246386361864943625568401980244710572457891713163373252730364913084417315370112138807456841652180180307551770756730447773923621509638251053967528501359362729282762250478397297446861318232672075808325534710548211417288398660788676299413471145302471815608359500120168852085002274946288942873987085844936859210088498248938728811200560018304037789605696323859752806143520660261605566558083373456776401900363845087176577600460423139008738216372928820738616605123023778841717199720988946795849215022271648463807524582521109182178979724870062366523641076028995464558922596332123180108307180089931140265549633024546056725937412235311234150748707812662377533604534764531700355342926854565035726295620670970281703480010143041417512793196306641160971638754221404459910229404455837103209293046749455115262385903369359692928499978118381486952111282289719356186312913001857350561666153069449721845836373341758805102684933918162530652164760222551211545464879519718853038675654693606694870367825585666504278792162370340417510713278035630531820206096766183337385370701493129839803851983384738011842076702427364675236467355423827118881442521707583507223948488014108715031356313331559711897688263563225912580756652987521671127456375355902243805249836072064415554634692049699162229696235106096043929105474633268852532158061371470789937114094310612909913840466948986136130149649075343339892557527917386348943763164636159471850912073112382587564022818103145900902715272431895908430567269287604024572774740300461173359721653887069090585430917589662242344307819100077786642665127557695172905387277148669974228294444069955978453668064905123512266905345174055718422092732871475477260269959799762658332790154917173620166167053331913036010082733713119837275010465334855292294376164730899119724364659275996118494925324324260055576362583497309095521518899638269560193601725121569870919788310402925715236752849442575077455475064585520300065742426078830846269162666291260698908266945357876906517919805774890985392844839190769264389403493662074267523417934221309383276696745439243232604815842376358270092372853865562803289615452149060957001090617456002462270954377905300197799138324454782370257475876700817594810513215479713017014247748473424952737462103709344618072353251167794123391445350831089182271698879894864032071589583192234557519615327088462946631600610026245600594226729020152893866174448935415825817588316605713778462289385983818646227863942411341825280989318960496438252507997628464338260140999484608469884488891708921432527318805316530144691966171966158447240299415289014155064670072137544454564234231790996510908912617417803095689273520723254293595687230582613108931460074461642123009407490569479521514362576133446410653234995201988787442055312740527288475271528075461286611538153819696787257045308356517190983299706638240068654967481878727580176480434124436479572351393314017335279765423955055866823324168669668508331545147556890229636877140132134457085014648686981892795506556926333553314973211464904636574322474635903128684401414783205668465472895751324105304462899958561091519749866965325317679494408212509236646489548804985887125507022563039922374718797467960836155111213516466119532394086421332890849181963962635758028939954274550511776810780643452302253579065237615891940287857432503060470523730904490719784449328438436344090128036883639372285818233644479181088592821032332868068331842751259377224253124226412785235413228697774101335018382522416497636924176790322454048104670792690099659589237415934060782720856037366430408974341296124289458192878419667274749067871188714470168870473701483688125497108439829743049103086086586738449841381845359119121907177905515628931745156341180252801197654281320566798262858738244057874610133698324048039848758656185113888039216891050722260951062402453790529840794586401238572045957037062067752130186955623458654728902304793017716112106012166254622963335800439340637533568688927229009444734871398156863793423325346072026250437316583616756823956617584490596173463051043803722901003929581462660202905262195872151475021309716271093523269955601561829150163998979803023183458137725950638024964369328925576987219276439980936784287701983833778475009069232675313508656888767749458849340789403374263522107038525750002923675686297453825841381069188269956871650826497816352962060684318240836585382595664350057397895464789387770953417179868933386752743192149907169612599052687805419903159849641604456218991436222336843826521183743766761968975566692643568108137994477241829134323480889515366055857051210287012350703914025374597516099075439044418530807701881015967739556089652899086267683917217578970612404535104964120400416048422907977157201569489576636385205881862541914190826199947710624845986899920135521461360685121680276299557749887486668315591348102512319996239912942318666994104199121372143490732202747097846236049426088557079054003109944721251019374423771023472975757950411407063147156074033211271871407966845628489124353466905114859525243453485127089847465813687130101414583972843341196610534061997671554869630974913618208615664276483095830281654657364986545144230276406238993989993212452031642926091397687809523184604487725264089941035783562620527050988162328654695468519331240593973924937227848357207025184050010390889022524137565704041906099471902606584440885591630620235083789929801805585072501005421669999959836392426061070125936463153795599551877512037764740715185303873982557720333693370127630724342180800556967823819509061237767310983937892312697195289326901963955773833060364184969312818341907038912485459217374958870972207392915770134430100236699424102647237645706668795736003211095551569332707384097290903148658055475518800873411360062716842367957589237205914052343786023505160754738710072500677948575116536582214223467507494435084300326276374426200155283786572600896453842573093010930851984903050857520465831410923602145292399576188919930667521661877283842591361621130710849403064591196105501458865719811719664844217297355975682118744548917123704062136375684911664123098702964290038321516755799268723590324685834181100752587920757174794402485461690581264896297122145696238654483093102465065610352618794127323288996793937774313916937832871392856992191311782954560959883735953636990307903668092473397103863128926465899048487070932048037976653127123391958332965331600660382259438165709183840953902212316605794157217488316423176731469516602857243309257492317351784215075050922794866664428137448822018853003021892651859248290322545501891249933130062957772513155296503328799113838720365998309442644689906725878722349020198518061566490018323494636735441031281245345038673659219816776930586847512360460533017079055571873991132653393792216834045115907023250456548398030712121857705664638878553056430775971612661490703981772113530252219611969647180190138452775627526350119149309389289599163959644243092366716544551696335427242364486689895547776771589447054759452392132747581784519486619126656520413869426245459482875734612093687544270919191638100013731187670880189577093527271607431233079480059496097199237236055475784582633961808239725255677951682304807441901793011113398758128985058480369814586219262454330486490670505930600990479054570459833038834112019329381095951412499599731131845183324317748503703930803124910164210348520807813513355758919937250896868038667933135397792714489665924495981516411882128594520545978646174514107425075347412336234544847275101482392202961535272893039527143398044966836307228149688825429916763837468520938613421660229069141982479721325243335145525371244582901448064268580666101391633914373304536569101470627974205501529951161847946468610092859535020189014899626275496919018570325765022786447083294183100180368978616427340887914966573599565585012156976887479591575226229224761659247702364225604201606808991404434028842110517905617447251507217419952730302438330394649539352666012683639255245111744127523671260708139518073294606290587378831792045658486399616131947990537802311408285554705493173815204866993333012074267189169946167212264328566641884660190053085268018412766574240060860031296138007629633047612425322812115877754377227460442526846017123747354788603804662317235623536677370888020087563906929874554288458602120143524750694060479355839554973373895594160481453070599041075806291003067977021885215778246275234395769359288850592629979059595959200864507310029665276797390294361416693987347033998683865557516099241652453409483817360055120076735598762488863619091039530133097097512108856093060386714243101593141463559315804332868955515990845742204846583968813645470564550465222517001171969173819023731807161782394662371064592736246841588675152180761229303114605759416201107540493440919494460936294224537165860203966332562143260685919346437840465805055753400778606211985293430828571198072008885882306133970177258053665154030717247285210976694106977900395803176180516145359412264933300059721684070932085939376039199689245811770802189486710181935462083560929313426852575996735882932549509078019877401433967373088949949572627146914206560195848921842968228292889959829169573454398673541538920247074828594205997033199605656270074736092923417148024203984640037671404520890108231865536882546670825475243286843514983983927880545277881521906649384382008711346829935850908832010744818451372997297429377671491164707331556941737556344849812667157705779447491805234365207844945101824348398092777693557905275810641785119117089933960336231676562133299385645057171490472302988716792358561114868909751771324608036020033862465665873570510866149224626079888647751552519333037129837896494824210746095362364593020561789015299414760230230672636523774878586852685656614531990727899553552162113259714775348938438293452872028928286818995779042510405100079833417804920933542729995709272645585972460927123556869461635005272122422664224090582324581020665217514827704471195741530455508760913665327434414320672085114304674467758476105921012771693408263742080435013440674150162049743638477554799926104827239900175076804571290947123514871723166088213380683643823331963297463542606114413723588046074213457235874655855974719118362306922591066976004053036864622232831957047986070969241408183897650821696234439163103605428256009293170515663277355129903027258464623230726526462669555991674033398045003126658259134400852152298406011610066743180519833612332733121230317732629607741506004297430602885470641661303305466959826307599526878332929103236892594310014387050554364732625366804321383532102488816053730005380383315515332630134926622265268127282303107063357273047258619008740053735073802312782477272788828033499541543935733725346035749562852775775397365736665747516413662724885184023043525665845740904827882714174917646427037240907182207219324077748574199624600241661856551812218270899131963931832976729221113261978911681762233403150419064969349747292284737627387196297065093205827458180265694603945957623710219345690414235975794759120625930453518928551109952960994359478728877592030051703412490986444599620825352515381313145539023692012784544787258524508464013682928043752189162637584963706861717534748946018646280104830668719651304420733287403619203579683147662414334132525504644199636018425873128151313031596191318598858856546206630188671841025101188242169575641028169007180242420091803952781519311235208888717798080255552185470389854289096233997967122704735291314593969051627999452615055436005949079538532009831264366036819696696028618232041260205714666038756593719023846765805321305656893709297824011569281049689412845501903892344769920847524995362047210608334885376992075123077752327232465226147558835277695706298976611037930543442905727398757144919901422291012685335667245026314749519933307663029902153473069677011718952135702740986006790339824265487280388385845295259023027177976666241721170832658501685103310676116112675440844390862637376662010916189000908241430164903799082597296842896156264029355715644146892438246135303722710091207218807007295551775537376487778166932053789115476446403501269012363984466678284197898830104983525871726424569258295168843550157965406005697766667741633650758807608075516908318488806225926035867442049377449208916320044306660476968068978926953371288152008186038320357915387725568665549952643421292049282273821825611975126944105073247782539435873959664472558655456883301220075505219274245758145463924379631680276895600313657200194844342727775537373254329910484210913988119323886657151396518787796955501246153076294522715331165563547913616142316774657674064509063943754310362182915890949888492236912680140677653293634754282573622664074542668988241831554083976858743128651955821353804197142859040561344611418919627115092637853216619359583975382091823463917360593040173053033452151970309324463429595153265961197102222970144311568246777015766297745972571542460269542567233915839862256736451826592500506219778816777925911392969207074493326008034333384600010963720895267662517764512533997802062619717868772716830362791354901067494773849939562924375418929016484623678565941531308168435161647936675543141239747313498171326543509426141080377390435887501162440062204385471865118633007364068265468815168779470647471475017378194312004483268679632333018419375357275727672198443728822802291376170809100246099217249090871924167949362163816732511539476931451615860587297817732069983087983273521189117795920879367446585113630735246854243211443733728731567625426551646413240259889531909451093630959323377866804490666946930319119180655624753286222541469055304270042259268331008990105414765392810698768482997284906667075430643057851387395598664958109997025103129097288865385947109667966576556548600195851552278438453660762249559496400412610853951689371542028512191738300432999640780953618387132990977315713532110736367606728884141275612619132939229812215865623253152045384790110345410419306957469779464980603601530984834037520396517420417165506821953157679807126335388385740810879810547712986602067055634850364880826076047960335861638847945688168349386337863021021365010253247213814483289932781580980343628694368312687724499526234636893352754350436771660561002619794456002326440740619157108513780693980095971318250532857759698854203787456940339406723810031534128824155701560199598295497361670209329437555852326948178077460985165942144036872412287746186766618515941191106975629648651015770394029043359251262412908888827246156567733671454097090775995945629477882422499774905998686337724110996016726544793749175764016538587827315530174627791606710385985670127138930850333958755052859097153765434790989133127537799474028003863356435073598097140782335854270270527756444646410670811173712822842482698748429348305901000680956673748670066416305739940615918880266710708795807626597926431550851486079578667044225744956259188119540523891159874386450327055661423154373594723716731333680743912616245739629070686634171763604601591293611184512023929074599089761580264737493388864620550346824280440257983642669189403433918770537537914757298439484012067538698242107683621198622751931002935297265184424004579372866909760258513079233923591206887563919457613668666927478289452671301803502605677324188587882778498708182496102387523091711387640303612959272479604113292900898785132538476863028597032477237812110952668692262272551683563342910343069784235639650603292603546759310847397104040087373571108690043975100137980645456695686712373849406031481008064760657699259136658083753716902839469459695185475417849151174848012612574571576290738241982698366002466594314865318355549878685872745214031519777515424515480698763687816914452476804454517551474649258047465776347471028021281443646828420935978238928273731401830822213660033131332950787682731534827135497959377773572898514080432794140448607254059875658273194415011774452887840612522854173828271170020585428508434749961871683703296567411291605922881717018695214559995188553691278635638570264451210246265825213122751726623193321380793186411698504839908756875563205391760851290915877896800939477279619648864355275499050514742952316847554082940203216342943765132225727683103712411701226408324137369375823303235921712441738669229209684317281362633587733101983069271926039553263901136180532089862765950915071594540329442663644304858780400354707979453853093696964800397915348437202967344684643866770830352202042727612969125850651345854528038899645194474752251875365352204550943136525548942579526572198323858174553986900200346008447410445505508139986119774189713758393167285457553097571033522933819775862999992609334571964019838782866558993784954767268115263866611520728225515047315166758542440714839249562742727974160412601595279631453584751516008368037349307130776748306066594688386325709475174881005882165533549765901093648912557471506736826650222848160169408193638889270933038160549370450940672644663675534046046470677081070125463432412454043410240070501557339853400293082267637493577260391029375086573298995668881711412709823879379392619660597720591577999061722733652211336577026198769298172107587224319610407234453012300131042717533855782703281385536373606412288941767896813813399493956730907730170409311028026657658064222180779957061046611954252423729176137154960714002496333815885183612903876389285945289605775215043378514977118839852865740687362593384170966853295451271129310480398490628444781876388591943282111827110245793595144261977719216498699670002315044878332851343805912523262013383354104297314670448206474424573511356386188188606960682361989218459375638451938624423313248076751832558608726661467057456205028272459548030692975305858755496818872425566156250222526396221801852273838982929534800709133086423248390793407755108679128675987230420641129291706615088065320145270247407853031655202766231199217570096331655625945112970796129119720056433773017542808600637711151190231139792279532948388524237888183200530204769687441867462691135142703643477096257331544219670548277227885511994206121543605717611330016302026859459955587397650666406094705063258198627493694925099018679797868136452122550169818508772029368514311985817296231076257010753309794492758567380015109683268382176890673092858732309134353876269185256317565962107458416709752282233442973427089468532396820124364920327985094502232893623883609463019493602362389451739877989130471723173239647782722416172002217812929357630799072838726623045302293201721261866749952984162167064980908700341922116380398806015720902067711604849705098335631529320025068526298499538098769299873649635909596227583140281279911698280130957867019154135159992445282590415456610141632161496215866646699937207635650465212164670918546430094496798355036224278227191481341747131150607488834355931147509506916984876419991721013304656247081039187803400428706876089924879609477790007170259869798017091019044395110246880402299437594699197514715685809086135081772457269878521604418538214359972364989787575599020075609739338055137364599918545146414538941321169731467487995687460178637335473620150395296590245931676682832262582467610382949134242870729172426155259189310985592697851190325998906457369156562510574138735906891227360362470239906452642559474534932524853389088403203827491732230201940036566479570524321657958579897009076705007306426921808051626498740075759550541944412833069586448444290790004820320597986644989795837180654335255483626940968369845429377575858722872618826918938866643841928866614456732829587704765830500217229745282582119754716967713707123255371925156010482024038723841829501841464173197211531190467413818233906534386012776805936828946653366280799866660486095538835883262091432150789428184136825315507154232999316018577582330687647160347705785820974400202198575591145017418433985106787856569794005135938677051810674344456644203390981933541220226883423792927908635134011609379543137970039805524274989184619652325296498983947735564828655574647891537146864290458451263613321101912820686201835574020753205792053049416708178710190989739964090681882263672789929511957167577035368392769951564984701397889326574477375916945433332475787851573721111188163717038766522930221147191792348205155234603424941107320973699141474787150129998966978076138493074054125139926085103613706618626661590818933974126524584736519182335779263087963960527675397306585780752640460298108664794882288609564849507275172463671916897365853802019128436470799842907253385058086897552757732254454749370352578705556471934233571107731326156184275517517065892737442136630355983270338563206689077700650431997900347732296967564425149319934086774482187472117968324671231122784145281393241430807716801400294279501146994488969909485343504032132239103267361056660494145378060229817042912408758087588106738765806395682632824633655883386712311478692528799739050262190536046880833603318306326167211393402952320458786162296951411158392124795245159403480814013685227592137051099379182885550546684884371240428249621167816084598061257056582302642183814024024569235422873075096159397913071609051746309171869989139013442700543772730947463732836250747589927284532761483420560615667785516096081655779422760527525340310276404585101623481376368914863383364918332579418396009273106222993727845803387770972829650640215823582432142958740294323618592232825538292668096910037090936636588723787745932336567933822107402833581209517875125692955844883841187263315773725392209001505994582181888834668034832714848476545559455774923958367570355360620999916514109030250616844963467527427357533962784500083323239375664827660203310675166373385136088260542545411202171339041411773885187721809821110373085124185407344104155135993044844875327047082721114725656877763933675960280969917905133664140233657532953162960623078128718238015750985287159018983476439188224071734125434803019735141476578574428397370942293813176667488263357248418143538369503026939257521409541158576393813229134065828540996128373354718182083000262880496006284642316140048173874289374071047186883132388807780401664428878990907983886044035010306014570118300239397562174483128440273556093589253145505608637314702028582724796081603828092026221682548061335870416717835091222143558062378599611220164096085702368272295206528054239701029357930160810175128754926995744145193163487220001208545905742377690941551292573301644656980050966317950384566727998142623940099595890242626958576474654318548147154042416515875587136834825506044714006064752653380690900825752942358298164089981614130865656375833887411390515370136788557030418478358622803393461860264154662018622940982321745736576952454107763666189378361053443421149045160930305973879255398890886612944073149632252669496667883690540482149321468695572757124390610816233456547373762032797823745766707234339096255708680906665191285599908177153987423534137844684669857654217754086603362526894879391362896563357991472362420764535054096713032848292841178159358799518323043580355580060178491393586499499253869221775862236076037392554571526007425496349915755061737829823052214156206700866016116725151179526126773689108885922540808371082605837618234114831414274605596530619843326089976377510980008792352778002301735899690991133654726647007287083864379464354148447511785444018265854742862714806385520644034600280696324402850118839345811616225806810600634813765041698215608415907215239450291451252196601677176142544291318909227014525903506090195037363149669418700329695268898069865024372839569089857910349989249479538427871368544638072162986759930497017262251359080054104220549566745381011632823987633379212041384192270146475724364355718611104775625215003456948526119531951900843993591985152507961340579173122859633531330289587542876723725081933081395713508669452974601616331775152696656166694022242828646701276278284858872276058793080334154260882393996199974655918122318410433515539646122965471243791242929087925772559842814354709111523522431074102550741063296650874010150943749266753417961512726846086097383936185552145942489576059557668562653821386797942575585126820799481481298772203616111919199772193921114028633781121808959727950582045444217886579929813540553794309206848247412133151141766380034765935941500166138023719941199394042985110575615487892669236713255546802659234318592131143093020367967198958196793361423311740440033515062621225974084817935394484255123369379062638916769979742573307033140046593123228791761915699363217445614393485934654161352249807548929343622103751830969424625209914258980904985212491662722720929631206340530143011614282139271431384410745840033276310864947771337944234257779116707921045565902698318327528391258683149722942198104406468222252946276746926682750541166903392595317872778966705507736266835825865808076408777792841839921494384574541298253709292297243858179442913834528966567976623485985073292810748827072889934795800837822576237820060456774696360388095424060900938602906945666808823765589947812920324662575304950716353777189940187480583726834134935597603172237535804453985581118807765057545061827545272903182977646091402218664135022011952688420707340680249541867021293130944798347311632209372012682326647765586466902366557159706151658699079684179670518386696941430370453996736203404642436485028294593001480959643354293475462661976774761976157656071489777295920076121698379643904406950128376627091821218699615225525442202324467802794347039335310846706036061720605060471909915322120814980700110320922640119021805198370979393023440636171150529631851815000649672677037907088567569477924357744054163390056477152277853129476494532416398872669752986132858242394562802496308039340507957021929999348361299841539625990061098006439628629272993874517653807273108690812323351129483024164456721491563550151462332415811755710500376237990161842920595059306980578983313944457325568130810195326517741778173179708746980494523860241135408888821367977451025281020701666189971392543775708101172501669332361255702306187315420550337724811033922694222876226959784173345455739662812589881151824103551826479505883398436463832256914248165114152799580208049116267100463159702259373135610249705993575706150103435676158267323495998401750745531502502673672526045868832187083311926920796050411979762559782250703128471329734637550895810139938559746316549299061126451093115385182872796958329517669634095549428533840451273209999647731192338615534432197031825022279167799729379790932372487913677366031549355585309812231599008761813922310496906105271658409969779026054446997145529040018182666618120213067099760820077486262826947423535360871772733855739099840504106709994081418111434751693510551358335880733673302088068279327954382248724636956654205963342497089558176966519095073974000527220878101435618512823489083032242822876104028701214222602325659831768894887591444487504318747422756049647031174385182910648460335897293339798198906909595210706650805002076539831993317589539358068454413908512215955695216798724291169255462499852464536034351758702541891507631563003705904848508329781659745827640993559677610569392254134503632515399553736444490565891385860799600377518956898108817488274128542664992386535386765517671861900326678959538766454506610825868837384622386294249489956390401828280689537144636767887412385764738615315122991208647580948779886886136702814206209261870724456234088882904904099934757619487450217689827027343996891700115543299931280471487125994224902122911872167195703860933674672710727091244003162623484771444419830132845838834404524383813357739837579429684591333878354398054219535437775606950586977046161135430226459724884247943499517884787418814778390635457511939209031032715994317271555733916181462283225585521068026376401947984335727053039397880430266109147951767723823693356882219958813519331038228531177219255145886898951795956368428291962849245321353306377912295162106706795230741818516125456237604835593756089714260607426836086465756658918928825073880568688099074278310705360712287777848388322461743613451436624934345070085490313013280922904432212168854715204690529959864258530541546021022118478869744463891412309457684611315960739892077796709511589522430281533109026009355375517179249714240096775320180370015874279216874366167372066314627248903455849098507086812440590687265227474839367582468614124393456863236796517332825225507168921393398475297112644870529490462118386616652721077419621895632464984031244099547115686934164526845713611614620285453501994027449550531844858435134854288474163245506923810608874830272678225606671353187799372996893034198500154063974830312464777406844645047010028535454445273718073174986071116708825282792571456695529709504546444433120528035112710387680819016939678748550187613345970339017224120499495415234419991768954217742290205725827525373299451255865513310011560389390375566192685040298615200363563371678334353794545032671878973458620841014342993987480580559464853827936437261153635597897071175908845228275035438051464735231300766743066672061725572677410169210066818860725764424317787696674301686508743290848584162736156407421731422954388078208644032134180936599288226432716206759682728429322783292255643626802048616659774867074866901428711626828669042658173855579211863071017052250917479304674313428152168039112864763245539071989247850889998600063807136894350886702092661018014185932619506003938755232825183196446730557284354241473934276388985359746346495342764776492736898280475591639273855634094552096808877405901573701057092912842338967668967020501197636868184728098371673020342886913321109374666975969575301969103285780065978930235166246549158373163588605961427818670103785672668976171699595541825891737049810757446713005001755348126034171221991501816266856074374094210425979125781975492352946229132762797324033283880824231914416151088065401391532040808132580262086928837875925980560442963511422142105113069431236231860673303324309418182264215340861099928210995458005233352754673368330455893457612203158555078995083779726368163439432790958148816748878360436808950131030786284925578002878614203195700482874537237605469699172195922099240269363012489684013955089229697197859063602245923049446047824295924999578627752826420181405167073074777874979066755458147285878709866764093172435275494559370447449843089377255094299278846557995046306369674174003531286967281316980057883978535106248982465310624886687003159843556938708256309229602799489783291972293525174791826842226327754242112105973746521997642572452825433599916467392217590183670371179485544175050318951428516486070712269912500357937732325679278759212922146023635206921448610027620935456656706290984215719554068337128216208577167268867012652010481760114999247930332775573638686717253892895223984394609080273539905499777976301963898438228197901587293298234163132127417619283971720624118309059792909289812149750264130657009696705258017106417402604930287195466039140653457998962655045809557294893188739039316306661577796977248278374329355895402253309908612757660771404530370417296385997781144658068749164037237420262712509852006961519004602817929751827746327201969438148328332425077103030261094017935730251016165572957664986085529929697887612875993209213860716290431318015732873203189987858713119367420241532539926961561606801307961844510173797804693991471332323429881703916685613815371111064579192407472951805142154962034408314876551365441004706158205524050545086317987817071314188341200325112480384927808391347160309692577000961552957998772667752204862008972293729500481529921839029147446286185585122372261075461422097042344373558449260297295056521603042519192189129869518150006553245548353668624574662256104701889380285373485093914489396874265787045914376435252438807011319207286913326813650031515314142759202813024968005706226397146871714187411490818475968298618999901800870097481067159528820926911369767034816634884637242388181954038111161506072759889914501292852216045668037899601869604550768151237256951936461064361073730934198877991368003628046655928378724178548630263883839592034499535641217493093744241961847626022868030639858450659718697061497205604757097127327883300118011728605427856106096017491422022316491067889361657686240019620650586269892892977479967698649333688720318530182618794379355612374468003087260047723936431680718705852404743443821990215967023531597713601789697716398731770427156508439609494466000363928615516057163268561458638391383214475399465680951778019553638640328466161360302946778359932774051044990912835502553798087779506217203568233877706348119728575844339333868974959147704143856744042256522773391767391128311907741802977123439471118158270575049387239447391304591580044988806914860162185034716544150066265246564231769834546207884670522894306731598354721389731440936129513012836838323535065812077353291229090702536917516269218988271909098397174810940431759824920109896377095902629757857423451754784424396961776952670022646819500183964473752879498469122412289445816247255750430395506584204713194134268537933966652735388235719170756647389689519054454093495498611351849929293372244780767922403660385195543371202031090726300624378684181945189726880032482807869932781860058678108979056979963367254358848147723691372938318190345688411418824132120854832024572547346301941436567761401767662088734482635200338320516319952910146254785124360999376703424887186244208994457595961579058674061774229947528637170058047364298865009935615776317664779742819458168984470489813529920268150982911343927440627318752287670799789072424338020833489990118511887821396729728601041637929803728446219960558914135380139849653390411618868286221749027751973846279732209089852380445173707227466206608631509966267509490486043611971825456175518756100990077467205457820080326238438001422121341880159672385017457505285420328829652553432339400134119954543696282654283290161774962646445473521001717887635326012896446024475184798441806605236092366641452405750061180178893324338703662270888595645403318969666699429866027121908598589776816894676693150474477716033114000023617262050708870371268340643749788856297434235635054110836857832535764163694743052855741568795262345374896625947446739765235340112379156846846836106793528792794311176468263496428173384019065443491914596374100301345070671832385378103749928958101237668896798045836394397202353430230679202547674251379639122597575383278209312604937269067030798796637230422406511419592341153673252352703783186277185291258708681502772421029664111923888086163352149897231533893726757405780114352074139727462224701793361431286630327369425942473710955329295755974123291609404144069937985679082727292065179317763140560743199198024509824310435306458596250657971326947882163660410054410195156692098082678786215506441171218963936288921500374559119859604321076605762293107632301634298785065879266511459687298256517179104588137702599026504073566164437130752704381295253951731076381181945328045601671914636188518269369342231743289547338568437042962043401033423493519585705151989645844268556524816777670844010922547750204953887551141782769524151984586396981578016849254008660418458733044813425082124902255131788912854805609385758384053469372425674766354104355364309336631839739010893774046948008452923649606772740641738219912749325550429157623922640154836050066512169191581484449574421493555894180436642627502847064941102667506562853615122941847873593628250451326011920990762810700675818487272998432974372889803717579677498331584246181196237062738046667034624245535727473816207819870903985095852648363999484214780528251457409413857376844684652091008738995202883943166062051281716713333222508732045896305052638894360890878927291312244295527241409561731621518945129195892019350666466870057653485929313112667694183780517688744075859512519154589614963509612739705790342329812649766143582485316794038596440046470803850320251496919721206431203538534350649379796157233881358078938760550592622378034856523111923036810201448141100731812114787672581363683665681395732200499756747066808875179003264667330525523541469735753540605706813919828360663367843428802463610173791628257875922759439548012175574275148477169060438737073312286993307929742665020147459324769465502817107344344249450968549529734052274846819115882564393894388618909446754614245764165763504703446144525567280643646377739079783194372013713598588846177588915190825591912643340231974254808479872381763859815492629803347655411548648509031379155957076920128453652919971810435438277103858602379500885480128489798870321297280743950556401052279691036476127025704710077531027229921490024417690195523898931748055816437614816996441190343560282119008578456261716291707443222173121944592872620671357698826532775604326681474585775731208156893054803557337226004787701777026180605925346965699337836675057667507722845781603396179391994320456183078852643640247085031484126544054266357783505804603109604895633844828759457325960665089244134475280362330618874158534333294435125849461928539916429343541383677609576849974661787942488086354034441260016125091355628978461148440595348076175742582186350927784478995907632289977256463999607064181554353455915309823094650477262370840323095175025425548698304317084760416392314500656875405172098698589577957373431067944445622016637332060860135041215361238859775767963176938784609279488874764570098858045351782262024714577113282953056595993633623673470020453988967268733642856101754989081590078568158129183331326122821293658093903753163014996105731038455207725118198462938298969590959230125178068060519486350934777510389429645721976519832895173801867208767486368092034973338428635194193601185892833898059512449346245994663731155922769453180955522979049309975688477073502703068108454465197554683423886471990526751459924959071888245795005975784218856406798556024273986019352937414944889290530206550293428076560410898011577580672282577391496472846079734235915274828321642702097651629711655980723588820177881566506976546277357433263542596402168707903719024045264911916190018747637364844261275496111926879009950565203548755877211412203434360598015698882508404545934820634998630338985470271816351633062094312098326666607011839483325605488133109657179990327542526007467587218802084555402083862255796259792181274203995916758406858397582949884152415227507137261959533094189677245054533582724246713890578792085852509058671386792812604279994756556679258982211480020488027488166244071674660224792653230483989261652575597163000814644328243835979166576703906807378910776130811616952715505502919371442475352695104241755627908919877458523493384992120649858055623908055557796002397355073027284573993988331851913012686879839825945680639187069771210865082625099602059627956290704180414722787837122076616438977202504807423143445519903196125633685914686604095094211256713073633425596855474258401656088803316362330001561702583773444480920387002663722920577594979067237449270884762278031144427572850914277487021485298774097330323020126672223841683171528329127826018852720975791978923111696218267744034724451193854308877139285024932632891110186485961188188661350395685524061766307026615395014711814260946553166941281768134327300504086068237846533696868552468682604394201469805306004214406471337156895516108091696362671734766703879303511418531614744188534109279074615415571288338846376973343984612472110474809738704194849466268636996467681424482075721940136900012459264875814980763719658973918136962646970497289936518226977225959157115101022806108453833634324630551066725911918453864842606895623697436019923676983154293763708628205983720646019624139242112670302605017362804715764642785226613579938270690895888191155544370686634049947450192179444667561095967358247314380851293625630845591651784756261594630792521380055405344411429934776513654033524028371811625315885160401038723234310634511071159408742944961337542483701278621433692900227276861220704987445312241892438435445401411080110151465579386083630390122979420387430797473021309471612130591796001223840647039640672161251499905314459943892648050772297048834976328715853143441575779224363503441478988303177371331194599613943865719310971328635000208651015734715299575824161835726993855953964778423442592596185624584080591941200153832517079943847392742358952147153109512764758417647931391757274731478615439766748135704058478220486577988784046437163693514515128554543359104344222121819627676316910232581179619128105755940859619281981064630438612840739487571975735077388827002201158551721601723662668774634747056504240363129511041099792702101389756573469485263108888537837010307305124848019287544262209737494753874189485844382745091996043855750451095258753791656947270857052393299641560805505121481536850730365838504946931707278264593122124534422066219889953459066006675033036847878093712330039080525696251077071420632155124337075125259809499548231704342723434027408631018199032336275051483758406454277796714917990133559960425997710961387381545946841831303539067330311078372108643137106235389445599777155232738960129990951006125623178324828923814849622350588051070629798893115807267138546259303788508402236124248898318062356162440971807406394878772247145692965479544095999106591727018789331015344137730152897930422585525779698254719250736693278509122948442390813034643223231118314092891176814268870477425031776504594894179957281666509172783432167528051554284861553242802633202914710394898859448678639349240203944462666491939212275805935372328795533881718516476449102430486524587901454425960192967407418312444301298440523079823716608386093804903016522172912432223496864034028029555423682906104916279941487531630459453138576131024695279060362233955748927797795198045193618377596591439279841467632482342374515705439557482441648963890340025951866571808550002441158596137532899854099885446920363977699930319601469740683092597895970992912711619850765681126249004439321990842612393188545777166985697997655362692403636114214518770694807733396750925747781253421214594531444230259736881169905634217696836699234949230780630806263145405864004560781208788925170209624530927486494938856912576934096340295233408443545754245720833811817284197546493011778236723167253235782742673273740682272067176351260525411215622565470695055517308305061024659659726959716620742502025450136019064124133276261665101917011596781469436516565650133938421700405075599153643713132652039508682927163799484074026870713960377465218102176645260989175586376296562888555335564789431249570843862999593339715895504311652972553453396171765136404441020871061532443706047921964031967504183649744222036974053172945590202660041674696918650185262579952473169587960805489184105442459346626746366243679814848677391734445005703629167823865043095893292387301937164785032168638685026991460793822374693559859073009082694491473616210601867950957676970367231384172093485760063959651603987842882327862589852597175220575684890964102366919809839084732983951674329160823556617899140791850360674995243064100097744061120632003248708319948765856304726394375750306735434104554067911978411820616028783676027486278997805517003419265188285175859189201011668128899729925776412796042098867261111301944951226425276803166913122433112498226331306125529677013320357495641234330396958080747654616478500429381676457230328357553632896133507744919869191912224061989270844804071685348476900844649048064286485170266651015322692288683782250797493610763085797365232230722307174815809976339199018898576842482451595806671817130145235368473846036302029552095455447680938325631415656935956553599605908147712647708384436576859609473955452253659322822554052531495064707019825107396257215856791519159309700525260810362999535277382937080411515891061016163960658692625269470619994356614587242412118267041301510176626014283668278980199908708512448032391590642094251787180614489897112894256404888687505585981702051336404986245483468320957104541630238434097162157664794680849817378941506107506712451671538561658453844784899113364624395587761706518227110689980309786270848595503710391153294153472308620093254315342766463665049668110286783512319905286407874483905017183085448634861503755000419552547458691613770339780052428082127699811682433925523514274530468368018705744906220596461157319921427560577207707830434935508533400977849394281584464365837602409372697594500259224785335056962930594014776475936746379956867386324011405465555906045964763460622445198970971112388386193102920933887049554929216331260215028332299228598786840344516828556507074943326369662822828007300547763313302574787041643268249371738302579549591759774595745182891740876763250211379271985506767252482876745204553120064388283268113176296328304664928125449071243362931515227637612420250553999439491976335441588930030003090872691510656766317131716463179765269550090422512092422380369423063747493955108488234327921084097168457717601551450941101139006178408863770864429560704333277329161719766993865099847570077586820276901881403026900111652106568976912171105007587126677839074915865771591295756529774106114693233491965641352976120766642839160843117128461903340819079313706487835990833242990768215432585011923209845429575268098293103677860108274110610027975763009944032040534323115890018947343196680941736145858653547780267871852007185937932483706823704435881271676201695568252090396622675945026898434814144890922386031286099127393896411867731740159198213553156654089260578082053063461755259963387005957641430883420059668491613710390989463701418969637934246609567305507687861926933800776443922829534105746061375767629267924850027686290775364489776097913371494572844070390220023411408042979846791390033171095389977509440862919010943461963957082585957848464707090349371887683936158494365009623839613539911711911493379723079583271087355230219209897098957684752289915784404491055567327295635818499383720181560077273415742041673780839195461950552348747645299754260632422696496987436925089083486654381348662995201457375793343769287632216801416977039710619214942153599955759194767818430928155694438196839876262524637093892958966592978065873342538693663835468592182750913489225450627750077416106642660001222922625049325194477453064733634902047021455624158296604541518553135318963141429991687045862472168031694005586593487362324126009481477581815779507158205730517007633826661333710951604516215051482972549826700391263832534487943885583919508881666627087527541908719354300192590021754011312689275260287885127066753543010744035289097941808185744972225997186820876801592260807001300970222887804427520672352612743754346283722749141478148325604189794155627581702605586851357557972725247586853788654780960584100046042453277305080258230409567629410732723048253052292346550468857971780795662279440936634542249960779631866166542643159131567488985458740244314531166725412543874289826282692114615090340661064290958114435802011111331140868839342920561591117465123308860582507127700711610799661279859690824152464222109992684747350326478244448681269904356495835830026516123468397644773595700673832106901410441841706691843544431779153776225967871121338088881764908324969717990281452017840377222604134727612951564790182234768895555569365431042327696429334008408188433583477986351701018682925204851699360472469429398541367044183604658292498399399319500287433168506764357538459768529618787664783633864404250272431561662910173651453995127895331710297310993921393917870237181450370482357045801836845347024770215542589307365323815731834939081128915765050962587978802796998597832795619212069468212191961421254667045810733844140222325963380737428610806831208233968104061685169019450403643938541707348555272405689022774118527499714716349226974187133503620945174750143712949560063438275150628204414432715978729138967496900929620570526815008700895986744647319752108206371936225888096098456815342266285998355406376566967990686475424602141084724338762965492312397247416000021089056186374002875949063313012029291548054435054027415588557022694394064901334970838999085240759381150930221654457141607240514295420560015027833058291210213314573177812055465375732345803553245807498187830309294838388988698161912675258206797378512563144887527591820087689314534570652478267359075051690678922808909351042506453858114844444156027044136685153092515079412562495458370607305775747627425847985398712137062131598098167138379561941667775792417436110696473817186119138372371186702009014330957650803570843019903544310352676080978641798754919204184701446840075778697597402927064557222624010079556809465824413780041222816999447612535632793108413985205551677229941404512546805653400109526479439808907456636775161223992270955458803059003663952113436407870588439803968899327645362611554545314167619136472994174223175615932911185298567802527690938246450371005075089490187459213528189253580455524654342160554918592991849855280516938764344271857044010843449187441219233992234799177293566515849597660635575699993464484514600979430038756775522592341587180377701175518345008773379851816387027711681406364696131326330704090446570008391441441468645386232916373756812982857912949256071806646893555268290610298859942490993225386218728535909669996334091534142515340029273028913211552180297051237425729535781498931231441035277385672785629691623416577586830052789380420027275648204241322795811001022888159130943457144622285689387423876748808691980052295044592259699624885534055447389956420099487173167388022660072135749632300153369651030131159863821204057688814423097840618537820063434347550487817797962241089632083371088930396924301827539842211367302735864378468953682687397096836831336634827838109870335778121184239270428874911895987263542833343216471954576406992188291541619088953852478694218474915220552653162327234184768454149095880107088663448004622924825378823745257578279633758774019223207506689366441769013660896826805655654770326401649136553509268515258781280317470931921114577355996546835966188111266642869673541421471618296542842985721141966330688650306655866398836805387771536030241403302373201555511308005894432090659976356546510055593078843742859838195017054957107285735203730647336973093995882612372369635098340984267656790199963833690965703401490095442671981040190794169484669694635835452096573087001927830591654063251141180903512748652963306345232725151494522330471890763584375691290283403775266434411246240579765883363921009156284324406846414175128562268494845874998402254498762702714379883356735915764311552390253826542466129196524356217132660683369051596448463772038303696384611368186337004902235204185989687162258376296992796532704219354867578880546881739217141852115919142308182372990659312865046653309425816141654245996884581002647227222485532834735874905492574799309417881075329583061413046763895439065313839947335497125404971676051594674767138672792644960856597588211281043344520324449859768733002857223023904758931262971002191299744208074728407162475605997036191715580677239858761393284572608554262463550349982838569702080534305829352024797344438551754161720335738372945491223285483265057790107020189110808214164217244730114772401558188847246355979695872274335234917394294411163689318567932508613374604615761463149013297963817327142288103590290106920183158714935077657189406012790200336208586478516567366412321615340998072072566480976722690633470999236817515427576551908516606041904940631117732727044871295649179764659229282046999330141516741443822886130005707549627179924434688319108812686502248176625925240551414701008707255958407709569482404976389511872593119437261588724614888333537242761130162868550366732064899730219226850358074160756138080081888238137954281343004602355380219893885857812268229030023627191883314608096209414462405549119404737404122657217428458459742359108268262288847250186414812509027582485526737363935609215195347509554886255809061660772803531643720191858414995432249978864316863748736405977821384217797925533729594223742834206506248867071098638986931340738082893276945332381747790079046751256364375329702057504723422202932921749782615496860901659549724879216163684185843801030354542534643060239533100336875766066461018671665629174555114491135977748290749039021111448393777434970355903378691496889418199518754386205263457464361825154715664975392394253707514810687320656775648112573444361279736758585713067598261628050604319451609856342636939558127781510556701904839582724127399131894142053841598507603769752884578497825723715980399014928665322516957311167957389811396028149949196707722042460910157840956677209041243186636142544454271046253570314552762020198733514866125990626836474645038042219856626519787021191856572283745239134522170206956618774002147366043519379528642200266061760201639199294299216467463676511489642660946007149395683684745681239828583796610285540319510945726828698958597997239237713363798718333306117744719539049492960552361351120930027196907660664114282625906005514300804914038050714628486495919574080172269071776592144458311180296586145425923421497912910655847776677301207382692582168953882488365865815216685165916918992039458517379223687270829515104006204972960584031229859040121461691342553957776140201151783783092340467478628111542130558170205646362910259903717531138114917545117148013187301344947065978204489155585575543060128193722252391948261559174468476714983750953736165588810239483771696749479213744203621017583266416104447532088898458107802852275960285721543342468412461080865755517210890738178613338522854017212021483148871963435920519250368631801715696265989761275752158566810125841362605758389634525799649250755876224872102760799084061027055519618231121433575863315871589479919681855034722068826625560152754319666368255331052573085893473772111137597726706587306024641666263194341604357828052454044095181716441203534001898218893511594401406915939101965172101182732258152067558206307166062689140618506120766593845959244615440101206394396107793980052088388193089594311877506450915118777939009869499237095164209056983874942841223639920421601707559122723771933678127521517138149995567347415242996446122679057655886240611162182406682567666779425419290954802255411106667789346784403621977195938981219191131616764097968432389736218654297542147703863676901001459442411733041988042215794000830895014667505191261321131385162078556102916419054195676892617785986079624742636435860488560513536442868979384250185208284157431441093275994556437217582834421687647894688793365549073238919192616135385882310014565081401138747317261507880009641953633834100280438156491598983665237379544262032510027796763220810791446147812275241189636755073466486812745720429310870441602631750734636966533947950590599918819118261743833360017584427263071561598860004019606234809584600337562949080747356483108547369427924181678999907400452449689066708100162333210477397191980851814642322393404342735351693211853067253876725100172016456234308226265103405426895176281834297183631833505830389848565236880441327497064681215049087668281803512755121536932715197011673572863089222365207000519145247868890940261769885949137431172457200637207429587769288547118425150140162536558287882511373435839372957502387444023211628088262038909609082350905901359909928551884207007025406433120857878406914841793133525157676368959222500146756424668869727403285670921878214631671888920273534731097713905429370705541493385146974422040805492891138304363393471877183693482902631588869285056381006889822665986753210193820430999553237893409374002433351851211329796606299131108587699982097260363064305893785680632141489691637057635738852868284350086937157276574004898512684815467141623631604843454146686718788802155940159101324721204235618632533621889673159873200498944123235525261724225305019544864946488954194700378840675350758064710149821451720867472527242337290270481810785117758603045983383386229616368036343927848091666583210395158637011138843281480939741861927878008370678395284444415889024902854926802711516888196878394946066262023470122107815234730297772646778880868607546599290237895286680846983130737135571183046512728557180162391495157402858555048925939442616487930610465382806654054660504757073031049389670257070224300936752431623153984071286658964316871870404828577659897515645213128722148309321889535570173833596703384667469640886978572942192481066827519077925414195457204449026592783389475419736616312046599341301768295046735928237704679354912914144907977643402429918046932610805256950355191002444223515400154078422146174814450279747914070116593234011355909093622452096854436401041234723555750547533453915535763649704565514761940184561468951096782201858311963965975359218482830750243788920039789908909883887538672853265300777543169602170550846128416471066081879778833213883555996005590652697421129962180806986579784245389626165620976290665310517270334093887423458945651494581528172490786737408823753269625553080789373995267658400903969935637158022821102934427355925498102480823085800080139210830397028533090427124610812904302144291075162463597180886526345534682879239825383772264641405311194761757369316603423237975196088779127503531914635232996305683360590074250207648524887581431889351052080205218445635337685834072079807419592710940376337914207270639933744595007309898728331386830792113752415632947946531414408196848949395758225576309427439428463932855103906237779192712065050004441077640493331331663407692231648561876695448127975600117146400505338125444201828572313763332693840258617925628303339257782591358593778272510744957906592344148189624836636966471717642295772616093406842242286681074144604718534912241478179085621181121984811848324919320342125367224402470326644299223486220254305981686405376609882536500708587689036672748739815432512798631026523155847397806656450236406550880738072757150967964276790908914919860695482696816950446030099117962781655524921648566153519339493342198598377370165114989944721530551865042511626896770792690797843449960801406702999939179052517794848739003008700369938341076482082566169395981171715582772850772846709807461369360825183182998945390486030705240606201866141183716929265913362652881924740909859376278143448915035585604872277565082605156951315516140509262291249199454157101632422066686027301096992083383016790095784608012894678454080695786335003396162691730534398828581619546113547521631919108391108255482478510677857928567619531492534607026542309566088044248894991242439169441311686501945088076815787282921291329735021415348865598580930599528330331147329397632676893720909060418215020238656178176962956942478971937498437017411583063170766830584730719905161742035702652202799107418067295957763064337711207615057812450679414845710325644028668421798624756195929901242536222913300164911046885114427270458229108009190528665781924297607919918353580795348958395828863680010510274056850088886260151655170448893345221269429908511454440180900218734009506683403984610665811498869657423247073161432800444801628697851199825307830023404791341003053570277474415709588329725605887227406610939433617392292399373682317857556274596334304188983339719882377177790967024157469978890118281107511678098796837230429045268667028831630273260691516120943449068685927483284410914384054981274619051867775898190974997617730003374312392645267237553707405009663266037988220420945311685203581990659404614988722721632879494780008558832703408128180213301259866774110321202665372834756522124196102598826421063198499742879313216562258171723196081709884688588978528720799722243259935962942001222172791097863637884680172396589538025060528185774936638297036464881864217681904435849412446891049600278728451848709766327317297476679393488335546372787427217633604263525641938823127217286945131636008526758785818948837695512348701512496463199696843805535751212044349651381813792742259531762223806797674300781770560177985016764407998240243313073796921520267259779390400017817109134448910378901510309697684712255962896406478802925393402655286754054837792975328181901296190601691166283854681361108442790768059894581421707574221934394252712873911283530725347752574311134540193000114594567400224165760857698105115342200820273922811984581600186444365610217622655544033213955954085340180107937246307313298792565623646952145588754931165739573080519331321300564397146393642313777051985858917460903687435829754395991879584508533451261345639037991471070455939962507400218882250970858193040781492487190722628460528228761618502824316569537199113795309924715911348773116423326854822300423746369251719095957728428677010201358473001739307390474242959540166853142064525987977317365640405220740335727307362021942524797987594608268717480554137875850106313906584598893856468696768463979886368728303268816591216153896819640894763260615685441383747101246909465432080635172263383137161150278776033688654711058639234474860574576088301672282006903380947826317159702720497997603582490748201494437473511356481144080158535860527820115750757072497814187958702999649277927938989341940933013567404412614228486553267891437928557200996931893179343333057727951935459250634919820100934411084521810888117104449497018710269050529917022991677225473255586893284655864213273278190981140732917121772284467042320847401086706668790130304033478699276841488912002497619318531979387273152557937081761005052946643172321733260363434830492918290282016543184033886042176360122125430672385358801504456810261972900388999955855884326723901377860959534904680235484205859097207198973404157107057560461151383447600983780345021435692514987815245522450225456320137909398664883209929430103746204512579907568365001401531037366045389484114490508249416984640539997512663265544379688279641704033640258613758824104425350248215986345206310525479952932201636455453584124031591125834699215999972981127915203743941067692957965525525639866170818628628102904901057420860175424537422438409837925140895700654587045122365218095153878649970262491945037508150983363949580023299966571302794070673949538146774456774303926812572695226561255798583838666534460021111326257360511403009313151553389250587552489861737109064337703408652654490000223449301819383089003913295805759691257274314412806330364301961229389887020830923375373997528463970689602426404127104176148981816860842770099074733947946567792184680920977760687992112173479231473916229299459729513057074514648161627413380697376717276453292970969135125866689610628209692262799599636248203512504032656362638941201612544122564337037690451357964822950242341555994310168141203536204033980520973565295569254525264258236970339670545906901301558232228386521115768579588383242840479716054510623549784707265163510730431453081197389662844722301933048892887185524252689564643650638232839070875940540519572515084711306139845006299302759992029155084630974009092024688368416501746607270180912542010850856127773839278266600822075277072301432117917145995843028140897042259849309348783682600221281352785187543235086122130019117959907388675906804683275834145118793091984092531846061721405789439539515393493556100573032863160929302217668145937903978277637404247697160488061364406401806993639216045456963165649567579864393337409024448353467033826133559380198040278320424244273887742610263361683464944840672148225767383556822130469066593834846806342781629482072585159859652458876445454854481319312158513683797463068950850258485328516629416759070923397065204674198564387575441097298699683574361852431176395615029633907116652270792814274671507857937592492647388857801638096629912791393867150156875010399640611435731007609192615774665908153025676380979384949044642376260717025801495020453712313798743400176186174349340815660137529073680277249878688631058671062068240065145429301223874147990608090174872205897478738652115554267678741397663989326315956333470092826889273371692758412490111194957214641943162527662839287458215696231243860028742008889208216440629986679876248131316769108064462900674450414813855807468476926774986093347053421062015223576867577670528725757515129343754466519798912846080750628141165699151501464006949217054320891678317260543442243655500900422005302467069717317022733379450950688405913137394621633603673471588552566116737787035292115255050323240201655557616190369696649471110512081831362892894460203671163502069405741857465846043816089464866946925745316721198690018539592483092773897846335040044842377748637829030244899274756561290505916712566788212305394568607668351516972847538752414950898829029173766292309439017001069784171914773753747316347317244354691973968063542411456167899473714310194796858571780607957660851286940579847789087069864309742428632905006184792774512978962252480386812587353362827951064341413902662351204209786611003308185120865543567145848967221546455290814673512291360480111806610965145917859929272335493786230871121007580423187367909500061658919027923238205544195358322711184910322500152233628877385739981807479139483505842563101992475396110726194201280386498170376820095607660622078074042360571564455666454017242615455501879518393650462883134495677822280607555232885572859252092657884642579326285102948997554580630463829226997655893394884559987651548024546455440001819434756812681038160735441589442873216907670312964715448081450577371190823614957674117471471249883305063336494248023633340674916907178120663189873712807121672208984179311373222133425163228764042016942241065064893843196404119726043601337070346581722285667463356469591167957660096755040460442179218642189748932512973832668739127713779489396636149548413105719936466932274954366445623998788225395647076348171427243530466942189165252828064354411982656370867419676748921053829086776722896798407033213853505785202616829430876839473769807605753266188763657582216419985595510874928952440625107997242284941004758508214115879624640672899229911554354711637565675779015061598512446852986733434517789516751422681395606430149971973585022947260542338416409659251607741121937998446315146665516627702405129556974379567627836028874859989125473085488112351476788556412947017859139300979764329583659507635925608757512232281642650565087434683852756004144029890220112358683040435515369966909053375513443817577074039430613523808399016514195361418610985036292682770759057300154909867045709355727781680317079522698518974614644501527469236696930449528555153189400911278555909741537548486304646723772114586990112392641346392083757487210134463097358462771231364742513278802036603922155402083189333815973758041207125447145196614743602576064337195384304813208981693154840232861277412328233550386949082685076198883137892762846026265088174836891946280897593931326954894975219948558039504116001969303403917998694741640031906528937911757876556824030462162817495708328445634166480417440138558088368783104820260909479937233891624469285280017867976913790600174432470903239911194198189320252497269484938382891357466332826868988145450378565524957106130355011056398516551052191626334435063974954220832945810898782721039228725257105045752495154517962381741391435908657922251437917435216308780879645045883680370007944900923711460680062727659095735511939601072520670256733760266445850495669545888589602973443729698084568570129118689196601386545868576370361388182796564796164275307726576118389611662996711060606643563783512197402442352041756105961310133210946933470246006628316566145031465226418887949835719364515350104016792912947261927762302028184516604814188993245908059428287420807806069394840991307389902278833357873452636408736306225272634078183897121177971155412370308226167692231294134098869343036067274154843710620854132817476701570674832648189555657363266138837828813897316043835075073982828919880840441947294239021898839243779825787004158585384449640201246975410131688064937734823151301429573495303250186416719739780806800387148552207853564841954149805324674450162038330481476317250552002576560441243371845815056805785525562842674095155062877495000872817435098190422302156322007923073313141920449308082068556051371041992927320611713304100510358971092806250760140343710815538025549327223441775065730521357467846499251043469255875602164801393496227072269221708471657768956552666705662291978943327828654896668165611989720032673445622160598700949702012419703823482146948453597782354389783965732468294587682566598243398455669812072470467041688761727786979095662224603772967391861999382984987431384525439452857097076211108858444999767415854679537222342967715667826433717090790003133775265826871803208813762895151456445499267764197403851666084738917185566029026874572064792074262349817781734036115803295478259646301774117691074829930079098631419402198680526299517374586631266435915526551132765431671007194974489293027894578275797459090791020421385008879741800324333531727012902509991279086208326361027832774149896496854357682751579722521892513889570926345630863482508866631266464329693723246506280312657524077570888406967426584108858535368337456219482796488231005656353779840817571203408738636986186212683145299141613051268548125047305649695466768950528741721883102006958744200101405067180140696721441949177987078362977439925352984424797035381382076907336453027655109622469975192819138758791361504700816621898484820708635986520760628247214286029632084777117750462205525345582978444728507895444789764614200979019349119313617732506908350981272022691504503635583909897795404987719142082929716826121583508036868436887331777034995188012691034499474045643552890891007480856897192388746254161647154089165270464842784453108591464871120338937314921611558210834034458750891285792297788718499411149576590120567227465432082190938527363939511456162053346814130775343536984743090526569822125011048283322003616269943520115789107369293467454226021648977197419760457403400088351163477236654642184075435536190089719954422193562599795171225275387896935152708721656746636664920663046104884186524784834286192615881300862235060829056889033357429900277238682046639801026641581846230878053881212741983791075200562137448502907007755317180817535971738166570693694146090672262115026323741134747466769416516214184773839031384026452955579562746381001384086354388049088067059688946601999628766775039473113595526870268850496719030840727766877139012531710066400905998755457208037965092395198573974707005445818784350734802082709274604659810219696135439796081557298585687171536638024207350170280467611177236075292691164295910928786988550134111784194915391924931651623913021320197436274510230458584720725656824269573960314243529908372609690468571838600327020247471280063192352203922144007563705971487958571088267194147640402989635692190661356444742517143754199407009826611500731432222867239197523839447950585907170667896108044535714522051598444764276320328663870763223159791946639272515928542999624783002594944944401841068613361415084308639901656782533948856687396172154049416860834222788294391157700786290334269107499986995266998189315471525692682845717660286817137307154992525789387003837476584880693311740904380682290104007615003292158781550050640922662797405292458159963789042110178344800138248357684806026809007156403295840484033878545694689444230395014171307803716616420396372524690751138451002697356501362744806044939933584129834885335092444842737888669151339836380988798726662110199694102160606259932332878062854168847298311591103368817493581190024180789323376320188689041056077319435754382853256449070458049380181971118856420276452721371692545692339043123921695158791918629379517517853724030223788895055726159825743400779655214952947412804598009903189990281972922184235878534329134092240226130507861640935434349554745868551340400090396484376408277379019588993170006388521566254385639615870936315747395492514097407211973723258415747013445267547798046502975250778255580681944398886392679245888712218209492736823889052187775522960886513331380343174487549531376607580659697317044405703269622934479058468544177903142679450288446664635696488373686569966283966263735232706299290498942912821904579723524087120147660025226634634639971878020748357553760993088900532428078246108791955476234145236854633553038327061103265868941444224270613225246614411807163032092615737014984986235086403158602590292231613592323430838901901606245095768894782297453075962229811121960532923478199459425732272908399649368097783906083355673795717725907869274009702788620588382138135850959203663246221346376087025466362819964306867892172949488873819584855039278349459973040891460064026466732400886773621658316612710397815775385375500136710550731013945232838904055391817432728915720023522769112856431833821942555662482513965545110871979825324804811732599122455907740709103039647257361901333064114956948746494737272353409809809054722264825348174549208842058487147903894062172527198854505584225945805389433334001491697835841353877987956649446030595202836683997933930771442671274214923744736357954076241273327812958403884985789857838632157310785536552117087295215277570700650823706718357519359438777390091957658871455522117790775036632899350250170743519047872718663870359932042647501910394050623086365496834206250060964123951883181890245834443162498809206291526139427140614173089740940103078884428763736420650443949642330435866581250280051226758963694221723379798453624952871875627597745595145161200946506156642791817260981116871631498266201747984809277191673424625491379959107477690074434274717311052870566000903112035854124148703027011312754039495449081406817586111371433750361173368306558811938081699381061768493955538570134836917268556181748423112343373460375256457472767788439873172577476756055139152568984983829774873019287667959986184915217892678564905772628045844095633283525431642379077628762659563801671900765045973113460631055426392518990575538689577625288060019592594977900120681167416971688403383403682247037244784448771882066205004171829577121102616820342676609904365568111554571829906929444710600075305961692583761069046709017921745651399538396696063099261291714707857663615182626915528131955973234744605191214564159956930062122426209995383187393222273645820993552695847982844104579708773389553370012323116178425030342036963855546586512711819706629432452979198414680875797220452360756744701737760928696354068746605460169874785944144650665982362242686539007393217150966945418786641322575719169735672501775101799434794923202738189817477852536355956814480819534575988334950308599223096031635863509786864657046305866655171885947609891239938323395606601596517644427976972925311897528100391377666867404229465419364727623792209194076425366582163491298288755643929835055149967165447165679504308926882403898617847247795932733795054086649040009460815531526532997306714154793206034152463103783583122219019527222146114803075299466591884496755072636403457355261252863246753584530112101342305425132910809638744613894928599236344488138700507345912203699811787443440831587561467426356497825882287199393849814582329708560597903703659179528087060522569514635683406970568639326266068682694299156810895084577444495506186846178758600261062942743209449808428707657689113462574792055639827376856513312247439967812253949413697533754232113434519142923606530099978865886085831848047168658324751536986173796754401317925806781534199026523641202985111413443227874936265220566004093561662125058689117636925949076543694333279367127026564170140314299051843030357385121986512995406622972294400989271020440186265257897416423986246528733401952424092030759300369281275429242015119808474386218178530950059670796084029917368842671108999169926874770635119223033370196835436348174456373217818161513346654712958721892621436812436423620468372756812205161829220584501874663995196923277926856477902418377528883817744627040285111282563612095883078889592720844785019806664015991827263896994409635429985488157181740801613082116290289439903326830056598164235223292643669934347185948268775075236875765175822714920538884875889654062876230850894258215641817587755737889555218965224833802513770001789752680152467396104740807928679411448605351661762710741479007653129598240026141799750040908013427208432119115926378719169893457501867400039491986211356338556406316551924651665659354136608663456660111504449818523782516187836923923758383608465293182891098188026232846827969573337337980863416778595826533852349321672457778709311468922285658455970249533233401395156121148553165558887831436920083359458332540037145106763282038916001371458347838512419033859306674290138304728318888669918798259957285673725158349331739575462927799382710769158438347492088248826115710018923221290458368185406439629686123897032203426761509907749429458373731718205440807287437823728475523081127824778094814908892149531829086401213137209715536378146968808991386344809616846675153152175222896085642758664039102603673042401599707893446776228886384695180273367225244814557638691388239572895452646594425571358635748699566788873724128146990213344319961205711377858508580444131305972679995484563519356542865444680205747736930675056335566151996918234058181204621533996487440351813080682764994294866223905525653118180211471317905981011486755903948202201999476903511070500732776525329996088080928536128682670185737754694858827209006397470750632141559048463340473085242769933257317343782847992145629730094732714674507078230269038921354748141504542950842067965462689155634223716834354529851912873293644524442294799801794157828357198881779724853788639986922397766354067258545055632542058103534408697013350018605115349002055732439957420595117344354332261843492222578097050168903545144816722725999389370095946731835914592983184570379509795298295469076486082292760347390263837656103532213949837678222348079160044630448445315597952187978175287138753407658383396245704360127923111850705801810349668711351610999160798306245241692443694641090809917700601869266841657722770722730466878738151684164186310659111012271330201860032762132187603910904749649170194670066557412136486646915038789106723619248182005909893359989423952131299423712108667867182813472983666962794565254046725197955054984702481005832476860784616010261782937540469654494476598273613413755665928111331261712490794931411449991447416285636159872236822905169159577746773644357864284083651842296460449988806486868009744730059608057024131764586387205492891020538664039308337183092055543326485746970947610742309551097898991750062603855556788750254201117198430106897039241696033590668903600451554733461313244508542592000271393372504746003725763875441629532022122693873358548595384718755813176675011647494554061531598343372436595177241508369540378305915763765340239792448223044203059670292782596490504955632628780236773026545012408417883720029149772150547227446187102834294379481754148975145883254117291447597711516598299648604705662831705831229398819186877936269693671660489693923722083648982913034847723633317716309256462128733792042802883469408414072494858695832624046784301255444733534635417251517263251125616748787118377469039930374985839969921718201175243085467202233881327801073521130250603514469105124507795211574545684644419136326199978429151590321981589315340973583955806434398202225881452725463417268343637011870796673559043017492802672355737334905564299876064827635670878550040197432079699595027868046129820979387932012976610952117039576982234558319881114317462372428008023792056773921124738833553074830154313267916583797814099852771648080432667453073649054137505801415107189642961480378529872840338560154470844689443341535650645853711904262076689485897897175747123704302192558650105067884769431956912147854161658698661260222293577436780935105877576541203670634673835752638391208856804437034786634705463062379624153786250232432271463197866099287484511516365787058266639950956143631122934498750251027393522093075448246786186514286284709170058859713122611855093137567900686227667408341885079782215431039374360227483205271742885392776484622031210547270008260151914585002616683237668301040681249247634155213192681254738678596254899918190834541136089491720753363704690968409279039897585795506350283730109725527834856428379403241332692305095851343155809036013214425973910968592148120428285392679770261273255726616854278655214657903488913330671575311215864977234918922191817234117654013938274954178270205564265577298388385925813322128298589304870584762520630407047347317757317459908051273702812588918596116350853124596780294021187486608990283394418276257105295940585978677100957097995622888796373048084313665475330711365893152527800492534269418592250804901410345751159885244667763845559261371702213757451879225758377389863549831788254650418303266507571534087922760253074344355510259531612026408935467328837566711651791720792637859019039148826827298510121115575219542168602097226018495999187357905961129078441777763219503561590898757119985277665068357268270427634568625799894056464703075893458404521873262815584165944507966152644996386353337627911641632614764462158078897936691958539200531069772792061869504794244238134628208052401066365150672839239855086332387562559973459853777932348896165293589523964100397606223906549212686187191913514283602201685754494462164803019541971041731179902338354026613121402547205557185392390483698099595877470100152449500517036299567413641312742987205550618798033750317962857457535766417070591283545880345598278628079421636359899538729175694787141185909423077101091600567975548895050759196006141706476758962095019112451110727224626212966422137916417370203466630975025119603329965564378656208888446774321018143200986883935347968277799580810764470477664016423465299365722493618288553242260929200746828103166593858949131754254601232063851555146035149552010588478349122213848764918932536514889295178939221425724276787303187302123468188833009470745589192855460121804984971169481671955434626310064827510597587622133699253795877725521993503599789462743614839309655699544752317524329429594879899711281451581051803317921958666180881101401211959591695859872363622409202017221807249430988104751964693212856211868899113982116877010617672172710676772785423641459035541155441939075474049381338788550293249103578629402671856829857082418598332628994201970338203155690785330487647684406720678495036198368043960392248603537998165170740672478929700809165253355366434628182077907852157835425343241472631128127063797764258434499259490386009489520041188092482855758340900018660972485076515661739939159094103274330880638569149366216959468901184360890425719682369522364203039788064538260692914900121872296195215675416581621444595202622200723247659707905379378776604833409961390540397255769735303436509123329965124550874839841030519998978536418596552851650058527755912508191119875721552270269725042984148305598829377519292970445002575873490669399926629980332663429864276205517095740528964368011955026745486586131366800153711258235437255053648280107010704118819748053801800119502936143178991415438748457926709456493850144523913681968426860293970233056717764248232801580981201625738463693879680240809301634726806301279249853758230371020673562822308988411829201406451548624570398469717020163367635347827891271750190050608304097510554005349003539743608947453596729142570005639540716550198385110363108013947527308135401790453567474376869391879142043697295116827052349713934863155268019859372678350529371379814892097759142408144889287610542945999806997475117313784895336751325751790054350714423487100925768465920391066424321754345179431640244198351623656816004136381342786037306165527566399778803051544935158180509088725372966942624918998982273138182940480582387878100932087958746135634873942646822714999498196517279113912866726820737568739800999027710735394723564833925359817805991189356621773864953548451716597901402825062826687997746671975692173161350879716683702938323825003148453850728835120778617750168136862108809909722911835422167933648472103037682506070483221076934334026320483669556323772935352565218822705315537843678210223959322045315660320024377006010551041469724671831672988288486172200520465003755828403928202558058410047409977400132583142599075891585971067323196681266598912929877305948164445550111042936600361737214018351992873151577508524281717124308620733669417269875255218059136137383780640666181129839429988963594275021867185142693007000261061277832310302078346635834811489531960753788718712533918339289766276859253110859155973998400691981448083952059849494205944285685976445208505760788910230595120422894880251075813302186169119737172758002176173931923429216466766352518191190144400802461598830193055541499646801192067826537726526658795189757202362997911755196534580311646840299252627635434030463587253771546891747602400934328036394823144979008690507422581643759452027100256671758905976241519901344451652399631775832657495513428846852531673731474731314250548601063493668475612313458666128476977421354913552416026368443397300342931440855776078881235445483555330219467372097016483731586756183434121392222912718307819958164910391391351969490415278224143779351562450497733008965823849308706765597447814757106394480363641756610353268870596949819101810722109177340140640026689681954779149867635009040187079035265435555635720274756511290041562087542785882899682268686689085199076218946755178161738322626958690446291786732345757391513652219892129767089231064159081619916996303641531084066692005653814523997119253646428722858847584646257249180143020872425596062040120926941132189057278663066440568657967994441220567713633483705704823341204445779957922749334422614477316718091699754269455329143658930489030529466441009890194108873339824100404168088679149506142787082846903341571610575116831380919395839719700749111118991622671905027448676976636057255702703605373969851310479620850898208415699453036684384993853259675020884484925082122878669227074929404460958113746841691813385707369321034019193666061078882248889684565095487905330846334015208323028330557132066786176452579939093111324701274171965107257584728814155443878579316435349515859747463823393323567354636236374101867469602449692326808266787885315909293517058407726617960386950034709283204504660928066416861701235420689272254732201875488897499127924544409513204104395908356541141713455866988105832304032886547586067339088859011055756524233721485472861312354898217977184569259265469911518475425314904907907767670624335581606584458482401349144129988147437514375401370440195575018634123695217327129736711918924334984663677906021205718076494854634014231180506472044841641768321167746015551781099044735166280134472515533718225953511034293401326522126016911748447177142103164769711865564697945974416828449639885882246799999283339506881210681300470976930904569370176317915588930267431655245920076782355539718212341528623730431912960797903305866949257349149316778058595028613236719097447253819623558861545667297141222603515411293192163650722023256594762366200463023222016286279649659504515097706534682201766895342511328276731755878839508101539966229547719616617713313985842287871611290810458620006704724267803862119960431356527660306188814373199644674984957103062854700029841397019299930478434621535592822304289391009982641008238090881230913950604509640226100797863375156847773121710355853661228983516039258923659568767128764500406584233944006864824542983066923067262241880680619794352478829940604413821890005528959965035266591500252897379626021347495081190528549134713682595250807559986374154036603733708664438538330841336848165790697749223351107652278517962324542776288607639928340411694324692097464327313813319482370195313416217649261309976463274123481358459986224863313799539258672435497013985425584210879450637768327581888467727300920514535343674176635878836385677129145326705680920865132860980540922058185423235825046241396289763337365920172974577614816393558921821159655231718611964166082542404208453221508418336505048493590339506035556544385364426454385744437689006119374937977616966617077827257716477918864833657430880105802026656445490646943198234228775967551210163282838613623508033402898175142821113847004167955259167608637546581247358197537211952316145076168230164737285537536113739085811829629606977730677637769325339998618230923561248272089913961577777340325874623757815771115722855546225410755784515901046384060993203083075116571303740336426719755453611161304542321461405761746394603562518997033761823429853941667679192504586111088517764805766441053702005460552897158106313900615964375321451534061192614522171694673715119024474236366197747018369538965250511209785886967159213290975508251946328178268732771596560090519028657528076964282163663916260420075825073444329483841497657864839885365278454190523635699207365085002506592390395156428814784082164684354886628702247099237521528374243384900536136369097693224718813154299092547965125431356870255414368620939902415577115124526410679147670022618130968867219774922052495993408479233238957445171434820644551276214867566453551891658714490600065148014586456181267993921793823220111077868130918155922357440589501250354490290054101061331736883473697607229544687031581370600681859335540629306557405087365088844739093796001076205184161796784151560764059979362772587355076159033743198036825475704655647818475857726494057497332360969585040845612743515363991488128303049289795166442014010076149892730276013167663450198409640971619505971258922253721697978057061109833987173071602527981580146833163567913547113994800311295504706102659592731683424388082286100520949334600123424722240449502779098817706110843004577746017776111323752228501046886512376933783159277515632598864166963426820854345097968133230760180659128142379326443087649856472734684927806638025957292001417407522980271942459136088617950753501256483035325287374472269062891656615373978527450805190768584400236244000647049445021178909567732704361083165540978712305209645322397766987140216969992468453657711149287661031134401443191538975692837203738641893828099542295466680435291701674524137104339374624730592884015798992321170426320618275885550918401776478605885110231201306797479549132769306220777196115342626957356225781309872577601722872325891705766552180384716784476486494042024660372307829739591954004772671457798575633080312125343169882955172308235234526873307717032325543013954241447852397672116214627948835308112718777513868034876437096549961971491131239460090049579433372572134121269600622120947287438265262764420580941376639920184688857522655236360851647199194951406856010777518537226073528024272656240880285465367426192572853083432699122425886700620371654724051437518464929331105101307713998646375632732893744788327762837339365172380184894313936119244959207079434183656056727802947186061258040475877837435367857887668049483037171268243897476286694856003398854440264691701777099260811074753028776114575774661201569115238144399032186243760176705512458564254691383058789686688273032519556261855969072909562580035729755275534811290002526952238198876151081990403446506802104466343112892632481883743975770610230639150305116080777220771884894509037320695898349437378833381880950817263561811745010644678647421592994875147138520605739983252020523961793477103464704063628830617059888499114022912203733141090372921185199729125987676681794614024336259630682714522848079592401139067640044266019074933749816583520453459382843929430206850277996120911171553740060025743181347907505772598624897451596304875199933475548449190757602753924432458483310877043731173917973455052343865940413480681783496171304284203725591006134438689624638130445459515124553559886789112367691339906773129094002982130143536750520237961268602859504327003732827338778461447414590587210906212584733973275552188172852485625692308710693767199337421693905414804505153831611308477834537469336029370206185660236468448492297593219103826451757924969744524788491871945647888630451727034241602977050714495632055756048735732531358574592925856024611172011695369205773724444308924781905271698781157898151429808057380201710030772802476445401444917760127052590726430989175280764187647204337337048982594708127857636391903694843029375639233715583232261985618064434740089847263985874406938260146154401112472098938263852921516860099364633792564188400977682305114193992543265425563858725070820910887748769987730230491765890823410340777212504359224704594369452396088518786249186396154695992242208485788343925867261468473937853804231957526221849867959283153023750335809559073255512579446082550212999770700800801598459863603825471656444084492003653758088196313516774960491373465958425619073208924942599535340085308941610198980686949253247282582485327372800701679016690844941996421853447208068119201085570130583906204139267321047995478711518925845469277870355669211679488862521131257360471842881894277330771629509436172724248919957090493864675924532182373262108928719192735160395746979078786747554237139940894232969721439237558600870609589937636908528379732929693112861510406747727413457279152069286734665774382745140585641530691236100692580736689953641765396137944431728988169694251299770588733729662442052119614049459589006076095342087886199086259367533044118223869063121383648875932192739848804762047700957747385996802401252320194019073838786106609448844702999683992101351841931864528996226844857771795186244378355091404118243862133944478032659079432739452600846510369466314064910067368093241922021147639999410136632675117472112163468684471120555196102515551428232941359854125076203165837815085688304459625582016110285881868893506130695609065061604576412322501165304888846936803356971903451971209068316054715326316836032157195970237450277507866721557255066422343514619569908099016684200214081961494411765190400384051245593435351715336753821800885889280968041309721391901538529423493886671431202854306475794788445286971288966346680682210157795746012734285607835612650003854311902406538257367924974067883156723055056917693315564718647178383689831615195210019148138149998291300959604908253614011147335354152281629861869010831244077955858377447743697719372824733572526571393937239636869854804866987746536679315318623187261181698214496663970094803993059645381123233502525169199615324207114036042685974746005572944746350143100931449872224666476472980319970403073071970493590296242617503991953381708957674148184846439904299195657972459370917576323416690825736586689568712211469439820578948086155370119147548648875111932232903659386581522417550598838991010199300855702583342302045930253296567138142179067229850827508231362028165689421774754129953278892677125858205344549817387855527401841088319463045306388744726397090079163161309619169635725406930689734364127576576963788299161857810901181928350890930465193278688889073216918829395871160430885756392470190470974719965935617549255289241948658006010400950408682521537830793197303581986941918649906668029200398119204915136345477093829580228688587685768895451472333475685874538126616455368573910764900593513449384284784790558060381681587062947668269224705300242073238788091979303827503414176972731993380447978142422053079183521473791309019011359103336446945885544027661863502503211323341198706144021450210160332034738572191522001539404391579928604722983390253079892680664294431476399735654153213423080885872563339853575635899257021371075569802285688076178483869067496423931332293699637791650813857298567164067982312858363547894917389580758320471991588907152956564659644053099142801739932716345961320959337314307949783041454377913926174803431880545326193519182166961991548293750532272778279529269176277304489320355818287471392542007838551832197327116177198205352401763024585056422800678889510762701571857164857070270535877701933544096934609210644424909212729340709615771771834035231725963521070435344717180600083869607357534819645070910132193894949816362374876602125319369353251739150905575752619084561548233788927197665604791539508336324127803919351462363839368766803788245824647310057123436679276291373583925010790789277406307204814392267770923624235969941209984791808790599427392898511422557868074848880691766973243424082049227559197267446174473740652712432127394766207097654730938015705715763919141378795135849809916501207980908683926917243140046841741558993297065553526983370633358348300234588464270992004202112905864019889928767762398894569041368642988628646807468736077450000207870562219319065043654592713662057879953243945683840131170039674856037040629290817855721790296698857461206088080544839853406247418953942586282930359826711528868702473444713667410594254206705222097102401671435212665853750291667791891634402558860118338762841016010605682826311294548731325028218018727125823602045833938611765231530197901588156183894471782914842025372762005801396211940385563934039721659573939389995290603056461465342229236476038359410376166732998401598671024450850078543145399723281256675522032557885559343807632680491464593752060201486109368392403413769248275748803176772173692402377223007090888226339358054778255643990372593129370983596038511051845616412942998478555224678677879220763808794576602281247790014328434646417346327935311433967087634911746854754410670282067357479814096874008900296793266137385865438546675462920747980522024297914822748294759012921364730414133442347806682550234123743029089123527550773137232076026078956978039404798159454724080385261553486057049946056486044533251102474584427081615797800079573933887996239874991474580538933294893737033873925660699495206008675460192351504566520364666225166647981616241369534414865549242831893452463708099813158467440404730260844947675929098139547297719681804633117868386499081591112900502187158475607274474775465014592307710388880046997030386099184695425574289492066279935866447101960733561382466535386944485220268907632505237222949070098461536978201751423168026098965037439783301418906647812300243477433836515415437428123175890781080054915322372279315609769764786583333881610150296019096544525307529704454931714391452853368151337265056960814827771114767229444727453353105375155718149402049831837920440027964660624380507225061030812552541981871529291832791339309715421505193958554091358382018035168708936058727868693706185396689467168069263388240153411773549435762836125457386949142794339384895791506763884515841057633179619166687780870308070694314618010035129914026797850467190787727819875241260418523305830599896477649864134714116086604483796303953139185469172372561827649499591541803516178757678965358663466882837304173591673523025636664658056273749085043304246649131790481047129365892932713917913906366384684959716913717046559095269949817805341573469537727784551690253047129252857185112829057552416202081495244510886585519763203376329650208660535350265978825068877837368660887238362040798262118876005117836486921106941916066905669415643700467265989087265863375784671560838186276729379512657912553981176554280684870850508832343002463516202926125608040526197526945947744327099211324920130041047818925338740855528044198415111041433032524952579916732332173226523405539187990362394298143596931372609905302789196871749796146354951563797431601257128139465244851683753549215514328762497622270498110447298607919758631784747044641118565680586191373987076833960007747733418469860696148013653601545640796227070998129464526102833938881898415686415350930957889182042094569798276501633497770516782164358851337232858248026953892357386802293631946361486204358562753202087553138477779084344325242087522482911743641982477193090396364081119677249540174533142988478921610840841513013276507805775440238695013979067424773507698624304314125190094016986016344051185913045211275829288659673244459146960283819694257859085835877996483524681867902266390834293861038900425004607530754581979363588245974710405909471367022853021824362834156133249671923126959123006817418080107454137120749668143427013189285328938209199402701478162687264845715153432571792300217574803064478126894746725352620568101574332290278266737725429938371554923809355366909282627059187475768321261228229130988474484343551193182037935258540870189374215874594306371443427916883058856065610670662851155161131071875359109165016603625901031405898272649049147755327360633465173067000305457567797556622219107803039812209596615163042032908373877698372924720098794106353283963160536311829127505363497750259771333160477241018575525926461307964185433230870106932582242706784000272858817914527125827311533582970849768535612135857102605017672255074026942417032843047634750590417300000368187112823114396845599947762503802449810776164124563502629520187634078715296526025131980353032880170010781164301499384842677178200569848946416870343816834412109018741122013472545738734695312930133249091947384235687969869409712443752991137236115257804154350203880751567971405282305632612409747204507802943970161197181039581141732255938646397608882483158845608579925621591358471577771759315492108571377465570997921771483825020126579086714712585613554588432273730099242414452260262001371795807634736042965089953912789145827065549012111430438539372664091228036567451743758376593417865615865726892273458205560161099552202162735354263743942638771551718944182998910259647459982713067516453129774696779345891069685008992126610569637851355690684331563349331057912985179471838602701242061775299284862936910392643312116295494975210945860358449221398890852198952143458211683810519260039652617571116905521062743067744853612197622982060501878624475559420808945462663957772301500296397287585070883702081731323372838546314117692399332744882537005347742198113320039574464273636696858095031466410511183459351548495365986133589531848203633841662907942377093398757362358724631452552687369872595190700760987959871550695616702009875047845979434090927766798332555896577899942737220256829868975402488645196721178562664535874623630609318788083799147786988214693134826346434359904178549852253152013773924979099946358575686335854659149481020173057034373251162531854480363993548288288211385195278393504729646565067875960856156238406992247415252830716575588385384869704625022019196876514213619113121164530034965406451213929640239980969715697194661176650680898278185981588789559070633232364716247740582196796803015496074115915221796337092039959688468541020841011364108557584822666575058993948787543925137388647006985625504595446395249522390781643696659083124005842662831750484575551387938027793399491444022819189244551038739933663824793829756318247672500858358029499961779433380947584578137658015020028072203037556601402892434347745803785855379775145439311024156080956012373449172066093909878904678111459540029931902257935450166505747665069339753229070225082237187228132922436564320447019903870981734517384477677070467527751598358859810418788354625624734994750202226990544722052386232759931808869495792359694071743945323362728993825372065761183573432585360449707209868221107713318304034182728499408192476119587057592030246532232546013994649201643250033777471472468381118562956899584818902526368798255477600071898070147025233466499378621869041457725785514210928030804525440850944312402031965001024112017491350204037692801437399471585714960103648238376049109587695273818896953850547745600937818774196145387252223741578692686571756601831426750885373014164412301279154728408282794040321911475836801222874584991836763441077150757971456174197187777799733785364206486165598548035428644089992528730929398512113881763879834050239481740259678225221436039842735974298784425532265557371529906952757165617345680619074010796739606527378694240690709159138873177542947721584419706622804024836993049225971759217999568995173740544777661122516308506178722223844021332961663181807065715206909198393280440898478886363739880095149862680692823654981982233294729179953402762641087848309475767679385981770040860705326872881968672361470688857323197455037483475665508362872828916492313629922322689706577047700914207403715363352131259180723810024587552262298960761761271072122643572320842543236768331209349799856638686452288803675804172191047485794971026980395441274912293676870795771647113290695558855660394471076824527311424654399794361393621174646265951679410295893043182760601770374346694302469009778858213145231725464223169895760054649543837279460128345269258708333111897670548472575541759557367960839453030240311874130630977930901924903722109025339802784109118566347801249581700383979830134212321881919156542650914251065070121648478035007383061721717851555818285248712252328853964736606537936767258579915494242754906893670913397765269517396988420635676184941390401942416124283364984832782849689044593220665770757687930007201586368621469553342678607601399801598444351770944015362422292932603917422777028008889018832776192863595403826462764802107708677307224214440753698206368650779810175846850851813348124248807128968391258183108623369132505860608451444583701339840828276988931588655254937065700509886423318320642085370389093445858924147913675599072111928256621422196595005191856752565819569372683629917392615295609105597886674748848764665909089410367253640191120443109325871004819584847200060075085387831412087090121836353108980866934948114515902458750691687560255182919617599909133690679072988171665582318237213112800215978669185167451638711900478791584776063602855685382510111053493728239376005732526550656575634267092174899167876734486238254397059275742226698122215721504882650393940203504102864410953972454732159733769749126981043082383475082305915586358418678233178230270098258504187905742253134005539515958656426319036476027754778839022661143873974103123890559052380745062763774725067355246033568093185606666384389217057075331868490452007306045175554172666383880706621095553130029222781729735295877504060220988192193618640523833955912016088770249525712914479503539897783543228276489745660572145710537123617052177686762774195277422676077196126351419117159376255859699854002300771464957913396659925097864689455966904986883495065307397716057399937784970599781619283771022253494818066759011688445267682916135098884406502047250000059351109740939966634882438766240829200761136290056539018226214506328721228856207554366619900911420222929897696835875082549678163832511478065893263887871907895698519633944127257912912373285578155849583918900697003551845707663707942961962454331320503133002174118165786872878052455993082388250907838556135792091141439642444341870981474878980863815690972610753613929821183311157296523391477429373200280509182595237061860263655144875031345816973351294630281582464945257688908492011198272645747757897507704053719508094248874710387085420535731837403061714245260296507197324634245760801472798002960481469470427073180259494170334562020092726780992950124729939675913938666064287872260414736049854319971163354346573110262559279954238236928368983411616494449570189847702645004165922980974393779245378198467985369163620691561055859180835077058522852245326835797193097223913876867196431075406980796898043918589114859695396682404191451364765107713537250293117370133216264739447933963133646545738663984556063099358928846844026207417626168043950393664195150684930058175143758040353867048653673739595150661669891363829496631578603494941392208521580303460191510484526523672645931660317524753812827033896332669451075574047848618523465334002471046020491931148683948845992830097520628267377474981125866792895932504504739064728798296501669309903459688011319634103788615958474966113239553797989612930693253719300361004543534393196715329772219246997144956087730880674740028148964319634742433273817468698906455573680808130508821154142824030991298378023198611583764871241084911373205279443576259816627463044920767415214323236119652805586040959762215177729147250753634248754367571993376651809915155367500945489288906957118349683475216963832987722633498828079041752804291236860182663779328689960911433665170280377420189764622709857022577490781653154709594215046364784733096994208932101217998969803074813935429372282697538958317248118568080178063549902656897461730881741612740680834185674600517867938889513187408731231591390230916022594968204131862411653525711553372691282551396765592211906016471125990635211876099013017135729650203292788932628496777587502292258244356598412600159818257648010101083221207433151628430275244047036903252025691484633434824058703637708235966181263989448294079750976892619288501552855008258882413112357217109412842316709093715029251999846884824366428609844005949789058823767394149147811903825366547278233648476606309145076973973708953017102060255293731110914029960769552922011774473868122801519428118578318153897781545037770969170451505355905091715656953022313012089832878582408276456102218818997665717377597087355226322598459768085190332323337081002835719805804154878541867541470456260624080750650944316515626266582132531968419307122329523686675387739151380237422740152689627109419774880536517535973088303518949925586474566830617691577514379129435153869083340724705573561184100240620234218266487677952160476708396973148526812743915772636781150052480012707495929228631199129189242247056443070091118365275876280647581694498537458334780665804262794670928679671282414586064698937326063560136333284847085719036473442704520963130595521019452099753699439155261932933607138103619634539646738888979890269847118318637056086102173144261810509233823570420571753319252045642449951179758240130996021884207823939298260370664378459490103565864986322148675747667566060023719495991970104810929955419821097264364494354300646909456047334384496321196194643271372560305905836431935598044885196575205951533058541403285587337246814912310002835038372019962706209469815467952581404032908866625126411623408978596754700962248575936181990666998771310786876273774441725321497277974251031624182706836777550588340830112008798658227896520226192789098926834641855625416687063729502011214310025386829199370112576409124595358984391142484425004409859467926617912330259113096690062432480258012601514979604234776480910824304217417813903669647475484975700401025132594106658958216164967532036742539833236495789426727485318536003869411003354449464765244883670239241246020712620882994689504782965759961070556776412717489239941280528895643698126119643056769725296237738623193473706973415930215700073667089308059944618220996358171688471505823311383349459396571010793988136324421410230802820254601271638970429144920259193305099485875712294212482450576445871992001972962030837599553147143736864410604311418139070332248386328410180692416421353281171805484402443749967790492070376575221249794430024538122474088720102652765012817685375446309355141211065535498741656823327069381509203071509391423885636337619350317698634753382703768003195213756286269545006284225939206356420119196625519998953547133270347793912672308280295953993902059808558359650762049467342541871776572328864062708383374949387435109153348860010113912368136442776102132235178685964336826490434272143971698223339987850918540453352033620977963578441537084930967721874726596420331704295648121379741896545776955460535834384162590707512676904954535324267454369645919605316506516252401139923098268491007552580997469980335382927518986812669856871326339846958355067611843884378488071401306029433230518322599499915695458662524857273991193234492063055046632969536458198793355956525500221140856091138239043813357264608352841442729023360040448347731916034516413803108659210040724853767868327686798839584260004563714408568405511973272689067415839551377097763377005061414735936849705462316003392333546944457523394153653028097238331756596017057838761849797153805291921361234724468693204952159578562213583896747839113117893350794071665681302413970117376505749450801185482727193805807385865568210737866906507374530958693126336790502271176682835012967788539677437328081947776130729604032772451630193152416592692123339462717980818456509293394401361402449584241605564729436022168873211276780674525330860694056892495250723319155128660054980616524059019466512860210300040075024820185842971453523537264658127733314014001392315163049127161979275577683713701379076487231675299894062040278923804888998837521832695995385781062972614381025601564404526363956338488284351253628858171548115620763082727491217993008104889049559596833184398599641552023122535621502962694386972214995070497819698356621220190737730734516053499250183429367958904669720492366362800554449036205565128285288586458423699079300456242403799450712540773051669225322186107138506199062493155759703190007531626177278847139093229725145967358152187119957825610935885210649877127309464441406706516134466638310091106243015361054693366444871963137001081501673592957123363261369461747870071713733664002660607773559032856765307693080921356199661954472365729191339664586710126948035691438246408056573967939831158369907163257000115943552415485760824352505564516496811169825595210863402937834763979930145192265308135460849718936343364184723064141442178597336452558187282346191739426323585820329616702153997147758833624432046452632971898999354929458748759760366758723919275366499189204984714221053227614696109497136886682776901288525361115578089868307699970825415624157459685494497810661853124406691805428501545240255585021281330052210710675082676878485100611768146135163969486001451686552459757302702248380049880165942927494155082340023827372290597770512718808304268753863635022189756186279676985953381926503184208566396450144442732426472911715714105678910747612724257042890307605203390443670337283272490046201059444197562246995143854479515869993061539866891942276385163792544457650665559271812856123946145213632737479016179779720013719539200666416420016830806918926606094399195211589077712837509080105917395457616962173433218403160196830953222883557003173715644868488052753422553104398861898009824387266491413447572038719010094548086495775813809795064323123523165211552785282841889797878663257563674419571963385617859874181327250716672317698628864161778581362186757613779974901975519768931153446743086592284249419109247654593443560611750658274312118627877115711516287046504314786332852923640672585879861600268677353665688106743324667010794687436101430801015693221871298914136951827551426728622194140436777454814148103645629462438847689813699461744879383234297773617511668897774725044490060216077556069848465271831462071146084976386144246979173261128995399898087056919875661563854907111391926917605588842401149550368640557989393802187037859607958324390347220340881574352973212048025949940068680867350936451456526022822092314990450481211901291850761869375905724312611942743201815304435720515873304545104790277481318593994584450364490841900490463705816755618612725692274080125105634874489559361124420505325386574048116482458989292975457119375152250881407005694733262847975811821562499929999387044281688457858630493866106408383116921630800234060844039479451715045292186864424580767302812031969457228277953513434914099845070143977060346305194988185089442031853369694186834105984972263729600652682010895169812050236135946234291842728911958415335987331279363295838861561808278252271990717948535393811410115195485707029882687268619274589884665762051737539587672607949545460318999040372866196212719401322097478114820697934830339817267549952307591337137997839060645078268953452598752363867545677108382877976798127897753176134502585685971558892137241109550533113156761753430658133740497108580336941534825515469104052700629492840812641284471299921403793925465635114628278202515823845084741267866469484450936672809457987544498024810183800739372876829743402960235025179552497169723904934763418245618222101384617884364584665472874190678689074738584738228329770827511237971581033214230073949456509912936611027124032081615491274732140557721001817034814265272258085298949752532038415165849206744772466929878498316170441434663628280077806303125099969438232923852416433263261964382874732135466833168569163639329557302575690796552103636613139795552452192217748924402896279253942405104328211363781786143487859086510475935721361191883573838558019533056736164783267817336351524652100722477323279088283899340773426268179905178185894295520295336668102012400843316095425729540624152809245503810895114734477072703986626156630510399886435729232045633887975670175159821367254760761012342432400168342135263675896709492536332572664832938450736548656280561987594157715962153743667803570510742829406982306979897592754691321904345215842330958304367945556474721477866309261779809422075414673863145297342100505250305827679820217862335324638555951105108696760667931363885831228456106276362948196247019128446623869497874962749974537845982064290640213670880993255949464098116382409572409097389372759177108918537105069662292097164814464600916259481558107184334810393922708672002558526318531904880219890079873171366865640888826151094002985041149393282948605322582335829321851429935440680320227227104294503876171167549965795778331763030539370740742264773346534185505834917089353838470391889633438203158470750893250859454670619391900162441213983868366463210832273125569043628408055711575673553792481341704592526808934442980324414672260707290501281041766347068188477715644994075862361407628388516039277413308263362177231148010443977746667777393497391201334815267011781330728776368198465973186536584507859374638985917054283852016492573960223968974407803998384073722985748575768456425282639082398853916957494149247744994228770766027780639808202789866291561965414837489164529738464499983994512608982489113969727702067053328053706000087284254859921703188301725002505973005476054904069122677992270674271942833181023613463676042591878865237774183278184610895802426460315062061836626006355911810568180930500254685110936254548403950736999651773994787809678691221942708049827688913853461541536964859894426615546197181731121640526624873707833401993962502227102973497538892591791691890703592122652354840229391814745556333318497083946253409515350614288544562614221998517317938329394567034222242710786005097125234358750534363838174512868124668323734821222418757217424120603877292880405210536999139251484848804346114770035524562715055837335791859245576882630488231896851714499440584590276450326602952282196026303137172663613338937137192143923455025255599356223944312549793171596407350110177802769425025577858601336150813832039637796820696432875005034041276555818878818568405916141310344275210361705276662490691066634616347590389656334051848614126445645206798229879745720696344020961471692881933366695006330884473135223606184045239975316669008352709957171576472490885097476410324116863892553781178709976479960102518069402139078316642282479955569051688754523753347508189850915838490256332433756773824499327178538610845751615560438465277507239344721062879949160214477953426221445249655661890343758625678894984970000309257945662428700605456639498588172005946357751155795948580303179869550494851716272385719448210490005631162189335216260931913786881822111410843518559738125896147394628105892060906730977784097755572521228667682750905815728346470594589491651453079544692971210634394896957707416130096823212616168346229966652239998802759105127573310080002590593164717732991279848523712820304780533205609389988940376833627472835670792543802206788396596157999404922200793359815107487150831291205454484523498507230789211104586227258178628802452693732235214281100327120153573777232506727531660406423734219427301024411465141545335920387283283903651240172276453372874875251362288982368682670152900391161538921054157526555059659865552935373381964668063213333997579136824888633022491010736385493285496633418478215371488435389896251714972266119208537835758965176420332563527634947161580422741697509879051747611621455630106011136417441500191238707372606073925870289677542902098819248845021351823757869857798734513549239758018944477960575869413671074309914613800486105048992864985491681293926434799905802685258436062668502850854429875063566017236033885076269717547990569447104009407188352362107080418942790971619530582277728006593893612429329367036643997654985696072117540422240800896648370296096856876022700542627631833631593186807783986479315351219807463554259036175726138397155651655604996320023667392789414718372821915262659755126483522140348824785994574951536864485775017698277025114875263587493872824717230308735032082042156977168390771861468237071270643509124762836801895333330011347762539238138675565140348951399134943765461320269911961579073397450044124639436454254898510706330323091713494931415691002346021224094099678163435164439395562357522924581358258593691510893190003338491514362851080692240904824115759089129934940741526433617352818295212535749448186665255826794362592432462354343329463486599016098514763290621556229140011318407178620767617752539569265998896129736164123847382683647588363556622117007860124865189051180036494900968682847715971870149224379655626491858886697770691958039893278090205057566442233056346622314451742027208465328027404496459386228960145444168969152633226328003555629970848412756975586174667062204903598794727455810532877145390676099472303664691572484178475154916386170697693391900519076717065404635667178507741601851104362818232215486416778674069500598249268322607772334115060245053526338035451637058291333078516678794273838414899259206902960112165636303904153808149319439184181146610431772991849917414102280783796515451611644089957862016683518880335731889796862958810444428462421095580752372006117174240017917776901631209319440486125675276168520287002771079399356876990885712895600961092995533526412122764186570842614085588028635917544379387506974530864823748038780770319699962465555195896859450850900283379910024688607635378966583623895531244787018598098061835624833218763784179454237341395298848486006060583932504676173331886825577336893414243642692581368708691798680699974819451893736737602852459813056384041842699266893414571229566867438206024677216747819307391461862428239187642814742300387850193430664570358070538958618603078739292239134810523084205663365920159753006262224621216360026510246013520702032654123261514518291617803739664912604432748581742973912524662770613541832646837502807849914569852983072487887388473636335858192102429124352098330410666962153176382901551299659949757873265127352844585603345142726557454455729103116161108742891157671820151436152242110574301596131773007787430478854813632337990213420847776265544492622662177072702326830819202718597857523042563116894338744909316434493646946894960809227917189967933615495710817364357397147929093925867941672031297928001477178885189635446745527313917046033404958508624892184927558781854304305902499922710977763316644107939222256197268373524413684852453352728528212329612746183520798285835640453799308937704142628677521839710863844014832105295604496518851869845805137011125960533657392878518382300352736110153337858849111983309068913021506933609208211020671383260212052495403019582251208145149239411342004969698762477005344376451894979191146106245558821181352998374525809064043023583046391113849955944993001092063832229127536833033287412150602138551362527709854065147187672484583553133985238476895608904096507124178826534852595501719299535077213314645922932724820830809510468535665429144753936413898306544880303230774970588685885685903266897438677628032883292426506250300869358175301427459239179809323372006578293536344243410780289027240436479522470382939475507521810984595406666428954403675366608771025845532639737137247373042930196746854775600398079612188838243756150250292947945181257407602134352487344868895088744677184792212536461109434692290241836052725300216148291271076338153314875434612954182730924863415436790146007006806902670300782430366192858566013675740829682212799345889178936527444890730424529100781952019983855832634626362605231709025732818427311267609749634219526137806583444616241868025575467311881468151813059008985866337189397013920671656552545137632759285656471696622854390972845144267898718849780309152249421551817372513054661068721534224868043224635388050186017881019857498119905163940576176355167355292275138928609391174016179282647335914764784210363036004015844648096430830515335646786832847409171681698941484523549225169557162727000106803658392292037830964855832225445895854700029645342107870851848728554681624353251778827621167125894809422537531767138054623236755109471221007567662664520509539744072047816466064442287547734536703966661459952164035137786781559311836580526339251246193177824186278524434469384470511858616787440353492392279815354580607257001641123881397618562562581225740229784095065691974586397646944113710724266217119567017167745245706577959623075019888667173496786024030838782514867530948099448295910311529002796382881111347446769630243309721828792146057456531082771348306485670718292735473160104204975524360008352067361114922504351285952645625294737532763087110154825737175521727237130691205407485248415558248768756305092874586424418260153792385114686894528324050716071186411973753895762056482842267613729510127345542692569079804850220619291822814543163622671180176365698398696496234616394153747978954291763765192069631030703205433650720129823845966475422619510064428630094977549007411549170913387394308716726030020163021185348270573853871139644250975927663304818602925240365669490136120048872563574196577589555998973091922054724132131836064058930222137545106751141242137260787374155194683224241304139624460063909853570718291428095966748398074013240752008626290458540824480565024838550778008666015849907227638514801159324044041892570997003235271783482231303874222323691625665171876455289793225840962523009978315797941714950212193549148123352128269787436534874186570487725404045053041140661736547526415750237193995410616234519844869307268430275172733501964836002522061782977340485965583464638348345001870027102566197601123871543430807021753682827971751703577721102153354871329893500416835873349499737718338781999665600977088262362355758978868944671499562736293004017990692246997793405474866575160924488125867105269954656645949697303022360538607081549357958525950160308173072962936322209687414565161334321649506583247680416235760709467225368604541777331136212974245008780018938634972932963375039704613729561248045079491058804227612978408552515519346611592177593701981913151163684432239100460311148630084420211441984142624876626364315567486506383652987709535855341252073789936792761051075561887349977971422342061370224259271529720752614721667431716982655737084260886639391752961342267701113610827415253073002713697586794730757575562374963600341835841793817039119103305175657707794481533701345241627760235078647967248021117947902300774925729147822590613609854713220696948799045061474186167950993183926205381751701072078212751154817751243717187137447498316489828628805528549566332307134244210207965010124577741197362988022845005318227975724138647172157793073501766129881030304601856066225394469405481815883090867807588777521192525716762339317294533436005292633117898550418441587024793696999575425771552912644997933623089722949876184554536687991118714920283912219359589499894947194136617809050042198758918034312174949936450094320440982262730928204757663795045139712157407611257519795612695331008351407425910352527605466197685365190667953012175752358485063360013312860335372199773090037926371342194350026100667271385088410244123722619313278909300074838059624611268719917969171915641528116453142833738905799484020521412784258478426149819953153605813586455455320099989605608145531113966384882408215370728157793554790919729317063968935085077664619126894952944073860392537749995790573276444911846357485046571884327260366487193304425247411199747006274822314210614946397737515012928865240967531635308357836978174100419057613886905732941300786292692111855578159919657976646063963864527164963291538689120421452663388968067989684619336545047047564596910666825941849547792797699189940419341043040342946375295567293494503116665003556003730080884517253141287006868126337704557719755265727567779976027466049886882524946092713320681324469383925843758041612408928138757105358364562070663867598107824230633171576376207286332661939468796602714813178259916558479677387495206039628580870900493370171724852138475045128380206829953832629988185342381820847653574173775181358150345376491183991855430623414757973275757524340433581721776259492352383438336592991076888752975794093317490838404305450575535983880623253237809033018732728420596547904908702076124964479273256906897699588939679284077757653328242051731129680671149065305042391185756760260654160565419699729472810277774401683575197354873311075285901955285479498280642976748579541708473195033026186600443162475990920604143932493022752929537787291621442231704096019231576448286901087285936464738269003289092615317988036557803007749093464188997671439761975540645935782193611361105119913577854550058997964774687429688707721685354400572635466801935482706705636320228936857261512940339245303998102028921648922661316643601355975592430954445066295926089065524552525644906797920240510772872256841132459983937805828449230571638219134299808023619567068826018727625396098572006992604811094802511405492927989564208513860616523467853766382308559037531581848101828049454078420801131915570060107006736296762733987547087736751123228403345663208761668451604299248463562387260222960541202272455088008223548391006829953337757222214383741129627243253769278269398673422552657743509375079136135393369586515112593309807202217592118860543495189990703142165948424328718982938461879476751302115414735313290034444292655601214351139621094631040712349859924081244200142189136554995625040537145057619935588461617952469865805903839370968178174573317539523853766681410144771539491828455160168927941209659381025511342773542407898622141992478929959102346025717170519057773274979345877591840159982043917552686018271290913191448099074150237949894439326760683890346460149993837630503340319861389596180099386649353607124607607555860376228570465326448587404644075739251235827595003136364811981798673326254273385411113646723421372104477128591267143432946432933085435772323912513486110099289523114722111456080883257057070288202712513166785972588126666103701579813167184980213007223003849842268890402588730519121919526245753417304985871100039081156742681074567347907961994330605943626795721347048108051612094612024824724879977463150244598051526631035787662054163981566758881118240914653976171040439944738468911164355621086200597844427362232399346806309743678924440756250239449116321281152424443717232504494884703946508655945474813701232577205896087989368294654653298453542204608207084359219162873542284806503287760488615256080054926474124735368431938099176908661345972581902712748844692150015229989332051971578444297127409331232932075160081156697238641217008323668047047839857731755894347280328078212658910519872227916609963865994784325820032012022585482255551854507886975912774887656955171449044559615992042008035802519309096929203999761194864175789394719166276622925449284010752639200582105265303692838645905054560967530738545320902439062999460756621552794733563197479460732601658397631742489035972011495393721342688462648504029018689691507571488401610315227755463375128170026729313369477740966450110673517319556157360372644423857521334435786127504618931951578483508237659624167909417317841258493693466551847731270734482941498684010896594673634451294069441740388999872314504385068167379590672878643585796294805505130328754653720888156852455306109765960155908084676082170353751251019453888840169369299218349966732450488868682626212170229345807267397642982699146208323950234762869100511616568958475681441633653775228725921526247946686466001374305568754501900800552944984286309699486807062723008601975274007884906105198226116516238221187620619091501093091468408452239433037439914700483837493024816364152744430029909775689237158091187969787295181063652227747564130215959095199799908605014658959149945778639454601120151165467075832562214987884730278119306367811082476129180454563773762269893826324623882499614199608682854666550283680618746552657854460342152592831314107677387905038657765554001178321629880963634805613428978870953338965692917590164340682534968922667527007318424851491196966521491378103026952664006417880642018449234410821191171968659384885229948418135382125606494788456065619668635284462827089661679065588532680455389459280646898110714217753136058487874418654815618769856908722509206717770965633883427804963192582093536664915694608507033492308231718495077306994352662551765116070252304801325979512783312711433817405216346341119798119382618946584238403023198451286885246352005374047874046786217982208570950573055655001592966614952707972457808333295528457094368928226524159418357302616595464518711925199542221496944611179277414528290668297936664312122684938761637407562813028255985651954197621789743558640517069550248577399256297813543835545881545950161897758337543380911197384740429423037140593235116732521537557616687423029359334744831348783993989671968251974732682562743189870355964178393502458245385416980248238075152222288983252385423119323633603034367077834529543751067134811983657309092662870453296275228759990264090573080312127698562860506682896423121021996230799489854923223586499168006124408849971534255285921381563352804437949036764783058314696159501836625689028689112424225402898150115247025544270591346473949501187916693511410938092607024497512583368008573059588462928626652642072021825431167397708712842387198857355988813219648151192771393716223652647366390196701077774843819632891320811517059064779518328675428362202486125829675303266297861898404529746482747551355178863275620290666403804550392630574799941818872596526560759397735838341663364923834921451992147573139370750519981752219874333361249676018787575527680553377651948003295075164365690838055359971799510280838361781898349866777991529945101869279897819576134081487058403861791564224424441926326041173240008963912251439367678928381013779123894166139406974736523825451426123047428897757112304100036743022415994310388554283094067385900157712940090143574659818668775062086820840797156743561526752520573501516251765448626100953509660046451596661892622820097389186784640577258412153543047139327436003358767610264745989773445613957264377742698994169761808332891856450585089573105714507554199001209704877453005009668317250023270150127605113212286800776325867132834307300936416954751735971874643584276675912703213297868266288726115940718207083633668421139442739469651835310038816174399734992624204936582544092122271168290865442592470377794074051137178385385021553476879736569956854138237549258751999872687866635797368697137050148361580380991146334860969891723084539630959627460224179357505274325900169526915584595831419157124493697108879143031327410799054182931848628619721346677835035560251616433995536498339765945096820628326372929362843799443502086995895964284453926195015799503829418085087225706115162649934941870738143292124131272931470750496630769560585139513091735406354123734141940996181831490849545123374649562701529548954175790005277948239541052328009053433064885898234370084265285259394833618829926343744534125444763304263438931688576756621094625465072881372293709518320715172947139065862048661239266132619171414696301154482628561234114983776415330565901965751680812238231483772137479924759944428560969270622144220452568967752519164989081950859319826809594393972750540265329561046517108402694339371813164012706846196959651053073988873754462865292297596261949681110964578724948184647887918941596608575690224137246980989940529186875362653964535307777612952471193950916375733638238341885207180594644011678574787490369325455192945906268371635346979486784667273807284731272595991168364916709431195777076979079295662067060525374291357970222239834275953715757247341076009744482895071705913411655081537088973685445062344089701002346429872793360374130536799210123403616180357637850856634342423238038390550329231150207842701389286350937600490705888893318907978974798645489532423028717548763212980003746121752704284591354505624475222073406935477058975298485862288567915801724769990832669246660208763613871256596134201829375602168795590191724425144376433438481448896827217807563325541604673635337012299545617337445890506448448956669342799195655371953299306764980988430252328765208974345017571368448812126743098482559603937854572439586965049653370482022990825088152164874693675837798738632554220026107521061907118800746909771380624837261280636836112522090427061275860296050487874077249070434354923359867881597582099589909555216691984890389809762545992471397675439755460072932817191859133795328671600337063751107068668339241773030516996124581787309130845830966968857042009272704383270306906048325347109858770814625321660703265866820802973342849913715029026228224145267831794210827743952188429155197842621372350529880667050485830668414541492332494951957588860713535197248783119951618142437862581059855948792872888231045296131768139280958819621665238928425198737492127886721798406068414523783264958700720631403502865364517468132862190537137476642061506681567551796618930911534882963691646617915107066094311742751737584720630248861088193340525250144045613702820920638530652541204929457833974226246798975312106992378747114565087980686672291778867655184878029455496904968616554821741659477483598501735256895740623825412473696265753514044614460296391091377807392131575261583719463571694948181638371154902747279695739879994611447040220593861528150683459401818739065072638496110869385814495112996033748826324069266966089249245823751747820947168624154175291712020837127789307536405329845271093223432945973204257534337493896568689537211845624090003235749225670190515655242101546637878931510989606595651229156778658569278906685291839229324272033309796279662423426874618853940080654925406082754771448786851564642424058944556365850135965629371057693651146338506287385523571728493039752116419696076060158049796362995516319735292093510643169653591806012370273661114669761402316748644328098549106842034068947423517699726365736638528859105683350125471613793641388763255698941378610060175442221044573060890414254235386388534134062006890838482942704343386543191900955112197429207844570710561829656477612991883819201541700359260204857671576078067156758393890028517413656858216206398741995349853301754594576430124852786030718033519645862174930484613587249345387670947539909298997539733150587383005951583355056971989806608917213870180999083939969285736906942095147251797701850285051358733998811029256937047033629218139389591072844860673169927638850324480081445135347580229821550974508969154210388493872287381945849671721152842597421791248690981289479570636446915276125174115619454121375066878711955218992398502306714763943550414414927954005078473519780041019299761355806956285347582945417250324289102922222392878476652345626238305467839385874925603559199478579292530330005951707182803065961950057393550352309564240501200423831815274315801885005045749988123535543448217229240750820419709592904902396387197001709666095636044879230729388483054339077305623398309115361675007405079874226403098190389738954989142593744466168347176286656205680185281370486454419441696837051512132822423763928448872656264934623830812960301565689050356025925273531930740579573405828684565153213314608101653001158992500307485918295060597327772982508193771027229507922506389903841631687365520460419375583169650216890106651944165023261575476417311990160096176779566449720382251025564353407131328710935198878605451679531686412526654022741212704151897397510227436225715683078298436784105424217103588647643674323294349082053266456208581746376432886861766702112231230498626335096000074423568144814030122380464428241697085591729879273106083598836669150949249319612750928861595795615252009906853855993722100043168601581141083591257423203353137719900197159083585720352013700445482124258648367984043944034323342800467409683748018237325840438732660486988828811489289328011212040414024037229963496649919625333350482628743929769854010809697075655069369906218838905575915945120902581678399667353637922997441557659307168855017139108699250100956164774952740541790828146191024119724492485130810828164515542743067456190037010273554548472601281275175890438288671449884350284566678765776519111647003880662925560302805093992227054856800385591708904862328739963418529639651524064553150362213830388884733687653486848504539831340179578229365088475626714767358030901557417877269174363748810425725940792285813796369343296279076487875982826766755600543383719154147686753884236145131827763906614878108399254280728482589277601805378933213006412476241610664751754527896778092446290776230619904443243531914608279758718062431460815046798729293941022907783049722976936546806851734803366591825985577566008047051884719375586269927757835638019487443520427601383163774053052511963805726114082360488606223729312948606090529288384334014931485205468146208979979008090092039659885195369522583120441401545169525918068210484754932239005365569965931960297284297098219365606574355007841040833548712148841005557385690543390958543726837817955478664700514762244052197595435401409401187055885006072456150242423476852724389152278364777056491190338744649773140629100561451375849116588795011730065265840913983848996379336936884813826922584719318755501688865531644627687744513539630153116234574646080943944577925162596741950698727228997387776572303684793270321510078767404903845779673336731566843810536227610293755640558321248789878698442693057314868459223889701018549519818187883693485843696719757801906706734430205682688496807569835713776441371097305399389733373918215130863791483695186195748176146296975103063985163795501146067277251341948302139812583138467178362580643811194392241624315510254424459007539897962722431860384831537870472249977305049869629608252644329201573508198627326060818543456114829672082677054591656264154393546883692336213644520202178221715796440276473567221520383628889707583191455542814498762942347108887034374510585943142470386741654395721179231668121541156150869493372971326472181644038448204964500692939347403725222198307258062589619161689108386487321982881212309695829217271140494744711379294458041684013905495816109551830194005035936551283613358966480445162557181548421699998874878189737433789106519453155908242461805546014947924477901330147419020966090329902989657187272365574055382835131039721585736773399589244152632047955471942520049668792436378326087717903787751440942817369275013105603011993607300011385297942262999636963946134944703817723092981588964218366768441279580106280118140453488985645197992563079409436990738104167403214734652592501808828137711969646505613121989925575176084880449262024297554462550805348739448149853294433386494430700763236912131917892927792023021905342865576589739351141030332461796707311533524189149727899310183980778529002892859104534447492102004727149508642432869809878650468247092608085620468773379498491183882544946902233133800468177836725115135458026342454467849551340432714279715323155280790894761865476319381307918002131697380147645447299549830804308604064462315449420903711547070964888026523965879966159253153623519329340576433414673416709936363699907974213585428343274757864107581830858471522198015446325350617417946149258452073794371848635078508130191552540329640034787866080028430017629664006214865801881610631791272563918112378666143476297995508681286192196840622687683041050865300199005336132498944989834655620995597144191274992731287634244177769949256796989920003769618369426058694208468499665389618690392788358473884219299676959668840681301098790729073794771734668515063578698641492948207555823194301124963188804916262185589324570908534688729799395433007128685768248252991044321121081970433826845067232633767548846511289889949973480745721084099369793291121069821560330358418899461908626721548461504214934817317016267130720289889350206983922294066772420944228598624704092936323840660247647400467425429020029951334831606257587266543255989579250987418632236238047974788238660728670564979843527231476229326778923636487981017510965355695878730493474974990668537847784594960295234664907676696255881045423608868591474497807203182694203106745696470086715249187228881777339482823757930317287128092399367931103766058378200492824526091450759532404203424668415002044421233319661040477753364638209404706510400331819891171041507564619376971575202539781937785250038384723669333911721875502418686254878913458516454701884873829822894150830303110434971847781263366744738199565330303405303958728695904794047408768901506679821861465401403403774687483229226668253653324121747398800571049475546921832649933730400397273132636447961029534429532853713586864628862931207220305448976277273903663728727438782603553775689038315084054289072157972300004455864161644901037590912247514540454114621886953523128417104412203202072984224367788277894926851789301346232284172600495412404716995744085306922638447786016933763946958212770249641484608975176114226388781066373928790097610094673156101241791042023481375986687522691602130765512107112493937907861992670791407260658928376896518765901634888581613520718700508445820679985706423235667990691253334455221977148895783314920564435715174813974157613406611066940655335936962377594899490292810307202395886043476366577416901562979915769891330187537319319806759794690225875071291079879383159124861939446965248838342434847962915410747013440433892207264405447032416383720060841357042026347858204143936262081088653385167951547552806990206575607241290722842831464107595756339896824602182271252490112840500549391529736263266530528061565378471899310694320182368286567385417124422803566028167073714253725444346337317030549567646366115528843142731158676303877102585316050387550571722556669158476529154120426461303519862422854454913405607878675923853693260070509787258934224734715614723964329100833325224501100908532798789121661897103064755418243593572386354820053238026613793919361434902657718373463436782894739437414000897569398044129994661179572608270969683721825478202257777885917330950667199489787293805691679622784682045793029126217310738621836613819981518354040842000089391847622751787266214051646351363192279386055196543430152867948850357392287989872301661873747096277368502089538835690872485284995489669850912881643773083363402768672847498287878690022295067331707277024435029783401259213918118527527020281381351199870524153853459552063170041367300196392491966853618505755633729357574477298841676855043540239207872306583560750595086374162349588960653305132450568931847100992267821873494319280267190747982878675980413073580141582751778201612011281126338955819696377644514005781918627770300985680612802236841517732046859419025270250689816394129346660609897519881745355526725161469409507735150624840568597518716951713781338499709239740871070667810788372162917070690115614776723223154568290887677490820935122608753434544952439360015822900110562371671019469140707734272369764167950458510342482877285503729386827823784789042146592678798265031285807667861936132080746816049658222986182201223036574070642117569759880100333492953003981925766830462726966043641109125204882273077168770268887479040118841597715124503558649727374783531869791654745936315246289232702842217022573504212927439214563734122610594782673725134829291909023299582922282603304845831634540985178470047699086888612786401317787152286955191750438766135281734659154777882295547092571784226342780820372627796293530303644671678129925159535240301454692894762036511878039151304602164765887728555907464100624641473279992385052635526923979669486459149830037069894565675761528184277995227233312666296650318089103859305239278126894190793317503535904740436063384866964619664389310156119230714642771743886188401286397137481838540370933465518402220188379246202398219497045174528691881725633865329950195214587769837944800284931478308476584196510335090925056232480291081065894485873617892410466616557678548962083801500818897027564807850964298485817999802757399294330819791385300688774350545242400849543673282990044675620389687045005495548874545158078910570076912680788980783970158557617722417125742164118827282335361383584554822709894447016778679425905476013695354169072719414139537225614741921695795633781983504793676254251997396260460326998389809542665463972995674344487790580685625365400807881850008833616223824978769800567551956890600072600130504951416192051026760494119551361384354889408701247353561442818950433470824270847001946227029348228711176227426319453921917019346441658671473701066450585016705490135062854825726779915820985422901279104883519046441175326077821044996376364597690286130238606437059978667232896017074257397564428161495666987561308954983350612748297208904104245372013904128710057125696856497992305527615585471355334620869435993166178529723224992669320141549829665641611037461310928176934990037266646300037928168113960744135865391213896309042302835938382266225089994971768298123757451807979953911658727248688896242977429242309410352159710226645087311931803620429836518075481684767021934276859049567978258693148154560702649006956466665586122657873772033835185837403761309715782498727336934794933451192190001866031395492913454115338539396244099670881308609654758068220960941832825525042195366695593698739964178632561055381955644453278062761228615714159481515918910962917751795017589918167352610241503782510680213794251679814189769345176634847152404063621834446178261127395393269213125139907691609249108309694458548935253133513451678871689208625142551440163534762270270918959742762085815988319421603734191792708618919509225267334755861394962684587876363065279282798774465727664304720314950316066885944232039180174056068990720849739559121548388339454164514048014418184766386154015273045768536884301669167180229340643612388067250803924319009216626555381248354812857563392497280530558841135567619112947688446441981709494775005624523511218507787825494862958919689724747543969310285444476231395996774403341296170001232040129943612958410769044001642929070783770484487405508720025105216953642067826248888655955795386673218333161633940270882830934223868223451944880239513192393372467866098484492713242589568917839210221664173992506697756960757021379590838551795229659288182541785415579138436171293477155982271189733593870775843086068960269904948145935110376879986193469819764421571735341820267496569139183878028967718418264244523308860769382670466044128077218214403185436306603623527685917132824691708090998345236416672187412867356413077571706655366627694660589567137476606221163634086341064590554736290393294932240262469383773583658726802036277596445925916193567511850605228109441754552652627413051365265226689143136993441281152400978500487624238851586578071252678456723007910889307000765568102447310874747445648603733205414584116733281504022018953114222577314350646478310278289641987237715190691874397051349954005942578404970278471956779701139154054085548799865300363918126530162655329495249124206188088941220620824893941218438098307443133608340428705418627383695784003469123736162945760316101825212559748450286090818229006772206388162625848094652414368712106469084818651949022606913317113165887477015623501257266809464530630697871022908020417641903241755663621907982105317759388375828500774917416122579358734252884732518771573746318144665409454012857728757832648390761240314462874909261030230529866569740776585399979943817736811812593631185272279637333139169014383322048080022511411028174398981166530751184438777425879425125135959623938764484280198177976169045559298503167666950178292747931139821513978840152533020694644097006054456033700719073917653860831422244607516913944810880600191962540354505503064984606417554690065335873636888409537229947014661111169835429748133106468122264506511076359691806515410628725248456062146167684442979896013076328890839101566356690256171824714539712630163517379964047905752676584979070349003109484010849644696294676225549063420707842078456103771611037135573644463212450268902000133488927140367648617686740593362713923985767781878025416831486894071224353581438587670500641936074635016795095757688923648086698393911014831730040262310899518343750384017500844331218026089759724921424856271799966109341563642978622835261392915205941716842469997387760545910008340426088088119180754812751339872429568995588429882311726903870850798452840217793023059912778270788806714204201779288972060368270472702264030782280207990399441272521740102118953316131508631655981397308325080701668701219093630244659094610799687361778038831214949105709637241981266536625364332893260132194904285575935343366251032448836598052420371933049413057077346628096372081872213837174855022858746215668555658666433371857328732841385592481223031626405842473949334531455643203094011001109117825612789425187947956969214939349677488475705971646011200628814703626010894481159688371466390702711897731441427576676951582674860603635254252247922332420530619771216979488459527152912331157675266212161838259974086620685340892832663761459401231339171734299979246648401577652929860477934218580646746252981215971714183411059571307118359434729161959567509006231382957810696992530395212315897877045012577849200853506647866810877450972549453329184281970267902973694759612559469621285205771954673418394072666247848526725682335045938795621950502569421436179957591844377443917368434261533821588447954648888035995394927741364720576690945810485231714560199723002323213256572447400657760468364667058769773812893222451191890164238819195617618919599022701547140789874841880629361270875919820682169801448195527658135772124208339542040513020604216895803507821118574787227188466159713142295569317405242352530188785411158585149151833346069587853740143010571768578252251438070335332760013506197127831418844980406091018313052092044537984101500449973817500876225585092241422066686159343474464557057318778901198992613920600933222210245228413954701668064684188179750901897104769709897041678623386860416423358290993018780538228590956735503810636334821667735229055321151302242791081993526848591256414488466331451311296377631367618285692560053069493909103372076478582668694344136126744911086704788764888629549401894372974161905950658776954043150416804132497724671377558858627099280995408229248382301437572689492044301880446465562621438366047605652350636218626118186591034774263564081907712084480002527105138487139527418325527960707025946624737990001893529660650238793207860289794615452314733039320818532965818655899409999360884820474866422485660198930887424625511628135833895899669163360322238773861107994510285921537883161642658047711313237994218707073896139687848438225356916593568798704907540376465931727855472467338579937298636036176638174602634987410692983880610620935858204795383891059465801070678093201205256611246986584702919080370402692237566135929946178284089501931768245394770759672289644755907106086129415721608697830125098769344959132107961812587269618048222769680833222658795859896594087322421644028652437024023815605221178664360377616265344249563904374437769201509230391924038803024361444451097467089764700209457645631216447308234151136340165571976004215411086163876615954991999502952827085438391596988822068603780486228146720078871427133426481449029106796855521107187619636073857040595900849407272285468039765758398898384188745546935980443691968671816593919034572482908780270395112796974122911038958268495310305518955054294392428711590094634496740813193021418563482943068850106245569099963821470583049628894915809368861769125175580120147948397566683921654894497419380766239099065302930491907266148037696674601096249842199994280309351837902333543083674817525061657180839801591065647705240819863489506361730708055472040008235472782494699754672753833613875166943566443104296765463753049176139396054740655727510867737071255165004560815701990302061219444963377451210429701936831336604906861678389502122210726876637242239728890497360764734368977735812147293932008818530179441905587161388027358668707059533748840173866442198607222127223549927950691205889224234876416543100092445583447395196899062790570002857314239305410469930395926704841130392478741996813071844546728572743066388674996568335328212500095471397106388853335498222292682148552726608115499808111378259823827570525715850961646772800922929042392330101289404738535498146895751014190588236233903320566260189611181310256980681455283741531216791685046053016094558291991370850986691452469187276420788575379767708844363082211169332869845370582141692301830913254780399342942959395784331439739188382401980739312220295421853198094933574060903708390477511274802973167805772243297144762666629234821544494356155711403877143680168332648529192676185920279418555467733221134387217204221916489978837249817002107693256434191964951976184996053172394862945568932208541296472611033675248541380017514180896251425446406274308977547813327404934432099617520982878344441072034652472439429650709300714595456656784298292081932744009999045714005883102640547936870335435464759591032139431284191193250982281481795666392077998933168370208809558255480956710121995391705776724896654457513052675679919465107159218988326917179768389245369029372045325099576037381188040864248294873900470832822909716140273578746070163714507179529348869824626276562490609840927842464305855795439848429336383810864699336333635653395711692866920772611012839479013432602681615230370562210229352719045831303083178091756087289773630970047767325792042254099944680068641556437161079168752196777414255232506615848103075637764670159661281500933835033220969273478226927137842900833240169977388112754658181804656899164672549308934699241543610199206426842342225131020659615521057404466999675291446989667044957743476230337435148563071908947856260516684627849143516386598637962599192645091486322971352236560597927077825685228073236906287276170108164469978863279335890796706361171458202789153342703512935608868651866186578348520464933380309942563890313903414018592112038245429258102206901078141980686085215690720014200369585396839871027118303628575122925897480111408296415922598133398581416571945541089876781486796962661942420885472811795647450497712147848215470838695373669084626076767521711628842248599286177598952230218329484585456276644679020199935806429432130276562824567783635749715967579833325834227276658716016379407384357288467213200515233772544720881312290635130168795358123700487738871606412503488486246200039137149675653824877711637072950644148368943134981641450458478008803354939311575325481074074384918207545767679988480714327800808097935862530039597314395609587858549418728708189358619855012091625581654487925538335869994027103541530690720393560913715062035898386726487310135970918805956550593552851544825051473928073771599277370731416060779873810268687118746924608802576531277539055083359504421938976486857565442418125644921312896046755080802893791817572146822399386585049638813336228323914871261078335020709383535055159144702773841688396272090038599487241965058261298443458570599887913203586416253090147892141169928162373168249764173088572327588702048741985247158838797091456497778706046523654259585648070998846657461882428113294947825995410777667786679628578153697356196498204658833337710392266269571428653471874591624216232214309793103950829020371501759461939177103344838851797837669773115826244552506049450219139459867077276855491152228788731100569128897227638520309149774239745661382010915921339052158539317344824817739135211994628856946890385827958928706964793075416430558286415167577172816474885995728675300642422713589794643526326111964967876331765188250730942540468966512545879718885507504318075066668789626553296479972256599512204120415335829072047394176237962428956737000581337122578118011687334442833714798247292933767122305052439038283337871098377506440257652171070001950487746674227278857560137811505250973952230841412699207492214570640462489839906930014136431026796053113804397555628719959497740952968069613647855529104639648040609223027524784475707349740552415304027050560263374513693195457551399382351236118136604390512834154745941258105931947620219615774360124789140243117281749949434644873116282489797674925959710879349172274902650413970212971575215886442144726878354145477581618948517239482878539506675156117482704075818899665373732819245521566523445630028962260833773689141998349459778542576530673551955151327731105591488756791225132515161453518627248789324083687588047934369119322851019591801882922046360308238161670484838896503553996351530388991865941831043706112027571236525640020712337411173654897622590704587020545996151650053754394713981017807969072976189926954975851423406403089426958465399218253524487971877658488885234633215882780744769149360209481826919118103360280394500593066701136757368789396415728551536769158356202166445485846897793503924611201667637226675366378112020946463034721257829749332998188869341274194015733695459606055886123010579481880883461425236510560371600563127219215517410558654350473517134217542866938382549721878096871015497125849945385478792445959032380443236361613517043870578618490260153273877896733484104140334529428083217983394131770954791431297598658890674424885518067301895488711276840884928377590611311086749627131090407954726402775797039765972633674095380092252350613979717677749499186276430972982116640304226624665675327909276506160873210392276947869042752192969036311094932345123068588980762725219662079005957630999134368585188870462579697596920324784011611746643438408935760560712933076843388456865202438492720434527275902364176929359832158240620964588223367670041772898934283598117618525926229257169721049929521362635508016728744398213521877092330967139250791960067033329128512000168478812492880924825434908818388863252884192122840827428675821973499250315040393226388582256167917053071389723094181783396043391739990764969567774957478764270468729129648025313289180148053191138971646339755352441199523972504134252844129425853449789536011706933338372821912566511912526296772268647268077339485407204004630340307731870182343631865910415798883152040925460322038191059915760446493600975994446977576257308471011978431463879011372989005905106342178905024355954806983229380799994695719778798585865281657252077397533847951870666064007030840701838302853153979615962552267509747977707907883659302087203974605868276283214934356734990672285223353545646044304881404695947020188623274360910017583386770595276382407215872004548463862226793670570391172244380411434551846561422173347812434257124330521358871555752418068296117178614324334284306829354153016491264837518439048786774853503461953738702707754965510293123341396018287902658073724398814472642961388319752095025781816410083425217746334499101419371079280832185895802346167225576230850817710120729606718213974601749000879223508852174652943585431912226171405735888444746349589060658993648423224076990831693874805266526675349845798458781898290632289734952629534863259277485316778122871722648642037920514439552316440714652565579370243510673253704687304248182520788454942043396612130550575308135575026442326189907313423898115230069466798966941677585355742771321284725522482934626899563797428112169638182104958371427657878209580848164668002445136808076658428880442451567327277682218634416331782585473510913604986067824103359106893663421270221510357423487845130321787058545211869721044827498626918457856431769374453184540018793562217644079011877371145938775916387816312214874565429280248621254773092587054305694604701693642872239328810018752828360883886525789458232066152247122223392051103392395690186921415946991757338731034587847353526130870666307016703203888778195914569685823019707688777596817387806173178838046175690759219908546644588971073087400718774062397914434112570109282235299406578643666914741800575198154521842217954386230043529553314399363091377028619682188585980026813597403360543052970916603485754695636073968942232315207700623564345226403792989608528448762935093276197128684342525661538846116509544969073200364943478230899258173625031460381276278242889351225171934935050483423305507112170494113418647377097359554766072284310410538304603434024130429136519591489631371567277981854962494946529594267772384362364611783343010765493901699683109555543449158518431485692294161712975505611252131494352526366363604099083875934387318102896925477434895145991468314505355689764546530863242604414150520916753391131148261734505446556687621059414379760875864940309402552277261171832105016593916006031079277696836631602992170464705634764165168516480188760600906679070973226615730045529675720168885361161548531925076174629190794029476410073571235107661991669852509715023312651319739551812354776879778836542987535388697513750562281273407159118123600385638865719801776993104341706755105717598431410744289988722639572178742790602266764930088835966838775828118502787946265575700579937993657610286886321108668310444345217401569896085624264730598555551676880744722101557105865505969163866990934188224916972043555140133271551358198858313349244373336933022146752458571773450611101811814128593398103989099920474080772837704889114315669163010738029465158566319942489451175067324121567441196003557491638205458163681204900333526453722381628160860958128231330836641027727772951860903811946496785804684805768086790344825902706663988256790243119619345978263666286069759565954479421753999584325537025647237564652810834930806678496621781435021388183207518076808566343272021639651117366105290516916318537951860427639926013721166150020692511259052449697007250751825288671600906040130856049019004356814630122521982487676879246000968406183860321166942377210855975314259655711055423887629407330867961413139293418252683160254175714871582384567747694584199253245330318243771209191335444118457615135013953045824025342381532854805190143981156334055091902761376412977057626231723731015891138993887940795788813501958287106888905263970882588291674111395679524964543301533416176099496962913774082659255861395420981026479945561383379322198853723483063351467497789251800707368434105313478343956756629826459013726296685476092184412032924500082080379270744445412982231354229463162774504749102175109650487586946782104434107471330178190697266417975684157622355738532968328433271409530533382416532495792917099982087221813754718008314156846668498278648237573740320110981899711473233559976255838441841199821041567409997193255047551123277538115035910787490272120979959574147045341243690758434065907612424493466536671910794471534207260798070419607921765294705843272973384207099339121158880604227391512078677343657759985644717183038786619785063740904868294497618651278712982375633879836131288798544901725747868250394715706062297666785685144250129567646566261296082106288229208582103267513263494533662988913163521269272332444993141418478080803475238104222591677958351962278364785666042089520474280339058831531973135526348614669672981484675092695538190916452288500628597592646390954239875652081674693021793748328736310327523611476680474517700239707410702812134564494621523083684543859404622423547378969506247737090284878512475883996645252502785435398912641319004581125749862458207463447035508368145079823242866400857339801627513269092211889760491264246088248399644655394745307157684498208289768077227217431013152410031336875289865820134612034749565819896821124974631844376058927186043765863837095378929467229485261510151256352517656559771775185628260793492567136489099425991349016482315844106794165280328198813724615562686728344759242375649364740833950289908366621279131375386028705761844895095759771541855875360475832704114996546889438379447046331933716261133572701617515691133942107084562252155139319925729404280064546917942869843277769308694565734718804646519682925164424178751878054089090714021950665555600075783952724207853672434512269256967427815124998030473383786308176056054896374985529903628469970733092106063733566519859108585500652733068377302831934282827488974624961463514205820639671085677610129444337180872879631544416806137657538452555477029930912348254488533927005079324810419263407610191564247982195865368991301274385113363339288857395728506865085435375820599745874053310707821671137331211007281082786102594866436975698019130142323181598158398367151191179330913044016608543590775281368144757025123107659715011521576208951992892380952192231834289479276922028999914733702344595064322182952423935432485281523623518996664739094980611143857981370444957866738980906341466290418145394684982613583883162955635082903105031218498244375550922270436094404591496316440196365386373282277739032112979546681983697135442218377560503165682942779842906633860786712781402016271370568136845141990333532167049804418571707893985691236108517167120309358224432067096971446699953618590251884465160706026864983034267501305681522226193713573646104432676363920849217971037374727241693988714832915424051525691020936563874272058825175750382404891837824948677328235646915281689146859853784769453955173509667925627856822605819277619344294633206693831737757651708358104021410405629898388320608344591549409805399933404624799456884083651517725036052657161107614143338183405410332110375435940540876436934148010962213981507954990818380882685196942814147094787763729905021061087268817953903194066334079716388104489857323485184319774181018093947764359729260818397807437223491692584178854422026680658789002745570797283016109056209683644320188736849544472913200303893685517814807658264291562372485724237727387455875551268111930486103045651930551338610268332159788611819111311096276176010466862448667214418070985024338840085715389685171421917334520649387615252575856806532185483525029912778363213186681066970061738395924984746080769676832461256469033515777142102012505753761641537131410916904858986987262473194866273645153137872522490672169261709356686876946640979203696548183475030191959826976534231147622977862952483253953165296373890551595467778557500901716939305971579663307449939997316208342754261401390780447831626500515131664011851105104358084330913192390705683990423562654221489206445559300388515895314112270813543738911394707237561687577728117183227567141484642859776144628811992657319490618987166693402027547366127571577873885717667302062496829321552299720544131772073548460134890785665733266367279228244219137760182224293581078610223546576748250664089267086344121856311792287287476651422947299918818128522518216307953795802024971071453484639490008886964456351738979531931272770867239898713251020028607126193113481449183263735888707443262450610022515984634143318054784538332592325191213895033458032701886999844082999649459016912208605845597436374704377407527974608626986327957405173362461729058413026174004839397476373656168561057283515556889243579650432978871067186043840551072170373360578410769182381358211091640407240811564309973916194054391415153267168163078441309846018714871636506244938584505869655856816553456659031650151516453779647560918830792989961450752654731210118596800700949622822169324712417778791258034037804733899856066862482441374590476024891491393720303273572518598026244079659493655706919817114949418717636424272391818130466146645763881697423204520555891663046564658693639314492018973225345562226005636635314025722299241279221629207677596428368218478246508385405710847904317383526448113812057778886874838977930271801268841499779652982303623369460933480672871320505067515539426900319517916941606920910324124952845507776860985077893056095858969346283287727425803295106403699420280557110790747614349582596619497539184937895799330817389967977719522899807732461035633711481127319603423340612939998924099036388713732762586250096843131076079638479044396733533899069615831945334796417649326744231748288500007007226052304485276945706526097302099893294458134595460275897827677906172792288665908067060622174581676321756980666503965354168203546825000166897542453538586377291645123100256257268555971759087538974556399598271517636238477944012990135754462704605949764972154493668368061289949197072006632887658518996404616381018658091123204935186127281400619876960200388736648951896042326381820394877361339846195404909243361453483687591748832092961030185297737331329151300853737294132350626301417137589497545451015313865746853494627525548583185900030157592540859970586843102029414689739364311439095719171254349352819736283144136919928948116823755420941905929398645675385015897325057178242819785300535776066118090452755369122962255185211399210256547496375487051126977417630876955379440480792513785230598678541350200296906545908019727304777798390308817074050692836499728874271327598571182613534705184975350145944950858529971635857833648595689911045036630681723475623603951010264208228723730393504692299961668572352369516673307373636300642365441165177579871716474571423099086733681868346184831271145743188036887188620684824325355604248111360413495943327920062982042789415513847634798667347436571833706288480896741557091733671884496360200010516347267954401353843789667988626937779971249604713216889680112009624372966051330087451707488072192577502618554863141446946162216482465714864160435005347921773782339415488514261074883923001244118894810018551648269585189353497223255564692052356025134025073924544662230175623284937846823319016831494547123215752459754101809223753356693352875647196164030339096119240329637249045749427473519812736079466435731705180995165200016544076701242691026418186008460562912115410201652884563898455699754676976029636516913893691474811005444111826963988719118902539667166760060812314834208597093243563444919715692754365340162271838193028596365156289950567319036901024823642047135343792449638053824335347942680061840156982225654556798469107327173874829145257486914031727772292889237547546014822137859138563667356670318266415921021084209521709109761463747271238173459420965819418710534493852472259693146556242449476056516220365202361181873264076894856068405770835138878419928491832067183788825539862343967398897508993503056966745651901477560241019653633734750076730833012886219652967580868126612899861394058182309307111749470842620341064763764798214155586227554589435177666330879497489059059821658548682832590872039039593421498761313015378274400246769481064931765284046589071556059041012886468049683848257079500480769093518398879464542441243138376894959735952944165666721135755903915831705631590252441316101563295127802072828247355762504934480847882922229165956468209183822207068104694296591955499037641354140305248425556801021994785639188469481579966289034653089153814469687885462552522034182169582794383080022409236172945341794489169847189975208836400802640114106128069155305702059902508758162985031243047865715252211575238818644068025594887719090655898816276298455822622495797162813335103454378711147450092712417747606474071501579386913557383232639826700345083782274003688172207037816816084468033287641263274896112429374251612532437442444417117118785919409698335301655068243120604394121241174891938324650193173615228768090680561138930237086571215505098951078836948611585004516039971157533372916285888122738871724571316719446543157532093796726800804891519064420176222204255865054634928642263344841206626532529095646170990113055064727793918077614012516477999565281302810593011575138458456361419330102518481492711046911843069386810151765248948659142142751889493423228881474739689850444329917694662643290044102504545765975073926789382452956171822168477991392141836444548745028574177322879503536980329697250504304246753059008528827809725290806471039760270709840495949287318411841546477128834163729432232638287351173456953077957692511300248663154274187057283078872093485224823055504415817842704667014007498544474310395090655653599192590980034269887191321138227407303120995017318968367219299337478538377981337883204966058695200133301314397753627181340059622808494697231988595560512213270759656853672607974551122891530649511738585297755211448880453345504544638124741459583982240466165529777638727033330533516554254265236373394285448413629434310931918749918871455158753798710668219657578211777929751399343899011276651434341662589657520697651557165028853124193309032672224846942403969616506446181526931903297927087982328714408604948352132141852124386645848096801318991018288021962908985057680111976470252369805167537845472875466477583327327998075186415755701287526896193191964941340673080919280204032936160825398070656181552364130148241705716825880663398501885034020760195149789636885554378669199185854175357199273364755552112161272420915115789672497672231447521186053309684943180193441545870493484315135548954657996761809551321860648575512198982896743606253935989491445890924248981807764435771942333010431165762913373693633001165971097925870651860312174389132766749524784390458635632692344547074750651886797290870632722302155804387408485167743659469392575229141124066696087889269008358246815264786486698207700937649855710764762345465131936278154083529445774189036644316728245633816862485451247864895480456538010446686120198983538246861385984175631123148599022836833805469742437868062750030313390888971293715661029261482593239852874670538373831882241712087692004103662530908175893498068199981943681250206937235356899612923677883297267897491777050373651747662862468947652589670725898815630143905230260094736320298613069393087297372960612231744447824777781852828109735782901350374343929766029610690642732865165219536968211670282120924804035353875862490365168213755642429203167422565015281536455708272989636148365414664800028871837517044456897887085581820423424457506855079548670904899070598926845155152203457678848470197323067514079317171946849613891569955391526459125289899347614626968661073211217719617540801034603983139555433869165636006382825823153581379395751551481219274948898276761478754947464355195359167375220443105069526401998327012196625854320148402924857791799657271332028463545573145922582048492591557205508454135695303810640353426261293707654804332220062332441215315199867580296519710889032357366264795621361992627776944932829972736884737483828318983785964100800294213079889255399067095977832513633086582353641894913594833580805669524036365272235964366155479426132395152460140324705030912206903966874578219281572216248969885216774152287260683080680495913841584143011921802086152298741292607576684356739012540860628141600568974646699241707448008172442878342566786793674361662833078370845797992356615994252170196356733020663299075217661284060092172268124004619668238113394919876380431739831359546350251507425564378997978031027771434866310949119598161861830825294628780242010265740461848548767140034668413695100300306949601308547419928861295115593042051004086845311289640574257506543474824542268227790082255365163699832721907855651733842274756653015442650062300870019262186005211199127732537857135616273310905384494975692225906392725923172793559989489763095104647969547372014982967971519841559508543918611785297540712361236683953867751724875888964981372940678465035898935482242584091413220816046758384828934674739468374471526461452295682816615000313637946686593514132118619220242687659648273424209303127422849788811089979961484830741009728304546620258697148326108479455743330486221331067005527595730897301266156730113685170600898449700579597925511710735662648628817655199499064094958354834497152917694574562950565298785753695853137767296654105415432729373754823095967268678684381287188896919384859421654319542384124483415328382135287827189607609110460661076616386436001561789164958648710836137095790230513727693547246920480120141714806666502102048466244155206967987952301589769491826421851725611345341314253481585868783914121175831183478812813272942388826766093118626975979326718869494005215240208269236134410733838910496980867603264508800451086784212045290916485945993064905461850474788960444496195734988224097002909305140854763775340420268392087071215860729349388607081503135837621416273956867334836725613223929804504222159868724290148482222900457585748653532907548106717067297049271147008428970978902320298899763161876404471216098910719635932101859710358530913485976212628198271053096925484817271888489976807597328813098799357923150022155994448161741515446811987405710052130248949075608806020097710215651785219289232230601754409655418026284016517496095876080518196057266151668557938000353490278842570751495616932449111324575001832178610899351948987122694451342552082864621333389636385071112483790988108679073073830115830620439432100470861516136458924058719428418046312945455704415123985184701490346105965464340766114643684644342383909196014684682319866562563904449891931960956148920591544406063374499927871379654401280759490186492152351548685471314704293602324051897397620312257687411089109205315636097379385116818080115977866534909384609588497836967922848263010618979504991997203623858631210721869888738242686314929871614906189073285418437923312748774728537727827281465841720383902829837131908218685509452662884017753500505500802116525057066691102260798360062417151474293194646594582194212505419687803317204330008196797133336122935915521704354585398624551668535673599167449094002786239732092968732999009931503829851659262199572933971464872707803310247875749181532360214225600049696970921953921378981964957817891152751930817052964920958281349579350017779909755432009446702750706748287505762465405004187303644316794421731224007266363161533777586264968088322214579736162603958894045699027076341709200819943383139222486598374039731678170330200537314261322549150863811430878390321072807730257083773530133954453613213637155249470800902848435464394383067624837584646568872308019416151541782077603358961402289853579723048919086113638720972088089333591386768887255293941126526364612491411850110493057431040131752876680105584792074494774956908886326132319087757575575106978019045535774975744479462374195893508636911258119640409085053061426423936545402517747165672688116324484294638773406858633277335488596127454809345831727300802349734065904939526475989281398813484698979682597350126576541858611784859830071987377115414260028364287243519812174064518844136022608491232327432004373244156000619873274844179482753619834577497342759832238293620630036637576110310463047608533354641340692144469935288360518919770794930354992493631457995988184226342650975179229294530859581465910855995666707461840552827445413636256582015324273305660314187476911383186742448983462634688764682226413609129038734128440142238099353768477760904712149143403900902401106462908380353118694559224088672880854641867266021270595895312223703153652420745045430258349624015993242736836547086474792025796177997296800126943784710751382999585514162784683607681428051460673209190080968721106598172507572168497602238549286585780351333894132062159369563667239097118120742212673379006889727724971121744204663425868902349997930060592838058257473022238904860178369878438333434002836253979098619662106174334582052248086858096758615832399069612991453045936832759224416653831619645585060996991955800508910691385847586976592036934111982026933697572385935060994412903306690743847583113245544728428822287172554027986374970228348327617113226464929426777271607837461612216686936573177424285745339228903813239129260674906197370210050271161962851380570258991479864131217684136569390223271558566217519463309756736752438663124388141277724606640283557225785790916236130538085087178948037791139414077910602866652047656517887176386106811813105814476113321997600449859844214716307604575385379752640530189195843035567625017450958766750181076083125068074650734770033814185464921172676462593558549891081259590345966959769630716412092362957020049081377784599410784411809098876226588983580835810902167598486622375912597766305318949993998179940412190287118235422962404163906596890928601990207546219375577655887170175534073854550224552099253115895870757037016966210322459557813587849301314083543818810077592830779517694940700279098466640688566539079689133630104080346376229019153175607030825561104068060430294701406948291920183451163952358762482026556965012960863391214781858476999629022268130614679925197756067418781889676006542830167758464914583800058919763676027730028564727718783584192003853660613853237869562401835649090744985603653608365034772025284762750046184907251127699913924668441593748086946306644848597333916396059596816451132363721687343855817506499240604054092250090531490152849250310812154451422460475538541749049663488447960099695512811168043286085872176501709303883898415009275256923851466926905467957175866328991705326220982300436777395336126567399082554067705588273826030926065035342471524324159102149362690051593301230169320119373645179722175918124054194521055098196694012001375218605177524545828564191833294586406633298206206157052756967010378114168878761542705143540609087479441886613477500111863177216741186962785820861202814158000346879791715110015817166816131911606193891774029902946887767613019951970151529764710934978207759518719705870669837295501322741569999852844812726963202873683999396715247903404762212998059006392422431069108974722910526467373513764678847502862989759649095656696899606795037092233829316226543471179319519490633518588275663664573118942425511047499106671190109578412100462702210593681772235441556053455347593989893640334410687416970465399758618675100172877557626222320305631699001536070859275884442866317826225009302170487459607226749316091470735431637824019696226472030516859974892874684449953262090920299451093706007886036297926421024428354071871591668036666014550580761374899686162800436270399959683225834537629788954052517383901336883137753501769750265360290097245337460335215736915921181538764837717765678594784494719652895570243659760481180590007113568081279145294446615228140182683512562732988011133488259657220606653601084273247989623918679716176936566466810586137607392008616281936460624627297636053527720230182722067721252015297697298661918915027871390864294531957245312870721999025860127048521859718548273662455031990292630370151335469781664262156679219546963820065455011295700813199845733610318230498006073349147710819428777797347095309410152749605067134877441766712843898602259740632186761569035129166593258988777843901535561269731429133430560590523199285112352349459471060031067198961020598482172716834821814183384300593933977660985768825476559352664884192024154605420422044526743149104769478893671804807477458468334156959475509720586091804753998097107484993591965549506097538434312974457491523539319406429567464564555203546534721674753339419468946681790626582125414187615734444767084291822471032877193617145671063495115464111761162113974069674593199454197156945652114165799358528885885889214940893594124946620887778984461606894738448279016098373051459486133944783137434867208358518219935692030981576946025210174761401448743808589823442590052491390138097226624451919263408153292570436822514247127241515294169403591402327423145542938922832932324493098550817974138601966262185009800127816317401987206369520761598481860422409289228451871826304491405908247947978490623362226986761580261018145214527225718565983321105543594789736572266484756250946583175916635791087260606634351031217454192016299524548806254814999272979561967939143233628183861128070124339511837355112435112063108081371338038191109071350166549995464194126009813019427120946490141275865707938745959124991585218979733325936462980139066150962610392726513484178461920576080581668347890968750597735913521206353689371259063541776530707708122551028968561629288763983345052670212328718697560074732721921136300347590038177115913809663526020026690610909677569914872857800382199728237215798121304753992970454979861462258859932539762912281625628870347900224122198996847694024180985390991266827314127787113724021104722243908891470637856447385377299146596547672047547635008918090487224094320990733154143430095698968263498565222486953472514678837361417369775887514642965767652820154845499828635185757130845283619127689779345524620171254401723737297060958819318818489262719220028792708964809596999750539451886462843541859345174388190846504426454957799089673352860541819459866785823736312736628928020468374723973496190000009826872123850800058254837916575445441404475669920556288911298831061746508343734988234695646413735016516904433212372607138061125922623137001315967351656218469441177489830818022902628136336695814585257338973535740746327650795900599937370232922992057210967848036956845855588494167842729213656254172707191607992394789966742161187614850084809258974955556115762128071521003534472082723192876245298809657589995081051645499039024066123485781887432237415798645425971049771843419394872488463745364124875179334470299847140760318491455622939555563878837418791649459391812543002893982121980977785472491347083914560837084022328923451702325396372460593664526608097917204396378842623306035425280136976191642821236381938814590153751792947869481937855657848308553488868494311717043492388164512140959937367169449648285043229126058540184010233575789519465691151676868499136830679062698737901793171963248944609435870801253619641253698801519240069341342175888055904447174764512430593979870891058409067714869245923939384854660307700393644597717958811565518283758396763308618411680077764039784820672656948807591986552979591783229028327656253237452813389881911629296676839404103221670164177344996583270324381793350836390345806948742131640867342789723321292018705029045462366745491281992168691240148054505571840789270611859013932977654738045203046940690217853696087596324204136912437365125269785278192799899827629269532543169040822581644173533371014217008972707363031050127768612361498019067425109913094076096662412360525956488440599028634627879278232923784901210763186266488227154615050917499028720724256731873809931324196224091047476824067246744206206978864743688615234306928506233194234670115126502866987629193348206361290019734019299945549292288469409134350243217915687656150431227299927590690084913425497488523622905401294159721232401130870739934742929361425369186192990697877411849789745966252406398382185855585572722007863760197682074837940609828264363162081061708610647376390172458175587856824170919217560332744019035716174249183501950371617881988520504534138648283649492281448065541557620089447580804699996623502950391634009374890488714378716332207553180286317415621778476045337416458681602184768564198783539342863239276069669594168787921404562280520666239470577403039334374032413439339687461833597345228794465358194972164572859956147720245661543107323501341070288263888202253773404140794326286009622888265290232887635587963880407830513466669855735061168036708062283790206602846275979476383758093424240163829012589172386198348509736772344541740896412496698242275611980165321137043134324960431683994827908698284161201945629905674004947570594999521313571856923695512808604106177740057494505634123798179843800379109722937976411315054368173438821970209570232385663673509186958945976899647823005386315674740169480303898023879570648594559047558858603320180695967168636088413649635180830614407980987975644903690555835464718949472396768073395164303656698103754088259040814198005352274436925421235760711554093956736560008692713560613774340748106908065532747750497546181343216515072876753486433019292008196227854853545584690715220499677767128915423406562932676200532114862658989331923784634050848900794412734430796485146019455742021863216971354099869256081884696322491289128543006980460710443743188217027441465028657359114043514800349095270449725706808674954250838719592377395025322653975823701803331894294082392963510567820319088148504164972058619160914906784974976390847445314779856454343801110225064664410892973598485639729510811912683438565953574017035670208144008468375300336937229205846204769380281761127358643920239894991245253480796109817862318698804103202760344765071834395468237926155438871249629343560892688824237940115397660710524037982911670777054914313476172412187623250183094775476530368308370927098762496900481679527350608976924516752407683096497078040005738799085126435416664642645632783488060796222982175517396410373959319900653428624908526234713308221712226341831103199834842607754247588289523997928675233884969833508944200060742574915286479511848580005133860279660596981869221622149197310688145322427771888523740475343010515343212411174542898249437061698037977625214045911953148615015272620125382010015373933295336340416559967038073273216341688670246944030506681552448931842513291401264199238248371746239315871190750065896945677831126980389095541873894622650636083699167570756369081543951002718348527030334292916598478994266749927059079787004825519583513405822113192471005693380777602905853048485427915062256965880923385662256068077927065139222481357294961499908732552236648872290317521928908220518902609180939077192690287343789616334368136271005223271271168600748983883958437751081137751389648838480177668642582972732284513998615644460683334382166601359395321746121348135551598281377833438764542830246742988390312960382447824678934234332549814728376528898086712004242061216956992313673357966931415202939021934274506357615784650376956210704597334151824903677661043480628686954527204340331360451736260731326075708585549768464646528632941122663704141851790363247550808347979572589995756607970186026950531637729998115128154381654096746653079046325731432544786753734154381075665327770874453391492950701175048858957568042117657117050871551793553544614160945146419559093272841092618029439454959544679659035163503234425862810712433404152319274200152146012789533622517252172447914825330983810754356103369288009150142124215791097994776806238325745190391763860978358446987378220991051200209115355337011120407395075863349020362498553387216825742285361897764591207698442712021617490161511862020192883370947643575495359116692790617647834129234286825523125684701469170648813733914696271585873991615244952187179865205193305414032544345051656157786697954386298318165767300658628484825039968145824361599166766154661943846169204254234047742706411602236966614465378598199186129663471354842941835568134564052562051713433827915978776611620440984309205548458395759127830060348606373388691520357566035308928460827226114317414431897471107399472606065501181128752158903679959090257577064198398173938518634340687239639720362414571578941690379988215471147171654641632565666853484162547945762291240599354298715611214950979519765242960194424219999605416518332632396563603023858812646077600209870291240933580068024740764940460473494884416042302767129910446136089199274700343911239134814574904616006121373182041907375094988044085617357471661474812094496299120595903921342389854361489116046225222757029134480789958013117352050479688076782025922183756343323468115197625184943566005956351612886690459423208950380729691360924877815713788111044587572637225875306672941424832644100354746039465802615568015024951546349446496883934702674260279079146060215925658214230624933380653966019865595318519938453653202550573300897445199614763570933016195864141834303981814692985077893011910448738347737428045444632455446391362360575192798761586658585070294767094791349230478713313398051299707654431398121764315028438093310384314291101211245416524741218356083193227779199800720225198372079332763485115635426854377606450069748659116852536947980974341857216295128292127947486802380948879649759377787745810198364889237348788416329784437380478612218156425355232144612470147144843302914223034132321293615451053370298475172009873613127837004830719923062192854583165478891446565732833621309670663718544193950827394095218838765664882509126562630263070782946972568206095133741822466189145511790514101283756235756323406443812524225896016831846574653699109729268956486498380254717338605641722237649876668820009421899124081825472819025612064744519344291709997930249334212402074776007774437231687129098024918240040928683946615935300286002207762394842845885294084597381441032703110493437888036288092492899663045659861416182798356133567905450143465206804667950734798462959539783704615333513383505585440340527482751612707537930331039835112655996613857078053924765932671819800779619765752117952803694755007161760729153808735026901012477955418834950381742529401534087137829958328781379373080920627977187018801046539466164993149350259733948229326128956713662932523217117460776155372959138090351229570449480873873167431756391405908596405125387195895647845831244742514036034021813197059333224922085683750187825359795022373880823914012777227338924226553020813801326671879775285583224540412435380099435234383878121923454217992957692038112374799785001826729003084503118228503364858627678808411398085759018010808717706066600264459766021990644533192849186087734816451458747405095891172633335869250154274496600442349819948611227838846820191227899614658176199501660866753599672067229414222216425225485829021079658255499701014785242730610740080914370528415759855927310559498157526177664090623181038273601737651656062739639849630821117061453376425718654001746348321953345900158484851022576449866455894704318318554121739250711769808738902784430201233110560614262624714181772248056203601498927991611613596403662969410578518151591285712933401514465482029314991226667728731826350944333524669116079219485950894725269236699143996958011180543835866055717500946871088037404677736116683671096420986603292921297476916814353583624241154202941969595180407654097924144295266427015044020546673670297774058748909456957243825262813770444176986819680775277507413603280218377092254117329011258324350188129916681871944960439841014044286157896580206991534006927893693709199625098637258042205208148710343016859855579876793035780918230724722919508496308624544542535582716135642766222241117121434298794894508670831779332173855649229889034712227356971718382580745076076467967437836030393580356940733208627036602966438517278200805844558172172183242207215881158813803892033699017344609394415156198975567365782019000752251011636068242070356041180436537917768283662668192183329971194131101258741701278211084184781179319720333373995751647322254247181510018429467548256756464611170561900428844236189817867373679201285537478050647653670695564693579147221389781576150333774335535445688523963025480702593708133154351017345909167354327176819582298085899863081307286769567389954074970096044261969883032350719638899354325066887125148305996524527755928875431966559751392233498377113227252580048066287106981003305364060244629887798124547601412004576862741013349090159607784126123700819751238070083235456749642155491003057480886109605937240399214627765976792786399484119430002205653229593284216795275496341513746942378235958872886948963945153478711139006849566831965060150047549553268576306105885471063100614891394518871300208475451085832215794284434302206724868416035207957563630348416586828084355229775880183937004597575548839060373335328269966959078916126850150483034446250706771433986097051617020811695950321092434915862327892337749514210858947144231686928685689540666922368779489310215229041096707472654028687098060352809535851591535534076732604545284670081892034573086673121201313889697552950897047582650479930150953873105462192875650116512539426826078828889806969041657776313072021082400980859528989540500437964101360546810454151951024816987618683049493602163566686275008998106597522410152834589084249572027811836822081387178796244700176907718666770164054601117880016901546742717338885924742472505038074746369432893581568968147861554044803980067261066646498508971886392454844188369335217067518432566545703530528861981528143740525028171118326035129512658791908749685238919468991093791092487946681957289611894854349649300970317274020770506495133105030600171568474758386865871940975726905170004374103292246260593165941444488981012275975817920664607892856559295623391869704024954167402770975016736952782683944014107069041283341278287027193290689469450122456068938016811297631669658827982565702702808243500740157262686750217568443829227479649985996595181849948599096350406526139136968692971161801331040618465176218517841366854110953818549958229673113454891075498511105369143146667762877320145490852646405469002853692056470651721438275598871119913512858571662957768558544185667522033282251834330858261336005376885064039955510172409437643915974946321008150866908612034164465628034494390348011085743445457180040969210525013541114408062647609878914799582452579614089024667533373170357219209475392119720956024325645012778241705149073759141791326528113493746776718300405418959150808943921725388118892256259003213099172678484636657969577014219183429441656530946379492523180823223779628552023137577711478303946560197352421175346907202183773544914905518502581341354694091964704789632326601556716745695907600847909001224596239560091194100137272913076479832049731021609604757618783811749194569768915753428795446615250130811440260758222392569940411859860323603554613204387864721694098237632107078597537512260543975987813084247760232133660731637803746042753291658995132675170559964132583579314420984869327162229905569557080382502958321829601387468907029287149740888498981520996720261037638760074861002733328205203777201911244692934279658540715136989629961227725095107789770117809134138653464448339783669983257723651957954695735967325112029867916503735613638870726804276372515049110821372498023374806217471643884554079006130088945190378591301196696147439925307719931806631031347696421941502945768850761181691746623274012050606335392307160688746907284884040169632119861170899046900833350318498109555332723944403447858147226731852754450944449005145912826217385038815737579656201652899369378768946429663662495176720148694455052378119296742739592710686454901129614921143895626275527034119175284048417774907112362078776651256242211826708427172617634640491990419712507031640921196405065795408805646246739028894602579305033227229635483604758454133078589749036345742765527078067199008791762068155368153081430916270589804923871023668252656212053483688557770505889465536359388235490320615582531469913087836197412940313855803814242173646185645595920624131984484754680262259722066504634869274791204596539791918381248930179763273843823871555032098661473955787081355167410478532757517109714760275691361492959673326395718922928565623326005593611440493318819817296445977412504081586686650200628445569887881565649141499825265041615466826335703400765693454535719742569296127075952784901334512854288099788888799597802625314450722628790502667876905885981112516059676095202732260290035662146959113255472655319915919367240843401953444283248491651628171887379300540968729978209809452203702699241637005452851673732845128217706441074380176516327646538952351808440803872466450053982915891411668378541369597272355531104748427634411994194521992393986634132996878528816027672464200909467610388332119111434938536713793510393948490771051581332551673717277185417115471455893710068972807293231282280068221999409250852526829306181964805182732683776948309347592067540370593946525368124154845458897510545139366341018749667570195823665677986786080213170147496495231326467714195686434573495221432142974595920539854872405729672210475995813870316760091654232406657524644860053148932085513066752552575843946357738098703623467709112749470433388684207697684845023318926688123311713196660528380316276849800103181043735826491245419627220081997375782861472000202226767226510126930746650029581774001583247736190211199931456238481465302779212373489897038915645296416884162434752941829574418557371068483646271099544831228414498287990046880007021661342505114216432582657067324765396877693573856373527306618513604320379482118382797795724113472591510548593581669260982490056355405946002321714987812603274797073642752910359931720336275862778327246787354429437766684351117574408210189249589722110803295698022256420432841978081227255890898126267708157608045200736940812882858929379695045664268632587564431671141616169633494550748714666044952944014278794041580392478613040733979621140192768522001683916882785053575094470878682270931312754808007292325741511699586882660816723321789446369582463188468230444933699449177218885719349579793170680920134760309881007180468859903796492134517412507273434292731890269071522760688704411211975573212518005000223099735690551009730802379864043570072538838164958118363692789902641648713779383049169295800479194445544145936496703804382966552202148614960579595287759237747051729544614581006054722491142593338831997487189311290800604106508886200639056310308993482812796400259880321325564143178828880480239487637934066371046886929035396100432735075630022642854560363436722221855686819337311004605480586716267266679546302458699322501391651926438153762631962336259776629001116751080932412632785814240865814313431248654298357726408831870723527558651401919031441771807492037015962737025972555372975620766982492369777505626568156250025602065703440649124636554929379622513956719744263602589151930013166890157572920444258498838077893512825885529595613711942458537910204592157013869536609695365851250165935875915954334274053545747246589453497243890660204809410651141310247903139311429037613783189785857690513555146066700842019348455339730815946479032719765830314518417213913633882354289349753026480693646774372305465017531649020902320091235402120071336722716975474179574535366126820594592532642045207205022971236723473676713212785688075900318107543400177167549960001974562807344868769060404727241002236637990766009436446475242159518035419324877774669491391079558347910113051701138561404950066167860034929788936791461492892859611772385306869085978263002394195779054665682355870613477842011962111970924948911493189753745853511765707453235070631821325598790165498985068628679510088632850225229379082973619587521952782029916167727833905971991670909896965481956387370162610524772614339089908040418059424291409026012306339878199487022291249074571977340529593862953338530732725545157057063962934347209485539079289173097908301362275358468203382575156678781449365313994106940967236954497208486143356132889585680507805316425312650897027060861407546777239336755392941798513934724543732127683746148805500197750585843403800812309788285817743329994839095248691915258362925218203162676489597920418027523275975808023835948486306806275419654938886290425326665286316766676749079874588513272860242106951201827228394484478801590024568334447907029037753837897271528575015418920372885111974922267760791992528301192665563013051693347615272987937390993413282656719081103215143067396731117995964065993149008828885614859038854252896779618192815818486182219997874884136915935337188622160852751406651733111134760517977983466346900677193110798062451513689632849701202233120175316550845305919861804580172180835493391245589007134271966897004189152273465555610914148582050773109135206560640907178730954897853611337366718904238227776994515362972579009785566611405039338200652103050105359666605153711520033430010558593417653302636635433826516713758488795657172313981300796728948875992255501226757006256449380110262185450559141776126325222853374137103885010148854626035557545394494650040212516777242740885488374031082710422640033558066364148505369005702643434305310324372832251172659305578639055708059332951755706266901592059134237278402267448754428966984962417563206904363316679985873679445137116159225927019340987991425295569319578756508085510647258399787836766924552213992293005283822274321316676153639894578293982276736152832027215261359290546309139331725109441368212294850491669777721447055628350751554911705991243226078063137999764674109142339119138256306861903467724982824522066464735699346331668706890126814674041912835575593799568691001928732622666351165336637940032866387173399661112714584859316406194439223390556622310975847901446837051913759678105542259869817797917695808802789793108212041814867534610590506916350507996670495899849845746387674468620596777878580782795412730538049360059626994382736125555925371739709860787647532659485664413156335482815554566878103806808634527372596588360058313515716118103274899230580216023885772002555878395177912309837236508142493117753877883134164468744253899065328667847569923100437493971482419349026211962060002971009135135635670328544148522013850066381470715897131843963220797765046297683142230455841729661580529673425936102669182238589284525659699008298403638034877182328863324688426296338618025477596794653936756416044062538469891559676031628764840585331820541828581359492235511160092044140823184233546082024430519128049154463196822891707663660468511005842150997021487529952861502450126086193355915610043323027193232123067867165258285200894745210083070819545386658130560523064259103754676833515116089046593494847022937943351098450403866658404391987495716839272357834739289326261489217955047294214831811623124463012471061595705789061216101207562340042855657641787023830902573046334517277946353846790458466635154552733980258734529895307981049134455249812604678466228170627006497073558655014680817625936603600105185158765346915278870466720448131276340555730405794573596111653344629652965435182485841199226002430467430291327250691731707550157728986875186036532660648129608521653848396604903051394533685444417109338531598112687127287422234662751169637469991200972471536902667089242829344119752559125007239957786724095918831084734185219424818587778652903286655047962625491614671024752913803883279463858486949387918793688587874267555952964570962634371045667810974342435332037064503780211011486822622160700773053533326700667633099246685689824077330040561184031595722405627238189984833900159229800361313842119352735518424487199339115174644060688547824849738795596512040486241979386788056243677574883195979275309928842588410374879214145150120298518762854847123768539343983688246104028368586537491654368529685889302038587105231181466498311726765798577597563310996156056662403575533333172858344438547073954269394313924546748672546237231971969713308186377733116319500921031282821512541918724075808708534072289696269899104609019467291134253058441538097168858270970082088458407911924447358089547691865530005800807903010299841216290395547383396526777566878932577509238400233420761149690036897118948064385807681307321784580616575773289859038903874276229950024579166910762338135920122109464879278516936384704825465582646210391900025921442521836242098185205625390762887729513108308270569426118040320755818871755716553040610522872647572854784602480995374735928478016055525849288671031466597929659014623216924259767929335510484679883127704553379016856013742900391709227873656720458310278077820491579873674348983088823375526759175616761694070395671447007461331428990608253513612662275978536697774758513740667413796900281841788433439790438017466728453226428628111013482968461409399544728363678072951987655531506718637943805011407279845774237173613619406125797518938937908332538503445872295963471510722187599768683117807789289786756294619126499954605007046286239765792949992057249518099109370333967250392360175236958789512698024748809900870372610552199229343254206710990124956821219350211804752013005329180294730750454014341149610993029492956394174396586688587682510093935288538737683450006263008807412233378462297079579737350782812417647149722910973711908427344928962541375767669885755460488226623940926736763433955654058101444510871992151205468090200681335815074678625122407684652934623728709491386781814382705235499594742449310939565259187786628927191163672144062559500143405801807217121583330340446849747016652562812376088234568069016418030544968414324020758727087452249052084054216080661231289996132204656421587500495335140748427286802792166852958479111638932131094178332600310462118772694152980257108007827168420816098968935882762813148849627571008343516853054053258708419524602235346619499271735880298030307737099474908313454350831526598591334871480639485013956451605470661987374038096812264482233220319150210302473642372057717160648046358247087100471095348188776613450084452759836938309350948443895222088438233071216639825818701937268148683309268808047511850552254090291171376487740845615816368907700743536136639201729976796252045612969468908942813296691707846410719303677151545314941733461648891619632348737534748458053977810583136792302430799455624233480262989262070221828673834999683873501841389959629722983510451002510799982145174621619418936551567402164575339045428053196375832809022021177596529369341088694526177750755332938270395547113961766608281276058339220131384602693902577189166321282762495557253370386753533965363880154374705096825269802564578525384348095255748503431969849581626046485429565502836161504796211445150090860372683763237869402111508612070937302129105574160574079599798480910594645701925258760176962335629431350926035517188613693957115084607883428963531694630956580093387255169782223189887414618394885878121819602991082385703262686544521280842172989304639023602052145618443233629786828401735894102583049078047941361718626029759255103976790857424989519290208861257598205673223919876649687058296937880348881017899194353591423582403401954231428072278217894587775859031505888646594920488961196591329687641499970941143345015462214782029558544994585875430035781801437021586373191474122825030203092040276731643912393500255912318166816385082912911652895892306035926337351562323264487734270898382549773100750500141986161150422111740296434454852263330469051523820314836806702359954573530504111254842631352135740853028319192469359186669211892061180306268623177206226396583246779750287258745589901967413967435232172838054456498109132405860604012172758829254184759018781842913217658966611352194531136933476676977166311806581526621039158313440368938383808963821331724443126108027882518450533802865637374475993890373643892235088862782772146228123875786188100845067298198729178453760653929548736910102112181387861529050876777384261713812317075035890650789559908412275299281629183093146230779490314661643815987131010709475170944571205754412919142340170487000262952420605219593901831435486779339538780236313753516754926284738067117226052566883508783594481581845080904099742497024551596797707470167300790197338814212477067346130607609662957998329982422999600872507964816018297005776358254846947393570533231349876301477646789981327511842135085660119812033496307399873304119521558276105784221448914611611383443389666666409149006232915971097468575331358809297363882265011255293899331509669686474234561633869683616733170570449395727872408632412221347850981544756730235355239265299176954946558351778206615451778467915512666297564899869529384298713275503996830083673232044986414237616213803588993830876219370725170503609291661815488742445364871097936233203301071563120222981868252044182158554475678492689758522016971837690267121094533188021628257128454500012416088280548653049073047828463935236453790211586001713207440241135064258554677032670123240138546475286613996972565589972349406248393081112157830849332578592057635699919321954157823738539479788245732393244450751852429643410760476616320663016674336569664221788943934801515482970031746854930968871952772503506178046438569209225987795478257156548297795004555627957392068877164584817820042503609427744673954763905594621029007907262424314574950403054196102960496377053869167125120090722482189595520890120941133538165325908465078282884653320807543269681276768687018530809706381505163831550275158894964270629197564213648091209114421946446965001031629967862043894708010540648855499425379154429523255470141429887945745051317181392595725886103819253501797901967800939962771119609216905204730479434182681096215187625069068712198474695090220494368873720224899804950077920705863896326763001125952548195392228602723154888420048961048287634993187703118385495538250286298485289536207363805871380635153126627249122022863939938669601997630879913947245991063528668621816182959627983059437269073805418198545884183684311095614953301404713585261342764001161522093772902146979939777855949100818134151006081351201243389617337059370089191730968714479634458720134534674632559354884161875291918298062623705706537203989710827368676104025670848960484543359342117557155451797776978007918567094577569521049567528215379135007822448950520899792349968229042781530113624797423953410326506005153571935930227598875337084147775020867086009006811864906819694370750414055933498295411390313598280051885391484354011423079657228067444430158445487470350990792847683482516840760379711494712972983249375757606325067813228145820416426166727715288052178100538310016639658203865242888600059620191198249062459080106070270223267141483573833802946969571757395352137569050535842331349296732911856470102597287373222779130117118721729337418964055726124319188029027506628411489378442505466677109607629448056988223210381605606294825716148170834325252864318699915697216166101180524327582840824597375339749940742828181204065150247994265836928966581414986339204844300781326560339686267899440768321013749620008931619233289808741725086384950574214730813207731143275610868023839943688107372066023186026016380189737943482240524807360547563558342127068466790757014368448414228285603598977361359969783706441389781858081411087159759038523742136314205030265065292969202839678291000023045015683830546182510265973337686567206943459118010728524457254624828265670916018025454258900388985936344290178424188069306310557029913301079228027759325458585298386215721516899177118845195921790911781095965706233801697141406953483268509869649264654716481252281900091821100608518833277195375913198531609564991435015672282354321471734621853665405003262106128650769693232338796800979779429588197896857935798857660794278795238229079475907973099454430888546325780906993082789281561591360429455015044092761817664254213434558637901393640209255201286329508270743882862394344411221260399975589341189193230984575652282338233381830101273390448524266229837553638181227246500125912919663153723001952423723858727976694581101158710275242500620102544065011055708625882444993130336141816008222624021428946386881729499201531845488806368381559532095629221362319986267240454771978790971754912169929953649930945793244569766951678428400933486944477157272766623034078986854864255595837054035848097253195725165403060603019707130683702360262366500553301670573603495497205473120449444089620393442184402403943164728963927159808276517495673433582565030309295502223969147283555505475878278437892668161440351365237172708602643652882500255983381700793613058134777716282889537193663962489995234313273695002709706986192948775925631264421973018008597393527475076987272517414523675409720202018776374583978444382574219771846550805794359813784646600157778239555962472258142050642236670513311267096035097748185963280041695068775631752775736011646269263576308718813009487399560873042058449445370588341652697729973154644670409640516819876721455971075953026293587681426122260797960479036492495287595343790244587037069023183359357946293484608052119150770324805717212479376794909032142171469381427783209283997011859055487376344199001858878163438390221091437210473063959412621241848457488870901243780325410356456042851157735056898120307456492931952778780077161667781538821041737157148643169876593681638155132290685358215335746186450808494799033874382144539740475330176709194212854774094083500357386849160986901784990111286896144097091620742421871657762414200602430963994514676018655494853668831012148121401778715451837994305029386287309640072058439848764373869371557954260394025167119645582340899539342999989153422455016414689677252045010311770435694061182675662391334590815696991556106350789691674290710355143118976695101115564202255382914831827831522171290234440244037607146877690057269305457365201791910009223369417276283889372720386228673915404983623028603657421997126470467498712967318748270413004055598143726750775739550999383990280601834913350912539295538393852929047637517651550654891190396631330975176409152978608499574951847310573321773364359067224765274175516400197895337188297764093897574492961739835129626938369693709759716028963200671479513786205766762994173299663559753936077259033878613614862831511738313158147444944884144739811592032037259500160443802983315603284732798293436362056301473437379229076836570366515937181881427398577016130576567618277111096409569680274667499962722808521933401396801498781391700748839523519039922295771318794224291687442680609423126195636200958109634049303524222780642043444808391645141633760270182692114327536743027927554251634195839899232330398832348359549333842876718164451857069219719800270520566635137827737838703024392690570765590014258895420388910517283683973169648852740030888380393874602956572809228945636588143719530683257263917484004540764820161457396498297639680861761797373278218293839375835173512857461101663796006728101549663723565370850755156594264793888800754956637167759885999772434688368697979588964451415423050271551866628882194976212391781103835086694179227940817861226563160129637905063117822500212968345116714989155194489386570895590487860321440508308243940981789201714384953446913164409322220370028303472958765349215195657589865299750010378171747239472680939702479777458386717446541342686566976293359678810495732351674775860369145445661066775524643268876595441318279505586825987346844803676580878550099131972022770995805126886672904734198891758051591770765414623064607816268661795277849639201925975831613636177431454885436730634630116432424964359143018072396779397595263174951319733097871486402594967436720077574265998008945241096968179164139324465755484869318389399706946429784690228802185418080047995933201520803369245268113963617172679699073458247055639270035065456533863960843363235642790620999030586673311473620043957497506070316867082427959118271633137611234257973681135734413751756635213939883152475011324367887299484968608337774676449347835012497823735727560205137244624550626119321269415695740038273522541466942943779253357577652887390715441791124357656865384786583836352569620279943692213620067244945123884203489818102896084600482732821321573918605158861361083707596994483301495494512974046675300774444809430813374034252549533699516076316124815815302239287663803710003290421744365365393407519126647216476073489554277113803434469245015762225699937149675974520075506353880115868331586656551780239435179560251926909798955318568464880785410983912842887567961046607505723342960897890695051183703462241151392252329586613429928736979787843192510820002508753078275967829002132068546336787202180597201263603965884485345580322313632288531335221771605441373940952439872284693409047964437386114095753602236732644269185451124716055569467902418277912438684375376334094337382056671264404265518730959807501488799449125820956720644906890884422846941876752226515309754873204214518647512506053460924611523444504654242642843094195232084924717543422509840911538151692195080414330705655908599221290119376048639860902594231787918236599297609021199447351656215819906495931652920707191002240750084914342987883290001933463320034424363711100718724051173906590803817640767602302505577780845755158711668591774138333305952325794855268078238061758955943159357041212255785941768126076467290543866282940842946663984221604681985245679643724604167152309645741061121633619034349498081092099336208963682618680658901365173724575058683441229586900276459209303442391798573201249288937600882228189650979172108287182431820765483397874446819237820909875480557106019928397265910089576350121688939604570488867639925448171765983544605643218392777486753734228917231643926524201559919727807074699739620588641576825457235396273706012556432155734592820199172801334943924164596355532144807234451384604836045543540296172592408065398127442837203718906932614104569110128660684025960211940087387816536639801829963128535073890801129232547789144844941043564972897338893707359993395053812076215439575305924107995948869156944516535130356809350030818074226408219558321781580415499537571564992762970715243118063921501881350532066327996840368475488550767265900541366384365029190225466898832028611771612969872016104860943354260823008175938745301119862102453169992725726893252915058047066731780669956389135988647874557255424534446383545614562630905504194379775417808098659556377594151089022320087637988432336679522613353149834011450037707603815270112664465227916849064681995731769824527435579594024363296350602874627501441704142948194617540896607853037526188458072493816004269110554707092732083626655296400216022672923622762948217682330512076792419012294663719360405120948137359430893799950280843025810320895777870207822871737995222164029621157896218106851551992807078191249800784459494847049086335960648038967023490599045354940806556271072814912108155985196830426716312931722144323299988228606437190092792693655422450315828808315514189522594486832929911855933798723597718906694037623802844427531551248602544958188721690108708488509635070777299869396222794995329149245542031610388483770089450236263901414599620067131618822639968245601227413808011462884978046638810624528491587437517377851275839867873512943592404011475552595596602808755063360136570053032556609271453053028347059269692843235706576355067206184956977911757503772314956975724708484089605964392588424576206333375547058607428133113722466501140699946465668765561233493692041636900102877416645954034492416691465880919140495908593931368543071491696017745275756716947670957390098726312344811718743060251370074657183885861900288227234129398419581536970682006098733737002340786278964913139577787888440623519133264190942905996563754236135916461380541264315857275188845195284583305859931457933736909157536996399418403862501126400183511142790564897511413722201849461037146972673781222353289670780086312137588766581983203316011923958096339307839140198870860906476171669660253423644570608438585555262456777169978766906030619584812105629851422571954606784533569755132650322751562839627635901533030834789640849832135873147232543083299415074600734157874485151901104914953294784180549522822539239536074473390749965026822554253420927924151692785033011391793924934088164225390539808091897920414007759109482611725689346680254685610260000637313349883974643778958924540217113362946797856297251204946123254740512520779830958221188155070372560833856614895849749663954514776587067915301996239510482937237349898426800408488718496938211357989359149722190967621964359410823867860284830648465906761945604132940255428661789529892867521488873921168450219832300658106026625625437606922762638418102498113649129458395388433536255893000677239972150318608963431186143003665190720720265886597857764988350254148674362058419856271140789656651046134487808691857583779512038624350367483253847831882190539865039702465406345731606037444417016911835392047212382883371956112036254004984058284975007099099808438645573136368887752663732590279742571673709927700362947558806800469588982583270977491396792863653522264388539581960079335138664585485885441179317032256286008207978453331818855629031993187778169224947466501785800338077480615450354530943890451682019742730339722192733348808346345172582422994830275612756856016769276613575331590640959477552149121874361045328286545372924997804841871438677033284740989820131839024285668531318293695152921662991718768310919506867212644257568469268562086679724614837360658209098281253287628085139601555470149559423380570574573479126887000715875589578627649464679625339197247073797220248496966136977616190217393332789916802364119568875423358538636881740294713034760669200345757730460296905744994011497290873523448073783034659039477264630160007819959504789855884422632537747711710148632018612704385260048988373894929363351927142325113038424362806451885477990705506361931996875246424690734920243462828204672680042246802803305638712434235096382238755026841607614306540793079993571164729545657348825180497904390942077806418381763055090094483490306694960128566412720439037381827997516268544730459359682141720507218696504580260922840996576227967139101744013467635159050828336205544654031115734603938872095811022123974827593195497449099454761365646702434800592728885435157293900828026768889827389912836733121684515973453001450024546603620770851996404040096278757575922725385376907317706499146548872750602937346623959739954944866403184484508940976293970253616133761336955340960200247342512582495726488746678726480525182838141085994200707094360241249898074802307771471946025220615123573384438023990828840269370772302343148261385197535840906748469055345300921138172781240109388820190952430360631379741053471313188835877398904474346752074759887376022551385989963217490177745737767268279682086265283917199944735441114104172234193333088859919750639889852073239813708371356495041964351597572669838933043010778787297262526686835988207291991681904571068584151575694570046082300033093090252504538571796138324404276653650131727710405364213835531729990133999227062758700083440097880879507169745920174117656568227862231719278828451702182343919784171743790167876964630374300353127555080102465230444365651894644863372525729232143765006110174924300636063216117117716477842508255708747520495909254644092552889199305163820084282170628123344715425840199104956257380828828861506202387085391729031832937284749616211751832203756520405195943175319058108083583390293461653231389087874585112872728944431111191034342802638325949478265908837190128072735498592301173254272182860524964090578205181872769491678959804150174724578430654083411510967361515415914411880036277277077033432583955803151072569185983970704100709290508516105425031491792347133704094486512622034081242761338897730835187116771335578740195396708100105993071013725348560347863265632641177694610369177766624675156300007304719646847785516615468883258511946261080655983567034122328435186323233761487650124783190768079034908675045393667267118124669927326028656395850785714822616486080548533528804667641932813486027773810346459124949960129588664589890794959522926503442649525267210158391673210190991290363906050932987663545369035157437300462613847123912553390098492597285669925721021164136743823648847365211670093659136053048541349589293451590024147780240910690746073595636941332292434784708926353398010529976513991795300727212940924610059188677401688438140129734604173907348287818850772328562302304793294766156120015820936243185404237887326615055245416044244590847797220023136165573338946660416649761948789091264785335133721572502926177419795113817417632177403778434485623810106866701290223119509439573313416253818688687078640451119789469262419286545346352186822330768092671960042356136431029682317252559541065004793356078371680758729913083161571023531477046260637704331921048529645768658420930033147339734214310734564613947988444464261914545262380344842586753336728573917996951165497228254200482882018379002558344621791324244907824846107310368479903675933075155087902170668614447145692659158942416617278255074734560331886187881277095530484739853589307949798296397649894211289518984604453336925020893678245660179285095716280752142087630073586466958706301219216879421657581387355557872018329639803043709958661236088581147455435299316784726270740718826212883429007896922504743402893502296538063226474538204282498570387916095395757788041147858422425757541253504362646723054014086118314977536495268072878760782361713560620228454626973786855016453184965579846308594302692967944110667414428982262274942585001894528294933332736261344962471238505888065187264120611709412530885017453102657139977294472239402368584343598667923487551330184634316072201657144219499791913952607073383775923257676189742340612606068020061091361338894699257551741572011065791126422781852689786446575636085530482323318356693408789131878295461799350447602526793836916485985437361555669755495922890551356283072170308896235989695515146125178934527797321579170112720206275997957416642304165469180771320702296667247436067315492191333049554931575804416062825421658545617008987162756731325540186269695282350660356391731198851200166229598034779890152802010789639190905035117098931513178031113814011212177208877273454773704010600428299932213985754277307936852780456268624352587234593387514917798986613389887408545510686658579514146955347568084342562068606870878584122690353248154666068425018258068132661782518523163157498288429579839263833444452127136274324895645064422357117176339221441627334632422338316382238828246896812050370751553453687600318468419308694481547590628326998424594828964636309746102548046257761839558100830113953133309930621997628598092106670292441069661747837603539153703546763527259372332598676916458765548618528358521359042957606973287640007492366585566051940566239123692243360348419680396476477227906052137828730266757191541186235298326318866988207350500311363214358578842652766734577180889052940314563439443855652553393655029160969597311001232068844947938798408079298145789786443522864684733285500842803510158719673559195189473206924284665615456005850901971122364272132270236347318143841687590346917865309530644215138337872464972235114622749752319112122750979282378661500681773688969173453914108668413564382857229163907931852154241739111930257047749819903119470479453012736503482284279481261501024222506609889042947687133486512039794196365598137724703113052006767257813006784965605954933269322393855246253349024760750682576067311205905509929576574402328375690629038327956554696867442664856912307383158625736862022565432069787158988452877710184178101181380500772484408210650528920952198602396559084436390087358374870249950140468541320322979889630699999194732930253829328530231413551728252316748226596106683458596289128178429261609878804074269946434634654674064438483188909826558021062319941300229336659781333962124775017794634425173639495498249532333305349573539346462014195137869156897040781763843877043817821490533541172406537074301425766191996746722735935515010283765925465356740058847147586099961520191229450163135527465713393286771197085024955128554593465297949900784331727057025550262270531841557874094565298142429240978524900367487254909531718290978341763084675396910209794197159945821915907620521597723320460693248594691700844081606587906671247925466701493724732818008976888704815533198610099236765378477201773917331790513194782967869237294196328659817664536296932987083518927003888440462431839202107136205240722623247222373843754768412319341429939160825305061471959130162914159830941050290396570137609975845375084207799149593966300424563496857991090606151903326022681248311919462286247183242285820752133573133377913700264821245518482953875949039408635211019075791394486615012772152501061857541413922565282302068919984910389088149726265807560775235127552044068826540811407638708877099041771610779590056174001925571612363903676762170533145092169003019020384294083027203019503939149512416445385404899196895212367584848902873125808347495639035154460874798483330119708928375349446475363915716990965535413842117316629529111969857783599480495979280594906958022838093633272818912096379781543369790590770001343551728740120095610194821669326579871233810556839029295439341705134070515533321202090899275253436210983480215699106455237236334926895090243250407981157945227981616243453112979654844252932040463896656029475699163777811721731204828852486637020651328780435099006272935304711477796368995049241836703852622165940002806746902801425306253209642498327841191455577633011398125221209024591893289672077710449019965988109965259847652587649067200232781105935899808710595130890160766291285181767567880798126243750527005137271909734063275766582669280435428301059704773751382510613008925928488756809533596657488659606197176696494626833403306212685212102742854646136211879373957488191372786258183077253992614514304376497696324239493116456065335680568111662539810667303776418513015960407707521931391823842763869112666246466845485887053710406297739577837776735356358039270025079798845333110478732737832310046260720456398580562026124701721489149640309835324930578098118686577152266163732474175010070509074735492968412408499262076641867255340913170608467073837805317176876750510561350818136187214158000396421194484274368148356214837617445161724855620506371642483331789058826747354731639938822702592796561123754425082428413806581612599059513721510731149138489764912148935510141524237785249829303675793381981534914469587556400199240880004488303808245897431717477085204299273971806270799195726465849241310892334587224832965588705639603972594834173199508046401908636136474466733729420599391958658400323096598636909470293867749333744949398580035387558250477902772575628905012927465421602756925174401529904323430599081094887180183215942094668737764539671201131883749072598205340238137825221314707045685241892467639969436675889904571383855425694938466508099891553971440000566068066768656596069168337455203403279796370124549676991482973440772237707275394577596566111979034737215083817349670225760002061948643163249865917060573398181453298165602045668583612818572274646887993973499711277227972497597283456598176065847568677998654422841005470607109305279798477125823545462039231275296471409545270080593432836213157838160249900945040883533002531246916185964773305857391066211510932661024113429312618496110595743192581794025814730055741739699109289839134992375786340509938218617588960159102559320338493305610253189063159209246373982288736187330817376470143008104118755591351952048024672526128946909246070896906393807387300011445928424584370996830208806705684879692745558894068941752245371206458207835193014265301501805451607107028610349215754242510603882506694698750610541835300871012363713152661992480224687230442619723968441153572645877637446101557934107192351656662402027025556055308207341167309201264682620717870901563081862325335055610188568897386557494100239960115078192358978176790392077828828091796226111719737300048711209521289690282241637450033408206339948804032931507334917321227123824954795212700947595296388925380560878423015936152744081276243929399936865124646294813223362717167463580496858475103295024488403465887146847122642518632396963876977099473128795116231408862181306403739587813233750795955945205555421792576555645550527820954191358582905492324367367604281944128623886414053132471800509445795909488556528160315771762716664880376559256325238304051188733598062112746885707965651049025796970680989046382074419437708309364261314015711044186979575102076883994535373859547481511817308011536155783605801606011764938106922743465352677969122050951252306870817023806327565743007811171862328563883154202633020172854272613803246819626502868981565453418261312785198532003405186072891109661046512622433863435338395427395852188397274440403537375698951178357589083815854338241255367982105714061137244980164932255211655077367615375622001990075460408705475408306393110728491983033381233242095507442043476657787019684362312078275122414266373385711234930503414914756805529484205246733260891767621428489449910859665659052365236000656633329727718957280718647136623399889543735316602473585765636391117697712955757146842480237570907272059831121009749546223659500082760226211190493849080925428199745986815498233009830597625095683825143422297920094106233317039344795110886703931028317253097702594934281173222302390065090676874762224923531621199123972467850099063507918634310252046674540189074942360861648994313429223409109972298666154368142977936268216210528478004015133731321122387261033327330294474306930111705438077673973697888419788472695944251402705733402275369827530028625484253941230682476199126288495235661215464635590867634546060167059241881632063995390887795098610175649089700821896842219357161923816909838932577058440482955998310292264844621186500937593676636308810880207112853478623089863481617518230290776493410856675752210183677735119241408762678399372224585573397702690310298894885875792550502311807171889030125380430111661497926882256414328237840822354487778246717425359414078335882608590033284105762044591709068995486948255039794170381531359877105677053309214401394632571151427502134154157106199494439307123848964916380684933082116955785225666108552723925168836371585667892804721257520695468265343432857074036162987475946960206366508723980368739506621407448029678990176194127705514275562665911889851249892916052373955287716988028087401758255868347207134916857106270959020222220965070392631114578817020542748386462707292657357859709900250802144857765676839806888952776635208993813774923249230216032942736031069980409979180529173718824245282321027777946158546419395300688217181747524347814570885005234579561366974589627754571817597760260246526364566582881790965879765557804730089910533499552022290890981146566843722419589135305738164694821063753870941601428006426334579105645578237928104614132562895014228569579041965887016198741431261707678350254908781985220812071033283967986698484927545727380984737543187435958229318853487677953285229069775813373252252768131352631580331513112199162541052795508568202534886073616439793195857928172887652892223056352905590332152412306217064711786420291689160101207052049279277076599880648999708251068937221502640460919459242118904313805480941630210213991787057471710745631636458100345712889849081423430433488445341284925412003882610269313729018722207202019546715091430154750611823212715575039960456003946394682989311434537600282047225395087245000405249187899259853102053123184265143609686600611280943845271762190211177156266809043964085812497993212794482439853192490803208152717145566490900874420052959103951026579646852822302477810554094197161207019292436794134302824862028640757417152769680756296986730041426140459170575581064436373950737717752859695727075123584405724584878234934123419455850283841880777743041064737611198593359144176501897744251159721276535246621793013226240002292401292164713340952349307738929047542608503590530401841155189643196267463240215142141896315609952722195999533269120650577526884493382875904930217518676519340965378859807012572588549860959989725563229774845428565207171356627935491552429680652251898113786330103276935572980701830313725401367807821659083573215862500411177922823320653599357146346586925425892163873555349601616073510670365823348459961424855573880591565353133113705377679722984372429436762945300331252346140935053432031542426837807401319080607729865482040981376845893732011977445040168949815183141750735890412111342018877573859442115518688603320379881621515491879326332541643365815105052540730840320693078513263482200020917923052144474364153085592461049446773894797758464104590210172038287770706503167083204691512318860419929678411422779938647537141274410823783161801657228174876862928738813876028394189605956154688175458862576015099326215224306092082762082363123200478698421404408237176163685538975757080876786598138722664000368716944969126844391714344295004815491662916708603148611253484814842052480556193650956381365665075429758023543448084346648777190300851533434600379041569040409785541146412878891286105862365968039104437481817808392376735076379715162400864411511219841696387074675081910318076332784196312616369616445859392627437617077734789667904377669301396822015564663458781962339144689955917668268694200197332772314160026305387076801937872061241838526840014200705923327176018747847594855438195965716491024910690960073156426626162339042111329077784663165541989143738056098213397728785718132762944633850363628634839338377790797161873122360606886462689843340243392287671144320472752387185795421503881950904387010866191892878376115886346212808041125020286444853960054204604909803426169937786212073721370542984151742534334725261145077206935421497430579283087441508131882143944757973048593501861236258061123990077848598784519158384934536536628039612734900673312762592084421841275613463625770506224115442533006375139433138516222281743603825416149400723944769978230719847538888854680323320151534167779574809521222613541390472422460597589370878963118334570499709976242731529850559382739475924220874778774924737338132674033812294657049736313036407816697152405537424060997859603162101266647126713165599675152345038604663176027647386786843983822796467533247853019669932007944977001255006317969842482769102219147347324903269661835262272870232530134790102894786753706433879881693738845345883406043999005209350118755635171372980097237337181047832646860752201757562149134268396615731604044066270161865819912543576805255162504881237718550225912328438900581666219406546082128355509851621418903392643927384200368587226705685401793814246502015354598481303124603010110177916286728433639993039622269689958845111479487959251937485802660270793109509139672264295498011440718469065499388297248930414389745913364818468248883398101328882009608610240210444745129340473191657906400454938474160561852876214108903079162972108916726147053502885799174925434629470124395578998446877179176692890870320166298188870906385325290331249595437597898076016236824078062870477713748170784428327371856741055096957985989591091636797578339805880346512345405373471740688204331899842092683026960084147125513248501051470207977299335237580718604014454755119623462932365479706486124706879181902233419381832276892060124624930673004491217817504679755644353584896702962129629668761199873868434176356924962986245780334425181441329291786353446745171070937297279260221622993125306974714896334533098757915106140518833846016127283568339820452663635571904795773514041058015368545259491280105343256302559279638256835575516358972179171290486272599702002222615225350074945718391386940468934698971879796192620981766329494574955073395305809792788444627751872201905230008390399039330637330109114767828110189469947613183608631725597876461696044175996290900950994410185188607579228459675312228248232773081555035915805839652755112633816483173076509002969856969399276631788830334658141537466650231185883263657068830214373261261920100199061686132499328560305813076234143737058372171262937236607239355253751057754440094965510894957959512257803576673387773867348686212230223127832575122818849604433706068472682508627012439586593391526602593508919437909104382029489936330165193517765340973490119119027440521001518047430098033136416303838372953208991279978206705373717197163181469341666243455523632863819720607340809663329877078444102645193658343554045231308831292224815475839295664887328436020491743985531754543468925130876845677187649408555850775390615527957081376824910662046531242282841760528653666657771182198117266499604772648263811819739336180672423961040713352977297430617398637514803710727363630147662173225854960637219273560000858466062039598922102912984083709497303876747739480536887459832767534664232048585656165608165493106695008577189613282400966334855931201776862224771166036303096170355868024955914661479203943883529290302972856394367905117201850984264334381016042945726149373757865661374459692572281176509168378037892145873286639903270735620959691970997010322127130508171527432685346683735081491798900960852294961961864288923958535808611090231241585432257386104094085699061971684221474347315698946435692499419577036785408136967831496576844278426904064738466671136101224334320680080338386998249087853261676663300752026429733270989718717778395171119624511964202669011594216669004433823258729923203244180695098678032432716359458358736746822671683074055190286094648195640744091809578978887236322706554185410411180499116520880771720618239581055442349995754322933316170803731146611888183623297120970923743245233794930196736000583298061292990291296973262695375995862014307848932370638770176715831977860425916219587400602450206067275134377625387392354754225573674452997278183502170337962329376507524055680681392915994039521713145495991932899397197574687715367862501721628608707101384316481641863078596806659190470248822557464096777906536112150878623121660356914442496861184036464328992806479546824855955643729747428053736165351880073150740440211574782089289170437041039302355669452687489601956724011824640032406742135119633225172224821776913033795086520709583004490699424902223193926200126887938005682499760799865392803935751833624989679492215350179742271969902875268920838517563082513623686245399786157302271426147973093503005933303597475372416166185249717456465345129898824782684264810529487632054115351721323907057374301806834573975543226725854186589233178336419606528011076811024116583279478441250737220744267653605534649920637147978977115784531450296687019520366434605710482964672932767244310715499484913930167374269190188909364932276228260288165382621925886123605289181875784589469678655024428185169980460510425251321561420356223961623700866947333778908155784453370536033696081365578670856537575399196584205193843471234120507295918399352493575401246984035038246733319664687772984107475429675432848233776420003125623676070652005879741492366428838355803204317593301871270811923576202380275241539265413562097464657034462608063027913522336266690907069428406705061535894497685557280088421770568343075860111227670492310940834030191864334683313962557064420633042332014846105033879063446841659085743707643199115288497915155232017086689269233659491541336019678985388738551170423028473007045826860436392871029033343390980259877674554038853456485942415593286876176538635037818402604714966583068731643708724888021004709607908834091671620425198953859270528284817826259519582284748821068070098993450814706977401680635346665590166380779970045383406818126969995957810328125513575586042341585289887254714894117475619347700244076247128580731839643904530320586541905746382135250183771509430128427795502716414845304641849033448349008921178669511505675422521450749070311332818055178082292990473155137762041321541158933659190314969480260059269716695506726623053133168475583092270094986075300079823433280546911167473124735788793230469226203004880896780456604281777191755168824177224866748342847993168979535385640882750197358003659108204725891073757737056250592912960476551837739966790520497001381470948261513191182888814235019861170621407360613005514072515297922249918195206409730964769697475673520307253808783053628717364796886506713021999338810050848039725755910197915872772326069794879044572323487592748844098820885433177599404314144989254720228246041971432434485272073927851282757331748695065054270126306652547876885069667361985994517148237882552747931380704601815437895275283840609960313012290024924805524720975381880148954651620888876007691675875723678241581920739254461666279494853650648098683817110923927054058162315192722302635335156990999677652643025763578551201850248877216299739056240356537623185618961351409985959201253239234458660269222715995721381179087025024688113335830033766422892956591037124334169480929945921222756615387199711218031248258607737093054196597900183550462863737688598734849939416669518753584162195411306605471890652241535708410314285648250914260644881979266864841367741764951652903072441498852050632376365691352822445527398248645649718878173759739287190072683091725087779255041016111787144429951617538795871464931979472356826663774274446332132043078697370823056547966213650721845390285756787354786944583674774185129024663130807990592465345685062377061010116775771107596069956457474859636384982688937807635098569190141484961956024879931278801518186041742076756410792805208320233991088850199980241306065972115982498543578090893924819228001021543327516442876707148711344814706261245878633792372600438225769340335999551007098888693924428473566232233454530458715775736695982879315387854338785623935644239331060594900529234408968747342975046568537629377106999286129420640010600089078933166850760556098547901665277851901254145596463696087591881383386217121687804749066322793126298607997075473959639396701948391329043066097713119881054303849801078638059407151067502964105458094437000162880900771485381006171381723954401487424091071649471147743822093407243396993461710120380903689021787201105504581411911639890257110641354913945019361428539405654634514514494684779934969605167028734279670198411405366276056338038439081497223105203803707049833378803372935202579509581178719274448039681921829815996615125856739744460532819625544933629113218327647895560967733002021105857736070167891779919587128124913983968839811166976312811480522716751907750701927351697043956052917081103220644174343587152508548118424175350781191771041396324313996249866235710946495115329273721210195096743657546895197098341528272557913834420829028197324150931935182232253035552731501956735794155311657189101345538110264361028748888398610067624572615020105703232811232063743773025407767626639032550730348795169176302015337935947934499453483601375672337871428760501842101443857114292200318308938777101421677672039997739039927642713596641693700402067002078624384790762737569998303608622945373680519213303269088502702513547445497619783014834070313628503096082370757686454526245865147344909037433569894432955185396288996383952830514060662103171947361295580203905577225974278449760351850529737024899997835525233983807264089252837597660158539629470418369701358074579634942741312512838682318041495408573175340070202849540824816686068105728159685661893322706839027477342607126904220468321267808044892212953001149075375933003486360233986825894693640396078113957663242192730636158062552693279294291189515525902521586262273000988230674899693665979897396175990237189310567304980451392967085957251659800096919295166209147752428704936375561825912413247003389950826893962426375805157422050866485267048391955282014215782466987165960337091450807646714239073541435119596936487214019139680380376745334782284487012455665718701610696362823354819485630993248745945061046309472059926682739866976234409031269840042934695533028900392751286318262927250081389532839437869060339770133670791346774514790353327075616738748820979760876458871710824660657329829794652146314016098764522327645791867025526565985534617286789026639798717096943917229800392926043647280035664719289164496571081549678636764049206218781695717131059213926722050559405397570081579589844557487555180787457788318553012719000122909499138012349577233413409614255998681776716558813478052411716983874320280475904067001057693806244998117090191011756960387541879104006861707181935933047053433512723947068549240127075028211473902802367533208838146169579982407752038263141878759711657890902060683203721351598765613757783299240517403149548155820702912571744497939793085210097584742189757323278351803424709103780686002720147537749391388002639167598530648478984115024167354894638257383693275950129420893607208818348604917188307795725551615786259446055366085801776771486770088308924055532842248963800081723183844232512188875733684380177598943595139933826805079020569672993807146333924137750366058360749532908732868985155240872069059934739511064729125704947531598546056110485360758581519869655885919592294011351144988770509518356360230154500910717403445434291666841393766025711058491435062791120769776489956616640475809168306237138995763023843970757770070901047183901820688671467553859247665850004829963571395164823324888222883026297961013411547012991820713863664212813819202953369998936744954382854610153513786291896780658730797374209027542501004556065003387395149731766510447264437417694386928632485018370874688074848027922043872863865573618046351016905246671100610253083048930244516355105713696212771772125912991168420624962411546394150397810361887094196525450560762477348494703014338080899942304170384388808034336242257187030979052343563491862462190449310447696619688049076538203796504268620800599577159763046586853115114602244593942775508014705701524868815974988100119121305852206424962642057167415171097890171394982182914874931468819681424741182114609489627681449252122061709580142171079444591327303518182081935725241328254642746623428652381446123538089754985581190840351170831854796282591633561750485405357507326713027996543753851351355574415140424803424180736082438850967869353463234945426085614720658956299857677990877209252252098926458025721440336640524370297741269076838270818701995687084886533255324474314229685869596893040294122326895052696302134999206445108385126679269267193137391755510370034125970491964468447361688769291994409746195471760988665524243387962889453766101229107801289568603214255906659732069555404619036301331066175998232570442930782481175238437423976511692885205908370124116805298213731485098996637625349504443644980348246063101643336176146629303349287040609973612504211066489907077843565186315040184521946940998831139113411596308442548479828326947448184331544956484163516003362839592085423415872510933307994240244347953944791766088568604429833220215484630120552035417646519333290255315857545420356899269100667070106001072493649094237722669728731245203625631023553161382112421007862273746152573764415111560535187831515368474566864200817096250240405231328439721014763104620190625339246159478737032852265064239634729110140700889964553183425334609354522033686980982149415718886595017995799723001215565130899697382811518180767791410815591387315744356803603843337019696115078575936806806382496091288391299061285067247234971835060330513397562162649569189116899013515352784629763879640272827688530236485286629606246249643820212225419922212454238669266235598559748011841297538455367441455142017090652759127682076344311777473535255692173203292151053356914635099733635928529671963385523720855288909965258703856590535780294621683249838247317384536940412380176965066416588368520206152742479946567986790554187111770259035041948183702835496699705842986293600510614066020399025764156716898318983272087383178333830364954469201971203866168000864993043836398360540909748739866339144180046515036691101289448791587545186008614634374708880680868653436549659419996685860313134771471164987860092744872516211803734791589186053983472406349042063446743165677818642287447479597660836620581260233252643541675681216249554379854885916353187688259635765281110859809482246899994128914276194406164235014992928684544557091132917657886834422791786246587769642889710841715526134186701597935766090809563089080926077161499632297403130448141721099948305288456803130271411094655689965779526668154373630575496927318305831351478959526777714546517022667885389711746154586866478415680184982234666823912543630417815138706474873461320047585606408544193835429349106059428644727043784704856365595638702031786289578859324327752481902207343844644262085592891529661469192870318623295272115550210855569543164328577019599180861904046667806945675361681168856963025067343814778647887465781483214288554875724535586517560011826174449015487605695227596337058614750937452335206500863223014581182411784615820203813957580366151886286682106508346951603309879934286720130841510057834741220188407328240456207607199438942761019578282148540087641906111420973230279683668001963106447262877962168357731012275900934644040870696633091940880683270170762600949184576026607137288280051477063606245999640730572353307766493609221590525139952722197469449094667329450028183747829193326456641667837543342203885263571785878868494971919843645604030631530018423237617402440989575372840800856694445008418350765860270717350353676742267539225733067980082158822354208420949896372365650846804972692350982083459569912773349942668366905580553665999814474412954776262845412729643176393472907339573853883292580268207078598252252547997277027420336001452817127356479057843929393721874264468678164702562993454867349518110787747614671270445559205785031040296288059232713219585282871251463880950872444324974019433465322361639040309695557668100516759413449134860578579572998864879853594050315815639677286115988328955680600177052828549886838597994670207454519358760285331211978903830643429910891544281300518527668327203453920754747592065931716348591284630061880074861064955056597285960573074378651480374024833608776199335054197141376929605762632021404330862643643173772921169282975207751574607439713584035402821110466482794176791930670736677057559079723734555771389895497062849491722146815646155520133009229388169361930065385415366974950340372222786156346816676702698927123988791146136301374415904785070905739894107766193424519465453047986586266194852972283840574151760780815467647112281938016619128095808072800656984264805422293036997293582704034055292454847418104493368190487790580307596822526691106471806516736296270787162926337220060282510540795438219627647708562236946794419317584454565326634716568683931145834251310406092124360782796238615680929422235687179593041366027333101471428424409409031176062305050642779473884020389423247242582528959210473032442238330659133423235936442758604022742723474378947582358269310288708322655826935900713021165592275307334538631845121501315012083485352675935440969670452243414630885701133300768372191597217003271026828024604865841102151237039596777629757910272042563203988573782613489255412402246281611471284177341874699571369393471296730373635486779861177292176521864221409575744904178713422626510857769953574960362151412053673834452228936464297505763351997084956290600766515286760270011010266290985696877721618078040544554152451471306176845836311793292222707282597191947434720596081173867275630298831978953540711598554274906645456289347810292690857034445173106767790861840967443645097605225291407374091340784924185896704372403926730097935783878871064522702361428013708862481205928561828988067965466817925913999335100486801492397362699162551746930614037579755174951950467100515574319351976364604499168537511058084641553759492732980316808335250045638596997854878155718215168853866953436896004123910566559693316499718549848243136724191441626766540074520464163762307559441715218807675818077229429310497521308229272593613431163970246263300642233123662979345268108108676449930624359033312984145432220665348371503815151234865936110487702729861080374622475371326622848491742245301109857063179249080808286867520073450770624171177560400638448209688910988405844612072351835185698682235735888610850551012045991790578703426526409237437132163912408538067140210166628645760645474211745927108380868818153902253165288336514749245315826378779890205405087617352369087083255072022528984386900500177591462929828063784045591716275973233510454101925972021222453628303407893019339187857154124937212137382528295721225299330130885118032346034109871044843622756659947882343041605403753024488722300277608345175507561370652812150443394878358368936133987321933683820019914341292152856482882501371975794516973742608038049745786024508046076228986820622851016915701628723317194359133125918046841421198560797790165762418638515654344649374740658442881362526489988204933206441564556501132664383258910707219281611209418436883912073503085249026945000351176441715437495223257461962349444407166038858296288118625351117556175628306730615413458366400501814432819033802915053065855909696594308102003128800778130351576571870621034303906983425894194693268288582988016594715426344195102635951626345153512079054120515180030531915198507304299710377424004022916142429889543332154209340010817681388357655566469933641735079616470538960465674817230011329757271533409913450531860706396175188418004290631504920268078904114565374548827962103545089253053439241153167107051306958532471241908781331049617514293486603970745610182425978696932899733081681020036618023656641249639844470262967293516881855168550488206492936398194410262364603178383557932852922158508889040737171259618040615925895978645213633829848910194762203618467117135466775342496207912777586265701600993061989722696580463123806982394258174939952388586889295369514794181430147262717958638604158807269930912011429860950921888213525493560144547884177913470748337681957465792743596841975909974857053440190345067696570231727090815573048111871210890037273335630548819482484609316988716182916241969939579244926662804453162253835720149671907694789039122332210718815027072110393633582112226500416621501531912796232251540339748648051718430371983046617949609240032027690553543231914259512335962295997708710544774000828805695798592620092131796140672115294766079272291118330816937465873309368662839845850505179403546193163856214178807344329968451878960076568877382352163405724623161615226015145663997005896219088910598576938931273752017843081097858584132310128272679070313114242090997900458726922060305754238328638590296170061050427189882930907947230369021232865362579653254084679246127315994756725946589300570599116375211139696900906032781223010516703772473380198157614974625802396444348472469030311968946682654246061675339362685881272227815945310801209340580990006977801217204524243996338886888045861139654861381149955509549387047308373738103444465557691906685966968984005642648720224339461592119929097271252198997532261093240658346648630063219884140581737010721478556648965573627648898594085781805981262963987660332492491856035384587170470408709021854537518137946106183319507302578492393231335700002470821561490409166115408357228937654558108210814473353620453702821538085030664161963450431113008300391113927630976633318790954771430505148850138435111529083503947616351875292789535278675818420806996454345344245957052106465700411599626904093986146230086711723102480594175549612949435231667495669116649726996519699910350589115607441724429348845003461252751085147414005616483654123286794264051341488891459921967663824282803008940322038595132733199176831906244032353642358631993932339722265082078948484530564990280831656452567511958253979273788583646132460084254170638876188996461617680624195458603559275610940043834795546540570313255828371807016404443176396612748795180612047896475280347678758314551735717423538727788447491462312988871920038511383928148159720405052396275265126523685789438589992538908246795396046867017346799300360735408112736054062956128965841648511636825625742499690645152766961179547665318159191861029317907581125268120066862338636042792692673710215482747527821395971747761032742346865754165688959594309425633514029693427042395186047740645497531735375441567112547858181961942690431279706780738125739194298050740157953447724156680978073816427239337157448193889724307085263797014002584250961337593482125359180457721817152938748238254586593837476390144317710859488303309993505253527237089983385522805800762300657486977572149777486453734021346706586152062634345552079449943251404387323590748331545987556874850394929184120307876320074803719017660791703583339491392961685654680932899846391662565670939479481951458790248527218607439659194592554461034764303705561616702826655549528981466876954979761667812772431404841629278782639221142685412667413929445556692935146584699780953266099216582187417653990114092931824066649516781492402867822862304772745163246778211170097680666553246763314658555283824224032721902860822149497453579368505312933929950797235899427826835648580608735200790662366312483568130723360306998504790653144168729977506209518258574471333485143290265135264701229434748867361796799287299155836115638085686629247375280395686628102341363739723594308759362908092374442653358262698582826639121722982355796596169607000935797230584343681423588010085321287775652957957247495829415335094071353394715556600708040837382110109832746676362561919214005015963688262426600287307919551219089474887568819321677841565331593366211752256718954940486686286639495730434373639626676573641017568900247740163257904432513254881522113903551972731736957549881918247138023370876395464776902544065053812889961808747499548886864071189511487579236885858021753883759678589579282853327231197764025160136268843713158487248879640753602307365534234528513926424455787372405006226938082137337904995329468125800608849556657265277633944367107026075646058824572412231735868584182439320825210191934551930495213499091267104220531541016191887129332313260901523625901290208206199421055978804418370941324093492782056918706570615949187424820349099548576674007149647919925420819675818936676833857351610219199645447247999655135246274398801404518675693849884325831020062554721529389919951752171656833712380289633265501406751518825371125783778861009345642515595869900845689759669222111727200424952506699421291704682729078556126928007740749842442787662148785859128951309900223392751308836907025486229951678824951852345977586612817372273871909004331153701975881338451877352860245790932665974357639201269406939497411445342054477115710679913597249493115438303887613001005277828055633626465290645643901538598843910025993273733941070575715357581078367471968477797300908958456408005722679819954945363403384548466684668611825386773202567631266460013783054033272863941462037388198631138717996474409009042221642416678317017611013552673137976946175614847259354221306995703031683150737604590362529435254126346744696636700625596281047380980392160054904445421376229702008593362183861709299522451621861442962824454106550043381429907208563864649719054801516614968150640806925411753821470378572104058639035732731996797192268315587218691259088961213430015493940205657457389705353998914934805447740343570186081110885630947005408574243180589922927558293099367861696252166926213226727805601017790770050272206450683375717608816372012163655850143254159737767496015434847269350912053981841427503369869923115839972804811527270747000881461099304804796978020407797875617540088334275272821251309464441917002947988247469010394127457666425500576166938850929868896076890405545127175870447134880788975508512871042938625261867577568540366287322791982285266649689447198564123628276734898553050853482493377323431825405977256069237395972308907951645942003053050205544327327278175776616971094894967839049023295705491692797145580459446480455191375810153113684264298355038635667923277502437386380218398008944642954932092898197203097476805683311072221849880044863114550249125802721851492819539748750794933885136011029538899722121091910670697414497200843949052905783543002228910185813420365567201053420603417477204436236154487286007692222635688998119718488081123338136151167941832721311334318362795658250384664347240674397630932373452847202327683773767675468340703942493778978625419860926957942953856331844254171452901550978545498236511447754751890468644043543615115577622796760596877431789975612969670633656356396210489837974899932618345714378199666655519052338473273933148423164095350891445302070782933938875947578624389334095133440358706666836965057512232622851642693608784309923650276283158503531697435584758983168988555305701630450896537948068333162607727759314700951820884037542899520265115376572642646383626258352460378918648474294493440990122270759771079414168917002858027703087758422921348128627754978473634835502567718165875534436351672795184081999497929438530370565055136803491654651451465536367098886288464403394118250290024872108739145096965269321520195546122665108398580785990758805830333277822835470237474448322803197138432830110416955143903165573158868592968082828732521345100020807223658303525183487965834731210606643695307637103662366104991254480274524875979314251693694322098061202901689425470892619287296353873852475030642410664827220958093552582216908412399893773548982054591097181230291894053849605874024141502589515857420694002755100493352374973445536075052033150534384404342951310029249744463695979506793145674122882276365127557242764277314911888730635710520174626959147758767453903815460678788658940560658967279164553264952017884648505424218871835783144481226977951576260573389728572320006978304404992356868353599119901681586143580419002805034524903742367433544260220422663842590670085322575013268123449553756395037237968455171089311511946680760160656323558134436272569635043062063695905881567042104062042229673927425701136527276214691539304382198123014519507106260982887420776991703567914365573226025357608743214083596745300054720214108160765032117688072903844990265308527371537131273692873875657835720351027560196694902367330540170463234942327941332253002102024565422315831820323923289073305860827647016636101706450392225931467209599194239002937315563839510000034077104019611949644673981369157672535189977077071354677075116081508977067937251165821520906302449536581830404747459675645555026575740973387751315292986493153262379217541597287263494737819121982165646015227710122842401937127145751702899562154551245808847910214223387495192825312939865243140577926893921701817063382715186153429421201298009010509946993008016876058989811253084425524718508271953700403838465828084677656562571716807557674367727288667092679215597244027669197846908505887991584658504632662625104434853156508264065869433101644414503801227045898308308855380787793645035499789697442284174884743046294077054791524485279784050768704501729188336491974430361082559401172053968862745967830110743057709563052136901086578742877421038547213467757102785738962884731330405418353750713127749304488933833102336927285560485510145335330374814892134554887138982303925709215928863291203633055667854345593159485240764572866989585147833590780755762524663574303963431994613393125867603110844498688406374593049062995679266632543858056508187838115910683896114118342973318665529420569441703118525616970847409269063070477908141158606508687866545840313441186823121628159803271185607779231557146583794769551467814913108525679953331699126441705021703385009556403274096514251195555468709409853326704654066117384015294034113068664843864871158257774081497497051197103318812334078768078220592279771558109112579776631631428795446662030686083382771589131489357737705498590567905071501956957114689571394089205310068828596443522827346298080548290930929219885296203661148775186856928353598347418090814220350501582402958575836462216512069452528522457744134615097822807450366546252500811724634645823613454338136012486435211553937629784811331681642318613263966264299186634811912903775121673514298395959257890526157326888045640907128803838384800998843476386948903769487222296095339562581654638012463681148074030588590683399454315512854205383594773157182251590328958544272400101751584126931555016679727556177828694972973139955948226937348611205827731213235436316176299745054186228367559139353676415389065931806745248402956487114819537498141516909125495836811123152640208512151853642523588140557335214704856566055426524356302318554889203274168411283111358867547157117918840910876507465585199893322520944336130592154208112905502537365926007717014739116860395377686402883564164045145290732860071749300721936034570774873893352533580706657405402018160719881639955203798555803131795832968319415697742477996860479991441849518538330137195994134679240028254749148007873670255196863150933219159176902264886959020442541520667307456456831728461953584197837783992793656161369714611444127464065466181828588908585100436566187887068243666359956256630960992255612051223951772166040164194718793117998199915737572627898755035313757807568939614280872257572054892863466626469101867729188668418332256194238342579286832486033053066154580972752815388896176129381411515533575921524640737022517174806185221857524987297166184784542032502828163538770295600117123967894684527195307427330581631435953139556726742437858344636118288186409480528585382052951491107712280894865400873685324083241602979788169460000214344930582303411352741228467374948092962460569559361842493834392813972422414106019221866042616594121222077750864432264325707976607445675543216502867051546761993623265885840020712558615943723142155395013495117597334967964858688223072823880860947941759647684151344894989055627117921768110320344831662699200318647529905907733367281541724284117219844274299240311007075774366716541911367178111517537657454549265004451528228998313312960013676373930008741872852983977233877421070125699876691617439734504774899616450744008805367155479660103596209411788334072203781149496592302289252775399838925570606931177806332705818699227645855471524729998061986818514130884365794446200528968913586249096176886030205285938666469161776970198695358760099307859707406514128452687697377486045874126755111461542241826622178660205153392943052739247469727383368720962683039456451457805675480774745164420326150201667028587008987486052101030664215953713468828431914122467918099026302646006672262735625407493014459363372694728907254939118448818590391403963819923966853384176987989881456929138048147070018779441809854263255686780087795621445142260141761055047673746561773233302885265171674587085780379837904070642833529791561667950980098546628561832024694591815795037809123377232355163500180447866920612481016155802894820396613497836096777456834975474705351047917723730817275169780628884132674453844458352769322647209158650403049413547217928900939810410977812385487914192284876969833113567486767299910076436635384918036624185652101925614702727997399919057125485523905756030378673787927161119034645183223509435410163311306040660843833121018975196604809497848907329847313584073890655652666838953947500791483209988627647500847941402844252117289794048472672162367853439652154157974924301461793101690430728452519853483600394989587964119730258999813781736065378092839346431277144071401763732168345789922668368081981976662079759884385761431335658017005138484834895041995310836420631444501323748227620897762556428979189087648713361864342243405299640843921851126672449999024703884533632774997618003670816880679902874152019933293607938500674352742256746656842167275454068491819394885469673875385009805578646199744057642606436717810356180630020636839364760652927496124019730074936609874680491475159015152165139516858686592672449569720226824328908323392000530200787037540440781132898307978625351314790008789520867609999722348768743840035705677581331847732204158764683498874430044091295580512176912472006242461337444206859362139797984680455737881360602467044012121770574544895714616252483215275131344749141781142414362599332115065291000339181370416505493723745198781258259230891590528085242553139325840762359450016199304005062113159605365494357550601322961655881487311210377860048821514646937872865208006929908957646772324651481044686281881939525527297703104969146524031608714196975084898585140683324613025309692031629694117679294426410147174805193240895358114179048127179093089009260379348242915255745791375638957130626107283207792470445173870325241370620152469682083234171623007500587866805048220504397658943041990239054690973667902489848031597092726845290979098822864117733546443207919189745771204553766931508198462798998597375680806074794977049190093591211850291343897198677532220845280315232925666102562245171422332876360461432342837942606783971085785220540975605765528766369651361617410847609227011295802862011361656988028222959561730704182274837942653735472050204596593381668487726360571087944704465307902156671839187158969444095328686122158157793662680414639799939532680986338057137535366761344482458723185408629735543276894623393511792136254561577866757303545961258856630731058174150989282864444566297832827456265825731511364820122730251946678461605726831584762871960870588733714261669934982840250740627529971766404046141179616625810174302813218866653101407887458970048277794118608826111798517374330805346707065688312845812625784056563347195620160853498312265665001201086108093286276347113815548852744094853744694408400633801630570358583306390256842184347341861045748625149888582011070769700709733500480846505071977059340652809651194316700489388892199243360387110601233657044742814511876548541443662078988085055670127648973192450107731351180391303021233664695706825766742316615077827781282006016326159950027218449256559639701377206328423456774617639257353243062643744185599043323562815330214792979749521111088145487475026219245495683469326245126921764410213210291932924505283517990752255437204913520590116501263283265487285872211944504036403838165258969153441893002659957056045788846036550103442992703762408928405589812880296373548502997082791050770354538499128740455126648767053831857136993846024968638472532495314638971286750336591552423514231961266892564191966679872455479015183003760826589424071802546099176052630655610267130561968724563892239999768374859234474062552559997834007208876534669336709801530293110185771977839547734093631258038358356751485646371765534157703436506311466781695538825494746202555073942957272000546004182488377514235502859069749920811242681704124732770121381410236380989392843922781568933834624296403923743767169664953345675931785447717756765865998160089760240590280394971625438423328487053171012509736231347856381271992507232914016683738212753860188727668482502188852644330814904156010534424745022466804987447747953721346487487857693188479874873479311793826813129857345630359197766876017912197096473392300319092683248504457580608675590641583879913395740872949163284586393584719391680495503964567640325394150642457091143693546770567656512053096294272043323137604106235807298026687182611341482305057164881044881790425631396874217760305381345453989500559484425554271683253102802136370041573318907816349750286713050272697727732061327246093013345986551115383727547854550867174133336625039134000198767581244585367663608407362259743608365216469277414990404308984793320448442525783958610614371246233871264621039467243707515829128952826211569145353871695226997273576578002634290665729068978598888385095778004782307430670685292193812454745216042888326094881978755279079530513882354788461469334304553924296608496080849936300001826052218713870399985052723519402145546732284290947793398886351662747124284664208934988147481272803603813157495010986434048497342449600468051522241440530263220750484896418162813269399172398661200319230861420653248124022609940346071855996606684100785505792417343058770927938723952216110784883408224312780761424549209106678621068622667486957196701775733420593141309964331240317645012926862694542738821384037353943633807511190993285117913592843419620362730401706568288213504019824158179587083218845234808504325663621292634303241265983248438492632083811962002836358143726746386457484451291053421010031219622084294483524316185606102515000191674087911503280609934759877960150741915866241884541108526904428471359119694170111564140419190175281577183809567709786004757891148524955909796960808570620469662561599313180067362342268902768894618798413276494528616796239861007870469008862141895749719416663241201688161744963481175338031987454199213997351657567344247902485328454241503128879110029942885790937115505231696228313379168990523375449454918545577948343660751402231610062808731018771007072570909073454568485251612367158930820014189556156817859796525620127320155880405553769051348558595541754755552172338556882758837080198649140988805325196484606287378065686951868595811375127155989871266542470545404315243618512595401317514384521169386590753319819471650916477659285553091070620963819216348154311050973369768357243645625871668469033687291109591660114493832630224075524280199936240309914351393709153584223758803121371460313060598431787842543411557924823675714073414519040963107029538263738025544417734876085007125103916052664832341857090636231058342207254469624388115251293887689782637226498115761797745322509886405313625150798844032638029176883402395225970677864798265848594654468978959533639792280862323798402006351731345854161768691023370895061315189963737633014840996671259312411064675061947128017945791409621748400338449574255148624205402862952886632327946088448023026975571851763497844089112598334162455883089313743708449737236737515954236710576061485040510871612163934487086347831273342059406213913562987955269685985062876182110407853225213209832100115899837381001126851046490668704165465745200123830403785304161818771802640536425347760387193407757833850373503698824064856113774062167791031501556859647592420681613697690341253514393192907889946922840364758640677528685588795912922641673027255728979427562084159626935953059736987395949562046204096468073510072931130057774923986715959481555246727341986162946161740868130450291840131793820318864045957380026234779353892421647859961982186332409657198236218002100137049177519673458971238755649422942726540653651753800478950687071870662004672703836300506382493382602501665683649421216290796087929641892416583280541797896052937428119240678980897304664327591451158181644001725018884371877467983233644431378467625726192464616247399368217389973696110598792426512065838528751599162189942363954539325375915060999439377681517780329929077083653273774048957759863860565734825596833544217512037414191390682752375534706193018191901288887240875090485807807666217672917579552715234448162786846717017001336293115992458452272887133341675173113966145478874192189720572374670037922574743009996369256743323421072947187918328677127607367283149869902577250630362865435218778995192188730824157005333396743634921144243555757386519266018591073487664369875659108722907965712623269466233585822040375042177510379253430926263637232365319121312729321937406650155776239590412891504247826359488402006144901198860641326468041046775533794312157891841263075601983802848384471657047178216668303225844984930905627865762280961861595849768557295500239706925020609469489255003540748320863439669566290859621402263878738684970957106815336993851751410616868749788517988038216383490319271207079348892963082452784479623381971542457269666509648876339546520037048275048074043998290454341553679273308713726538828620047884312131520106255206478108664118401169686157051796111892016380450984622548430270076511073801261670251115312822027902185641160451416222312237890489798726805274740434211434239560197372909398533461685966681540463208397662808549184985393743973879764031391261070888196030470426367361789611737348609886393660551700241158904341348860528791173310972379363903638841575253116798643332347581284071460534591284745437725303746935098325025340710151430170730289044089168973676732269380466158309068046396688869522090655455893395046221639277327899802397203838884326052676459462595715511117135102160919602255768358623389964917890932121015470180677134236099295138928073444358774787599940633706229397666434011531287207130849279062918611212818939710361426482832351359537794021321701316334958243069644663755389779104244462104292198898516292781396280758683606301090857031429828057747299836792900786661994392250914712084786134960361756765719323511134252737212874783580209823380507134536236371871801769919107144643437503313516204598741704750461081321627717123868081949937786693135703013262779144364246058789170453397277170192353097465911275263311493915769136029134775077903143780238253662834762247001201085481647009981071349699232354598892694546403945478115136157531796089435052072416075265769632618793879482707783846487610386255481343373210710784708930100869223688003461868703165720402928399264090035065822991333347948143408122715977871906628132288053596900832284173777162830232684414460291884727765920193341823035872462567566194698651729173509643281902943492468860142329158698323913772471485799485143159618398623143671717246979246608305151953861590314420113548012789401487803935233477380022749278198395288221867661022806627381541699594011042770448205200741559537477248779424435851990314560084400674768863829168155757087944856319313810263460958475750901927691493699386241265166727025215094775219337268332042370454408985978997180085572497016981121081817265535824845876260502987861716091621629209216736148804584713947285208193351445529140675117832530004267116466954695792703292725730965391283266473892727545162141116900053404048485104743385418937054250894301839486281380959953714893652923903287831560411318416878795546334292027810440285920433339828102036748371160261313686171611639703355533344147363462223614572102642539897692904507505242818904481568775759633279169079031133922546186070621736792584982026951683611302651744767963390980793594501020333693238394914351338130442175687045028856867559266578153472169240317991831743331289928837528871720946987855055213609567749871450853328969975439748608567219348223521271967620765337148884160701576349361078104902912881514212873673786366646129292205202691542825844151665060655090706537254438233668623437660280894331930545914361425785295118575869348287690618854142856162262843488889229031792540287574941675690500015539348924595200828940569855858206249902392889680493165251579304828613462535398648185485498543543863070036202657764873979863925145211278035045265759128143554665330645897068332963423427249419520166266341300284657666375300219259719635871365986869938761565026876267609259092172483823953823168331931303994729750042188009918633457848238030403748872050238565918276360977426001324982752093593198646299743529622921502571440703782524050284128864488871720694799613521392475020661221564384401552165099679718121490167018755007159131752036999581052451022767458650110812266669262871606428674556811081459273088962242971009740446961108083156688271416555540541208294752361723803187447548691727950683411899107523086218018157330537288559053552477992127662931231220909095578742998722025114330061421108114712704264960170340733802893662347351694784426772903769085700088064635470103162464137902976776576817604143309722926081692165571236178949402631008494995639999320542340496667506285237662740402724007470815933859976658009740721188559200571985699516149479894738930928498009756312380610567477923945054849989365305156131540048469813334311990783365238242465338512396534424664495892957664576656471926611020288128279357854031331302676507337427855431093752858258878039963868954014352669389334294394481447962012150734515191824593832573795219046385834626757228963716803264647648277921614128468995815494897050172212869156439465803443515815247287860610295668062765220753898234671941905061121841979188324498079687555689261673519090993193341808158371898345340326554530184361647489949758877951591166027593473252755506269106050877742259031447256909379281338013281684546281829454082727928170854991090074188477987590035755698367547324259708411968346468863105087118948808148223110548465584474135326236030265869280375701962039931209620824120572553329569692849486589211350503891187597228014277202496992817616326963127905515457678601350313271024219072045750440786086774615145252811556118613450007278955196628318929648135443139513832895912756148865128909004523772546689559830226448317027057331350859847466970827732321854615722544554194087408941175976440833333183682536708897968136627417922746405589817729828232622121538549093289463746675956299348443944132676020154574745381060068567395109310178735609947079472044715775561892716507694775311480098665932274335925074672908102765893349171791052505276090858176271795052376015879592177195437937534874837667925628679217835630391846592361587958816044264980446018134907675843016281602881064169795787461854046595576329609677103884668288560550858442254686370425043553073888696694213690973464448362731255244272532996506968206136914441592371894258825065835470186719264278730232902502226888091689490171977815104301825434516467733522382306665908202828260241586692219288565678272286544833398717637685769525642966882291784133634244966078207344656051743991107411498249937506693029751821918035030527811064623445059957238886579033069557978879828196802208451052629997207696050649876728044743696801603246953631615614750752110183736242983357942329894784010683434255645438553606342772185643520768127145101021230400258914417216403547922780128951575512132512858054074029622651856486397408722744972533797210245907958875417516022044599743125788598056546183537257260781242209446141703514768361328741168708095162863615782946323322446438122091713926984017306970721925077513709775044971107642148607125291315676826921112666791179377259437553830144669385140507764269613137770634696053263380333655640208488340332534256288846326698687931749463336969314378533507995974854054406039944537489618644200758072911597852121844411875389305342564242623324305542856033052790749139746479916031025737772703654880261786659875895348406408686431590621884176368287972653660346870477268504711411354153618739494119207524105772991619215255465614173502143774395847646939486081527572961616126378153385707523225718983201884615538654088178402883652666008997435663428430190764652420002390810436980710650935637798057395914236233940425975867704941198502942735090582257683532967114757367866481600404813682034563096008465297470960176372716878426478302002978827268218793007235358259522181302891899862338910898342025551560781575572587625668387819791518207785266162008119516505583387033701058922734010017603414251650626290985600979654868872579932755270365496252369738750849496275019811544306639523098980387545413349224583563444373160681546049579852031298751003587128593032657120483481868976195466013873360509459612953256204434554505569321313142923618657630392782824036168686315414658455253678170653445692879240405445654650063391849229416601993826527785228164469082227819386763333892635406707115455647311869555588012094066401459654313722317046205820628262833772524807116129793724796385078869821560411742968198053816403701066695518834332010310352683824785503322838010317019409140064008107048851912427193426073285529867683133439899245281931113393355521784672114295711887472951911151522659021455617439463303769223656145455020644003132122274615903795230241751983289509133014500331742866531416581272357712669832359720381265811144509672545808609293953361489698235351388203110239821742387846049698746178797441946178837044364156316176186887074512723914639239412357253188884723426099360482148705731030984370446417839785899508647010244883428003693969823968284686276413883377964538753634436932937402672253493844197825903186679065339462641265516859040400828655461907418253664416052761982744735460212522132517940778701736740825436881685253414278335349353343612821119764795394260797469190436734272877245519404420427131944022858292517666651909584938482873125138510032260091975384409879532924691391629833850902510061939927952427055550338314829976885498838633079944256972761330166254237525194067028095201831139827254552038239780172393777615486799098911052755817879982478333141493639811604389473838148327801048923204015605510554356034087553460395824854748087846299589496895141915992247238612001761188199137498188841273024743229374549780812245036004231069257147888718412028914575562508504479190025700028834510016066098673833597920021023036996587953281560056026743828133312948539922603712908223493886996809274531626387877927779348963025015145500698790447593017663136801864783377618425244665994324078810577970783409243858500673461691161821143049372607591424346100377350584333526324438202144417538319871439347464494312220576673419585269041789721542830489363809282680506013876831352187007156018926069641967704226419617280118033821434497578513564765671644664441343964002583536976111843536555551964915018137752588897738601424466286017429893105095824849570404173376811698682546075673180003853894194457680910061593246942332937153360965599334989638030035542361430245279045153239574020628358536895533805394503195994136948877424263779010360585591248098078206788813691676680084083223742623450746784232957438865335583106303442390902468255495663688086000956894160907979940846200165624759858439664747658716896630497244635555534357728197395815566532646973253745269240627287343087077994070032117250084343133705054078919209371432276542249206340385370055128139224083565023899042554220618975953118160346106424697571584290142262930131086362644653234896835709332043923346846858914695462556671020324923855805424549279678942113737956513794809807871114574221829996211937646175378946643327755244350599479010771557801895122764043132046830472871485336507527134024402478922980437909717972985890818011222652810071490283979983404183852412306642033746779100312150519372487225958427170829785505270487931894933321853909766284253324572551964303750690548201336966099292888399434779596127608316390663584909003807211460839953187898871978493011182037263071480192231905355757521511963338193987514863432538336478334650016766755318027174897169788125271849264213956201758927552831554000984182327519832718372422961848291262903190543441730571377450603789304120912817888150072239756118128199715395573171075440506238788605394990987831542322805740090539732225423962440083790163093581199782185421796808719293788248044809581933876428134174658600860540720620233933473620458823604790540321383641312055602639942906216356005481403353100807427567160164556700400811751542816965412481764811400691026509141151254852498036587322223919983659904364423784405428085424949703903521136802075991803535672348959317376479783788092803831922826221120253546475823266663484596745858325893525084269160575263766940091648336867181240262239448394871447236764971358047006541066666306406079351374775481999469394200236515262738133434273502846236224442076287144506690527799284542002640457887090172099685073305796152963296365046204395336489232654142189066088674860180756299837517416888157984665832774477743857361389844264944640355060898831738839733530992372037730031621923140543536870897891606325843244453741614884076585626904050898521744973970065281307508631511177555320282793367466135268862401034160949660798323655739628308177261611748742173417493456688895797608586690418418604928586202601633541933450521224556592713033580796809037009432448285510708790465597828857494300866779959796892316091862134171404402146548150675284001677931306858049908352999141080778981373586642700489608972069229647745428197065290686345412540502737060957151955432755959070621180066900324680130458150596986150751637670928644053438645140359263840745182627036800725183880476278806638437413585970023612192516906249070921519287656763443338381221250090635211729378893331911132085522712087370219696861680405716231260850070595333507946862118021592814266263398083788895959482572553948536892255480206904198389349723607711745062897517100678824714555607407249835961237460145170833797574558333495151658741356214484874539659455752374209444256598949355429078407261575656744053719780630087987356211587842884457028012659634656410653047473579551143372409375944381383154999285006683071435742306955541279824508850314357778654595467806475090649522684156855548450367088358207236759083589383168597685748627089351421925479803932976203294793817929204434258936828521605735105902575028645619424721853222870012649023560412914548341981329877033502513473437392643011521352702445858993898699934358789086599809660432360624503363867160689421625013073609859004303394526733727887386408306535169770171848411763991803551023610674191575421290512895425724063860235059270998373856019667555474128415304026400951368136191475766205359815999026245557237878975547496772898889383902642099653820137305684244051285783888162035534566997338761118962484356898241431485847972356546085587959054556874569602066461104412901930942749252037807076251550767569225802246283694103385982158265754984930382593643750613947882160384657101922706911224528356124582652855170291635473470230246451021473414297702668795326202985638351560776767904712229214398192321087087613353390012333850310035659432277561487066006251272508193242238251139004862761928934097538766695422991309463820276419441490286739139571765492636132153839295321274849858051936534840170438137723638676534938364727446338575700301781762842100721268065380825717692144291382940938635328717065714579847018584234326454713923151537931662982261593507015584929346053466569737497838868367097855962833912908429659196271506559240600080287088680142435893534318538287405504491730185621867308775622126906338075957461747323837540086018089034870458558538583667006635515316474451044505457666237123012507824024827227082658644809138065248310774437724798295510229290613287671796601765368208336141827746013678300952127569027541917676989036578087643798048930723510812210947820676848910540369525522262463184488209880078510574246601780147181059429230831764291655079593727393323972867299082230122611638817422660455773904541538921786582237774280704856009481436239937555900679048498303969045295623947627782304346944125324787535635523127340391762881554119082024572220027841884841220229907627361558258185297414333912984292405126585156478672916928527694012346890887383217451467601314284162782339670671925874027071139677004749095551500260678494425746301673826253302352112411905249623225858215073368894652980094663052351878485862190315611188591806893633013784772736208547798759758262397432867832801776848644028856343863494437283305833773195016000423478538769039217451579832501372395627375868603487621574713285012730705195019816510870306155823475548242040598547523476422070731491118085204172225352225530375099076205219666099002123808348820695116704945431474188487044527058340570724814684550177514497643782435509456181137714999073699614652700076810120404905717032246025998230954430667767677859027655347644380623130043275832293268253569858257877270218766399707474719216758139671299570105371399045358802549147091238583889443484880944651595716771579435044472326212614529609755558975086235271592656782352980101124533650887163949151129644501635212319170122957157501633396886772647853474761975324783801259908041213521663498095250813395285863225640786714152126130128866373827359780434346313335687859120650879006179582976548905457816807073507316610306652817140593964223488731866308250890201245051173377097542138750793186832654815542898684557718430656421519669274543050246112721341780772605070981146578425645020631640131685051703984176376621201475165740341131224566504046892035427273120998770878497907688058033196959342434589449270888682393996452656642365727932607463700732303293379156847044606591362619722195562855420100140258916504837502619219644235381680306317110943983444700231575967925402493544463741259469034993773638303487860239608560877727674244677975413679533143416272764703734976306797937347937056879154238856957837187318057040500552252945323527994263622349177319411437150286975304557221408154217310039228015154903834479752769906957703058792104675729314100240729708865072408760279964500390145842802827366440077032840942065999194439211309516380839387064151915549746600699990823248261711482751347977865661062294365072693614164318514976367598200893646470797757451102073858782264821483255068447524335250186292077768588111920267319054614043994604687462326234580102338702790778204000518056414727804150811028594706206302478838327693223077623603787735050987021216817016809922769451481786604825408009099866594677673045995573153356113648812808800433682603038919855006297693419664306944369776047922252761453327125097147038468833399601963645136426700330999436197348385971117367351041741249375267373049549721586234166094916809992025643633016788338871464363524429351171266458084085553214870338120799160382571930466088144154129422222559561356191429282208752009347411943890034796753587966429903234934603259520918213849621632873112185707870039364137670656676556047851410926530284545920038930074886191873541009141087073024147637845650046052197574631233396747105555634432105706864623559641014203403255780246438097030314194482153069625224706930378420020871365209341188036594341322098671071046973509529510154627168822132753623311363077454689289914730076878287205551852280646480846615843590077019259157991648035531653777354150225222603317579763730600353119497146848440584140064605138780867561849490582811771271459212641765710102196500847069599456746216733958173634137387132935924503573164680548045834979721693291582076918900620965491747353471551219890285544512716294782818999517654127654617979648575034492064811800621127745713163157181094307319675651654081641150370311977079984566762535531395506796737931173512281363830388492648624723849162812340331240403303993449840252667659199131809141097220979548531726051327644412678971766459879569041230934501102316354734565542249503064459606789460352317210463089411444164816194187357461958187037526174222591066903537584984550389390753908111730042547901918520437617126064949447111527066468427442657748277222073766326424048192866648178161081049696570463426460964888101455815286707507420698507353451415833796058556986482326690400847805406368895114238202750147626861522862137127435829958859979539519936158721943264458163713671809538084577891592634397035523898694422139434075512218517374510010425531145749030945099999969980667849723683786807218216102230621851821299750675062427376391002446985744781006312481691554740366198842120358778929395470540929616379388505847869828217466416326626413270369711810101276976740100451026538410868456951117206502729712363332735785069710827386795537499598875418587127894086177587461619969096359693632672239761547841381338654967712858273384181287152873520793274891361687458349222673495649360285264536550147285540390420272153579707357769076511029080467800192993295977541126211707401199247830062198333642900679319835104279294079214841211965579826223938347929161234424380417571915820462502394855891111954482946204271056020756087955517659384774889932515831701988705820764549873998957373357177449698975347688580408765701126798977351965040910825002988242190813381284484485073250971885585019643958872089072014570819437622700386447158156620566878421227129166152152906185658592288027533846290304860877276144925781793263115299462398725187084648871638966299069954123207571394118976992007921348926272344792977066011779072886811654414636083544704165049912660189841187665070482588955976591629322188459818129219956745771833997288756346257231460075122997869513573676312972742936217816959956162659433883844576741810232063462773887408916904988827086498045721568026362723280532475333223458281137888072595924224744112695906482888734804751686439439304061699700404039384858721153338690436731537589501687640792125778229343511926309683819790029713896431549549197078643602490019095941922688105903483273633148460707236701793728140516632865482647621514398810264536964399980232500073777047511157644250066776385090624591844009509542155066305866232513531888245253615393950602328554948554981385023549949915320184519670230894912580851651311585705803482126192785051073095217182075824224971634233983217392012968581613708064068531221311068824573218514065209075769679668702520150204699123464151179643225479041239647937565442181963532937267136341944529628719402153936070578086500503897860074904070968245832329533994987040495553721147942279368221733389682141314750158624300015126569700289479620244424762889517751527096206143247947294013152172621011525048314407239775721333755475174487718231820415211630504674718421758415363566583410714179475238167981783180253283710358556737035978772111349165200937476899401852820373253699730390048013397668987288798789803513687650414086596622472780439856807206712710653386427126718651231212804761812432924881802468395781370829156951937258504661669593857145332008523266209338334230974637484070060861749800345566828831874125859666164513004573940662560503003684914384981466058744313948189179211661509136750802625645839926874192758295045086999295631266788882471626106755105380063615096505136617092966531939486635505482244298198166802433788185415480957829147585677391098050880698614088481772157481354804495615461335186746425616512693775656902967888887024241520669173745716057181212181234440302743083555809614604970224641367010669463378880130090524250920087179329501190624781946452134157438106593666369438320387914942039954134407893594268144681741345391577611977321204012601590500982196198226929429617221990501010386738994117907010606900798274763279635993843480115054716495538700254156248853189191285144679033696358927280988443700147473229541975728465569529967691624720077356503225089958504721608429909946878823385369414428981339328930921749124766037307227429012784859054630177046402362045901230438695039258328183856772670860140743645369767126387334119386300243933704562175142829561601532498375460378759967613194805787041286975600774582894181607758254558542717064270799876808724044205878845129512457052290518314953946902569400611158949930829762234780230724783717977541397023434331584765030110962717967527405492973589922356767955464794862553834117244725465380082268949506597805655942404471698478790534288480214746426551164197853622303121862818846110291882362853381825148131955221689627631110656432473934230873331140338479496021529872872620305648417567027810986808779166200915844513973308115357521376351155819586602718147081911700207212194442465116258422934293206773487319862648787273682083637685820956847297011258461050629267413885794607459170937064402820179804419601482418106066090276585475361736455532633371619094256155401614338811341801825776112521882479021616075543994678838373612063852150947321140446622715008427588746624154970793971410781860348861870190076762736596325797518850775304538433757669891325140760685043791842628779319704343482756035373279393798512519083938532656086440285633149474037755713382950410040968369979248713227263069635927024251107196879726580741300780733426023654084305072330377824581404681054791458422753157727924973751556974901849727372550676016402725360789101839793270616572577024431364917991689053009439317895974781222665400707242352922822441477706706827006117382585460264569747339421216737563128263664717684570856654720579057284284797420423234565756845781312722546745185580312596611511335727658101535644788718412615557529721984410402094448006888270909475415010963552037696292745627303691567305018553691729211310611175898570281859910365770335099625578069587911909233963625425721692070827616612248000871052830214111875298101603252398713938250741602783567213036565926205091126950181162056494807826494589498595530406976286921083300870225332443861768442896814237455028531979581911238543798247145260875429611396641088567751257176044869375793601452910475858435286072492985754034964150306822596706888608531140268473951424939624469103065786003283740824472342408982000003893577810217361030567984904049801719018166897865606581883621679847640364484173396439370505451352227239947235705879369603758030007628566932834304318163361724199549693855833910409487283618712876726941249883801572177206937766218868521227572353238587407929799311349962958908401744754944252533374149609401846185022978971688972329105830150314523044266185231179688996524607519640868002553566803135074824629844647089584817883681856619984945534175339539251561961840778631648801240833109486805698531309460508872138258703686437052012122653862811811010579351791550132285503628408432933494425222285911514188475208121780569480193663331323605369962312060947362788116908009072505977859635186154504928355410748079278844243354111668428825391477075311321035422200886289000751388174655061216248760046903260918768704599860056786468035552530077519332411343668241399297989861689111571971330499571606820724854559868851084796039191950423168134807364793018410723451914386356840427017801096974144229968280813413391274472502759851643367932162413015853780816619725816800331994929208489402562793806307169779439427034693623234892093360142940258813031269537902503473118740111756760830249928818864808695099730348128521144095777649984839816694002006431312759147280789051047103118019032734208819653629240122651085328672611015111489461400408833170138698375726885193218240462636046304682718136421413488420466844475254955551747399274071590503254202240171725301658984015491679599762785001313366500583447682174513657414515697925904645235734319823004281148490834765102823067556055500581008461968255817698097999177191036902983082639984662129746118988004109659148418626632857500247358056932391283218561452070263129050839471376315322924292365888871511774104381755804177534799681599882467740279228145527194270474055338227251653677553697885450080293312521537865946655799556544905337266049804344078918925361606820849150078336852377852434414818402951778180412880146449926526764747901849700289888204874558167467067944968105538431564085568895774665787587103056599893557814542260778006623168821776762409616459277229760397774430551840629868415488730562084359310939557701149754709756919551726147986822696942238628464677566198569922645852093287659846653309159646816356425521154188541204955393045874443872266441329458427228803578370615774300006804583921532802011524301621960616089284352830711607004929415058816410684050692144184049873367317331591447112753473276524315847706960080861989061606247359101264356262822161494835744372160983862406195782703865886036212952143859446936066740714489191278930357063803865460442829036397349404111480568435899307738106743533054447766013308485020981099047816593918246932621393763254240523983912639452637564708245530247693492342074270470110802171086579562120252341741330170758673633676096261346885885141485971001032232985125365368285462418528891585692136635800742496567550280085074045495591812398750887506314625720604074948488667713395508611997071527559879025715948998983991150675205130619547738082643275018377831781327709328548814877306265706792534091031255792409564122998646915039106485266022291680090944471040920163641256939450437044602952464911553948060454501934008223200890477195430177920056356553319626949958656074012450648174541011306988630133308772348629744837387146714370142922807531748777324719056825514506404481261299576248529351773794840656413756716064283852887521295472827728133380038487030684414968023004337443202135047708295891585357502318579999921645029056189962579912398182323027786052769423530300303523926742441680291368508159457672544904061925694672213647359214658154988984437454878919349491148229400965358873872569707250003829547456386704235014406025315834190940751090626353549964338151207904900851319089707016852830757651535597937675590547299000501113151301932873774647576163440402987792299569723364500389264140740160756353601325433409621739077605466276288607477346909183637971684082030076591774819924646701038314867253601990450175836958468936169617621856995672272482768281788036310662602956111007739129113387350715686553870717276611128924674297878162265670661708287829880129239479408795305813639682363061012685581560708905872780454769697051374883228625371309791092441323860401655031536946441016955402833492685532508152780417300691493671011349613676206087983350173767341408348636037213972814668385643627427087391830481954634847348634170370478976717394121719788073687733101416672647146654163370121659499326744202011925034884685619701323721974045526812004641638095652352789360841923837778714426084995266782441742563265484132927912731576268227022329867091416435366525153653026160555087541597011061931806969986302206915344062521207704725775928885953248291757502672038857482922227858965371272257495710745318713023241751126874635992398024668516789290828647684678261537141759590303746711700364911367197344139932185403614993489480172034352042911683731837156017046416346166647672591481013324875844530647019633519831804831456471064212420288875978435202572609652298405557148179823965291440682683704301529424729899609892280836860689915614638742673179815419942152576915092071663605988906368699031121375376411216409324055220831915046860440642328956519229886030483434205592720052970727990708932233089771267669381707471628496472830134347352739755487906082295043689510795849862821113572111009979985251495406600433230568434895526402395246353832562511693586587920376627761219757518874363669165436489741397359933745522799194741980240449984986819529816833345717809717795947077072069186288363325266215352982962945154900502847159277816613841765055633653434878550935388468581272829503306394469848644789501562188989549495768129146165553800421983807844335100146357673909107637824025716964754868718727712486828375900200245345699214298519924052750934711514632847471088029599416684648669807997097088007027757585867440908164660699826530749965362869956568629715950134534248424182985119212811811704955746468329405644198395561075354264080544077435911079952776611545191033041234341950697221461383897569356410249207942285299761551869813165268387795760540977647059961309916010308419617836027884883908418909692234189219500401890461594960675616630961083656579868970007979183280406623006188572302263321672334394874529038136539190106034850042538726041984862583964485972486021920630231507407397766196131634772205212971098208792700891429278595148517626474997478677067547905197077354559368137332096112310674154520858892941467061901017557766640852583309719145850131247028009115513866233435946567538623501693740300121843490280706768116340430933737342216601529663155652874681746962817243270041755707615360154870671666718732827693881292731940675648909597895265340700751080703069173046502037424131668546472801737626869296220851090151765103623900911903938586228361061722843045385455061884557361827865198856146830727645637406116366138251133901457505238691647518955405187057142466909476222280284660981228862668645080115331941782428830693484213867928001383196195625224899625770320667739230298367189191160117345133743317693869896630944947482729174907831706687326996128026862403192745430077920047683830203440533224112528671373810708132325212883926948049324819701183651606040401392058237183059715696598816886112410780558381589729026689255363975537654920351503468563041537479164485173885089656035604939934535243164831823424067014539148277423795373963127214394108772602855903030360462439063274122675052921136640385942457702141649281110882804212640388570944567540071080016895682257541835048497250233302124929438336282925515585200008629451876453587518186065548081532346545400019035886833186565835645732378490370038506592848336854682457296129725641209306063438142824103599237204060552312705492473109720641215503452137526700065478744053724596653513996804510585320390629715092772918576228553658992311437614284202426040690769029743235258499607369965484053447215429888433366971487323692833495885067565279482146792314777451200033032564927973415117855210525032280851301770583680041538069725349926497570062953965097637009449109477423325523189057775620230067848891441970008266843168256231022070969597664063296999172337789235300658527193189275672348730799580977604882470338610454978600411960148091791774267455984207599149267457791703492569765320416446747935449193630065188622581564976333413096534378327928650177608839152318838589081482990177996245141498534096591006762146424321090698310117099747084579222081232207428554772785849732816789511142009396435428537292308879122227688186322515765688666536292934918750058978738317644702950811125140316805952187688409165530187140388192860376444872390718853149293301883048241973541118149058989264719653138427771541268891475661002907523696056760718010503927132949005508647910586485550647058553118643621440110729461797514035886223245270182534363330792326018764638748216323648723651445750873632820729825005996242528737483635680371041157890222008560270520717014827325487549216186891865618901731680091866645991068946891054154183365000788327963806528969710059604633731692250341463454384290536163201329040171838759152112157609261840859895877675015027394697014596287220375452323620666422816198853011390525218367596190722818073371731034449698400526968853515483456801441306917619051903509358024911580106919275687290310599266906914856138421554469737110319427021529349545924511404831918901067375688574444513865347468418220569731659310386895852546365231153693420387074688664997447482327544434992944451333481593665914065196158082747725308803787150199295750704766602256238936923925369724825208361112514616070660610351307780541568092728326170673155305875949030446302973146104120199465871611543956393818980927280910032296845560632005320807313250131115396161368607620384569628324565463193449992668008383629733526354513183699216764962246577676938366916367757926008362609265738865636314707848113562799073059810667267876754029340888365936271793607985101452385527562413922345090747533792486818349910159009846974642890132684014473541235154946786932027237949432450916068504012880780712271297965915426390744397650783716884918350249112974340022092946854106199587929684433622882610014293413266360955320102376719394416377686922154283236728408483839415783451011778089842730681782761649392142150883751603642670270501665110096606046729107251935312831790958995476570066258301893007563334804864225964903071800531700602593377410637831726382431630863545628409121020077278471982030116379159524394389580610469178015438969262386470389426383244268219106932556907164311465842695261631193524505568156651058826810152313970598605457973382194449627901143798308754804347967940313752119817149518855270852426039112230616296627935989690401169799714528974069872697186274651208714880062279549372332442886665661860700737691946620462771278952862864575833572692086630042187798006370891700454478999713640702764759597737332971784850789582322470139396345693295852591737538907495952328141095197522417042122059962732585243673725413941811562297570334608787672826431616990739761479297571304947823612432535069796308454870897385095497370954372586331419189875693979800560686399868877758134319015506242298372052504441933968747237764822648182014819422808626177281293037127572024531701612684655268928420685794600429393500149924002669408735559650078180836503003396675515558830647134867489604087425079437320232726278674536770633852161540903756171666281128624700290111449947647590886908398874227925223517715871732688875740874671324499149266905180674155982672618122580578058734515301472193272261169879060285604885562029234191769771951379637399191568811584020095066487786053378948441295547566625621852475011071212898690095194375204920058569750657630244363966267200907246377504987045353007743690167662497577252697029818995601301957404014166792655918133729773217921983363056353911568920351174607418465404514347854193041932063234268183833651725088957856796743475658520408092861547934586135303297467014412826656368768035838860340644737949858133134120052954985903741252900595457338329374945703464289943801524501322548601261210184212004021613080251813262372118068004085019670023312427186210368011072650685252732302959996237900133841420268125260355583396202020940687976647653593952689572896526217094344395195670889635589646975226579603781098600687832384869529209004515176391311438185999001387107681359008068379432929590943574371881000596208120663882474119705389682305223688130513929561764757556488349264382844527140887706198096627147309869698496801552427032893525345046336087943914555854376794630415454966792982853170318193823918744028320461958233469340638680455489026954226121996426401019668012087612469287087998651320018933904205102224953971961482022704803767981055024601676126460042287173051410821933038016601455739470617707917794584882953296906755228176127363743407432883553898531745240609874631684993737965244504619770744520549797369947033315740221536217323133566195956919039571233028207655524709891537112916843000617314547077123856969208951751339838390956716753317042622869150666400585782935214271345803840745253435076533395639161566580154673741274274655023831695622641124890677486583144192820355597257933782728895826684943702538860330035405386843347414810528356686421571756858655463522744851851728229538563972792581949328691158247156945290966674246530536328606348545168852308511035065005195621796880093163400402382084812955736259562408563274766577914794472077834574288456379331199922395900652136324023451550850110266245240966219442034943420068030967222290957411282735973637706464235176702083207160171613901978970127169477934834302936793382012337852824916545789597260155069295545500368039008897435271304832113734120249405729645755628180928974056017194645502934316424887074555107841834721646495454939110222573913530330226723375009782403181079079807617307022542619619511954368123954386929958989432273850756966213334387662297241902147963995037262173700527849983584616534578043522269802357267381287137841774328698067703477443365194620216860200267796958029458916565593127174349432529016316329194247871199681647789099480674904589709400985700715312952695307169539363664514416487051418556023378838382161233494284625400285123997036335825201685407264171736131427862046435703170451944294318752432758435805229491191391441885905211634462139323416999199483327301605547488324201570770190298775561887730719875610166369406007690425902794482633260918421225877618850795297455882460452802796031961160830648148703906357191561734009433737434543223869157091548772085545641626602619806383857041862757769316886080460306986238733352969651456645058380100390022860342199696791067417739728584982500840840729607327377363183690654535917377588331580755417576132300219184315050254986568363859741458841322722162499083322717424685256169206394452026794160079536167689623562713878392859669824367016250851172377904653863945528350717145608928820829679087005581344795993808120943225230902424160965247026323608893019283878879338002992790750764817320385240949191371837274618960699927488378074371529963694398894362141131333874811182209615352895006656686762235881787969027291623215494512752778294590470690572501325193487120854748752307846644474336575473920931804066501413512689621670737670776288781063046202650941654154815031635963138606494865723894133652983852085441509380068947207378874764003100466132071933705102459151961805156164058296616205986415803511924454839215546769030510238533725429102165814464592660621828315429403508855023701353561843792734197701684283041940119701455313645649376133134738143559631874497155894896421954506286652707994944752956725386012302097330066429194096530157893741191606415150327348502840769103802648582307250679187087667340813952802756696797183615060767568148822834251705084899531163211511694271085850987056349252803592600877580460085539679223183781532728620684767656592572709701269076899721965787227795227780870887859868217472194498761334972925388322536437524179765901263537351076157794844076755362724816844702046284413719565517972103600436999730360120641228890822243444907888486952656018892344296912860140380290959419454476505912990413338889538510176687764187294456950186380909866101874729697735220908403955816572935245525066952830125962144861175228366022937719530732175831664510653046181128632031102232918921574120484616790800532014081879110957392205755602421112411470736329511789737072743074158978011951139274174555919790049086411143532292860021964708063364748280867005406378423328892911456145129792267847249179130454567587770155193052099131391013471709881620585142294536756645202264178259931108597416414228247805323504572272219950342852115631120508427599716505745500333483722454356182521001340595478341139569003146502736444545851955783186637674178808007992551294871650817892101773638077405013861372849977650684623102660203936278119892649014450406781719000003028174982789419096436173239756518810784670016031479524729695062415638219163118324383604794314505258628021788395344761999981772652718668995962176464512396677857461337698936435024192894980533077700662665288466109890407256426617501580678485963287398173663421338345586888159096902774738080876689169846643066325598959021192240708781413174928539432326109200724042761550240346070195759469003176140874017730660497198620876394738128497854794140868985765149950717902427453921091284712341835628008990741617872671394681773234172847284017126719558617287077086096543951090204720460973724971266386442925194525577254608249969873877589726472573184151171657049267972093518453372264319751001105984659807034035921292032138406936203602367609120799458548498750022839741920467414087319925255521662835015461879460845157535324665699993636028659481110564117207171234859863680017021351476190044607883018406486655914514770171378469612334281093320703338357230442082762343326982893574969924410477608214223886661391494700595488835848008653600797516322517592028748295148280298944242390540077384831651732929864603023511569983623082765664267353875560698208174519107560292982901764363183199861811014468766953115845157265807048120305892179130118260674109425500899028049895706295946369044153233884695214919727998554390688673113897618899716199825589601073469449436139820999660123369590550593587490898649786062155436542028717941816704742218699654110088139928351096777596694037299575251008698610853890307770412138101763694226929023063005453125577784479416900898372467664729721106574475317675315381183509664490169676154628943860693059124047192080417674116885109882339162487837894910258011262123978680941316336222166049654742283578531275343496979492206343962656095471497415925861265092120015229783127390614476822603871699585845177147540764260910344039564975250326718222429445504980922651665150324103076817228347129534655865835705489241010603779434242609796516445864934458634870055835326025123936724013101577817287987076549023101149608670720652180600278008692934534529338400948677454491196761469127622862181597484815785819097131011092329981185661758491079857584135908674927062442606036288117791816000096787020883817010211252559183777241072171761307292210699922066747214818784511244884899749504082932672307807802214962407454820744546026519792318031689287390281074300897012142646870496410552132311291593143205462097511981495971397270600720425229435048461456668376571469361598314880880973765777706590303873057134918929902798724602260590245232855648414886964247237608439591693596041195537477528378852420843090832834881812082326036786656417576905684860696139133060377364299044356794558838544873750783909386100918680498198223338982512913176910634495269133399296632363818754713346839681151626387379300920800352265221259304576892836247252059089528960827866155706606476713297616703845012513102280359278449078877449009656125389095204070474214225497367385574188137403643801851707821568179631284994347526731432038437869074145082671040073875429513558114546106062560904110402794335033982786101361476034530311813912734342098215064798085066140670348085521898357366966785816932576779766023702154083499768326177711166359965362998243592676142887723484536634872723396470770904755402656315945269813283622670949100015964951845592593342170853648811057597787987490405148525770162380565962015017063848696910401938221993001884649188102123612553874904042185690768862032742600154454974219262330213464753221553429927934915934140843627253982154180965032331941263365014893627378479497579386252547979484495931292228498084899791512536792524222076417209735963615767918462328728103575029509999847088347684218766254640032991097335261703788931655549066291552581819423119296819470062003466218806317477062384566452045118044846842586384153515416760995220344248397736912859655485739408693472125917063291817944919117332411897165082313975427094197966705866644607627072853902825599162757027371883006896212505966381649393282219575697696582417233164118889414567366970861613156997472260039018832260999516210134165304635608910251269653497856112947440637736706063293266780431903983011994816272145111310369262276933931693537121796498865409171333704606401736935631326096938921069872452632107882031677017969603873629240858389044620005184674221685942359541229819270440405693398591191188877415192874327511871081522990346111378160356048211382283853007510645588770048633389796128224248914423167027483608797952572026535083392755960478292556948519810645148584002227099722283224099334327414991065421193733246542774191248260180955281012155673141575573431983952139795397930415984340580112267985387430231630765105746440942437787996737441212284617780971748976387568653858560763538509790302083716467119381964568893399293150356760277380189262580929995494229084975473851976585905355822702755950172390617601395716011010491863002021681578964645339989520253998871004790810492956973087029808614350851191578571395424421765970888288335454385997451522521293031073903137336008589505078237128623855130876409089912894279448556906298208374500792840141993601193013038788308425739730805323377744445507300663927466805850086673441680867022793388075902182591444843068125063583461058381184480481134871047921525273708505149459777479313905856719774651355854841429500488304542644786277928969740775254236632810704092422280476049123732371727065100642898510701606474366120482817199572236958354961309197390638559140736026821593112718650534117919995619900998410151821920267197711879368200603329483584576806739769059627370947502149885809023835129427541145559555059987704694228669766706610882112628434597950341286145197779680750981893816320941116307878951715970894884656299014227439970698011461390866781521859435023401976781479508183301064902839164890426085992851311574523397315213372464544016344913418010967451405599651818835490814754517734121846660615999184050599374862314217112747728843748580361292816484307650914367860840358749282062840632282629294211089839069750716065435684195047073436855996403885778120434377539026289387236126813909695512956606264994269567975259900306489014255812644322932221372756535721970774947448179262297458574772742985843624480136620109461947894026750609772998298231003525100696139667465753904080440341327764766620915682263797866609812752617003563151097733466823414677502844396318810427249817840342249316538439192434030006243515294408009528096611935230042380093429875570661672704321587277530189667981688310473176188046410078271589784185875909919613375753094006402322380434105464638059255305536469305542165698936610529445577753146146789686607326299226089228118092223933456314732988293258990057254819556658537898285458906345567796901899415172276880878014668573470310724520460078230457814173678009600377043151039717584995648723577993335532790664278013156970065896535108613293593493264888616324871131416431464085866416374689908608149711284630436842814701116507434568352265619000313156749957706012116366983522690356323542836045364280313543876730889501173279226980232456828466402586275271812011293770534578700826300319692672119907894894584290883560668943553780507713147026338813257885382790124751715802598939822541540056007395789903042509529772519566635633287371103922659844858360750789588093383493343589854620977337886250563088920467234650270796527622664848127363734924356116944189858272280074015075878219331264007310523217204351877354408594852162163324283980964292868944399130698850675628603989888702020936526599828980848646652211112402144116443027240317785789726911465345700862680427737606667169529317093672532744540096509094724776788091209862495260133359242780882549967413385406264684942610607578340365385289504382296622384821503214439992520761683164009796602302087375713069402745624870927165425358836456487440442795593190972058246486875419932222221313749672516044611820818639149578624901374796986625415336660410548772779952896967365477050325537020848523743836421104178513101993052645959295671881937736705198883837674909715495547821120197399531925240047364352298984367515044219701388356817835544586658878231275820613868355584320627803823064213829980168144580889030505791256104146876104267319586816342949650793050930515386539965549616841488805378916962944093479816665736000029144281036269297545719985906114231676542753792685110720380786723700090196796350049642384976652545273907650548934121038472998015958949069377262470805666529742567820439334549946643279635926492630442457126967995806235482755216812726595509237335031158233180506722025702121226657899427224118630962411837177538747874988842540584279333574587594058180381791942657178083759139561391158303756618111365675571747750756323095507764773560870327311983035955701553674869463775807048755446188035325840977035842588599436408976894751386459927063898490503908461545040353258845940111079723262936649412534046761911465341093447624312345320189659496079838683310740928910951834398203858378197356404992249488286255571899985946880377753653171546547060409953456210480817291080592380060935458099989364253214957977909652341370988840571616124834044415993342596622012010162120640667367134464308302122605585960778626375631903647490717889208092007078181079471819917639871237302207265436346283714101353803726726492599554102124852495882156064388801159828669629079661141370986547632870265896344162623132770792794224517171996096778193186904979682661477899586219003993064689025376544399846936116421039653485822541111436960661580618845179501869063913849760612165752186707145178949596807128715694086974943089249515410301803365517019071292522418596452185938187068164876754243376658520725310168355372953796527444728385884911881520930170430915659857870814982912627065238974251195841310061941461473537945103467628714610103542080254561238532902606883029716025654162087914234267804525882029842899200785563779717798754604824811072631537901879569309293166161457221187118518067601824227114746718907190449750301514438927982055757182097805392503330441170672895335988738923881447879653646881515687150385116040581575278821643056386859269561897149623506013146049941544692237735160800760485834061206330269721047898022350938765588842070321928069486280349478769113042319183573464707144365626367325047285184640819720356587858165160158770501617764137196511384050986467027779780940177096387173706301056696479586204723230412414411764691849065384428559677754526012981659918483182720615014637206295656175547151000723960557715718366430052436981425878368507151708767830479543816465682735988837601768585805253881690008363708611682767019906760751564430944768671631004113731619039068781962502575240052462029895482355733551017931266127287373416892906780224374963987398181629725893903500044266156777439733501616988847103631258325983130779144884397332864852537045755610709014566663319366313958479083913589759651043197318365482240474438366762961877872445978704903827449640613341165278924300443324659283375170075528372249827663193189702863909765574442090955370498226011929048934324640283957653648752483463205494681237862909143538294718885275794469615983283196133960417568518750632719330548997745654660685044957967701944432394264137970472599230689751157797214375044548954297028541103305542343581521487778706688722924214436383264553696502212136759797118815173971974395723174839318168140213213956226632121787952682001980083549374887870953359547606996855858694342166073865069124061046034099732423743506867483001834037546143308827355141326203193327233241060123396162390550564044074647575945040678349313070105257000395928979637886128097895059081794805939590653125919789916926761210663209004576639524456045397333212746896451197088868758856962398489077871526552243849689191560477051207543021364718861744667355882486755713885752778833058113411614871016284879592420161374172101534015539232459551883404603676211258051961437186179464347746654807075893666688375443893212417489729734112473783287527869505565676985336723461205466764581729576098029918683021746955703516473265698117996789463816876615492969189891730538099102024191127659686442342104460342750874593378603488979131968836590646629476627572135113495000659059534968741653747619491211091255343759573644545893223795967078101241727503458076840949965244736935217944704417946716086209532665603231933975199360423288316813665072565835182702363468996642388847220499325786263790089932951968941560753686818339400204946672447765229315381165162341015269416244903080587519562981748583388763534452337158112401031501768215998221387898555869219116556244430843349843755657558897996771088214781748766828816826565335753758708563790202001352213570884221657871651025853313954909684125981168573450296570205644548911960241393119479928216219234721390869728251901032605646355112910474997409946377000512952254825302418472285615281862545177488113204678643178708564819638800680017798943765885938627015057273240522330528024298968839778513664344639834265181426996978743726433100157757446592331775802264890944507058173619564918395448263025883257086587952025344949636623988230249507992653297796832230822145460549148313931556666843965087821208861037568594877502636629559158749785500687645624469588387128969832698434466456411389748808885249631126333630899115595580734382769321728022654497218802086501206896123359828294483725510572002995269799599171861510880554849527424169465954623203807028598745503470304462954137751165452733074604830530237096098881770737633228602645832268606310890577544780666305675219741604295975593080802401194192149707572513580118725617013587550425681777201545812368041577655458669834912651138327049832195793053387108767886418401638108328170222433767349733370359313592500154000217136598006722025011438921093399103744151211540009018715624411708288768661530950506835828497064704299392845122159353627479440959760511951293088767583529206236738048577047960957786244080250372085903377346959470342013230419158213822359454964472724519608644136260303406302313829782340556409295352308233198031577468156416879943674800277345988469352171957435407485544559545079638689370509725610616412749401359124057831790214119147204206663764096556571893445780738381060362671548208483541982437481251008875270940868841713561496272446179882568623196203088284940380590001586788044793399460261548833928968668577680182653911852415347481909243837220602332641637386823389555245852729317290372017095082109418684061988373574271787714068975416724988524338880079659265246969530805614352354633151105201169108278388035953545136718051659510881709322673476658423163038172919690830903111294854944796719522009474829492395201827917252238231808383787242477353001510723458338920701184942436425764959841540612959116138876659855530433267941974644118136249410269768285897730012052235741111262898410102008118025690711987212777491974942018239462172923576154638561946661464935786320284949958211102512713013600207039350866677754376639574702030864058660383056566333481400615441857670117540615074205056656228535070074978101855650864086593284324179086234526168550202680181788187237469360350943316778232556389030986040701726471121390741676474870331567163461710100839492228634192689524721335130803171513780402563117516332025704929603226144555181060194865715398604223244178591802492293962953202631941234804007861305530380412186820604805078830154830987969110495324248822664114339950896698955515747567214903719597632132606342467166807690743593850741473038479071996661329138478619002785989340646854412639982762609160581604975199719205340604668822560832625683320005759141316048475190223157706478891334452034010903861657309501425576393632418749684751987450090658844938759391329314673593943317708186609914519772048847621268914591844008124595953505970739197287270931779202080245467829058331509311802765087333143958517491653650428252381471116863653678141466086704567341907155352701505895698912484722281463563326125688325602042607871421659890405664418075149107582250638427948934465840147054890507760995187367860469341138343713453663826969971964112601123460498974378269761549302547466912260337464350472416125539270356050037528242622996653118695379519507784476929629444436142515669968392574193281082551390719130353304454239217988560353354637167899668832763455168118254348933527086065226251845425644027316022637073341364510732572217197570100818259079439883859368297932161697390988564276837054608061424649435164560704552713403708090877797938926339872110879215834679602808351685034891157713398434854659545753809793454394837135833808816377538551340881202457667562246180515537090219646187915935879404183400081686285573873995600780241519888740382957847959915347819311048430527951755165367552324444437317812039089795622250498274957374268095425712433255038073079652759125563172666610393309322018169528018217389280874973949651434535629827704674843248069663971357842401728074807541051031593064825745264248730152774265872205257938582818078454631826670712648771257206565414663393346475022960903657635923874713142306357790335867561316109004599930817452801330396910297543268146261646577002915377820497379029800293400541984491953033654966100206237516432672284592037277745416566012902754099110765550114660373556326925490478213648123507121646928385921853131726601546779921904722716387644294535430847247122630639193343259660389984480146666316641301104435920741333756342582633709638132229767991413206046903118945382967502171892236835221312137410771251496019346205271607739838070650002996292540600334984678343789577543741317370340308827648639168984624052580100542902573961340995082050684630371593897061805121184109833928374726067313726088239600763203141122819051376299140551370799804071351176548389553305424903956516094006177057693947912112819503282838609989527967887703798326935278836934081102852992000034229286036840572713032912634860432244820668026967822112342139166056779179504168266445197794131952377868609720248467010556219006495128695528270785050030579555893947692207319000729363629961561188472682972435862546344321346222508233869966792751871944856767449466343599620385114333848879914266507972201432655382844369289666948619727102761835575790725033705462106916643023220252872099595227789988288533491075686453272822644074188844484006900734174716102010305920194692615047746692810539949334047601808578444843065696994565702842399151085224300740662373643506253318086455657360540193708694042057691394804784292695566966762957482364984796667093175372262163226795561400923465019475524347614969318155241093001419389898081649266469392372010794641791426574914318455899611050885884692732912675525998914812670585737506012965781150843745711417477497477495459320432955877373093902383474969401373554849863170587570041022052056254334666620629398369969587008194678333399534394803045147549674328811738965085038405469938316187584910416370088294883557799738619159360837910707049138215519071610516979157786104466755346373298171332005695625188111409703439122519559234332910320583634627761416719292064759958929922860925615768163118562744416717273584424244407558229282933010926899068498108020551417546604660375116367828939377119723248209192692279384031600835813389908794578911599753361094036467441517532857740289049891520069903188325140431990682640329971896323048115777578312837760356419115258611041290563224402197460972293398104690221347560139187103165292392034749666589555303577392175346637185185273195560214209974101419427974606035224962170080016364909434586536556513086101446209652716687933889276842261201778168694379405253673381108641285277288985268232293971575838149246211577134145095587261179852058521083691974743567709900048550954900398355768629283608073354486434761796428728454750256458464955550398886747299036387769578682513280421988307045315684325485198493854456734581344630726239558509784011324489848784063152154299240035382606494612316418546375967240807372905998416710148734636146101863056465729020562818490877532631315898851321815617222497099997508851409997746758640204159674106141989722615314191879094866518156530680563133279589879393990743297163232275789988621653936174031864109088164172260712565419701255659682729244058871782235053924092561958637086911157696439642594416077777941227922291403333774665756968838181654606702261905416340065798400079763205352135905264321636231358108963382555792968769283029102171732616708745021692171026241276805285026044400819375874968877709237025109596757920821354472050274529258833183682781809449019423660501230616000516481075755999674161566250259905967550757106083617613153252107362136908736731707033886351687925446085207505555875861099878418505403536994583751691034063057315041369673625992482666142575659176211615144843392380005014170723940605829359884374157245385228746335582554154845558720722915067455146476255858606503467449786133400785969266888461767223279769400206501631845562427527899403169060188603024465256055560237985258443341106139874304599358174196609052120354529162379928163894921933781519381278751261165344260467266750673701020480797183696585928552798175389806333445282151800750932797731948199414938325007422254152668250176666884830163955838674945799690891282221714869327093325655089309859028046710028411406612201347377137924330528680990254854036563996160305772335773789543752446019355469838483823679244457693804640160301652282333340706904244809712566079758014191461146376388765743565289776090905392793105570836781464365730696812349999787939837793424832607468381833278587505091220188817026335052073772365104720537108827458133322254578892759630936013780574237852714100483814038083880260424388567147944058283264134261562570265272417244071718777577587668983586730506406510102064710014838746475854437103485474369417657803835907732477526021885112138783318633038810899970210110678775156211702098446579003896482308836535233052071638159888294462581262483943602704204131320416159079394181230157531995313938417032348011856206264582923769841132352727079314423654546029720783076714700737081268298817134571718266866890705231071780318450664687047516749781677778662486970946568322252334347906574884482203942865661838318856370918550111561722303781912066857762751379059311001226804897600934022788194721034406739885805315439037921204519719209068758017646068557264615481133841831641626070548853130864654275044424021245460688618868419243744862545392167732206917799312235300541506286655185490762169219901489661356386545748645174446127410565303914862264504350354241498480220235720164427954206072627260305417609964152424903816630930467030532669840035078753436263388786505838443286876556238726157321735254265380353401254346279921183248447106998799103051521984460313145826428280258164749626458084701969397933136722452491044918609315914612571603820600352060183926199562246635930979527488953712088262007810097555354142970693747123745136520761689098828965448593109961066852028947388319263359587888527136117608599956561307684079076980476375475061313905412303009970298044174479768224847403710121748812394973801380198945001586611096704262435683595734866076731595196927007316863550784128520251083891914535594510673258225973289567217649380898278668685033241508752298218028890043167789208745193653491519488197475925628255047603270069431305588930184675328934782798045075659367982876669551130984799772087673229048906368345238907671737612689896864326492844690844227083920281717824375129935450600066526175257584708509642802746788700349210231499286671767602707536278749499998469382702327300081051194396137485434824505104807582811688612907268358312161501381734545907027886516310501975070397033842048793938622226580886435805922871951932426159717063814929629507927267841401342043201685793027788633192678545424505465448131071068070025699848187570224207449247534609232765977494218030188256308509808046097223317761309396760349276743788129647347248403432547244005310990506280163645493625967653262821405977064801768937951888943389632753552966109070839279569608631541409109904041871900419694687512190175383970862942804057442754413070283148961334034662758527558372315059757078767761236414371167161404759619025378703278008487845482719731636514912717637376419729529629189007891769618941116426624341304444291249818926387315384980577386098486064705726012194880857354895066517775562427448318503792574256504158843735104013408224966371232700118601375896367675781027843367123403168693128843277416216749076390518191609761831992021817669489066319144177746148139046427489198893250320889851452268295211207744775695860829162173647647777098049838880941982224540764609443608061446095882908343070913973427547393269360757683873608410916348559585773412984196901471702525909752680940861763357502205023304294871575735475380800705913947049947298731293180776931714425427093477280285279225847143509529314802508025151539158713147313154646585912584946028693739454427201458752370597361402697234125399564766878998958447305649137074479871372295397197416768422806791073769373469316901229495038279449500156529993972243485924137768439086255018736388685262763162968075696307072600200550759944774019645832712499921660099576424138060906306831072630769484759700106961093312018317343344096604348442000915414306817558439800657494603252598926950920471496379268824024810830552020685196425265318540319531700730748136904620274946273434795630156376470473494716047265790986836620731443489897465081788379439593384593913865520182245173262522269653344270546031694706981212975599728264652189988359605482709420822449902521269443731267480661657008345991853109083489518315304230838961057007656820243408496821373710557112970589665364068391230240936289787005319932047400029632400921765215989796569645320688043189352357175514261679636811873342946198520581046369381360832382245045274431990789590405870950426098973199778211850736836253440970355195121636315571797138410814293814149316661554805810526284388620506222696415095314576569779811442395959511777288655767518203615971709537753573422460084898593447940685563643260790694456284911366798363820841659304381473748943813384851637807250301749718739088980682865806022306796077020413046958607536749672259708729748332382369701065945079146042038046395835835242397939245633851423450480163326792749791762956452103410368438682453588026772707791678717121075994787079980521328111564465862998188428576653787937568689225174188874920770842735071363147879677012637999420984332255484335301515581661693536409520051889237443784027401507853509241486011065179105641576067067268114501157801451137670027959474631754776136549085546530709779607887448836558744408910916074575470292865484370263269128722461144184688711501560900888536274584078484501185372910266618149855955208047041647160599525405982195733327855511314093601917260804160666457714984298195668146708764307785434007048978073007660693371300941346062851766576660975266875617731833225852884790326802822347762364942811521346377283329504092438013267050908091107251885731143404529029083251508805357604091554696606173235697118758286093826481805922879582464222461062389946106549174218108006195116717268386083130915886440286570527972034575120710062559803567512242626664779887078396976405811265038424996484263165970945896280993767152179818629862329155152093731911309819384529402201410003815340897848754855270136941692312156518452974012265342729935030327842996633835930341749664838192944831040573721431987219719544825020244285912599962357880117719004765075522301447421713124268455466542812712644132763454879946363287327378123755961183010354530551259860146048980801952108472978590307727733822299202545751863312736185791514918057534671593980315720760449457664510023549197276273928784497667532735093078236419030028150032350537101981725460402997454905858375548616786576355817398269314555183783166897497392267431418753951685286282660336196420017047689874367254463394237467450526400991030580671674805409567302949715350136393643681701807188215892371139905923208304242705856279206330899782475471329131346147972602574170541062910663612705877687305121272948694931461560777114604398674444869763830278692780322606105082167528898863208572106065691185610223433340393795495296565689221235040275512507769597926154318005416824447702603502639271980260991205296298128692266403425052012325388720552891656107722233755837730358591564416824804362674767077773950410967672110078976275828447615774356708292921385211170222541444969775561921154465255140484523093212492668978910178275799699141240770740457458783986839405949099319242192674818878816736340515507600073323569555937105381110106335248623428262934452086902342618826577054315738446601180279103971020615632196868846252834365627990636216215574700966164256341801885492259148472295373961524485485984972152482148433878934877415187567171711420132180439133978753050935749025750610304826369725154288159958865032010143035106630816321607308193237888752757291344254404956479679129018570139252007865618808818832608989878565203547168815965297297674915745708259640064778349602002367967937505244090082730921502635083282872180717246304013635598475779986481940473546284093034883442500457802481813303737557019036059449992877619775199015468785023605685008833098723926502419841896391687484764551655243524240492125765590159901697851196090765365122064866972513443449438740507799653637941409331058267917631196282336197858536562830505982293008377754496895319447087891199561238667635442086774500795206011396831625547335514600281624043904625789953047668177686375669929869847168505091576060320010771506383907429054111850098054242801140325950592253225830380496660657974721903433081431250218961443411763884460318456187300756569384163565139453823004817384524723738155346790897210079766719000594472292613738218910934128902631843795023288576301175109834396922264343177188112018350666080181403569067372254538235247245412733332816668368241087441051871685388106293105280385713010605120657406997182473096090504633880634656476138060257653499760588095427221904956628332471929500776665717809014558075360765370603466791297767030313936819633849997736571861108171527952758605953383819957693145205239880773273539739269183439514527468056066739392189369097089671889485600802505055064590026714287661006944421505195196827575217892863211981329429791211063138050875030977407156881793992446274314089396299850216350197610999467572944285084327342346651127608334678153859337811293275827168635252267718176652672321080896769423823705857341656485514328618697105547191864767138519375595624293722213128381811374293362129031905285454409247007913804105669591338902133667042056029658415150204564167259540062971477644862872130111718853242706401360851345324542817868139866600084994683299714823107682323413505545336718862752220823253307070632313480756435904894458011700735629532006776448683095282708227416720013959505249746548146084385698073618768186301442727881155430245235101347072529551163644450728180549169280675283667179659439071243548912460078464617521840189737668569932717069896579944311354592806872292636481352658624367637586778093393398958885999025449881409904360183629708099620025117695807518454245795279017824907001871881489387806337809720605889567324413845954701267799917620114066375621442714313699205550468796308684017851323546201427215712446911263428418187944591914052585057134941541411718806790178936369859859024951368557043367136054165645657456537987068962240293162192025577966494871275182605634773274715288384091726835003317397939716086452013670928429784776720919579564588075066621016293811416956781474454370212798170888007296852102058064403545917351971782802369020421461394635310685529807478983121471681105291844122678015204827426718231311526795718467916683963550614518090115727557503459581997293131332867713764464085302754636752313197224490090626002117418399897577930633525867641734804751686242174723471985020394805088661137430694380178349432107698517548871220234591414581884195401392146775836053555842250930161961544075288480828147087649182433542223066686517528874644570180370869064510483805713987985085681506994137074961971056578165173989753312472246600451750381039433580214253397430006734512504275976295872668132685416565137667221914800823384831626571231074296921464990284651846355401231789447429034117192356555133567613319935931106649265387307769365920190463443408241091357405687938010538826812379814722540003298563441002258143552499116685939303748548078640451604140373449501362157769808671707665383578607709739938355252340369332844548577591682211207562494169523143247874274955591284829015276609213026044251030999843780223436792414326564779037444500609855323659944664235328440757886744208355474516605940933701552073947880290572283891767293378074682830514267482970305716481646027758444130082306310070205459015331038784101656046451513079008989659226875266144202637548526161973214010476533143021747464194652261228491025902415793893396908148330216524384490516342093144369937752134034701141832359002386317082902494297132929135119851735823827383878668200469836252345579802457828513067381730364385368983647244367517405901021790818692215305281105371420715356897470619469501621763289544875373067592540486978233672363698102527990616198601654629783263069020033352190578820790460143337740296906604066407441497994536055760520857948910745062736737682190745538845555098855386049554427729847417649337815387380137591638800971680151370579354783490527297311871031096444050821913026385736946860315769412113754361004645345089825751972066771293943249969384423044553923156250426338588725895815769666524659645764368992611734809293631441829132076305887884341102810244701975962904828155731357374170553819651533437854851754466012941699863322617896492604805887337225573068118747452932849918393179298628923477480387437420431157807384328431343228716053701144802790942981587933865362379234094386598431069892034661350143081905678689100827950655038714173720088772606857688263577730363182962598832047102584511217872769218379103975869317567252269861185578413472526332538704425010574688248863367624711631140537596288069528364852105005697257805786521172570818312257900977931012663628943610286222662954369928870781103829175637116973933446100420779164030787263715206221394604646105079599175062958853121551823310162267456782773030435453922682887971082680913536831154712842241138126635069477682311785238743331744215607501892978264073288717302063294486738449597469709093051798659671991449637667025941983361725993001162046884246276281397592729233979460344240020766726049895761515514098869908861476194177470422983761921612358113092614726909139536860336795069656606077107055818098311859213800280749060742696165614482978562717143774947450730701584714675225330768463870177178632401627538407893362912029249433964142947019512940232829165028130378085518086210384609507494819997362701912827201415127519133088754777960381033961550160452105600723166364041244218493354076477558721013342686676933933349544474901863062760459334376562902759013079081908096040875019670364209348065892748997062881791338970496076619448054495794066338879892182064083019882830521474808463569256958422440538300149680567190337203639200177283927799929207030277152784189960273607431040565446425133547094057666835282096989226151370792238683638673817557588950468273319882143043119246728263767203432811620202086441222318384113707035831304813924314099864289025474028997688895097570836600506132142428117849357261429282274655053475226035547751375147700717128915199596948162111400411597714326865855929179965971731974988501074345590139021453537862115379134027447674509378562391324188027201981934774107523221726221478961863031588126790222241914113985144304821917345788465580054568288567100165262639651663360887990995495345301780065676762067535740993012283286811060943348764434306977537021419950911967328704343938998848340761254505249939686100462665653363587378096837688915153589966408545164241146569308134359974081738072676352346851835024126217492732742235882650911798638562374650563414764740691020777456668307801465715096685422603468009899394636755552640424192522028431198513791048670214095591016777200428047715440915103419913034901503054260842796097020716708725306623643276049742692101716295938289429049345562010918798297459329493673026728252541801732273236706252022579597240471618986917297606060554150997910869066166048307655559623047851316401430348681515798849509629513950218183323398269951929573184184830823193385015035683107583811025200068468998899323520158050609525952734369739964185961450025927583844276381131901449809750402493316731903183431273235930525151020448131247850951148244391085742639689044073388182539049643990078068811295097613594213698813261177244473308722702849013642767364844265219466676922560735061605779482728929937370215514567892724167614203901126615032732892774131634590671099345980665112773955489784781122746110803387917760104509194059025423047823470179484903602729532996034875601044295187847855539003663802890736768550869965548720201807834441361363790749831354997584459370414369226958431419025068564558035416731844840771543325164919207355203624272492297181531026989375648437192236754305132664820982193828248761087206697863631062871914826647928376162410913034099209809904442814890099204848417386592022638809840332431594084408299156399467924822236012815358867991380359525599524812410974417423954199163367290460818370553662014698546696767723182113058729492736184402519077353306601387664507681105107585883733091079556675605066736687877218074955425919076421411270469720503993741133152228597904177938726646409251596413394962458309308562867373352994270235403068690082209001664502808744076501739510903420180520889860657648143733422397006101228109517853715155596215159511624751212501322820561079318446419504316250796386131928290542245821347551630850102322279919578081649736032525977901610818765737487365545068920517898198966907984778269661203623344823378284357678075852481821501489498437135179293340492451216973764980050076988888538764570827909144484744694557329222006161305509388788264395579728098086241106778319329238957909186049002361725479850787066307405968627400189484520034040887415569485574117725075130282536147848408148916001532240469933791846358479968119241514392342594174540804758164405466232792815209267577014588587423479638262226450574679205011667591514766160528539456923164085368315766319321232561333556154010066569519555177572952435394860953282987702082709124441709001117039953000326213137385908537544363705026747718383373081527430248998596029428926085715142998034885819037821372282978742411436774646149074227423993948417196517195214727254789363005604000301784509318335197197065802603429213977791908921047949937180491085930402819445375309255257736440281695943737240071779023380165229972835397884356991080182637945464825374713105067000399847321956725349030249882749272064948629094665181625505253623645130780666760387309459840137759011858766757740762477574480122778088036925996674005094531364600081604777635160780886755518238322013866541593484806106035186701449962339006777316525909927696747634944778447687136922230816982784254497088487664584191197851614613301858457993573170485723058661870127713865054575314720477796807773878226154129550019122987382778721712513417748420879748881086604632026167553387392265946921702853591222730855848010871805924435303429734176000864983962025726080339505636205254701518041739169241997435492568934888095913934544475116209581799926034086904557177076004785610486240854936107951979113813253399266439890708296054710490146921157163112763341585792042008156712570550878297979724335608988867119615480208128344064001939067235608231639677537555079562415322964472130920794106878910235152250679120072519028517261941098497588025641655742144718608238177066368160513319367804822279799723009124164801118973922874883233272097732557003143695271556562667027932230559759709323657528526531066163220889814003516213468462062132279312042728976773131832472761617138921426006484390550668892045558882242002200166280686990555192772338535871755437310592948204421628423987871517996694954932925857935543058419285622228259008979822836026170674445701582639057536219066270926657889427790118346697386102921197092418397150285398731107603813930068472343724268167138892769845334792088700417838023195819595005304914427930544591042130319489928534514772733095207664881128180316295853843743381371775379310651483218406984633858196466737010656455937313354167456301464452018307479295952022207558316719053428836583433444363679086910646423439589000752462883252216146292424972162442999651806931829548107003146413664381986359251682117455793021348516246798421669358139546638660689312225589816461405914155917977677209956335306815640861667245393365435818294353538076531461447689890758890381129251320262029250646177242139266451568862776670342483410818503149707614500105326028618627552411886310026523183866248157611429613235622724129992126598095173903524468582593929719756399470538346256060682309918480432438160488037421167389761779785133232861566648431564002312896593696746117067804136264522572418360577563752701946386787001627202086916984693613181229914393379178792602076834802954187015533603773223390966983250271128953801757616391812099944687898604013293961794482490725172221817391075324515554142190938470039953627071788448488123133864809223584146437968049149907993541583859375363171358123815047728090864557975126404722115817586288606149870018988533368161351073578861600870002740239950273711069373423722387527819584130992668329672836324754150123306275056236898504861495877902290989685471028047509468821581118614334587646834474638389733914384148448616483226343594522595284037219032778306941881373013008971985588488515878542541941889081740883450924117566379712407123626572776882400953234076129343281780515286012809023674186348364162411807150024276739163986205090989006727585421799662399985831049681978337949059583900120190977527432490927606334747337486357137372661004925376529240898274098406899776523788855924714629721511525969622426233141884803611109929897213997492008807236755119518651586369091141483584954896445621215082814070288541499880250300663294600086766975252843086252510046506774642921896680752360670688649160165294182971396198745139478836179139507148052363977040090333702441428739049939302427536087497187031523713349236438846256806147744234601225024505290956221384518136500462443177550712420650789636167938525902681307808979158327497049172505921259962742513206334948218124191291224200587496598028045196933885987616787230063583272307862662457536379824392422871005480066751171217514082645381717998857288597474091843377795784034955044394800713652833607446670540200187794586181354578427145747962925207303256767786777222693122091752247232404589875385856212214915510549338923808105030931896314993029405153850593796880030841216002978388946254707403671407054591107471239828121411206068992984858306468331948531342885637534207458088062266091708414689566764365882868643370985975700363719354211900353361169483229981372319501672425378200458937723183835466558984356594917813970045544618193269290954757371307397846733459003572392203930577098684885945412087887001884116376731483005270882035662826938402333129316880691938555324972889660735375449353454202037440839240957509359713050694442874279670947439199955154253165974189918856733820230534155113662179044216164468152765432041590127499414211408152745642969741797145677007889010024389418092376804754640077873771539844954331315296020564562298267273711516803377608148184014669762166451274767295670798460164412152509337327929282430563809313253585544976961523890682947549003881105321741324055886218342065304236131176957256317470056588373739871905445937784180901626338509152423473641600631810204638136629340678043604276892414688291459027666112835923807668858513614701115478769559193450052667388591122707277038889170420387156958951521378657860267506770239062715745493834116160383786200818722769136271416794900843620575317993731056104824697265188489710799005522609427881316231789808275184952351620759958718617029273525491220926761521439207102326901989305979568108484187907826687760156957046573976094538435741313058406689093254583082456103905517857959425433680194399389160480361835721233084311662707068206531727799180939403436382081813162288189506024969534841202103902105407699364796625908057508203466493297778958755819963201740518274480302795085116510413142465358741411907086589289176956035024955200808891119067842640308242278313957195943409069794351720574635138814485857267441826929911255576313416135534030734194536912008851958548201231412859403384326258938024922858432649046295819816880700191619466942588358606466389702191923586265213735104151841394106432491896549659411803515468550638617763442286736604982464876896704433818061443221825054294277378760199765044994260978230766977761085249181274140117411128927231284220347145388419596385158221265491245080033869209673480320442707913653580059056359025336515076960575640883776241279089416480278784267738102849746496333793563824336311087548651678271875481991170030241246765665341749585010606615503421445708657222006714337488472411092476756211370983351625423798920299159718427823019117311223047464423702688768066736479545900090129742172326897920904515030472652425169924900548861174492340974921024006793323264776614570978886140348801525472423163796799768879670316346485370964900952719505895930049538739905966423656209855575212248572349374578436188022440034245518571089238447571889338437508375098913306207275927580420740060459067314966825631100341123425365570949139523395385556217014588186874304663404834069715585444079748086390832227152586553174288751474529542502818983766993685159369047162356512602142999736127951647487413276892290965002702177558419859180392928210168882269982297259658563849711627722210680343314093680227236487510724181763293403232697720010370267721973685377457064059622005692200757368115551296162378229757158353316540103738049155110949426747117113319273825265035542642118722381565081314662695887500283430492568561725561383876281171267247397364086756816885403664814537272766066553035354786113621066142137802877258859139053541943865748516813777405577464336392985360453162346211474312477265781175926847048967954179068931203216317394878014219155574498054670201668387643641430017493648944724609471933712583037190704119595577787768965355608517277927076469421456227414564659298425343191125385001012482779220717648090447778962381977331966056907354769613103876459627743451154834717568684523842966506087994422942114969499288232104579294532802679980650787815492956076317746335245315266402794746103416448470002202434723976306658552788174337310060107710281140610335949001653535823569909981392331588226461650664727246769863918774779042092538451133447041998938096903134177112696131476374889005781431189305237736239691293250814126615953278452992154973970095552351903561302019435113665945576939897782673360509220802927082941586293522328826637266451539585250870254663310332403675602984709814042139111165293502415722647780753684678208010630812026819532967300906188447955144389484694268969558685933447298002486450002421177391730992873176086260911208277925400401889546325339111182192663869894469946528515580907302604654249072788519389549945330895636179685813342109747810028981855581724702205357170032586813723158173066002940693753766396165662538509049205592221807702380607815245035192994350090449443144247755516193596704433679067113963827989184247975163789441679204284783599668995711188039554674229341265491692486380676073282759847504381270437375712473254588770671929342297678205795575818412503962332420301920674940336882486500194429698200746331023461601478378976275640388267036719061185990196112771706307223934582907000328439756613932040264194635992930526798265158008686385705535804145559362826803287498062555418434088735045087491265600704858610424475509455740862882561827922649300153069686006566924630579965579700364087040008440919299399886709859425315475426624562515949144834608340455238211517575075241815360477258968377798968811789988923019507696747921039945481418891678536902229260320020128964471795830380617538466248043271982038719483625342908914035391364369974637540552657330998107761225464611491735251875451910906519532752833018097777178973420682594738315829147681195901948628552513188761719584846800805017467809474202253665668562869333791611023513998121465598889999260222300856597109137195002337134540143732503999351077344798850535837252805673390219893427734375636738219552261523648082424864560180856534367008520199173935506667224143653417132006738547557522333044180976340623060628582745429569686145229137507016883214204355366124887234312351887980741998430665903549439123599396880670039808903833868201983047963853288066466564090213049815900208393730367620817198532453269408515074170876841199771204914332858530539849411378087495877642217392227204876190887786285827592239882881148019424393929283077880947677715493825910300987937822710910444061206557464521413903604410571168822860975241844528040191714438380697675416492816850310716941633437907570844223043424663375369098513862544444028899841092150850342234828193986302542040562888201591790731793922833588524120023609602454944465533639661907161686325775250397807778576604362477709154489581170406859033130757801740910787990428605691960061540565158621505212200241878061887028661674666700704938743188711196886678203296149681883825391425998904262753467033173316649798630219809691664491048452824186171893695770635615322800455123659409230752434784799984284635149308887528636250356894973698905238901422291406921265756632967771032510830833005127719175713706227875027893778634829252063873783432196844351059812564293843648281608291956179153535229959201445273210744323343383732849135763476178656793895593613327721468872425529054603474104309006984042725098323402678660748601701249064830486687056505037550539613286793419636372526635514715307814980433760989986735626046562630961201349277174919022894742946481952881933717210008403414484862347462798172387476659342468776282218097291898736400251335602275586381590164005217574049603565759271287175362889354404794652346788188536646886567526543613857275416684250116726458063647175037724254298819378199201643251032469489024757522842910763533946598139932793726586447726678735476948879301345061105234217736390079179382461834706998402884056805636802788298540365853457981761953009455488150231072862898965600606542684123739315957072550398304657660505451093160514192735765039632442224758885955032231403785159606318292659890342634041884765143953309276300910924092829283506620258698467509370312503088247577708260626331409235665549010277315895307175073318483418359859648138968086164653862670830797547538439194492231938616321288044120180820021849491488883264104675409635402939621774518516526074234166188939104738868581084842819281714434804238617156058143517886736608589306417443281299600548561909422390909341126453310083322476720365307645228152574318313187624051105823844166468113952872931500703116885469652615352661527790147795244425001914962251339180343673713403862244564145043014535182065005125592438475725984796678812317516696487362612599736480683034754476099613605777496753740862047650259206585223093499080094214846256218770444518865471205625064127250788181159726447142305138147846976929693412104707732106945605585622386409096507635288881497333297767555753772417086733364876354057667553042939499597109163142738492640586351954347138727698572201044813582763421756984484112085487321615378196734377504010678633838734086386153702620578829727577115785227030968446020141714102421623477595690034926931831836089911829510349693070071958153242738389611564926733591374755709216085991830385439036369976621529243333509541863287101593323525009067143582487056817469106637196898506836125034173398201993672754472962747740683807011767614329178538069000707523380628984030545326585485227072781782957342738553960029965555809529523663184023910656371675646443679180542865774047784663147244779221696589617002148874454148624973127450144134095921503170982771083810534841183326730731465677172852607269141332384135804181037596196986664025576790564710861593346299694954885820445386100212683637302996883031304267180699985877545828808888630634658379877014861700522648981909023807860005975820463721831415266740907067917169354141234798167447687219192648585496144068638428905462207579127009250092485497645691981206023389491040704876889678756725721556263269129982090530477839070320917730258943063762495009640720689575951853860749516681713500416121608060585564108409348863236942922889404391347668256199785141742931599036975865454277893593013582924754034443044176250303870665086387838757106819533615428054211287095789207349069681207456140783472635414532210948299539465959053962576534406723301334817138937337773057320632727674131805254728091106394810764196959827649495660622965489395810470425070142661856908281477083503825130403062961919474676311450044378292138239377867492922571417855708838980862532860962536968247382510438141364617908909657356621676036726398305899536881368928370731101413241071462064152609970284956546586839714987943587674203271579417999290060870312696485248550808941131703052574542078199214590612184196210308005087333441461823301553340320933963708998084757771643969067773977660670213874709721722382473902840134970409286069769674379809417814036417238536066858418447459924495281056409594186134276810366813945183093640886556204540303628789931413696170900390321065067675754540984886789487485550501712690650722954746813315839583784776111090803408794698783578631357813332186900390164861398372635441644272124729734619978994382289184295805500664784483326499511819704115075243256611746808738399023506391313449855508196545315576802160077171637586177469061922520528691503155695909538573603584340849631476750212489053739689555954631283946481250256856492859624091406913928381837561474597796735651625665686406523872523505453224312845185924487129066975257948388943232044034564467943357211318969382894914561116798966869165167967899785755586631014489270795955338899135526432680922413900291705226684640443867451006307217597525433006141908768916296123076095527772054531469998379215253740250746342522096405685340602955947197059900391372899847005619540122234536384991554024226772145645650374074537929215391813836583788467797004763003767893692631819085052249955389167495784128841349241675937079295013104786931188672813714684766845143439456442400878212574998734930113437344081473494661049301235645912831803199957470109438823279129840336466720481604410270341497883002267117760308429269926027486809842960906006344494084735848686707935588611375936929123256047558686988816410129495783324779485220799021940263507958238946580636420239238788208626785948046636118719042302736612944859371482828623153598156288148552426391606947270013968525458301432438814432299182199488692994658108643488647620298239500989717643696710745431481603432861771507099877741920037221532680878638864257430353787741499454508627858781087897426119849489442611512842772617336943123819463812131112341331424965057760867125788427925244157525953240699898233648567846328915602416483165991395377214116440161290106371815712140258804429472468217970682462971601371780550543253076753698173569508126426321654510739431232441173092750320182566971282657398523275422856120603861290379969407731599201692902590760337144356890758882712537162104338416540926694364544200308146207279049309079973439023091472727911358525362252998107404409853319061287791961839763829396152850407368085383031529000610869378453364977795300880817924758744656303365702272390824692364980266767799845290854525784592942282934917945268638263847043272254380779850022157509663743302290467683288681673349962175972848210586993379019975802717609513877541445674234538195428501023873027055420478102406814658651043139777157584948046698454395619398743753954019047063683305317150466119394550415322288837274982813184788875454712005349017380564121847262239445537918840340336794262383272449605253748759956601427409561282732973037809830692314776013744877160108134834148752108596607168648805360672077360178833166499118404428058750874717107315167697039746331454178981608122268989657209297910844168748849417411028871193660449885488388457333463787193399366672602954445354717676021580257605040554504199819248068483527791803432797199947184734461914552176976018350143156159632148563415921061591386698385376620259751235928879191344797301805125955869612263981349886945560812124714985446396022299113769573474525756801024892353908578839758690480947973934540923267812413474914690568373056421164410502925792151245189013979200611146075218231037174147450049393336945049543312020118820928473122406497735806942815686841716430170460942490095933520618096597771803644328472437268533433752127780905877537281125228277773548029235730007194690717527301760159009172519099563641966709630765594025083452362571444912270124952826854655675697220362189356526451844946104205770321166705936015844793531673947504742596515767069738101532569280451122819026567875602178693014147741443253489342610857668432763081012936765647913695460557212056652604872706733685079423715579998259820795414329993951973772859246184476401198805927041549630416652083122445601078953342455460846641220387216980484092032225752509625033959896831609464784992558722945645483321931047844920098183402488297222572163620219533525977450818737985665417285891412701463904754738895148607372343039580493249143679379138796800773670804708621079680615236580637403307259844312235505678047415056978450504390269307427145120038135024479672203296390087226500522620042920203674194975493500228650854043408193011852967160512578524684519883694098745148594890508431461540764062331399561561443357489684431821882067722416839946369346792987176223602669002244797601878358883559628054322181432405086540152579797127709953287074170005419771362132699214746508002978060672141192019797634637853933196833998560402943565906638470926492470603323005603442632875001603545149759316300493741541917488894361625040162721807965658894321676888492917337762589631945671097623320768090657367469752700604887526064462700840825768924608627245892589299016054232709298702150005068448399621279250951661805643227341426262378183421226260646395819453211085815558494613424460080316861561806422224823749251030879775075331950438660410657965439261973253699861374870802267310569599993967547033394216085023193229559068130441083547890161586085326461412950036312131563594757182924004642924427594268123705490569602696727982372212601816165304386650441463845417387027244226010874277633881533743776108321411604043504995925564202006534255412544422330952833512050947031871553650404596484586095984673419595116395816320205197138373903167120947644884464324871365463114190406992141904280925076402596615497269856405234873346176159227323393449509922780190778849759501677045167975429294127720893119053040916914303887113256803458805541950945048638257418428364126783201972807032267869629405143466325104948343575226422885082692709438949730344556853472442835483576802081445627916190915614122867504918776611512512813944518738348816828184436404500216671997424562392273497339497817897635047087290805580076810286122651334662407381485516363869984769895153085215660931860816388273489871504153021873249442788334509352852186736907028146816359842792872940474429709281396843958397903216163305588763830999534814927101743221885077590602636732822570964093381371609200250858321752694844440296718757467471813660879472064434681193474435196928857746704384685274653140834037950437631618633979774548634526101917212805623680798432651520774911598284317696109139404767398856191044811810077153904437189920016982398326854082377594965667731355278325932709409065953417700511556896126387875366076707310562110637678283951258885360656220900294477831083934784018854930490466847046063625246601485943406787688466111324728871039257875220863035805528719141165339204688669746153815754505452220976442822748947271739148638514374322010168068248578124550780903669031344174093892332602789623443510196352089616991886719149205155209528155038404399684434820619269707557795498599537019335719585673144616396987386611454212323068877376292052409788819622145356622818528280172457050923625992253961172291831072577154235252921240489661595399566665559511083752912798631992376985824600923761257138712142784846615542292690505207762977033842623706009258366784762786942804352175577068553426426647179224334325012819795045813668904947237737207422713233854783471859723272412880131795905306620916037644487729529436471210502250035123172292747762423802805109576362313604133950865570845124978656106610560178414263358556767410379480807519812588328507280824825485636173383528018714341465727397241451260874770815632567042115903138200198498345935455546133918067827239075645908854859521201263000448092992097346350612783774725512040061338976006180900738413805289958216639960139494533572841732771412584766192625951593641803699627252712285038239526283259368277190024107607097575534757650450041310892396244155561296018069219958676562003935853462810902149596764641593595073609770613953556394723295440316642553957590168232931414461050463948090250981515957295274044100171764288838116108356639420463675067385928101315834438835834331218972021823041295496740316307029682816597853447001061470157346089649918245905399242425713699031304238059767809027484156359570440844322382897238145026640489964178964481079692680607638983746817248395140702755825273173829063440451198028730629313724810448621189315386938215971001954893312480765268783877007284916197240690674613083646423525867482847868427773034215298062891977946562104662040142220556158389636499059965316716441133043172022808191988416576224676366286440210398673234416709593391560863980739791482084293843572853301982173312119530515813233482905826661873008576885962632174812485850910706085398226831098630102017720400371096020593537885273700425560185077669194446472455423058053966883639816702372080539381895563967664972771981838434836475896400889988263269071357791548703455166421773780043804890343551321330006087664003574254333961905605180174293266596339561635588012088570725942901781672342987906183535397777438058702888964007479890682855642143213291056286596303937099986375397153288999886641672916487093568150763194451101460499765022386559683714280788429638925966222725699164313273684947306853018661536869681336544681658631634259667208470554596417394561202081983998082900237541649333380518497724693889799100105093158917362688743389164086933883441035238581194171925046440208591366073867379510668674893269721289455238953912497079390055565340699895179393985064363767904850872807078054496886523966988046946820326621720411224911815203603036551929289070766005177755431895972908788408967965103311360750355254400388127602458445527751027041657523629383418898125950324654063138046262407566996593757045143288375206126189404014667815285496024857762627156941627102424600995341697954039033829346174375068346521508631890336621055634285752979744742269652065349142879774389155156062845527768588577762445222387615562922239353007984475683464084183856149406646408247395644340470767312855765849292927800974393775904015722761380281108177816249886076088607490235990488213114991896031352514096129810540921604434055533196225410086086026440063318503248176725490581504880560539334916768741715256201755681835627920490437740826091452677204219020716119860066000018025500652974234723090480749818696136934800946833994113607263556859486230772750537356292839214131319075398101231511254169005813031878066316825066399162722186194047204048530444486284030935144330746446560969606372200311810117632647973462872424985109006685883899400348102742637326734547555328160599545543043059022606227812241840154083749933484984360987277997200173393509676014681152914292937153965272306310657759879326314821282620012351169282538149556172589135232106196069453509881600401718993696065183149578708275330712358245204221738660259801975646758994204466205948224609257714335056021119872306116147114093576742442865239339783033445891925364130048823960826719884953014674589760675969349443458948016413750520900230653934585881032824665615331016908925301137339529081099781185822880355786672260146861988488830784577906121966218979427072990795264342348062077948777436953108365439088266449934104509172452022024037129252901658299108784091601045940018401290191977958972524593790261183403188189145897439691191859981016310172820915832654662068478842935226133980256108062396268610681158380064790287425391696278179333866553543256871617606730889294163782680815908254503212286583279543830163635220544174475458993159472151830514451372858552796800573542852826865657169537714233581856454904736261946272728649453483502702884710781575322718805114014767369837954664167275730807412160260536292373190999832873392360773130967150733061844787676449505051818236024091768278652864579467870304335493131467007605736856632203427542298803955655975033051089980098103469787198230170297603285795640555548036879632345201275704250321421954489517560009535272812659700619112158235957715085519922512753307463897023752657031452331629121336428170346222439896265584129771569332650683185013348329426721565763419827943219741918398058098819699374233903927850897836921609735661027876189393437035272183726655483506752800769872496994742297523450606951665131184135479070283473112197608268686475876462325041549159697111612058963210939282677570717021010405453336770476053199333224748321101891913657047767578595551805461462805234004463181053533582785827143923977812528942381774315577541093468543049226555432398122361316109696897409563473387699568958401640513122827599873803759066981437568841782764866934555708673806077157133748129058034078180146185071125228939584935402943990146135409000732930707982716867098412642786246157048481410798594057802477948290107967225950809661923739733322732535844433028804224977912924863149357398963773460943099413330547498469024086462010800576358972853440740115870031167598329396767861561973517031472130079805783534680221475633982082367221872192841409658048563327114989719385152305725483080346091864438566014669222286544791567270858090067638565578672231948719451192375135323913339575779996310424386989828633192190588622537161906350181869760160667094555282599370207618569840270013356443404330482517022258376846780777461187238475028601137644465334246411773855765626775160368042416590916858578046672873688281316867085753553868071277491800891482225235631388220245848698014009209350671776792519982811923034512001146152523172418220989263125834774357445246445704681235394060000927968659758981963706429504518948673186436902452890683473037139713833486113950270719736243466146264798201891219726763174949269499313043660685633536258880417866484033274289142885654139440522632614625618173113560811516137135954318797774003086298820815271915939101157615282373787021205489555107665922453745947860895326923905703047700103646996008480931000305717083165614865276318273472189363975919193708512786960263491706214009521455548535902077213262264656183623484250418424891536931869942854175467400861008366489175042553135258155297318681209685625853165138369352049666022347198591639201903810247529501813919433394842051443747899900704493722823792479240574665168460662144276120549096044756046987281945893363668200052690809656195477256991701922243195803975664823552930657934734542592904855190330182654980645463680741241251144341728884687727143989873781873217331294865468415510534115813209633527244297645094370501764437163273812108383366705032338176798407620607326447347711053443724196775138234212370535918416575104067595462244619578150560917509114286016621997159912954197605657930516203047516149656838493503438926801719344403906873772581448922197927949346669904414554803251399409031879134875405555519955322979017194213908937840019888333980918899751594149052987777531103514256597347656436796529304651063542050909833803196298297828558911567190355133366758002087594991307907375006087732215081470765083282854428343354931967490811682732065627783171153446350645131841924248642773134406667679927822761830706428754065827910826285930793801999069257117780353508544532426929074657209800309088268314980930659960046319957212078591079519609201368813707067402067584493996651755571971297814123080019104110642215045190492179994474322577811343700096701251085664591770365264816952216893724277606346708129379490610822675468102849139583583343243910570492375230928466481265829847590580281716319763202283165468824829235676631734286847686774629495174790017900359626129973833285277137112089412132392129072299285412431763339394392566585788387843858528650594866783228777828596394334603461408213606460884939522159600699935658633538852610676672418656016158798596000630009812439585572708507662268197194188863496366093621924904218956128010937560541732426651818242547636392914410618286560385403004436811724396980094089489579534662378037350132114596882905285490584024172606287472511483591526921393384073777382175999907185371418636355136626885004658086833481147524347700256330328044176045947761653519172139457109968609353662924668986181237478671540554557786735073730489396389855555649792062593729520888862432683060127093931789468723489679803677862085497938960828574082977847823583897684251282092539582444075230195169496050570400377734002561192970744171947011163911719920911846176324312747085518056939326244394693400440741215691754575320037331957861442045395693680568192650515643893870905052912611486467660663970727673982376489366015433372086156780093828440799453014523530497663697916942469993773227974229004349333941381259625571517780283831915284907962741514555844699339991356295542307419388683133375968188313701204313283127434413255809980157307200216599544992071041140236014413091630647936942230385065887602244019011059635630823422115688435348598318336203023489086739541235488204958788886535809611485335145519665519472824045210124603706755456825750372613347643571340812587988455591722482317294900987813314671863778860731857271791765253967250872109493630512809789152401295305840900975449470374850781429288272073276143114899681803941980578957638889216428758986174693492108751109099305751481060013695864038709936747756239050151848872235455665110912151459996659284472691760687381393829220514379807578166320254889764453957519513119081850978480095652398996376379276442872509337517249894536731857701479399876142806070497677958971504382557119443554909821355004888085125336393210164104431857154210098431762007441463751388351019124999199497391828119270902636683300166131915521100669711312838807034817173829843138584778107108354855325190567248503220255962183372406516975293082056798115816541396514260052200858207102199334653844661570241644590887245414408790873661473661016128071189987815657359001655323393521706574895689894384197192329200636726298842417833084305617543820839466575771661972597106652019012448722132877644273493523290417102862776557212320154887748741624124104041682958422687444352556522466982039516780298883500616546041954882712511046421308474471457811855565616320447157994339796881495450136452758171492854991488339386763531067536033636304004958353954511159310640670459482826782242137770753093435405754371017976772010674270952321873510011441188976850823393184781766952542499885267535063766475497481179523609313612564972449600088423721587706402000754567472379726274755689795276540787954875548839594621684082406453656920404285586424773361210761375591006748314800713240639012679927097381304777074093047995649224056134180666307257166202848553740766960836212488720589249123557414954209787236026890762335989077924033459897308264695574898454157174610797947295891022521004965575086197322815496531655834647627794944121828925958217422532053478733698575007367314112479696251410814877756963827335488163456981538588263290615934283200855093847944056165323310720977530019271023508541909041904031754766571098942762216450090482613015920894962706331936701482524647936452397999973294857744881541767354796821496266592077180416784940687648560589506185659234350773257259164947077216165694747428839627031841329242366809147290022827295817382703324415876973833739127161050789514028949811348904809090145766320664239396387994872412993768836151978332315688214908839968100569657705766145227723608757373367418288491287854782539453944231036786158690637860089245805427024783136058303493276351050404202324368794041601120552736915721601915179410692250489360645629756605559460850958418059355544936705152766620849882584009875218037175315880717895951086194417255289666814408162996693888889101716936487399887458398208896872619981400983605859676374089087518754972401186959671316447329618199950511197813619083991333120482831612705728266003167144209517050486297482401334383300647631352047717221223336007689800306427190704792288051048407839108606253574461955672522074398557297568834296935209657301698057719395349624317997378065423913898487227854900363664164563177187923826681396176135528845063934730113551379324195936975211327862980560820243917138945734171053029623748175780484618980427819292548677319938959637216994459013744415280700257778546193927468703561980654024066459595006106502046844660051043204061834745064064741710920477255074350050503291660993070739197975738773253051158246868554217610939422678337464353114984427155999793467102526718291345559067262799387653498293786716010082997082283612399749280501380938099181364909635309845171847119089860368697164204119371516729305899617697003093258750937873651187096067066961246340222961290286147466055396964509148661637612647066933435350394544753691870451841227615101017108840209084322938239731801226147777475675914862578272530976813806378833223740389139738972573285183902060837309308691066058027708648262292516669646713950862837509029753588551229908800795217848941199847370117162041198259535922159146741670280553749658844836527049594482980317618444713301378120823820930120745207585409479051824220151346746407502387436317919533099599656679569273637655168584834494345951486969085932962273017655415043944051840755810207817893196892060271627807578981389548198885431834243778606802453984468586737709632991891658431419670112761609497848398280348876699394993955442285060681907436732990204669794504569423390600648699725896406818992114692771671408604533794491763738383682683676446250631512443887459473855993969117128310299289081008765854528329416977207166929696512037230449328245904779265663315374075302443969374622303024466212262212084504549130299889512222246886374454355522616618252390242206984260792008071714468533748074743648318664932119948657333901342280971658215569087381171542418283317674580183634889351118023588688471377989907402619613869094612924190274118975286934135563148372306737069059920658689494953458163269742657661823920293334859979467832281918191021160945905752946236828218886214790626823854978193671705007679131679749486671412895399463513050120419234701163077401323339632950503843183883732357430134743581595735129077087873310622513584540084393028454633500802882932908025042304198306990029836849628655438152233496766491763901436761379362305288102791532024395580801927816311767593120433733753607165022371777554633705570915727521973664870906385879269340781451091946603926031767175401961462900432733699130549082086897925671839679113317996782093123390063375765893462478018336734815238771672287936044763199384192735657935158936219356563414970982074035657350819685604603845855112258754917600923333589491515703565988754440144439871063652192361652890102664842788097470238911438065048925567722877520996106144803228237220086235020964867585445671233527622256460011087059682930836337884112975366422681449167476814100291768670817156262832128264673303489800213597126450310873521252417508174192997727840435881872524781604117729457788725026758461815996730639195463195086200903892819939969665931824383741297992751321754376920405916216398066066815851200844860779646616008277640812368476716163900273832689957027690345136020529248264235577983509452875743641730023886351870061260714811506724255302537959014757798330463751642099625872849009060069004318234480137060114251322567497443410636205462611101274564284216544501653696849774499083205165234900443007338132073466823200829699451520561685170373274577285963141520524625811519367695032360407377936517467530137393306421553476623288412777577683211978726140769078314619396258005211673719519015471402539368576497224246000736595593848525257869693240117492701624501473198883989492090460592132063217582612067193038190055042065689303335494656809580149552095299403070066852914215162350540843499414483446596309057388365661284285636516300755750236915359563997268501192885778530294073971127795146873325948588294491500864061070397819614954062018854232758388593918229088871653066824733401677593935972188579927636387106191112214277735321541170686725825097114469814551557480914016631130445253567186656646517730928203487251526116542451610548687547414314730570318367740780692165764849890069977236142796480070886007601000280665989038620269285390999548094575711727196621300314867454971881900284850830003124629982472615267431246582878577512930424281082720692373374995128355301158729342879356903007052451626387382933835708247782692559370098345670806152798754290053117976170951705121105672668567343390490182564249461789655154739481713154360525328964105939902109494964921873838048346901416842038026136484431601906806786415874587276836903690758398557223383223050372641209092361391042999749131538391510149106435637141054971659925621509246072762164189244717578709747666505900667657610470863236397150676233292660219366771865702682822830852636773529383949321337232372908846142947768467170444212591121536129151968036160305653298203808220064189263888579671619964926007032716144896714219149140188114965681178147325692863102182648060367536302358245313945244533868467358801070822080461550225913141709558625596080276029586153701353868979588805731731333543744403185773060271786908723153742723898113287661310259905988129968641028561974693719032016727625781087965900906017190163355793924745250405299514971418545362812578245766587404163151478903990014395312835558629399630292864087766324799608170599838649986641909475797421329034148929837340237298290197661288796814954328930144769760763436448013600648059275584780431257558000764140888215101621937559323585881618416058275993350217119223330760888507337759075157072792966647296987878997588040616652029896586798411885146692340532804136256840937999173796359086631560384540161937042793338250832535222817273286759300513018384723099765820126311736641003825973036631134988153589202311814960128153165721954736144247857163096972234831302514466209553738225186397727004701254572653113201745280214116236740099358996572497162154460851001752207299624842015371127336973096959225592182153839488806915459397988208530311009987991675872537986920862542855857155949313776451826609274942811352906564079404179957991272048921521252453703553106208209891974062721603836919393377708635059277860529536043880056161853535164820725740062577339302324266847363212190897640191409414446164654773907731928783995815525503384266613373764748404520055197142607779348157221890542474767183365457914312999014404063447824770877596246281725805893755415732836807507010113254393297613264456467944598914634436576968113802814219106175805611014285891508884450770518714521789005907665233744089499869914223383135401005652065610950609897365892710009252939906259919927386955807743230291502703374119559624419466517316692191828404823169976150371424751004019263790940983854093971410293107200963423024761466058018932652715094102910382326617738759504161488075346207130298073168936898389785176053271045308659394591992759262627822240401864304064191568309886186350685213766015944518049535959161533343895033939363973890344352627421760190928022392772614313796684481669448422037664521405928536740582875934185914650158376597187535165449827885850502660445671100513192147007189422925159308313255316345062063056766372646120160977066133809664119329905088078732015228696190676912335923244384524161519418813019433005140379148911611448402166417049598391406981026484196444600642952604177257487932752724664120069626022833360559922170209785450173997170570650988454496305587685322606684593957147597549836540867932788176894037865511259674946024494768972322498193140821277482628956149476229111741640310656652264994045873034902157199561569177510825450197041929747812558874677269471514808750736936526744373622491493802687596963097094002214730255021847783305617414418771556926816155982663821555151044528062059372820591651014639473298437084578932871865780005757730381217415956332553686697505844755688966707390026353033833883410765254147470587980298023864380863047238792934474320222781485525533773637984396010997625793138672598409416010887536705311521394571390808458581005566117145993109182735512373435424352496378018167957826507624192765894820876750143081061472143594478432504843884847983189947538092172827171122219179838563221074331994335041451001690613172917145852602674873937406220740833428195727629724602337521939649808864217150573010231117340846596579906926716685690696895933564811259932070116759061249800581355636695006777578914943613261790779663802521811476144184817235930740280129253580330874163259683011053788525174007780964838598551779858832972249943428406682637234541153629113724787160285883367299255021163459260275809811178869853439010840873990461863244835260685188040723202167466377695417307042030190947230842932352653768630366297655531959023842687238680054482863753095846323447595795206275168787825307117773887100645830610306212448903804526806219413084816350761283151071746933995560544106163954055462449941801740494607922444664116240967172156578665626186395911274696243827424107013909671144441810816233318693016629099876376912021828290847938842232283861886027147482781269957333581841988237870729179031910261389986827780658253907671584089086165887834753628712419995266019901201993218104278838605512519144735354729173833499994167641837296861522950524497270098090496149805931610204544770697619752602862047560340238723425821602552188722616929072366214817310573831426384459371419783525152333905313899903599502018255443028511913281519335543076063710584448918899499108656433383905256265176328594695665409952832666342486910550260564872022798794106743714445959744030827082394157280184690051854638758133764742127972489791305099497869604159516179108599455139951885670882793508117942429693739927625184596632989634927945815175715491975597514979280577946099633149665581522171814017247188326793594121875319075639635660657043917141352358520920120946442119678151004309360264407324788294160692887747535109975314058092556509268798654689955521579605407454215324245880447288296416441608450846184282875835484460930923853171332504449834906210703954801564427644455619340373740682794036763332969395516590262081448230373858536697272624983316823507574930216009954383771497194993380251869804098632067808712224150237576392535354974781599178302990442342005308537768329599518423019049083591978315366788415798793840306304118578705739556830233459268553984927524101745438693338127707676334732391225992471964841116627262311848825614607274132909681457298209887498455627105338833062971598616654901719267518704810275411105156575974392284727425854935140624352792394116336359748098463077720576574544081208788515471415716398991013091908823156491709630750555669771709066090011456980141662554672601993908408569991094341888523527617047828376848852896330907299268519574556839433064151489262829175072517532000392078961080866249787275958228433345346863226068983764698875156564769548855409678412005110689944295933835485529577700009942705781186588704586838492257945020484804080108446396022375914121947342101708892573602491060684631738520804249766350126822779510930639491707833971758266847802073024553351904361987638536527873357294554257877062551950493442183319158549567223097781358984042567839678270736890383047612007603532594367050586802198802596105837486011926019754811158668805302374408746458339214535504512600844641920878545654068479719675503098694600547946318908652680347701199513496390403861324018025555300918800089621579491156664685446237836416090839975005860895970042859719837752527709695819083072849113480179651552542285132962416269661665190680731829210006516011840845571556936229862721538229053146642023707176116955111913429622242680528244695945727147718091588038769238219958135989112217980049901473153811144345727463884034128134765780888205871534123739975846655760095682263414348263448284295148345777803267582788031337943582035268175721271872324615848090499665664349068776097169398827645573212886218432382925469670930406356336717148564413132548314394223843539484283325604881856973665314576731462201144629979837486344111616874739757131850831524984344431683913922570995288054057508969477280412001985160423059251193497523083522386093535244310917333323726111505970117057616269090426949039190483301027334718808507647983395797623342635009473393826241901544341390408208013855444695456701049881234192252022893913115729331179525655387818443393391468599770401042691857420049221874599420961589922843731234085485205999379300002232882439666414903957053748626451935981048557329903216807433174749049000952973306463141895386117918095768416833062495281217403334596286157322362508796957237422747470040015711801747500635858484780024730765326067476314141851916645534517372580452079500207749503467407711732045403977428920959049254653317105937396289221312202571846536523050812168978769457010949111819450264913796758626606344972304196077295515286084833668083351254481421847020768880921022431664688023434631293202861905207653592659548690551277701549818729386684514213097638434655190100691250319053829997066549035900623788499534462943826027350936572734364023358622737640737364881227785752790285985070449586590865671089454695337498471866539852868347457330021905210644644661796277698190476750885018158582958186620030598765711126691883865267663679093033806998171463087567981299535175913362811099037760992030696688393437701832175813369616808716040156841407834224829429984832523261549077404477016451920112310320814018069828684876794102848654185730205306977046255429136467340589265392825280180000838023095332342875356732851245712341854951647285759316321964148139551627317794205169427423011303421630947051782975748050804892170249338081645153823358314318684620752588103607152491448026260183940079901891279647038580709825647964600491425361119469066071913116296424528305554957894749692152881536495384435944205858725581061851830231916913136244758517385288537033812961204680143784684362544941650452974784506294537670875470799633900367712168863095993709682338193846329927797416346085156068174487888426855069003941253755631736534361129188686811207641224050685888197257674482243816700557041713085018687780867561724826349325509109188722413734982270884053366366603626406521820021542117107345698172048440178227742688224397137001714130133360593119182231443874926620490148638939336137724835163716418650132124855953567179752452580512484889572225435590407137940115079803606544278093474700115856240854104027424963578974938401818270781829186268843956371848567227872363130023318950691422477472856900067597791268583791258714276915394433627958947162367140282461721173923017250025231820197555328292834716264254679214316691699429173759365175078739469809894206761783322121953543991629870469155400762473073508061379629228602392115327474537257924911704978802351867711536455886410867880728586169465982035747212871415311851532830286662541485165950866489492099158358949118088496882162268836823542583772008577649884983058519371599841820106829015801189293385275995365340524451608213623682477392392655854286318505629310478193437775782730050679683603109376668407154927079599232262492571266325145663213648997696968882834635459719461523508666704816394680996534450346030620687049940941607608023592574801314885817324040615141388486409116056079396059979951798690512005607812352170360888200923229680615704545746360885238511441071445065322291863253393504500250816384847093494952088173447106008106742942059681424422027587262964780157794775698113724952244890405643606976126187808654473998481571509718152025903209523473242998944691208937803604409407933745105165753546621909012092147316263133600677567578652537160357190836410382286142872414588224353293889266407122750581721380493830892544138390765320429902678833861741436245079600652449079530016553202279864967482560814007404067651514507372848665521570150044058541449951272974853707489489046614301819266316012687477213745861960095234588279850222749438648909856724027232158956170551906730288861306019577763887271271699880279209474017792480452636880636982046776245312578432491838025915628196416984425254254406398568835851241553006308480814732572849881509420083127101912961416079375692415221345601992138108050889684227048299512311092604688019653970607936967300283657357601529058053088632904356160720876388207678913568240157953573225330385131524136257612100815196247388698086524182073684386435654647610758584909550135890224817983566748736010980611143200914917656432753676777622531351868352366963841706852926499901483179582730411932595366745924223238536823749811880206966842883807380596068340465841237400240754790691499891042086852782954417628607437713643422423475346223108640458444223483210335979506016215964433552626822711395417512457744660593696069597386907247806126392390640263988564456125467060012335749727417636562774007446121218376110403931949643229022986433749159528883329505220408201601052028008571579032897481517364771724580017868352613936863674618216951696990576136813864176198503335337784164645653944794162822348930486104837515444003493453283264689292725987329782227938816168328681130772651276750609273192091853517490500494907640107327172998765859129690416390587704761208456500385677156443852564053794016775077382847913549580722667362044473752817769583085772168324382907110328782731561807603200430082617905085542087438788348511773550831071183810973879587832840539823941336637182738429316334083476472130042073313396253065262207874381301445471161862284447752179284241114594783679875653281126789565630862322567126672615696569605145581259185530595953465926567135529332566766308903181468814705331350456485432079776433605000205022678206631194300528831496780577479383831155956014646663687629932228297555848652044288088435595184751707312421139761800531648942891193136919206257386476100531585048036923745611654267413157857839841174515692909167926160704428171353174781339843636270041397232551083020796120224100574420202837194191715151019281473377176725467055487381769422950616117047345367042527983433564577788108912822829354237321561791214632826440301205315042084220671856835945419823102041972866610338949231353056121565838947476681249363224212342462720167435940963639471285176316845538253862874992746630157588100015013777217892511992912444012959172152696620023468437097257241239815298133611412216910779206148548355483734330640487302592922693381089112852272840389867526094920074526198728998163306011207142130320722241923286433027859859625883388441058131829841411515799592740142458957076248686666143876163073589957843736190075462971118813230961117446334153038241729437186140107098295537965885780418730804810430931825913077509806671371395958527710436067940347650053726501335470658933975850473077708095212291522669695652222076471439598503110540912305318934188506938172241877647681946296104853311886239697618926456427947131028221806729832433721501251920337129313940872234811707997023351457694617476940987129947175122831752657827208153460132287237699904907943969694653278828313196296331734837011431206804073465476079054495864662470144430982947123130289171371001158250420062028219829704413280142881037615568125265659594237942063118558762132162966598942331175223655799180529227668146898705695250064547538552788269410853395411785105044426388718400569727856422764874264140459675315338782788168566148178413928969749025441638225267269491152025246987593273707104823284677301159165502196241438025290787926271808750008182263264355822450894906857390391381760686006680417896518768011461178031779761855582717897848358252908677191651611096290328812258018523960347672467004359946947498323674511223964572269511106022221266366398360699259226997880999509216651149171283046156697783611826920071255791417268417071518251676351235761667359051890346993420846483493711309578631011803436205332290241184822814714669267473694188846839360177474593168174859704252572053900022111652245791795912882334287269864746681747009386078363923476210371723481565601105496547072078789897968155634086432689324135504114446285734845011338677364975534842444931677610072282580092227548698947201238807683422978687623984971425358762068661740998109802632603945876734952096368217392593007840248093348933517840128256673194627880967806575325805834133698820563813359565647565068141926273190662394205849904257373702565772374033733420692059597346470869523633462146016962809001143384485010368760379938367861675476374101774293416163460650628804311359478187553471497143973836040734679893862786069353219831522637294794940801290895825888940369686433453810964346579782997935989612553253751838902577888074732686634059816189483736191495613222002115557248971335130379084917107092148554742484922883821033788922364149004468713423322219840961799859486176906380325036225071460851781975780686060663554705801229101058070400021498864928055603127643212023973691922343373749032152379708237214965756479693525536377390379954118570698755637305364568542632149577610276524754810741975671930035826879601185930196972805040132423728116086899226025630772098702286371562271882918154595406102507437836797779767195624744022188155386353716185574882389196842504793513178041043904662243921831526131513472484350230136159718384220227614722566034792814014215729830698113519836646085955939229704249142871453208336231497507158382236212505450884019501954855083629640125569069496884400101172222001595307997970394581678939609668538157912200185850538963197032342550510714185258951737584526198208522638621873589281503309411266613444393488699028595458511627429437245209754230255007844836037938362967156347248319779630064462465982812681786060392178128337354575836681389315235590955157055375946008740003566797608362013117020942357334332897056289712348631317704613378460417751730160070280958963890585227818323710762523761421153224761326622861319093308170707588503568926678140544115839638886753127949909685564473571880676430666719591801333311445043342138549804325387115717837023130905172323554299876326889828918218522479317083603516944851529404371727972017721415104728071543164723781478898023151871862068541050074018357239785553958371199272389004666023081617481740893488815013692391914922736562202443733714489095382602594184047867968396518666949681163743106695884277978356985217452196554634547754002192130909228423614066010301045699917303671372537904978602724592492092861830830887498344462614858641953853553580581658323893820263366746920809300175933368118853683694595866442542115043746221845485340540429725866710673167234197478540158114906313064627994627537638455766913426830172911550224787101287803364349912828003475764048215855570487207170576886108879652507694405008152795133559584586295469911172222201444929752491795996471228501631931928457933697977912395653012083619329961698050660668567027694683551142019331607796438976631423463108783825272888545835563119207654147613619637574120147381858315674031536671680404608880134057200190510368271973036683772348601014146603722036168591183810408987939887961484540549866987882663830637653381885503457221475710660110996382428969905213652118023855045830793809338758987958847213758357325813704268830777018310190869101528257309483287109944858871566149082080763785800216312859041944289418802474761176978660190789976855431034490444539492421413145580265568353962995839607279015227400617150668722095271075422918996910244979892110897067675355555635622780178276005463620510581261233610482194356813535964137783348642962531314494881453691219532641309316888532680926614107033761388766195653731048999941734978843360796396211316951208717471089209873489352752914219389548570986962362205188299297413196905914167123690944504884664095535681579506988605061016681741175636247631063690144044731254908052340161060894979053182287631258549713787168594381186537917155212470087443468060648394773244350688324772622876081158230461676390750471037201658575611396396219392508689887674914479338344541725764068874166949102175419505174495445106647499533130827948752613342159101640876969696778380935251905211188522852354801737148119014998958224642430422803500410910045804673214048288835108115250118254358651908104807229013947655083629575961605023968227124343731790564895504791578423240343113021196656095294566223020895858648412344574711448624575293719789717867495082400866623626177219634193251229849950664856577812859477999130874576637233240982654984495482406154115484819896191273015825667921060151269322262088179118751552272514699907551887497338700209182835280277474557777155381596122317993362998034410788412264217485828767968249953366448620144304605673465322418404905282609365872309311660092059538943568555410510108388913696420028582260580230982685026698835634678164335067567625412484522165357081267226661946955345683071365150416350110322738087722482909582750757468494847562725814164862257748648555780644706085100838593170203335931939179317961548112985719074016658798313184925984059464072418503505195951546537258154746839805638349443550041909630070968452209923460813097264769477764039935633472444382390404735271834888906847585764097055537752487922551915763891506515845739803831820418779066613718277829395293266034846000336103642531767472921597404767051811342050722887870140092430081795547449485835939073859167090062910364148814944167289915250571979496984626568732022124799216386605990073275210919370108797859076155925527054058929166942414071856781747877230733556100044803109096819716569354732902567854670800638674339457332568990282131968499375704670863604600011774708643262993800726163122885906328219801024700748579832818567586389299454089584167482053618168082741030838913107155167632092155554717749643535644712704298537016940563271923957081348867351361316647755547223771699548910191877954964342607497080105953357011670304716562045909699178926340983597219679912874360552395629632381694821067797208601196844098239783979983999775646475160892584952078718536905306595685034753114474494220842581245953996961472872107295255226227610931017348822077618940836830433980323836965750999696185409287364002705106948409004145851604333634476203168689241664750833091942021382319720590649994996812397035083777164418164103891845994032115257466938240087787792395443757364547193659462979248953833265204374818002700548790136213389772270273823925288002424820341446926541907800030748021835550136470656937499453016090678917655971213438453887518762471569462424606716992726640284646726924225099712634526964796876192856020777165573849681660100283367299578903309976607233238961749876114972819033555532230837797458298986165516080099889040381391585997181502405992030979365173711371348357222322455953514542888888561139147849361489118470908790016366165231639202902089059636688945681398646592113083441565368979800839332414063831641500971738648491829219500111464390117365117190135914529579874455142271108975751224803130003179031717508050834336887459896902018370531614210149853029748876304890276593181411282680991857866188899821320283052217424073345809016170541685344036795789800415471540536735315692902233021219191574597711896603885427535431191092614172321955089074840407776569512710098855108488795573574922760702978337274125208345460834139904347492340841242071603178283406015116609607613475903193240477642106677627002290021494565672858599216122951869042392749665725740266854569892191012598143887228224914627108029207573659630688482966115243957683202970982152426207017397088962339896106322065226514492787021579478500727383556894610396128059894150396337233242350433677416807440690575728936279669719277512938228763898467383817041119385487179130830311355724044175997374224909623831916207893185674016258439043359495008835683007361221553697158581747820146045176991920131874336751537342315286586336603281464593943245394933097086439678802826701069526275068117725271737397102979685033386830772570198623470665109959460780425295634245098682391857039316919511352376911329025679635659236955126592820071110794997229174357880505074674943819563278091011143937966519476846108723543907612115185117109479153420887668175417793742629470100565211282097494836008627745009374058512934533463697468646283506557178288010356247240359308824579912519150239429996907841696133398560504658163791745771064553148061367166316720242019530712363844477122340197074072189709889599189321131386310477511748430941509117178933589233348603314049952834893593757910342826302310335025095000170115198277863873696533671094865086844333251736958118639108435871618056249309816027112327518470908240315191154834162172066064704292027473648056969066864991140988161666020593821825072933304871358057695429646589633835569415085514562263982085942152363751325399671675747723385819313524576814842485129343629379521482724499994754140143985242610721888731598866365427496839180710250799118598439661369405659879564209699517264941884253812396356249499697074833128171771300401307213824685020019580169029758772898763034554213111390771715550090452509273210944044258406062972080456385436872778363887993414388365633379949458270193750746818651993331471617825670732044748279274604411446354557975671204449725569474371056879090883991351282714658725081790358833825331177139125329223032401867089412112910133391473412861211263686952039074331513062567106344824278935063618884036717293371668201739650462413330807591620839319468591059716103160079602061904580705707267326287122443190141524101401100805354118829213479835840336400876553423731704374614626512887407303904726148040381010012380792233486485993660657508322582156392447169128548324117514259800840665959360962123801685375901056208758037768418266031602864290253600932104347624700688652934412156049120124509936677400038087074986383870578154853002862497809642530583841021508404746156467648866490550575622647882357281088579120725052476945031584898124513759554575417006463996058654524522614274549531638269905041458520454484296710722187778510321360916977437208508138739948249067242484094840532759989119681211765904340149915018208789924409334393084736202855783040149496772878778969588437133629570821132250839828422426295855139778320510062504098661569719950890578487261321055746274040678590236606878329521841612959462387590362624284435870177453158075211141336882979916255823877955454306070082775930038399573995196620125230898291877501416233664865556679846380588903323342373407953142561369724187262053516990697102478489097829756185022866965352756622034002116372677910843829673332183221340043300197487176536093138074235160809339283521935163736683269517371122270838612074079180094318939500678746573597592642341713517167261471142324924904379681797587347052453776132932084828766595957376453943812456660042201044679125427225815313237284599993358867930912462437523365592051357707431682629426669925312670954346560846102348614490646332410849346208307951522762962785934707930950514405328127642417647498501062398278310093144394678173950227804575050903917356662006773324921411804868139854641345992022845991542179140839914902159076787623831491367722840490315745112879096475913496825322918683933682785299950450411828275481847013093902059075817226144356712921418486020217302926989318969115016610700547283047718724357633305106027902894382941646229528589592001426189973620109176662384028154273570907682056184315193730387777870070725124987195459233065227539794376387614667566360072336471481042164971414860812434584481493447099836181936337939020340106750441462123817121105662461568279295979122609589670347996049435117078752732905684405152214147697570076298972243167489283973565372025702797902400780414935894194380228764160124039293665413847404978499702032067276166977272636178877793594701237390691051501789119286443818450190698152237563205703797360592803990051851631290966292766243930182603120124047238840759871551077569534405097759779727601986495841400429567982876290104724852322584641123464045453132862879096051561781976564896678256506896711140038681520854342692911006251971694539098480787337073222403099360911060594026567477916081455784035058159381600392782769263173703843012441228420546620581206230428167337826278353109465309743676056356016960126369582307831976955265186119597940023264613938782590251398363301859352997308842638063414157914663522582781696692043352095573145721232373162681715263125863112080907610006117864564639714458805567090135945147822648438382691254158748943273862028478101932720161380549214860028744356671124964566607502962466543567538277654439927547705091659390366885448663560388312721769037778123861158990878566924032088450841142064914726766102361995573484877970696999591951879130600745714326102742686636996555340632450635987532549496482336763195174996576672973669211549391181452358269032061910472061409500043108376117538029077811091562387586026100631877816859534355165893844113045832680992694658289616763440193962005162726216907872618339143674660296447999161229397451812416949945085856190928919251252224936706904774586098132307079874541768338742630162575776982074730139378295501408138030061057441358180794942840805690088379968822038207070658645161323864442476138938810340842226896785108225818137989160796162116671551099368207914515896584248877392112005772158289434918015028686660109499743140318418276184714548553495121537043427060022257170620009401823899043829879934292910909038276082715479834863884125771155766116791497680262271683108871774109772332580776797591224039896416638763844494228029217376588360366751328294233161136681625323467952251271036887281017273682386591486175783646621544936647701399429747414537015258317362502918072304666228629723269901864994520987505406057197179758741723964563464728240869566026342585313704420095215699824346325725209768162338487282266022929115636981750960780211069795099412969766138338464660130407718921977967338244038573507217338656573384457726619336207590853050687769822201418632017766467721820535070063185470404906955821804211161165856015672367418492221238607894783550418731564550256126963923657667036888250150927261443697030059555009675346984371913319163420228510166997976943194860042893887638126409461468010023823500588116426087274748845304929102851776634740317808998282834162399175570546097037639973835445279084536038672635525317520429389330271694378331520506385277441208558804281234724093428061411782307679245848881790412790249492121827303534882710071594228463467513815693631282326880473575881970176375152059948931646841970322558693139498665227406903634282927951241533664628428086456564426432811607416925451834982405306676881787194775777351809908763147194941410103424760726283985656472961863582737368387896950130627817387852185708900947035250142321088463921297740834181724948541176539865180666359493963001250493262212699068430125002285931196870153454131723476158100858331719271620010931722282492574383550868641220555285303345644814249295774871138340997944390577760702215784326108714788183827586333310246682770983329389391425400518094990213095818567278190119973466498339238418268886542007337742182579964014776604291865395512758888774281564670485962819725360557210140745658929072424242756790270324027015312718583897407912422625818348776230010266322744417316216068628635677497235652435974938578927235592239136624856368046225419159818256374141904553884417641929733060760205715115160596652377561591188985552101205265674402585812943224740429956541367793948740209729528107308471228668095026763617637150192718639798335990593345577940732606776288731343581380066026372151224079361310919069574280701332887980532939785464790904620959689286675121874872757817753495366447640996704737428823331269042012766414411144204985745370600889919526403620002940261659727626443864601755939052878245249536728681194617065745904129663650115277464157681966564459177223017772324938254664515674556644521131203182467703879091118710005858298276145335067821226293432397576132789147232960416435934532179643779843827057933899801013129959430841008765583255386895681358012999728424981508973811984569771811957898418703880810234721560920791661480619286285311331640942877007604602514661349037975178547450720153551658037524811319994473810421788509547794618146492443797658211848554550941393977572320565873282158261627886470488606721802298395899750401973640798882715778737458434516320908587539019277113951630079788131582783127304869786449466206759987835775373886745954418799851345705422297769698575066883042726989101312280317744289389758692055283230021403305742996160000160288042447075241767117945428418880004958740681784406379923920573768538534064467379905897959426718170902614546412012614200254456830629632223568301609348929667972922530945671777391894163038283905916742848636847744387360816387768999927998712622154180875148097772473206073881842388785914846715218423844765859142990789421359602402593631094942094971604675522065580935052222660401136913761431910758188311716453879783789118867130077130788958332169995341551313420098853856308376356419731215829096132300536321734450601598054517331383020695933146872901019441102765285609378687906585250480699063260629788553717678042644247343925161116650579388562315816841431974530756952993130955718521283072333685576842935895610090267800645713624054391276594809954209818134652375207144153285678165929920169137833725500434470471116356659701654943379823546902957594989606820495345509831378237605373201328241527676023940216922396132489879902847104710159252610907857184346607950186256055083174555962655958264377472043623476424760454057386601606817808560014978158898843677892446094511987547854043753787465865861018818191994890264227200821719330410734785225148317652501751766076135462243764633109813363608219493805364915704681697174149849525181177660282230590716471408362168149811113072475952128735679645786168889844050210724426028693265050796622992482443819285297846838240930296654633779722204780462485099226233135755732226462188961626767509301233204003371138937200883993687787270073603153301913638376034738888763637188203416555134923517052473162706780100272669708099396052686721682914551627776523479917291513172668993947355273994534626364353898606093155905943491945321686090703460031505334006918578825647608245367665528171470500794658770874559899040630958376926417182994864117453456518179612883631750023854060375009271710848493438169156017959623049369149179146431994422396975531739868088681757089478415064667784599226810328134866734689065513279184291401850794221962028135195444614837963859422419472580041877959977802454265370918276670733878293631765293791368834371511241874247674261541001423036904329561749961855956151766638171971476711996767131849916631712217259456001982873297397991124463998284035883272235759444554188854967801640676092679379453864970267003391803538463031964669854176507811317250223225989620943716974666668260160494231228341591426628997994140718661360350948459688071065633437883895020915328331242858540001240839238725526280619106023733706293399045371500135181032147788692305505563932722928510449173209714039102105849630526323923120242380227481787465106177192605212807857596289920874335212493817241038522389124125798006500296537970124227313421957981970104515539796407856701032879355158791199600900885539641280835420510216498768637976945587065773706660224091272905117785136817844075833915360153602218661183642664963572039578365166206789665338350305032773118387245989973470788223607423097634953302391652071677290371178199099640745197877052324097312656795786349529467144137030474583722346764447871514096814629667928006629460343710046643560721354039737004428031376516021026617260073794462986506009097264335881898329767986356435700415478176524118642035188295658215604415374958614811718026878048418740200721522512783737678464929735104663724891785247759771918594959156260646671674982292493246946747213635173326768777621914165623025696528437083880733872441191679391297582175573166097914139514321822934282674565523053586270433959605794872097343885606276168847638866520227467851926991662915425477316702177555037298654112888294259326929465446460022192370921035095306374160406346346536986974936945104339411899567344940586824122806667365788327374872496169967995864240947987171724453116370276918755604307623653884774632047695821712013865136939100359642471029387090191171871030251273208387362475651187664176172666354222704746280057475364753790185262129494251106875984736760738514235842312783940120441710904955212106012903405263190407042935437740991349046554525425486328854633371087659756718286196188259882004571423220470355462844735848645114875624232487172243203985614002580676302350370496964194540301828761040445416524264768121918053845764082048617540673789906856630453270684639302800690770582806314166677330307100549261333939677873532394877727973274351401924157665516488848045249176089038942512467097476737687919143910311299191701094488674542439675431278132678875932738759519392534339624758105603375216531401307734448671719543978948396390469773573457584847270757767309331701239803339343525556449753583863911224180061117716428312049983789241711985323666276195967257146099578838214070968280324815982142296810540876561890908490565569634141932984488175034010311428329631073227203778941326945044381673151032306118597001274440766909352240157397149683600897913930154504434540519138640086433254491582592326860142081465670410465189360244312486317538378064875866645453467339938441415110160615422883539617884000699518963029890387881671004473850539862605326139130349842286788578976147169816647055404675409396256669840653452717217342003568235164037587274898578731850771874599356937015234088507970505830680517799773026932851588898186196145707852934155361646455695365689244980084956168251112642179788431588241351616682359607521683288537689561116690670606169873877156877377313707069767910502315088682867881931124463158315234976857207259366560398239693499759533954165017616358963157131328824286096199341240124542702198662167226671876511892124447990596716128614037995306149909026485941337244657559213209126680054380006651464190463042251683041451716158068258037822305030076633462589541948643959733820864364720675725247608862591915901439130714963689630722243393074473155226251181474485316718727671310074337391043993043509013683919366309700528182291073721749559590831640465539217341854735936888092748006841983951831808147884891537954048239320492441625069536329349896431547099522190022016673259378971911126317731818821695329953747706987357446011372674267850545911198918841266707448292082339628355897964085916995666387889171194313996653394070250474724948091178182220512865593895057136291388850821253353435765995679412473884491288050603176256809066688619584862721269689289277966220524785613809031693855612423742191728258381497591948000080757740886284121501370485997705626198664723672726861687231946672002302490680610587815425972934473723289705220512978235067732387406455388508173086312722512923249839459395888515359346763970699976005580155284977409856431059332756747296259588268379509113309483580669003450843533959561963358273718236491740391595117967588805367342283714421059937744466531251495233134542053425307769973526218753541699759131617997300628284220745192597008713363868093895904043266555522451282222177107452338652909772036719438865306061298013407831360083362827128537932919317067147321037133809195737783224917498691436732830310273503324718072350941995537537234561793924590049785047250700171760865639261283399854892613074963960971162415649889969839602346346923616769700458164603237483211597850350501428061497607936624956808604944487825625758747191675646421570199417718691576654367256467636481149140834450244057976896813633202161093485693737365909572472874994122084828903139230327874982290542903932064066826310167846957040158835978327868263035764490388638116437921561295957751446710825473025953195218871663964323717502292927619471985049282354319714199243405473021104292778616390624905481286905498432207121372386034429255724588098341249906423683854436740626272098593848801504700038812267902269875727274854407423347036423967754729089844430228434855495653209163857974030594026884651001175285327262844346339471966387245968388964118950258852718144080962026655960654922665125398098831113248135285528000696669005267053329361155874154167174271597117112046470924164475502149662814080301998129415481608788066799701633404077515672582314484794458486572968435391094081411824565186281628469909942024642804885597719964998579809619602165117365851695608762122783391271884094539092817600898252077365793051307938199308199890929329889107825021307791477497708971366251505375252269280686182448458301688035246969720061668512842850031001412080837602038981884573388130033932890078348113313722220815728651293599018880973471750195135991406399959634656354531895228869311867323548894173592530234573836647749223277488467692274608826395097227197237673424725939540483660970427743770756044480528960509382517983400825637609625692139073882307641936897476503628355599628872876464741137229982038023570052076435361851521780745899191545223270186451992542489179053522422271765819520709896802809764323286781056788104897940386074451872164832702076995683247627483344286091721430996781200861506762696534937818863283313717856946736347992767496135349144349402038250301470111798967542253821018990750620194316168013231944132593087970166877727717460965709846458298983297822451172654604901743077771247528190198088843970518188934980216145558656401815291596503267720511379657525507529692320314737758326021948518342234415893443121099667828162242102588746788115671423524962398250197559099469137538496053412654653670970598828723431847217626781947657660905170598775439832154570567726727659637185033048697264061808547215238587805244327703887511556742792701826416662009758280066851369005920070328401262065977439431188822418257466885757115818013869102958257599638242714999658585104187045591539152721372808700511902547120937947749674100712406695426277482245750243459070294127259531138908926223682675145789712909841596958719627462265351363151041454332358408540047073194714812114914371013275783582415583967912478890805070125580523523689503038726302713075081556456187711039752023423798285673849298599446203366971988092872610582018426255820674190847159885534660736601820079774396389988951004172172248832410007683114072744749432288176527244873544043458953858903729014437712710212620861439721780700318706030527075845423962306710289667504714076361945104758454203802035941949229301818152343329329204968675284591001667852554038603702895595014588972438909793180364804941591296312416499520526888953729008013051937117983842243278511422225393560100717184094090924189588278741941098972820317623432544564833045124499172106722143119374620584343273744497207904774734591920425148111810465502922571199338862577971327180774304589410781353568215027846640146639951585798828075084616743398382869040463268928514095432177653313513246599402362887985349510147472326264498563770720103343157772585115330498713891600027478428900347248460230834252400262774006535562522261989347731178440368785546166029578891506845550903427313835409244607313242656237813516573960225953872239479252057218785291365362086044173694163093666269229968388937425710538551669828998250760241774668433543916439169583081463714369713472671851132800429857687564839710591622019132484868332681568037374165790865743545318530223803714530087223899198386353064829644023424361585666379297770056331043949036344837097372742001334908872398109593570219727048679268861400596523179638917083854744246853592549425465076248770313078979582918338184533605069834801937142850726013495533592860873125588017974208440630593438802287389990536330446940843538178889290367552813406612405914194190786030564857903035259398446688495018616368352058770909495342502116588733786054098023162513334800920095308364282848219572102540656216012380052058815313545191872715425887286865682972150560777547676906416843247606989790211837757330022500236554602803086428310862667793984380091161884792048760099410128159973431848774771562857919654867616848288304546650297847611498239535608851514676023469326893435952934823191696229439949011280278401999605722388369694177004640714169453679582745728442216673873153822830377633088295383120572126507250274443881792589769614306736474370180313089964000215546831385554977999138311822332905113660363248033128975843876872763446804356433414525678931167358469365947545686285336431045598042379143001651429858527535832628556631343534809737936338034049510678509074090811060988539386882325294489075301465889726657111707069898907900662741162274531806053205671829194251401242970323804760131833696494735807757040394316241662302342199237803277603260412278510456407452440557906904637834138667119973398074713551726897530911628410750300771335614833603076954282741609400192975776407780787325732964827690688349986844274975140033746105713360269313140465532233878702996439378401214553589288658962595375805330097054843182345695123474257886845564457134948885966653177582853045425698769001721226775227250112387436504904349127377558871072618735914308680965075716482833376473751533509006934475373137845479815140532496725455176445192781016935128828486823690106188131904911140972925922818682724553636154826406062575696379091061545185913435092627183584175233000166177789701001518187055220382621074829964343764184042259572554133691531623651901978439408820272272099041876099112068685121140778832921826004685972374386915636126287876525291042577190151570584950677906002957369505231813705498951478729503912006118628564108285028387279450296612280797544200904801990803377175638033417141155353751651188995584724792048489856426935943373275079862944846740125360654624386201753906812782276916411999669155119704477230577308594360689018003802852474024241294728952355793106602712519347034955979330842459308307591180797714143374832130870189974284344993712225877247021982526533799833975403157526697219602632622115060953914889687594479574272965694837316582211872018383068158048341328168632808550975822027808796727506367584225229312895127595162535912560016538647994280354598859950816037868676583250836962507664729050591532914378079144569609520095744115416908932101839358422326492516131062419902305925027820960467958908222637146187288516240349215779505370527102892483944882510001840211198230129419063431056024591571028526074209159604753491541665959506910911857326331953253970900241345549904994361986389966287892319685992049526443224764989659272499084128738780734493634626058118522748486577831493319749747347501479099613789657398513250180310537033929341010395974005077713722045121381997991028856154774908551869194112268979079399133647159845391558364146352961270722669974925021529995647350068908541630882438306138249446076368910794617291417396868447346751836424139748214574412575672086585032669376618221275315575146210275831805251288836616752803251287431890290113418740856564828966921489609815356355347182274890227365707117713374064763870906572558782973942005810650822329101250030232358462220932970002430313007878144052308246477568947856764392650640427196341869464744234123937632543639662281348591079784031361987482185042130953618847205107473746698870568600346008863668431682211298917534360321445958455405525114933541116908910826854857269635203552126618961593876376875358118945372957706263750490681283224200350919192223536413442524057688653162243394484767782556309127969973673031026102967224590703685803425066738281618456880638145013012368463864627521322432899940487998015057322847724086653692402488230746418590311428194081846128969876021056910285182536631048791795670104363836441436859236224197363031547959076127423650054434202949376727711220354402250100407048623300624725643569237056407357969825190185519580209013812507494208002800582370117838467778669498965769977129969112284082887488145906619323807079054186886311941327818860715027494786124247146897340255218721020678347373004862075992651994294923391772795486151299467364217449229718961885254187593656685740533185964405980086335649319253732319909797384515056407608055580128924378037808256823565775503605864369232453378374353613593684556155358693780395132168188444649768088095154672007861129833397096909541564020867976229949455269147893002210952090194297270633540644075998813210000178560455275138843702076208637012655290467938397560486831961786869378931959572510053203797463557119334299629618862410913086474873919836002322081161862148077181134970575614823949277383642151647130485291396315628272900042823280679589774937454875513371121488354154391314105215160513187843702438680341150800982010849110083171410429080968149204594495177877525058819333820111909116177773150801049119701473793888474776199914154833662395927849843450190299050591103128847224462671110136133756652229715720890449240779462393737916869195763202158816408629361332008363192656122215719974753991042645423707778496321845407222142759541002862827019837934737949043512043538687336335378433294603280592227408502893892657001961852636187121899807282816114419514292554394012682612608481244957258516695216833160816989224262331078328474346158248404003054964825712544508295165034551812805736488531410744020267173502031070290043434231439313901667487144022306153959247925635749829584977266211133211260086038877845618053820524941425402418529727399417617969991986300466817056227428134966654501111018870174504556026081923781786259291117253518545802019619095447888334915608885192009996195019033069364260912351381141372406319467251806907435611171976247872576224149684968566140150358191788092582890245237057818414065892080898751233523124674026341753677352771373920343451728529222077833698021657831367655594494902398874825971612766918051841058924520924071219655585141275896737473676668140858415830254494968191136206992049428536423440437558210582021541069294887382120312640126098964423066925328294167814989987040513781369003188186820648068800475814110732806847543415428106583625038697688123032355654496231211437430785356160559330082450938572380376624332157032576182768425386539743298637855865297633356496413484425295747080907153444057910458503270000177313034567110011718870075579920312986063811771194946966947488611154557662280119745193449983857161741449746312282543421559325190789061554315411016075260478919357986781543119496758347427127110774458735739074153580726289986209112093467775873746475270042281423549366741830410183727981639831772864464456084580915061596969381313101749909429988851110056570051423814181528405431752674998689939991673017972833656059230407992669813880005818702386603390775521024225863603717924820593023794362651820415226564386584192295497239663319996494932082945985664131871044615930008251966411341463425272252613119244940749366118350233812686511059182796672247228737725003737397278620773494734749639236530659543268801312252279729910570109942466426959093459004741431101188875285298480457800569526986855915727722537786234601551019831856042358316580480976421042347289668951018321034375543874305419133978556646176008088466430425495989164793343476575542581031173658335475171430753391998451415903596598495666895351320421816728742986798020863573498490963531802461918030704008400368992642193662157375404627861947605675616630339176136926649774969753534365317545789541559582967167706179130764345317219262527450105703012236912369283088269342205349078885814664348878609999532645015774126951117423181666394083773152657700761334095856482164628637609052767725745346885220730004403564521920960542070102942199758672676986329192550659772400511563726239016793736634436956675373990970410371635700983905178769806210543679167252211257707009958762254769758130875035572472693576570485526193441702908036023325160152395075143874102403003184241720920937950694454486569148408082420993307634468648423193300910439234134340437604588303897997406667652820172321880870544095662978645920550836748217972401387720595562427375031322172123976700254651023107892719454185610811150531017622275163328341866261828150843451126870037058881712423808231021630766489201841793103806110557924037153893038143692324161722967774446255532760616344132070642780157436779843309554296720679477553008795386191970092477853354533861999055165980878216189465301533518313342086544021238465840870537757806101857302245726452406288242459414888541114894962779228375744332702510620318044432746415330286780222478693111927129865072381273628377958452516378230852151147559599609729226485724833055940391559540341243750142058521313029843594127064858208977511711059851514912353728774434706620809197110549211338981342008366536265802513638938335996998672626045623703869599031546069659206205724395069109391983719805265513228985451172538018094452122594923476446203314280374886151776878512810482932592314690322162066407835207565871281790360235004953478173611783086341770890196849915120360307735274437789445506086020239404260536085503788389587894925690030845609636742475152824788450951658300827226292478204131804345848422764407824186996124339896157821555003396666533827024500647070169363072188799643582620142402531479569372076866752781535422190197140920469485737518117439882726707939270209924298952728760452044721150161695186138960220038240950757424068578896111055414392007236390442862020486686242865684867739806210424434973313178359572767151187231749778998574170513672917304384179014652250076501364554377566912801993025715581913812575071882661975043583488376906251924204519667139016691321533894987945013373172565880851707814812232229625487920131955197171328293353228498542989646158434466468450981245827700325725560871705988276553153681737361954657727878344274754812196743597198154421769496896599317993820576964611023331312518206868498999413078200260622390840840129906423848546657328922669523156316837987381192335625133459024497162355852635739604614292978593930926535856183190192653599084823942598382199748825787261763272373075571176616909407152521155670830189638971641158536327199222112414513295246385167432950017988645961670004092538832953763957425193758087494940858823823144939476654105918285072444703424664921072303021355434802176361356426506165995658758770126313342720450963055948599932947286531992094135114919943951965641856059834647756516003084932176994104284879458365716898256925905301320012485866942677044930771106661542351478984638969161680334070310521621132199451633700127497443527999543647418432369894953646053137555629740181219234385681454899617864436666512605185223394819147734021080828436203489897939192470739381165157657770994033697693589531034122650374342533330239137598990587201379206233105227689458496606930393651830513775636580669268674119787676373074016579256046824869166763257324250667416745921566666187932935974227481223588960688752722384634159484869414477248306010382092341362122725382507768254241751551001984944074449234309651702360592539023763126755230507834424840690953663802501752427159497728411487255429291273409578477251695159094588012991935002354074466974079605461015314330213558763566082240589633598443270056033751899749226359629730054216165508986122298344175099403603605151466076541379814440993031527255388928626247343003624937341468537974993802349316092108848269174159374870628286154777418937177269505002008509952058826672919943669621467673674512290904794488924657064179381593884803298902747355526745179460646865938733227282738780125576894621670672168007536295085498531048878324048149790744995509462478541259842360922050081249130059781611562655254314220643276745783190621888562904715526153764712068978589638167096706728514710724988276946522248451815031657921067924404407893737887480154185014168205742895145997037676298195510338191243840622388945621204067694004647394109581628745585913662241705341175412470376614366276886308291015374762970383145809517788631258158606075198276102344941949020166080449713160134794848280284528938724529324325979599048004635003605157593421480100890732305394598200439667509531751890881071987030610282421572931523043812685659418441762486918877140534095444989260449578972067907510889137386790120002674624340498739805790025480188735406908855586565596722938930171527155283776058518923640518215592955901163832248682062066599680883893892831021263661509536539615148780790880055246539472526076816536294479107278672338563116428836916963393541477513577194159427342279425033700725898289173834890627813254298712317424901526657746291041767906144096498215260422951664445417973612041843435275982083679983738205480363186484503285414705454982723909568207193987474734059943143853890662925168079031572431122721300495290251223372366760829968111773279426626432796161629540366194127490418694936394480200304754637854510235429719855062949509396149691022127887507296138286750362812482287267744041855073927759720998839066457345117403276927136783416893256149681159929791239938281855003236766583946797490207648959601073730795152633559237283729062020982509440022331162125520508242370692253696106910881201816507692363300598218215427939706053801887974748457852412980719018190972823116503077470250419564198193275095504524013721488555502050301005804982976264444441028720450345770547074485790340738464581099901159680955484693373354353887347180458778538657685549272641315366080109262827611371230475316680679340076228696777488350736356254574104252370173846846398974435953588984898667989303043798682921116814195760014584020865104711550562592726671409395790579361856542602726627868491407227348833422104521436557792058593388328191765007727096324229813697106651608320113371254131648405428656181122635780458889694117997882578149272141513909672503934697410856019821803256452023435013716878400569946410792547246538553840090527675830821024471382935844040629276086443148415489308573103387685542091535463532103315211753552270458011420834071468623957679493140997298981481028837586002908158110448820494849798303533816306379928124328301227938505143780443827278330221490314306135674228928795398727569625089486390556971559252874124962256435934505561185515765844343310256216170554618922358227047230456065765348542435495039305092340914436700747534515013518495795811495002234966045889394074075199369278946276187732307563780834628554364992496633091193091416258501784944387298797130573842543178175441365196382043568492248912147329974712029290971528977310869430562168734037475610022120795697003708613324411443466866885007037262122272116750358705041524455650844747805010308876498387468045791859808000687683583232173442225943304470779309640605139690001692684701009469361769155084661098903020738431865281832698250751548181757772521770995019639502388347049203348169529942012582588170676976341329930761205441819756131832856960348129412995985128689893831225316302934545370750245447263010761803801551455670944853561751075178860946081142120795340557176674043368203743678262113190484862876698475133249730164342250662284835482973281147606827365507138277422255585366938762880738772161653130786917928973874608677287202081108950564582555108654637741136837179624586290470131608453747784011520213726038259132081489957872543565479190990846795830442735439245272345675592295799637859572469441944710180399695787017867370506959664625517384556925626062702823419776612791753363627314155365035772985642231790601592018576392025429067685446525730051406274651710564246968427657354457988367875667456491800112070759491736192452910856657062018795662910572061742524598272016981014282664724008751790562330531111434388879110597385236588656223059271088606427477758271864028894538678165906636537940275025292308406301472711121984149711764769228205709862907809755411655930463242925610315442161634016263547456681097106975974566669209393824688057383070770812423483871485546255707275115684322698099860116889669886800613872577175999416671367034263027833335509001508471149961944948784228710442919360804356980977993135832526848350081441201875101412891625174504452620994823118505019450733214495583283086332153636555027017990972365684686838735061531726548587122133671788738198807672165552415930270649288799423259662553632283521457757049652450389341327029928900493631704352933880768883054546258206967482558361279387117631549640712156158695599882101206059773579075195827509160953749938711851937261405715766466845254096120454941253984641053523040283078766996321011074420021613082268448980698061851378070182710263467710572738585495564037992310291079307368450879145691304405963391069894026231566236364237513269525435311714156796028316494996120575821110215025522504584023198631914468788020380130480570954584350176212993720051280700755371400116294023791114741880489670976674028068415337938780479970191543960952544257070097278963468743609720945974402636705682089921681840156506851514992844319553219081405692015673380404059640903563130407512182714028201432613349226297977643870234472706835210660337976266272589795730571665235463299737912240611303069140101211783664693787497850903850826601864941032265666054237861136829859048449211973070651179681491808066952224346987438118371259414956918129227275096658810510337611063696905490457783185692401992819906147214249799924703542860786689084481588644377770549374646233022955467867942668131805953214533430037995086588426244382921698626414699572136239808073954505322528160684188549730955863737743340241490749628825442663622074583016303462548614091795264306324717143182493750486888905838692224000629217886125052213092441015787225849342252516957448642840518303928660892419072499724084238288831894416121357099947386391816000615555838312996635922636376266835724071083253534735386551227268060526953434769231213433023871342397011058736053390061314180899366451063608576151372779155233678233583979393323344033539199133304417401961205895391732268313294602999390377415311003670370467464313763240502059878701336731294659091985831217699447324267220377330853466726854314071970810881824417787688176209427982241309552772129863647748319940231613383809687189083946609977751685233818223583092817699152126663447526344065510813066725032766279691892436138319678794613796064903186120856014424433957430589764979871524743477649370867515112572016503682859106478808194115481232460644997633615258060182667530169320266854254472660420361391247537915347881140134111999051010736565574978576780602395730228231398136316940814222418026935587466062753211121491200529645600589025806097108768147718711458782573322447346672399981263461090653978121989148430816546841162501239380011261383410952038547511705845507493450126363181753548106885743593867771836726937414492359303082917212135688219924641381633405645670138275387578637846298778271985491435077612179945789463550825600663243783660556126638893388237900405076377881625451425378869147977149691240609428745095203260230908580183815427167806441910779924730567144478204632447918534742288384932452579614720174513710670636856027656462427369157683996264161365317193083112368597966674356104355636817123581849014842371478370609697024836236334395132390160595454879433763590198372297033808825893910664689726300362713041230610156147063197544222832527004892239765902536423982171450613209042266038270023363047625084046368807197248608595743092224567532057626787477359382699025045964714350332211711380489616694461248498865017646469217406785768014121173985853195973594762272210980604097894848141019751933166242853085242965370008144312091619688286786228288723851474693808151117801335069182763525822852118307064042097383062867537793214807433667156303751693519968884598744698632675565767835971197373921107025855881711932871230456380959160109330288684633329945998378377682382602893883694628067027040556294274682316691712969972371362964535327895992591111740033109953759563501540945347506895695984079091172196141840039158463159644317011999929199933827581006075572947945988840655802388274836057634249143278346498061331158900522132288233744116316454465946091908700386048761223727550029389893199208048150286635899888661858503614793939729518801394304222843682651188388579341897725997625489060194233713079990455561739845863805885545957301190054901466040380762552044900095152658095564700088577515637714698012777181730400717563207584489791095568765458898078061978460839481568429032572816155447536169535841876641652664770712380451340747904124719748092825764851234237691246144064922618513305936400336828865328582351573388867345977344640945629415348225909239451852343661579270677540147787919680231871824152216807479983572152799538028965415136207746278428327546695344493105053691045286534880799550955905067876484692540650555412925671802327443886822280808100485938620231413134235010832162204196895323227079695435435557419059756073462002722969506261575521306583666828242396209642892449430394187852776644114092990345018725642669852559819093804343409962188148267458936480337009453557583864924333397061466340553468261199688024293732621523138599487438891348357421109062268063594084105682266103523097874325564970554955661962691831003303549876593206746511832479520483905859402803320783868200366661097988015932803633245346117327332061132771751068502109676745405245188490374474976769156267618627749798892119101001509964041505946993921701983952299331142672902182932729880573831732558216174181646625627496380246219020728060519921067984045635552304516978554355007086452817195173707511400178673722239749717436107549525910341859869448204741303735674723334142464174269022320382170309906607802378338249789935478790257585471580133975954722532668025398608788177516681363478337895376188825369400788968660208821126708154758356940605426999019549788414699628029142883119787229995666736772775363478168529026583908458197220263760968893875932296259734216617686813376195735399940706440259586085314036928831683608219178312796786138988794628902604455042422355878018229804445899522939801571703017097447666423616404313051970487882708222752306769620404293614954085369004450816835113670265914349102202143288330120957768955633139318404751382810829953901307793607622764788660657439949464825791681681592831495816176907841759151702980715542068802254326599466562785676490630319605203741706549275182011276501377804606642762157501407742035164361378163024033289208740860770365430887029691334987206672535037206485593916494051089689691216045920120298775049411255101958638399543912173971524118342090708562666597881076044860161412893280913394439994426203244802884633116239632351814780839036612611500488901748367521228854282836898178139862330318943046457281138973512886072633717681815490257721127070108687217910011136511764966429863715690120196407244860470309949671124747344867799509797877521126747445966638937214093210531254739252061836684837265918195025087992067187404267133478772621256679945398570932849461397280829424753785280161877712793844661237388502667025422271938406144365812691135478106094266491057993970991899701982117847060285120215146250723653908485329756670636109103458075094770428194168278817761696985463146955574892762081020047223664647402185710921032688529061947960412643924371718708074309736987676603007358586525346727197267752343421244089573028936691525538993598841101083479861236862355128459003104124068850402312057034129561902760366134688586856942827319549802200340665831616244933569759861493173856262932104566618937876770751782038155423858691361507383553190992414372547836349218244334052215357832339729817037964076511705483205199114002896099802906598731637537267287415813405222902853430611577262082363678349506682767136815947159165905047808549732566527821258290042302951259377706266002014180206444432358470582204051361727997649964547555865040480011101273711205271917451117861400276825476178301073031116139601364747815685095490080779431512652581932784790338777604901176873040726612823174234693953136375082885580333981854536605206711668741143141895565917946175273987184397576818961846776764190249888847858737727710115670669371668807324499942877248636261562038667840490187894253774677798609851925892502524090446814176223874720565216025535545791204382306173974887805519762030856371461079057336951303475287903718610835976336433926232675994963981780328037879710920522657639096791018702014664063773151857834124227201294701639029106425726224591708596670540052047661645047290465704258844199599290860744760908290179549226749884192872501983992680926507244624444544200446224366488857854431604519717260620807662127518810367138542123616652724079981059050578331501797457359337567304963822552260956963548884343645169955864639428492094635707455744825549774768241251491729840654893496144099227616200314335075351888035561802037308108178212881334897989227328003041123372112278779987135399582948714971644759998770496076729807602324904014112937751545662208598728730341425085760973188570943003663974017545717594466994152770033931331970155129332127362581069072015488826444506149574694592100689137823475448315177153843226411584257266228528631703478756369041821925082963149122011031413870155071724729816201659649803774141855830606729555824544191162419151516718948283905175899370960113162634038503863371736677964445135596507547335667801396415064823271526069264234894222830839727630905444237612981524918125153169348656949675553341753991482141497245762146098272704943175862305111086355449610729609151118958639512842895640662179109239483574851250111459192383343830170868775737629458123835876001306043949058820913372581176395983812375710015223653292845517687429207764607697006839427987123482793868497152921750761807737811240495860947318452591533003321373399956169338659823355018726642084556944905217009735590119242777478949334670477231561726121868828998367405226849368146325550205796029662878016765821727927613846096122156222441670176650760054059476391030521368293494862588453547364639179932765053943910185127727989789317801713606152103060109597506358049985044930313440793385659626361151203241681688728048960416776536769745819580838971930448213189441596707377954526402526459193462636656923945708682678638237465436852310041696568675138263939924383762369161919464941067108060542297882946189422975622026608411592329054800399162894339836611062083442921574822460551623107307412927778120336732622270989326463105637885074317321124099568011614077899069362034598348609296502261771593327631160274116231688433325802515984233119784484124605705506720918515928077026957985873293133369522693730684025543923721843253651106570815631717528221652413221408474122244417151599449970756026472394846966049230727668894714886331773837734710398216774312035671363962585288582828787750979072504139485885158306958506519002316088844655488763734448543393005773838684260083271532968631744562602965289949992673150294542856567515889138439991168075613241037636753444006358180790819425496632136842980951099499008289604004987593219670669010212557935342977881802208845078330250125019074797033121298442902547267508989604450078385019460165529446591806003883149025289945601407054330524506779432652494409726522957788277955959589903488802640964028646041143997822889870261529991196704332430512204716667432436349678338702776501616378284374884016033434927816298179566791477644445271378699631774972078561788878653492026686850746020551789507720457555724898582693289384509200681391739892657646830659021564978528011786193180245203449887718590369769720428665220039732525801478045824074388263829293614781634717564216085214122543112127535432542295150032690673587989908867259387919869962539257367712559114493097195209234567577020688484991317508214436108876262492447664430992461410649750349613540099041044390248054360550879406517862264490907325001292313561887340615814687537832070126160731984842251710294044024692524121444993619603151228337634882368816301295903294159676680470127620558056448374319286729274201022188083746890888973963385731059265953744418865395181324644337457902239094744588614744189416175186950345340074658408398985575302626760690447687524311695000776115123377604603868012151827569364320011521596981032472230456659814828006854064073626220237444434205272199684191291218131425864298232516704906383682150416443789106574603985171757973703555100420216157885451322664600371847935464097466412163299632383132096739241441206092645231120027180104954702856297521920452053966347804594370526739049043560609789473931465580498914139967005411861502438866484315250245603079056790621285221297399934199726409450413204600556083276902919496754226888757471219282802217781865073979653525308827820247286949250388083943204374068736227266342382772397440353424810737200908787398676657592273580115348874770843901400581939594027505128821599551598026851122476846994338357673697970665824803941280199585605732134153492783630216820373846549390209244966967995967159543313087452079641037123051969964479545836928396728773747539160307560771654703547844977215677488380960620313389453011374922624253533999247474009394452907095535184934926478894641486588052752359319788721382999769783001413937772846018769652445729750402470228379350124203423540798775948489195558093843491779125141312204523734319808711845689239797684347286607578807445804793918641850086720927449303868069126759395247884036372471179088449729761449676232873445300721964602516119086052785500507664254606812223551098940487922050364706394041870956295409790167712332695131690566868470780097242133640235088246531507643728905896506402813182131390695439028531425652133472265768723312998424065725996576169215419409939265145952064780777975499429544464350372381537639649548513955054476332865456166402618504011248038432894275894101133144124058279569044300929538338868840534744078217397410921979188387118653309537380771681572188905462213204238416331831622808664580436089536976009474857966249268570709076437305041667335069161245662316973539974672106107536858525274134033352530458927143245869206249683735440196414678476569244995357145686223966935713579437305092091731316399654276218186972986883583509251252123383354613429093244088947772302854920887192757058836246088063457955743739852808541862409222164330799578495817274512780345618359501934228457390848783744297543989583032788617544567726338006729663518155834034441296105735659127525980983007454264521583934843776491586430370441010560506732460483900725763073173912979858224949686402737062511168285033006563181546821827364249092982468474786854398076953449562861651784405009288079897904212044678499236762142719119210718736132060396214048889546239358269412918732789818651685779733110917595887801974780333228634025101826010832152688265825001635533260603147142171723723845278756435833961601752800148732718027158541604988263544007618385968859827491457529430082293400496289358058887003218084163845917851958257619752152645355815595036457196234730548327766094051207620847849480764706734434626230651912418910427212988572334169464344103045989729096489855239264872998687240490810474808450352592457552979671036347338362687209339912540179668862420836065953670171764655358838891460462381273968365423664686523464870322350398154027386570561413287619952667786880536365688343447733023396933571705349357413152503634870750394324023453930094453817437679015581050370194458022202907508067494250490511198695559400190090564545528105078948041581177373491700714854144462221949174740878202496402620217911001090030981142393599587458998661602261603845872461604409520153431333456933442321914872659425508280704590357233699487096404189567133417736934675003073770985279354167539761621475352112606443161634758450515861551535793859957257617336626550104778398000681257604137360730883568616566429562046353346713284979258702218900353330379653446676697174456328497306478688644591566735632466943422042964252723327604982107500498774076501748736848844942531864456352861945585036846752610013832496855208349934761889345141310306127529666943554745077136620636819486666526884242894387130445524064349010186122416440407634424729891823004559665194916271842033148173858869998503279968513216806855278482497993373496913615652213582219021680533757395075228002710604895477219710593526935489943813364532703226465888224823546192116025588974052264523402995784767440366720889023703724977464598610538880474213443878632816109576891351918527143098435309866853335366481581886680392605036106557350997782337236095499979602821572072534880641342109704229864555625288166179078826601846170372023977677054303007007733759452402521292374641249883444411349852220889820007515872003681669400278114746375008052979063631468374421666600835452515305228527660137884791602853704189230465370762945959646267597101735312440846363914264754018690232090969332278787336119764597388644027816756340701041885012417280809627002349030994570510822594533874381722802191911548780330459032573089536192241304920306874062805672400253013302476046634551683854923655214155112716262128420576484407181962169607158120655702463807677442829796385630237971692365447195636516266752534486946231886120745208218617905819698539105405209011499977584010398966723311018182418988691733447171096775804422588477317411411068295247153335121632551347603675764335375203416847188859187008530346778909123881188935442038769835207901044300291105221580989179056599783886650661331505080636738919367128821126220372203337947619297531745495147764497389624192020250286724151169226621448798966029396640087787951158920160827711682625138421466150519028223000834696201879987913234409258252223186693610689156513301996622314222185622291749411476110497760729740117018620882546305026233850249182114064514510920846592163063054550467689082132322473604106357603772119039757701375155682740336108026906702816554353498537731310174535684204109450147895723383412792203880134004184083759244014062563354179839384354825693035485899197783139154927187046290828187546393861766651646213316091974012842128731795070694280138755124308866738121090621617680493895929768250860509271596584571835363654371648714201694946825049140945786759456396469484596493471176124855412433192057651024297502618884766818328701919290786300459170934876074816943140405185413338106967318322135055391188967000454813225214907513570175334615215568253880538284975879518674458956881885327081422300339763193737690878481189235962897151346287615384254183377867358043788569503014676281771778949694413206599322484626463729523945363000259996131654629548238984614240496219768483043839503896071448126597652428348048550581639791680188428414500431826346756616165506149956315936947447001818362209316986943400263296936102285622224784202764735423522784793162261307625356576679529566035453413527846875171819595671584096029469505613595765997291849933544158756978621179255180575604999370196809954800187978014141586266996059038245034553186581481256855075313845074066944890587236410537755213808622622881182794706287147667585527667221014557886084657919161026293907239986544329300825619736723016551025576725597906796613356035028523170741942290614856495155256283699391071877572116896349490336569053574018374009935545562443128435001516186588536320566166841828574360263573510558124360756659203365036009553415829926444379723044282809998962655710170918577178299564677021302277628914518481243792096444606347186284702091384483740379846729164498393388167003901547418309951175798792627775716955065969374211893011730228289632346296159178331956748026073096601960002349651568069969293830962089216038689265565823828982319563314068826563194937472281169295943678484598568926915227741863192189196423054354744860504445105398847837706965410113938663078954519601426874399575608831741444986467775650048925951354340605675897772619559721978432957299210597267619991192227951671400837185344091131419204010729018515903077240388634400696663614225369786289027723355739169957236660368829107482074293994365362246006245906099381901595964177775840052204905546876688552757828838640276303165074617891305691663139229070298112596070683952362173002671219115619717194863757677570744423410837714891220621673828429268702922939647520894572239582860202815587467040081430894201902159288932416092715432236827487799197595060622745196750958118029065622972758536759436648851844532822212941921972787801743373525986804377557526788174850432338384818271934562813517558571642486610245714589004322614129705912432645006698761626468359639842291182873176338704583895372042679903756525083818330285854702393240110716707516095055058046880750504227659284628134630707036982309904971505176077451226564194996760570794594608345061646505133184813190657041206446915702390327028012779838074381672300987065677778119178079125733274234030278494281603928420441045225212266504493744473963196049295580335490261305714213899419873496780212376233218204793644670521639716684869979613410329982686300920456936246310300065506080071922050857749420072106167835021530931434990769873219884847425028879421815423747971995316366857981370544766334073870447565243419594327040791666511359774061842273791178070558397935520124997385995637189036668116186531364221611713008686929151901213708634094996475492169525623856686533903827073934612518341356730174965120890765591962785373762795442967808119846251555397399275126929506197708034563626860892253291515698534302137000638709835493305010398899988115653126500787417154434676233375599231342781757107057100327041327012498714314472461503104720071736843265069923567649753941539712878910651966450901881741447116311709732149145520603738705075767618697009911153087500209295799796352956983559909686599566035297692650101188876997950045744038920603065117545389782661523693604558891298042890898736533137891090176515759761106805434634027857797637546172144637993833408125435192718084793900235456057152771512335742844424481209746846099249634719684994366551275968526394644500058538038797723581882082074034618848343539604636023042050826162912348861981073334031969881793386071676281073876537990342097903441981332450868241361780187388891611882986398782057993980915908415695461494190420268883579221656793911090765704212506456722112633900901332509796641156775380147794942569536206032389458526869720733087994134647828961523135305662088234111176560935842025544331211423269122979014007274984233268814491076969112219135486696973484461398398370681546945901888251862117303591365208084903636907234315997881415841276779040695422914621257834496448109080594431821485464157588644434774685137747304208014859071405592536496687343973107739544374963611968947451939306863604369362012137420511415010639462932654715430642309994280789489048812171799325060686135370311693847638068371880877841884585513003031678097635659826685771001942627577823529431329537855701831691534942204596774477179344785297844752373542027689809431930064670430104054148028397374800908612131219734937231424206917434076445529644822725468049571146367987679273808426444834257418421208750539916731731913048123363667386021728730651650571900976456681486865573735350297308315283247251963701699331285379167402135035444360038553743501387693162338996188801663075645587800290144397685246119584885813277979717629626243363616325867926311258341827413521712220884345762872023571248932729173623416275924810940444395871327763661185106507789690487406544961346039934122758345878830071635237554330543863619892322847520059541087194506536704145324403261860587003189302391886921375397891287573348146884786537446787025309462040423985685406961863354539100137604980353283003988826681918296487693782915635741450623743255214486446500969658992058377283796110240890832931520279683226526181369712259456112625875418126031301815481732234306870350928444312854788386907714946196470033922918966679961197083062381678690883496171660254519700916220752077734247364555925093233896608006798138456418520506026768178700371224008519395406691944201806005338796165057005152906508283208864100878802164040272943263834843741317100960540897979135431617956256984353647035475083304597641455846097707214423704566999199443015504026425518729911658224961435407542109955998906047533366917665353693012266315695318633034215168804810918061112270272391099082529254642468624349942349633734329399151364887900618155056019321186082428898060372213551094036723251669721963099179044028592089374228394145611494589001251763796846536761121690923419948675450450732291399234843918174584884003118702912296836897913960382826783804102751261027732821883822319871267148921901651595923209411125755040264348182936245664641391812238286412066211485726302779002644569822794913487068554606473809341768452487095339936481783012449240345706997641334777990581123430867806471528635829946732471273152789213510238461895833848843049487313009191979525248310356383161161225701398307813620673515477395121909116056368605064607081177298341052789153372602770438957559579321050377239702214193867751196317686649379462644695396531053710333810840627076362288680417051721903769747391751616829129612302716218719974796471778336684364774604522869916849959431718715566362915870113804649040395855762047263162729757416647371891614521551152325589917094965568576191917711292281892378542576036510533581160925228102438376457095816853115742683689028910574696617760859280782103383979260665185590978076744046209672506292370745781330836828787327686274510282177762521509062055343516377803727955379148870818204445751869339330336060327056703858915525372207564960338837015812500333097338048972887829181924214010656892272113318654870383434036735156032497216019519067656349831484722314235410689097219358757366756742305594838212645631808591936197954825746793868272732094342607005429691054032094849455112484412800152177019672811219037696687655936268209784382265568313433984598687847729232826395388506540710857514341791030225225198687773978749888849169031496765974557009891938722083600788107040846585862988570759839473320385240686881141130348024076168271679330015582116985787445114322616932496065043738244066357901421050172438203406780154367754217701429127012388655768658031369195690066125219355919336071503460742844664514192731246236679140045226010716848916060471935972140338784870736424972704180058360303309154182931709709745177417973385325182680910330613038355037000271982758903403213417513401671287700473660780777365610002781741660593870784774658327924533250395142979438796757955958193948532236022622875340567076068693207468852439551355894485517024697714036968800904107242838280196969618591289176509408043898781686977310380047480688893213686808340336918953620725947142639352325880658976902258385097102016099032413013747618586891546755169621896841812376584902782739454616723440790517582903998556839546202450452893874645553630420662942705689508187985838564091644943155714375025992649186373317188461161578422168767939936273993892285106475360043699384989982783078350117549548358907001523355200662238918497107056336740047481913621387684074423211012998604488281235494548159714406409223439205351207086102733409642488343133360578329424640746823820933883383185470929995435609179689824109322693048821947312443667198924524601657191312734314229793937508179753302121089575380726260650017921151533679756813540093606472737574634605149535388024925170285998400758715216513675109954946456448402770569359715052748955352378711547432807807403713854533880915225666410721521454694474504884877653719683124189625877795429626244183962939252157264013248855665203928804053669152656226110301101784433060069294532815060736259588875767772010536537458774939713997964719124659112588844336437184764774538444472844994756103486159923874982707885627611538657756649119004256303608952259192800123677904008064855242876656649171876643644026906984727999085649937184195563062420616803138060757238713550897606121875346045104775331109647795572139437388104622021999796521976971158148715563551500000442530229854453342220434229693705902292443057266902007123801563013990437222795549484610506770429777874939886859254821291586990058151829164004901678759192718839055361637322041886849071877582377874214596187648569813564366117082674039457225838046105107088474465849814740997812390654689701424645525960976382806408596302634367524458763752413219405006675025083848072747419211762856508052069481202403010478355749706747455351308792715790952880069633816373359588511648815135930604946509559092586070672936272175770217795807424453719312893553753426648359146887262059539985082689451253969605318852175747168243762938758621552640685924220621357483973113697804915616485582738478771518749167363578339303670616141279236505306144425281660353909644902777807666584205031961772507474526285661271367634026480565937582027943345054623391983296671220419503670772331037991757848292580161058554937899438466832855825846147600088393551833520015787804540320217011368271808052571526992629438043391897878081886918824892161277833272582486272169905169308890141625184277821921608657475437371891359678346728217423826107994568034090311713806751726086761159427076481794189217815349194942602674791589250384637382703155060955369777716872704103330527752883724577724557272084537557330353068073273413523682155811213744818210070261615661189048793899509672954387927890999398123075974771102285850528598688343366599844939775703074265874677246937742068018915671122128874380352956065294247652134261371113122436510292975559740434144888826988144027107993389057013744350047382804020234558185377184676539310666165710653887441496540366507669112279552553662330885760644061106674227469792133282210326886421633295977021354904567767967651558646485751131179508365344012728549430205544361294530827748891063803014618483857206017396879531485111757006518298931563318787653549828034003618579333119319999336291146559317998495735839341132218071099293541774295373791509233343841153514286242114624044436937266786716146663544004672061020085592211396815701835477272488313104855701005062924435363912028607617968814435941150456303131350309049817854315748247098999307844777048895385054679574664283005895546700731014603773713804445485661794363534445413717388097671804934873360670150237441370204244487392746127985905046344168091465020559066848370382406002948515271393604869131593461713378908823931401506697879080174251184515316948460799245106686149060451592022623615507915841906411419509379014807101648547261650759660670559529306147068823836685021724814040354908827691021090713409429055627035908568291290142591452977612301572179568130325818110487263778460410059809506660381149294846892336291831119318181614552643717785074245384832172928678435724309045244130512377120732693036351494110179117189702179577518566477206804818714735574161446769032611984394085228593377255827348096205567619909011031581440301504376814873644653010088061787817256516395538126891734203212785819812529128995367709520895827316333129222452806126276691380887064957070745781623026101788440944291746096592541714507954243369054569886789395774005017537786881508960594821152250865848240513427183065612168856402828457890224558966624642745000110044562744814146789439169538999284696571577410032750801114339795195049995104091645111557230874510241927676107215583836240703986083516634159820467659204667053731814901993936859800853368132354175352974825604684149224011751920679126751101456493380765938619142718747568835682717359839972488704773251307973381808395204923576078062780560960724164842151363795005016192551337516684907000320426825026390605543626293964833659181949435741179263732041122391814776062011421539927165489675221234955061846322906840042369108302396601387633491806256079397241654193003274872942525587119769713234434420834143671822152176796289683777291976037167951385002340996101098630498813397894602220970033284613444495170177636266661340491244212740031744085259885873059876191622013487575071808554640627449427507096986281832446032901545924593479229231774857534286775094118541740462257287068527815942544429377607545528227693543515009486198853449771516380347458457166022514042034912238489322666660760410185680135122946627325881193673238851439681911256056654052568589031381779784536744215830839991456521122058032858770090277485473162501061889427815160576770115461509514376714656467008476982102686087183346733702708684710733193963091788499197686770455854651617637865929065551884656604217636201123337968832572626898591017479738897737457934520066073472347318828154600361554638115979949172474601623402005540282309065535111759463878156721557123078176372053883793040883419496015376888413838585618440754895289029606110783520605179034358247277695383825736749230165013140408986673795868658960423518876791598691294076610793704715552332048909449305257065442069335688525756939494059760487542058915127287199128313929236984502373220508675660166180675964862741511281097343238491330228726858058039985429849872466981739279481928109278974973320667823939257529800092729842880678341024273639317534642536518212000614359648796697825191459822257205676637697592143450576119777138314185458784713273860094595966827446105034277172837277782107897777591123034418250846606121430342191455226395444576965105113825759005357400981266863254498980564305033398989054715919767025861720606130992288917637623391493878398278258565523734302403484447008211642360922330060348503918037908490325863483913882607314859229397343749506797970519331619997097628423652081302684226220047770804729030216697762932294738458468511765158174018866476243290251927563905149519167497676934016406612700086391604616522576155965467224466572229419072884986086239393635104446742976100860109925609209948554665803281938032972904857601091791823469991740942027176312886942413198619601187060609912936053947613859634671843076674384835601538613899846779266624269925629107570015914728336476158153691580549913787004067513940061935070857810079436372394527909541442238887533054072471496659147883342111210216534311181703645485957774584168159685448702095430052566628301591479171376935063418730809934463503196413655607494249768331992908554036168778686774044323939251752709860229610041738449293042184148785063602128443737074120053337988879483656144193861042470731226419415130445965648023280818070360300821420483431132795097782357991555240216677014828404270258905307581716289558607402293059242081757429526374763399031080133297027723728824657333826313960150228173390645435701381755227825222509873281762898554515986143101629892619029900001218454585107622323154180816523445902160742208029941633904456113379832494921486544171181253313096049321549999036487358300242693652343658454526181752517525326346017876555877016161460602834771332328131760167282736983465230209420067020423596441058465597444656762762280258441591041834336809431941126547394656007076323469334979510525910871901198528676581561564159845100028048458496292236403614267982679415606594582488259205856499799685590569258815994467938158907442801511152019136168786062532823764637358727598061164886795701131145435482185876181113423875271351210283242918195482302060159357021814358375053410685459459103749367043054700910201308941768164414781302825663061344576214213976407089399346085672039723148926709876015961586050500506728553519490423875055393361638110535210504075941337546256985146248522148522857831361675036593098978032377893830886898427727896556824793293776421597138658881322451190458274749998730754384595546061418159589254752513181114263179402910057356356928222807432114307741536439102728958939985616929507944573014454375342462571972043017632182528199607063759246160025284260047667754221349364833338081272944503907784094762073662819037719507016504422596893808356697015113921123224619255283691459044942239428735512491880842543769870200874231444152411915438154739375580825250007730382401596820167825609490023551335499415620085346046168870886967932804078844866675528259218598271791984938699186059114981506666322727476353445922663953352701296534875441312303028710286695534113128716656079336495902923031698436476211827692039826401801394165129474153230176781225062644062148859771440990180013532028496736443893301224762286700762633591176232383646316676735634032910631419011094957697887522562256226050180361802546156155690442474187227692833762944550784881658825461710749618315871185059713549854688366155101657963178975169743053680910091782221456799357017159026188794691235272432871724965874401854663505435845742128396886097080844991403711628604586036791708977922348663600418577609998491743180668064665101972405800714674329261673365487253183843196202617542280589831093836073647995913494572874389372949507431339991777144371678481844319660965550064642488954101452945801354645540060213075367436210438174767868594278492573674918438433959182390553415854390076033927632995189906300371650107819888106331801062926766728405899659851036292475452985138444448931937783416061335740955143919883894739241804247866972589693315271849443673408123171401966727792044972638491499349346535794232052492942142027430407043069098240363327117391963553214051092527599876468410913293658150468342836069446428281068367048111733384949044842645194803666375395557658502709414285876176837692442823970943413783234619745006083558770458419283412280626346220956564549309388573276508325188611522235282496804429248240946940720122332767827256814448686351911379973119883227644049934318995222523711548601628676903721920198169204335666190325738362499756438980106491449346022017298829406154591218094083236439954899700858653396618030745584172999243645624834582892517256685624939423733044869516534194014179435195011455360281493559062165240384417562918789649752976414595772012840633914550033028601545372396583231173379910238158935894851881268191828936568085177071813963073198945137707186207760527390680458746815869360295178126445555046679204971164080521262891584683955122388335931145310190011510480423844545740755836796408967741962272104992005678358083011550221373869351700644297015774814017601195951613837404885787837287440795939832129944450228799022912791838280670241981289819896761159716395081690560954024615017654820712367439850911318652254335037552694352568165594307989389900510769395608624769460283395402564932026115748735726886767244370625748092858539519312477984212537882105119232666773649572888461606103910223880419731471455172214628663303724338909031987963160858126107841094090337229336812689785205630919870411310133389205690841062719985897576819615374114097755448943878449943801814514902834901497643372170966177639858534098679993382058987863215714857335900732624585985803687063652519034339603343637463869256153352571038985217600250299769848143328900236619085700639768211101972547943701189759518213735236249839886310885714936884653477416704049970315296665788701914738154361868999098990722231485005998109132578045404888110325883901626514296273089557415138624849990217661817517360932944570420242565050012870685730814810535347231099151438033449134125346549053824005598812647970298613935786865452653264848304928912010160990800895665978204678575050576235079509965276617495918911570720487745477512893046847217238924510395963409546912823838691141855838071232517193800132438611188622699596875355369671744194969969219358658283204082487790663682111226674774409496704482289488063413671380349001721722286661384753414024764165592208792112779001492147100304385787674119000170459355280684014407815231811267610846868889371903448982104754923779965243983486879411576997188436239807493567920797089561475096313787004449981568903684696188492241014255543105431350471649956646716814867745103335331032442064000346949830408245584694756663199153698102597338790240714984250054173215947742489101525532018520120893705421715178849905502557733990120589691548387973046741356612692131912017680359694822266704752114791017407912597953534461857405490190978607756095737763781763081245519986777944254192779810490820665837732146930652449151741743378991770193367083232018289149101680013689274643229580478172254514226226024036586771853956259169868059447821185999858150086447465102683586342021375379994554662522242618097020315194972867185147141940308513522296682397284517889866114439247870239631297972792883047142058927025637832275800154897369646353116968149364566538761925606476577571948101173296728563037651628390028380806161831571899033191149847810074213922900046943957113009614242713769155789790985875909480211996784268110934932056696221743126458776906442566523824037242822435310082088686992540729420493467185412780642052008064941357577091827146382272451343916044020899396656568881833194598594027837961767795806764812874664893160055901645377088853652281026925348227008673915767341583658007883299746711510478541008912131704461355533361706347543152551774354252944996478332378770258548608053109083998688579045244962768475458164910259685811115300328761459193945303392389469588381057819995671239098832469739127011190048451233433207259279046452367518614210346253848093998143881669285373429011649176104785208555223901830623658579087689732145869238367309577629028971152809838936575908053635837863943243689433836310414621264525083418478227422968164097414637158127415633899354710729814471993967907222299142110371419327911223379782029458583747685363595194824732679804004206233122755585810621488924574902621149853792077501750561417595789889297887198754211863244132255448855694899262936554960317952708411876511487115976679286546955653310655049992704196620471062428993744213409129036598207977230405307289110086830408203808854962754268220613519118605017582617943183645123226483649535293651941246676293069075082166177950639225296834148947275347768439019029435050167757566680380773379854342925218839904100260862672339576572788908338423503039131251745435763891988659285215841452940170334398819021990199497176759820399531584197479972508399441393375681575676825597307043232140016759297657020039789020777479826967321919749864249446672832522118063702068661488482762885876936025240077613279599479344062854593092565001628294344776088746052431950958439776083844605470849601062555480953578336390983864355163070109391361590367760699453840212970657225730462565533850832614328227455088965079446266667303806601886781370057091080165374088705700843374346040266231625547366975473166836557734240469577323973864756352545552131923127238307151166779083021857750587770687365360217685414328473615525173076807573281628121888634409391832318705413994615588320656742595827941830909262246114546946054639708998283009944056151054704673224677210697218361778673823417426328824464152031257092118747545026882329126869672464605530150278127038779765864369407933395371406710387418636348306243415448091491101898831699688497499855873572798651475122449567141454699368724665896708797697858728423130893495499019355197947217663777030163527089368705468519648718367023127220464743949563633729810456347541054150229534494910769430045390096531023510033317792122534056505696430895008106520609425100969153166431529654827303374190898448410246352477826522434313137257886563168265211277582610823263725262082222351291825497103133540265541388734332060124335865609063884442174895149218124214022144009086366670021645361955317125239722977367877182983592854271390375411078960226450104543626522033658184693961249255828595201198305845874346840296045511352124737294663802865101453844185928865470106620958896880041364839641868876161952707916772462996384128549827359365388808854946636273583785754466733674892994189679914845923124802800071673829909654128350312056508452665066252874675893856643729960776401997544558478285157992482130135126718392475133204043131142568009731944012931077898777354891985282840424416455033351323027610655728749224830894629531981185406025858471002455464355398795868073356412842825876819931637840910210174991680958656482774946677590286039803527578501087159154924049378824540258452902751911849770260387971255148316632800391912247351578884369017117597496660242610987886482625549981468251538947775486608405135691544276588081714644640065065165405144273474408893852104473303060855384295332256396138276924054746778212828324903389346577594021275718218253238141512735299176303984338309652978538914065280631325538976156449309118505410162404247709013463537472072121927463780727938193894568419176935678073798855297936290269951762181303545748130606859761871514838715337391241792764826479577250321906591583764850166178359731734615709196239203591759613447671968561483772140728070825959215126075958688259649904212561446999121636042021548871383422438949156763420977356490316007361729141944369177989209721129550208251783901843103581146917855631326882298893550960217868611695517986506351093415705245614856359820978602406300152356753092612498667360207160887141028435990635810939673106763626634053002038128657728780947604587943200078740431455548070983939816736559781531964951135054343910740505887684480888818441354028458157166179451248093697472173129358965755819391711442345499182175942852560276340646853566206542631682167882148106752647779180406919886535388654146825481961642545050303258899578817588193876538436593590762453131493948015528723791599614543499238304973275109096104682046579348444211870575005488670399732669769506130919393989053826920224855226710096570357177608584585391691044833801992032249549185007418885910716550637032391829942425825323780129598774013536182084493839247502400881286539696571640713670319624422798280197275413337524281076669641329285901891720855383845355678318237166874154781001531268336102870102550246080364800116168564788489177785032511608723066364712762433582170444685971954954582870664580916146384982646127530828549726926528014279419915830731811087695795887032123594961269180512103079595606796035920262945932909328571667091061182312661751575290538334663919899681200185606545352404941566277773102431609814812743631758177671361120821880653308857267083147070650239592156150845226164356495715616038843965634445289750251509032112800802466490321561700917275282147509188769777005849620008607969826963315567576415165437052379340213117641340276800461274307823037100216408115377254441162296327391690203311514759118108660729360756074439041834604404500339731015087771434779221312036587464756624922251043649195509051961891888534299982050640869062282424754936408703517165522814746708258065223262698393517302421232818544142369144736181654573398774896435428604030309718537244666248420009230437823495084567259584884300188749751099098358584349440891845857254102011758595157471073946153908219681432181093557831240981498906670428301876649932260570541597311569931854432572910254307895623590471944885464327367076740093937348736358949715635601421657838515450673441972152243285715241913759399028010201376803859522780644833784737866198937360673084067194171625646504358717201036340234997425093526046603575120348609933375424016211220571923059476226190944465596852026697124980832633063096376818299619697936522355346980591941666887679089327772985555424335238160030370600804557257965763826874877832690013074454899567259819416062551679958873871214360356826814594092815495108566126974163820525180332624644476082407758226730633290951478440537900222769979495141362835276549139166433490651702699958530311468817964353493892646777130589721108193614119628112128704074801140759556796183504075820590837860697822389798101845378290905507732027826992937806525869157273695532368551739996323639483626186918409225795085403061921446931259255476921178539548409012036641089023272084317721177899651732634588872262005932227786842933977735583001429535984508022708804312009194047582290903606670828193994052109137781937527081018416655113859333371720486624973337084591588007842991902942362159093198079132043719746207123253018861889663125596004793780104391167013017636520644742287350774357955882342197053070310249405712985312764760541874834362391119988596344616360636564806605038483078205558907927488728266369828355652186193381374851753841654024887573100835329645159733976033525409851095813163066648857356466476734309248350395509055688595675722586110281453161307157783358504680985064937566151935477857163742073442414343109142622909126087635713791044311248703639715678441959863787209707127317819426602314988254417282244234701948830856280374489243397890440404616976445394633954361864579950139041502421494530786788282526651426158572073561381841866368816238615154824966496477770318693895435014007556355029544282604195563595387567200456703082792375706803075605677196100203459350053498278099734161010616757855056113214221038289309919644373617634762009829965819940775445575679198566994416766622675935869437495133446809937107734102970664861377486467284605763383776388317384930561527234848152645105497105919961905339557457682884544170389105318432561116144508914742659976208779229993771166695444758289847094222653691786372431363791183218719486850107207006006521764426923752794635002301857520839007567349438193514462775248136288508712020643453309549591329888333034533519114774910217436793909774763264010330433686617375513038021097498592390294141274982907601164823661470247206077076041050525722923160611563134539009624945457051916155923970405754662995307968849715670817786560539655161340142136243997562041676836967661312898874927819527115357758493766638428874604361885680345713246885998061772348389245990988617201267880016842365688506903329236573773201286426160448483158809554324181673779757439742068730095117453124983699948686874583563421889837365946774122907290970298512842651407775128518539868341937316224904208096749020090711534660292154318825005581684473965176935425907196772391001262237229995131190390320433421899940289998827438922020889518060668892446090583397767819910417313562589675983813809587684186152453229729906805427457197880067769074220582179083424533891688946832944651186534948763303785119327772765539291190690111688162611594257482026747128605562108565855989662048699322723871933490296054432559600373980330393794129055718656388975523301890168338848275758190979540029549868316786621989407933048002803017913132418706685498062645903489182410058008279645669524525628465625712679369499768288446277809861268627310685483888743824416177328028178326928304711219588653869324134238951325654862984005040080423709016724590844207452478989609957747632614380470924079991432869671901016037816911268757538542260508800366012925388984824443545789071839907082487572368971563289586741496257160568118114339849015830053267159089773742420168780001942459832270146424713347879644393925308350256097744112176748041601107335290033130616492618377342054615533841565238925466030024798031637409675529917528839630326916571980344694197536927447815310575506420763486867386744869166465923145814733307815082093129521206482988021367779847834821262610969653995103947777881448016714851135100497291357367166760450427306717385089926570843705526639344634501147033450861381421494248454982260953916277941550155411298695279124962177052865324149174990476181054534623929772918267915701158801921089523710023400273938644688656157694810862589578693712650369168718901399371745657428022025129574932539141624849714816687927942422058386027765330124533777195759908127369099533889584442383524304354678250525955702588699949905557311886336667634090898562627278455783524705366420308463401000406775644130046276657996647709368746035168938113453020189496927483486109540741387070785310355295452033055836783980943884240068398922042712057218605081889823709567589828641334800840704943592858720384803675610810189081171978157544255079911141433117103075079552682849416752057350319271142867004148526476620808870171906830215239530747671270387413644595245596928552906051371149907219165617997958373874954818750035080660960434543531493467382075356689835885242824829318480015903079516138703324165510134711584605901976228844082523724699282486109249030493804345959588298550299671719687351748380277916872480292899924835273092600184858154320540533957431481810538125917470729607986304243935967137034168351498234070032156185982721616973555039784709688382018178831905260545246037358961584581952305518347851498708224299031345932493861493196683855907583149583331934924368338830165223076198768995908667139864035520868254396057791262617268093763866156862534667951170246596954718584264495745299747667236525926012987133537420342283121331484326551620230350240359628014569662764551750831963538971111549546418688490504272682844174600307711465301598726697575003580167829852079026082650553840390351273634957611866403218880194084895632023747091037820803641867074826458318930988133013688599082772787051941444371878916621058075384768985971330079546028954856518879674625200155011727264017967110224484081741723880726778996398199668923372450618779299500164082866257420088934981085479600579864790264472280457538387897141741167582861616806880575312421864473905724632891566849648205341351542201185795260226274937996712714231184572748178168169283078931763660665321048361695640727874153970941854229205558410145370297894582726215750511499995842644333454796239320890390483296767583870560995472051537331926051911198602038522495181228659517935162243519368264703660046994220068898239988821623695972735950453782762723341976679020477567204474390832263062605846903804843571688640859065445431323390343874336707618473110333006719248170023832115357854434128069295958963421763189382581811922649076990276138208555198736649334062525464264840941614585793221501575086919043925602112446970351570267003172885212913648232094352085700567197283978223151092768555104894556280747803969727316606710831659177079053746501893458180740605358465563735810578910901799853947953932861462683872708800590796924616265131916105565491073513900596387222592468174581396159662903990004986402700037347944884232427452631897244729742018965324885506632523377304699117691887802518476650836069813372244156104369620377672586125779696555607113665238144134265908116188888320850947999110018196164682454171507411734849878189972727036210082347478961191028036273389279493707877479697891836632630172255731223026526045450049239253218841305090956162752184098752347979488265522217144111753187946351645903548524459957927891035933948577062564833379821796048251620191967350438293875254866589799643436604465491944929942641282118101505817868053706415492027390423372244135487913165920786054700004259759511784765424827218859959968895253162684032427692751322228452814067091123693845987993442199591341061755464887994036107342562914378484094671445200059400890325926632270958881761238326206854949019056314674945362598571098804705697446019086586380454517709703491940499737895019347219482826731697150985015730882310039103499650466867208969223043594201620465353240272865030531333749847125822536539348532928640181221991067220391743803089768474803271604054822812854788408421447823777286047160878419438569692765847797493144777149900011946744609645083750632424268058338160195285204351611673230861919319042754147617770154891977077328753036546760306957058623425692127972371896476285384990177272660506340363109682751895686584303477989068377958499464690481201824366540509189062883701469882759505449288784573434835255207785996890811055410141480285090815121507627225044167833745291895491916894723964423361426865982253792138764174377164345019813267833290118918622920336935601730779101435203310727684241569010848226223032126702692383796719301575456580470228185536545900411911206557354594435978815905376846510111903061261909846279772824442771683447411042501775283877351608429023945783539456954537607363411225721828883408483145628590763400781222476464946912185924981466678979331946198452667050056086016252890817231747508161662221875859049735100872711041144500767187682009597009253693106857227723656246994075221711857714189559435474379130491975027545519978152453012300725210197413474354433053027441071591555383417110345809734181004133887840539628809313400235206494870361083824343426992678074122205087424040904286068428395402169791079976187810731381055669108601215406389196512692697843862849417204849344946420520879795089500695391070324803728005817910268370532980578046142173263135510301651175028106738414201706211148068821066184100460851083561452631197322073273094190877647155708754643692212594523270068442410285494518401610780026903293818665508755103984299293647579678848628222082787288584319211227379418389623520929337565514052482463554574905445717587449547767727052988283239812938109998144318246220285723913139971837825635516651043607291033025113236618330616284200009131794444826075956395500133094122211232909390143084553991598170394551419337047407867749998222494089649990969978602763561050685903237748350044101495140757700972253997120654722494828710079918283618773433142212564420363305009876864486156759109667568129808720455686282527819147096429600445031531934339769551033479905967455384315960056475296169481588755429051398579814083812303122036370669026918522478403649535923602042966271467185202986268626455434343000843429629772197106948445262623196332130965784446090825037744432973166621426712672378612972748321996570788975067096674205167485318862734505601109837243318281914679389447903429575790796028134416465574035834039075840466904658540772608614722300656885501772037937862066548254777950386098326612323987761886181800630069000664072887271518302599762218824544167113477180161610255277439032824659745474753965785242845098183833503513183954886948553540464863897823907213826991714376201969723812484602512307684028978313262169656577733533594020789472016861395120467367945056059502954545514038646747194256580843048115795766462565032497073613151507459865974847952290590590718506784095167175037224944457629938391662661672577091389496319256616317972818841121823211673811533079400643021182355289656976117310430304027387263676159220533829419451065367693876338297358478257304110827104514063033462240214186181200060767940789387386577022311890143553950870626725578993075684963715293237178264709349204182607043701382896357959462656828870341321575760471706940413385977772279891993370325401875258235596645317455716352644417155225863352790090205089946800502384087365280198926630024357611045085450751992773384606302438914017615266086472317996674584416334407805449473408220483709927524965750102149680070538314747821871121471622199294920846720189863724965603894758633132976323250163444222556363882753833115434472566390970402663131273646215547454921593551581764166529861582362216023484931623067292858152343730401718738479647505264865236818859566088407314442129617110192804129035474815463393354617263327599157829325416470153813775510302422724079948244512170905070352695384667544542675764143612016034115490307414789415204380867931210458480820903030429145530657900671969896624465983405335974460909149012215724881600928408671497552585748749008678626345037438014000942798441798726639779231264738221670086164485031986290053955497064749727369659753787837419246670549082313265091467303721668806532793766176950860489074286007283072814101436100755527536308728581347414082485386294960507983659734788289707745525825526746356244391276233735737702171856729030829740290370251194918701409417700015079965017940346139389947613987569853196551804618503379051148611093856131561740389894545371035098962686784140011399350042110555869571272058754466841466632296671911609903519901648029671241583718018422765472475994018603850566107731023598143829896124645587166748722885177141133953946477614894858334631519989148539788032434284403331435423025419009686267578662347887660257843524675757070758596466749757199744125730283241945286167652531744149480566546192254047640268668022268075145912068838863981932894551123354080585503585634318972659424259491203199936939758060881519037851719511873561327664280391331412060596945970785836930992304618739865350603133120517226069488741243282960182296752757187232444539816575805226517450823887824947916591581731713386014165923837442511996232765992115026742925551925380398282213619429457689429788132458814355384531864943555598324457754512769041152880895922800290248780506835694551328202573547057523620547675605122344273667999059197732421515380291758704694745993540507633594830136772796941469286609673378055717040896036522596762655932135348760825615703207648114590927809939278072182915084666250073961165443913115121773863715701855493683178611478434531505063998971859144473775125590025801494407574831397350056166977849695319706113270001300462132017715229123824470005414086953847916352910072766418609965482526503239097722282963014292788781049464269983415515296267199005350745708424115524007561427787105465444875445569258981528038284104132346510192210413192993783422523057855887353679678041796236393339973527159599639272128973888316565883516584617897063929812005231170938916567401524185381156977794750804670574618575239230320902331466155777507335607247739022048324672344013759035349987162954328581480470262739334867473023286956168489726139940373131220166602421448643314286138466296794411112331280152819339762043997159481330911393661796093752913957268111143951965030942097929369486255520460297844132598213576554663779019930344328367816799921206107899295781192166835753709869984455224145889996734761997962636886478180973804720994410948426942618018662536928324748762134684738629072041485105728447466228917279944180770267987345988498441039962555903658907479959173299233382734222391092668774337632035522544094268141621877645812368342164343423355773151062406668733737018379282125285812462998342285828659705187339371052896393434255403119290989749845672230158788716938263105961537007669484659187919634459206948625708735661590379048648518343003558331395089928699799324116376327656810463050399823235528801580822783066864782222651501940948391746723748753724467534190888248485252026714407193908896737858172124271342495043137844383768696179520514948243843290590787821078228208634696216487373366867284043987177860873711276110000959541585673892672381497474113041254091186496554296939200103477629742006491433018766941799570666838356789036116799952079496912731664101162403132687770212694255867653808566306021940938462082753377918675356704224244737725499234125450043677665219006495882091418590896720365992063994662068340458644284495029384278170219654634416127977709124977098537586922903573766159598675344828130520196338310413454218801957888556270930857953242199554966845468018511158401670798618168811866410745196822171419145176636223505492403265039748797210397420045299338718441589826901824924163250248125189871024396190880509226352960347380753331458428430509429774502683003669494536860742262442768360790093174111221540647347139078729297941080501727605195731623604412854140967209872361342814095760356279793648676422614977658958770110881824056136320199594649836151985933539411743489503302563360167745951719886351579043041769520028899425710542448818516775199457681741339281425393286556053784071286919478179843812013095649526658045220400115200532912632519339672092702028214123545819537604628040784794801608734204008195144255733875952455719367983517091057885639470427072487053650106182981913533179690542271049832840422955761068896953185026514300494805635312319550187379421501611773591968856271917967805544445901912779269815779261866127090505458543111289570540343903176041923625982068884051163247111924972818104722448009457623186860011295619721136012431964371819778126692478043447234698857240744698577973409734072644821433396407589207874244672893382740202270849540615408867461848403630901251566329053824669438368099413695370218138083739425032390887115212420425131358026362461722400685445082077443706464761137513703488330257712292075464758887296403831813364632521320736179673156090794617597570917212478453978675051363745295690284067730442586522922630726289684521381114154297581137945637552862202111628730467305582547525062894884874515420393662750684931507000119510595387813663987042709549311768906406016150628438965632235852114506640569366153872944007381371276091288755393238096267424865784251856014906806185172530270418884769288819731710495263324849405608214299724299749096246415255373545839012039033213615280873394672124266405840834726591099718592402648661924284121865287751720187582444918848110432278755978805641830205066416023510603397408922125940624978436321311786436736916758815227620809674418503731201416773171374934956436113106144085725489658861660819164205972964402382912685010253369817178887912899860366204753244587543163732545069923842716213922640600592943021805868640367151163493412204645701742242951122516852787909673791206216933113614893023669906573070491384010204866224319006311817830302558608830494771033963190318872517753785027051913969114128575907051628484543132039737984841284183209859674310760745014914428163360568795170409912694398546268601056843211521195935462776605087383199805615689305729368685402209644012808292647821878280397875992460006616594818686198350375805872069697480145449921008575999954987139057113679994691878329695324842427419529366149380151554842151388339949936165740285149950836082666995756376691635310738347388908601428060765668771195172976049618577383312183242387790586319232978791888924762864996401910511055978089622816305642371959887662933820281653269690562043522273065521750934455055742007637393145780401736774817176397896668331657788973501969073038232437202009391783324907227186066074176024145066370266307939312400409420219616644828428235743389654544277758091457429735397270032345397511786392630719213758377402435984455605279005830862904271058987139783196373559375410361089090434289385526782974600472336517441932341894656356162130121244813368501894040522025434618680345313184361159960747784388496357651201501286669726580061806901078189899751740769452309185057609154095436883797507411782109476546005537043278404015231855403506885605566227211410802943922153868998741113436632012570658395894573480635020376751639891427008556190235500372114023482674149960004232148758466816714113181779329803509064046664238756594479197377548153009040218685166938836523591295800986161797851504909381607153399603214944896278722383153844518192666955632023150811436074017254088127867221398064486024232365496697739359502919106370020709605743287186432867455611681739543184852316382685906313784266138570668166885404762693938426300405188906353559347198253133354405164643375384237794873357904605983652336723614952321362367039823124099861333311414994646776759093712086111180510308355843565442396172192741855344254367083524559382857244238253230377998574098963378642438047831591998726417884681994335774520873156381339657850371119660359408517420033931497677502910388235750017133313568916408021407550023272717541655123680682893802700791595993445448367080736657592536819139793492101680606254232700158696252342405405418960563595035005987103119570824399681846002895634991384941342770354130752349265187465662196039515509847053696578183796988020365235378181296410312204869049459373378969989497895667883381451684311477403751802568014601030253060737657768576416643278890276246142486453490834848745691214264861194518401913112227867275611473441686007172677272898329723502271896871684390259521582792270731207732072421304257747989197824130813807495352367901557149549669522262431456148754792794890508372303139416045475337115415933191127977411317474865381251584759617493625650147222812698272864377514567057686684937564448238897400293841110556978529020985507770822512338015966824070850597299018714825753110147380621274301081943157257290044666305811738576964709013999610528186167163435898151442342325060705080459247480976782543347863468698847861003552110071258009907881528099173415952749053236827154465128731642530719892049286708754654328194136433838457142969374261430283665110586519259873172830354821971366962171722522110536374030576265604902291570924966817391313449663969312751546556664088978751510568511155983188342877247659978361122609240370777945725466439293747459792690877824791887472223962386893497017949591220746458947068872278654308002946104528864639481338868078890781138735363382744352988811008573646702239126582344913675694953736657510190881585772513682035180685414602774970683462073814934868074886180365971875524487515924871663936562162087305432055956221863579088721768697903039776916247631458283446760633589722224196077728241763323834881372627045977247017278141994507246992515317424549079416012816171619071078582650962185405447230059965768801990863419476918016648920273096750189162843465649695427736008997331233963612239809159308914265621426924699957063358942250184163110433294511251648765182549997788663962877724590090086364767082570953677223580062725376861083274167209856828555236996116810724623269797806488460286291428830278324925676359982550090469632497622835126539281773324154444826268208612391598027073787633500522221593480097728106699932286127097790199909075911697547237668207225249215610520081799154880593495053677431522871484723330617494444489529708519023022448470350013612298649167508539778724456914909617212123669835290126345154461230228331124306176308027169667525755752872015292477682328719021992368597933233365774705831253374233931919760118329387509431022089422078646829577911602632051839590950402836136227310820766513625247670049309299390858532656330258376393580973429460440911704374682202884246531139331207774488836141965045956921252002069018482377109921731147632862516371419508877425071093814491501605402994877831849694463311049303519614988301084917299793719296335429825860474172023367339418978066580765890763114900252925848252954354518481998332344822413875101575979452228192268279433790844000018917594638835368169937193900649973235635418970117783835737340686688161625821667309302002304419650607135321489306722789946350415338765062036449071169635981628328776601114583719902562649804044322395824811759224243952161479810441453227965415350950925172591837658099224222062742825554827556300182297027592904346213895294489212930853660700964569736809843697392696079611421866944048504832512928051137740425759978561095743236673055480655384729791576045314113875672267061722090363474980224910133303538199757070788131638150388370317525644328108898358142856575401481596611506294461283586214106042121768937394324836606982011289129797740616528899879449349235884129105707354804100153992119450582949287219185972937047209084000447506525270052368247052356907574615048000720163015169604470434625247204891343655238412579507468798230523859496507216505448730919420552555959673348810462293436806665417153870542098030755354855175319665833700202435223459889338064360725014738958177954657127663971476357394379461922413012505651112538266510778253575136757521565067178515397932348447136825331708338114123814442154004009949868505360895853043048129694362539012448621465784703856190351574775524534823298431063600519516577451139666229753871396162935881770873372642655568568737874666130898728298290732474782961199831927613975846813437466498072748734907124309998035644620987665160160902399911801389341695922128798590522496877145854874080125675773709516774894988794811284183227221544630170823259584391228245398558690504317718271441871615298831683718936832384889841222793193015026316762137786152112262980798026337655091198590723712096887970446817039275332248149100789359836785359884060983280453185702201129897441100125421545979929662186744260311768161804287983918742434134729594265331140870078947680136963540531670424426416970643447723397890579374114765188203090190340915338603646108097580474252477791935376661498687560739797321938282830275506972831952372136078246893947452550635371556787622229652006943397002895256066014776505507369878079301888181408678940507274042056112906905538372351294342773690990818001516496716625791188202328147386260920683026219286304506023794495950349574120887372763123033516214845262145153562849902576370230127468166705869565328115356033428783698767948203471256004130339477157532587096136613294602545269739324724054092448405101053941352330631509024015863434217554130933736133065370651733182997709320756182749504312217904116400146804810989620706201494655666605834554656569999600554853112958762011476963442897798857924147428502473217790422803784169010383794564348749773510554623135667919887476300851431176577325995402776835901246260471252800088819620917921995259090716545439578748871485359603218996688292613954249781907833971007674623351646008744236961509236069772700398954758823403582202702087511555468262817815487829983739839706974228289406733653597425803906766740790498542031165190753921677641235689903114282412432547184395694312059112969199579333922178876799671380744713051318549625977243714857967607145797138341058952165342479355417782140502716113419598563398928748717323941970183508439333923127469960576190737726466961602183189660965269749765645362327430394742550017937992849335013803162796925424519190413847591020039519040848273065020057887754138138747547068025385865885067275053993035342955621101710659049245257366940610775596078778959457589867052420418867470763923595839884674559003381448077201791746537602494049262001073395672824052734953061185200737653948652919764844033519566238039705042557566629693686193072308037330316856532592479137390157657805239158006963600072063047268210668192905729433822051865160771914651717572777597863255782473493116486645074843199302908035714170972609963480609441554338148695597527194423562510753959609888470586571495798318054470865837321125896867623334606078065821792565853376210083518067904663327074853663637356971049977887003431105659151965060250533790573463877832228125709697230689860439579081668729338818517306719059068976464702059044207616013686562646081489010040027382443994394084580355523334768907744255971681034906812632017627153645472708232514149715302676609063376702271990005654541912714529686230447213573320871198945186817177720394701108228551919525896969463106179173512377627650378575280142173740128291602523037354188552603736896047538839749080691239061931012487628396872469476389051996721271537109361881300111191928619196707599546238614935911209783740090760181550033105023825059043091130983365326858030815926852629375570939896855442485724787167458968082336876429949198823256662243271526602984745923461983857483761179435568860086580451054077491232089450858787341221354510424002412546781965442595552694760801121675524339925222691835580867822829207230616745100166842364656534893565746881255238777042841964434441421337314128805238694790699656374455034495035772611454776921159910930275568245774465754969266588594612562041572948940996153790444086160528353903383925323418062472919439765047302915904437199137557529639285872651617695821669508839961638999193106948260104678961681666382739541845676297844499820544407440087664400609583564464099832846502111382560215769780074403556828926611458245181928995703769986228650511208121711245289190065218952156864504470335004716810510859025232652282605476182720650125878910101201709794845989311081723951419801027039676151594157815367684326163734560429295783823103814965213239193059342732417550132466707298092165691347648530799880576983872838099356430631082067365191467138634730919078019336640963335930989039327118408546929344844823221796540924015504457609945002395621114346838872309556776409197572909070110435040413565945887289835452565516071169116562603660496130763327285633093982227971461131142270096711622858036572137081265535395553746476083885403934291934898346901625604540820461546556617917303963789604929135785773896860447421100836401351257755379580292173337500789059408783322758235820316377568464742225792003292968568935847562455699983781651359629291793591122031577993402635223103972947650086108426828690740893435269162919434064325498005895653469231239033790648292219492608978240584658216526814160876756286948439881267142413990526614621422868285010057680576673486907657627581575536948839326559958439243169792047212918296519404142735429065976522009128636760510549722005799268318622682380280876919925779946163910611628078307583764799082796540351537011417090760699315879541739354210848939008456305825013388527349107122619247555715892388115837214141716931858883548028638169720267212937246808464230321886060417781237268064027337259849753043523129860266821542629958607536290082785613747504136782343267962532731889917398701931540623658041248230913362840317829045992481288817303980465983590913201796230362488776719090261949772136252289228965624534866018059570629424523167208944289660602963973937106310343266793164820451070999655536091174842652819098508838974608697525365481662403936089090511032185492428159332435222060706831990274601155287523685261004819790908112065058314440265991107170437561248983124358924628927806672591242242810480291258549297967696813091813385718211325559838592367073683310446552372702414828552037442447479778893712601343592646064262919724426098946213333621557101189982994368867977035543841981966190139088826776024873149059627696848109647989858459721862995109188083122939244818273576751510054954326184732643615506905183171696780082403970566826993050080752876265037170648057160968368671737140036958535472055963216579159400421704769043322452266443064109240747776758512047740255693809707575371805817847976235482447418967730908127028102704677998257210222975051941618164239382299116674847344774326781983172410306672707889335349877699277579007126522814944757163085107979542876533464645416976023734063018329043983378963559965126411815418488823526736393021182431911751960538740301774127547552189849657366153930684628770278190944002566894103724549174954097673269720052170394432776999124144448066309599254691322711673718979837769110212797942533996229316640765851030219771590409971537509860009665115796661070952429955607427668371502163594445013790172018134252047292378477027345656559655805466322179814086051891492142695178937772999391297053068480768292784373823818777365401884502192435855228902141786534161938713915920677366098406138634575684236696243598919837739928857817811194995461600375145635537446328727019521084695973773825659180146555073093081663346065283447984706235556742822546020356697905912156664078524373601761780842562358747596628628128262979195753304000619284789376269916484400630030319769093546425868124393187844809024912966455198010484636864675051443605328128604588487451740836862573896208395187760196370708569599754763205845187614801419432140555275387846505520798368500195412059677355298737054022634775376850068270171985494986397826649340585770866782837213118936257023630861853795251179701482764632726423111128562588351625975003639390099899605834367359966382937223185154180482842385426532929474676199327039556806083503253727189726754923602581925335958825375335884868420460084338280124192340694958354780863948924097201000524776455495726154216210379721678315364078966951383909566051211493224237233989629071254592318716072684938029685098836801055440062980621803283283479924094684440948722207463781857685696386529573380397722692139894694729296125309764748434394256204464540129391661103368480073362616464221056175507012435070516955081561653464590650683738550546706261530437422608046179348186095486028022311234378168478711150857095053581097089133591229631507261255582839951150258729146846723812424675787259621200385495481109460621586348136896385489981692253400325808217439409888189691483336009726389740348811192161286397711706033687784337625962603351922002905057984715010233720483049214589569213471843582562802736837996515966834440176062841040314690431167031514841744566546358967686505817998085853836330607605313384209826974528033472637421888022428328085584480749581681018025297225004398989341421221851478469147356365696111174909063963497340753386787159588490040989919641400151373254131712484464624073440463667234554581058552053503916299850525255253805469002727824295209716205653697464846703270749854470763137017535567339938037525978287358976757943834369487351685442561628547941011637309395619092202537754621807336513880097616427487514532149118957885089391025439117479625229568109353355708977833543277816277918676180362913927076196480480194358281595628622480302952955480467970935505868298747974551728493307384979971891360916472949968250201689724020434985208942188571746173980525697160483977868440798964200177746200197712754176236927437869676205182898530110481135130862425103026206488986503350093689846454684503496820460991583985359087164757403857152327448004153072049802253044882279875300409258892289361821783558888964209351262330168633040768679212976178784704102479886786461932210315250458360334342621410643828281233693826982917853228197441934321652261047012109496864095820453716790982898726901260544995461585600320820210895823812087961321919669030714178457083321971918008291161234544490185102107208578185925697367822327838203773258864860026026496580398016851598281860953152453459575957319709995779417506054125245478415994820007188372275384807648427161054947588993062304488416040542195385951812754672252666595188413114322198903896827013476384451174582937944543898084827364274128139903409189944718803819799963844258587229679446861738195515639612935729458534777993247591028760206052847041907825641462091554595699665522396418109068355556526320662094967017294606495011137863709528797541034691093449373485719663339592865528552440572052612405353164658067720379145268323665361592265693859395039315019842226505439016351357108450495512040600205725138371030616729106925377860385718519139522640330348754699478624462784591419414431898459496884629304239471086139531219365414659659323324130270371720360134226165087925673055790426171106230347219931932956463040184417973227804435157377880826098870648232696851423283333699265348877703396653899902199316266849841582806252269574225604426496609582488190881822843291433219580274796165980594127895874919174152704723797234172331916474617583246338630253203430324596969930889583119390925623713881000205164945528077841102707767674045593791273222663238054648566201569198112031604832387797477563607928763714015578562863882055513999408501368400073900669790732320031774285461675774831893113513870289437890495628499254558049118088375494189567691399431794733712492420292743080562961204401600440514893967493412562437582793309465074473755709725173351652902668219477327430061935044730913106919578591561528202197868339510901630915977375349141633161442164723378913733739172999529591253760765500229182379741421118941887370200757562526170047499407551904825501001574021746576485581011343323569945475306541696930183064705798024862675283433117572203854249197033737273119934916095933974874363822830641812684858216759258042051141378373744965401701610565160344011440468567900399282739178334713818903610655367784808911955213776193377118390726521729687293517670874459867061392747625334883866854660697117754269991659466546186057673449459700941391765950678231388262505908480450045783352711325992710385630947638776357399521563424055205116790451889930256323168999552650152871550033804302386208394165134220308663933933430108355581608516645927467996121244662623718035741552366466247680464910185209588454739324781238358986698026771721660778681342112821409228630821017216505821761028842272564383172901936133102823550999258699674265950429281073047318617602531181995062600455256119763044136476230854093061291522709333613610354696629640478350503754851191140987132675883903865412892789835528084897676781727684731613098247907106444446845375444408389496826044621547646109785084457335048114792573223024909872881165248468381739890411852011726872924431337925881005991120646977366708634861108721115373902033914511341289719051276663676502684024017108791092460088528605483428189240692038563077072736770625070911984203178318091590674718683679464106359346793041255103537827996999781053913863668932200679834171845342544992570111721899876185120986554041691071810408942873920752521001777443341859471526638051673319966239847143502815439229670934326418799902928592801402699441390511781491502053024350220392722650848069322067628730669884637919336134280682491756651362687732530732354004487124114609682591221817931722592144823392713648499869284058810426454714688073460344107993514680055015435916505824981091051152756639858965893944621652250166576053893263789125339996575624184440000056162498727904904528591282916072368859048111881184768946188729883595884949837173628890176485854134173159909250645533483466936440681470685837939527922474400450901609276165468603309397801635246342583332022814229691546615723440142517304062283149134105855651611490626632683045530969715012146940147528189469298728330113642375090792474788458287628031100459834517205231915632525684836792725517293648482152323203727371802016018524828019610422807284658871628487702033321368155989268487587315802213989525794531428664094367547517189696219711838874004382993755296216778913589077304920580154184155280203688648976221349158424134509686108749711125942778710179095193486944814858664641320135614109275929981279766181675979557466809406147967926149623591842819279713969705588006300993494093680530250523082213462763600928924240737061588136730637651436503723984922378445829016195503461864167089304236923401290121763490694822520783397064728151968613953549243423685459526817125684655233212170951372962187856784551724591179845175160060301763409327972543613062299594062659283953887771706929510490863670815671555978094136310237314179025701475698300089674293288454458623086642189240860252849554659048747565654080408728317996463228824755575759229189903302906936562145898126424784575886552093603166868566637632047749800272351577015257177816421707041308510248002082019767067159524894982074320350826504132835946680468497459891145152418785425120981303438223891698061462202322975220742880130177751227299598053409598277564319480701888450852909573926298580934474197438027497565681052863367247024653996395376356425775303627375139358146331191172191995669134380813240340608332130833414085861621913218429108839786243428660825882124120997201840358304307761074935505928146993734607404452348925544638851547523104186765703324149581755657380358964391181438640954927430732324085756346391528005297554652309367082812353560002661724313819668267868918799348915275579422234262020432044189616220506374397740013106209603551847200400421339966700429892237152160206657452539054874481238348199034263952068155013699294220843862083131360413923237446173465648873638431890505212543505755809045646641461152778008325860677954227975203082674266965308628306647920422143780461315624497718247237234156278374611304776621674878806502415708170704478098531629929692137977230705695543385712789589525442169921112795572192257723394462267658154446999456267971294022973179335941115453778749753669194205764277492404871012725402926246302071827333522355207754734812644028671876832969087454975684305966640989963883657366435700709200894125236639226769068652863549362294985514442932255818734752311019826914190136838906568020419515807237332826191458729624571536302101604857328162606137695127776333751370979466222812703571538615477886900437958542418023471753336887670411125872288334605802194577169962875759882607320726179805083777431933835572912623173303319110657721973489231897636755506840567678222070583618255886455501581357486802370840586746297112051862584538929708231544362312055081334546512062714759977765219685078517581886023977721269895812654134299388160000442866155115671697901002497987504698138988501826830617481791434099795220355237114106618312147611729804864006114407418719806950074963064691932526709481123016448029557735618406758450171419843744515384733403683740293086551188503453427466322325698546887964252886804014847245438266904825142669768364079439996928589487718664797969217987050383405780670622857656249644803846028148968956018465535524123695339360882089876663449439856900984263182624486306293396804183654643981612740457600901513364495234715390250978501666124359580537021658241140746464368023259206684900801415970472604068948233889009587924463344883527929598554455176696011268387100156981078462439055587415189236763185106752379152476732495473065365409346633625415225073189601753627315824427782050737096997964657107591037689930170197561880454073806540912256860622988760092150421770908803332162795780229526302558724120145966323747964166300345919706479257384940555766808578647011162212595780721414897327317212680108920141819875747008400935199881846411885380861228128996115649616169700235351930230125776207784200310329131308256420245375038240020076846449426266344973345880357274961353572818948028748887345028734581216240580322309986564193533066638467260605698278358343361045752359186068988924299653952465840420646766531020587838185964282339691073827383031252572202973570053265758365425544692499389111404493024143904894105438539274545765381241124813675488932627791873007055904723680471636510136335652046426242675944538982962646476070873538666263160498419484996773783890251543226643259207728450932823137106080266529991515083641719197212963814977584973446286991135921452361992124971983332356221556198434420198312746047737606518437592883353481638337217509590777524293530795064989491389627619435961395012695949722880550777781693060261361841129699667618646752283582634597760051303229639137829364498592818401477283562657615903585998079645893159121380439541106397215974775238437983891674632711767622612269621014268920795720894352580796233307403203358943143369639423851498363724220993198028131016048830233620745509855674071310334700914640901786570265663205647700140460002955271893819044999410142436465995332993853764537954524661698666377729555387422161155533527444119395826829194189351456852118557538200321840573625697757270500707327814394814955971167711530997683245104990560927787019698861955513801431975115029146850813049125335742860950206421764196636618071294217208150805063846329255232047953272093772181134625950717108989641943280266643959717201700391761596356760405978074693562039794711311438877350388662898827343922060971648248482695005769421625810846986698191373059501527498274135196122879974931728540259579232708190967030291589185334819535061510024175467042647866180337043857559680240084815158588499854463331420622854325688769318363958276308920645801220735003931759122488442436960818745655471720814938485793882691949758069417861399092746729202167217540423193068299854575205037092192517669388584162841841580336743415054898977073498703847250459196138575443357799051245639387552374916744695316935614114074010501424072566796814997147844314756677718974726667701960365137235844783360328101908874272287032500984700356146611802499212657224362853010379715043917201654758535034153309715484703179019895711133652290079350129724040908354308222785302232582189423172373401410180585800063394375296809991540796840913358918746422611291355984567105143125921276237532225069714709177900697126657793777102762951902979525308605149489114786055525680088797064907704869294277740439517811599819938516301914519412874292458524415517838682985427226428991139447174444648448488837151355437440630789477619700223922556875996203332609792341425848756040740852061373167222566614076904683572042515911782533675301977591295272236830513111979875273768964460168407090299020894918964347282604495623983142597720074160704553579001364853942466118861225535344390402747686159548282770254707996724281200167694645478085640894809621590104334795867557328143205354748833901259958893616413323130450893376100014189798785603093935417173403399107324820971438554718371391065979777274063961417669476777279806351085182650986507064954204332654689485187773564300035357706817042785141971710223759199907268546585471871843191719739004485399033886477198516800623533415915151689053293526775512538679532139590114225657959340726620570544935274319839279705337911633778075881389338233324597693802045160334309125335868295996636350891609537459220429711728274119915942720350934765734490989429019251325150410369333453094870900932077180536705520025488081174768814730817422728032401613983403040283915970729988608161522585751614488248377943875399045987469430168956719110694007430619854698769474726095671878900608310217847491084138975598532706976896646098028829255515885045365558127247446679964079703270369592609150643542352114138265656207265746369871439217320994533180020921965132994551259642607028729610461421611193818711438824427225318855921486781582779877420313690799139549631932286495870316466972158386171301050332584678678356193466178992503748482202274412719434059050670841103335662659183001246651367205601904760848733178400686075843543491673471011597294594273291300140811801085847414275725848733835003954229065829158337678647970801471622432182839589722454254811134585736008961855839715561757301289505696413279719325839181371818946572473716955522651332450096499094049875708843821588324025262132418445653814557791293375697440506368608357220019506189525541323400624947591467044740726728959150182559379374261414825484761124031497132571283784625192063789038828016522444386380961016669869319465137725658162518382444651848007271999288800546683751310814991581888128085857180404991045164433116019276869065930965107720472244251436724867983058732733023611130597811249202633036568056208258399181819035244379684014765572682727781507092995587706975669278049548714170903448856100354178517351666471239656311254718561413587100306416671456194998389677707551151166651232459290457472177014442294521988765331146881775900107443366167329309407841449166234863708566495058304755224872904624227583507591933771441763415639296244605622354772314047627189520661415960176161627394026528991695503362798753073778903225413644452516920912040661516689725236838139553149294056044275487143195648136217005695284939372504492838264777755348397010731723551372108477188024384552721879735309208153018704353572298529983022408740394534063178364536479667868600728609984594680185677184445249100788144736704622662290588780100036834413108095719929344686325437912642707767355357515359817422593481663334315760189954060250896821418959359689140434687091946900495732208593937969369835812149711412659892193990167516057076074924222424186658096399216642761865433870474734650108991125422796059370294253437622608773435871349349177133873521898882186625687105815614428722773189138696474745550857173717292393069064898569383009800375472642413890216372714028656767079942055114788385892784925254538082673772714243088243481348099305963199140880184435763010469348558632520321531417764117516873652219516152751050343724574210618872311535404473670688620494609457129072147165403141660285681086001807571802081168899763430272447345343532842960972266755540174467287936126940186693860762688076447252579244841686045114065728776313583247927964901796861234644592602620730580063227307359516472386513634085018584945705871209305814875168923469551391777578514716030449748606795780688768748845320265517438685221148875983043940802340443556112085199123532442656766218681160195273520721047136113585204944260977763004547134012292993607076177471122633405481249115009977564603598532986464808995146277693320152611816965375490485594055960304764088368495414917865196563843918206708687805026093085878625352993767618417666480166808279318791873976971852007479511316430490965997949204183203916134957009364151557034961965015678111098469473674189424967171178732779042487493893274396447531323432919111635091395196235248209310630868002286748298914096007996966642654706004379623044978164538699140779418915564350500935910048253275262439521543040571679716989138132990084365490223099483619415426568582146009471060941925451172795934875091104054320122694031187877654513097016542974146910185979466130521130100650414438260504042060299635282222867413463998280877503934706571906105264869780320035594941741752996255099919979040253853015972037816442116763799269550466742003283989139377353849807698971487714114985038374064119651843228951779791763206698224808895118867764741789330641468430696678067347512951909785546757990102377978710221669814324734882513948781228777148974288427410108489166925962115135436035252999270657143474090860568101790612711055740631360104732765700683064425247828930238122566287622883968904448202276178726115424341697737565202103798716582028796901433444307917063308073373799447817488856712043264934535552720771691643012690999216018359676320882799787069050681578333557440725831498759329949701260547599907894649726336626102718286516588117676180944782856557439207554753028560542059345404173254038056680578817156093312911001412734958474796149812861687186784259066697561043993568432780992082473846919570869974897953666438496567560782898706555482935757855400874153394705810587639080962648580657713304856880864149075487114085303223480396319304599244712807307197762150464060765805720968622280530793022078737687428312692391021368098663670293342768682883876990655691870256550211081000434416539623775505129269245698465479252540171786536982063072873530740533408630776282260997927407056082507399053216733655249615621441487164690211289742185365621380871567574881612486417168873507902892115760056240690527603060850736031922192337188192937725312870125736587736396305076073552786709478731868253824690745459182170664033428077012239906327347473669275570026219614641144111878530626403741854031074587668804515633400289745002677371003763357239073434121062896193039835274531978677625351654698697751381350928982000665857778384586254901662378038955824739062012191200866306824841458928372622811999093938154586805488952712136105731620946955140053222529357034621936760831835733676635752782978432506343327633454836294148203967955950974462107949160996299125982771306466939607119331281173893383634779265049927843152048405234285319289000663449977596527561369466411161341124477023121910885164702213888764696500345533909719373661467322225908731354287661742619866074228900524234682542040610459949591829324535380192780396347211683449647140562123720323795931889982554355679412203533934379270392521492181970459638997393144478342788053838020769841820010183030945455459217109869577371681234997951669125115141702530830529808520510139354384940998422433390874701626159388211371504679130493441340569943332365601927926673899010674463233404508132279484419529711756344785865290684566781769590202192524434569158949235306311631192002292519227701320769692221055656928501528132585898575543369122364098723608424636026605557199676843476424532479677517233324906730191923564144129055162903616400274783881689194891343201571453898501986325930306175676520157330187823622056906092160676915317994710972237457836836409467727591826367381374650986728281542260915135539778229906435599017151575037342968560791041310185995167490532939244582785894971278750744950831523529681597048422995874674846650739995986138875228689910967676345131665043257247079589889454620049224843403152806250681809240741658189485581704270661083340104867981668311756994443629407813872031252053416889639779867752163122055425758095717331833654621931201983139162433268845461911855188860880895790084417688222031888574762769050389322066346306874273218836018990845425962193687324613170563798829952028051353583909101294596402114869556880199236857199787969286988652411140117568055880972012820564926555226198765900676609865772284769265526325712020504096716662982992748366968824950172277200393152763284824895392814949229068462464654991576616891587037409898703119360627988091222033333461914528360462672087974898430551381093345110072633635566033489959863718782278507215401126182214080544389308050670665244220955483199379840525613571644344225796026793946205017417762106634319216295149172010717677232151250179009116640186653209697534464620855080146335854695071802931070517311746823896598141536623069484191375672293784014621002831962911954097980561828195896704076848001427349996580659994339263661975649693943437943200687550707907205541916711205105800084037230912585179110867269783466381413401087033310793010828136042445026535062777385498114735558843788982804594050311847743997750821608788001949676493324528486440715246384390180434115551609812333559916169213603496246704618001908766415925125365587043315096361340082620914810376718130329574638010595196232078882796197548149563863350907389976415883444937606301925596602872556110113618175771203058516549565047988008886664693307425617243088990232003457451828153390801287741585776015454462031999784037972020198597791910806737717087715517331863609826554799982829408295359308803268909378098629658678704814223783362323484590980664310655931713062023788952679515638056434826301413058241742098909065115981855904946905293292695677248071599683563970847333858614744124460359701139356134649247258786038611090628507375898010148770423366662430084651579178788110793786034247463121262634982167026863178853196947609011264014432368832184396843172493685350067174667677762935813856840757414105810350693749411703505844334682930842695868910687038402701290912091950131793250018694749585093168953203337322098236596008269722001264588397390756849830368893182153161820957379331974530646789428250009183931020208102475040640520047676639811047088647374895373822098712959385241968269522606176044188488965709577325381084368975496532349830031882685310874604720209325249856113094852441517596823544759162338225310548453940012330855684529234077046995334103680057335140713798725917773080893567663512263826548634746262943719394921380085560832106773217695624540621828889652844391753605757639827022306979295141947464698042287483899167768521625849478011964357391740329961377838308845087140912755098466849385730898553871398541066326952876868230906765269021082197414136352326827504436093859821675707866247491623363629973374656691411928102383768262914843400322412987666301030734082601496927340810445704061282682935483136627482167271267512588166220433948621845527640913367140047179880950614164181366515178659127387268632168294396127836811347310702846465634040460899230076716600022323675413353912539248650857918352147765409751937537939996769391813304657051211469680491450976359472755009966215877912069886873794147153035020410508212737851712076562871703222839909919302289780036321587392354787400936423696099835832536292494286094641591928359330704329794522062692889069858585239489289808972388745914565788341091206529198751391815460608969164982385204969557111875628047738599585080094192967868257616473087100252515391153115553777458235661906095987523208822056486214119278869428749296408184390374614639698580493842799130180888502255789395470875532242854601242886222069767455005500531754769650230761503577846114939845442883761613880128034393593282530108360247176524101961432417315965820762424180557333276043504403302898608623247040864444647201721285692450805177257218074477087140368253053939439349087451836912801734324132882667003724535396746218565936189272489439814635338571128219959177715100962953612875251668519348119050429999929391861208058523714161631227585069828480317699820773219960028483023603811977978416351366628915725557715723877376673251042946626074303509148184246996633626422339516106619651114939233137157134274613185941522290253394893799484919838668747213097871413878040188047070635972807842927890445484206067241758844977826561272912911394221142676903672573508918870942727501506720831935718634447089651169965724683167903334441786025492648296349887967541809630241429617648079098414971251772043228820879553766373653621373787400192408290220111280387372316116287726380845524565028575203063824017482956788392879952962388551701306573071010553290449556036688687451865368799649243781035556306114693041315394026476409438144562367793904209025518212520682161308440675651749143959294130851356007342549159503271335704566865341161930878915745713927809233473352033482618822958384521444112794616845108466552707026401205977145298404644637911930721671894314995919579084244701831930805338541197656166924518621599361307473211132851159114884453405108994247281861369065911390983519918973188582866798815559644354688450383822651966226902500698746255011096530581643834187198813703429171631342930653522505717719377676642933981600607958367341218988135555008153789903428221984943971541246219813097878113712600853625219513510589201071007305927702596265691789380188536026218114550250856744460768748112817030372886133282119372217156902985760877960711349921220370226378186119515987738596414508861122734136617592277490767502255598435472676635018469917655924033387743513130640009043861330438721796763701618324501517832553704754734611136602397098601027049895205388739975887947970981807832847586294899996876970602802264643558204348308410008497088940960482390669373912180797054849780442537990094188888681965617359520104733911109960446259133140108784590421064340246974307704775919675348280197968228206433510748333413702422995398739126948513401989960108925254077814008100267152566066901115257133984772924906982431915104589211702437588476691095964863854245847607557616696532852668341931269196573470929001507459177956983599500796285189922844272003742799881824387131361194785185545393711438117768223589204377658150551724138302238007907285853339873933116428604382906564335672153676943889814276545844742210443957594563983518631498947630321055345575731861115538573379124151770825544149322477938678340888951112663126788415340190334423701474615208817053744386931442602801316069655343509934748494348142916848163856064636011866740683701256542931766682055479826750669189097816816999025723950695288982380509038132018128540062649153421016434552109387790331200693384546705964917350822045414491358174063013385995403864410630923170990814931273604390759498339174268518557480750955473875043140834262809322016145266285291432409207940623811064757369602980824422170402475072512014191187130372286605891325654273143700274184639084549083763541335244138774897617597522695498319151388516391787514022337357245481333637920091799565209661415260368310048889224829356289438599905311104734438228247414387802491694782940858216605986547325566106371415560661480876032556082274322499471115759698873973260201199153326050555014280270838723774850502602450322464586364403413174865174121605402609418444103242369444666108683130165548439893972464553946911728000148050401209493153772411388334841314323659795900313281907043443478259833682433462865223823626073114507177249740198794596361306138784373417218651973684774040347883429104775901901342876290575470437520146562110807196398584523369350661304724522259458577007446573394098215413182386825956729530094697698360109506794690054967004287116399084450733982730863146591707584179525608953175257948473279479620145915491847813879050578547262756617832096540071976871646909092070826016988728991223255356727567695027530052636336410353543926015224620381376244045993212866679637242475367335409741679960931061077236028583517342856129216089924426265251753430173847394137699123855328028490811276510661844382637781473842683078246938864022040396253232323857682379021219043983903154847472625620730217695818209958617687702217015905045560719365024127943136971311905131747538688226701852968304449219647056994321412656133869288880072707794321637576578348300507240943782221490640506232601697693043149463834735625159780486997338294670673816899184990580336184989760487250248859540135777267171308076417555943126977974258587734145078149641137916236855660526000037456745248624612725894855193164413098599983655072001658547342832393098881260572281407743364109615271314722257951368034986293997715995148016207269370139568872484347381750318982293381578904577489479281168483019843391227374618490891434292448533128286980553503461599752263357388405326586709815615768617107037783429993755371669380821645752633872520737057621541447693276066744188462841159996502214615950704888499526048432576218496203335655223424015367879971870981104445045641774801616505928394375232477468368707316491193442481005619851169897608814805772086913187221857770466800818874059314936866781744432730580215728359284255430699746572767598905292117736852933764268203937509570462000146891985913268112554297503466335730852933468234377046268286637668120658354105426385013871698084794860351639196155292994406821811598575053788153272691608496472678469363467606498352154054993977704440426779616890509649533162113181258652813656911797244536736329598992795551752649781874456366545031083311864377257280106901615815978054393009062804405840425302335494306166836885974464719065036699018823109909650905314064066942673297444615159889538004407634037383940338011618336072519352210456906121084172809100241756444545283094876009986928625305170429875552451117269145239406307502998138525662226246272641117525051691037352388836714823638596509027703929581146253199496759721070163863267918861807120721550771654517281974206687154205226663684879898606143609268515232974361746610368125884921144701499423020105153591331125067317959317073154345255893126623499064623474344138700551454090136182402359271864589217189010187658392910350879996581542928245409101061899363915966126277579057196176011399670614660708287544580331808857432667160240951895828345072367727114781032932061138884853933917709251123641157723970020675579947951306040027380597810489547293555700454919208075362564655696067591187710434356099922618352626424113314987379852040844791863184781782868508278317071373327228103409245032303596538147250531391190407613554381917038478051313945157003370178706509567440484149405940575992281602233098284498268089866422479727567291959366511635718696165063885288854288654431314218217487901218298402839158814430639442801752994433305337870831498366062480518314594225862399847999804955531141242907013584119763089956941715078063139434867001538116972284263844192937171049926917200749767411871682690411709129301009837947468292112882221238042493988642497317694016549146347547490296144514717296642175028005900132809011208191843989054552597030565758497465898348464379409541290029271351549185049356110379267638960973151457164511903254519518317894977694537263565668180411561527770204202895596200120384650163881350247412221976827500485600265292756988815862319149455529761789925448705695350025030770743494758230970229993528402994538269322782405175743326059747621818601793236814733954961720581299853934351490284492717479763285274243566884217590407753718170334941720830919122612459711553409322636338283986984150324331475953169146026999187041095614751006131873561205127484292630623133644867668011770531512873670118644172411187682900144646120581460795781480950836758710019849040797057953684489212956901564479909468966967108271488789768601533350385504153900676702450510056082866968552144505577052428515144806305309215973095998742699167185639013865512723272823549338500864264335714210069999456597743096343812638576547698728783745082543772257957110937793894635385489011169137771275948011664486608266677806868866569216211714461512925366685011560731577948986567533349687983784087820962050781173164523840921329065940859176275006418827552523313143062383821439573749739885057275259615058904262392138790487707382792598588550901102576312699322276644867447821849827341163957608693966653701687107411256596108439088105700335903322555164123627165873387650399752258231592899794942074427269051118601844193855197208094667268597561154584564745177350548907629599122055734673136036778376854941495348852431774690092503738615829231839320873096517998247291912060724302723402271386825651888926010607556989981734138758788642067291071910247663523258225925218049542395021748099129466754220848207592604350581717407834202005093487394296113254425211522652467614266874910507360533082482662153114571845598148418993318107821888170763980897237059824252440756756428979523562861669276124050427032171258826517225628712363501015643429813066502560277509740632682263298642381988395105145565331052527058992937278037598681949414883489764338830569695300635398967404824618393650485492147334332488520749912454497703971335771713137790909849796004266678298972714732367634507919683465598672318646857099045709589674904835913225781932158766271714204841550686728119292822382816160504235499239234174540598320238342493479036738390942879385896385525559236232563308726377670354772362090297309130668392484935594086965359598706575466566580973127817460117236640626195013821464964250082821330589385618134248595196557598707088083468004451541240980110161290701282493809471487421421003622569485060891589177488110914256802854633708196641546063355808580308554357082161620260841594702923676161137490399018680987145624890410359875839433221956106702909456172523171900787881157253214284611031951428023565369537242320289020584616755441423024195715388141418102988099346616292464930394915418239704286094618228524764762505366539138745474706378757523728662454788940642161632243319210676618764151201969449179115418175732569282882777295916659587246604093387934655418415344468626970859645215652745153894149175551016600423696360571676024208803606482475347767149753158273727785405729442945456692102833847608873372565055540069557457456501478152691579789041979034873418569232566995597735179192531436321273855584412820897095093051632122063209970319086548414433756666628735789526265032354974104423764933452891738654446753226622485925584891837556519991307724923013027100165439030394636693831859216787058228467769671657449029212389847604458992753119452011227111697779080312644908732230405731169909544061809369383291170180498779362189376173772684891749140793807994019528803416636162225960914209398605959306638619333022629355937083410807437934900133073856437289868221310191164628085817428831868749441031759989589318370928670119029044306927954118160207585751655412176369353741238726676747325922091356809066058929863338021949722538953387457223100512665517232233522003992291548568598623562706386523438026785634690455067832463365526547274465660869165992183009245980413525804895256357788698189046311888660262501868876041284992601241990360660578072883573904991997734719618596844007781825671567043851681874230586254338162204744539908665645536706441739735946568383352919007079961727311371230821094171877873020492637546828631994346157962689017918168930052795118604144978601342650839807940421634247509643312863966523436448239467311237682770413909347958274458855762659279470901901022755585247965662254485810533996279008639129292352058814051437445038619994919881421335743851999222615374280455382800224568016486898751556211133754196280142554996079952057178528386599471470634936692935005433545644064414854066833402624858881982746263169388733235313371873399767890428271956747322732117673441762136381747141257024039921362447979795943186684731153647029295720710358585874105984182714442163176009890039259803827138225052739962521824759696733727766511070019699625305602655105531565546291844273788582143638888384130819144050240525957548117440824340518791187786255776298938556782026830146179453722572995584417108575818709863013920486391349682329404702275528789287245387327895671464517072000576690128785644321323410302437510216411194914799293104202979131224940430527018869935067500297292433667398984677795451701520257262308034312676975707639069750577800136141004799523354874664887216387655645781919176841647767288184556828672058962285640238050675444160121791381913929001432216753383287454985149714560998113679609052547455342562147281687604846904543596758667812792696260679648931458860445311937777037490516520548603219843674321548676283526797911990285231954387374770147577104105540982050658007010439967216217919537290268176464190103838963429646829208652015002172242191355583913990343853884953038871590827160830468309407777328167251216383252923004169217214537803432189662389797493076938884689190868036271736185992362304823083401036197595057434966887858822462295118869144510873658374876181610563215388619852366985223702845677237246400448206194587179766131991651973354379386513099860140880652337758063165535704485340765722987146735097552953340735138666613435062520244529995062795522922398538625088408200734393246874699788107736249248865681005078231584393746950844351163115271739676061744906889634778682132436162696247796849956002257130227200176227041967125603233302560287489373378364819650326842845879947142913915378901809240334628100066914675204648358780993258474302725914239334810566103287384353323236222099830394997378990074492151377507646031971734464465682609680506453359630889718222426671955702786942070046586908562148711934440810858765356941720283316589421789405695801065650704007004292739573071463795888676650189310765177070794568960371475252318998865894331654364746572012201180289705159777904148525089383018528613065292905056317935471216821246349728642368198910791552446209145114057369606151224494740758970068473625369298745234971298594670782370867442988708590507948484904227937727002096445106383704158753464196864191100799694657039708325179032124839962249079086674616611700078237098875047363744477167547840354903163507272721269332882567390386500644110757916041460828237118018712998633435424997794415860208224609156116359705098063753356251721406201545770690560981237997759396447952021764069993357034912041915881101848990126848338282198491689996673759162084075903626366911532786852614753477572422105823611219351951485494488855531512234987900848483572463463877241578155860636067889449455405387398963622279140304853768434190664059090275770998005199497071866550898635910658510494627997404159462887085715009645241699521438318336372284589608103086199593719152134411293358642316443556654863670025072538688625487860055331152590603406361035126361435487332896269187148187071230959460307097437361192384873214767919412903941491991294048107721526371518298311270287926883081068678420405889185873656523947654070224529605394847789474696234939708508955163139425758824608454523630065144115045705196878607125389855567535239572519568134076244836800090075611506835913792582426019743238930683215500564468058771355413225606048881051241255592653636545774262890967602631141289354560824572425654244304315274395001491624773568535743879308905057113285940740329884649840647481968595774959726525078418511118565531097756082590008801934608188516417939980118495271789222420858006249173394978737155931877011787423663290254508590668906942517948796741795564677473840605996589584894283336752168503689666416757928996715955387169148587255284270311572122071356850592015298620820189825872314302846844744867791664664123003283827189977296898245953315462653922726402765401197689850277179032780144235041222415745001387826101584537169459112614179169984896918546043193748297621960341905605780034306073884310360810556571694224020732839555372674688544869136905213971587523821239423673444475217095038177102681974610967929292541710150509824438513858146548606934169995725433126202915184964480062553462195370020084058133920440806147794061918460063195234499896402834692005929072259032171525323489686850679817257680878641291301352247337132019476943685821124200687283674178266784940824365689579359436984601129003664523294899774772222083191068799202301948593371331806811347804998309153498735122359366249010503982621683189897216961238487668746049213013339185439550256928386372473941152125901970468035345989032335631484856415881289424072444765247667829059080710916872331795651811179301944326224642003668066163380185045736573984370969872065504457384028339005912977529387585493752113575128530040662881809225777055458112236117949154168419514559310406098472895409327362268586577348111053316212260888683471621683198323115791023743801785245593455229357846993058696333950745110929356049340897275931490621521556029219292231816052245205887694864313812349354478562105169321062743732510578281651095155497134819814112457192704601820210487327221662736852466409042469140034375558760912631584912322180960825494403963040751131322735960670034476197849650388165762248053456791693511617579669078208027211389638952097324653565255341730506385294617413456684771900434639530494693975105035286412483846478355003925649370692697334341677402735556920821684001905942325670798616731420190725255549829842812340002218545176962951252873870897623691457976528896630975866062335152984227071987923029721166384718863693443529243903097263818367136391071779605770893606876687926102289443732977378258930854575733843378998346130527797255028892817077122265069543602267807866307470589529743768954315610274685826823609941611848045621898774519535093092005274378364936090374145493991257439216996878965009603140431242515746789361335086617450441609778902060523847228510143630979359585828649568090986304012168095560528068649306650591764328415392543480322462597554094731953723056065097227319526633112903586954885875115139893496871437368059670219770413804065242948273191623818063536633031667611296078724917489708665659163892102873139121497987292744738459091516701390506059173751061391072246738869231354971721090874886238417673562140403904995788209708040272809334841007226651179561397133198867603335387011191463618682998754645285650251520983348007504640512008320734070349602377609386401125558352180131882273839392514142648162131824472663415328281280430992304682617930684207394566768890473174245513245787870636327047087290388364032631256331789459685222348008927498236821068066902680907543073289408219727553974555253760400304805520204761460068569055207371751022718203225982519811765016938154939742751087104918580495196128131358193194454884118255747493301988748760857330656483930283917826764922054869989781211147380589091766585040761210278018914208960286957210349034327084384341878647004193745788697901947936433062260828976826229065481326167789246770883537897776064480009000339541718772058777942469098068936402434589995878537552551172973432625846560144398858749690707648175093841259310702591913194691710947618491451554210682088724153059248761600934285319405484417893234443660326569038561926205448501980668870905861322428764019433349686587950449582279551179528051465102988336205330779463158387924004224216642102653638736099426023815729498949080930004918754054958397979693515006960696133426628945093013455032796457762050379386755470819457586473445754868030389840402799334575776934528060160342729942625460459826944195971408044771232567996817242312603577742696495489410497072930319432155114784647528409651207741518434061506774116538757383267647685822719399409869248159454079837202585433963350230294736830093382354525019401630009942247776793535013127592012121122853446417189448848958890141985103997934258110451940835950444864244989697800138467715823297758519713455375997584919161977908595861340038191076691185611529036005777995540250900808794112919279829192744881867400585999799434585904918762366920147091916539404028334211322108810678404110186573339915799847843595378133877283476915716017420894320837116436532991500673535265166373466142748925409678786970909111926459092294183499059625536533634218749048420991857591475967649812127742710205154426686759809401721378995223527456286020209246114271240451718951402529853686005224133783143610386810324125239954594054669243690587275255007916192353413484786134230224210375784814623653450330729654224692172537190323442363674951026631137412828107833139467092241988535555824813227085761175143583057348344478969940353984804747661864353501203516159944393259580029242309137236449275190655717197839692951099541523654432728742284473471680829697235691542876670718109701074007316334627412971228813678201404657367068287794674850148078145185361487303050630945987788966826333970409860644501813394189286021299167501522568439344425434329629360748408354946068080560944839997626717654425985944484454478063034958614984481632069613332118205486868199681393738048990666736142192850370336458190850498302945159758337980873084326637606895659446773815610284255518455348207576783251122660652799180314089860260968914134740720326274690295961938849353340125143554112072298410167189370923244062218343216665134107902776330326261475997307725102705152188624725392764448575669466804287642797126093396895684288760516936804345128978254283779765655317776403911557575690187333941430544544035026681764091185608825734743336966586421098491671725093817733743685634888144927864675425812844969026600376797039944159198295215239193839246630615387833738453719481735297277103909599962909606881001430525323223118920501761017925625929568911210814427787639460493733437743917227769046301110498215351373219457468976628148299759689814848419158340365922466173944128170557479799171563007184270917024561792872387919356971828623507820625932848556818793356400367011602545282634017275716194252000508997166130460586271926848696912194657649446937060293511174372952880319396106888125246285701466075742986961562222906188243694982324558743533357120147648919369097823913070525844738869504683249288323115876755407479630335097353019207853444614382703791307911543102006490402709094137694206983599125008042435976219040900230813285679709724013523918481413071041148686795977865131815852182833478241459859334164485297391866471219505536310653124930793902419000896313224720158697366613020144137626331648174660894252519220923169836516411000441173607492869330701235672965180250531528515671063711836719335724995762849275558580747774858867712262488504718500274284389076173485119941115302085460859815697983404233808569646583102310683906251911604176211235707649473573439873054172009640044847929025667910932744165525338613671971593559254762676848943195195435906466575726413432396873707367906282529494280142857638877374492434700612821346055453269608127441344271949674934103995355750689335847179658969202672489987691000326654794108555796283220110526948798091478283025830090971186057032922871230944516939551392695431561230865542124767548053415038998674417138706416878750727021937017659925831069095561213267527156637033943665310192266511023348657651103704967870687946855561565959933982164224906381546552177866385196829980187225609127796516853306303225387515494786171436210829688134723419000198231188529902924376100635877607332778519472304317323379360048891554888805433820418735477692929245933907805224879799639119217911207029276624453062971258362099850437883205313947295314117695597868060491322106603636112125558576490190372907732265584873729319516963164096236918961638282719918897417755302172352841748338400885359566643350010919716872945454143897507871848327580137717535211190187653380654548948808590388057915751858454866444433153331387450813360217739542033497789832544848831898472718862902741175149571367159111654559249288129009746795093077954851648362232804927796065774313235126104071080170787288202411082476792750302340480257628964489837160769874341412062311834442510727967433338522329931122281732015620755900764111444887335869410113893478359983849240881499901251480731534960785815590472286978850414993273073179111677937858232735782906501319253436862492055406728805972982549915335282354230102151041676142089758316629254804259665267785890577110669655312337607396533957119645546456007078743643846202728872832719356374266323138730871226530467405302241925216126679614273531686244673496491022094532028862347142308055014556318006502544548686642304395416496430876008113883130409004585718301601557907361717553085231732996966031136825109156487487679489547184588601352866079584447778619898336693803672756555517707969302537201671765402980300240678679146918928091377370873683663443207271447802405669105913285062219035712150171687575984041548730199667837284183699087188461891130841508746831354066150430651353827202704290837077589640158409239076021815715678431159732160945831126950828835115839251317020944169444506349130905584814792900059698069188347870058789384706428082409353867834250283745393468451074673780673521664397504088331288067813860982451837948760475660120546602779824534693839245866298881647934474593801113652293585550341783955239449551767467832203393521364047724251209636938031797186033845866784633973969797912421976822824041816138677463902612023829179368852462928356064944971534562701073750865532269580866673406893434896442176638814263681096567444069297726822460491901045731633205000490183715576700045902612539621923247037703894972114996001901236224448489156198853561066211453666029364324806769983383251884512642067684032106711712816536496270653409366500847753224241297000218280241712401066305580394580569882634254692306184858091211356993438526343373350333254640837067456995105743865131159152962163713511291139319559031917093845632954700094426743545391968690824926558046745428523714355503488096277348144635784043203997408942285670021546011234025751726476785415950252287446881766755497807091047050462816479903202113237230906533275635037188880602144645179891797300271966740991528941487128194746046168323097154876161987226231517188117716620539808219798514777176980172340835427257109652600208059703719565159415302027966221008873287086479169092663363045024509645566047076823302031543884362691673246305342945327429800236109254384629917652315023191672046861579493873818374856874248967119501960035442594067990659529240132121882513968547943697031470734328823212360714353630464325881062435329131235091989591129066630646010058203664750951947446313948812169747058765363681493640695603589290900151783986316414126431179419888065964826396382222348596732803890901280558853248122749146732020483345761501781870726296149287401369375400432112836961891679107356852001497759395894280190872348357262605259836600596808462605033368559713457154838125621577706726904155107748937300749328493043833724058031777167940087331365805479081661527687522887950122580009485646388635302525630070953939009683894971741835528180279908720390454757554179939099320458035651886038127634836588375414734220275847640378493917437730897643603657312431337788686251237612431764196551294782471280099286252221501049778219684651018137977773336044778343871912860890758161849606692721825750261820209261867668967836881754450462873590417273255616625634100934979087016211470424314105630106660294222866538482850185428580470113243240302010266795083103672246260494878897085832302945510284505334453065716470592477698866248787621548815121539658691390432482832572100100043392068974880362467641818305507896210195480965362287558460056502443650149761699433200456054728453249197960030367791800061821822846045147750737362516495761058111102268218283519495258552173885931270156944730401209498359388718769217277694044360895014659416117735272603179011029056721764767164588528756269070699424361149808027468012650034386378244051826467252283243051177573082654809616774624655145993443722500643464698432154530679311329830547629547368303467177977170436440695509385635390131664541258014145626717158040900506575731401963145687508651620754986563498946160989621350639338916197982491801993398033162251018183409823721705367477767010379287447434184262315897137263421623958941722711373022766670372739149176588784596634478582388880799454896071509296034044128794221013940003609103668202864392304282297484389340558817538784475120240624977955361053096489892693576035153319309926289926512303596727858875232157787856145795511351575772877017588243950541294996546118677555747953103001250374559483384226126781947122760269213170197202034050557842662166422898785251018301880052638198673265245407989972477781390832625585725461806205798372277412399520317704381736166484013477882202671419736464958262029256328184727930086289860097528128363321793178128116685886924114780320234789394556107556446870984766188822604121316565192797689295201615192923027274812216771418300020522460942592215207093882988255631715705009815422930644684152000075103403761370665126061686629113302220802968016087637528256158650976753510116978046549376760523348447337113454657839297878723049092191472632633178497627138320697419389695497997292801195137333229116868526942261366411388268853093306397409590581405622757115817586938644648606322421846245443997640994110222923319908559318469435260016207611617982374840249186317528029739699194697027485430537496600760246204074259476416405042058367954230056922344955691988138607350657965055076749535317304442117793195632072298277579947474385427503770268073869939854584521792028303535454242787379249030869417448122854854424305200921616848885444534594004852339944748836188838153455510906167958049749665436256337079095985106127598887781179360888425472255766606885086561848553631447484530185665822962148037594545289748947727625537223958225271752857414097657105880005738476752692554506842358346732386692696767398606085388646294581481843946669746357382445763700425475241789740806925894419169361751491820071844163267968884888404502196117445293908015614150558024216696780860246547840374770759526359445724646916025937460608134215673105414478324246451318762250530411255561679523191309198003572733969402985308377742855313334426095568355048534000517173840112698511452025172095849052860073700012295623083312598651660115146250636334624386635823503032863524030850166993882606308801355865809636768800374255802249278791768058706814733463368935643825304553070319120123526348052158196818222945932838120394785177171785463391135558021644463446248533808036599685089759133290476216880430109436669805722232608557521373826928692728875675366571228213183150938823564525560071829056024473207702020413559895375302265482225027226996161999249442323523586777152462292068332332942050165510252602564067526384751333757450748435926024096250851186941535118311828510182366420226038361519193285275771531728706813152021520232999275361857775987352632069256985031353037112734935588327775617494294396998642998315752160077435436874886862835326083181178332686139840684673510558259837186965138778240241306508611311001032378318512487369146250741883387562348314889394286193186268317134309885525028323000476018595967750587127393479071562589380095342693069882363731795593447743309080191233766378030385703868783207747993283565412615983718775184266894661154227093467172011459950193756888627469184549954962104878481290522258317061621905417995200340266410873207647206746808200555813717737319505187338227717002838291128578933525540854016996176526181963182461679179263786354841583289077799360110067007563409146413626833424160541214989033081700606088213107218043106685864984144219942246615025429156641232063623895728573155005034383792459371372167133292699130847111699054176126266237340831325601157087859616985607877354850302675295194243403545830628689168330565688323861743309833186333770568692012531613461723350134548870241801405230354300904852106403606282167183522227479552490426773114847056736286655929325930123419397132105077268224337585831168894129334398086003563631760739305434831274729501900170373259931408591447007054881103409565824822475495388101485489519670626662124758416242596056244240524166040901440056299649961136439784426034755580421256061850838317098882079463772998684109534559623542992620933384452559988033921250745119072850336448995605236371340355649471530618260434781187356913806424626018285661010702970608936965297146102686943298365997988161447247848430112743131339951628543494272916801405482690074558571953086133686599399689999059225161322183771095082691519243100565099396799403983033708266311687882440556372164743638770285434131315335336525075477800383883212630264273629454975356877201812089916570460286717949317257411960973058480573174060892743795865004465593871025075936107881638983502534189033857977433624015780123689239988395986190984832467881021453027545236422177195676480781376403465468568363991766463791421040494112028994802281316724557275637746503187484619336890739095276963958789615560688659561984716053427736186321085255910777285720953614722477521957413460909164248461428942816002911837180895177108386691313634703463346336657300521403433739953153418071228808878459942025464387123951829524942630635223058540932743680362419913996256166320962403613453851536998422698078910962464706281346135371968263591403005371124817770976190156049610813570538129631420581867184980110660708735946078884517518618784833592785385985973154824629007002702839323906272609829684935807698790386135849340847506126952947767659837908557697925013797424872241024128136931110170438091431162344672064988506600192093195527572233453316160924477834786998728031777822296247457912882652066820207106079473055230630976858130877586822756721387905289277449618019842282212157811153578908918060652663320280205870630902127984708046243749834333087020600566678570141376922959745158981911902533478562682389921086167583806349946702931259565922550330254348388363510709082933662719292084419999697121343577366490560836294279352359075141637803483382373046298431914875229596860965431596456137271585064924014496213390765432658951203298625907917475068217445036019515031677425440598645425835276515555891770314891712541319076731029385860705941869837303724498784572063494679106205281109109384829591372819412843810424025124443597199776801007060100584543216890953246554942865552450254502194618387903576469063687154397825303863372266506983585408178659462622365732335075975017487825423335827154888784404616286055446588086000096940941797378937771116714830555611570221209478449437676994756282130938422554958966945900357150664558897844558408611418176946972520313077451736760333218907374791480774489667752772000849633976338224868098708349522795300085553196757653027404117167787197404780281200877669723385551331020032786255726752621127547487168000997788074300047022263356884651341194375067607568412735723863634033304129148838610987666614189915307971707687968684089634212145632587302835399873411503430911874660495695190527602541590304403058809080645283900363060329434709032674443918292652793728162540834570367068760509289321114952408374981952015807639674791384898257170641900321676027836568244875908162270822978423233785989746229425204000207212044963536583925472041600598614976241135007382366034000676521545911289550961975599110707398484376030348884329804236721523919369574999160349438840472276299391682954217594011279794197262316169429758998858469037754961089735750801442969775122649600778057185884009230034327088711778301476219255988143757502051686229163362725656039751365498979892011311649411191879147497023108127889223666538197286123392241669777203593809535621707198560378283634660582607307515408471150077301025268275559047256056283363157817989578787787135111592692309597810905608742661669040756124230435325618141285783378304285513002439187233929083955029236316680963160435840867652709910299974209470692093757106604123025605709370784704716230184930206879292985024728583423418454193855479201926941479095263983634469233430814877071608895151689131523742667249447318034833793918693977925760421442720679176023635083283971615775709471376079729120566968975652281890530430188092441409782850906281043920894933763587766030498897315438264799409023036408058714158136379078730271035543498963411963296537156574483610520523243269419824770430652137963850133144108139754372359138976151510087594556066124585700439182964269350096595631970659572650185432114953644940988961299699991895784267234816433221418258361514282982713972578802367491710131188753755953294617076362964072458219827606028267639240134255208634809972807413455601205195176270036570008575573524091725074775026586822343766065670716479027328803279731955347944336260104767273681875073547414356973092074356112982304659627562451563966224346016709118945556450865736571315038221298967712293353138586431647752553003278019741972191804870296076288