0.57721566490153286060651209008240243104215933593992359880576723488486772677766467093694706329174674951463144724980708248096050401448654283622417399764492353625350033374293733773767394279259525824709491600873520394816567085323315177661152862119950150798479374508570574002992135478614669402960432542151905877553526733139925401296742051375413954911168510280798423487758720503843109399736137255306088933126760017247953783675927135157722610273492913940798430103417771778088154957066107501016191663340152278935867965497252036212879226555953669628176388792726801324310104765059637039473949576389065729679296010090151251959509222435014093498712282479497471956469763185066761290638110518241974448678363808617494551698927923018773910729457815543160050021828440960537724342032854783670151773943987003023703395183286900015581939880427074115422278197165230110735658339673487176504919418123000406546931429992977795693031005030863034185698032310836916400258929708909854868257773642882539549258736295961332985747393023734388470703702844129201664178502487333790805627549984345907616431671031467107223700218107450444186647591348036690255324586254422253451813879124345735013612977822782881489459098638460062931694718871495875254923664935204732436410972682761608775950880951262084045444779922991572482925162512784276596570832146102982146179519579590959227042089896279712553632179488737642106606070659825619901028807561251991375116782176436190570584407835735015800560774579342131449885007864151716151945657061704324507500816870523078909370461430668481791649684254915049672431218378387535648949508684541023406016225085155838672349441878804409407701068837951113078720234263952269209716088569083825113787128368204911789259447848619911852939102930990592552669172744689204438697111471745715745732039352091223160850868275588901094516811810168749754709693666712102063048271658950493273148608749402070067425909182487596213738423114426531350292303175172257221628324883811245895743862398703757662855130331439299954018531341415862127886480761100301521196578006811777376350168183897338966398689579329914563886443103706080781744899579583245794189620260498410439225078604603625277260229196829958609883390137871714226917883819529844560791605197279736047591025109957791335157917722515025492932463250287476779484215840507599290401855764599018626926776437266057117681336559088155481074700006233637252889495546369714330120079130855526395954978230231440391497404947468259473208461852460587766948828795301040634917229218580087067706904279267432844469685149718256780958416544918514575331964063311993738215734508749883255608888735280190191550896885546825924544452772817305730108060617701136377318246292466008127716210186774468495951428179014511194893422883448253075311870186097612246231767497755641246198385640148412358717724955422482016151765799408062968342428905725947392696386338387438054713196764292683724907608750737852837023046865034905120342272174366897928486297290889267897770326246239122618887653005778627436060944436039280977081338369342355085839411267092187344145121878032761505094780554663005868455631524546053151132528188910792314913110323443024509334500030765586487422297177003317845391505669401599884929160911400294869020884853816970095515663470554452217640358629398286581312387013253588006256866269269977677377306832269009160851045150022610718025546592849389492775958975407615599337826482419795064186814378817185088540803679963142395400919643887500789000006279979428098863729925919777650404099220379404276168178371566865306693983091652432270595530417667366401167929590129305374497183080042758486350838080424667350935598323241169692148606498927636244329588548737897014897133435384480028904666509028453768962239830488140627305408795911896705749385443247869148085337702640677580812754587311176364787874307392066420112513527274996175450530855823566830683229176766770410352315350325101246563861567064498471326959693301678661383333334416579006058674971036468951745695971815537640783776501842783459918420159954314490477255523061476701659934163906609120540053221589020913408027822515338528995116654522458691859936712201321501448014242309862546044886725693431488704915930446401891645020224054953862918475862930778893506437715966069096046812437023054657031606799925871666752472194097779801863626256335825262794223932548601326935307013889374369238428789385127647408565486502815630677404422030644037568263091029175145722344410503693177114521708889074464160486887010838623114261284414259609563704006192005793350341552426240262064656935430612585265834521921214977718780695866085163349221048367379945925943403795600021927854183794177602033655946730788798380848163146782414923546491488766833684074928938652818630485898203548186243838481759976358490751807914806349439162847054822007549453489861338272357309221900307400968003376668449325055676549375303181125164105524923840776451498423957620127815523229449288545578538202489189424418570959195582081000715783840396274799858178808888657168306994360607359904210685114279131696995967923008289881560975383380591093603412529986567903895687956734550833629078238626385634907473192752787401665575311901115434700181862569712611201268529231299371614039069651122248166150823536439823966205326333222485051915936826907150043155898718027833538454483091072494980578809617179963371670365541800414646675387195869484833315435833306419359294874209514788323477484814181497768716944136400566451569361165241615557341419354247213730674683338490544266260383727882175527099309581410261369795007864658767716086308044607498028015769626759138977947722143375154708293458791238984330550672234749699849424867067215025692735295850658695889974865355621869580439971251689766541698626538628919775421877219396058170011042364141587808103861721015575519237111600498806822916180977324219583289748692271839791904677165426681388933792960368154579396113396219222454301515806317437084056085364160313849829695185669526128221237169393681303212965619397187102070980079488339101975351043074418234488333317969782773320911433245143050865734575006873914754707775775599184671183085836601594371937184490390617702325365679775967444757475115841957467009973450024544284065850245085856463927912461198790936930720198040293036037388384307421628212016353864662260971989584367994305720301496380508322323658255577245342371877374398183333064546629069933111259737219502746468990654571554403039178354197564343157390348838667505427421618310500605504642235457084273935493590517627174792994723989086329701019056101077426909264752357403046301592434424649008341886308593206855225077909101958588953143287998175709819168293159404530056325433144885173573026982569372534699640134408715801081452878657904086636379450711085051042417976919112926151320103163634980866069486244078006684006716962214637181147772683418466463642427340530031380773496119981468617685854631208163164798937964263738356618938313710983289564905211488134029742388868631543132978765799125454243338563472002681290489949550426980882130267263581532480675387903230574210403301497887867523778607054688614721009926329425108878019702841179224025910914665848092578571927862821476670740878635197142562924278670284077032414375699318832433315590024333047691110092479791180062862022137078006217257329047359943988831392799279693970635676281166940541288590819820238382770354834968797340488882930167367709415846544009548624651461013539134968559120402363618721509929806519058616828153028750427545258605331963432595777478813437239394991243806143754498590686075185631427255255642593967014980414259818237852576829436395965624388520656548071038845463944537701917845718741011862232278025251943626574382422560935676925823877491160737759451401447031902241535591125061381782974212649826416187246063133408919267023597958023658416317556792335662101231335845494590590069984200672260251167743847364824385715407146265945642391127170780306371416926386440100571310958960632649637552956769364689410517952000616452021884353404730182439305148819845930762964044456877624165287162072767318606325408014288745711986573074717018866036879703647708548528716700036229285288374682466058814117540474460616763543037399237565965936967087923167744685693108382107830483159196430021441259702289063203174101149366480952903011716334531917922939242428772837872349569929232136092234947226458243755094515335520117612897517339513717829332871586094386627011791841554587264898251392555943795197317867448769925326179423381299941279398602644245196006054368186646709865944365930154376291486979597694996533527210020020967910439482547244113342244870054637656840866762153373627461591205470086290571698257353705239761231238412564349411789498615828597020971097039196352168122582247562719519382728285209147182375343655254020746203066730476952470094413814561782826663196139673593672572646033884946424894724489784815967153061538467122369871282319784769311057166236373262075959711804015143896231706019585709823813924666135279136956376559048616762051297409983149655978602534101294543998672883006244084401861815117506870887646716097992920177696249633015758292596188494858720022922480606288121778733831458825512939536510881918651200449231549839477314735786889731420473109453814648226321023310794395974628523541295751910635587923001956181312946120301575763401597856817517498423778824473753982474575996867707408545574329424026781938482203540962106060721924990825104854003184963199863221569089097614053107165113129326853498524402864482934705916085869959819889039599559181107641344665881452542565881535450288847399753243278090215225695218441452986508355129839802262382649748818115815250345997499159664009832014520070480355568589973099815031041922385089745373276129471712681653088670054728865779224670178265948272609722903471574140316697310705050782961082607287042912608231197415101473578478101072797112427976028481411516338868969078671757725938152479612378999903666175603588218132546756344830914872962669372198850270018829817301702494421406317265197139506221082764507181663910436683295663807307194543211255053620896783230310851714811492858899362870648875584389130047186846798581655521590139256032061376427156280118971096114002391303934060617784821102217165992659596829588905449896485740412204749735425646718402365046790582748590695047355535311838358089652886158894174416219886804230349243895814973672227495181127145343869749924324213868414848375770331087617671331994426349880672166702983717230571304972563819884436539981947970223275432911444433463252114793188464973594694484809517347709407261091493510518550431888516380180024268176317264589577881465894731621991354217970696392959125603838048585831567272541846146996603519007670111782305279998313186980724782168173389846912490557910867065430256293808109482360911182960668949738197631510515384935175523971928535671639294213365269580491039503518402421871935461814477959700303498159579720430677759494490172314237985974762677078008980118918522229292623297292806314764810011917099935317697308942263740201007093350666227855337722176495694295133422170561068181275696140447495829039286085745738829193650805224286122212754636351051367221258224557507710935548241864408182186806578080799719517709474197677732124823714623843954879372675599911702819706075635766641012813500990087053356200523369296054295092545419735238087726164472653722307568265054845096797718992008548913474073964160494124035553268157246269023839385187188025506849257662387484058760208515682269637595950519247241511335163399791572224009610878392752258822130913709039825360268102671419245765661757745977814068774803927288115838175631194773765607660057264678952979984580986236663728860420221081574622480753444710682668245313146783013979556546944656992479884773872509646762389036794155692945890076145200788685363678588126399189591576200432171996367902698829112413538003826280315040300397490143536007249714922144796437588216498521429139153842734092660565411078590098047548501563396294110068732270885803892093866602669800064737282478204124119241732961887633805564827656343628060224348264275294448668047095582148258986443016881299385386463056032360997731239608702975422709483861874825906612323660796110832087609717857851801550148582132699958031669191755214285072089915579731076009248293783016418202941286326331963178831901074260096616164743394154710304528365460640719348240268087480514138683169741250300202583706513196961790813691464576360418232854233017738839045345749635312431878972696224389040540339039306952884935805777761256433715951089502408998893185702031780013280199777945931122995523088493387501718615418603641767395676490563615988622436725295694806198607690683597245894241067606469844393970764061755035650027839921735628683961804084163691192115011557769486857908922471487845531547682574957260623787980149706747223546404982107766859413968507245085143390188881730555369316016706539093911474320993348089767200168844178342988840477126704835769352300680827541283754352985735533050797305006712052401289557762367138428116947635192076990371894303804216371438020260110666534817950223654793917178839657146564474374206686887358331997949163774307809104278498968486960693414504621364852377070901452219029468183110105954590034563792948098863014998268544231855008787797230249495548680901708697654831156157276220114733764439915014185679907400300376725602437413886018262811473102546951894785578531365834695552014098212875256396892639185898082516236724064773919490085019462817223809657396295790935602068666584989340800634065501515697178146399656930331832975183416364087580730868694337701305347553507073800203767879714989374913285599899593202855162022483535234306250045419424974568657783359764165719518955089613766159654417611259243955778743990290627677159785074420988819643335932236673483397602142436566822965633862964366430983657905027742858329376251513041986499893239908267210852514521966643376919291245683079020464700109775893865853619885415872309552250293841539831450456825820961978063564201816960201594185402501085199174412320443594332553867486648936930678852959964464112849960565265236082673989819871175487740969391875316179460836788980226081242434510959956838680008617993107107029638814049391221574003954818755785922316123472118696303350553114708599233588578700921184132698002552550909144059309084817943620421149493800461925628807231636720535914404915394349163230560902343058426146232310502728056817747323023816418355694426887872912145908162819530945019864098633705151883699368722723212821579442611693259258097237351456169824731330384495041253660905156532450827216030197994493380764712349579213422816219071874389822734208602845477210672071476988552694014388073809393804470767794813681565899798368242345926071515270126980134428374698067667074908821906847066563556387993593946645549435033749338572366854345789966551386202315070272677577248748144286567262184147173278247584208168634332721189860384854071552942803791216373474719362537849890522347130871897664792562578430288532366722966551709021660523016296046318414083781215544500280342434817679267493928037374229801809302972274205586056365396307679886665317308596578367928006533733884357332821362579481072141013572476633003767021606441958814972809253810971730483605516802977670338571161163573792727185069574830898541786532522030558432875053657073237687839536670656584371212368194068868802319792659924226363888911289469040202113090926529044403516719558890258545356590756636211706424930059811694396536530001446071377786345070245262913323906664804267449716578267379986174202587859007609577702823029512062379058496854579125498749392266310424310638612717247756718882064738362117572913862923429920755333604151482790527586454384632305485082116454896143703211058166706907167539669969347051956972801618758656318296716389833503519992235875506433659919335054579899786089015056913078649912955515601505914855700720851212223732360148292288081092849174671046808227967805854622742571191906235190181155883933458092085005984334547184148384674544988212364043365707728165633455569931284301684398064101121424101723351739141677186945387525989557375580760150624134716218794861885140372198002572846652740129660903570217142186907445861335552628527210049280086765506377477202690840283449490101226950837017567392110167936194822273067202743064217803382385618264074241669287382792673321824251225279349197657547115315510316340080530580467465370601531163044579689942202337473039974719227940034852944397988360621967560113769553449002900240247662899731389264940182097756599837564808681717719384959562678748426499270858980560238395766763552822596037306172781488189718885258794608021622123029003330660818096092614736156095938124957920999443324157157484351043096194435531042541649161502891632849623562169281435062845211784988244473867228415903797619159453162209987956823718034456740302051954475177073411070162096024318802734425011109312026862604917826197641426991235811215471656463287512484603283482318311833881655749521399855831725095951571142709720147189253578421724978680840304785325008894778258643717554092728279077862914610222556929191187410934457116406047642447833729791916090996713486503698919071648771416939489797150713479897642267424724880016014578437241225881687256628672075560560808458091244755753995392024460383580480330166358858640762361002346924936754652296348525377821753694315344402764479892999657809288071235362059072642329459976592341072160700730763052854183769912203867465618360157046717192105450424417738624265972777792503500122377906567022754878855145864575006557966277100516369422240734116898751062309928247757913358285976514483512619817750977045754915954709118905870015930336656228785939981893972532983078574557433238765786882781484344714256703171408019643591520627978458182166389049433997887319623334050880191537474028997377863762779739819468186547075208337751546071227662096120124828683877839339364404427820685062619143565414985000107349528911145297568589807575329595078526420619789831531865702535430999928742261895955086753640405990112880971442086573328374857970780717283985663070758964225984086859143163168303988917672202131510815411456843582244185640494893524573517070779574347146773912471584457650306675214848348670881942483762918493134193492705957140694044384866560042900108704964224752239663703782079103238135809167383940302255490270136036679253741009303510302942153500784231221936921131007355005177821255901800901897589489568292605007109143528461170164133481825315057680414789141568784816074110416381729521724865165623274335933646452812690483850804167441488165968929298750011765250620391992532024424998563701315210432057638597515969977758789019319265395507596203438999825027992376697729021055212545393402864748384179132380660591410934599348763258485199292284971939956935071779670729602038487229237471501407657861767711744089934001369272441918296856282452517486579020257707165830298539350660955405716632411265517242499900482051789386835479369663206694229581610506040303590405856620695776059450952191291910302650435572128780909273778254477749363438333368695005675237951758381163652578968936924203483148198993181576759463559872683701529729345397633879533967248436496990899554002952991556399919801121201225495918645098689908645351564757386791252090823315638571132592058133462969470837810780342136284989767802089711122826782698792101948989871566980081066441035272581234080564723094433969036250432977464201263135613415965023449915047747657053661252719421245638888612223556817737554202813937164012450934171348648924134240253083052283703421089578658744234952124217825951447492998414866322598036318301992232284606576033502687040514538893318514918215910495383800903446443664618905500309885635191959083409910336308408589179720584515122806152343481791864316041271999591427454237563277748428861885664006173801438730607430032076129083746379452755660502816668458309424637825814923208841051222659106094507826377087419622623011545966741277585380842023766738905165359702842959578332106370092595101595012349543897960412023250930362749086301486539073895824179527352847453576231209115849537501134738874854288337668738798092203923588909176003343605173415579501469176343249183008783374106882893483936873927674730104674256616952576526004525156166394120918749889442343405276820822019410313786983184773697423254037085328291030818666297537219906065547549524697215602114486676036062020126341336839823331788446486083372671027279146821748942072057564500978684074292196829432061668572871874499970949114143041677151056639398930895329602963539323938342568801163956868021097161665789817082226855895624245599363890759373501348899526436133413332545548336691090774205702940193644269718286501055212815136397370991603614189701238061030884476268357078937039905094269558104180740472844001692067020855185592464279179870870357294334035576045913320227645870674493969066707386737284315524218278778675618127104640796374682423853027962249369156643499867127907150943732920460701403303550243486930040663308685727385322729736771648151665548357549970802964767719917940641677378402114888827020197783141484317896051144183508380984163136907555065307446644969772998531086523855313648299053899414551607865148138194359309590118588334007301612744632638904557453639751899561087281740303859446971220231234189878837271727576693071859656818391386339734045080841619626295408116108956674414909751625707390070758631898696327024118778617493011412484664605307675627718386369735579658088673568088180361208786819110745655320807411959842342828352319579104804398899278484469364282728405927311746404568356504265977211336913878429853078352349373691378726711361860157045857252697620888480533339961603409204448746029580566884594222320049703765369625556583116201483872656087534850991392198485505390434997421609756284634274271201681430895570143598625608034084905254477665397924303681492657698550635403610527332589343649715245508514303837183142630652479034685749538385666958887011957695229406720650114250245757614206228820995985013312744293341338860323110384095076538019098521619160568770322772200951079090603957916760821487575004299252236715057487231122162212098544538496426937735493250706473641053210895963116575184041351665481860599008270275723273466615289710570619845523826654561782715429401586469101305515348994782435043873824630656142099744745353185108155893640821856952712326671470846928465317553098238883371224283843214800435065069820451403442833017823315035005389840694998351793560805111544636892362043734161909453465753688878874557508041955950869786945282814751337178935777829744036621859127931868272026982591051643872673291381120126967285433014498655272963636948603974007476632753506491023612058602678290247373438425127709868618084927178993991289710453442548858962359458455935905691574018186433405204222355109787359716178374863022638146299904707099185482042676561666820524282467951024334484367600556665579457254401599907505937487091376607829564078733155298252993749493405351105546527693968777894508284341298692883677456499960853795169142465922398091125408984465458670163089507736001661808264481538153795051822658128337502045980033574796178224935514173839836714431445010007413433550217039294477952570243990090581226941817881365905682631397144292380243204290682159062439558310483585655760587441605461465196703478588806662401201735239233899517187758356369093925346447433258747124545728576808870917951310884382953028696696664384089333844553662885531961370010148702940505608733936521800689181089116297040201605304804213034009048598759204058478651803853231440985127625533170496356915553006955011005129737034087784054414418131671493865189127442806258634585180356559491969414353788999545708391278049387573326621819533038439482397043327062874783137883118520013787562952637147370981280505496904553788329650160508764049788443986739208308063850830063405739028760390238467895045556495258638996226969784643101414515447964349012792365485109220459742866654279470234153985014826586828841118045487239505791394436159662847285896739389749136509059158509448351542517982664447362935138781979882413338351489446982071453828958394265604059194389789272104961510631975710340121184599943160464789548435468824072509736135538552506801505495447526930134305692152690902036024552515116923082109585503041310410532556881064041200012010991361660551813053751074326636448199883756343888138134224948141506543736205328917880098955489390126221182962914767054103068078334982471556921422692021991023064118035779445607911371002326029627640134231052326717392326922236601853814763877143111771686911441930940706527837247402154732401679848423742571711871790095185711071618453580073298482251062276447217208141854508273111320816124149060740368066751379417131165786805715640220456620481412554696964489619528417302081848994140861173741332440850764821301635650511092317213223203345313182123219847646419905255266394708730797475745175746754661622367315418319921092345040744650388792515362099516965769524118039516035181201307897531635030763544808523484291060613026002400720878326643006191205255573187932915491508856427879685603111011318435408072971088111544624041175372705481403987079642804193674465862083594850955754443062371886058946738247086739744217720465596336640176912256577744448515039496598926193993179738803751049289871857409343914409129368267543273141981313918115670464911813124753457921454569407933726029010189198615086808318989292005504550636546208239042899471538910732315716250077866742126400931703335830973140272120124666450698467447668748695446627697930166395372063317716987944430973982790673748847135831517533392533034702229419478574620966715818590225628513175144311714620475936230771768982002113336654926360965956961674592681636969941561368137659826874671210394501582001539757923827660642611251754646875886161047536382518803489655630522335876074960932490312897385737731126785533531070483968605320377813622554569961555028172037036329877539047846938566660973276841262201356797642704272245005525393684746286155094992282130934617433662782114868401939995884709446171589663850434502841808546754891994586316475342379919135126532381503754527795362853545587123673299231785175448860910977672784015140453720822786996436824839583634321720085535761694102392297694916834629258942529191010832747258702396914780750276833407348559010534576897392663415565216517357810804891989118289979182123210154515076889005435934649870234903682371604743127661069843844154398567626537888321832576117740178984936439145032447073582683259421993269281562036527716481843611663897395104010623708330882920095034797471931863568134330101407271791638317908098534747202510157511930464794495391082563568306775808398464373054930997861860554748732011424357500873816334329201235990581775878343354997506605055988610880273547867254756955926549950232729263228947552939325701575284677578263694811671968802435103856416192062885874809080998754846743510338783666422272129369296515666362394755495617226287608771338606320938800220980217704973717120758703364279381184469624737195926802301639169595620404736868278501401799098724371179780873521954753532673387672154950092222268018256974701918573660053168605062509065337651345525450401873038367956247670437431872446113363313498783132159320323253859996484536640091555810417378674922368558905637553457672204521429838441721576775967266896051520248560153235958210461202779161506215453577374969275111121587666723506927122506328913341252954622472437597782982556997054399596505910102980057223473968632901727353812676496015144577427445622544340982398372803994623220761150028079416100868799041637537094953617561875528172957085725125296048997337609860683874733409910494602951753518142957753987606835994318265795108643309921209616216701671342859981113500742301205582432186143855736419644251233512417172775462463918114214894771428388089105875416072693305060021952446377683488807774948889718894822273000609772112797752257308857429151399949666052358151198885112449652414993411321778080242449495333133077820103046388005837788526189642909587277047736545498272938934395963799995839412081324630672040451843435146052438603140415864261413036682524523994559862122240980044706277395411592929367019010084565063642148611272569691974048076701587037565374678876474762145146500456559248695719404772307711488634120172646328501832682581501224687496426996713145364280083366659002190475446889599773398205393299714882089447232504026424198399985995434431312932705916791064486242324196127365545259567173077639971090815295894738013891912840037140830644118848248905168277564544846530660630796021734391846750951299937095429288981179261781658217547066074915032927105382980339351373620742586907575706620485420929925297891489946672939981263075948990992400957642219101884611378603426401246746071519388547324009165660487267851464923443672816065326692167461893691398144987942754665394057694709834980242081955374031415880200114675722088323692614694203453686822619601138910191091465486666782158756851106955386067105822439231542171416793797488119939529381696576886889456519099966057062554167228804369083549164781364851769553399923071595978181556576088265631462154336588271806049616218218501975148933688930529219598208152336141755317966186577802177901765723853084898655523806749757743392446392077019937852006170397878579545875464310845267964255584692120549040323236066024646928678133185772700866757479052643548349814772608087589947205732549932555220346767086851072995082043923163450204496209736573051652226993135716907681245265191491472492738226332886207660600085318807396721794403483236499202454577325908424535264456446633853123117247695098788395868425099610113106977281999509043742251192130008000709013459571016623642365510955247597494398204489872544337967176092206804584554258973507432663601773722658400688751962599350084610024851185909655603299085507289759808641324769414523357375637656806887432182388909378394387253679266615502515168714809756903775807277900616991938009845595324731979528921182058240140038545339284777825557370459022623314342759252945310791708159747427273591885282936200909965734898834102119459452811260702449475196552681049973300210071646582995943646904886126353790900964347909410144869023250540083511628319953647914770777522014667364316849500648177547083025856122321482785499122567472774207188372313469828657226868182348709472953493504533296936051981599139996146047709598621350326179274070588529062594851773943992066691154194609907524318336384139338746592718283996033264078052542801651172130009400328339594426475244022606187059219043179086736710580576190306491639549365512562334170558296410267149193980496870607589466073782596609723968026014625012813149307721459944671340167367984323646151690021759414577136416735545915343352086244154348395915657196906831557418458515168619253356638644142894876555317126200949309364024182650655282412995029528641706417984084215507703766302007820211969972943339322020117246578971235945827694701352352409442853120379823496420204069963113933161781587067928544627049510066727217511786170011032049898786875461522335902211576263096908185540719665854449825734903037433303338293496041276065361038093793775987896698151087370796200023607251251457828251254139444445744219305921373742942409122864051007397230942450096778437752569655719614933511721275663163540183400889169285567790803436835466820379820566353740765060025101286749535127687192467201308139456622346507423912210322052429595436915170289198102990230026742725973343682205744139438232863867868741694642428957892377135516495986727901898281225525131906996179285268808836201916778425555051058178058085742273711929796596420470926995204875702866289465915309679311195164823953698144816383823091550135133884398854303873182759820408232440148431576212877401847320835315248918622498259721196991962882705729785242652259131548113365632785600467039634054196311672101684305468049154017662993287009628165977387873173139582074585417392599166959114883973019997986665869819095385997151000848785393480524693431565515167501357002468893376816121283976987406208125276344090140410083860105798528789688258296717115354770841533916111178348500931511063684443301000405094872898174721249021780376721284501377800312588333674027422661452864129036320141380359229615255778515178655292326845943590959954678627672284174076794152932524383584961973754230282643652626451218539665696787598645487996339757223086724575281029514079841740152474932598414115762827818179146087557457486730128767715190549379389603845307857053950626805459814294538064505053797782718727626065199939621776913929103615792956997494374006100144394729980450117546440412039450507241824418681726779060254058534594249432301544971015563345696638969011382350263253441411974002490728474023851338398135177892394144782818839190160864528559172175165035470731877552235135506545281180638365038381526695447881891270849744867815997359335233797526840375826318938417632291554456959076605814899510409240984825633059518189984612577591259366654037663386120220617094340902729962458815772604156774233858169359004057403183898825057415827960754927418999413517762339111201136697272834210689908177574280095474013667304785459997935750096854985890665185629841237846225912385882141657594338517508079334002246273465943283882321040537969258045656641000732499481642595881335971083359233970342800478491523811452244962452957527804095720031843482251374917473186679024919109205858246247015623616604920684661551775793613783158194070020208705594467649703090529462305943425038044310156718789508929180604785244755392168104662050591749421695915738611061775762866215050756698791418178461223774620440799105544778161516457212770569360463023836918875717623417198440283003883375961391358478545017959665350427755964921979471226765595218090919916324146056657717516915500930334667588351378978728729739310347453228785166264678138642746127965684709038158335149883190437561321546648961770254388200061997502440580883306618618286787447208257723765139002884139066460490503933504813299069151186179460382519809622642257333843143905587958041162359635191549063025173105873219608506140381690610496240567790278477054694491388357018112722257430917818157068781055512482417794313429709527193062290593751863735761791088702984751963204615840254299431019562039070094133043026128125701109927248078533671997810127720801433066673598124565784704240135740809483934426279012728829071757891185413966902617612446705411752000217243916768063020817120973299028418614883072301329360203696025854875818344996017474323614459349581891650040482582467245505197707149814731455372911976136906457027726251422903703521685599341507165727261467513098992504316951983931407964295790972967940705893761915297016188584143100450226692331741100951096862133516224522233157767096114972196240913476489190658692318030258298729143465511537389527726517777395747544472521909308800322997812911232419051902683839480864456453387656225798054210474812527521061531933254375592286236977921681696458202502175766546517009927678548125269616273286687833856913530120109079455945654473716473106700093392674344340089193203995608580968998794332635502215291418428878874503457780161265531631038178623444668600618614378151461305708947428638338629171208132445462898383741118605659546314614507678281743123159934185309500831113444964442276963627968965427083479393581442353213334172307195746798559527315026065301296485609558433652045904051136817010073147377051212630273366386096096045125615805610524124909550258940932336473365800746364448233065165064847183005080259147139992321349940347811203801096067848603496210839275616739381158598416640484339252190993163204119155712532573252678636807096938661871091413830754981427288195907717361090913963827150474443056924533008763720739598854149780863574257090208827043633537626919633088830250758440640674103305152423189976309097206332646620511757333116030793362827115915981629346051333160865989306320934600865939542403957488987221398499945753291454159103424881336005447437181617018926954650625081465952557048666994370343137231462176023685698597610995711049343710836113865762761841744162508468275328466770857526617486351538909318942882938942713053912330258861987873271818978211818980169282165876717644195833704044260552123107946770736877051516920064772330472201908233078773652564661736622060731826969936428651457308971213891825376483505713500462956599664245623285441917864844090474704746606332426132039041987731737102508458344405857297105352419493507776435009133429835509938685430017534540129806712899895452870497351015295638859838156474731846064530919034260623069065511636325236635567928015023666440568342853648499087270384368785581212832775863836887109416269138578963910232935730034236697412543188643302433128469570485227592410862046063479162368424662946390094515989389437748396322662891715997639508753591176056681425455560508157480497344956033604314066922997323633356899269205334608960293655115910743477304428049188290300326750764205757906469464074343102191352646826186161566707657698798096174576454493398061495890503769443300638846830873512241847216921936161954184808230250300810579285945065099811037067537053085207480856316257584886006482670999259434795944710896371385079827483398463723173393461396920525425533820252965321595219375321058290460808026232315121447066606193710564602865100799125248341630638072798872777091955811602040891408704801606931418322406467629449874662291190834521765518841769652891394092630558461121812172216466144417836542476628543403065623989524936173880691859746023049496404122132746871444131353848853929467771162004106131023317586512433118867465743671846262775921662571334697211064531930929098356365630735573263989286411248962526903837485751543637760592379449665063771669367607359532359925945838401429259613189766307973935965021245196944337559051433135774355535899361901770993170725248858435421646417751617694078300875810891416733318696200499104737467306373102513159822866585384513534266740602204157362148903454563946161292876375937214938256470733259755848641820103622941281360008848507909575229864077720577555705185306333784905600320025587792545613038092186848752809501655702825777755154670017992713959824070900894310742361495760485618764454265721538734279355143355365737530869434624762680030506592960532188200266517823314668407648236257519515157807060018384702371825671237458708747322895623233567988312173984439108641440928239610579769527264888998305085489660306717709711396552673498688310252359769970728355853407313442989235504081384044998400878934924378136122098215134443493299206965489406414873160763524927678095012246243592673988981083850259372425737287419390849858758445840853482162633697604962119823460743722042916571848230469427246865094230815048870297521788508655437881950649873832762473209491674080290427403260596179988417288685022216250971997121628302879048282756577703383037306405687742421031527143957425105319399353757636665024578906575383558285858773669676677471260214396138442399404473698008840997929894091142230270328733449239961147675676061109074212698414472295981987711299849607920653030987536441703602429594448210731995034968050115797893016706425506706714628367370143765239829218668735212525182302155215609421482651216914424165663233039771245170403359758339468541341136954549823103797422359673089959508579762956943694066145521639146825553586381354733757632455350200510028414643093313197542808539185864111991307684718199129431217371116476567069626721918990084092239015839348192372683591415741303194657498611308546647781118664380806670653473773671059637805313173748833190249204460151015896307162666502210305652696328454680217877190152241004282191516636312915934061401456909849079657086667475936546344588618307700736153017495306589886257806086645749580588016019426402338072375120254574057622471886454217589285438515819898608282183165990745629606505999006147370375868244537200647499706744002044154959604487261983819765319045845225073361644367726490281554954949636678657092998740789744140407090965600239392431137888499106597382142736961970273701638608318772282501618550856469355010379497926880975213295717204438196080109740685522882135146728664450067489316226965435425686377577273263688729729144197692612915431616293652669407981322127269086683279445162114519177279857795669317948593916822794021680405337442491336693961362875729754307750258627925096640718588931866142777803693127651928433110445946708665617847357762137495013606442928189007035258985373439013713289371004222766950909349747661890866030123724953751047641999783210220351237678705817011331158007968827902258534883659768215488968667804000668088083126344838572679035723327648089627265532627811819188589052439913685605894814729397894697744737583279997477436687417959309230135741991500338315608142235008705185095637133342499101287949746855526843304595392069770645788452150533611471179816361970683954296928093723842508188612412878665172973010284406866812023099296343047261677944414628422174988758767206431089317215113782077053303511842420193383555239705124214252340920377858394376800362464849539674731424462448932387056309398283876346236532090798053917538879029634451969159763716737124212798002518256561974281315980860221199590183422468001689120653543619648268867653659085422121167412955552394833365718179031280291421280407045048139957765145674054021788452198713593631151980355444489130530756706079406407516034262584599800551429265556266262323059815658467126144177463132414982605972264479064988658232815787312051101870701522813229201941922061730574866586322111103666650869739433616921630199521370559736631656255680302215420352768858223204622800704094709610796270789027527301853956153906022968739919685584118191279375689763364657556935467179290125902492332966363119798913741570620191272850919772207588723964361294841621368881108269779500322808319603856754306426476820982571438207131654228231187892293685102966254656665322455980457335908915198380552225369268857066554568120757078514515135182736595648005261193234277385734081826382444556304853119213424415713592089996109366448057356325732639770376739456167101357741922104418582286543978425904873663411749558853957093815022141476723364099046314693743684500279559700544251993350203331506170157567898685518410080088640819386050501570993761499412479395127562666446434846231413117079246394338921702582622983010106798993841669299274298389039836128503324608359480597878042632580773112078064668328299349070012041577006684114028987017046518583924141848772829181530172602014018155311218132841170611508462947942894507906527753886592677602120497054072589095275114865345171571964077826360237163494478063607340831499373967858346825673270531094934907347469375460184502871810079369918842571384752929794619975420196597419110578888864204425743380051221406135824614849829783504406854468917120847998248059365389443331226811899791673451698133750191011260777585996327424033303734272593959070334997691210985905560306285458915211584598391736750446679816441523911971575144167647058954565016076412793909259005282091563121122089128277197571936236137561607110872035592697014301492357214304026061661138966525275659146584936647460823460512188171375305827177134321761277066298162410136431536582537991467401030197180466479755961098552248489759509950984721788355780912213689735845268627685082525288091803821649164104919380881869536320019162422371065035201021988545085883001718456566277040839824734706908666518701687178762018267300940674106984889161678200086575946707303017563309396485011207464507447380776098559298799903512700771166199900909650031015783785724328865498308866813600469337663850668054765940861950286678084365766663895520768588445753437057362791362570683813825763319594347191960166927569123738600290206349721732020889597268103641706455326293860046271052019003401496676898885128254718491982478972487864967081775862650009441228155421384602436737755226820441312940984831585041566146836771599148270811896536018521285558653497391162410284494454552468231075278453111886808732139413906552613858200667290949125762191377606399000591615774657423251250124535046668796221980150274323102422315388983852087829267665755714317806456233135528685355039014402290693098891206635540127896445806291466493837557337710310614469309238962751148873163626813317886500812091092549232402536649240323277933365325807907080495572174515446573431806744300284973723676097488691662854519435686056983666755117516562713700183541278820430031485607597302474262936722362273681243875703111314767912045984190668387512866518080535198963400113635935273472997532492441798996448906888050984797959304184596811858305698139074829097957959280148653713664120138124516704419044128312819479980063073478493909058791659858501722121461408300937468512190410173152156161605655997586394678554539137473701304617380878155349918628840306158308968128821584036779472469108776911399277012547762837025228648273829044252002881054066721405357310724838648474975825000024984417402170352052487486096971536079701081209317115872043798167714148918344635962394518681124426303190633389688918246760385156430514050019367827359447647502644264325384159456384841732156524436697234957204828061378522460453954939738479361873749700662191631303970836617852157762549033724147056503220351022981944882920995291141697419491424023465234016913855681066176734462709246508874364355290752774320290425831456938103190482445753895505442602347571622801231118098723876941000996912418700695657895321291798712706637092977166104839318780059669128639914004898823528328843999048181754977695132318043723705561607566937421379791308388494531360505175810983804135072378386844929096301147642960509459766335177683619560559469324355638059422603279163121779656816643725514932907118430526758559363993746429632777286335497123815334048584385860617752925106621292605173760510805731056993159013081164181301813377776648713352218713249394256196454200343502571191549871595553697167452182013122358361086381442930140702202210070592046915454226014944358980352471288965409185269306441635759921245911137049768169856216681781133059508709780524219846450306925482830365366112903027198658561488946472217813034924642859669235829485022451167065055171869730409404921101446191710056807413972853120484922884389883694593488961554117874034316397653871186094671892257200817737795371646539173373588582533070134834935389851255650930037629934468415682241705515154047087513104505651934350979487346059388162698948037278360776291996061632886471447478970137688331362059438621380755293497772097171638668999811734006769044277755127223483053682021974512559456930437584543193839798793196874486506836669259985024417839075610148521759524277699722901198855587555565363780391807491070084759950421970859175655703295868636304472131831579019265448833651912634262439274824019810145276705549291955117684434787180776197963310194957582077815203464778727507883925103713431452185319515205162544787631923702901215149022723945740626418983030430849817560051343383210163955857384447045271461263773940334501246338719931899196007345716385031352843258195657276780964740453203196187066732642920872305236131646266770127327436978750620342632189103112484401883155676876469005864049653604907479725768837581309633590927678949389395709955270217364119083492868628989354237887841487014700574925115471658787707667732132595179931902762540138087873682591186602565726928877280460004565891888250448296690657886891740640064878468937225703200136195543773405897915059483369453957298906051042455388748115443922712065145772858859125852808453487025987228256206347041631694399279738801676491080256167205249154901142696856639035701700591723617599505629253723503242783630720460013275664383612338169146558518964959474507383555653164113523656958304423954305958839040433900003429124365834212063453679986085933600115026726987276425339136045244189914566720565330742700800163539676645384158524453902121798181106856664592281545615717428711781431717059587840271644553846804725700216557934850656575047622409139646554678518324698896546478778338836605792199165097411077055047055407167247958456599095305570996922291572016552226550885956016639930351521767214444080171197524683387988650751633093581994702356736747854291405104792495845044929129440642602808322257114315824408815064225730086291528677548951207229726692413484453457683703278939108417303975535629424859857544639082116207806065338944366998379118560027012164080208091118581260470001279755113840151990648298995974198934759135118494916292670011223638356507812440313327047278106714799091424117937558484850300574402692374770277220301008778571704642030051789572742860597411616961707358483852020357625964209441154013626956305891309177622027094310301362004265989138673858867048739811357385218019477576156931884636992930747906447122783146298021001452146077360094140617240847301054431786320695365194701154405842093749211165683094966079418755906132805465801982888808171611431663501161100627970826058449077219676953005795806247628681003111271754631861934096825869254943449782745793244641972838267361398983552763702542384580370816231168233303557341539351198801699598934262061815596771611628616642901894770780759989193089694385875109495644552710566866842576215684456564576756647323179535376562910530973956601863715029025219078103772898375508751582894843263059916696372582406793856460114852241519275534216434671462847161135005933096489305441241470970117312519179296697526029778157980627679798822272835089571770661318468680225732418215269777021837676566541485937617979801259984755977015169341038755382881185636778685166539675998088318440367426232291443901231401385597307891974552049072580458331552357901147260261418828359582707875084765815201730161337764219035080579611830188658446689411611679986613253506679585701672972686601790409521566048166807230401054133969304648508774193850532459057443793166656309941542639562170227651412558215146970514823811884901320245267478230192715290526325463006814540888531261134351925982447293368254079821488228140396422097729468374375271951520274484320685179280768461892364996294554482775383910911288526245167523388776042481030639302867905457031709938799717581768446564117355818311784512835488783990745726600074741762302726881490419273487755471614822161241364673180853123178202128078301882622452307257381837212432222252456345510593822647949569807974937814571177603313955809908401922546127592976418812377418097424337478360845596886122726012649666545347248000124771729154632692340812997423033008194309103800539680512649313568677809360656575833963459309764814166620381480811740254717504970964386038394413001025783382100911110021321773464050921519016831964255508908869281504285086746168886309765355118369946253797296948695996325436923310567338677512853118542969380944636263428678236925005529250601686247262161121832283031268471668790554904144266510691975946134540740046964731085841954887610913541127720733326062483515508581077768341205867175472552982454090957145952744134962504139764794802324071936759892552251335292237218767187208481618110646510688724142420196031781943868509125052287575780007996613181906697271932520808995384460021136942628213526869305417374177335738473176307124222562489718110775245452426294305182465296120862453146300815949902032628980221110178429668425592534125217259337417278157403332061885427526940872463969746780482562206642238305331572706156030338331389866335544588620830459660933502558845884858412511253667619046216456535511868980146746765296910498410102796744271495514786127752510610498583814394117094254420053942549051594167275219295554527880155577630815252688321609707685284916305301870253251991842293363707436047775253233873583965707065132138802928961947984220532394780125239076746754265075504263980198019670987478494910541212424514806719939751534726588444093450427477084516492910508603943669884437927864437328115847328392057345014179207399144494623249334575986872200864356250243289595697823702672291484417754304259999990464824842639990974679215425063395730107152301095894327244479714788339822503195053078514529665240114482426503737789650658640346492654534030618596439863064387394422067360191343735728710341871761852478675860844212220449757048525822185828233617346036129140734388077459079514791908882507628475408301548938701807770701243351631470900786431498286649733928755635469833604731376894185842821503496571480708949096039838277336420212437094857611840334014984700908212515740239952770532862695874813305548532132030994384203495965330827192922041027514897119028266778872833042695234214972773275541869033305529768460270395786334625691503252224155846230205690837291289844067173854284406200548465718753176572793677964201645265238305058197816658539775027388725330424522686412685507475600393854978361022166957531780489660422704945231388480628284203542555796478685742321044307607346833996487910930904045131745887716870490350537552028644993939823341071532864268886702615610053026929810087672038902763524821635036701804982066776954772098227347101158039449143956237718211700474862767195472980690696638723970369584217064542647143266436321149686191801962893598677614849862315911260586590790407623124736817998820080630399639739936038729029404762731453235293358691064814322677981760722241122593973461453037267854591133370001378217198110279747475128202979948143698930658265964391108158231171774824364026978726235154494840952622043987932002056304482727770629451619859733954953836689311196023744455535075792926000263058139397062521419272098397449121678088412541046390147544908979609100201504740485607645664967533135838028749721043561404984065989599564865183530457331828561863917614534116067256638029940411559963580361044676008752101016357304717003739227475284076105953836301210206456512097201847284351697477026035260844255886057008048182852786812627073522081589376048855301278267299082565680828589370675839565527412676988254275369224386637433086862897749864600096621155230825731989778970556314624487039578314299145489178120121273677587384553456859946971882186018712598631684383684771448361842635420579531463217227170312249195707344409421664751926755335068696577671959600268430043067157083829551979745957577365008218314669910273477688550356784151554768905249401852982739439794057519306865222377975866616976917231597627810805604491675354017509832968013666737185446295792712557763510564363787620682209970414362392436141031109755885984895683136864751366705331712249503822245016659287840313684220217153754532668242999765140731215047986434623353140452849913225895487633020900149493303185153175182808120971558276477130407376866011222466599596556927595503953063025671495986830266797190898842750706781265979194646864502196892412179087577492690050064157001854217244226970931155894770692074509198496185331995623409122627014901763722592678170867493227566776041120490256513132505791206819995271575442686559877532803594078206399058861566645753339411839670920100097312218201685709422920513565987001014161628816950243257021728228688440359168400514025137698196966609790292362454900969900221447408721418748906044210035311613404081756392673609179046037530230773874349704780088246658703495176680242882523182440294467682585134875402213985324104618687990621095084034217925800824932265403245054358514585411415879052237699876649369332491759401064364518307541698770190326684886693975744846055531976456970995663898891394267077309907755043487148731674792069456070481017423172634977888243121775712495299106249437755612321279860354493365246652517643204987571720083700992326058186950107363170072396628384133036534271587318507074966879055308093536326521802815143335832103248224084148888927641331176936722502169298343072889578402487394362045348811724362631742785818099238597289288122039074421179295219340584058543440916741134302296006111645899204863915507869990790274706735713543007210345829859759492334518573770259441310097860884326006200362751824836580294212850332656072049107721159444150041723648717077238577377347766697179939575303635331212576122603787972843669174807569767534880275479874433273545707808526270929763698419768729075381000098134804435603587064193143346191949311662180227187868998155719081281972774479263338573322119487611718922899927555963807297619933091804997849345637743263951264856979480572723841401183434754311297563259044525179235560943819791079589518346118940106391448243649145818427462616460707293779306641466583019801155543548670676048405917695130715447641480033019062788313165814540152488388482114389337339801818474956136505346809808822209328834670006455442826783243555495452875474083441889674402242156248678832515972563455617521723537380461370904833969335446909880253998186165670040033356035332523188755124025751083758421687611742921841075646974162751310602050465657312865107449157308419542345062054585008110448248920417886616451182953984691207051506886589691048956738563249627983721602423079128083635489641662527011170965402579093379908245558648440896059429515613060828267230067540766446564094558905974021608315011730610096410062436598160712574639867128504583161933596670406044108829702871292875851818616341807172342792564182878363091762103548725375382040317332055219481968303353252001808799190158842023199035876326011522713288661957839840281597581608851053725558251806914926670253051961197646490101327805295133786484551420883062187465636529377408268979488934018814811284048462117966279093465732020524421066647091576292622331880838109784251489970557447769342451167266613087492253676336607864056267886337462260318341298840137579449218094192690056869739214688176142457023755466559886273566451035210026409968572746651615847756093623965584363406030592742337005288607772706451982521157618321505652433699886780862843163953927987170354268722692392904519050992279657311551851443347694041833462558286489812635865887074497346356284775318720492858174305592076284667895723412316104137490895202373977758186754486311861050976787667199963833835189306317074009470020607666477632398232031586668437554551914639703351314625854511819707077296762785505424821770126106822209605177306412313780607891656383173047174489259444877209158865545261230473196929900680064029507406767254257946041002150688196798225530190424816120291174692198793966931738224370876348967947860125330003823186200253758202139462536541597203487826504649587184623765093577315461465582315373551815174330989332182419572685737392310347899779841834986159043360071097223785573700581223549235865666525286384104050733821806846494660200028644520661657063879616231760425982792877980152135920018211294292142125495450338068963632568606637080501543482746911569572009960650254322326520897221371143884040843530559690714839859657344324015057023679160308889476076795910170347062642537112532804416064835381725551226415648088736394022485715674843675931528820965587228960398518038247870524321404490195486218613067007614687071274530291344181849628261870868361720683854875352662188612856181324240166484880342472700184194198485958106576371794826950873266319448508413590639233021549575791014484150516097639672670735601678442925616235026543533455707097077464849425859917377505890727686853237257390857321570419990803731889229739825670291596603926008426703923755600857895071109782229556284588405058786052907396375840592033741033263910129761764717090700147571745553033268019135799657897212803967269469080839705072792382256391812836278033005729856795301281213547987167557620477627231588766514445339321870270865379778874668811096359091687480723921900851312027831672656071684683160225593101226918091983761866338525753559911821590187082170060710215219578605976842926272559801635557916902431377990127419221189091785152376968526622515843692893318286989017299976587465274156608250077148008500091553566796848472349978348346682440154101908831556151233797875574164611788078607755545234512557014479755864211641184757659054212466036629027837653509597721981575876533073724339157173027458672561522048185678446883255434171950673009490578326835260824766991360717510838185212552953701710664876471058731452792378621863997851395294539597664963141731132859211494925940843791210328769118050946305712352816291992408188632983089344969407823678245324688435032319474161986863566329497050650076021466418977109820534020047624625037616785599251901252120498427846158264124514344107629312622922239384555892593968938578892709161987665065961114911697482534362185148024740332094141968621390898164785483992150609113978995985397233854837673633171013336126310545171382504703980982647054545456455984134267990937346169279822275954698755757664346953419616889359101824622522346904196802317094911091894968247500592130178191260694295093369147251409028221140885448782090660377904557459534344261352949080787180500580933476752267110733689076581790861472159774362185837446701272018562612196328139064161363838530029286670732242878281302295142448896314185438380243362353407455946953191644299952500335024456393972062706047070146897302860843527935641208494397150668370822700203573063552143170043013170906033338452636442035089864255304357708424705475648533156649869821898815072767524704443424652122693827991185805742793784678928550773577425983377451623491547358609366359466810965505300733141042825237228574487658848628376266310450405576685449565166837098813687699856370618799970367089709598931177484023210076796863602079602587463768886972683079065693927258346171728230927018328880489372623053550120757107562434017908747503346413659846082518772276583056772642536949523267583080091728221680781755962513404476168152040572462819423493843294965135292088523195930253283585653951327304916369463192019168151374164066533245754152439088522334872518490294948729797090311671682938277698989702160955116528492333043916721205106018965395597959160756213441923035945259355477553224871405166305893760483407235375232017712853403956800416675394589549775558777122022699465945319410268510565148840241954043949771950788218236236586719594377462158189745881449736697893772010132159169498807978395871646082380866788240509529141604610217349250363043296862092639888593476135926925141616026436907103052122354642895640705717777022746487969868350691923552169166044052721852053606588579604273136343147192375823275650036543816704037656784214899794385216228556642384401259907043158404820998923375424320606349573635976658486933496415592176206443351282675779329784673385168841771483187881782946808665014975042393525037969003612021250921990991931612505446413189933359545189114581339118947420507181765923098121663970399815296077416652248344945346850415986731332590278662934805744528714129249632334487469326843394852137553005358703213346253438104493339002667852193229419294841910611193831445512118286289497393675820770490968197176107280914799012009537946175340319526269798581621700706731944593370678751446191904959411577810909886806662878114967401595714406367067942811967879632198441728104922479449672989549788944083081093887070942686470108208058032717045173922250829564733705898230018374009698010368627554377109083791463869901723941852692262285720885001996842437007841129811128607809228723032745174870418105544644797710899712708506285640091954660747644175409118446737310418268230503331496127387593251347223295724760193043901955418130565242581857790900233836428379216150662272530297048750638439206683453983549024996871433156664499028363517520291786192851870950801010245989373546305039911539248304326682763343027094815901585957259991977454345406007900544717599666662917301075762692497651718912676367443656339057568540971280045300008417093440675253248182450237244011100085454558417962128367444896597579670165730216650886676526604671173960543441574086163255337640998119573055680483422087419067094821518950819104890780877117557683670122358699549646751374899300298533362626060961528524076588224511078533200467545807550327221767453804996154702732283316817918232772807882048499948127884341740247480326536254457646991132208695560875319040178232578798937222773262319164013918234233743487412536132004523596184078517738338882499538049265180637440694315280295693018214358861376367157891757937012397338854326506426741935006699978518568879344318214570910681161210763448181036342585568807542282057177198552966659453919353518424840336367460640985680443995780125291065506935556696657682824980745294866938007738048528775218360462905557768768553870246051933784096147639194402806435984602510594078483822891194186567787703273328160774037241763260472044277270072691009759242712779050103031507789906646261315323437040452382078230720410005195175606478521051985617821083554644722606567534207715343413793487192862990250224304292634310467473551571018359451876798454241416845753356452486170242242485904146931834615256600014951205773749118630767943300347016741609647425289957685927006343817704166020330995034449759803158658686184304198651006636897199126099636889792698933919556098947275508383090246625874430846170835999974146290249439715749676996437275120518723746035868859485880085357295728798475267432366371377221845262312822739039605459946767644705232704406869764139403399654281242757807252105045438403276287052945067554457883271529440583786593115994199205103316808541093127250658225574429164292236528171634407983328619348494569633522251633283267367743807076580701971958117351649745984744404782016121380248163827617573463202421370752821404081220382774390282451826896602786272061521357038262355912961180679457978472700338549869033242984776108301777009221805395771830183363112236678093591879101756480372328610783322154331802722996607334374731510090367739590666128615959224422377548593705867973827574640857735132528604972121775777393911805888319999941774412363336053133339563837536463937571607684926327296860362488187170573145561628798283205031151586289828298934957668389968526517555644454841339330983195870815887363749914640496851883828085282459126666733608023724197495803805164230678250316013310342999616715328649725421852646066341562157064947901657335831480987133246149164680928803395115158405931548404015240699827208496384715821758371322318542914512060423383759950364891789815308495400490738897918061288759897451001341427980145379129233519838741316516354658295542183066850419842454923179897679199414296345884357188600138792523762722451799688895226590337204749229535488687869051427235819222088538990959043026202269439423957313687963523885869645016687238984429392180378779586576566110503285812329160942304315565254581039286791699412108846184822630516768733435217493464805946267588916410947818434424295141316068899678853438851625385879417703913017181470089529321793204225014909458074405555154051137824623573889719252690963050018397936467264906778386006006246690790834458587747242214748930371722818463766387903660055379081979418168953608669163141598454240290631497771095635039497954180820645505786993105028378104010276359322195877063884880784430330861157124616951868032018374004982379666254366481883021597424151502554036947907609501873555078151031841506485007093288231783871027186458665362794019982994079891047218595521990040341948106179030442927040377722673178446451756582699723041359299307089498867581769872657793719651842059682764861497007327709703854897523996036412376705301585892200053692967759644908799935280450518025805630466113764970259861167252582888500506379244578191892161687482303709474915910129523118849347535402402504396474649724490582012948966035782034655671963916599796541574716840357211443139119710016751710572489934694272640604903289038457858874721232998578487780017365332841416637959570296145300103809233305112139276751704547765576694265980990282237117395049564542508840536837016328636645295061383696889515880908907228762590421821666954501362525225625568043890777189398100815442061921216875569358342856561216197294366451605706884848334895953063590113485548336895416961061143357193048272966859520535029218999455393544175951877549567543750103467035558239254603391566597168993049742509976081643510115205228063795152814102177500811516596706301116103850720501430670170421178899683367844758154029428980986122143096591439688707720921522995584505287278401035656687948449920001491187530202354190866074360285611149227137130029981289931508804791191608843266072579929489161128386100804173574370142323915677996948329768674773693400508985418346855034499022605592086204335767065725983480366903440405627779007336050917935090824721385044887268581905469253044587478698771416305353161970910744660830448762070320584786934424471261444684123930676228537256829466114490451118631001950524600170932961168042606192058674393788416603508362698323029709201443410692376949875652918536307555854498808885882105135134305363040051752141525893868987416293577755419957469410230485354869608764587676328751138840606427095722173886383560128749136056919356105967934063860205879856754164984731795839667371309367059477685337218208560175531091969586879737526749575265684535266924107439723307029397243874862752153542625247309609850959967394678348072186168590391516660450831809594342022033802810638769593294980252123508625867963989393423955493623241559227330876402092886237244384659369589249611819449130622001829236267508903590735714719899399194360443952798827311616595528781062936166240626746076078635274278907494000552375665884300629547426990994089682052586481680548096933295093842350901666261698017701809643767799220368317122835232298937897288435188902920284417803500994956185506702203694591773845220230511801224860604931488417454711780134933870224528026368241364505968506901667985918453196776050247891973356224276831768562388449620092710330684362528626878066086904829090638896299997865285196991748846982300616061109661857734325734203966487752741512973106248994146319152298640501585529416252677060456400434699600931092897804279037680526060389988324143700554893640543509212915364083365760525872135898300775278292785840109812267200897832053296171667704167347817629593153402012878722555477899144746906153053220659352279977670759331864800146792191771713842723224223157564685093448137739180382110122473252460535747105568805340114440083008189845018797225688736335207915906128156459953168063024069860430942781141017920563977025728563481655047299242065502191356627141520960993005030369201080712813823065465053155511012390309250245655754819146084251541276824134175143756296516699165453849799661387708307088560582826173951058014933535770713599646875902784324551611031383762810753937613107534195841231800871543819102320024368932096722387675210250642428086194278354934026417561128867646145949256951866220052143955069780445121829640229852594304367335707299567776009638303975695004835928559440168719692933089677655816738219489102598187319399448725408975267006681729108925273885779953975670759188961393448605010653812812969663581472404145225354112402275387142861324775044103219380700239080767092764210475778205851728074807544697184498953266457578276594165698731004271282141223029925687592785309146101746776354320903345292290161821037380490386468379844409926119785607027304131672828744137777916262310327888071598503827024899735984973565111916520111289745077420944433395291943109524098511426445372869565257385388492908266351815496017986393539964712602139143866444019821932374525488794947941157409535277967898141041996252784645227236575804869936326594303019459248808468843980520334202534591069625107831877407745517789165021178034361285909815402333892446616914904342228741660735026042885412215863173324634018318021541162443380699098185339443227471213408662748468768574435264940367614510751401732387846066695451996717759084940227285293860137380950739019416453222803408352201121426725076817366154896719282301327433575321080743909010746734564028910773797655750305502031959532475687538101335626625114435190017817031015843248669127540216929411571526502062879101901220713979428714222350355525120798980836485825801573333454253857035653503345000887426042293478801906618760879887177935887345804246066555012141874965227354443152123807051146667596913031723721611593665046309854595033671248478810680901217668945419576992566835935546324467581670131385119921864021984170823747118360863084859571947720766306911839387589580515091331800894588093151031387846498668013338295107355393184063449317073044687075923525611358839600150176931943754180918978278075342576184840085843499708822419414098917018727197478360411902726685729043122545655741654140759273268683833732201920576839271783197557045046807885474733436101778690164803856687596624456892200884542460475406377262162136314425942155651503880873498196569346866719325622758862246954941463255178499484671183361306053859012671828095395835961613921134734335223556397596101969087028392835555174058755078345444071336724886448312764071852238023103811830263011324469458519553158332438979167186589444479036478791118697968736928980235790081492775618641046965537882764620650155553616569783864097593457070201270286163761314934199612655455863943563536047079649854034066218998588800639795431274732780553378287118297567401128709110329469961964312068671081605868366995438380033760971552294173924842658140623496680548814584493261245820824862217227920163101562296450839689478894211205848716002392157549239181748387152233731286499544334418399190661569069961951045088084747132510496000392345393277906993258772153649655368421409797937434896877478638255428349429888253493569425134320525027500961099290637865541897973065075103422864718377804676415667021457623784482711069499103685947013430698028311812177861623309538268576866548503801211206771910558181313033808542600419452815121306467322692765812424645602163736667969454808584999095613078550811558211558314705022101766794018690131750866188814273884769615951097195062411702274956247257843644704800985172498262335589785718708979152034045951029914093794764205540727664512338713577069840764430791626006886950862980442034254772492269909052330196212551853784096418535248778459179157472998108345038765362435276502116000381116060580834663751245904810617816060821688219048701604898193503552815904063961093729849643037029421538740941133583227026656127304620681099889400635181802384247579704587605483646844774019354898226932910627128300853052113593126564256384284930874860832074796024293313444734363920825151541351575680056861786386394657686015111394253188397358467243461222548642296311034846391903944939509881389788039496081066298983594911032919504580122332832013721620231310267756860873843057721628728169570918311747428114101456338031350573824842582328585450767147856045794239781443123247754642029918062513348814557428597423985356130534651078301549304843826329170015294978602828805409364260769433535993128908363746561876677581394384799376710591269336694360935169689187565298601085178112331181850136950843465129397483577867087949072404628634240531188190711012296735014648562790171904951481497922135892472308266050653540433901137817699802919166522900261193899222241719709504926931058635685660684696524121627680282265967679568251345254146036492595214247334749663894481589686388709023582502108545067380189482432634803706086325046574482547105308616293644269443930652217595593685623325633028067184910698537992983440345455877340772894551732051367301901746101226096603116313361939811791190996131424084355463533526643910858565012543858827851764838676317231475182066394735198212924190736041899721729898736796569117376247304108016830189866028711122765355825455244895115414723504996985714628463435188797526378582563406870792429799244884254802462447377182525689786120165406808441122825277069051940379378905935660162780454029197679580867246358542733576126438593253792058002644185345592174503615610480530203412004063564770042880866299467853818303333438127486046227673876432121195027210854793015609215044493311830742857363333615597749811192886226580642649467261264732841352967126311625116251552865198708822788835718532803143623732656330042838911329120606897792720802868236353912080670884800602780489457156812967022691576274428249140516349208220074623612889807586761165153069555699521464233461866568840228329754450703098767315366023588778286694191201993730728917476492804480882549189352832545714356421448878531163083998788430154080855136295895633885262158060124712102290688938752905314432445790390092658248281413280445691492309254626476436330791339055765663127106671354414621483817713867640745597393519487602653002024924674277354255053238951356652595986005173673474026148411177334562607527120614235985003759925231051871632006403504815477879617856449281571703734362022923164049175246674090623209037018330333518885915584389750473150727258098752962665884547110648956625976934974131905073990981702163277969654173433894417053494221791051020980563088972300467645815216822522677662361214490331682195667554328893389648650731357573526433791624674441592456460636079869086378150894850293494364534877630455296448436364709657699599044933039015057142268350267381807437284657517400720340848356473880151653190426236162306360802987639834931355674613526962140499877813927202907062079945088134773073211885373552859373914190224520706604350374914620872524838637068187835019111465320646286760237841266143818341826698145576583429728270060474055611107742247655266315751201650743714274056493251338008752358383570622250508902861298611065859062661773985948370857283624356826766633377086456405030945777837641014684133396038104987122026588248397894490996411061556074934165543099695210290753261133264598045812220544778086262790200988035282770134238163661938409681509260570937645625835531832295866801408255235414990408601715399897980914536823044089383338084739090905733836385269261748536726447513456918065216991035878243678345176081726007984871130455920920871400829988146703238061075094190571136475872030216950238619008354698980024902091604978344346718185075795510641337662236056369121530254140496208634479047185260982739456819618543241687590884756099027231160929589469101942624507209133674453163275242948846095928539971212233877518284751430603691332625515917626035495158378964028958966032181045807459575493051279282658864015450719329124106756087229534684649933636908775207541725643417779224986971614558939715755550697885851355859217659224324653577988179774154800843482529138810081121090003621206242884697010099030582332742822164161219000578414367480420747937638213952740598983340150555288870250797903868186448784426741819058120607536538298650489064932008027150799528531041272711636572914336099609133932523683052070139671631442699285777559823823915161069818709318895787730803190857685956872735569547497920085585254739312644765081782008322112809182244915637977121285384486123732583948376130695001865415015942997561816586323544355515707477048234322746473266072092651686881827086525712114474849062382516062870517457255033897852893804484039101078044731234394309160826110516869703098727097687259504348590113327073862585934988247253843028073252150808575844611479100651907872749585865032181336712017515635672013514581660120291699952866522676063658945268424327693599663730652272494809152460585589546153668756152823569747403345865082588895917898980046478372450211898577501909481143584602857340685147700616961338258836977360954386088465382199772923945163376751970530878983313191450036334365093237629287472224209993342991805041130997498959185937570249375716108305324373300229553943492344295909298375658605428211613023419850749604283111735790624080321780091752135747164737054761847639669733052597444099062395116087532075505747628520365336152156358193756969112662055428434290021755122538995621707033527397140221891082688534740582417084492740964647382828333415577538633522494404171326857881833238697532931996968058953903585800222708320111597433972262443698405044888163252504085153166450300959060047423139436673022039668525300548330321571122823219009747486522958047461941441496537985810563530964783896378142972077636162171151472123736316933013269140239585510333727693749015301891588664135169324315647035924667921779766747422216308326892910359368877536570182230183792098948095797886541120800772653800197337364869505404093638809171125866925219555256579703610473246255073350823976772439901150853713361581875659625430211933644451612801863152419962766674790046046848872366868808792034313597169172868413462715842908245254357838245521576326945005056330935924732855357573831319410521452505310732502519358068278750042395337727116967491332206666003706059530454024012681037942789258598213041136614566004726719437056959835219275525284807352054972196499885900566071638378000082873791608053249964306355922790744201659275216901761749314598949142579489070919311905786781924362258060580576505969424784692103014764722822907868630696223066651018043236728151297119874975217299846586370296336823740379864088908307893662836611239199071976764757387055472540282529168191677591226102174810418665761063516456556401514708014533081695753211629290228305869702600098285795732877542243067193597122377605656977837921416168204904696798788205501537797664073059131142470804936931546137896285646504957165064977186848151259065382863698397499586995792289773081069822172912993808929962005848079008653435081306014159472022120678535043985638425914458847520423308247305736866571101439471705588562763128616799272763004402483578836465702571080978912427202110243099465651678870526922662609519501938048567381150623445622027237450018213187938719629957145386475932621601949235487992333589714105378733125521942254467807414516106009101556084811639487235161362390442486844858484019137903177801731547319606435174400031916777713967155521355315638209906215686590998557996958399656697117776329309797072879876807561609304848130024555199807920027897410688907301811056063429693375953026448936459330425652937539187147414108888939870645621474413417894840319463788591556263806190221984124080151568655304973839046875012632290953699295088148612114369775425776049096836239321960423875531124250409388405749420262456430197007767825673438519714327528175923341274761429803847434037905655011909519327801712552734003903100862344652768716680749633004262172375386229881119499340750155337269602760388577263520601139129380715992708687636732304538775576185708563498221437356677639366422722487392082209802006640670135145004990149763780155947218264855426765782741452871456501028023152879060052556603450366551155039343864997446325149881953836328051653299137618497132657626261759500161968684268212393493007422672430604970938332186949245158406357500085468879952954342188219863665479385653294442672472741633097751217438155357006195841696369288850873905238961406985302225646264309091448561351538603144735946848611716641019527978609204301637822303053127167387312304587671092602742145203859281818717169153970568506717666579516792182872061557676712742622155188816258120404594030258167385287888992364295293307744700439252988725295925651365394854427508425490503591066580687048539370312918946989206015991561594536082166046608716570433173586863961323668248744086101838178228667418091223281792762634911753003315291810372702170482272640721007442493779127079198998326954390949564887238431402016928907812818958964574380267329498028051170744945979712322380484218171285370463795473755840882454078535899672577055784584888023496587041275519327709825488873907939811101310996550450704112611114635365208021814530785914952070483965355627201808729042580653208216215951883965271653358326315837146466611955443091306569939677433048183358197622678612061237096553415483174309001268038399719187584768349656638717116543627624133516607015369361220871927007833954683399272186569394878998098984366933292592544682940041184838114341260833629643972647706347733492889122862183173608327712337863858169204414115450612931715376035900156388363939550624094292300264937424509054140145593059638501050092821960625299171513149408993108970184346781178345901156991848068558197933195315935200928631397003675054557267958793031525708633077693058794803088873588740848130457061990234216859010025373517708952497219305844671273202327023558867516898900536903866811612300601978973334050533145627549485344656669493560623543774985337193611455876390405659324103423408833824509239185470144501249198270129036476350160720231998655225188290820046988352855329140845993011733103871506870460311769009284368803956618712037483784625553775107248321694899503979183339005983146612980066836901682175908903974188389620877478930567863871935038885883259254657434278761281747883488357146535951494781363623134658887194012305415960763185119791200001118805906253478071652564422195195417668786805028806243668588427056835043829729856770146634696863222672941978678413959986277543560595346737836667815060656010012310166691803569269858571598203604166953017648233237774906279368928218388394473678250713652031338297801611750531169389486448433835466148462143099962371201517362883436916289476027462085698832019511268996660454501389160636362299373195106631454678451785363143817584715489397209527046292699055444575088520413080758146245101218711168237603760685789096101022203427611107116662321232919147616847431784459308222471592233251411865222627481919287620274357532540741576572455964033973035454106472942566793972843262898399375720344600818893597434433350189270133727271469737406539280553690988643012003860549631239457793277374964517305171258682137528281012212219564327696493397810900958324641874821633405598688455661084208833178541031468366814582711793221563685114813562799640531587715999539631604796365210289423378127267406603708908740634664368054235065386422640837216388798352463545327636289241415612302387253328388217127132118620166632264326519762066210067269287332780523376862386550370603150406855833286976426047816412662890574654678549961049119716564547137276908932905146098730351524471350507190918446776237969653014744554166110872533085765262672494196732051554414024469762733196639485130384092206310473121123963290057693716057252674427661252853256284291901798907999567590105119867409036740360365469130390812427158785471703989415399343726870220325404685987796946439106617875512305893775993303150531938516119651234867124961456697650935819992460381315909094514606255988375205718237507868570212891875240913308045407419984553725074589104336687709818176281427001358627279402974000960405338856451659033587492004304894640195035420089876340721409562345263380334503816701415065300455283699279204610342673781776965796820697284695834933058336810060035264499053390029141493074980388267348895659586171757512647253264119646148885326867822678682659371147792029928759834023618080771191217388739788636515973322577926223731567357884947144653238623333863049589012196050297708316093134252384783103854633477851079785322279920595839634093238763349425445150269511362409862003459223910306945583861576478157190321747394984288999961392863367962789465013002466182365351698745560581304813384983206176932552091781291419707896707197964845755259859160151547460375437611785396531311538764006554929867701308339485833629639558013251596435944612753631146383795309868970981874023281336252287632124616245692323056788028703885725143002517226760522320492426528095244102188411803005610783954798029093933671181861950992025755543076287896139423181626886074513365726817599629530651863534561594630873929146751627126872832734007196983648686639429143528368360819383521172076280377596471989275421075265984927402505784322964942779871620360271345915707557827114981021397553253372624588541415216088047506180539084837412263416582024726022886901577063695437539975561035080850703292889959795774009700330791368114034484241200003519505515175955777492741940183629228642427084298649487426290343632607540609175523330320135346215692352827991509580069328665999731811049966692346556947542526056083121872764899763930888327369961971241672827917605555545041282481504352300763244959792784676792173883725508368798418458789661311925236254191743096847041507833934585433851855990441367354703810430542051539428602669906038943892729298387078814201436920387345302992152467121678082925345769660907839178753280933730511910483224121565451128981702282321197699760048921432686115925413012119605610449473010304081647122434571676653907718286630998973439637674780751736780236989789409104917308924555410293624078952983607309412395579476504442297038020001474635641131777331843452455628223516803040555994971254076596195723672163613883546273572835024526372475020820018822555852512399385952635416009805498057768942805101455995588881587545292230617706934964006584787912920669433281523462366733840337069862505722909100514190786808967679389425620343976644947510343882679190605715771916369294497781086418687524820952953021831981832300708573135423160472992715614355288705335341547778931114092694763628349686513014565735291882302160960679789825422042491068677212495618958458493559052323059782134797197369193419534978652769998483194467186897499021158615440550177912806853703634060831594680066316562651212768967684435132867439552618312198312270876817975765710226390180942093687548836331689325194042271138131710245341495481344697011514225127593513597783056026481687505303474541506971686931228906841593026771497157665395745451198334839612693522570899796263940402433513116567624595380654220126827034433947707107530448016159364802130908253094436329954769418861748549061797758182077979052455779401327294019956723853135437451947865672393042919616069500965958233866296049051525297993930599507930990468567356620260930547750466290362377795100017993733874735364372175439664480010943376218751254198190349898665234415229472159479396401703457870921797767837370273047692354169974568470394912428484736819152432071960592594449583103583095155415116953724555878196552329058449336450192068811376619382698881207506271752246632099186088199621348698307905517937774240291327387271831897227902987815533077167452743854690338254212571237594241923980036643036999032323326585699173312183473801976296000094469048545656678495132780278685833042716297413017020459847838570550757903032572671714468322160005436545473741881279643267032722946584184217642144434039943052724526500170002488788066703753725548208128499820983664449009152400941638294377290081861529377732414719935692812959879115419944197038656328480402876707973394197916855009882431636982805506566385212557580689580540698172485687608966093899970145428312999113126297098664647617560738787759373481590015907534282883494839531488136939816952090777815592514419079725686415612893747951581275850607719254418120006263091793950219428162968204721346963641451587664371664599088351106059851422138505617082075273684108304180725719872760634927675660121738620642721341892584056418556735941873750348198267536740959336387926028046236519588505189790624107620739595479570633943300646863757710694902788349440130802071017166844758099030637012652954225360208786817216289423221243146864746319656012955432612526494230748780123840072768656191058287008381534662005490313596088675383316032420996589373823172344376928228333067718965856793538022279702815331991521897910303866600257423630565732858357496863116442019793844348229019120092403591636079348704198862771532110934308102143901917727864254407360588374072850575709136855155626531845978739411313703424594355573907710157167887891982043015670625664608052069133771609123862904150789852994486230001973818686172338487835041208488413559454548126808007859512145986010777457898598371188397351959178930893199957205203739986155089090447775563611069035564375160833528330863854733256896453792273357534444515448159361657408423245739356374924050649240379152335442162727920804219590308546551283920128399107121499043788793803306606992600468294221380300022475700231942118792639973319856751615278873594953999136524006280296257173915060472465292469383538250694685750452804631592143112945963540552874344730443746872758791422300538546169702836396720069900116433552372391675894368909229495870202098363668450015816703524480016286943818100100391594879476294907277590403046291353028282371692033465148520987326447793903829218521456903954230524028764818205611749211129684611506588204231952453809435937207063287888955181286127545372612635721387421679567681249008057537637326984118114412625524463658896981224545915273072632310023044712841217591595274814001644315960564157243642755732676694857319964623928702894310807625285613799204695846277896995170493904300380355734871638791496837630110192062942315834561857820543590559546442579798360298661251359136926077928783142820833792516852223768627363982339146560972138613782800654076240789929640868970480358817800482585687478622155021236673408876766514897588418465775151272417512543666121343164429601456512853111410904683175073056643499596348795554221969204504910063019822445367574672786997851622283198351080100514913477539852527086974032446334844618797860900725767916190698957395011295770007657749138259354669867498442910501886317791468690176198686588111365509498431475155594564849893084802842984689178201156581267571749011155441181509512100196094062257283513957099935058051142157790716290039499554597825215498381232229294243992586232924135385613344799567800862249078944436185807148729945378582468885347930148273323688701744378487534695761332661112045050186389098979914896566545289143594009742524430102996619115919672071125919321680382365711691681087705822939836327335745207008015525931928228438515462864236838760296735440116332196114007886930289607612849358269097565793727811313600051627435586350884644000642192609237604057493813057868265374885907286501900159262080612342476961455448790779513964863428977721748597204668438038574719283144168307084350963499762128830148791794485625466996778659381854346837041343339994850967227070930332306011195300170307648071825626417264129470622922343589777311209940745055483432186047194252550311462971059963777609241221055714176165504801368513025169812491387290470071682985781816575640062806459657010564829044240144796827115483304326922789015429423186032811118650342246088005840318120913651628218052406274103946304352442942108128529113786335633383974079035399867526146188907514916569706192831754743574719123583273291602652059544907927878740327101205028767727618086020017656212856679042796464663546402647065274348009365668722214626699433689046005132699317256018201308902370869548464588833207487499453709561856741090163655053151826799868249216563540561852204138830798038180802407417356719977530827457089049201108945557074604173492216824217753942478917260166906373683262630559282066729443874697396601321223981769504927629983335481915638637672644691782977480131688000247578739616517207201950033887588217155886879957474410592785178041579982670221138998972381656689275078698525392833982097133672328697172963981159363915297964269402007553975501968437607736772621048559082567458450700110451069655912312685253153526271687953610653273911664375677196138984622548079597161557738317166085130908060168032156931706632213547801284311798525311880934666940904773844972232620187148311822699941418520601252214657436371675788631019072784185900059707347995476828377701376049316077165767519781662029402480946875929298466768040462775020539088521748466378391292860707365625112491823423953710710602788450025115981288534759070541587991859240842009692676067741783332077189319134514097651413732054384870993907539074457277221462282162803062567696039798370374953626152592908708078529412368188918849992226799494176884216967520813291298767608897028344827268699005076670544623499592173600897862300413976732261650773850842289802335454615567183758255267370907012598184483386047039964936883895957465852661081131352096276623721602521749275192416708068975079664343721950118053955630497570784977213502519681030607277398848243452254038713084305450482739888341798738396411296088915839335578985643348677079685588779309655776718638908807506382995020813358985537489686075662668174200737675987981563918428786470180047808709565370195606229032514061833976870692203798251477211996117767682640433780076592586825738385307991488851616440742845529671079372685875057769326985556565552608991617289075758648607780994079010008184585506335385541830798182456789310230746924633105737196594940941672759061570620292530802074037166538292964499575728107326790577027542947367675427993798385484939531304763705141451558016795469881702812789030959051995403540445020560143831775726367132559635238386687439806043901836533397656202638740579069835345981991055979058402480274729254796583471291952853313563548083323240860692944875268982053889408509100405845185748819368771647453907738906950238268255523122708114765899176915398757022042648961463782742754782824044410328916749868020385979829834030947218196605140317736133651926329629093616875680127533613852474012124486974221727907550569214343647471639534765523425115167669040949625195985589460195239979913003793882011180147068850954803838436951256540896205311631608345624824455959720226464239968248206655173195995319280273184049112351349890382448871721999466100798643147452843851945515744315585202721917355313061755748545417275065131438611937893464153054056910927432492209090183444227815540289964437461094912793947883927349496854700472212502064208597210057634756793064530697455170336157436055920404174273537346606731281518902115954916504990993838177181751626550931961558279515678902080114150635818155101824572641314930825254171071990379312910182163983649921983908232059393026334435065844746504150100048856790442638806785919673230582528181598211887197083814225482867269663592300715330490013357618669988136974908450102111811735229630425049601148245680183225484019656166512134754196515766145388369877921109217776800926058074569546885722699229115800538336606080452340501362736534296449461293608859849146966092313252631751521609404831033126526336340496122648001352047818800429232412776352281556118141111164101506266650809113874265230365590167082794240332818869656288425958776819201666617127195670092064250420133534107432280670722501487455708508371162225551193514176649676852793825008767275887523414439032991353479328849702024591657691714665383472268288830200354303344328757447636652935982671020106798476579086723959601883892851222181539460853262936425771744465207184492393218475639496069693313187446982594145248967501676058032696432573405660980900313827199455915663438867836977388833667900196357543133578424737208512353300118573287563111742453639257599835007961322062593857370151988166839823290564242393132426214769156455219932821323766351792711230816823035763310895079490400041935502054692848296802033660360130694278816623395447338623240253065795442292089194706875642886706374281481135014134978278063985762597331051947831541601909726300606091248277522265468383032590854774688106656559116824221656190539145686525404340560464827794098021138557046133252226873651664106714054152494462635622703548294804293483633998112382271099454258061458343693765049305052330884307988583983647572397679277517495825399796428444913171518199369577041175926400164527300767282418025500670498469910775793759025665140560488196485214837861110946049361662066235696148416661826534380540311128175913870839439311177669015711238158050187999066736266662873390316408927076561627365213996384305257399694302563347194104792992382190328852819304105614095711185163835158645962745632404365581809793257016911590658569191214758873870780415024388804281440055331653773998098522535604553340542265165122643790837098564535998438089739361059027574131152187023611981778878235568208917003963578371196684498367292376011562453269021807350721846987362990715815729760224623613146210281429786630195444880114040339131035884820057992207839257718060341084305056244357348437362041232621398175028575915630963628406807376256490624258662570941819721525041295315863335018767168725301498417507566996451533644728480652602779346268053991694706132531213406377995547205368567299876832848192195165132787512187607418887336340100947807684732672127583444522347638940736347903091999711599852411699482641994448868949178767869792987276588251416939164421066535996506769209081237266893104549133781800034672065403124415874601500382672989527295252653212516204604500081264626685163982850408878804013142088538179640125516925049160704219846826641278485223975522729640098357748830787626463662522649027626831777347284628976923537350064416506751460941485426059617571582438739535971553075115304361741716331254594325692297576038002923363917463567326503206009331655923555226489650233754566829418282717472587024691165724973227049582608081100775536652788921480452217843312481966800168712682553653452803163200144662326894871935602806589307098538139877976366366628078621968732646760035320432285629537091043445822159112973398863271099854918701574120243944175400663783628713912714998686257533195578624489388536732401065124152569119974238003644735961070637047494734553857389473467659692252513315061232614431969032996414797678281237919156597960053129864461508614287589666835949195644283443148793998965638062914867275921246120642792388931722621316536765804993819133693476344315605154846873475677990318793329697639385310574304771594392339556940314476293159070721203257244930269255163907770927629483980422985358680747883518102806995585004323623668815828210632965238367477510357404611688480393132103025789124765841601288125800258387629704117104726803745974067537163886808563403163318110938973700360268994315160902732655486583547006238201038335110282070970689047240802351056682342309507174608297859586263074278493368174922130778261574824697083589498357790414805797545302709255125607251943772897823036788545337134670067375293420136300316990496465455776815234124040638958169136810405737986860705280393547531542747767209160401072149597112573187512186268973064657815641228201242618494892992791216127829252934637067119078739342500650675469064944515586411853295581175867451917107719173850319676597521153416405177518237492729003692362989314923635963730786747834942325117966112892895858238025758956810365032688176820085414059229811826253834638082325799350066980414946106191704656937865032980372601944152045784539138839406965082540850096542957929447972851588434074939680559773265304178724484782035853592988819533952641664855189379802983583857460902144072114217702873110207425815276830043120080464300588919599557365293898043267250894787503726449205417769623724294391439301757871569446280247887006737121130205276634788214324000791502810912722614995849573035937618052005423964157025669489687193292699074270837742118866550400482884888443797573593179759669619071504108591388760367266272947008831427610924683611709186715030350701464027981364342982240947681940343198177602917188654702689089329965578873435713888170462928443224356308039848856063339400453905262734715493544340371998936283890277855702759407344235918386309757660972266775166046161530661990718935547073792654297931639675361689667198775873564213844482740252315650622914482330693919135883160208456363916619886733970823608132255146723523571259188558045765484693548468253959667217480021446544232964341934999702769091025184631353899327020903616991035171113312580329847547668412679389239954573361524848985704605575606128711962921025163893026463952838948892773047906595314669590516326575134122353077027254962496078431760993671043742981732713141318136114529612548305175321998959582278043255596613794348452722192453275188502587008872715045059324686750183343901345006228989356375268940474389135538869463443348043983175336262194707400491473291176242518559233230725746037159970348648263353165825771829522654384377310551135455053058266984275028329004868634156339065114687972214122876200597469309915361425902119895801921791103967016594175132838993133863348269395014757727168888425182445559398501960954682562677142418246666908155891450337265659989167594744614008552579125904348387015406063479802785693040458720213444076317230842511712982205291911879113451114338285440080222602046818926795058673461834107793168805479437065669081502120505496596611313039736826902935352397521275130918496180514848904086237177474865236319455417878922399289263630553711836515924997773483141150003348342589830953761269525334651989411643496115766511406251637002305417197404230572327899864013898836754976165335290425201519359414794118411075770359968127130178672086097180008569290036862407963420582766318204170130937137311675576247604688345334984826395054755536402478679242850252857448604951131718250380638001328663400263089599987487893243383525213371091261862341212229926448405773753479860448554216210827257999065533905167848357224685292823858867598076515748810617779605840711493489061971654863545579889518782476068783038122225702193944726183945210638557967640511338052532640651455135686308715534351231711960948864989650540252554908093206047767807904700163453130165274883677245288430794646727907543195914249657582049830715338641356660101378221594922597159832294813800722036419447505169022538184560252460664677249428489756476106107557180375931169157140938039373978311975665164650238369650424036922791891965616116468342790838326685891238811753927958138658248590901475950979313333305971322180707081851511319024581899263700900009767691743376849036487289257364019662300352326484967822056677568488863169109065300596931641010783126512956201137860992575334613808702541172951039519568679390986560542015680772008233382666555695283660076280071461580473516064100702529103004476854228368774397738189472700528233362731030411117242626235264206103329905441918764872499383147506781224301194559946693695553821018291035304037289567856378191883877755287966156311625540231679350791685507142978495419729676717901564767009185537944137452404844843544848376539038309380016400853742157400008301193336784190615021469633889125983818579665579424632327488929765022508807430686872361918116977016450149949159929058862917378989111379212172251938015184650400985142587240813251467379740386994120744030374078235712403388583959751404793275523339189882099609027760485578233704206405267666553151556048590034630027789811801084961037879435310986744989773756845416534419848579509462012397453719902482898667988335772299702079154586481531272517512804569506363763332622419103246128730754922682057866605917659975134782624743084670513587140299392043024270113699386684983963469867356929354351849251260320718867737412394535663844075954710433365643108084489795016876976261745878971820544444199334700686108741715457711155473888874571375027508600217265527218770309174385343431349900644111609059100343438781550616257187287376853296409984555101212947129463586357126838893763108786947597842522149090965614583177747283168877278427680164223503072715969249792389105162899395451933662101640850986923499511919010975410954868798368582667549253147851348169995419070058957779117261251952710049627119945939129386558697753320222151857570352784278170710175849391820615488270138975967315621265107281358413187409968459151947079860981001303194580050432659309258215060937667719332241290966805168884256778123615204582002036554099923409294760131989351089905779908483547026007023478422926986403196348342266145693171682064910419743732522969574012513447495284103639599588320743063906226251254420802716660605314744015095205937468983941389319012378492339112788100142055605529269946481918444102350827475430629965829602035625579129320463467356624629140196738195327987639032541195038417567961511471875127663721858326847468126316185706452290545350660127679279843630948746839501150316481977957041362679199202384686780827148391067415543828106485548402136372425486453405617916027979102217386103713707005135669798706309583636126314264320290427031808383983834144163982212635887619791476052636406456166766974528093532184367900190123747016394828155487177277901605793947139702120258081465794823465918152043812275908001201583727784403394182263435614315665365870246432820762277134036953988127644941492054911207533907993417971712284253827276419579175151036385100209675590447883245251277138501915775681263153838738226789524409560422560909667849333228783598900185223988999125320143980805985480990882109626293765495505884266238072350836947336993847802642951297473264202016678686535309790534755330616461840466135531395827843485333121346588988532156215680648660934512325453471160643765513995831187585294420210724558237267352924477144111163700977884323118398534963513682890176851395635550600564432464866502796151557694806335359796937617024099881774390015028470404877386102755210735314431547644277332964972430256780997890012309727391193761510866746185679003127302950915638430959110320153857946475137493538231774407689057786168758525170228411199951158653945623490260869405034008879696523440821353052473877636373729033578004933132041509285171247521447147197774328078753574668111652818114683737787801973915597785428840316169769030709018582557923410063270768255668042815137133825023394920394595088488486459023202744676069881638949848019738978819547339219764866350967242265422253686406264822327737400551066923352156460876761564975675238973715101122155693088098139478624005825184672700284844006047327289583485229299085959636142246699083735572936349836165192691619325589778766373817795713598494526541793373481987198762781477185634776454887800871525185141745517605875099364886805409005673598335475381063946219627494353946340832303868518627835535977179906058233886947562485776564277062533554547530912671779173956033933265383966849252337012238738476745599164175141161194569102857574720407900031870841337341007469777616268491007220592220562199497359235033921954886656119673160636216905084866461457564174430564070943233917474191342935560479582458695520463514452606710660483029109602575626175654940163401100491253137003846179356714531015705936686959720008911596398161533991236068906942354212161122784688662425108567985832488413499018472178461712729901808824582499474149736813790387710951681715390747030960536371356840541820267070988360092511112023121449101844282269106747981614269705789602319465707029898079824928551681240231408104176961337818177774337430898981593401752478486139411402668032695467233938913379174620118307473210598748414429343067382212860172857692564128536952453897085584069069804531342363630592133281915873162602133794805210495454681218082711794934349987876510179430043013487940721167889484259436115916228690474026471227979676826863295402311695417302315276888802068191027078805172127195848364036861467820206144469634175961293633378636194187090762654480311813435689089778583791268243501968479066839995281765822956359950302388435178348368697722477457420436246341300820537870311921816924263001754142347748022581498331208207992867679648447415639954846736573155893947601357846696581985309650389863987746490258217587640673357347234345990413988307263011922980844892405555366218708232984472350470158497049040225660148290624966859315343920240393516590244827424721329522732098724024451461090036210511799074526293781688539035283487867321446661264608199845625958510965393451696808044432823733971096032049021858046717578450519378595783006984117027205355381500923632679549603917996995908921901367900503610795072993128777982101531701917391173729220420884809009139884206645136018364525707067482049345921706559168910893651859994146963490635361697598956071631975390455279482940413171462566634834758159192674100409306573868352452862810057446236890548208776214747485577150100306138153453532544969896078008556252111842584328292937778485999173928072531391779638425822067270729500784558032272827500608123775252207037245881441918346052427474547818808653019689769972124557745730295394009215526120851303636858507097613938316984526134466444155963157182702902487909345700159862284303632821401010658735437229526570802935414351920880286688538357475334415012153865976350489479130673246337373182654924090473143503079315939334164687687666852342450455030831480532679409421937214186582738356120971096299265760752706050324303444985509751955506787681797691350708647795095083646518494904720837143164223730259555447926632964323479354913007517317244032688243501935428182998438117313337558582014748901050925815199795079311089120696166137935155508789293801776516607200473235141471959455718675158988173603016659712586886743376058894271334190772439548373454867229796009736163276484256809805948072436048719568229774138152400749225531095830655922416919714870584610893036829628486569462465242591179316079305547702035244153813334792237847643400673902528541358677648561454810800861626513462798973190377606720837762266282414846559678222560785095837593266813840153908558332931741148122082587950310541000244263694975984694699403818009281005226145945628171891004947309068423022705710380697960492533862558187806065372884307484548998767685340987370322664068196954185022547477233609465772140220413080874425470588859353891754909712822167495800615670413055147529299842876996272408032919886948772682130465622646550574253578565570138515650356866008634855047004967790826217103502262653764840228435265595984291330827881708070041599255493038759569478683140935569637377363929704657446158662119739398716529368785056902621809122650525525916650252220839916645875092468666412306642787760648708699913097440234198266345955849454589458382079751011123401851605947407525361447695894616498895938708893294135065542373052059817409556949304791006945775874682147311628427297719862385544652063524290974916323910025142185474451351635071620735853019362049055976914198141088277821629301378485975837640742919525027454413866491937397386656440111742975169385833465925124566467466005691833645819791656992884989243260707932595081727348213063868260124165198732809050997894818561050234284689541919204487696613796870717082568873734715206674706298997314438923623292321506996108481932475754429060971657024490383197131267727267528091665567950321696869747499691371769696399377914693005975798449788616678698167483403859712779070655689435312031698456131010945431011578082021458615330368915578532448392669168359850933821716077199559458028889148938066085251025007539948711463563532430356374610405191076453299204293148408468524035849747315067670328786408672542770464305647744848137759606867618511203117282023053181522842544177668545141752262446368996770861350523260965603355923005762302132519657112702643651913616046534261255940407974836964486185141659853878351489465241007403666556979911169428265571575957508462646052940729011605277885776578185858892963194118125702487700263703081641407452860732499515188240940137449291352812064603328719512782017673626989653529991655367890067195719093581783527286770515546296007760001992806005720384093400084395088476342858620161669020518837587554849532862001389516010905506997651948748079535447685710787559965582914597141034957126230739868470747306009480533995306592420831303401020875875048472841217154556263058254198083492013465462981752907870487899618860078213988740396933194327196795104413041581020425491451342187707246910218176738771513382024182577711569837363215839039449346409043596079118790167085887056330197253619250044783038037004615724440874931854205234101512778184880493912549080751133888415291219896917939069560706344093634885127910443446509828894094184679971477900890187611330870587867572599501732811715391592500125216293312467121979785141627968563913860490126740796636348566917060632019130159637886552389996076100423580377030897029177557831660351941681819583055488046510523209332883506640682311248801364775270027666639348806841440757740530302940946003187310970830718121816214489370266348037353095976176700776103197310384247402569715883554215100205616663674485882986540532649259652610805199088523263896861914258486972965227253955521614508672613638631007301162990499641910619613653618659117976987875992986384073018718003740619133392574046031930333157609287558706902597093333080389585505406309643415445493679693900039827829459507271806559805201005250065428970397808173079247909087893452037025244749345150557012429232918194770338713670130518604646857448129885669727966873847609106066348774375858510822527355315380637484867178221488214908905440960533962679434426717505156718293095399233087616501432226414067114650349837967205157813975595203076811840108624843917731560417841134511764290872904121028096763792818200267599681558657934055488035706531113881586344482019835761841201414802804863322512706986455085357325397047984540437615258028310392245645915325412245066094637255818684995845900483487083526648925747516421065906223689548227730252131592540859247405561068891823161725755274427342518227256332590144667707998138763564896245104817893475545263064031385283018174864288057722233282354449980482157118238706711908033602675990852844790101562199288536575873744171574130757542523590765029821262189847552845966798711624586024742111300890111512479081270445804962294230284794825963122205753204958264688815202100873217125770425374434411504468051042092160874282404085347051721217263150638482755885061044371667068027716174516932943269720012425066786811498182489370616837572792569720968799120945384540260187295407846132260580097138581197466369882695925693119028987477975484032492384588845761342094186544401550931500065173945205396861940977322548597559746977434651238385821738182641236537006259421700279405376571434475561151366940920286196537769392234143846390916976717741690811038098229579767530044157420480794924143895174642621999830258121791442974479389893490627623606710660439151684835675039956046493842766798406410822040686618917919573248055235374957864575765671449776367141783315623288035732925406186842410559140758709678755361924490810870287471006863621131302220442077534500401376210569746027200277181325085631509026782677901242566899228818488343585948257245620133401774324063528276701707223896677498736020749437246495246900816455654563624165803981631815330535278832386662232752492499805974942998395986805025705886882801093022894016032240219212581038792842211866601375342431083219135368426022524338349825892502751617217400198276349675956125327267379383813935886627588534373072038784497448663313268452724529823168582018997024759777749801054628754786497037905139725780192907483623169853132624668234614235658918749477025609829347478028279191756758916092189210797879674791636897310971196631102951800254165769819833679216086298898252363232686749597960789392639310067284766425410634887895498768379267786539755116111261186773229141772914336546484440213456881584600091120781269950892441442739523829460942667282751351128646292038212473673980099347874404594809152493521117282919484765916159759050254742813714566184992709258811686126621184243512837728030940157023777136859475684726745235832916730195608445680942775451480881206945878185967245645975366994459365500495806943368851901441221487301826453761304830440801631040058743483387124927678155762078808668876846149185837915031494178318074037025949242491680643969567340399361060070626262362274499973826558517526159852895675890064709483254115602731297359327248630937520337465376887321284206938453837437483913846230901691028282455938038701037295982391547582840644699290373296071315243948359896337463928892882247962810175539261212353140863293898872702289559244714779518057443232823127004367521370025199977990666471602198942834257336082046377450473440398872938894101223023015403512867554263946348011040745722788374573688552581166666395896098156315321093034348214775251306206843658442546385669317655611839259230573479995841607943574926734024141784334394064845118806660295461083997871623361134704216741632812512477707220687900181600855602308561101025649678166442263928091197938084971608167829992997860517841437486091917578118092989710991829477387886747115119093680531227103138699739101777984592743727879980661438010034594734084713531357974729325976686951605503796306262114713220205284043304039097463667463213582286128609128877734594033987952379706550912562137304909927675866916103998647456169375455976380319697672098577546303502232558053723781720876872857461012023393779690621635535712476740832959058214453888637152851851423539231812240785388374900707089110567016007109471956642500911653008133479421325592038560703807589452728743345423596958390524089769734521233366387591844076398352181671948747032117948229602746812027438331116550161611398396958286338145409630899699647856642083999597211799282344478821156839132787881467897357538126478262651834120171573326344801329928568824399555419310908815756445049902467824105151412506335757978275659773497605882572135766926953427652497863703939566960897465893437778551171346352676616756437637704394779283015710288498510067044958348068760957930829812171949313782842923511959476587698746984456691204612930354062817005277222348238067696538786640596170549827567444854900606263789668894367754001951891764871812384662973139242781230198789377573404291419045277020578952767251087762292293892846899785784444392793798762615068331204574649314750679097811433324511047112390626603190455364583133167316446775091338750003855816040309131014568727413228284001608311995409498539423361890936431320767536679925450380374190467356407937781535545330333866228411689893856214689254713313562191605897138794352942519635490880234184941057655611523903710476824899277549754875888791507687954593563960099990225183364178667778447685704067034065819416757751344346969620382189276715768939687285676605188447557707673699798140940595364337252928378830588506674111793567680699617205283995136522255441545624405634421016543697783022745829940577626307574674649952486676334595164594436903989019165123791363486882624191795310361003964114998082328985199277850743091597029414858063815947400778410425049716920671787013524497006356892518808560394834378473875275129953881926808236775587585767746216403109802921100132668419285590761356623375324509553300096960189295937068222354653810579265529417722539504935229221821718230130837505823821354928552842172222065923123010005464654206285550575661996060301076953533504925367190075587817847267610739233997488747356685594312840922929282109914333805335523295789364651641134215386304314577709497634565502824606230671299621190891130880459052575424609346941807577876657575562010716683894502424653133749832374632214296273673273703635855302226608473125916378578404576702951390329478166888201583029515421464323301565757074125511438832356644450312350105555518167847810117063451824845131323988160532120998525990840096710162741031071196828952675474282154221237509304793571506867954694450346769101879527824537041541296933109229395245399809950377089902747184710505037473159734763783842981010582639009746808563614803683625904644790566380391918975729199942875603778919489786115323514465827500125577151769295275688981877252645441528755178937351629129916819104169405164005273046328942676096607218922810252845439262725636797968940369324414777343556227316349134504869909135508322335910371200215240766965119717039764030288380855661433803546057354243570509441223057229486446404920194234129576069143681233373502170201512420785934783756943762590482213666334747753645055245962135017551929465652489362160019964444376636633653924145688048989855695610404053165899062627114914542398661061784076029937842549048023443879524422294835438386468332140511813279648637962328391913111842567726225743144113626920538865899614900163869802012139229952597242592829075555744495754628258584506867189484440455782367614634343970033846094327746059831347971782678538324805310332419494152471404650006842334923414683426553115862587005693037184737431426240936171892100970970643095825889946981572439308506393264646369393919917433079704987654674846369272273576590192812961152425391113959761730577869421185072000083557280588091376419446235304304547668270396373803125396859906352828950581211321766082012501872323386129259108283126259561968950816019913515444159527356874058963522060488854210147108169566855779891786016929780527107649950244651165916254540388381536677521493746458697949696133771286992286120173959121431962001393849198530322388139288376413135521418457381012322306280522353366567138779696867031562339301694077016826677251384380221346609775423166374333094725244780168149007114325755636924332602286918313694012489958317956652805216348064463975440067708577055595598924528407470707430752876502512655256126174676101324055461270967275224396214595209678400401355548015356619245469984338015584662661043164213485667147982548529198454076074283961002157754734675004438681178020981687383746664994130555703604326627254293118876347313854839686775134581842592225266436747769520868379977692818705922069687152774744419183478484426725360717472306114751877252121219258280106462422773268599647656939032131899739573428352441330144904716447310419609847496779731973748610627148523790922056136748879867144330606976739416948900256186864034439329733652077127103549381493526490582603559137948772072085577230996547909995255288544429513632326208504574499704285695102197182443981138259255911917021569364340258057679114630111571242170031689207622658880550347662836988804374105919117361729831281595097873528671096880124565604095766769487684085181375904030731393410428123902983916402076628804791134609946227325800298223175170492558343327823108838696037671386223312636957752730092065713965283450091175034823691763873041127064952158702980421950156572737371704216440830185988350391316965772229170475132950242101527216877552688933113214905170389835707373496067486093232475988187405843632138852861146772801983773114170454970991911797839788786356746066720431563393024660739903961511812465903582452624876363122316650308499762195081812035360987054647027940433545658216973724785432351615356458573785737415902770221181410842989411979003973470200019819456321756838576685703564756073341468007760704212907928591990740848740263248736993451591138943207400279876029336549160391159745832908861469595633192667371300756857717816698146707226354595975577813384201709230761836758611588661458976995528983638983929017436770085799975055297299977976639570095477994918403059585276753298314134714335650031224004223788700136958608143913336322710631356423533442715216431165444176311283247736526544905143315139092815331758049535583088141973721266102082757290858453779912556322616938588568157441975765099419830239818791727771091849889908442602001664949251591101412944425524383312833031175790403772760112262912841933801415517386789805206015196474926924893613013450139373736927474675129665557346794790729918471974894391288519686712674649568729930060480014898146191797727085399406814298601506294376145598039821278565923532912022229127647614335308255152760259603530828283085978085391797363154594819844740013270872873257980444310679885939202282674913584464443784231954169552265187947615715348986565391818651438249585758396798295976961640924444028393740968793626716880290651372096300672859245083601805538068231198610826029302205350736800340656884657830358929821315701794731817408889236056924173391724344877632845960099883982413927541547984803112952861850642255427290744706281012190480942647179531802787905918197633576079631498106075862432835575313156120978230563828806364587094097145602876903098681202852172866006200622949445333625397595877850540046351437730928967458331873968079968174973495785552248671461957330161340362991590211402888144218674155229388027465292590890712612767521125972505938499458807907436147181752338614221193604528784851045905817399681885092235210719548882540840556167713914035856851864835930313828028931505508545605914561433371839131864467925528267657239233129005947733529681968153846667603838389175124697409997802140718879665604480869723985014005568234917123877880709997496721214317569669080478030212573245229484958810208407375748359986052326775313062331186956013925735709936020322709900472242713922781738266124822287842066505951320414456616273676521020540075767481075620234376900942448406169142950980205045169751499668799837793299225493250631772180908126339873871897087202161596540601591399130680288436781173178019763305915290139496148135060463593452562222695266138034050133631179333617624361111205445277318644340271560679012618251309376607095727140052197351215353358111851433885052863409077744284786460870756883218786560304430932966423615392508240893342182088271538032569974540160307517824091280819326920607262458682380760063000659823597939731254527802316534128525854476824929721975813636566441516767324435075167836766617647393889651941571856495844622412912557243615175384258022987602890622214275412773910258335717250871923425195977879805957105144519398395802240953850761979135150929540583429089200672407334007002060141498432722686190543343396765325061332678632915885481340173474325021922063677965937563015462564133362233692851174099123621114142365271330069427111604007711949263150675799523955210540761337871569245370188244696907743377618124211621028116901297603403568091858914334970460222797277254231433421704837476972093796033891541998933023974779313055939026068625816784502115639687896213164098103632692811617567986924943928301928083948548894009690975325150545379479955636896266563561399135592488178185606292154976348068650485006539740053950100130353006892983682311647597474207040432373997235480317509723268797006552672347389347397484119792874961170062025580692044360913681261171240653509934151114117563111402783161245836175212069228383558660170582837373409337937055568098856161304113303376608880518626762347731670844767508465200799464397884210677457937584790196755238740413688426447943341930835146852618316250011147891710124700765699302726342425956573955392868578555311986201690656159926516952586680035439796282232095601398335042129857579700312276765567559573078660556175685893933835644803869030027720696625480398951909183505483778001117169404820878108044222270984000659981825886449763222004380227232560437796609329423370448539139058495045175002095660137167598751720414659239665776839805988654464246325992431368108165239040061587970711483070598506562465420473032147526844218506516225354502465100254485298888305500240444959656966317234942391124444513669446994693555926921457651246212175753413882343748341823213244485162812231244053832000658178611961027991963795012581471230202575350095314907034403609479465772822900276913864695000049871538479335486182393897042050313845498363427502777822844928560066627279280597689035157390209086669309924436087396333924196567597939315334433924369476708547795533316432244288498797961834751699723946458743109371906156439191692364055355058592924628187966285051885776776811939375279412766911932754357137207036412585138829094754031453512044108859505794999696579993912893119911208280084590319176913938458330062759381362877751478203564406195010747443127021800427735546093810582376921483803234203028644804553535086891530132057290813473957436809905233831989744866648336546175483173906857374000298685403915398564501533363474984203752573187618901917956090715134145098853454494342648460545826170909937214298406584079248499907383829852038970818860751253578489786240073956859462151106400124275293059554365723456096516449175073886292398184734912296340602291115104591968352221886182507233442679765869223174046472671358090330730826135966688518582089946072049447472153818340624948705535269067178652649757515900539747458879894605406483742714809229023474081666519361112351284232267097710981391269194388713879660945334318818221411842566450431854657240657592986216022668582630347571793411499670050792303555123176139689265992853462552976315157012733828353519387843008300482713072657518281597450451969053384353204153742723671736853702657469783446400783855299951971646344462409736515978028902034257247846232019778233698156124290152333805537453657976575947618775406503093100029516315868049193970272284626890962891869588039742219357008156209510102719576238040859887020014489573069935415142060321296065075699935077567313569250489357990004839512334956726419566242878409733653556791868176182508726390845015186000348966615657565376625450431244882626026613947332494363637543685455224388163531516981845823041556328255578090414878396898972828515939503885195031581904051012505166250628830534378633376877439769559102279676565583952362255313405406031097808995397535578670981215437492726496268440767041590667317295708530701570429904802853225244516100181309599197038647663166164121282615412918454189696107998789593855129276697107135290574547069103290915226247187999870578874174340131079494186940453685841969047138706090732987899739929268363784577252405879270429217813221962575385081514334293479484591622172190459389425942264363809411068369330543749694085269047059067565146373340757714507344934416992236608147619696076290455243053091324433754572219385102657518129170558387686584013087580909613310120386135626438903217350059519134614356889076208434584051579358941710851374036179598270076898979423529872735061040019653646663571298156481664262877122174662704372326196311005266487664046077374457429327171715756159722463942517926938701816156835391549919579043533053386932266654228919794098400445701715309583791885108257942875681393310528061285970816186248328436723249648516403195029162856030668659373941263626470660411549033306322947353122023411630717928494332016300107161749446553524460904769197188267371522188811952589340093962140843976222803261190848456579769928457126220142119956080921871214751598622729070230096008602767313362497764655609809017732120415185402626290004458374449959224520771666922057121911228367929794671325257212235892338047865170231079607547908724242714992256365930639646042711146722499096993198972372610988199110608665356399614523228390719536977517702544984203580562397296250720317284846028245205843204898500729321949544031885443034470916762329228861642785368818226282047347353651650959932208055118493935163807189118426430783242261186368768039609856188096486731996775335008395832920651557521339484258152797587936346012667023912656745930040147973842300392491649365612374932404172474625278104505571445602193865124484392368588083895897768413722716743821572978518228111377235917015383608375452019706314835907893319271711082737411530920230194673708041995553611234950981692898430929260360156386157651045008195023496983500190504407521324683248967648472436360853222609112447712029401938494327337945164141804965331059136585271318224180938199813864132178932848221718299293812297018834122736895301520767747339656835042149440453392864108934670552781395258764533847611082696412209510119039609697592568750643616298491584788129903328613897587582058906140226636287103671277061597077362123055836587519134362828196679935764016038276763734779809704242549673539527839783998790965196773714305394861558897560742976234449397766119747622004178512724415641947297832565357313619344949129595917194824173643938193234215103614901322099925906957042009158064499517044016078152759476146765708231366591791143296772419675643171312868519696380679138186468187039558207634839427453941415355095434627900914520203556534742415499758749339131621465795945411726963045669409750002545945798082714309682480528780427402699933953940275416822058720795758602323474223180366360330140959690706327625550950061876183445620305130519984210844144827831280195606244974670250469159276122269066483818418752718952972415729915827173697231278576670765715511101082043797628421013148739114806543177566888287556608722756903245410640589987199558292773733511249576387068684271248272777574098356253363893049457815053347207305057445773470333947436952740967081496134196437630968777061190090052463289872804658707703563652554054590230226998865289671829213589158902606269495059247117927467529085572125459678666794596590457850040356371073058230642969145915978477327605326324583415671786724269831994232115973230485644202942181981696409280544612982819013145319808674080519037711104941479780895653906108513911729575434495187353635487265673879664362024623780749911612200438848183858739743384315875388599213127193475332975623637883621366846094038494119315396831546042287610959705269294602868934254511729462265223281392310650219812542804263194428149261067974138669532462376416506650133892807167722498956417862091794746595344351813063371870815873000592196150520908450981119839218326169943674007108063645900837991328844099327763815496006758150371966795493590903937473261039105427182885407243066049315453156288163207841122168260339174385945892799435249782211849615579875951118565162499016633159659503240770562440347412286935223751450902412734869050441641977713301862162514419828950827662962800458544336501370119756556579839910292515264019586081482729086065493550923230510596437966092718959861010648296315524756308632296360726759729546336720872746074057667947875367094006130425857650548007266997856272393607669497271771697097475457573224497816081617501516271423921156538631636088164423975703381267141417729095424886784428514295681303744151740143050267875577663420892467589156855910242957228585177798020126992873396453632633322150674477061295182005467604423809821726389687571018931668662938335764962305651891404692743496644900349863677598015788569121700031318782215774570102276637573701790249075588935395386676034520508508361996506597449159418462035160937787832524463358349286575907563915788227690836863631269448609792815992486023865663760315087967278276853036360928178028870332078733350480106078407750225884312205623444913371577764167702979698428241016393735862442363508670899546037269967781553136447880928733873721851779167180688601724773067179846418314464633890655023952754941478188310518206457938558143017192713631733845018173139483371891970083319140018821506609838738079035140723963708593710418360524614144344523824099708218226430928413591690680142003688320851934506994226914068235240218049819573429908092284360316481906884044478061389809632166896663609407190214325898531335098964867466769984017977434143183810558165248315062528070468895616523617147959977492187399107951351550026330436130415388120917288836477092751984744874022936406916243072407886091522858767953605377606383861729661132960340680346174293983569105196623250208060162841637389467579342149041444781610457248745942181896070820828310050812785312589122987101196495949902514733365809049514590872158577961176664046951353670022559772812774764602676896356164898453346114053377336124518965741442047778489441688217609214000562371701996908280435511786577942354978086123488696121720099513923108389444535098858069927900905798401358564086955329674919312898632660234033002370235217412768610691164937129309822138671269988585194845001050125599182830808349003611332362152579055998831234516495162443731006771897338300178882245240295389450239921150544136722382746210433842041745026388271169883822031050054413965268128799264965186668612978852181069352467231391959737797251386269796298209644943961777970176054978611120915144048027261606968718887201193372782968432844581336651460341104203858911570639227331052405566718892507341768521626705231313013569827274010672371491460238658859164408094821798854123880551409682952950243410484810250586397661961468281087022496258839153608625291718290954891684349226251243802403470518675477746607050919683698623990398432311685596403867325924138275156741465451970238310001058479840188986682418925164798963675779005336933822240151655038299584344224623509024392789996372179082054910018997970193814953131174345488991639411364987916908711159013523253296453762309279888598611827239784176304551272449184694237195070646269857790628480130728693315281731400030625422522263371508462688122013384142701578235769454694688582238351397585031237111744062768998803660305032283907303290633285216785977896811108108568861917703590559962727638405457484175918999263614517993162585867102882411146019508851062136180460007263147449699177456691320174639900343466874964541219727984356747451963635324903448954224342894976669496692443658042165636013832060118437429896932857447758868500208093850413838238654980152358193898973631476796517574122525619150804021670864031254282090707470011379026569709279811968619182636716835173766918242343798784197448163583908247347420645664176038221422354375928657643107801836653170672827962620598518097546312404530496149425839933574603692546433013419602594530308475220118040528501685186762286492833265901125136370791434849918977903101416324990453797982553862270462239767266075496190285006935485195471824229471014174754670214455649600326212014058465164176660213878069605553313279556632716083425598731901013689546998904336261138308800728650579337450823006815074336910037777236870723655403655737637069895008156891906412336670723156462700458507297020649122667202655465690023423043984723022269232238057332601411089841329744648643093087601451077854834440929159929040757568527289359477484072926901373004479156188573519774533638479687943833843565509384431520955296390062055964124945485690738255515316915368703553856627438001384182832142033251940235976406415095326973530805615930952398458009728775817600333535001004573799191022253273326563476767015302323407465010706362158747815395796956093588406578584032508535624569041563262142997510038149997721499007888801605359573608085137174303421099194559590035108887867781692751194714525182638153626361507030721250447434542605072940991260150715479642861438050176680683590098697551896479003628914385182059847429419863521568416719673028957859414549055009763771279296154969893133062189797784019565090245278568281107898944663342143265041162981609651355640097995241519510545490379795810494997015776827665796814201449056481318027997591788800877089452232464199286002372603828832031968135642526400536356745905231622166127854671050930192944896163111059060600956798918457495092101223726389960468334892623620076557540187922928219980119313751543093190100835153135973832757374744546086335841686190288506245487234755657295340371087404390886403947652915961866813146195694061472202442075949398429276201443474680828627817715453070705282294101068316639882756487796744602000193839634936474620980970790129890873279579018590479929764753496395386958770281532046069680484915765460234370398763560644254323618367884537108187302558242839890947491100714391104277019236769762409911133183200635490807025400534908387212281712011952354727130999515599173590114503869364750467128605661577609778755977258795630007319551853399949020470016733264995298994665459079355049274103842315831080201815331418063190296295045475890078834829008837404765134427811086260657362513659579715394090381244808027386217038204300839873329926743336877766104983736984397258520047282423268185236038373748571055305126350598874622601508144083737045608207233351483360582657525482817830941943668685747637179504797114311213899216937654264358820178163042729603506539108666230761903039512242041452472439143400745872652160021336234777508233885584435904934611681911287786942262177350795130769616457630231562175669837708544815969052332586920004579957500347995654259461145684241058895472179344426354122875177985390282668070905300184919229323187116671656930461091557492951208056597587259232798356495071007039244463682159982720122985441583089322914188044991964719304880725919128904990548033789586377359214505047186305743402026345142073469778618791302977935727511233042048422603291280426637449353379217662341457994558840919173284238780849742887451837379653014987602778964485475123039873269697983411185327302018747352871845638917873594223683010339707389750135750084554648655265463299604175182289995223159876503841982515206555011829227719164229130573746132741738993860583565195386259161505179236728189037447044631471849449542006298590664197796721637065355939665960152838463637833390776513254892741957411472762789653058653416203733351113183785924868646015561872245552587900791948657802235738713439667543129261801120097595426436315159743641098251223960941350228212369605781512737698431584580510317685154645963439874073313429027692762222058935012373292972057066675393335469107336261318426279879271692129524836309962043701234825761857537456984945418796161409991405159805853248742178758728219570507191527495176479347845177598039378161710699679321352894061856490523503892766795592121248906387264623639063100064789020703394678821756368705835653229245018819655025770444560151066463369152777681236849587602499955624087621220671643301371498838167359089054204597599889796521348777353373548706160805200155246552814049183699449296983340898346242548733770152010349151529934468120970869526775593714317659033531722725605625502926818267628471534497378612580859766896769887093959901423869619448930029343641756975526415639452943416888090772527994973099552298462669742465450378845016374236756029479795593180816912500001933415511745255792761360814450555683181360469544767970631530671699864039071695287256686544214047550571358929782164976725139686101658473227486426240636731414512049301576701979097231290745210930693553846529066880259668249194395364306741327508796837159463482230129208870797521974214306725635251652798141764028778068604231428211062736070257065701820889025217482251732635134353789878609630018809089449899113092519198804611954263125876295078278233395084460368617567858530795765547913621024228560224579203653166590773591859742981610908565436555219290462488970242360760433016237166438023278453246309453096499052685594405819188836831362788339748011536355884181836548673123122713614094695404501304123295424524219841987229708092363140740362463818304425416703768744946808350590829295086608977841937403400620339247035257329157523295585762744350565513372954092296668437592674157104747975147555269036721557790552538114945913705367857720684192654795691430124441594929138928070096283061266109927711653477003382268490695491366488798868409158667810870675917564159919643202217144527580944081675209103616104126557966553688436348239506297271730014259326310652983238907028415425997944052780247147026758713190134654553597577177065010065329095301952822188331712216199503834006494934182403208526139961373318641354044220389057061985665884398441849339549201831317710303819612172833202686013788856522761043497031316311473231455630012227728435953202493711477528930955651201299489356818544663292103169716104133168720246781233823084210704362488242153002015952818099937605147005768638210341434705253581634298847060106691423118167008339927815036512629206434775469798382132136103354013887787034123907019259860063046124572764972119070358417505702977255395271987811420337484760698352010075800299153236780368837349377097249655693385762272539755278127553171464911745459737465473096140847779355406237790294047458331454139850184565197445287563695967252428969979287753353033754833505296518271902384670136617952106740613367927407290319520445230826365854759869846293461587080503272663294877873394883746791422468865357058308401549056557246641232445075227704075062595100610519027619631523515698711621150367040920807933219985321723271727215998171454181565944508303373745768451032761158798086705853942369809831186323238052493639755643702614994805044778532015988673520750498828919056555724091993591156655068640872475340821795728311477950153270066363186323377574926299963493840400355253975740991523959500201953061186528907744465884429089760143091139823710742121259910660505171911875326653970047216532103414512402987150652664487493693256646374404085413283471359238477384743757583863454639889071475335986712710006299429232545285842979020193898677782019937300526440445773985765959270371210204637923193463476192211557271773426910487286441123425208697920995120140700740633299162375789441936857626463743846529414973659611931571820633157253195071152740030747723027432860553512691699931067253139202329641354689182430218756183991218800559670126156694890954236253018525898670941625580455731615318766164388154456751148204773275638063348466528638065858197872370778553666787696870068836227646830021336116121017367668101346736810531884285988840634676696495963437298160917029412616380072909717598344089749814621484955358160433085506634183254962495452439533356511760584293510315844362972005797688080102723551212124231713017145625170018880732228395838183003178098769808344789834189301466980681977512151611299099540129079766272820386828838356203604808768893216012147267366859289584955217804414782872575200823684477229967647586443400534492645801857060293304250369375148911587853136905545067916364518724725038003477558065517425883916019374735219565695985014796756022388930721368019429920899403204841553530231471012816942461033132438169716535967919227689175680724667801982927664914575269611806873637499713837636991150927967027098626005872435892515363417317264332095611093099036295616465037374840412376539513514688108889713149383303555379657149710510544938826459672801627900851409698151096020931810815648021553301792548633515242077852222439475668164838966983045226770844297980498350923082122203726267566917600457297688790322896840734376349126721050929009341148558572690921496411041146897163289079425802685875985192709316126639297568186633959472134869018483158166558343822753548511853396557179874539303494080109846883939631448261757249193678022863013468267106823946252131340634772759679008092112528020662059107293256050873871755340248574885024317946190752267738858854231935195817710592677858892558559155509635776669986775361561480368202744696790401433773777537658691045182933378269950937481933944620549328378043130068864251299563466614072987569052053297202927665988669533731813650065705522167233177408740221303785584120367448457776594885003865235397054148133702900973784428342929886014339611562854665007637895970553961766612994065783766788834741868438956403428919731986134796645738504845593663310930911643447634776469848832532128891159129083041208187140636079497976681132066001468143252905148739996513841665643303688780349855161233872996946636378144529525814349656634010435356814043696033498374383919562918983282844093806279079852806537338314977726660550615730630987298842878592776221252654208157872357804150930369573727883981591437010800776737988294780124721750289096068045553556375723142779289869536827190010595405824291998297854035873594263596764997045392439013533307441448455220743345351737095793218563196051787392188426413342080960420479097833099851501641402954657582366028897588446153444308770180064791038543797804109885860679566272917960278717615139524603381700125895676569010129595477128611748089006677431456307843938734631231363231607199329151710078657195760926795086022651280030439698431698076518216447089537337594424854477866027684414296336031013680901659530565078395510776768664794535867274748908734819061104987449240199214033285665400230059679092566381181963960795718124340591717839268716227731798801721498688981516262125115596096223907255098931770730516697313112876513699728987676066797992037255924757504239767548612788833088609249549837695693144722444110386692036905010876412123249013992280859130921588051858015241902625607225344911900043285116707065634821600375186314249946853100612693417445118102671403745702923257769294650910190291550370465182560779313188504883094053718561953215293273645462827117318921205147014355998957311653673811413769071614054495428153655787971345460831442053364855256928834206561725503014540803515160612759433643431490615853832259827223610378524376662703350116086902654052685304746011555426623763040626905470541536449166267422253065519620796380700996610683639287611942489014780358022794729390635664230983110748713791855777855037109802194882839560708319286363117325229494079045332871734697100933617420503621573538163496236666405479481151068824979198628946882567777117239477236981253977417948593989586241351809890139780781610756851462271837555737433149635306976883254903990145095281679756710966158343302167159038155404872195656240562387233379291272359995627306998008108047726445126402765398523630432457702458602917129711856160769123177017758229146481212478084606492402224544880032316256795328838110558181989507447062427900410059230204893992723888721431613798789216396039160376250297154739372834594239611509860553420310463090359759978250387422743225810084903884840802571895637087371362978379016708344003856938196157583848376637776523342983908409910269162250528565259598116516760194267154849906534035800524781781133446633981325070839696998021368791326353393203219631604930886529469453509676327616456148005099130283107132956654842239167692414894041480352770644318980860105489952677902099586346162950251373119734502254596215628949477307304266223381979811321559854244357395675279846499896011285764574947452038112226627546786735004815450142804182274865536744496897104995957592192816329824832286628489233770558306660225702429451467448633814886985006393813430793699566335471385513297563868834977506798369561272826194240179981194986096543535436565817298190846186530347780972490560933967010334040258610223188206901940966148651424658216159473662249856476250709021908508426934619367686264884245888138611529309199134608343729003074514360076465750026499093177008903254807586958749206277595552060137052128244972499418872356545126149035419682880004665525408402017543238947794858126551304043173663772092405566217733020573890670368389338110184337125988813863220753746316856787355236318179885532753141668495092289500228544442544995876026716042397695383346031774831536949929791116680263614820330690661474370397460644542850732214976316499285049883310901111231384022807105880226696190556882029929305301582451454900425473437319568595033658231772411279603207356568656385693606868884423970742716056391648210409838265707167408440022689309958037441018419328972634574014680505972562950982715812273760735994830113961730233107506803922936693505581498813607936628376845302793659628136139571113942462689183788098452110632447221752723124870010177855190096279494127964894823242942330458287156610481866580873453375509762089105952920400039777319893978395387314063928319110429424962278871174059824092176502768901010079893722948774914981352367377643362309427282105210126401391975844493424697024894936997467071868040851145358203442838937418979282631074912378918939632558731359565488342974103353355219754452730695968745385975032057488719382421552551055364947778478375717064543555632232967874063093480389395228493587443369950803080816851205056942342122779593689449686732869769326881813802111877802766505517275082393714220267705873941734880219273795327885612482035040369702938161351103036500521981692923830285638054408414330566790423601370445016319305747580663787911122620102959608734537062514591854214619032362405938537172834569028885627844480371643205491464247555785924515025687674662836764156570489416827236033753373103305617621653112177782902208721564127779781280946389072855582291567525738292485469020170720449599051811271621513811294680545289541770105093355396185763827387110614227340312197423522329923147650675031281410454071474424778155097608649013469078006112990123930543114258331174308643184087622429740399025728397193476098992095240181996940442454046292517558900312836721319580214487039667043728205551198379325470176403138687417401716323185758630641519738413547384225152385668459369588496112654060598876658440942211621790920138167831915150664704939652388512538622660883581485371492829208077533941451545455628698056682086517165961513441990881842980977632559037875326308863176840526299201782751785507308554375941959281104500846404569036450875795047565470085803464981602477101746239470474867616937314713568715922927638175574928911901681395795631758545858650331281085065359693145614246257645895542189796770954681186677779944376497352268431575836820389818297577934340855161191535063504784272070157962544326854839690991061442759933068505038369825039376013317323406432658479486519758627506413707807617944137322153934387565061862555551599003055377160621210620391962277745802951581771505315126659431146255714981331420238260356992738633397000538111022527231058456265768412517372627220116447646722336729656040570782414322411134104348918177120006869776750284055531133583060888159449840412725074461452470680215518910579576621664144154152795198189685858813922467682850056666417169122459496319449911218520997839818694427222642828281558646728457746201275587217901977889063072535520083461426903871804153321160747382347991741780625787883429562015223693506643444127660749099118489796346641277424519312113902340701522653978713327894418588763592757057614327832960923453702773849378837145134875797298191285821192186126523117717284658320395126194922939228123347333273799856557210370592180360382286897560887331468824161593455642675144036798124093028630995329190174004091832056439990277375978600623244590679615312021736180664768811432167448881003356456793094773288413223481079306725240438349317750069052180079723530732507793822978737051532942009249581887484527284296096775854446897257321764950668494402279692997626943213936698908538107331438328614943198540107588723339039095034464785467899162801964125872286379121271628063230564146476672796817019983276172822616740055082522887095373306879833160042329604617000845347263620713398715756498002048105952146684020045243001464910280188423513596266463929153019842447865911843764677336080473140098379506027829323870991160972332154689806407859058011924556498840378868995550451953973872287178948342596457500745268583027800665167589210042565789835786073905013439763180020794181555125478664278292757943945700599320878997135546591921416141808759739316686403315034234653011885299678304713719306950561621980463209398946200529970671481476143743509347555502472209733485726308945603168050705078665353525534654907320065580065399643911444457167513101418295012455929605383767721879876331359170121581285519286761168827648004752539104150509338585941613475685808558495944883906401427949396476038547229211589426737961493068132615510502484764238938869822251049576475483862397775425026873461706198125591055865886572934581645949820701558033132644488659063061787730133883173791500578803274707404510668450325311059551043536309644156500606167086466440451156327440272261796354120015274390536716887849238324695158041113620664926035176598141881842985535828927803676781086020028674466245405320608792298894610915046959096262121998304253482768591828596237343358396100468143943820583554023387654368909699724786954091132324028654599688831717884559063141897722004497753868029999228440358483560296481888963678340608050800065730310551426110617401962157367546736388892448079487581787574045804061925039178972534576346156593061226459774848337938019606748096771044847789976434088273854117183519080383512015921914576712547665363052504684127341746686402151451701129440305472582830391196744657341919012502353985373569676813701354678966613253532064864172978632377140743451147918064281423463571962474009631663371916702981942848332528417931242114966822545449882766914497606727979702335758963500281842979126540642911653154806024274298957418639872058778309708335408846721853944674302791464078234519228272723011686812078629585740982486110718192587035747211121103331412827324869078966618525172015534000485544589633443235442810569945425655705937800510451187694737005707695985879519148853071175679680292488800464347861998601407227109037304862138454389799946151372234578524024101604872837336903605616942785000361207091817556530278825557193279554721365402136940886662013156664288798586852567763002880011318950436794963398064299143156397757987614452537238122693218140624932067765244926378480570760800451191607412487843878014589832411317864600369552849202381036868552523176067755751934996927964689921688237485907989889351444331429841041626961792964593087395946491848903514808655103610063687003692834230387939950096025695808968034364541257833340927671910060136244413233015281040650419159977478795956452975460862015940748676433891524529890338045935163990274537416799525852903804037734836045928197718533108273432714190451720989150504145771577464679535989062545144289950052180899118573498421533997811939463808337297448174658394242095320730648986833525944748575598778390059332973119776912401462342024317345522688230585324368456760388139626724807570784629457946575194958501958905177203073537477449101335001871644145291980498794260046671706369771794897292651855840471034264867766285470209567458289330424759042282148540364253643055234348920733071813884206598467347790263618320911193636455328060801878871814933198621086738037837211777245887878071838029694001128662797470049428128595847292671949830491724649055141080203251045127984848965384407572327684488790433459893513782562996750935636450759236248118428608878102786702141217668460559958416345381162370592246594026920788748093407483966465472957647708396037877353817248391053624317571806350039387605092720561901041230392980199583607809106833356774836203813980866595308618208816877162388186951204543421826201321241599602832821387058938609771678182079928099292453821328406969579998271592490686088307499025559816210103552595393648959549347823650909340844179511740752391058274949959030216158260146250473723948951218812342997471891093048656647100572367116083439629659931297690086494051177585258162042596595586960343351587816977529069292027201210164008486186435661239169988938182034281427494087755557571696122161259335270253214605476871207119382505499589335266187994413421438656488697634750279572021037044459362235645990967595741267171828039853803955335676998295345180848988642799026191359621457601301937549182902008082935490620381162475836938092023254496476447534514088089786754227391799550368452637017126947030754171784248644397537193703651579112329792979958558853010757863965451488425964502295310092302886573438818705831532624212726117798594928456697589072319657411996710403518978678098770513436095847511804069365672377692398036665106764738210579791309165517148150596792415038410525940557978900788981427472139286622606491487180683944427172363455626617298913934027362784551950121353426620396333898214745486469549666901835948524767029278400487689123996312458579358488119269095260451086132437307875629009308978096449454118486943656142948449820135025085999640154839822066481563487377138010007101429455926975421274488928354323834642355941592010157723033668090921541026132160171808775751711710692919954225902878638702181543893693112964757852559955276092719813311217602108286297334076316527621744125801039060663695199884582964917359017591564872967212329457355333066939570648710561796494031259718490347141145667873591331393658392688622876905814106196613456338670673170857032797826203755429678822072634989113576447987897725840739654040529125419509047349735877051722911095454945335977978609088114384380934400254450496311927057074365257054883551259184255709451964003864359385117894815450395888498454437666433298084944009617024224566706222541095330400863021487377607187629379666350861533425785441921228155594383968835710148210191821533100186257522544054591439514395921905002998877376602954386994160067668663002394990604148545462398324873149709934460644624406322518350330388655092394276144652019777500833903584036937629561902728406406192823830427456651169399310248539787763879889069670042766122168042497484662520084150013571411733387380809854962823508724118570775437132379111016375329935517893664502161202320513018206287659469034166371880409687335176211027943395202576702038660430017729116778282081211854769709178956899110506390698480501358948588812347407876571742665729631007262411143115851454737799799539230748764918797204375234475925677554005739294492314363122600185028857589540329754672235053509940402315417649611188675096003299473827749173307734704254053368621583054459310540082540577807846636284056585140473538662088224048966987642898247382844186284709785039942705688474215833964098820313349175355386317601510010907203865498488681832214578249992445537829863465494727660086843770814650353881723876939409027532563861858281109860566350697740200600823137923582049572536034641763036408698546451303442962268615796985572048137966836766008008179631139896016054398832087607194786398622844540934709778359196192795020224270696925238454415079361664411799017128837000565459529263542673747440187810654406117313302464213688214909208261234966139657281785184796649241917317461362490012410188210790769762594105509642044297502766845632425457145390247744109747408742138202468052369160541719105084462857324384333364206972322935865572316354592502506138918562061757754201548161657610348883955912513767453013125677480446358025234425675200729442138937078927369791390028771270906838036888823910087034953568071115349506657903385488582553475982019126966761896926593631034206756717214693868720795752051647051033744642656343971426390073596003585614931457201581960704164027816331573360602018573005186953567799632070964166611573822618708267568675453656903023726422819204403339745781562318141498671272192973517326928109961555474669173624082206092939975488274286487032702886795059199793068719168476976372172195339516163758661547813395873154101633992614184760479652868107372144973461420260486074826105247134759562222126416276283413271331680351772936690779536459216278081710639922426545786953223229626610255429631252496768736634391235432786019255419319032506479584655995712237033013252688434896844906831443249710308628857162944031764902734912530189685185260758431303332338285735733263229225645278622802812877597153308705395951749606472490474821198252520282976313570890385056727761638654606641501329511109225149766154479680820296998401095247595309408610685147384237998364163183178971108920319019964249936588670007533085152198537060832087826431418208200604611504475334106862160046889573670872572110710103030970296662730367188422528739361235466122521230256290628121016043267695309389984238645995729028967921858246039976764319613433477708458158031626987248862449820343616387995599663035105528956337091891036712910986396473995685105021581047110135375550344508183465459482620086083001493397714173250201010313797511043928522619764390075073501014895270999071744699992510443238782885312471185652618279664575257120010263653828102008163793609333251104191963213766299879515675758401774632631671752877708480124606443891929239172157268443537267689249001171550370755481506677409427752272081538281287738673883281320222899133457157532773923460451092746242624910729448621317280231195551894354971825290457154905441959617502105019166212542250129285639581633972961629637954290861033573659886787258267472390986150665239618222063118163060190686735305326790785923949240690489959249105307356368400441470301342913776728025083382006738577720472071133517190780922586275077552722779468640226212198040308112466928033127019581335640868772632183479791184397323937700243934184365478504609631077254355713827168792595445523585573990633850546994226121198094827442300281895584938983267790444878361507463877962761352156954712201004361100502743554692804876756043993716793142748013852228084836473997791037635154355566753934441260098813066943631508473629835196844656283327439889228026432096688001712598517527899874052197875634365236113943043422784801534831007637114597227367427228687315629496127798893533199540672372960840631494133863736910827018632182834208553485576811197229032677322249961979462587896819713276148453717997189518350714514957314371638503313781135773946485943002217161123033674199624253140586198099536723486428466675086669701801431226932781091053253704511851358663047755368911241975151183773416925289485633201270905970943716691674584564425616204467469084550148888501603761727534451618110297588134949064157422445279536159184943071710341615765753363541706595244168969954481573626806156849182910475559263384785332707366384156345207054742100771528989827767021874666153318686525558563988389901281854850625753162383189726623112376942415378506481196265372366595741443650343339085763410232933071563060810508416215582776998739665193854504871763054244431505047412314971362899496031130970588600618561200113430336059124926010923230351511238148533942350261735092277528480642958467661121411332467853004609687652323365125364426356615696103688426939767970782574588734325715178841977576954953248819524861822517349942852892682185937170672470777446825839318244987600073143416474181075567717902679186721566162851943339848500773985941911649401882737777403805660243759841691835117130792029757877326043247968244234976803171592176691407210824114517621520224392675850956084489774715507281938014662131645239058055184328477585045224186184341111243400937819093305499823089100816880776199728458943918049594910109111266472489914636520897013439429987813426657090471506249535479858365130677689780546977401882022495362701025381250458382194697146321535637716558242854997762041544433350010816838498621090654132197394278257196795692354346249016990828373392044622183459780392962373503856363670911507538369710168752190512696466674263883449947923810562173529432190256048588434547366286451896447101239163202832285995006673970046687601123183150057976459133105142840266452540541755681240515719844455797542879178486991256125870904004810212294605398954419885889065433666286622710784694289752252386367654378552752918931085428546096213709550753902256756548586980160099493134634181669638962696377335951665251763537975991222258708179441739530602590548636535150565248494545661356816443871721954462976156847632100827982218389108497159248451966041039205808457466175892239007415510196542141517095087397038341546020061262624334298890561064083556952649643747740007155530068493544069307016783183107680254573895905437236081061295031215832532642277718595200803776073622718208088920054298743195196633024870840250969426784517414108166224299120267754423468437382903624173799840483971393754311185380662585764548640629510883378957149486967452571295996766217479475518302898176412652773143300617311853070417174816605825245794989338903361785729729455670394076623609881249255344068517844140693019985431637816918404162444820308049632247166472039918746846131984895249761781630500844980725109765269603475795064833086474646274246085005614792045522412809573072230306870187078689971856437832959253341314308014209836416068863520674834073960140344165858084877207459437829868057020843673425585763011472169958244197492899094867677137005057880580099012278817320445749811163864509143828027092567022089566062819366249139619361149884696220125021143496708323352508297359187293712827368739009138389314762252293310485528179288685497522386899898777538775484445638830083635877941560708463502717870955908604632079328026680524306285392290209983703892155807594262307477676110887718428567657256988168754803341796987722876670873172161489207993744585415533596956692104284756333569312457477774392396848491845811336630291308210938575584077694977858098807435399336102517003636451934253769927483077433458948548027816751692759166882675768337936862479347769326684342003137870602334074354791291018704791413859807341624374955072321238037617771807063177795839965745042477590666938274135483816700716804571724085393789397374524268634985783739661603427038107000372479649418166519363889513673931904571143108207770994441662323598671562979325622746388259642866368629478481237685749525603137735250297172890595797258097871121887086949239927285516234383824183511471878691372607509765864650668357525465124025934874355193334049300982824713113457942498651755941284978701897553514616351071696834096046687282289380107014380011391551013535086965596929414990713580822719710316878392438834561601447399295624927775091556481482787671450216538859581688920188882911423812673663178778079830602295686133969002166359089437553986327937788484181972784017864405298305511335469106125122904466113976160668388200580965004944470660071980541325101153929706750461234491292046116548164551582096367736058030887395195566911383163571323553690703023550289383620792277056865703596313996558556578493556296190229423638623981674244729618989834060224666006220752461373597495472721718014575271111973736731839615162506658934689991685458294961295596750126794507881843925479703003665172322513840555099402806217861368559167092714114948587255217299492347434448883674464150351035925848496983825828494751493705053760721388069850935430428319607043627478212408421129766308591984849758410855970794451023175471069455443811297764679403730600341171607909636469356530785338318818706190025337217987226544185314154017105684323562237142729764508524737865239426561119044405680480475316346850533177654296770998161583381997077262589939634774331017554294794226839989320586883984603444539837704694866396907342744780028610595379204916504439470571585569871035944148977795528536290559274179621836198067513766483627277413049054179096775031552133735061162014835556941074558429069356613705688385633429419697549178053649718055661745740089491100406112261340629700235008801325570039662366624571181089952334568731654784345272861172678794038959477473985555000402443196808107645821425454162286990332589920133204808576568297053736420650660493905718056640826693465028415574102549767512709800013279994856420775893990145699227463389515983489452347918860535546615601674432561887377772402072995062478439819711493544571766182083242908159362074912889984568069301502771402789054090194118203893670505971888129157707766690168551165738534211581759779422422255590843299168155592856713317472981805953357314577243427135193953483233016266379910931127068735969159059507944163605863347032790564211397481585273216680203984371845701942125140758350840084555831750362723260565023541502937511909119334738358267578528306695451324802397515776192185493582879131046099631995915840682097234681564502867302532420735956518155624838604273393207903709765126777887404257068301341292283982365527975464632491748066742758678428872662597201857082187504532774991910555400230976259193825789191597358585617079265436504089595120795475754708005147086928877911398836251007553291711824208279985511646973991647943765243521886001118161523270764959425374156961216663198071813277320743940342233371623703983950311218711575209747619254403191248346416374984413917415630156958815581902193501357858239331747790480062937557238355398887437529807919034054604619359365055076360743465098851347840820644961200648904489400633936148822089151862836231767749605880557984630559077565375508754809883416344940102733986748449926842184329616277545504407143180246562414595878596043032960690223641505172791863852168455080227468429133237050318129327917520618331320907917188142668217270516127978798700651183241390589680553923034259216211861751691291558515254060169828259401183648073606605777655499835515453483568765061921037818601286858343630258197901386210584481485721469586099517776896768161351421496700125472190723711458073321958689572169589720017466322750803786996294023081440945133151283763115710623744791912998816334098579371050595282496571622032831476921602259685720229628427558537221221293607928056012176573484259539245333384925162452221874120971165340709077983960276537350453093091596382942010172936433294059786544597105809039901532676540508064835942308730367071038714900709474489806836564609648827096115945426331117557069438459465314538163675650951087447517781081006131812879474957918544400420844107848886671723766334538653875471397932407982522426643327640947151981657253209222176783442651797059235193767344001126637943577913794378873499996572004410180935333838234209140806023233640041564176483205155841124423743203801497932320363802725431265040475742067804566987151356867070277372008435479737182197886710670200016132332996476013972050203300498196032216953171576648030242461647399111344924168853811257137957606642169263965827860975500514278451589309035160657232663559905392728483771109967538431858264774581655035637314503441515922406256825322421194239083265924320713030457563432332660240438927084871990961582172819565004006352936271540435826377325477491445244287019662776723317979126825050163669934977007502743606584717816955141916908760366880175723045477494444298645862100591158858840160275266576376039874476464380060831642251116502109032300774928893911758509591681754652917501581929590454051494818623221893396579823015897431870333692910987909293947134820892552247725694267441470404866856725992187237611080777110773104548107484200793141124384756840982473165291825204601409686899528798579085103127089809132911523913618217857487872224830823445518448528158867686615071752049733992438748566210612614090294641701373331750265006944681357645331110518138316037656127701200810831858963257390024700394787617194856022207833994590470472307784744728408186590989517997301935502295704100797183817175591309995992421602493975417884529476063625436641798261700580977724738257005527787997060393675548719130505319210382163924510212082745583822271806188453489943313314797311663167137761605046870138097347518144455067256388793707879136030336260122911706046962340512421292780098021289750554799498310158288231919049967105961936752012759506472153372185949386261601980282492174576703626459644126717019382355476800998261366951552197152655616555631810006180858548086598553764216046523836709396494546056186102153159719314035517794850052644857902526594805366881418478564181839070763850087644114355392368964898915497069282893705161593604475091050354319608099769721780705541235078241364015124439872159595514156387080124243199539848216494789512361956346245087208549641098416535325378976361742889245397905152180845242256845779947480927704315019185765251283331436247014931416568432068343590818293346893636830498476300806872370616180274196145451227430505525855395432275607115243367383994358223993489616467216340867587394291378354836524202773835342875540303813121437934212162800344530289866089682535959167906912336608239105606880535857395059049668351794598306090998233325143766867625163826662741990615737650918781337163348044563283437105693230016121154866995718364035768842697205047565533506655346814591607882715578232664873824296583070747796463883249137602860638001868606378257124024797180740208734701037333714217462498288769235120216329608755212630250920595611571242383719614096392041476457729690651955539505399810751806879003343625757566943412332685696775572260234870369802627495476207936814240066851826030933663860560404946203664147634590743604106944553421611699153098845675387023821289334841887131764676049148658202589617949892883526728197034404502020477768456039962147597067639905333452179917914025555870175222948105584026090205033875354035987858377831586935360537750856313489909107914363255510453329448117726367910650269617276549949307957513446040854963581311233085711784637073100911604157783630940266024985073892522935488197230626154780096573672860581669750009537255941858821260432023640393949244590454205868790926826497113039568417042024179210169826603887163819054092815896019485590992601614526052398773002317809802667655762440823756843958668281295331211770658090026654223276537254316805504311067939311476574296168765633058899110734443651579587226861855007342706930947818508679031068552161604296821829878715323586736094686967083202471152716757772507177917488544054189140643173076613851469752442274814962969169876301869387899023317253902390099923063670696968485106858643993180683091882823947036407549190922057117652369527736604585983147700462296360603477482888264405087197942656608287768824426892421621845741723140468893193962325879980563693362177388439342806967612135671972526605754885909878990956919413718961473866323727585035733779512920296548515015764016340021051552621198599852635827495222960299820632603816631170292939643937683335367071780762599254121719196812556617100936795223192658451716272191478003332821496304366771242351991736918936226248759017871329664059970477659975335811635208999653610911397673762296473859973275347432214930045771178014787356029858615786194310952541375636171785923603353021206550780323154319281441174839464795121917925856951753594361472307237026315115497606132878169910455326824780586437600015729051012575302203466633014520342703622553247365486669867809936039224676003408459093611269362078477907905973988584578492379073380587236035542174630995507913685081538814412693706890507801664913857193530182272690159439343933543033287211455870940226981286494057823541364777516287296686785098815540322897876181055792873756576669319050422910321660549419047665716494993773018404312639145926513983718605417449547575652008594190925248062121243895681734674566825736485402515741886214058649642208501514932357351761475814418141748444725819796615715145180664219809359322421050163588209785548590521745388455571865912912855080147030880947030589375272535502756597528562270312969241184489381478476380757131573434770669871602074770632811169226893901853868594407229640933760143330292781013947110559715781386571362206891488409213796607769733776593494547626363148259548963240774128413913538365718583902470798467096369450359758069160805442831317776978173579733098197087470586411891245397879517382094067621660803963158517622703171178261894462112889356891813393866364267649881826228879354749206632567344194593206612128939008932590782221854998279597849671015329449749707634235452092298819762210073798253030858109912656349393656096901196723581032803843054117791876297762545085827803597987508011438284277017423001164792040987762600597509540277691926349000499073349744377949007502951522926704896669341518711496966317084808683807075812273124193082221963684805138139355361834312067989160793148476070318580701806627259144888490567909544038612898814191284390029357961577091000138806561661819786051661246148771531506807240098024274813271981880212120036308111087018799627606213502477582688336369940078801541066434894764386548923923132665725992673025767791717822714608075837263090773329562871378500413647883547964538769665629118634713793468615679181294328083676444607156585107007603759771576348407344662721650857644508289164921693638910997935436034766789951303938810220599196215990905390414346345569607890418325777022227897962900469613669289413666089391756734181175955085691605399585933675063074856473829273713295712917875886123401264325567217176031831827637425148932127134046438436821204774367710621391099391780869988225880966269379483547124038698174700316973702160221907732644681589682238236451696960904377039246470105542106619521776952046529419114705903786056677912867104422923296560146127374099874095452105970327548369256488236508013897392965546729970572210426709697747220542968234684284286022267674668445845163954699596627516241846006084804521542301362334856751577406245889563041475861050790215359921163303028945979071363679083987715996690114824844943131165712404129005604308297674433765732979429937611143690772701436807100275290263818730677708252395741050885755722743796141043386223471322642000950979996821252562594823353819141530930279807831141830334087840939773575437936466501917019002321223689392379899964325689121568695063551489201327824642695404626331817395609129167409680157487600960611503337049878003369036854858474076747195234871750233260270552932479851327214184631594475792492787151787956687724376392670850281605976910266423343297860750607713333754594940873955384265158601769401281890378901062581498834103387995840687115708394629606841447552139608037005740962255317161653651894631395258711574506733249995787406561441926305306350600260211542947766991303229010245937648716790245434055197256923129483160693263489386816669790606699751817248764234159692430770973058252167776779611148365708181079177741755289403519788460107179199117596178396350350199185981479668420167046608548452178180305207398450818496815564443128035851183853300312088408375555816267219923765130485841225871353312803153433384835540234890710742557975726733830432706077003349579347879242705118340326874268050973122199454961250535731417558291289071528424953219200196387461381568121281507674198016773093565239689933099685892574529041772416426745707841178358165215220184255168054410644993418560355902508867023610734733847383511248818599987054182635564005119853428000582414253685936139527355280525696603590256092877831627432600523658879439642023196792526396192056901348257580143749949151477588816965639914674938691243796955962929214507890509147025922138577568909241357884030074969295064793817643315052297588408743089010505507130295303674034428082079060956904642665888623102370711053150187942459204110060176578953278182702238656919742353877008462910312956808578957826142837483656762240362986406499758025526320564434173268921119247186042221859070220164454352690069435695701798951260130784800399620126538148692138923200450261321120355025915035243023942738744541687332562656392482503193251415625258738624820749897262320465626765744181585010892642760313549283011270662916765076924600329371417610174966283073557268653982601617507963233086104942848778565324635564177640613621342789164508233201628873891507892068725476013814254889388739638530219211349467911739018724301515833382774727596664466215681687957504217132628243184252931237965384254236777885225516060352867836494605146784185012273282995397326802646424641031296298072331985829037218454797160854519513134915972334882134178511514454364832616340827253734963720528377025320004077180881127655572903717104093336328905078166106209592525913087737815956992683063285134334580492176736746432807075854827072853977362064524286430699833894318936251840459438649206400493106879284021526608949351301052745943461585801616754764141581732608468865062308169855533423712294525297373612771801414974850170425422617194507690835257604626257966273186297735427478739604024172757127191777641920712516775987709005906383424507411617185148797790278349278347438062083822369588401481089587376539642494667977335150702673780592071482415688468121892897682574845104016543007018413940142155199395858163504746138935394745880343839932096134618142735743609044659412559295647709469587087350205308366369818345552929578465126350131978559462040115176900771425954022481849500555718694763567543149527267292754469335719652716724358569102896425761377888388864437804165961226531155235225983786922419011442664615000506889268229261169984544627318975500587004197218960310262133814009882725879526000044397224366314137738371794410105302696242202052345547156655618904482049249083447169537083692699665807136129501412418682831424621771472966607007554747633560748470149831997887952442741200724765204887565974015598843874180674379019534174860692554600289477945774270832429784176131837116754260012731068435557992141185247706290309910624900946736408363931694661780015856725970342214354845684183992699252573145757659211223713874566687348013553104895878898395527462722663259255282842451611743776842520239418165615469022462150984785916146523259707337383631479812745826340551422189800653335621742525723239754566259211588651111335809874521632081336970372969848045863698413785996181763721383863230748591573964908844956359928389342928816792225249052456369456037793449647318558281223567096130301103791728671624711762198456269150620748737413757850057184878251291402990876190168313201054475199158521941782978560082469336314547743282977751364815458891314024129556347332014079774859666948057154365045472418819170417198157414564399663737928807311660166122457155241748843531446691709893370821293637488339048698966952931867383583173029329277144798127863704347580659082955729106973350329968260540416172732288740377026044814843537791181469328035871635112409720540356357829525637396143233041176076526519791258347763316313450521628210108243659889073576480451463809767985991044169422238084358709620248049481104736853832900920942404924779541166538287792193023130106448058168957637516350199303987775973818899191836299670525662496742913029381247113372342181596058298931813290595187346160242241654239603003430613778685625643774518865765428505461438304392921665853979183657310614663688497144515299022521546142393004850817617781688992555515964547531174879180821669146245708847024773232768927639116894988215197038603242407216474176824616463713358462540147216934604917866196513392647563228517187420619618098844777884947987750690990170756743014812058860573965014926341805518828599395626055290596676778776863243943290562027196294858977571086729803467582595555523110388438682980498840022283495587243478556054085860700394315543679891421016683224573550095694765897509605792675282458025369457635046426515419429820152919280954468134695876251276517007963580266913800684407862390988173055498901854206879744817131146713884193086270874985648857727042738259178568715152911480419766013779981008499130682853186234068227355994510718458475989490382265702699674661305482592185831567790411190333869626294102829158823637393310221004988852847096475360714564240510655988788584294531078737766417180596139817721467987504968996522543568926717820559307906912795400844232174591042754044743975252507944848815792249975903183795738871419551762029381296925681284578181380841163254196944345344918835787450281665359740582365667900531672408367636505925828673888748920155081344588025167219299380552794984156718750935258358547273636417667487269935762949156364520302051006919893385815251163717221303815767564540796954983935672326122774694511653429897455521123228041794396019582524448896873452880530887528710049857775778656958324272669136437703670287366880297721474851345250024782161829761310140233307990623089136063132718216171581282293887735381477391793903078486129104215646047989348626916213926194536520828620497686683782177339568114590696129744724384706090293885138186415643109971850191690157269956028963561952003329972560672014756960157725083727090232928465996028613398552416300442138828533802072975881426567481770268315018089656037090284502510012665834582412651008299616922703793826510710349471260059695805443049474297021584369130026634265993561262638147483143731598551745631980629921231722482266162962232672381658390963873264680491872660860197039285730803289446632584235748776891196121385460000006096911829199331119738473866047798113241715653833334229718552922104131964649253830369531144842411623932204023175227223050830058773939862357191296489675542480050058697728771228679655417877226913499815595251066919880342162916717145678293526591721373473226419866423752162363032243921692193647159955085063175940042032845115943206210099708072893972331366306479995385482567157058425476337844037756515797021322980258446253020327517813134855463483950685116947999420530550994645640409554436339189148069234158072022791033903400575378166555625774758882251822626639766728781629408163939644897837412742864893054503499603865171878483967554836473681222663735050277393016951936180882804736506035611747614579693952428457093552320765912280976410684597419282561834999408828078771424214702335610621560841411534073722260069067956957394773431264928182066574504693677574710485428154823214005198522069293352208163719410019916747113376093198816317942436072797181925553557453011423548172346535480586702331103865520506601624833484099293658202556711161120551773168685215359170861085803859087757301738659684000753509037220837115728049330669543930202485231607790587577542072706003675716291068683528459685571793776742015437474326843366611511643360991146662697706670560374162423194030584841404181836142397843389992394115722609560281464396592766211042969906129152549130525534262845223316095793197290877412144096896641669022841916526941301774987695978335914379232473011544526974273986084725232669069930170224613283656275701886221599484425662105957189525624142179259828768348901436677492390749020654821804551682372314111521085265601329880589218602176514765867561641332714950085031310505444982042435290053188271183442968954329848451535454375011353973221034678909073461284952650590677269748105776805568928867319701507753382745184525593087989951228482749065880224711390516251932829530771408575934754092355198145811373431487120691916622409666144085631364396482701593029120405160669026642667613118813217014306301973447335316642962980769040287179288874153537473141980789733391960007719264710495404093901204595668778483987592684714354315383381915075641368895776772622235895636589657532661235116113636549170126486330414780829127368576125288392649611127440441762153627775510804406533628864795117633986420375646263344065370469801584074282187027337414836187745095596172046168326279737107520981735487555320440813628556240132728146210352019024105699297033022514183802533119903541254667841702166098200304787042027639188995738010919592370753617501927931422811971728451508362503686353435093850968360707628338138526691419818416503974723147100742127405747021287072631621493902213122554223375913903352733708979299230572787824102122885069003372232204617763786621478091246517851566072857451091537376128198363705424742465434991460624100995504057820264714171532715738151433844004644185738011791241884367776012462338654094178049522804814954178973166728798396843777315088621813278581167943519316361006510822075026857964072518730582298185973544564017757168283245467375462350009180649311450480250822961426836078352551905710782429845791398475093970050541524314308277482975842245213337878550606885869755172268069489439206529917241647637422356680398437000533626782916144567082587919091327574311235799538716901437596872719883867833922886628556797182433938199260336604793158755015668232814074447968086766578683855003070653770950800949124315347449989622910710703549800812082072236410805624847895698407199357106526392647298331024039008321065280775652757314723440148645934848272723894333264347257357781475358456751136943016515990548120720155333115498559207895133735637501317491826276412229268872560010346839939290884251663135681316624444674697673271801018809164345427088418040914345576499517048046283277888154825112813637430359789329801158419533343553105110851667787514965804422236486372845646082639303441389838040398100816815298620385989022991867963363397502247906257786434047457899840654597488470325927373874844754980880956730173324926496861520894464307283526140939393692513402999558104708396451449695841664171852190291095223229747417092654926688762128404956655370724819931918749212321855586908629708932753958331256607540237499927314793617565134541059162978942043019503786894563562741688930999455464658262266160442376718708339917901650262067191948713361295603486286095124179828751883764663339757182172864718876569458475638059087031334447698232727681805963961072625676563837042883666012773689640240531135772590817542983296581412297225765926547664746500416615892929262960814890874567984404502900881604483320495673678767889712412176822667173753549972764878439147292461885657855233421182820697641902181941854510230207614826568402557077522740106667880840406809021763164013039360357911938317152882395140097470039389614707450335007746174717654586451298284694535244619083600522784622290493900516303303509597601975075173305849019164047297919211096900183627037653374505160477616077320756571064007562065146404464487898670128818785112112147528834823435831379289051824520829147173182431045129292838594553855531254197181996788033399149617040600521264338600746933814582251172395165318119320428860183944812640249137003259691829427390987172847846857178345795525074528137059866657302755153292791205131245578523437954925287165826895358093899050621903137639229360174276193359670930262546445001413128737793111081855519502713379519274141577460994597244952572599382171443220201421629948936469149515836292895929247065332945328778043509479556286791883808133577736745652575064008077249966740300873720420304142628992471509856370323700364996606365708447503473765855733923382742294071940579240615972521677817092894189859341226263784454653167273549970465517803178488842140045117159316076794513707693172461101323022242016520579790465159367200218865415290680318000327622290593476062859947021672422387606070807944832135659912843014465331674892776074627363733429171836308635106576434242984479641180719727140013604960598636165011986841603396967206612157975091572322195317474527161795852220666108983723061255310002590841691037745856568171182473277969669175740666666520011569023277673219854327841638307479709409247928785890915439268531599775525628998960585230066933188419706558833694776092294955333738201572084423542853240347438060091088004025046827581710141625787168832969558146086969753728160918813288693234371092045686212666432501838076792890254170051354535945892742068581163472050499378452507674079426327357916205310084817505691096161705358264737273185742159499935714024592415157133230888832368702806422936780649539157721759992117125495984793643602435632228363990093760837558241727606303674631242541756701121028593200058703027345569164692298028055587537578732592497381865074704287715207265322422209105851763846250957348354874676450518301482113909779330899904929464802759398071941922473247402992839383869586252514274475472006538227288930482970241814449417979980696152251682867913191188127045757259710222598757924270758923200689975248253637500002543565162120116562679768332093198928342766107153465487625919932371281621835371648490292058439004453044105857378339750199083351560510633778428702820832022837741082050998219705399087377086456154306683353703472016407914747678934923407914677331361042058720829939476700835775569860798448631103038391265228944369509471871879726613396195549890155405897317037790925866779541370956004414903323106621893791830007490374335013762153918167650279502491064949315143473890646780534831809747274663615381238818999619573600579718670109589737378154420337095162125463036705414202203948907238013821138351318017736041322766498446221212292391974725170271624883564887718250541954567303233432831319251143525758502505932769829100375253124772161725338228555152431098039767716235578845385064602785166730503563801794274294477231619357475771410552300089357631374213560690368733156764528735882614845132756217560439709292639617706387309918975608751820096076599800290441997241165274796918813171415425518171351766467289293883995240487233873336767233153603329631659597582567289805456335799860828589055378013465815490707857660476108156793047075962445468796482613037860816492418006856176973666429912959511890750669122128540690307073394400862146543463203704207102772885105751689581210476081117097772805142327671327620555959903121826043231237992949219782857883485745327859023030203121518200265220278447211216968077837257467644744325903414863661790798728933084182921154536380923710450310611153031088085368663946960412979948328993574187070244652007989650305547929225848992599182242327677487390022860483878229373616377453900000164276895928094575875533660019121496450136597116808465148139313172096244578091790360126707880943736338400594541971755498155039662134730554981198302277101875989561713946119215069531809846679447852400568937666876243092893192480912795223469978750679664750470604741642439055597691989374084494253849210017406310304858271883413489807463912057771142221369149359578301478602690652054502892649898866185470517857258943846522312993936807678864144620767824196677851493799448604765939017857853402238986908496126756962252520647536682956568178218758334970883116365811917342345295653478279258162981466151666204382090895351354666938859563627662433995985172931209389256078334869316025391759356640566320457538676486475348107073214288980511377113258954468542818527277201706061299090831925917158524746480867943031448826457357836639608649705002181777920614228543589747214331152417830542502770450586011790887798490907322117349152939110991444591045718671818104105140188789582680297719316790272706428422803413780067624409943948708777537208671374807491173543084454709235823707129255876261623945946377903288805705833352390664624119563112560178047193105615180010758048027507206943429813368759159845634602535190279536537691691708750722386867597116261757968277991501937314166371705606789655271012079166627870974119568082062169969672936025114511693725016520192337270136829258504398390112376045852681058515764315987030537256624020818505876545707413748181454902791786920430051949216150427122797191789839900215306908245834407728888969498829584353930630113226849862464435355949199000031747448043368752125577565734988438168245096796148945156459289801480401325775258629008516178028207048195370305257321204331708515375570600828759254135114520435536564676678914387889068137405139051440757368544614064148770290492383096113877972226849131581408524472838544432396338529913190476918287878655617902141360682272054684458922868930747198459813634448821513392108265613036778465970732240889558784665093251577232660747554252612088104633851505153536211438032376375932011648396067514619518633887337088726644935178710328805883152695562582592391069351023381377826374059215266498577884517379532687146850577627554870753969030180259065931477564467329920606958437287790397200680671572703106842449032735646805731469196133806923889509523833031567403221775139943824529679958320550190443828494259935123420143868138777163317805095598672306164181888380684105295996394675761807901355540882489151609755680019414483496056115621942458943630973231897266708671840311217385871671615335819601907054753571775762690379598622543227096227535718101516601690328869762820931986028466895751746189609826131373376434194569904983564172310728177691220846657434052484128275194660550228152730408323378842052904342543925494805177141378201882491255072968355512652004394425754033269211001010739405549875947211931636955031293554986066923552313589769913366775888366164173466148811580486862322332284312762675075083255999743081705328353606180648176030233017117941435687329933523099804165547012551177458029735905693062819696620673738648042579426992663902303615991545431758661116540011517139923986858275697308765404471797156441793561409383864148398176453189563173043365320596276112127354285644989233126585817280855324411122337714375926472816072410293491780092987547275242073563847627184219884343104496364138581527016553601698532691736072686690872418209240087977075843120334748544287587649254844281964211492306983702723481752802695510638172050289167282159899415985740273791018714274198433824603682803135705608641574862072877383297230706500827529631855945062050222653920992612310151833196486156443052946575275286351582932513464820036585034903884267093039991467589775163347896483579355480962502485522129592487818966386660072328365564041333776011942362170349383506436585661371663359793341077951591060452409382238429898334988643811851783805841038775126624074274792505181908107329101819430853350396298925807920514425453417851103230968803518210983313570581776473003659145544122287215257592871090217749920071176896952719489791303709026453611531050464467684060270780185069954086556009394602844482852611257397898810955209870639664611981782252376127266759056835214478119726958813597938492005376582930950378844790747138031900108143853936286119534571681435668623072598807000597141610707254442626799102424791799064942326372924112985389468364632327094919716588065320127668912049720210912876324384404180810301734028427081557738005466546011543267649134345253277318386869797334773797113067132301844903857661833810814111204760676128673418375874481629033868016519865476459742137343972944504793649053455690441847237899228692400347837138742347530820329272236579525317033048713017687644884199025243522182850710848065094736950266460571542882324087041778470102237724211551436989385990624251151284194656733685455465855761331796775652897111443458736830931545140787913784073523871016010390112157301928806194589373406735267826383092889199368640513510395858599554466970181634535981356934827602966147680947153441735551714322913869467484107336836028910897060702658500732203988624644158398406841093313487842331312319326149162688193313263701155405091687177038689753381279856379594484107457695267999152233267435703639063217736158714559695071295570111718515288893252960424250838487866362435978037815679148742147290230292992284136396806157144365744474502162263650907832996614663353548516323808821966793286232773218765123788214736753794302695460384622210101910902464517254777662790450504469053953231378589831920713764877788826471272003915124266134356773656433423042154187896858507675343285676539291929227496998654732505519184296959526432007269872534420948999391571736377657633357090604167687587638598128621336968735090284406184507382559522357310034779055804683716816033103534033183083971181969698703869985439152024438840972263147766842267221870401615545105050016870899681245332255358939149452883843408387769947498971631963732457380310784515441102483486196741040955672391368605734121743754176386477664455568765869358163871686887301832537264812618438428397225923772142738412641342706305237378317614250057339997112197377168966990520815403555927397097173729246928240576894348135173254279154045850438536273091883939095617099918073887529402186634300608937612118743876891697874135815954089037340720777776013935365041723967516574905459061669716320188181207374150243477420482500404351633921932028711757618921314152779588478247128235366935377397167537372674761392105012765588435507025126961528696595485862813713091259780373045120312072488431275127647325458707153046608709236297891411922617613382195742667780719084348853224216467296329847660966768998854145327456296315717930660845330941982588395085168033692904006878272382529710981621402242998341393458549922796130619253162291625475740588398502554840666429421319646140591789185862037919528701490505349570337692156345717631773802583251697647375665367212062124991246829132142359062375671562239260807144507470025273036140855109895202997598295872707118343315115796115966069027200215111268424335467334012747011845586911675047886112137301731993804415095712413391848549056810129193739028345346983713313538533493788736062457554884865062499990184491467155417209479957881065256499151325525872136722035128734622615000179700236145996210875147394165515191469299370281893279172551833657776308409752965380139357090260861239060936115697595316470248634523287559352640309752848943271949657385580247155499753874880649008848009080338227582946347937767999808700757369077044784915355809111292022192717285625514219153465574718071347627497217350887573555866537317727408322782790359016889165748658937265914001500371757286433000976211071379297147326473671577815996926188895151512173032371303555432628323601843015943912290848755540601237863960848092710853739150943239465662388130408104054920726878635892753318403730966314630521369735212136608915855444708662541293820636855415069733700920230568091008518843683315490816943252488862476598634680398879688780960815432151404674028435545349455122532863524562042611674608824838810539135966892798297092131454424148398057248509787748181723476835849730448974423531792630874862583872538150286527687467670405524708629214291771235306675619045820308976059084942802452441964568602689450772538200993790613106092859836831920086842428707289192498199440137670547726483120723335861038031807162825677089598761788943336275669658720147972591826886219286071366818799521576993293300587757368130596068139243632490756888803312244383335992002621377027391096815007101927609467078836724628908239817827608631143074479374936538327892659562471950623723276200817794654099693365577882037251909289217567172607115102832406722099243831280268885929760540058233223967913723715237927970877927997212688770322636217594430223813470829087614220049335371210817175669573239032624067263375220426005086348705266657620445194611361039200124745974718753592491725353836098834005149474825174282185895114148569231535457378546237961715768078762155621900582856788192210355445072124811956875517546556725946771393756156805624002909475014357638753700605372330083171162231009333992955412046777273563401770640092277005477584122679712113959176720123905673316775422737855570377862327961148843703264978639945674726451111760771652802222711859724539738169319496281141398832881014145198353286385965060722698632600008067038546749839608261736358062061366730056504070480312637061354468619028067208506459986104146742674309813206756094666290024457897449161519330036258431492575062866840629390825635464530903626692123240498393863694304937396919635668684794867350322486451392392712267874731410824112391900618501365418008188972668331841328709169408336279424196958255522123844183463410351115479186296386189296527906920028412538143237448472358013192713299713866553258310010211254036276992905526789325465582014579654484112135696107372974065600521309831623615129534933969901792236078934144725945260517950364531092606725441866888256558604096328881408730252796751609994062303622645330262556092215453802578970714552417157214523876191569903890069280527683735464987157817481822355636742152329390394815639772727006916504308787821433325072161728634807716826000327999780728811199081050822733624096392691511401584087372953878851988012703839789840442602765185446413623402898503070459115035743365037241897909913664219065270116151673752823134044599179981491375799290399543205932766338910629426666618951113202662837809292205925582184500961382988378291801352292462555173079306345881368951902187254956247254737387407185301343026975066870605460790021958930025879281716870192139381808968818258416005005991954429575338002703460529332887964531866371000789126790828819838293057700006600222811899817854200649668999018960152673567439992338990307953056092951636158110909464956004327732009790413195364832335622474897305531233427147635727324397715084925204611467505752233449384930858563343335041401589740753845654600291722318809227481267603370550074835055094918815830986442587356624160385511344076361989037737390009428318110712099892499944252280116485583646596606777158248705435092341403874636257084108227776697372223779955379766421941291004798130874730657389757088406185993971766166476472560134114389901994740347122999928270463730767811466092459508201199655775511440226815768501257881793105645504443778779153860706059636400831977763397629416844927646982629724680292564778085725869347363678558587136516211662748566924676706782148295163404914260329638615817313902663606893280006871197212154896851909114531073501551515935592970903827248219965360135562609756219615445016465050076792578558175454531992030806832833482548560194501889853600963708666815982200124240294493552572818477937369648151684173749287736141194247655541058497624688126097526702524091820068370976036922381335548971991422825946140092911807100563408933457954893623757184227275219935372120948120498764477399390085301300532910215176562442976418366022370522751574153761959835188101672303467134897220794335469686581510094538726032097247450364560384806621235422780035965184186465539171439171847123605062709708294041806937123568023145966404540955850998279392038227800538308993669277298443347650455396927020757187614365158182623583465241841515682976977315918837835711555688224151544883412430417947796808274326889579058563366734785794711607440250695081092095638450342502417498697619118197113549827911655596804936155584445646218162900232989330381831068655805316430427900540907705883135244349868711558195828590006611276311999435866091930634552100774870696675801430729848615665829955519324410696921075347010789837454529689455303371744960994963600643780088178758849708484562839231480578036697543087432845233896728442751533670803882415120139017144448188934619750659667290899210743450434464478656077114100398343362393083851407926460299668097598681475717766933917298611791168748389182304643519623330686176499067918025943420001475271227130492128596833894150998996431656454927446477507759897215541623306066315568339173344963402061111619144636942251129309630697770904195031335356594769079574888877492465970202018363798323635651248766401259777709478947964978649002866344161360558136584167276794608313369511621796709531984803592279344358743260530713451439637723325735237537320587991744143084294164145400303854625366816250941654018179851473653585497248888147834504081212486590111934346593077414154615974198427421271571965496172477394071964617664612390275306074239983862947218045041416671611828064100201825095697963136489336604496611748502694004234026390363736214664352264883495257210308500045112090149484380424186924214746338537088079305617828584865665021159545499683702436776746984860140703753866397557447626246229570807832385250694456395804943317220040253257367936657350185863801292259889302667568326201576768987734155712454766731763253455195993242131170293366935467073535550595203861982746260832108104551578954715059136222591327107777526103751707364196376129366231968233617189162835317028112625312848259499656422160864699745955433841281631680978892697629398889654150296302499529012234418463764853734751539540695682153262779888693665647897054150924517995099403677983282559329751701178191787574934237443357344620291471976056018330783243003074924765939084115583867348832388403322729267166194962459162495377339077417339707062486499808607973722382942452990109820236157953143556180346647994685479795049509511033546760211480109544254683023219932767428528034139832911534719709475278449241178347040581255920183797197561206916666655502069702127797322320452292279583469509085870791753798292723330973107827333807621093532124560899982814388244696022361185333750110899335110123640969485137427438868037249106048998038394940414081895105884771608121047531585039016554416222912730637832735143827197097962662256023000263382330929024853443140590492403868333266210712195081123430288769102427633912506710035934679060845727094394445975164744742876838568341018876322768556696815902892500482937599863686965899176787825621428405185804363197144185276241067560006807471400686781884566865790822944133246088497310080738977808281618462699430483803376857474774233067153974998746878396115685491268510166070960794503706821975263902445363647851248546262323593146199140448365727907676418956422689208426418567678237768336391350137025676565482637904969665031084273783435847013344635006877221115437121494225182732478315704064419080278013652650188020178592002124383629863465063673946709103925359914841340030310161895068466026922449390988414342055936677371024559715717667143372961011470483381058244953347412948088686505945304858179672538231383889641215204376152009183107489523969116378742726359915430909857566294152998246211838472614712256663655257740274203964340509531025502623261962221140254231554282253967817518125596412880980340087378973065899634808522028646779610100157926999388022274050663561385740032762480626989270284919723208068185560343495613062123529427214784109197740967353342577252195433417456132045662333475933324185248031431358663581238007264395215285234190104719057526698181738422287098314174202278042974007665312783146128323550843227150360898115928351325031770705488870228037273639845694022842893807629777188423051985963284293203810613371712381787794143730881585909763462073998866498116639718358318768621489869633389684353739161911099084737001580363603155664669168886367620026469818923157522003609117964730163899351767446388742510615614006338429421094675675467878352433817382368118583740262385662163296313337754228578232177644078721204563900335310762351166086352239551890883970953298011411542844379849020407467387343399882088078094366255179651665962901248982968364816218385547786900229937615454700482821749055697028118814144105509480461373138387856932201081374363070031705275628761552047310218549906747535297252588147205472322533804699867403918377495386120731446897989219679605714948138554630638786047880075712747920044076877594992815632338761864300633730015488365509358151384756273588784748313145679238613740972288563920705552469904799938381884655510790969936147786350453517335337682393671224209504441215262970416990275473048159771438509796901984272682451668349937760678483265337302962735638301367091660791063120245383894946861127868525850349968293225095651074390881728028057262398993320081588128698880083019465616043268930519765379849996008126262371437491594561925415700469776053269400068940980493245404705592164811781770241697153562842713569566175610329310416420113878642476040132539751315765286974802821609357131231390145350903265767062977211012739772786182469306973784209360759342816495387432929197902642689266131761134066097895557000307978697710067298585158084998838614569751593200044773583014495071658898935875240986802552623429523445239339979241784493745342174754036347089961207929807857414100195784496581552853935430557441133516663105030939466139668648052941628180671094170457244262815869577452150202874681490645547191120147727725968202224671456381253496747564447035577430096493105804926079731611343990805371871813686760688016596926708399555077129234173897630611309282126810804283475754106482387359602709481393161490921087308615645482524112408892149556590192038722104757693518283672066786556385997213595652060849238988489548724278705408871726503206426634707872766581895046632662858428925314080115613638295638565245328462325253278937459348933019330753392689621944477629278294664981109661006927385581476554639432809303789899798854045462073799571191180750217552568403064400041762250473823607855635373885164134035180826653656503996324903776470833435888765212625570000588517928299520396478129689081008416873394330363497763950760009977204921382898555994109414219602166734761641041393421633434672111568767487178349525701221978353332725604579868549157809847412335681467252551175411959357731852073363945023184102959246280929309472235764003218478258419608982621507957741876367812918159673388099762669128344314301709613911757065866927474680594069100459690338931242605951963816651879581726346616341291135153646956264605086532947855162727304861220790888264842144628638700678400723429380442392480030787049539432545396603483879952607285038946230676468365920496419630634514208756897321110264661341208225938110027376181212712785129010180665238832424072856559698445354337687129792606671428250101094960545087953697060244028825380953761887288921378140125393429896028694463706262464106075212641301733265663664361304844745998525723425731950948285941537431182555709645038782084594051778723158018285584777082286515630298135373683011659446191292748637458424901851815512537166645231702471101079578714699358450047728933653929213903232472042145763402861033006472275688925787283845021446953364442633669218472480705650938141039172949585501091110047208636122018752510215144997530493012870334087874092358469383469574271421367093894078189471051872050421663380336864325128285089965506318580321897287538839079279498795083135291388599682798567692968614988242384565483223784242728362253493553829656953440716279379971338666489360259584228103848566126153165483947561025959594218984052242720231723938958971970139761357569262467716246780499106661715004324925897686139070528870294523448732119462031973436382443676756664130369646320033499751919465326121333200106118967638169172511437319984748757502816292682132794820840241603479187690455101391719759332250994143248481714540837174843402259908330534585863455215668243069061522405111257756396219150438954111237214198794133904709944866713102208983742126341051643325802187273365257956832093243439698080994048505658344125544920761096847951373221993686516650258921876582738176611369282951857236532911389934956218382389154046502529702229350197609372484975469484469530110400641909538805000928480818670962523118797868651708456810948959752754460481867074245480358359050250986034024380739141307857477492280239557947516783296741720961597696314734821653793974965165066342965914016496199510649601910329393726025737422057513930601658345448782376164921069998582982703248639153823675336672690602039065121994948731023639075615601669758821125019293133362970008196304608720307627902669455146370240622369852259556276924151589752411115745329824426993662731648043880435104493547596105056444675721092802293235317138709259607977832323051449472983923385856234758424330785734254526584821988009582701167232312337518704460684523367924315397569717497320987893322357145305803312039465214977291072945481835825774791244457511161105920565816291077661780698469559055373009689235011978800875803720826020462143241345296242160690451598943151368486032892133512675641498868640592147418658223828596166810673352624323965747164299552941622751295791232954559720524910485334443379144413084638812562184533896654378219591047024925923076675225033939289151105793447173056021449755859900464361873586691652978915354170453830774264817374600927275713040227518542159626814222955096604469878497981543379601279373669229976564127763055217996750966534482055298699020156579082698220757626139481326741612725811015946774348247267727403035997129566724290934462221633411740679756782067456366790064369237748431759637838706666848502722465439403594462654933061703227431486972054598882168974864530816243609394188518327062056008677881337379142796897188195730464016064895796127098809161616016681822133152061599335778085942229327957710172520047708245416283911373614952389605751702472366454358929198546120257186690549182618142156417936680892093399649394949344319770179422871103702725916727396833806547950489921664701256286641735854934177032320597489980328837536219692163276499869913400831862966415077011097224983991012507246128311316403788663937291342223552846283335529669779839455760813490531902835669262989754027889468927498677986057124263599240050598513827746087621680359375220453368919904208714915426897103400407873320425074493524908207312006821663948730530046616739875842566801928629687900141957808267723920205423780197486465956184009251844969855529883474628990734480772782420337498657646155460325414722232041991971849578787939691475586114763528724144252854478032345076380155418264974605869555673680052825541781059604683654703685378496935279345271536664913890526643110064828888664197710498801351694312816167639044071501787772288777572175819870992953487303945825068784107887385977802673008756071745783709461889547078333002501507394586417497738183750160221119460005782190005613172909752479919577077777109692317076860974486416448238133100480260587471734450514120581170646776129689342045606197930399167105208319630359534736054817047544547684735138266169165015252595784419624469508497348881439371588792383471674529701157896893793879634125132432334143082992762740860852716760320632044358802727264870522356562308726424438035121846462150669095841903080276262366624772152419025268927686212202627539176387798044189011080276542167876956127932664419422367054059662028960790091426258822735699047872676569516630007766590115427291961943489253825009135227119359274910507867629852209539942316034422105541861636231885598496943449123576566316350078468567052817877779535011759720698842095631764849101409066262292541402678327486239704659247572097482162215515440020302179019445730759161189462573562238593898426855880437070598617258794196143786877906063060405081580990216283461861890212046090389036482695765840249078470599124414662201172135473866474704523995664149580131662044587998662885441999206211096249946624627561016371841111944577383573127153216568624716075793301291098678356091478354872913511254914194959044735492610951000830408127152040743664462961487219637062196656488670974346272098773860966783000682348166614109406121501473498999789979502273383670779793034383215860670855360467598479665099293298819273104471718863361505949874214933401703364918010723535389641491348142035139647251051602523356581548140235097833533416565170691647950453811896601385462408918582248789974364390959660623729406761341425836061884317075309926551173880830995312480044764295447217082559882458534488346636617635816150612998635009533462137162428217582975615881138044160288733286934230944778631716334939570390690073746741755893573158139591193031882597437740656845665988812334512555816742708377280490076360404460820608997763030559930813773459348028853420116722426359190359614805626889349413738007782127108191284301901830794114240284244487123586907544783029545083969260286056529557517944536885944950794996842089577191867511474407484746665530966683565025984715220194670356743727775405272236867966916121763049717902390704005467134007484332684296060450653279926958164607819091578296294592897426750875161925364370256619315701411634920944988211072129180632977653052425065707737666884219894865288144425380918660795791477688011926607308179481544828401106693634229100032579862078131070945740470382908997050584032402542112398446042526404194475269760100332338196542294971261580775145256574330627679614343446147187533735528153415150553333975678422948915981043718266921013703168463538593596000664748208910334477138656798655706683782381583468760599931645754153050522987631904307053851203483511978016322686503876395738890027770403538986917459684823027910359524599992031098411731074140850839250559489699301605723072187671289676538709134788382582196675606335513917736313217452852669529893524036807452452380589353588610656072431255945683547162810185396344986911007039358072163365996742468403769397714885883354175782257541287646554972076493192667130507579843292357664568248895317533025123594886789236762066050680539622261333411622717927196820907024530544355288711913044064866348402264123730491726359973687894197949677516560847722186018718484177871183013886527331551695702509289290010099139349971211093076391623977788155723081905360947530675387948595247973658292015368730804970394220789073738550053503472111600057398887663944817237666293738098851456639593240183472199678570561818200717874780843414856085274149884449486928723115250716034101299095650836510814563888606501921842714329268415182930344315505466766699818007136820996597745705757351183858228137703994468890267518294905409942292379869517807731261025082652280565002140139835626255830483304281179657804832212223009540352413906416791158700261866375853009687160977391180135869772338612399415887089294629181715353963494751643366778460687268835912345278533426688679147758219817088323048477502185110487154412672661733759550361616967996101326910308267849100306081813179581821808956154202077010933589835708255468469870235206994743405271190430885890283922831098363522093061465795767533204756396764948966877960361893041906130108095625220357611653441672771523544598581959657388369181149346390344175019830722069118831948395793087611772970113600714955325443497558370592292657758023911071566018742313414617285766535168215638009616516785594491432825304593285545611324868092215647678402759148594499988595277622586191164193708401383522184921123496515006452638570903079964665401517662470962317715551424545031058411266576995558964413822265566203080782676946904872200924478010605356716433801788071225567234976342993595513633590905694001228322835035685978206263284779499015953671611252726635920331641897448763315856633443828680100079142554977797271270375516500381134387329466438172173984329635276982810626394677606340910403982611148375327706229008899663662966563520324181905824514244324901769429563835357183141044693938400521231883455232984857386119221685074341791875184440529642811324081839405511416497063466261686835840548685532823632596048878152289594790828407106385115261961185914257530359947821213200993351032046433409072207844107767218402702395768218551584908296105533689755626102185878776436641729288680809867103883655483839765571257282282111838617558429768920013062599541875629408594612712019631120918675416544680992303366812293515798872648280976548503401887484405626228562807165363295511535127398687832250549958677284631026776885028479613516942554919321030610262720795855978550097491776119692662376445914717616918650612103092180193757298898285608736140064982529586667728023016157614701575783988664949560897117371086699910595024800804013174950408428772512109118342557843694462458974578769544696091721677297710237503014738163764392129714182718723804822870987128051447542162430994860217475012946264209931640360913408174646584903499528651113336532536400247631624528299934069164051441360722068472650576661691072892511231131849312982344357779815022145109754756152406717576117629157509530183723495814256677871523117389257045067281229414064943183931471588892790430547840106152023762218089426454705848822990281117590122406385473807271045167746802380155955596446862397861680736919090877965292633141861748659526351341591242046878411485879294431979471619503826466649814913034875928685467982122963690059262055571119430144527782710961356980867838007426828845130461559899988640315797299371329863006906033926729447091339549265290128580748748450828887235079253656151382874903929639589592479189823080684353312947570072196531853171563734780934423227544439866504034926171767011777452796810932352902145709775050057557158164002739752859915864659748158673316254921391685098223832385023569554629545046346096372988085396834752185662312566083773982111261954016745432710649677276610949235995809869303526301380010829285798393029340287267640993892518238565852911873218242972716700247811625320370584823665951884692957122213406576943430664281997664052317434976959471506262807367163017488008783025628986880251635052671943403340963534187340573095789322868833016221531965048268173035944840697641748598493531352891722312764669408628488230866670193522456395673972604099379038629454122428398823425660230521831287442035916056926053218327883219602739971599034498959049921885026582617144830890643810694187445277850406180091313705591750950962067760937026868156474142236140443797835426480270304978112133498206287572779572842945701891276153428217982076544399604359537670096402732810461636957246648140035143245671398627744708255174453042295063919491970961904371436560504706527047379093098658563034105471219869083110493173921669126005266173384236731661172128965694038168304786037239789391134799101398779660779756873771816707929496053589426817259842568251830465806009918399691553631930751200981720072791916496479748932984772504818631241135385751708498370246439349040358465943661781307891855209020431159419781972432348459416145336222466434895050271876385037775994968774120195811354364263195140430175390943450095563755893168352887861995067292995545124976090541751750239796003008440204769748058948776693723585554549250297632221659715329721827438416895959622692506295773816089538006119055934093730064330005381217099626595323880839336052191644739369673386931708095776021461097547554505484027628842677747415861229349725072133398933427086934944071469859582406913660031733192174606776649598697401690496522693081132296918060497676505479590022266343902359883922129983338499330592625446921801103691094288682848801174010742919611270753651342276719048155659462214623154431894267153631806027048234750614127832599857230857501423520937844693231509151355941657423150334143707159326692951206549710155761173357320022548781572803114452615045164126583024549459527394600599948191787137255702589633434546863489284280102889994860336012771957024310762016300710053508531976551637089016301260044306039968668402307514953783629702964678208151860893770737628793632667588924867706985726782866463120283342986866940141329780671988409631111391443362210203517502480456947221798814240710103046250136049877108287218156949915465921135790342328636846831919933248357270012516160735077368484045746619854922088493933606706347220213476277278432934359165804459251606076141201206967699060000656087178776902035507002175468467181736880669744513901724842575285002766347586248682239721004095923757946372552102350636628900232906018417338461793784236328373903098625817108245847326990914328291143749717611579430881695011344412302373143831824044388213922457530632213824211011279414807694996847246397825620459158485740092136861974551618297766749955066407701148549936078903951344597674462651791627890523878118655059822936107235454267130664274899306026357700432021560417422119744857831296729743065416241649816205032837467541831392916157960400028380881915422216353922575165735932912156790694183133625868618977383377917442216392202501031213837712129991208065674368185282559584522778162648606613443859682477752439289276260672931478797507779953567274565140321796809695984728388610611039348681411373066282933589211536860257274970473094872234093138058731532127203123109992684935736062768853967755438373154132980811044427353581393411164061667491159403703914061172491549982123720527567862658289948729047701095727693991623486872257024794192840470312799865051163993116601035901223812500977543723464865329020568362198891959106649878342079540782549053157153088315817624127445501475612691830601446376831029576626117451579412763461581777867396087930350738520935598893782753241142845305946352076426427142927541907436067352545883365141999549522442498484769030377446511573532462605007868260312140769440225293012816000507204604407769239794103827111241226014369018864920387339229568141116138122061778871142041546891395662795956143505857057218403628104867283751655522260031111355903305273808626233641912414863454354221562852809807176808889460823344661047681368071147989223241367331954067480083889629295307488091573460896326665734356157468901999229976320230573807158213344007585805370711682436997995588751324974499938641135140151835134863163669005681391006115370103386697246531186889066043005829026224977055092027724384452207069558963580516771856886576908845016334840236807180062855281442453019724162711751992235060613288503453425176783991931890000054640099557076123407519460748301872034914363771206126356983042913941586912855034740966397844795956791601622956204842342157653072340946027511592720373157849288244064249708818288171738805065800123501641529736122283555751448071993390515583098566162332481940306809466613898291312923509080419800983073990651681065595641689196307264287255189039939178393055919248995651125520340082090232573940014148988997253840195759165899227600379108026231545030069721345297501894500541794410825776494140498405139436477672203890243034981793140902659212312292235269975496080127126663984874833298678655925503695087267265468396362219038858976119062193191341408729340553400105921002949269771136915650293457378827700045510222055043157130317296332149817162081904580991836127470429765593586404372694519718563448888988431078137904220673094220052409928435382972988037311980640215413944510092222146451010823143090759598514173717611067951588407067366755766129937182110254667020422129383518284704896767037476284920995566080435560038262375448378012175044792868390896157038810263965910859235096453501018219501225425163497516211197218285090864620133420965341872376562458533819027666331129184408523220450345271091792898653078567904017736026397200283719478470534062615731698829219798509632747449278629250371187682612102049405163977323697717429551193544775911340352061229450246383497565123262983416509472346986024051574080595197816320206506059123285271768581622435126165340691043552769652886288818138962116063501632297269574755175193239324300822396720904258976591249584228022793846594828068354980397261468409200545139270821901188658675761888364613360648034960878115707015553502618575780356759522569496886851285061562831197642261773467282428698856448989519457935518455791925860821769993191186591043830345610691179808248840785064326296751476520126775412521795233332060524998619842482510563836187884333891187497659648938975914635784686884811397014856900674690670082036426927165183724277173815051109686854188786681443260183532861703906954435009028720216563245223969598740796549524944455085523261784787384219154448612737410690018024419824740785278949659658870244171949990295687477590050091910556625708838047656369522811238862422261763814669958858485791775228740511669006655903496742050806867921739041408821933728042520622036006130514524280892224846209425723557328591876670393144073916129121104724603914068121672296218102399641644877645340325602291813074523598835809306983576474506425519851290765502194269588401131368451047121326114935001405937863779477370888560043188472201476229351213592941759290537598224018910861192536145887198254924733745082854841237856866884643847176220912152349123551160412898388281218158355268291782418517698485852955440460112145284783065315260032385400563268083896849307344045437191634771236085240679810033426077443946336092844731443893491539682018793958391601754544012839259182561922825280854603961695185637621931223260771787195642666043725356434234282666812083906804665811797777655458035357696951289067034213899813043026625475104037911806388217038941838421199915890159487856994946637311393332833299351294854412395360810200674924664270779524602220139292694686919401489180617140687822862928292081823119961544975656637528077111885625081002569936045952390411805504675997799470328926120418192121229739609318950391351573052317629871290552030787792245141050394735893802075232667882002902546489146269605924444846986930988736938636652512602483859669490428109724771987246285811274753438648999704417987023594435659481408718765964311093172341219608748962553130509297634162014451703494247108331630643622005205203254033009445246155324619163304301010276567723591360896851541336385759195164964918865178566637794997415609673803585285914644922138222352261806955495752994162750904249070582464964731456281609576519434271777584663967065060040095155722818360115741270658758896620913069713336656736534403099469614711220768901082090813450795150903240635067284508886698302978256332619875602361370734812201177290062777128625443329370873060946328181567545873976890782547006133276261222371545372039339426306924500640428224274906018813285863680588812909733841857501911876580107589464437183631127514913159296779770910137428268567295498958132354913480038793628535277465598375563046383948216765598757401959375119917153550664767312059459893538717953471500394347767065103120128800639621045654593192022287212190035305595257860118202864324399769015931777817150993355535274312373248121057962873303444048489171539528189123120840014224602079075672968772209921988787329993073790423630516482408446155976856168482865301628830428522337233566409390585872992410866916220409706059683290080814448642939682498555173926980473093420823270970720300112399550658096064741724382857291506342419487174860896834088182688088197333346829269247419126986862285034706342716184399676530949834526823526171251755589067440407408330494690300006932027602334279886371201192869645147626337104832734428637375169624420977542174501916760314540343529970988325171916627666456399032300681635018438633039608317507054725692659944635305105694069639751453648187338288332901937901992263221497740474113385342868703987669932055347753390720216904972860970044281967061720362919376935671993333314658590837206106620106725382348902146785688336795543676100418337934350733089391283286834039970142978819672904775197370638695122254522393662875428484150165411584426308404895314021503791033305147509365525056800740587756806695165852491474272723467711790701302532330166093819269257703377569694471683868036578097955137543700391001208854242716080458361658201702322628768428698328855489376477825094822058532409999751270680895883942126883270759064822902846710018599844395722456149395075292569009688406010460985236229265517775628598578542510957690670102769776815648209771862147685335658992457131940968293413892630211711813748748746287169218870858192711496223078448284955195066394948096164935270454515028972255217176715057897327026514961290282062608449091155585859104526998187113760677791636262701630483069300528213865284693296356697295397716948124112812714588030001827377978929650999460881492227890983425489876483630910250960558279499562443215545148705026826211890935077614671309930289729685017990972124604235664538669013564553839876104307131677777779546082475106495411938376720915824906880376744933080569945888743550373128912120433804144105548071248472613868469087425315375103863512901176480984394793347329287520287436034363126510034446498266750301293934299226154102676784819383328163791047528353293966462986687646539161482810388611386416173009196915815454337535207705767651553936345341633047981690285148919902568233996636715133956716460019860401215428239475613852700867819889908369052002414918742265888589565069071549582354435637090967989036956747104066805172229053688654255304652996447090013526102497893286470918141217676698830843129302547548341105570087027195820867517556791117156028012036192358194174921988136407267455207174434155766366467683679639458808391300192614273439207253351008172709761681336900553757805805664681604789952727617879138384313429527059415652280348567422562165620603540620524591894178144357979575502859604853409086686436713896946872271042435207583966523182917838688477032407922695588455137290985027537651855840550699906091805519469360474394424359101520184928850823902804289385625104307015273516093404614970206328875502878650897393101223820245102335988561121552432421826300990082214766326129054219747583626313023048295971520635295355583491508816300253892336275980070403601726949517273278070087893385169275268083553276616466243291746611307790630829738982485527555564160159948067795277679288378131675070297434881902551531631335060172694891267504453250177089794731970406085179239355426381850522749306741236992199380658588511724547636233447646573360542168568344462232044646228045089781107367880455353938438646542998299616847312651057859378544198783296217995189595634240889235024610010206002600233134359518100357150135348552587479426291246676253507527518873965133786564621383887309645328629031247025941666561781303995792718948702512635201225923134329234093586908831262674185247037718997772245790134270556519418748161682904847328237841881353525938287191637578534489003147861537165063303358031563502371875340467580254072872849226659659534771769236115064687631197795665623572167061393412619927349994255875286983923113145675667591290204621358277549358903511460605063580986852185635589394986864012841070770097918236754000982236305753934478158472238777761529374818375064505748083814887349620483120664551710491176520698196149897532288959092857422142993485797391206225464967887385517072985264718031575197644443743473095870648208371358023084773009132184406272889639528422268155323405008854060439672856331871803085075097541808888201080339678052142486880517835016034219098544876223390583355193250624669990594384617300540391318303180764062944060300541438644758127991292825708888361727478188578468253093676408298451238694090007515781329325104447678355560919890237162627092694796816171036321419512475039372892590182352589303633763737454278057454166703308634113701760742415734087069547813927216337260775049479370280109982143266684915771025304426446333731667346956449263715850811588548454151241034946930837682928162701481828066531857458427758002904913582148445332297499999583491071558881139539283735697779855608216461097533820409400291289955415684087691349819486535132855055762022334515794341734677730802970683863796934000430357069131471885799111874824075004984877400212024437316374697775535842162368635589514670853408003872680684606239661564945128822221334726978639077637493146064981331688533212090178632010957587128472512598820655019366750016737897151090402531864390132442774810917103474693989414977758935064751576695055082038727732128674291041356441923723863866936335472784621831688388783013037731507820310324997680224627404794810690450068306454378306547272151257614173018075381547731561236244123316262830648153440435235477942592137328461584013759195824527491058920245107658831061999097901289528997083897390764648017726274192005683116985076030515627619162392205771245094034224185767119374732505815314652994744400288731540093722573750246740129044511404633054082038379701194472341614893101694695229527785545220698590401433855144663037849884350232388642809442092655536921156191626747701587986730638024882327281584264360799912777036679925007265972986853610934021385322173716232505634821339935535809052323823690811705088407473954187262492179343950505116134951353496699455907364109965766600103131885690228489192694158022387411103300319214479711896790363437106779718147023531718883494454814763195763166044511838557833334295558172115112156337985984078028415774678222016702688582524712010602187237455992350414291775167807850037227964743270022775777032998551821408935980080705799529171929401127853831192753722238757216639437172007393070219118238156164892244696931429603049681123526140724488440866390993644600617632865879674531503853729688636637933437605953523624516985092960952590119717940525364930158707768466876894548682463735288251353371949011128932404859886920722691523246376617929127281646933854512713465323331550072884340326454663765393074645636955944012611477898235941511245466838258319775104233092384988979082449829431628368362466221340538284207270186986966253253751355503345111240687527473817807363065877512011038054117659670280423912336590464591917491657739147864713406761723693176073076659455332938548047738208525844680623371525922557951215833906348403349845633426196913473005706601137124846774395214903929148019816676945314719379160812469934004238831133505190176545623928953089261702514734523853323087381951662981372261644985555801250534220012628458380466859751681599324699740221440260687557087218275140197879047878788610472551172890892887150423458585050627099073192432896433132118125078096832466209470617266011267565348258422203860340977486305308390084319045929152477105022073981266238363079909017374575436074028391913169141304623379555763205624324432932408277247466812846844281905883491646152393875707241017183515717748703240903675826284903485532218818049830722942840953968185232833305687483689057491570506997012228952989871171884900999318598448243196870291660432007138649067613020247071131240553746414359494143618687689728485289050965949689080316764840167861293521608105600720383078572004146040530521885767675642887860475452216533176904595925661264333650287699830514822716047945955577376024412781419398878604616479984520996354993813680478172563229515465154446697302268951343733358022394623077671577323389782437388183315103150652382279242941774163404143663614530986854147018717422806835710936195763005314603660558116902669559788195852038127980351981324920304191310980331965075285135983672414595729019135103143142616524580922623515157899012408861644454222278125408980250103071836217280268458206020234757704092320543357346244522143340954129263059691485951744852085578417472760434231746592200172461911785759249699287977914009755437047860950221305906334181134701522771730924505135397482133440700224523023926382784124997883700740132863957665640784111627295851213283063990316422428790516333677221677552879206729973033847008409903476367438548636340100544761838304054906184664771383100696814289941219774980607358222496160481483409896798572048364099039428075208338189896606816018092234958927479866915227984758740656782595058924827903801281473390087025244915713014657272998402881395555202208171869086024183482086365438818023792690090437677986223486368378217274020220094083228394249184352873279056918459140617625569467574292717881413596051909424982569856813072047906873903804345945943460640793868817457644022529632816001879569988419809669327464575458615071155383879280997704607594462743637247588736922204891959484080261502706949756575077712293986404464255058266626438472932782360214490149079681183576098610610300744428565422995853099075154696702333386477097361558281424004819075830740181348136410774113601529059759774135210843754672616943357336549012610547822627984278353125178209857192333402876314131079528423568834740501291251606177443861421849766642843462463107900950858786772346205393315075748928610504195981825078817361431069157653669213767599018180152544122625734732865459741216708926343212842420788837038249138573378889598949519469477505696524228273297207531705011803634077025798147491248919729294586221674144120027426890568018777663743580333264581803891098301776293332704402194854706484208365422785497257910026621943162243725006801275594011699581743023115285147062866527251088898321119131888813018496524316101986081595426466381330843153648192634837560316842604002905406648634526342177310858394977010201074531463393066944844409480435164185632746179899661720266320541012389881324101936411503734881577299780445781842964722102249068483761374463625150977848565472743008492392110335232297856992049699517934737830808881618559914900030124588599848838867960383179573832598778847371686110696693768157262575200782391070614565897307673855128797097196552945018368831478355774118848202791323207937524826412880343170394132880308213495600862432754749067698565026177734123756384123587908415387878360590555979865497753367606236495074131103932551693209819525756569527297830276380477939686219615421445951196043864623008082614207468398899851739930803593589341381586422055695238428325518654220937750332230489809194271226787344904947641038522094714768664110676113094425987482850657301184632781475415014737520814214117786059799765252083087029995777844625624043159165672782368780014092958720734884853432849769373877038240360168408415428645105016452559384785778180993178222001513072971662502315357649543858577323097409892199459692489923763035267230690826070618992814189798270102129349548158051641410805024776991383473229786276467660947903482792869985812502649076162854653346228402973860364371322104260695441656627944878500412809577179365551581076347291335130825950476649789266251635883145517721120473292462781954244958032502421064431491274921413473029334145758775089123167840142889989176376956188899962140278561959423971792023345683101003249905790892644980445412387299780902190310842043438918660583591539480415182995984038790822860766371595099080044845916555385086947167083652154370205686360841900350568392717321037777499130057775045071392628149736219089221841402696878835817396067374308793133310634868033399265474119064254636388777716570407117368573872760726272886254463699445165347765825584537287116094176254413246234364727183401893632590626167707917168817629509701490730994408152325311963741813495711043839340150184378792767584922546046698335290483768694073472338078027677711861033657804938125175975660588706581787124567988810271297780208552341673160433871498659101520608605469929951200782303857476683838974910118213325549986685091612027372706441447493716508122718134744164976103082360705393484072428426565417290846698766352412299481729383237920996980387627116150912802370840770897391109353337139166906255595048563925173192463792164454979195902890973260807569581459151832556499186491984678339825171462596653052794628692266347499286029373675728658789401426274867017603876523989080052170154599085146171377834383678109972122810994620028613432861196748627230410542912422587156786557109822094169888557687360859010018356640891839318542213021522795680005577885750454629347569986297788123322531926645056921026290042606323448375841538727137121438424157615542786409756712061515706099144789685776150677448104650738071512837805237205356032756676929065965612392625505802699064716900971497954716422973959259373150170722722479467671106394402816380259005560634748040036996613377437461482643800617287251692921673867214474844144225317472495430772814753599337238145003864751634334750435278512763997263364886242565012864761134304184297226569287602134001240521599148342904550935945505308559528993829151126811657316152490770387431707063692627540509208586175974227817726614707461370929032022013232035264365312648658820968598888783670760286738163054982257086864357097052533129747725193995159779867557039941964827099014509595608089688507052445926531441402876986420238782874359862822694951802390024704024115394196472116055887960746587967120260892869493688676715672105788487114661560197258537540061672824146980219031994970418712413007638284553979575939438344564029295953477064834222621158274118445825207566401079024430816856651804968889204778995933239107832542118166393197678341671143685812435472090680779674946981775829732802320239210400623864927141432506149756183994791414791715509996601125449699648350309190275338078279047156420336843068658838611191380608541335080868301416966853441141411951971923806562600828339668865436867686296476826165931511431874477327009277070783483192203946679985699175192956920097576420689510582707755789126590948772360541384951400034214097859458316167018953836769466094088946456767065028381593182028474922677603436836660013662823875183662424937506236291992997156767004188528628675897745436440821512146409992530159116365404059508502823675741798051896675807560696645103896488940095420250516962382141784936960393939352930535608519279825238440174321940507345802845897784107956149651612821779811387406235228693675204710801269365773223532197099539089621974260516931242345908101964602973036410490446801597786915121272449364400621025389569670074351176382126645754492656591014552634645137972860688027097966614969603408968637739841555491975019515408533749645703840627256050377793060305123747558862955515584740778780938863629679300801813405816484257651415939359099680632978886482199658511992932129154264673681811807883977558932440229100977405220522843068752823519270068156454808280353763160608967996520781772722593841900476247817717178524589993119984599425628439706312463914311476171530180912459093094996864828946650733058913875232973655051449332556095040973728487247103327354447885652676320879262143918157823189836626221434771746956586359303526884593684941046258870466326405228584478626328323587631407673253314583498373464682842009989327474185449304448585598187568551129990992352319507624727607004464989697619638088541529746107700175597167829355686455424364236453095596135284117625214755757451742303578851318999222062846773534291752946582709094606039505633422601189053402800187886231833656197123604880612041066146225953654191604584837955582611243336675957849295014126332569648682443177336473144590465720104324293038538250277673798851032284775630918463372626688326958506244388530030212477757168893819171348173696417238578259409441695141582252543292880038517487609550579690106435992546930973332150301604271016266943164775246201262630659481423931615269865439844104487077324563947305837957672496541581215240403105271465148625450518904689776563225435900716774973616470014713798127981636067389769899842392893949606857209227274022911106438247740458975241917020994967253574043025857698751937461369766582248066953302972676739943949471255289644702458647263180999457201179605787694192804618474629219322736390192800182065375077039663171527565542129052649517106960415935838991331455922727284966369816374085153792734409884655465393533228988429594553819382458184003051886990744840813349636314345275681149509089393127051747954640829546516883514284435802509842682545180320416080939342469460428430393541417571817474398497024052924890826817754612615899341091571529164716835981484383446432505344307122912364518673323276990600635877991901885514229287143409322112133753984431290104630397740605124253053349920777376142411251623771307560555304635195493800704901279039999933313897674727775687113163759438283482674353301263637827720857234265755337535666507741157408403254096019574993092840173259776308733678708431021414786913207212405098774266175035081285692499219634498582563960702236312870008612294179540340329961371019533878132900769136292914137256772446207484865261997761243557880248506241221819244230760487916790331598646894992912031154693766367521065970185990110571601503289832326066234586662557815322891916596007225508449557040509547378512041707938501498454306914745407713589082290780335050099085435527855046309866005400669245438859139688752933620743668580016286211217890563434759526787866083108915226665953647891769373367644867009963511284165507597989691190731613674661730641766334568259803006824986463624936738386464618292768601890893824099684116537768673386370014693728288404421266912604250636632211631544258599547789776862839962224192976506874213884306642311313038726940193661444297238911105054880518670461794498299216039305491416935920179033748804393534009653231263685187504905029530957681345562697957937808049472307018977695438442524959495153528586675091908340282050353524118302349599738534099448776755390838172991115958179590230306230762117059655021095817821531304854774276596518765554037247437195312102185598621672073121806993368761916256352007046135756496785931005148910512641528731824863138362232262091065994081203616621361733962146344183992480261188995752227018318243701057324082647579743983179135862456520013995715160807310640360472624921317441582869543055331257764618251563009832615227727127510833763034395008306106913548405626445480253056427009403497734979673227804831336358913104958224097706203633154012239586949661134827855381460296416401691352248091496666060750262356940204179207561496919481112496889286993496969653675801718077922056887340838472096582431716231800385114290620103638505509298291074453976276683593639429503310447470505752619678902820033355546685507945769932299272474818999131746953929295971667918294851746706847784021994911849050107122523547265252562056539722215659416723166557953091222163447988523410886457196382779712757193520251544369922263873946185052302359929214965133608448290883509779713920692532213874984709091763492796793519500360753504701565207592808160984825465697119581555456743024495830418461916581301056745859908099102171290093104341851221959805990468536689638529669732208523507289328954148809098671811949590866531648901488147969778928396535992611870248743844962250931748650682071919948490703016128382523564754498373771651198829923318439044480407172516397409973225986228729754917390246459163913815814583381102268669055751644020639498096560730780413746610060171734185213879249671917616747532017648856525193983600332662969973412167416709970014565859265071091834381524946270435837915706773291194403690639683836325522763131655058375999241906750183996118896125876867763435406329875549801568160639284126953997067567485797486136890085132487577286492943353094251055812296024383289557749217884612274718940408403670828793401624083731185771982850381211732350972869917889594702545553493575685345889224094124849857201426160863892577950110786517575374925149276426298368890944803680249642175788335182238868401372247005655779724918139362126399032994843104197713622405928051136433650299945233538649347555258950446296428656200502626556020977684435144192911778711738658836333714374095359790556058628934356969214572389328997166577676573740189553363986526067239738343280700999816698392586946142959410475059436545773147743303940449502093549704143224417026388863303787755465496654319611088280642495601792850459924937134280295568591630565542868557031462391920743372663008739044178947315820927640281604604405928816403831468016790236278613989134382353458370729469678065822974426990963038394574364000302342489423054066913400022323473121390676521198283966837914292837861649833280997784773315495793044649783989124838530176124953605834385299937804543126399481665317544863420643699211955879247186374276652189566269850573432189551116135880797457751520021776923372111573331022531384761462587525188230602517059980512475828748783293259260046144870862598026411714775914620399019734746967429481519264613021307236581774259121549722799886595148904816244508031389722070014458458833167499514531566836050204415166762880038231073052485304369556128429979220222903740440565619755936824471358009054190484171736247073432536599061507075644913028698717854038532910738910611033830008631120880175094253737438188763254327348605937074638916902116246463802793373869365384096068746167091989089600937482776667686651513989025607320767616839948730080334921022006967146788909555632267619814243032662685626156219350228328945071620236530809926457837022082418731667835856147924158260011080934874602834888557668104852399556239315121657133633106901596645574170164111683017646262490161872368914222660537442046474280499200388909141587154172868210379242326019297765389603816418945014347495888686869649135520025557319755102416969790697518860630656332376176487880232190611268808885642197565518058319239539882781187309211881530751341784626331795025157857267196639330041392466714338346013754076580682015332060889723245372858053368517150147397743786070767711708730628453804398318117133466396640461394913320013769298954136226406254585999698997966078996392275149916631903409165683826905406346214680227644582646541123874541142912354533391267297204812185818961706636044029091679207172966255640167359127417921241821130467900738230211971689137286600018079177356835287224524071066596983780655486028800859889574835761702597334579608247316033906456030665977168652587599882026298767158159171177812706335365073874213908271177852455416545817042139079904755264317044146539809723302895362164018907727326312610079702563918474122881878426549625246476040872034816839826030339062668055918717392372250638184930661148175466502216462680163690230819300660303245570466137740751547329556895922537153124374040497326281938097839581427269459843272637114938407266346905398837030303585773452928862694395707838950770992139364417591878406454407928221429111766694207858002908851023032686477580735064290041563549402623087073812529876987286087373022125231553708296271957757647646944661075685608982920191482923415878958884104678465595235268333356915787017729612237249078250955291657143668869688319599522851355626508545905612874487624884262117834145244407393686709016210189982495645695273538240762031775158078708533226859204783445838675437587130017075987935471382851065780743986145078575493978223501086908159087667686844555366118094766760816120549057464372274099734111823938590735821117524837895219900311774605810705320068362837360004227533155652756489380903996187411657114440211745603205620875484932386346961915230249712990684600899114071346591229202204545581275506122026265843273570012545998306114700354139950029974717367186792843443491161155897636421390830330901165530648012285985725747077136064330176854312061227997738060353184116990056682808077353722631458736533453463703515444023075479424824049503725030043799406321355656230615444046622393610858550406010647996103867061063173211905983829193631400165486537978650123991286251070786683244038772397510875405505392804191743411746083489392839575481205617920889472388503322492219891270481328769733084374061567602462946306265007620571211136584024216224187277099552737413714783232543605418486663435134856663815656948210302061649620132967217942815716429623174354143653517782526943800166352784324699119960664768395373270873961191004702067093993799058913888131855110927898119020215125104637239731872500972316589428461915523536052613972856138268099138457058410619506942006912925087883704352736368876065887251664750090618597771194400611959346073430705247172007600798863033446519375936532945612136731884916166347069302295149413539225290792142511522015322744718213119430790249924363798959690892746232960023821397279998495165201267375040495586012839907670491911960756975517803899560018921728794782110631707595631433990889167978009801239679537284965917134958557989658299945388564550446924811635189834282306286594768826174382353478056697498224206191554294988282027796424248694571440740573321736501499195227517348245956808465304807395316495787885784447115327584400886186888318998484450442928565411708707715011841291786723198152879628276248273243086237696710569631251237856328313743849727127062267613053031296229173461925639671972166152005562455899656054079695296448298274987448461527599852967008865896341319255823352497577444353036375183709003809968797733567531626515221477080648988732278605758292048334565846951186744275675263695600214795689669278644239624674440226223306009405301040305134659461115441660153281587154331288169183687936278094921513312371969306037649069278363050019051769865387400487529758364934408109188802781147031268595845286200708125665506367349967546833060325092772994296034638316047967927749452404612499536228395997958990934896350443072827472582945708679522447181208260460723841389101054442462135047930332907972771849563804371067762806822361441881073737784732233698440216817528374851685244511660407124640235325446479952905932541493436393073869273178941946268380738231824525344558707124540339169713270938037524277100475980554228230246869819415927605894104093665303221811242699376223955001918370298516857443898862454515559157508712289202850369556366703612689954893696695882800377124014615688879099661389851873005669576297932958738401705520913655902254162425918333061110821837819615458893170211765165186782265468489316516454547652843559145250140678007376238518477655864022824553584258097330449017326473211641402489116637502780292624654819838338429236839938133297910458076029403885519409549581932362882604411828599707484192397352676008021101363495801912799863624302643247715072797982979506139827992586093951159216479299109289779008194434781367573705020563454922393284848544095759903604210818799954705454389210696964456274267918355116518644464939997235047039095053041749402937117790820270215969290125951552282674554619705479501689454849802124674159716856423927990103555497854957370090065553701310297695050794364965604375951909075487759910993144967394322315362729419704580114715266161188705302180493790185280480482598870069429412124670862229574616138238447660085334823023764818368061569310759507685220815675042672106178114959479263423043628569465939253250156461231063312589885780447397928136651584404994986078666916482522160052285398663909810032458087434468570870042852737378576926147945599067561266302523557211602497587824838489750069640347719174768442585664051555323755071139799675697688798205120280240377386160624027516342626167960183629015412656012326784958688619116039520336085181979463588527607300257045849049002682766373151454309922549475995371012473159232256387983991661651730634468255824721381013124954814716564961947631207265073636860305211485249850359327347873637073608073932409510306973497540366698313347346649763861353114537345005596800093502763387853769179335552181565362538192558758433872470659303213949292056253333067711286607063957591164935989223171522909546078063842278646498536830765651645357284650305760926903221526230081871609355464694806062928039517159531554709315523050455229859503736023269706865113068760090927070607660325555793362171484709426632101441731666084175868151548663116215554717907492256026591172837537716941606441387976537967303644201924470845636730755045590535262958372006938688319437831721672422833914560439178317690838823639810773095987895175898230880658041831746787851193394034987749878805064004625607022623567781847356935418932874383283608568821763171828060229191140537976551310668047333095580725947373864623541153453072826931103278550140075271576720050108122232065818203694615705027825807312388591952565963924457456095525676488869096291845046762214061884055646902904334983383257178212286633594858662638270378273934053097120563916821458823152714386031779736765541572434813000671935149590484571207051593515070867723098521096521261214975643505266302721646333256071363189841965079045193460750931945991740791458987730310759893950912199707369737235450564874423263634126797389747931067817927857465560545139421811916360013801123332422417719706191776591482588183815363014387625704132772731389585923361242724062963070933842305024446428130362258274022370224978458853228498920753944964793429891000978613899515047508564049143306695192656458806780378013259863347949458231498413315891104556348766961370761391680491491189231510168183245743158870332854342674509512666885603696660797910766112286635682339608416198963682251442226249811203060065366535897145631549030801711852775188655130742800639812858945843936730055155913151750743879641717523635899635210604506973510652283467025595813676094796715051312362801620539392970939171750343584372881073647835668775128208559191535200430639742517003873825041062727096930588788738147362548150525240200949921294087572526833866577880162310224396116389182337544820758332194671839003294531717584729663604561478164964751138726453732764574774078351924691855872060067896580117135979077938165208011651057966969832760010872060844975448552809466468679176185556653413222166205725905639381577961490039459930442647330674781053396078691723684715580329409425779999821255711853153585010261906664034230356944724828389201232100733667244817720355306275391139415541461998899828656789196417666169319101376551555797782771151577874438214430322046862599717606976934439078734965215416706337895975279509980858830174343997333994909017015839562039598691311427962823341460131035951065533616697476385900405074443682179173060834944558602664562839924883642150023856255412624989994420071034221503035141501758033518876580043462724014254286729088921060225134557899822001539840419511260515059228889141636310070643293997617678742166814790988507200430332381186747254480459309707240289685481645454847190064441863380728722146603005264798748145252725630553857225705421747635910210494363773193398564151849238484397900730091327618724783674402499356256767321791159119586178837997780100020463084684109618735676241236962958401699497387608520185501354035734711596177554793025700078580179417197188878995116127884312671268840710933318931487234206026299597616378466223968844365915764834312467337422234704847035592034324800761012487090298818593250836591504891537605921483633834786805879274715351623706964528399215387626295423405538220259592300790064312886964360657553668649291205115451666597463985039028873613636481654289602284848073281140484566186610666822928026617662117367712134052722461582750797506190700357242700911116084377049128720701416264456327659183321720153210442699350606867299658677053222285279225860985113537407908192675842015571608953435731882739614465101830633410385799927103413350821956110487980933386829842329593560692350133739768545212873601642626315270010595204615252248976658779893474222255890589419909544208786984668520385917109480639680152129980501862267224564797113356014274000805116922435924423458110890948211534872057267621889965005410685803743095373498147196070960008172544447115470516209587625289058066815326236987981043702449085168805813007232513319380922668075789473263352979686743189706245268214334186149518990052887568857691023889114515179909223690600029341765379483536231625438835731834080527227722987773794731355842308748407972983524930678870303862380167592173931774259895259348184678236707606701852372043300755348110428417662210818808501595731378482273531533337133498660753461392959309928859438204495261074703533037928880137673461856618518962320789513181669768215337092119814818109896536369160090759677252814516790777277338505176322529003517192406233231175795866611725230672908899575348636984151917681076387473299234074744739683074530986933210415496633851052771124647350268668957375945288935611169050707384638779448823300714684810102681905121233136565293597276644426950076726103700038516478052383934164803979737962745692387122324873633922215814730311221112190498665895277143909820222811941974586417627360955554271305684274106170407548212765881333232522508189149700432939560763330908871115651116421123671116826479022150181432154465670042291662659055583997319565645118303716980253429944277647208591034902474984064287807108588045115978628135208547602187299625410996405055105938948891569926090380148733440007557748124996813293623648905796791126274815497806048104237711583793522895265104933033904549754302105751694752622486619768925200022931220527841353005673447154592835692348611683259391809719666219866655835376265128113644135199300374498578657679292591526028852695495265348434931675311540409830126504237826038025221306949821356596913940189210699042725195101884015676917799073171061481118065465462616871326818873238772729928904196329110000799428326481116700850324696237939383439051773149610801308638711565138116859700955002778264396667442300668935909232915413326811482717326006406766189277136463168014899922507654557568001516158804968196040925562546926455111401570669573253787904106900850508469496073661490988495616874258360170542280785037329182445815748345648380752906580035191894892253880767934031122280742844171343033952171162457604917824853518015588736303615485230290275318522637667956826571461682810140449499498141519689264537329426070434259293841734652954675285183897921264790325816557808535914077394564983315090067285458442021164774311320262233063291514132039798279389827509885414786679670297373216970798467037333374149724037190499579320098763075594545187893278177429780368067228167080112416979866758351447243643265579497902690342436816349700330400927704790506226471109376080770723249474246002000673268888298148634461204905268665048598342975355199769311112571293358228546083678784564117671946831791456647804928385586709672398191860762448072618684133435105470858272827104244230896510639623823501831867419985585998536009317860169487394125912839553771720551881279333263203323171131776889712547730045988980373988507812980204410205792931420400699200337844598901354810913441363713881588102045786272605419827694726034254681684347448034411326973152013790552587295864854687830421466295595741837965658238356328117109977771852665637251400740343753264949781021924093702686406921574571063033554424090923955667552238375249643575172309725438679590947338257549796513004248554763503834607193376697677345852398987339202179800313624848653944825033368849123900115057899054295690829193339034707973005854601055310064000752090302235851105209594226552283019029375987432826142233432990403167040795412443804417756145900650565083592865009067499688007558572597719908385705730456960315725479030165667498191419482075965814059359044953685414418798671562360556802545697711587392668497899872372099993736790708924823239939283534328815924169177206912504823231776592290902137541790557549517996708840837144726219068637492710101832548149988105281339296847881574409251744914245627087991199580452720362337966254527156422074383760432644369291657207563876540003113622109525331045093144947113091344654580374466072422738264141908856578768265298144646533250881172046307396173981067455931215423001096204069210332236690200640144176368578788494333510974684013176181145018172585262869582403195669876484584738899297335658983172571205640335920626985512882925620862517239082005649179012065891400933218611128505726111286146877597482774404756799111493469073650503136724218312717791109337551806220658009864552378035593317333414621905093023177631209114773113680297394444842107127430528568741116680211511254041944469081748104908413817926249322060660256450414592855605728886501924424299494842488996703410211164194429322421684125455209383157595302172856555688440549554335874930246935401887475543015355529131060709484734189674137277744148602248605993333633157730799435305302074596677943962777082219282068314676617463970907482467397166111511400572594386578610306790608555222725711244255709560687310017763377807706838561572014314607837432590919735761507239916223771874560946527762045562640685809480023861502428043548083042855158373089844243948013187142690294174592406305525856843255272251320047108076416163598709343845558775615676509734296179029216479808608703057635366652153583267188930004867451173155703698582346201312517539570734888255017513533422537116623638933913543857313781054560472445755446624816640066081197705399897984279525395227426372328332064509608884533411837676097055207560804472073367430285175586470087559564879141480706820729953173214195203102705489509406054476685484141219442574675458402508445621851239624430611434255808158880384518423960179585828156256722625475359924608353801057230486551013702348822733327719196077835534340516204676111196188148364058822829382688851232504974243012478464722230056059621437216777215630803762219699698722089395396566471023320881519466334367182505194904176548489788177863714114981837513730083684202509298877077738696326480462889363346411423103915385820358551899129222577955967796605882516746867992181611144001168015989431546963515645247047780398694194146006790902039830321992761969108348892700596531421365785744142058341599677402808089115562130694174649906110957886213883765134070875428889747513780625432873114890486001346206171371232153373015288685082156552541320179507041101034682682494172361627692913540035864947148522885883439451903931333400058349865698920886225285857386825804638064166080283731466299994658582038803362819158725577064206403398707595085700269370159514871562770532472198001015218111475551798174773304061046280541397982091326305522628331365567043678054340724283407672437843588044596361999849745427629420198686374780452536238675201465062655763240103979037680176839243799887499780272061202237465615633662238779925615291713228415093896903452884484279006420692134189529572563227763625157859775565187417792546722337888290792302699456268569972849325162426073093005569620464466735298974541567362880952934521439169856333639083813857361402958786641947887409467683662984681912374212570888275913300612715005878929544541160974868709731113340928651882853189254215141100752948472195301303199502185335705112526445164899272428297528960885729486716958114254691779178295157425936631568005729767009309241014557805588748931371672494503310987672210546837120198453061054100288575509545126396205444018225263776199675679522449988487964223804017461252630635028776083414291058635592849994091244604843299068720867649818994073865365503661282138304152126906608485236985705705222068991226808577309375392711042240752518556873258094672262538181732195923299622551131131648614507271431421969601086114588162614172467820770654123666976420981578788907131265727728002329255535010289055803230814264819720396297897771477730982567519137211991592340180344317760122150829590830777500522683200731453797418968753067483801315788254901830850297439445558582096755130031060459976105598849781798064698127349781258076639855568564940097050378662625049147833260341559533246045295384604285205638645972571572638531514525451145440078333024762357332974739291025682517775675712740840705834473354273654076107633602688653372468540475072082266467180471165820753420337998226131179276793555875029934267355933465346470793465586409952395713746600328829807246168848344117682924971980973955018426540259423600771177796142605493937368176037999346761523406360274412078375195215947505584647243210388483575024854780684257416007027770997001534572683421869938191902625124723523363372349243061331830509828660945840097757096121703795292669161692842725045012418365445938405797367397689435464014428681573540353522402602960011483708947082989583239345509262611153800038816251813730401910982778623554428006260408132221495116268475816701706915000368949751383365933233125729783461401028743396984212772845689027316259460589415942259596052118926601709410096823938669214301450105522293618291144647133047345755873885294382596913064749215049659123525124535942120790293010725914690037637123485452077359823603469413802628503279738236305434472585881460913174894253998394010877280733036496136691570798782647390810355849403064643581860331797378305577176727017255871933899704862285526253983276287670746205121217410024491100251330482176706447192099423672158679675752139217306665561511306021133303275146832755064822007629585390280532486720471558448483115564265974932139759838794898911941514981915045286470186633238775827802311923017670516833815554891996880584211450246995477120041056765660261779550047350423119053405958675339952964933427551427988464246347796342123335812228024988109401347810568357695683236178100799818499999399393504165131248937870192287641026545570372199710094155295265953940083960310421361693357606732716915874963438045782893007557716557366856852687001132593544452467325888524679019372562762243103948857285073575633275757005858240221035119933603961402427902169427721085470174519877855956445161118944927279709528315226311248627007701931791453680324105276388438130385403528583174896862126296855976417246812474049512240477035715820423491476559098067111308455454264450780335972231771881664463032896601051895108065901839599106575006053293272855095450608418756549980819366071061697721240595132995593156159736392548532087300825572666839800141925768482910456675772031941851312247715284740862446481569683138908349816507693052736672914804519106614398243945572551459102351799151346607188456496427569290841048514016826831000199612266692864344375479156540760318222267069100233306881053438504518386000653446832790528823400448621042005736112882616123359315399090375773247274108320618456904252740373913870292181312427541377195547392612559767611114313252108909769209510006967581327693656529719697789571805911139970801276699960833153007556699733987532495865931192870049592148671946139265573134048256983101906377174539266140428410377534646088601979329937629323711117350726576380228416461568357236317232513144769797509181260066226741006900448361715066438614470406475856269717064783032998059773386004491365133950736456168569372716099621083507051642157114688566080803973963272159764314553887770312515686926166254701029740673111276979279465949786642414119786635866118086418471866917419512198332389695246623212561558574110977790998640257694521819711220332445031558642555678441173382277141399822282374122866469362090910655799127799007754655828351857468259899068763401372021032402972025141941656792225426930414220032994379674133279302432316118003314374710426807185629533022654866085442942085928496647348991587150712235498500924898055934318028144827104626668772264630263494764295729395659510949933745100631659869543236777642520376780270982667432376046933170619743216508496676894257875660977265718101986686919445141138277269092870169404867209263027539428162041950666942264389540687274711051010575740390863634664683110013480758814942561919441244750122796899398415194753812386446997501057295470402623255251504424027585411233722026068379391424824592929355866085361791767385388488780122932615428958033452897141730314423909843432900435195597180041197908454232000300326608906537352568884762218218577109573982042613003703537547232444010018040032996248180930604141445029205950498682144550596707541082793527998383476555884867021474342694635528548041763057743816245422373235882683552751233126719487897433236619394499098791574391878224330912004403562947879106337811268442380826658894655932927723692619796513103500771852609142428482093958176278200479827802592356769978996132736813298148388212126526672476667555947954216764715370969510523177916201472719396632661068118834892010160666844353963758040783835149291263540603355722225763854431394673067313657099357213829854554658879450474287152771537530293975003806234806011479114578603948897072278904176647431051515008633885948329193094891657735877355486081848651989127631611835691644276632108551938336379203861604170705119158813940873814314245415418487242520558451721410174195958170029127846324797825896696660806343211538166485736978258391516036923811984512665806409516256761209471572092676226748925100620765584744439696644332697479781398207618340267444202226047399768678561709719089927952528289725473389690942271682918949871598544256320478887216959527223792219403217895803438972405618080744591542944185607283056315114234446269628177298657824552111110031679626766794452916899821093992226529155127474058865651388550871999260978878983761981319210400130789798947298804603412402887252515577373403929946389495397960163953632614935882186176508442134316728752860172115093432347223252711596933881901742230547262487996221905918954134712967473970976900292224190107969673852394269906628762355062112380519017047451716452587236983867999849944105410395860019346697555991548531716692708009602587111445755850374006022031377715057697630277897141036049227435772798595883919472807443749343869297352800253556530129844706423892082159161044526653106672266365013790559151352890528715152472802527244210497585495454649779597391341483023655089227903164029476104298823918361917127207346945534360719366296096626373477658307422170705676562175997500645341156388847146087404015261793870292061280459912276579871302427262826675949851532282813412430050886211180727461287839191426099254650550684794308072608368844502714778101489408521029959189712320739367739468039029787462820529754356513321330623459905233018293647091943731672252013035706736300140023452781841748136763105045939085907231406653316984330025881926022091662044455444276330721334351167977706143446640129786899867127669310115756817343933303742663985134151303410027434289234276855995313789246976291507885152119147395225357586520682786625275340845474359669002762308257002484657754304410587342030219150240447018179516653139852532423976816746719742460859226222695205388931490047556720245465480010620580030145935007791528998107639902579051273887532155825760213695356380036322471487926177699507849633492361738117295911198889671374313289771977238115228924040304169451469945967231898673910432908984556965619742133275201428575125156609065812019697530331880445803900159319855878345867065326677236323249232402871633159483645309484274954355800578930846010291146755979823126574479325143061681823668796283265158292839835122885022378354108375831999364104788081107430011078637085298445177924719517409437730986237215555756487280071241626767247624631882008384205635202738728822300696821147170280869988633875353979407814974910330301463059079176954018534415780406842478901820416667644835687472255427122415699140251705575765685874324174841866656355788236301165037897351986051845249566525527324814284927139492945625014865838377157078699682544331892948894454462213064836900834779272676466729863924791245150746958254474684094360361379035150093776713835100409065315852688903922364106340115008894045401911849078554839859425582723301952885647045868882872115661935803604373069160899098747951475898507782099677105234417972186731315935748766436820636601286003032284147146313879733668533020566033007010886798456760568704412885213967228076789399254472526651184019080274302129445145832518434106465737181490530589472472282945363208502598836457353646775611530425049067042389992103435861641177495767628637764596841815390863410314096505215325121480620811844203662642482092607120766803834562043048539257667563087443297063938762214688002209358060797680468383842025010184458439933612558046340804327538211158135462506952614512014084580615725893411617734447638033523103218264960705703350646055107010268550764177739523585355165838891204977426955940695901639261531660025813582108525677695782624179811129387351347623160100415397721953499310126310652314842938758858350781513957866974134358139597258635154165612281035242653474856357362067151201981812285870747951177305231196040059316080315731669801164503477391734746303610632862604856271149199702068620569838567687280631917695608550546574321844541397419069953161792529394669524351469420406913141694415187165545628378245101247761791096333609349986213508553365203386323320810330462960813009161976181336250932261313537807778667015941888974615021233387692070379142632756982183311911901858919741432458653289704252815231390218560983858972947653369419656910753677042285325318738092436698055897609543467574549371779299773608275567003555807756980620072291726499598342809726896172481464330460867992459520708559752996170193525072009142746301492734678031317944926213663527683392643737869770308812660869288826848867461562341787497564038872286276501214580669221008611185395423370017116940908191519879198650664198667158821160707352003869344537098301700889447157391301193069693973274190808051534244880137267217734025987417071510974453207896305767567727029699453549436661538606652784626054123692290631596372225561190732103888337034608300567399278947936759599358792448879116173413695250974843010810726245455320706818682580504435457350169077993834001291470034711397328959601981355385739130367211652697955591461934522707507194710073296073457389558948042055536407425751530129256084361484472283966442027270096232066478448846691358640688363638867839938960447471496610629791797364580331799948055097845007747698874563590561299883664233595704138865308957857024281169375305464432896080049256475310279377359093058051346424878220067857921175237958830523457337600259675780643682959889807572375716865353454235324841226640996388312476675380108194637015864405972843550913712750297534416614393504770978524812992359515688506697907252719855185849460396276394300984333708481346609611505397235218558574369489228016495415415032246145297669940346854455664564386226169040362866853431367413513787838487293041882368236247222034450381256073471042759558695245318164155567307446783897176761583989540082494575383167537148539271541767502492178962656293835823818153913790129014491747010323880202948009453398208023534398173664574893927544998860986526061178096918976980970067525190596376570443482640736458703314348258201371393446813480522311285580595386899070944016594381672124969547708233497970434487890983210095688247330046531016693213363106642963373551014847361319735891603226084333154358699207276132442614242461338169068616304575719052636395162773423645839794945737652810377366142721473958418864869837132803523347237289262715504268162017559160234070424565427997021015701264653326836738352876119362729881482564802434883734727694846491913854648992301836203867563871940757978048129682242922122913001232356827296220755523853156935321483421585688058728071707229567939466044334407293710053230179812420316283765894384830892003844212334731542143015447470342810729475497631631375218223435190880116663177040133263305008222729897429023930988426082957806880454375807294692349831783530457664666800860712124617265983912236367526866068717032434432222354763706317390233620868435996180366996042407633918030329375558063747470697739508659967700308897590895238455412970112558474037792920069752475302364451947495674948491763835251191741479870359029428272083748027849699342887728496924992531800783627434954531163498048350644412854296697405230425591388876393494238710127182471466605454949586471991560033256151704608832601741266946596618361094829613160039030447992722930645382043329761280287276701785889626978055199049989435542011967578576686480364397294258485252471864196420734003564740105835917573528189145984425714601558826028178735261327794080143981519255902683267569292722595043512106938772948753828324027012882618606767351809718743253381686545699491843012312239287078493801219648784703545701483166539498037149711211986436233362553909457860698999159369908921113892540187898918178117059825357439497767546411250335941933970840411744533369361977145873258345089559991798061757515887660098030745006600164050967595520674307217996102194848497819487843190103533991850359828800827466761834507729876578271366344741567313829881790855851777022363089245827106602470601416268308460135524641946147293763149470780420116953448819496130097856203835086710373012806882107868903840770549526554386297528294464348695549353754081377283651513959540247844534508447382558827450008011608161316799488446165867561432646804528268464601978462453249134404897415024974518139807614186035883992614088129079050365201316865236716141119928293898536237092986711541615094063075283029893083685245810177071389237201685902852883212600795621599880573378471135541094581833379295377533514140352092682497361611607653789532093633729264485955810262747632175546771560766599568016041511424411239539204815292708303511875377569031911669687107841415956212507909712137472206289753244968974127453460096950101407750018769941696469461544409762104225864017843877185621083761690626381156344929506253496440750464222055582874781742494463944364391243868428078294197127690726524594165232569269423325352458748401419020538410729314346688290425438654901053661177519918525437997576521337905018433046797056125080069250882799377604920592456098797696839435332189387675802816746720297309346263044196977947640178043846222496727723899119314729901266502878637274170020480544431283789149953244052441256819674423505688730482454762511096963372524015985076993713331835276656671872764600684190685901112460076008852753716056335994670170437634487014428542237445096685209100192028543045867985914883817331642849199585158220874538051304628028842192455731440495862368717541825438131142339302924062161989398931449346390499048714549438215355342254868413591248277544606199438877591278355670539445507571522594472644301109016750852221977619105026928596195683470427182034000796675176474243929538046830315365151610593091076612285021511366314338480179906507194206649504365846267645580744851643933389881541938669238282907472296141366422053196051728122175773605332054289336815831075177306310180511793483846043617863080513716006505056615872432228615960067249121746204706634393345611294083098840261790117940321807098085066756322482239494901284903686725288383479136364900687973589214151712266546619263456125721561978760627614034403212486225420054021821280023826474872008369411550478902930806020559716730152093598209330876199834622484259675479481039776784881581418862539323925887595251641166116865702935093082890552390828352486347694351530529880190584556469669244721108719486327264178090249099690512001469261328721061917697225829794908563311489285538149164919542346141534295565182832807393834691773631232627874986354266767050655415580799330891570266524026231513507544577379894439753084029910085350681673976746322844366433531488745620780278627382195599250062295274330049610740255854037276831702849684032123790165549867122647664579440112597439182214441951787189522516022705194303706913967946141029675465870088385511175084193751520387102827379158648212939046168651184789243255330548149488057673911397495851583729513736183964997227392328124961827429174389858899255260187926322630095309439356423224161177233847061064432883501052290663284480405241482898940298067341967104653087281240450358739310122196861932200848532971377550572948994415442054048951426448701643427602549573143054502921624416491624446232566269738285547885324579474257155222473634869851457318744264316752586387285845026366819162850719292519408155705281527074038404073459030890666453849261038851049635297688536340267365778167844337357966419803754353939990587718483796190808122713757700907878166797728321567288870164032257038476054996847916710524762943729781140362103012800158347596932221218270532051439464362289434816101239493869428452358603838843957666951674108314387012774433243530359874825239498729090919026709656345590590424007372980155787754714351425457980204519296551323690541813871257850234570706580891370562461325279142700347680704386560882812567724402050859660819372692846599660009049760931639535323334349976477008321828421999808884595190731199207666845443295693169498452369041653072455741707279128333392702108082716808157790993439551394715494786733784127122705669811908895820695872437910338335132112927726542051732002980687656527885346274860680167675173601974781757034070564012636856382447357644957142767853406450698276675469615811123521786087820936754095111098215962395320440081184225445342481287147254961260117437867672305818354603466736823337022552330087950261938544671787176539768987203828801132522881420374874261553750696146533087258834984593595564422648702908367175669038117946198349498802550992619033123044633194471949993925386622537615077093130135219447185098352826740762996377795957574753245200763999755917228439428007738056774787583195548401070385770250570962922214879820484097219853377755466912697797216397644273703306298049100529621346617446493378660799012189695491761489329122885563171464733012096823391068280095484471512833872329877767070577451936202914776156342077135670225655411255538624689096080961957724545368841000443963415525930399900524903834745484043774183377404929603050982404615314594343389897049426591919529429362374062231460127535934157305402919736829260394882384194702154650732271968851799620858925284812256756878907364607915926296638964596585520785400521725998415244159262109692909904869366473143350102967191259166995160590263084122077627193246123549922306974008202910428015460816949265041191662140576807890606030708292365797327766352384978154357421965392047147882218640892005957467407303125182157303216712957542861910727267188114202004205707338757533091444090485700477858711253257732012566672846725898182997530995808281307727798618856435913684344347725955139956100276041316641879690452313112343067004790906518804366835996907265370282074543249218026757873685544533229080130893571304704341299913663369343041249746958641358940940383386595894403244912877616067900822906215307716576562838626002749090319412569313283144437079215864446778930330459837739485652482537571025077331330211287589492578511725497498878832136038336935446783287815643345774736621722309345666113351437530168431551672441710397957513220780639163302216816468495289498212370603096702966125849069388458532307476505223046909044468726164910657027263692887527140612496842387257127227344078031263011459755333534813568452487746142091323793680921627445117040169344693928266156592699531203854157476136839854789640102206464904402915148743606914336287038355093714919846922025552848135238134622629182398497168331472422932297170875965728348450305567943820369502443268973914247798072581580995211461847580622907681635538450424189047196606480079711659619320434900367926859756620464901117769460808686072121901316039997197496454649658705310358365997126917114789081171180162218086071376880500491289685109803808173053885478639692409088376606762556626259439890442741312368910521749155777074322330938333512131992834790266688697970357127920849293068099175355617711801459755743115440503553607076416395683509752898808030756047385902238399536990263455726905391063648838441855914774630685057686012479528217709671075863643430511430038717634345205646632664306358537207567350235405984806695986338239384592297606407920357084633477069427925290948050197694304265297127001078382089768939113133035215954221166558286269309440126666269947439847845338706352440425350492176477843869487824370883377175233288501392728624923794015851475865176257170690785850494227260568546715607374762270722847936922743696286230983351867005354225640568352213263813832121956691501519122081728648391001317203039388835498394546384072937803239731659707589332619532335329129193752640578545684285704619779662435095330290955294035352727842309726237929915886785190584854380454773791897275126549440662780628121824327260633725366152557478478249714105961452771078671055262894935910977875914671594155119229201190156902314892937575582849247866915773338920642152340994403586780235699047421129970717653484872578949703742345537740704050252365595680939279319758264751175651715073058530127105478320701569849723170383409352228710181629192442978237370393815773144856258842371740096645664403681037412198544514802951363124178715654146880684678958424459897831207479864221633549011464358203544048321922934392698367860012390742227809624677606066154780983274243455179416068874468969425104048196370355122230981324309097392800385070157908432004694439284948509145515939495953627192191036248679361303447491926883976644533832296168056146900630832508733059507597810898597025809014355480915608484551905985107306056926934670116734321691571735846516078038520894281233948691777414559129380470367953064060147525611437593578919066861829502576136816144086959417950937052860934713526201429920775067268752234399544205184342041412299345595957871374139448756107298391782409736485240210427838005760233524569611779281102780291044175900527405072171885486342531211917188370145506050847623867825643592662997526662736931983368226554488181680705542153655581664734937957053340088874621638916092801115144947258428234682692551820707629538472731910684814957946918838325625552212204371241063871063296451629056024887199935805694034807225881635151059500601074054630754581350774854550226270641823760429705289902130430591967343007447975146471275122694451730637221659680895759705122155922845649748966369497761151140443270003515456313559295660640877765748571990822402030503748662459274536774306473783030760497513403182368470219986009508602274116594492558968429068494351746686247235976286329905076344007996718569921412584450110624828547341289678076927501156084232165581660458176509018011677190201516221731238020246894645309922939209675301841538472402812887959393804510884677949313028958945953805386139419027967882443903880317271182240944569739398437823879963526896806138334159391282051073591974910043570141898811297761551898172815570658051595662443016581865314290811319742759786842759136557019373167043117242689227386531678102834077545934833999708054264133175756141604319459636771814105003917141906878636665182415038358200270635691475358104096063918084053275567615119646977755513037614003037310776047978366088042621158725461521441601109928656002252642496248961898885677099875476202036938799554441481553045439930412473253004755894448751670860142597781105133495978559497002970325921035548397608098236902386405796890715835059921712392447324950913075303747233428219467390586453575978370364486340588390162508342772621921796438519445858049609657282091156234529567737420511299656441245536943647673117091964183310657810118927071374185844630519765187852919395413514498888818406451459463116379785022156729254185828521296351912537705652984090019816335348813882696054336283199496831525298230447765011830459947057754005993223805490890203533845622545647914599747775378955456507360152685964463964073532268234819037153897968715448965723917400019409198469614206579484421472360869344660043445130317130574672011452576779367848350244616692397240921552258770727617803879946125280087711855186919881393612877550767646767890485348604476796978231759247352136514227299444595799298251810574891932483222022630318451944474319242792350505224375303527216218280481991948463313742377017157768710510563533974898741142162170139305247023181017304969499534326792668952741928017239601900182598103822738753993340620822438381848929381549783999895941169854019888094665787359205214918919094274862558215619413703105933578811434567057864239674590969018490668409076725777526153106199465756338991546982009852269302959844044844534108920600621024580843735364766062520579452007943518659286007453086726121031949608302440476658809319905733474808540913772562354863798777463222986322108163904222410466084592801164416443705072584873831242649172172300267277150746400201752035696160647858208885765032213061165321055529803211243778854226663862236055242648911624780479050348350486490580666350919846600851680335217298711299014029906193177203635070264518281843986848866916695470077387716527433849568914162803227965345402588920246607865056358502560869036607263520414257109170061934785490173705734888560831994660256523342841483455076051017590017013089764879556335538556467462469953657317829757903174358219348928760073597486873456559977086339329661253743649499455369337056196737668678001999900571424992691097585730933862057477196418924224992536190379276761560186413478386538204945830894840300203745771538755090836742125233502195794138825089957068737898886753026275253123312082974630463952412023422787212396647826269165834493855369983123637558659498658814781832451756606406812271380198207642246544827094105182708938224698122292471413128661233602830717652943541625627886443400342350785872490917388420574784673114055702492543995471013034844049160681357285906631787734542062628846278283370709916954948739360503203589829047373576430419285420432176341523924577123002724242115562344467510399031541991441081582472769843187137256117631613430044074333607412531486799694266511434038114474675260246931927786189717775119463282486773689488541397598054756057172202379314906724694273415678164545802359015318131066349807907896197259455794705797233702154645124849470378946569798462379701697727715209937824686410116593805435749022131697188815363703899548177271994526472346171292665103147479486592773238006792623342737894997709039854989403947912965872134247192284128882504392718180110427573085531358476462265651040368831186882654072404532375613080954184461969024112351688627356118591010410894717742570501449947827669491585751371952074427926909159422682381322121572755381464039094636111729304249459043013080171849052720398085388067134429744270060335442717105935424355891676543351870868245197768436922190680488632686377018763774675790858726872650810408318858672904671974697802796325498963823481588211824465947746608040978713154777003032304789934640351338088426912753749987061847245668371000838593160851185753214566823474410277056135242268896488639470480407878544034171677858465489239248025863670560160369317924593697581466348817696434943786268950867187094151107515271763641802013607295045689589428299623928583252463235732085829941899711910368894635653854183137788754137943861002033596621561232099698904603949616861904303363191125536677746268657070991372847114546757655358358313628943872247714489204817839548159960347125430256273998543485503155274639603265422279907845877299067629558371175854692434648782529829883628364884213334222351861201278913920536428954857332012201971988007892857086698941941401076926764076822525125950769809353722348135948871515086797474977141607025361433885714598992338390197862763283711002661616819813145427348784693197700966614696130723014741825511735879095087271072209594639813575845388816200419037537317923909581463341685940587860972265013341646551130481729243942289572426597495292679766837742216585579776885709788435689041990027958421789030159580703801155102322780318591102656170092311861311267510944220057273847684653377633163672312713086693585306204173149563657871737062106239408659441363389729320468922075479998591430385900123440342175126983596164374438960438345013439572525540836259763518992370696508473820895942592070698884667839783403575424496691847847812864286339564595533483630894168639731238309284443509984635875001354665575808084559403875936895690302965196302172155173291288686449339365372411997894620244249299198847822886663955907014313378019660843210947483580948945073799962990923537062194321194468323434498018405797643685971243334816258143975417623230089387138854932604062848419941888809651083067233010118832370097748195981751399875369101267575326479551483461786492164927477592814857641536666104013898884669890676939058152346671535988573085019802367216716289342245770659866570204574547740865091390601440322642104019136035770668899772833037388283250971251778709177822163720003276866551208625738036560160338867884034485101223160817526195047364730748998725452696620242753686819436259348602395267010963101902887221515196730720570857941441880083269897008032822996595000639258702111377508330723269004892151350671919688820183103513334109817151110162408654155386472864121783468539403565659392336294562163547032723638522716007089383229398375599592654208185526655290675868233700869834285001449089326440755271762613612576316076472512201339458094903929436250361215253617869560527529019337791437423965266934843010742177727756214430364883507965885986006149688301480146135414271292003095028643453031181490814698025960977411058824282369842632467792472625098754985981661586459065609418835325906324418079800435051444251111241559252134159904288032731017547056337339183921509219315180133977665198719253689527502308184277866884249255408296453891428074646802103820196060138581616132577028471058235873542170050665441024702461761270023175862751063808785177482371217993345103504491322746983764605992495255185994780889805914083478143147688325221222573575235075068336399646876541653901373723717757109754276761866288400615020716421094480979726206482632397602208590949341649720952916689862263685528749813586979970528207770616905490725217488489696402075413443592014982960102460037665642962984308419627201583294412889087174294208993395653998940183156313101649014832169682522523982606035994263812038689116514355454976407751037259736970346807164373171359542472138238953620804758455749189974058801889537095712239566280666535803189612643364542755817356981487747081853743939747557914256555366142222551275338022916428419718736133916563185881695394276718629982761854379847716327885498960886034136228622658816240747241798920223904121715261301280981681982865407088619167750551551957250750419553087216618749084567261861230914701976261755376952299931812090604966966795004355407484114936559889657307894629398051067475397225577930899480640020241545600828631564107630109503734139457108896802365117509014920895600235660167909849132747064901391575806639469049461007201747685058323918687506459371862582315427024967928657952251594289782199143527243668752543192269045854685377154904082482246667262234484159477648492535333965066888982904879125876391750771793814752961635282709010000938168961457215209439047192089089961238817811553689984945405031312265607896729067031855080485248381899832294015371073836448926658734666560184693928947523200608292314632083125407978821668292331717112284434426224478976493177009477895518518210654973972475328723391522434030699361532123732014423943070578792888970263476221367672062743518156771827366425043496881879805697949185966204222615874405499764286275288078885897301549000561655367220063421984455746876199050213434739149019371645833433143613085001739630490221461876272205063097296191548413403694176724793761770410120627653977273057816736347454823540736386044803469150326281458832016348764512390462647597469430770856822338144299577740678553169252868359309489188290437645537576272904676926994957466734243867953120107853260037751519990486078986518999334721087456504506125006945112942453849905276983049473823155085645208440542642303864226004016066403031506337830773284860202620180671327328517054429066134434927311832250412959593809180368993147376702297136635141754033732741409641898964839010736230437859752474541268317058625814247593386869089111353492097348127025075122636205447010965998867896785109714767224331000349108763009467619694451287676640245180586175451109207807293889236993046770914849573444114021012695739030917337220106690097753302853195913838412147749751789503918137152848985733353641883391682167009763849049859688708447061258101143218731382842393379415764930055350481083230943737587549829788820842499516865817387814712997006583819851266913509465857838923018672718328050548303199360434309104288724371193257004459040711559965830939112298231912751936432653698475009033140777639573125511665486447378069548880720671565116743955901714428374989563211814823001431391331519530585457938058729285029940858570038902480084642251212154357977360017727106056611399811581477881607527224742564393343953594441152157416687430370163096519033323741164698714308264242576328877377314813876721855276357284387804770115875754143578802718408940202124628277471328137939878061742605216964580008247217596231674364662736115172936745546280126877818063843259709536637419135979259849547101181393468821690999212690896366302198240445275600315704609372749542133088800864357608376047433596044858158636217463286581861126144699128165607573376228097851476762992517576551245702569737928963987628005647381555930522391186593380438375784011339805875787915344901242542887912903049253786018503174652473502346746900860724400608545426888248044700639398765614506734682381143063027241636047625659173195676865180198678789663529571897386223300171158884929005407148962599475436503853165136886359239259574663254195463654449580105775104582053107902670635309126834683549148106396532544943549436386044828438757307684882504556810770253687282348346777146972417284736276218880157127230983213440482092926630142951216412948250925540680327012127931855965826411837340710193801995647509936544837770633470201377323704710902001415856073911111887499375147768015507272756572820449164910270520147277617763570210957815782487085441525850658654399348561988968972126194627354825967213359918779689988491195498409119170241192258013360600345930114864801028661197080941878290118405993332625987651351477319633546998413881575582119229049437242679757899152575499818120632876901964337719386713011640717275580274663689151738195729625820292042055704063684032016183553470610870165995728134296607680118354875598972305192233856736131293455777372086173709600406427121033683924569230125263993560555174730237158685048650465738476518129884958106518042676739217904050521042899387703970555986263917797008198185347427191564061679565929648221709804170319185901195575988225236537556761631579241630461996621630221849988977296930143492928673647598282013672199068225243346374917604164930832984486890778080633173855479847089835518521094280457044801593682166264827839988693475475224272288119102917590357292920662805837849868744549329641368687506499125682999818916427647087341488980431409227891377917882545707767847027337875010817864182892927108542140599946356495017813278414748510988742504569098655910851389871589491260491331686311102972704099025775111810048780355315129800237839967801263513046178494460952838321283299567897073972962247657715271387460914060930888301874902427461098911943871676836742467973955258222777565976176119915574920712937905489936015905108541420953986778833847394842063801103490971827489135261686957843098974599724487714656731326717741401126355898730660533588528873188420280704712986657207742811132196015759034722046359736103511458228548312594567543763071740585697137932391107683491406718806125752648464977400136915070161204898176671742907127920032827484530926729156017126734662907949346126247145073844085913355956785361389740468169548024206623803235436904322324346787790512088577079440836675069564993045394923063840591657115775104436722592547494808586087228663711207482388960446065181658025673681760460170398028138844696007757409344724367387563914065191547559836068228986538192738173282616334611411015055942774052908938872170445240518586789264072842438944974231790954227563520543492936554224234088634123054695086490322558246687883263825378776718536845102307244727058797567331830237745139554436696520299254844388043438459442632680066468483012554683738031815837665694448878640622764455893120086063914215558398142430791227738904034970555027721848503725264520319588109088053451345676461897741147770798029871487708042812230387465628583625949132279171610218827493599049084033953392180701973118087705513202188161217824083832164912154515398754829656178350099457287569116454760847603112445182576708712639141564962166812808475604745775320840399376486781921587571506235464441260401875919534697863522040167178111826100571278345649584781407470250803448572666728996675532615961689616990037714587790105483108622086673381476679352893141250154094888843032371067990892531304957744177074145161070648624321691058094206693746508750591514801855220304510483733176679018843919521784837940126430813850141907545054280637230179884683990406824966525926262714179675301218050724917719565558366665240890403595075823175096666408190321169074777403916546591610748579549855926250985398522015310011706074910699650084555746778876530125855829346376083819830462922280180211309870182819420609520642742613199918168289790047681989779111203402053171508364313329534631562646535100843457517471020872031290274551165837810235177049861573083878284290306331403477552328761351471882968703081305590842970869911688393381222183782267648307288153427950753557604014083283821022707281178151320404258737916689788496394521093513091406579084028520480320303260919931556208358477626879633998938829147740492248741011796449812031229454729563642474173156336037665925929381159754439349245596868122162821081244788204373865087336121527083961748537561046137523760868094885579472339553316578281631294556377737278433748598770206999772747682072714172810171620343800026837694214391503068449752641782195626654425078996849394297372948624112386689608618974400833750853792123658057431231652437630774181042241309322829510246524350432242223831199194016282863321810592667143254158528688149284585903483075561341347756997449214698174006586607697435876617723968170946189976857433848719354255625753644920288578276381423891358450609515695747977182212518655964704897799718909067046487617401413485969893120823814382644851734972262035942833256006578309199060452290702589848527853128246107500688640645951198669930329682784471176257122190566862610086930220778316621388898577763995611478399375674973068181542378898154380193434218158903821868959988079963343855568974259670953141727388281240757451107619608370595814456039330986881857698117850681576476277897471352782625340045422751648600729951079356679388982585895806123150036607331678603118589558660003689273079082215381788362372127503909547358942121720073332058056890590604209843399361986847023564331209507035537378670966062524881620506593919954444175470983019862110319521237764205737654771618372040500962235389400263812295727408041651275450674708459932358758567014123842345254657626544185161383119484984766175918574173903143255327448656343611771667071120340978946104984852540945499479901539878263007982452925486930921346964585039117308692485879258095871868252588699796805643801810168351354235682268138921210174996721390902387265128274931459238313486148969575217908912803645498754913368707247013192233528307702547198438377574189996533526306116201785859589840798167002258820672599428055140722818131353677106105603962612389585486598581873920370005600870828897537109106403205215535078164424490266938769785317577443146038199725088620451707224250517601860161624620941345347299263545334042563047943688183288239299600524078852455504560701002520729771689205481377579034593328873963375433431893155476328264337455388388634040687790189659747742418014931698249890937265478503020463170410995789809382685468915214833079247456329072956024869229655605058180702905647078722073455088087064111498945046796388224759441726571273249083437026253382517659485937548991747934404518464978240946855359070576097656237030065849699908768539043147421172161531896662432291754317950944317277021389047909223430358047675166115173316221899890217821573839750458473653734493898535889878061924253637530181364529139362028236176703508383084337618060417789485105470215710732423175818373525479178932144428338418277505107792774587854848244904393183011671875879256541487308905966236539609958321619316166166785506697967570701228948465513267607329649555042619713743710449969453589259031201824461559993624234803427341832772050402391705398421205526922149486437109063076634969055779716146086183715604729472554298549652005679302413047002234322097273393061097654142993817430580845070764696398500035934087362235284697615598524912677987889582003675459364734156795035339043209077706260003055148795366417998227767798215268530095541913545386360857409429223056281579462740263531614798925538818397311262083196057576985699749428959952033227519549403964447582000516093524237260572855346854182058592887808265932582506450603343432273761225307279681849996570299663005894576353998274755529047849780067060996569530668935819537482300552699930636987996637806009092980082787031045287204492177326988980146055684711656397382331327304992318670439919259034279693644556395821006790993992147242592783858591321228951373039173285074638300555940093560706405818964189244664439189166752005553752736284576534702030023137533510559513877765837986981345658082470041931794701823271306885144614165911511032506338952314071832810120179967517864984945083384548364230578158576750322588174861688182692057922061156309973209861545689166791848507958425087133846992124551834640436470058924517309692912294049103140306801251833541189288396453329072604486268271899865781526063481410432353271689270698641767045939885437555358684091012187096730861723649755178154866916821823310989120131730462629271779513714682026067768383074157397195988413966852894825696501478353704062001059651278917136197531100933807884121571831456821105516028138668361972955195378911241089367881330754419294690457118595144452233619395035589664301331933667808293425718754752105327278016280637006904569266595331262366751473258186339334365424449257309635484907886892154512978185646136710476435768161152049201988991573281110484143766493737531285267887234630872050672651956031626900372918144285198720810554835079722456698844256195647358084534842364641195911531522818077965028243687258962906283576682393364409818522930055457177247562614402412798322471237964475225011015485987402598825290702061107576519499738935536838408657605853236127546807957634717866619869274394331378774701733370226110783273303548828920101753591696755002024455685978334450164352633571114764724129738843065092772876786177926083525323050926611977316525889275294750563009083375225735907658366693311621074682214423792899070747502377443394811625369561648654118271273362050110195093984774542877888602708390753187390229554552826770099626369533774437497002708288632755727946500544141479217125985417540440080584464037924690168781748745944821644481630793110322770737863773069074463539781106503330561900805392176172625685187198972087275495794539195881603825632245399886849461292519472693168890456036941569842391590072791059341101417044528891854332545631296976107261315727585050279647726008584705805035924299296814351110284970955622244005534343753988419926941589562952710700117391687136688388205680179954854530086558811269205656181136436586394932653654278038493181048776814948783042015252907819341591880538868785907792521595073802856879298533831151536557894809044953419690693639505169926080107595787259566235908651180034348391786612717748308379541276256111141623031291244183493450222840630240259461599191909733928747061814153171382181090483628855832468373053154651936018057026250920083868601710478088700960988189211633990100836329174863679776019578834243444600594625482196805229950745169561667801691092932338566179382501581607912171352602622442447539553650089438550677012972475141730479232833055479538440650112949643620164035165234794248203692665239414183030606930219099020514058901695482665202381858992456678649904655184404908887294746521578381177352738001891747078228127574384820374108896576188965052607202023215831420724668523797508105947973640720675160385616748229460676134928715714587913079776139426861892718354627608808653370876035209210910651801886618729335089465346118252661617574948225055401002162832421523167845236406663010382402799825892741865854703869176410683976496348741119118445416686369656506834033441465999926959258108802667458604932170079609496636089047448369371546238595133761707632777540326474628757643005689066949112258735777266608441824708590853898033916596161382160015022736967530943161819242741859670905035445542962307390680608885332608618004503681122647938509534751890961916126475885724895029210567969025951950865991060433028850050007743524706289511638599402286497576435863719934141213177173093637542990713041390147011323594727189545828828271399248759610404235179760086021377577579487794384255136710306493351594145172112232153840491060890860731621981835925457263416522178445212326469657325107356293787475611669941104291924102074072561252119182517867009853165469206029048613334058364196625941188672691596773375462202493673615877452083199953351060007526743850020935106725854964205219011396230123309578474165817131716470700008916582466931049278422812406148679615408890764258114297501444966350823778732683753426150302815094443589078591704971290008449299625905298998150640553473244816571966197981433116876162232841642575290488212517887301026045827455704469123556444708398994605505129756023806640991718673251486517923944850360071504384673155935275526021280574177353765224655651922183652835828600841398078433718457163293847241302875262632633691862069291534151212818157796687249978261154026808812170305650949223796772826097262958320802431886694965137911417207133181619394213754203523347938282560576684513354321252268150467595641083729455692978812666573550435013004006480516674107806668939866525660430428402830037246624507078701027847046323530287940995262299062653340381615169842249061738464240663373686227204633473071813184265683757568892071595402477974014117991326765312739461037809673479510698746792394447544312950518189143509975332124481919599677708347726221442608973703733802234218526784970465340895191507738129267058079730163023784486107782419628589199751863582003743598528571975144355596319434091410849719313504834941787628626133353044398676365731002331055953634512398963261851380147986121118970212885765263599106232632658202407933212232869407860734285888642707261383052005461094297604592916992252321228656527048221975408964936198026991230979871379551822321932271328321004252746928742453391552418301970168167932662704564514734724184863275476862184914289828543645844000314108767208203614385462640133675332067820191270731221161996655504777067760678501029199096533597550685191583341882562358854534161892593647765929562437129778803492837814989559495620766279794952896983198699477568467501176274158389312553991701360150076171016901685978577175671270499101221676441945665317167334854432657508938462120008705135848682728676023917157578049323623378932010160426218795237009997734327784005088322995896966733649181676237869683174475902186188068003902821206916522685526855941234009856407047002001137670877357315328209191797215219716493902226302400199407154954819520223481656395468450943196683908785959254284154459970858870452717437271528993610354395466589501982412486846849224292312816259187259558753702464770589047432931264878840508985249763528447830698917994303667299935017341934148650713648564719372283595310466675221059721269514832349216787542170269117011854153755257793382346146730660671906336499501045183034217374665020512345843289390087167746122273222774428641680084495150273515577597581980106887560137078665799998658889226197941278580973956068944261992353905072344594242259139391337477390738152188742131697198069425770533464920089213522355244724794050105821832745497486121155758004212833294067447374481506949556282452299951751064840378520567488285686543940498579723644631266201395577551461129680455637736360931939575792148622008257595951937916977957264396077862191047163450400943735545325040504278552764634661533536062979436867882084149125355527559122621603961863217921499808325546537960917076571903026082572484395539111430285907143093938590173918479507967295422992597897967113681564949190355202573425414334169401172539315321014761258935336166772953933146609987919109633565750623071198559663999888260661882366939838937811654280751524157646248856443934761949600155436044406160067573472482246209348990790552701577274296820777453793326193570892757994012460597218881134178204804094229962066446976576864697321042500125356319044951947923734076522726979356241429701178408323860876674529026190334091878051854823737866986606799401056050504603384218644172171942838629950289824246987576125274450127971194953119861798621575118651801967367386971236526350636032460509017917803830411684734246635008352853878014501386606489763809094733055703911117059177791209877019796679779858079445344832831171486849793710829389245617858032190656999174369703737202374569381839430018958455785641143278536830987003293797704115181362813919313905751519209651322104172292969660128198068425124210635410146302627720879985136137035163661371178424497994152584431441648037990318715536963882226468704641138859170011804755439867144426811446217808734385435579072286509420006934154059684860038169683862853017041041725808565617823953389356024910456979655728746664968436532273455221365901054685840146266634692185940563748115614500076989971599571668990330716401884204344320076969726673215127251881040395006478215650025863124048583857728016806859806442675576954717249572686095654299500441146926488819282242245244619654767918726724123375879228190191085703547857713429957451374983134194231437029582118065022397704568878760666780214193996192443610200828602414342733979831541426644511569198047852142137658547013413514088533971915808129560329747870694095957015517846930530583274465738313659479842674070678084744096893550267289227267516214998824207741134141270921854952840164662864667163443441446866739139978303037436546939854524431585246406768844558130276211906458515440488243403564006186868169205734803370650395764565712269702344589131481294410641783109498274030795657982844157567854323468545756345700912788261795361300217221478946311626600638564771356246219585235560222615072124931490261590128781363183313431577675470689832439240582822818753138966041773454989008198144717897549644330850921971196834981863093539349473054346096966433924811218688868022286371362221411156038557182175571030887078479488393712130808647211909645959029320985544802391653591665698164855992590752448413538974952668422112274942082406528807138288929600400611407887850239638532285333346050853982439503453757645421041385818613788247557203500055135645459321060293424646119630105310716217867842637870449468987410069874775943470559075659716441713354091580925386322719425036693625104351832067070221937357978546048525767306956315421252501955325432572006371484093358739854404425177942781609997303870395669816711629128285662866599510735926589133882084183555674480227046066715388720136718278941184019502032158859525534211546750620094003324301569865020043373523902515900881027646512207124662895733093693964988745852427813155630937385912207021415823172316102450689083279411787631199450514970166246215004543157420721025306119055063971795559169086944474313203026507913111780914963041608168906266745568530044717288747088502343570787082965620208233124836183459539517494523256450324026024104805570476499446034265831982483267870224458265849334104340159879620406564110689730604443098463213346969039337761059834867172078126943990140121779741698870255769835288214501312839657351502496732903872951968520742907408777707479689835497397487387225766892213708251167792638218765804815550977714763537840866204202048758256288673872325861563731146941267786507436763611800229957134504337554634710124195638179728848925067933517247481664849125773510787330691010168398709356226362571763564795153146553097765627144260569667578830215164944492387095117640204242326873368239664717192105181698764793988007608785088555517367452165368889594330346734748789355203551698661634947555922870450543145445478135511192525406984619964260905042204013392664958623989403086200405496585185693665389072149400302234412691777611893782498873619026401816776340908106298685061902654636640998174510211037324118598890137915520119440881512801955880396184661962194468262211098528310117595580953040244008407359305717469210970045211126848378802228201420250330048741650314060585610242236602368500141486496548986116169442661146246948897101796979791205726959149478698093101866001950847708873786847818661894252460649118828590359610666672443841862557249335460946147048415559234476969498242871208340388685216514650870318982739769064376627191515300884443016215996020794072416713723503762863972235538997396677251206142961863817683027074895962256351860017440523825914251204507854164169279219154979801781309830042171471227546160869390241233262678804618721672008095428133975577070269380522823755223852887376162728440677710705324613818757563152259645145666790000387627629934901530654546448272695498570097364317015046667904607426804200648640591822484953111561048233905893393653137336253907588751623713252220167999644159273654566371664178955345394377886211121361479761731639183251912937373896460614559078787337024388778759841638081104112363406633952295267334733853684066124622507140913677415003408387314177188060464217177204598111393543082239963482528096704860472079260723959803179777421740446230610599790878813169837280192698366986048034411597784159752448167144268756374209227079726439092971606187915143950041264652213459118829498410604216431783618465240616315317763814148905758929480741021073152039098425971180949024842000292142464779226572827577838627798839332949847419538680059353813917328753177117321522934418624109394952686067058023183031440690909746251589605342026740655633984346236485584696445194663758996299780837721390325252803610111353688702025916674601284600432824549780086983131533065341633380596284654306882343116697674972349472071139957577262955362432310058080915911363349958914415418023764021207378653601739462052803550908924369801779198463986993201848673646463660083869043305020924431141369277697815341329704210612760615067979524680687088247417234916312446147648610874866652470043331889677706647645155786982290871564306901865025956215137350266668644822223386745476552900937293127708540419934179656017062522559689489884886741153834353582909823069621523557239935456419767589624361502600494005627535405845607618148641247509905794403909552827089334998627712384312996924585606754039518982556095795753825912426745949059543972899150311881923851515328701670673193665692877991223175440662524335357463067384329615036366382736734276231991772082948034601248533163113540996296312164856825808085484434178323019606110944552251596143808868114072321942835956040640456172097035459996929590608058151903590622873235624609950498817332252291645960517591962919546385337939119893195558884367420671231917366382867693902234124879348208791731798509960107508049243981368161272851209756350448558038137092830645129885200316305408110214137362142405494213576939373378350805009206706981316299597240061965714275489865810552429003437767800626229052857765899915079759885290603899583238211701182739251140485845461109470218925869082578860706584285918527915775799531497056723662706308131975027876233090837659516581580314486501080514411188949684275221653205769889601745985530988411968555435788085276232768084714212497091460776860025343587674213324693076343149155243669230587640790788002861128300860610706689047085397641511458808970363557880654419796762611375117449959406877421382341841007371087738452264331006294801839492016526814597227384704012558972746431136237401250236067493935282886768336816875656720134395036178862358508297292014686963169731770858733900324522651462348893289933053819056541718757610672007116087098476713569678498215124421981991355428975542882055343781196487252703657913214274623037375349252107625367176275179440190925362831134218341616304585070894766749771409466916419476206517494895441705210163903300918610786020182319955892228926484688699139154812686105797402561323417196772170909319694043342472403094864997109923621414646686817091978012801243674758374711083669717291373249650336322602167377239223582599224009904716339007096240880043482841069809768648895541924561217160122753856072434656006008640607214746350934047945875191686282423222036692951096984945947948898124877326794050746113903058630635104631330329121121941551338100705599720513623263612977464352744181404619684934883023821750730832580495594052505906793529960928287616376540437986667107060764079307574746737863428476407310329746179723882886939459089785593433034170538362427682353424404607012357907970922802736742762102792652864292216819641597166145913455775750491640368048246757847993805790972544734094560772148878302858388475615107308709115803261857328399901814023013944040627754986888238815894607551295532377072846891706161547046475544372404932726058115922232541624749785023337476396910287762355107279229588103576560691028693525266004586461596235689519445035780004194510803586906518869197074535073892844640574240963692161175443594186678438263748737737797890015221450187159819132500936415982339543758503485214298204943299601856649431660284552155595972714051776831565218527703677226092971576894315930308831181762276496529946342064870956716899768036931666642902387569760794288259043230106150271142198241978527276885104934664659991379848978272457034160418115529456722395774642122632587797300849500162981944941797456877631354313495556247097095597527856194005775116216557170958917623981552061223194409663067452428035581176118575988368935933584120988940476239375732407417962497333778007992941117874221509757588533263128105394001233634543477234992414324979288245609631852633791766451432618324134488157162959994947538980685303891896537937088389534568948841663759793061024074551668636799296517469353822504561355558316742546688927959378416225082264543663610652153540441767750063217974963595313863432541775156760922269968302209942810660751699200906394796175334523198290252350089460314752878302436850573623636347761806613592068846970895517940144880909769716996749130073629333422833525993932159009053473832318185599653421123359770614878683250090269630637293820249485534354843266476135567456924275864464035341375679910636933913442533446644892525180335476847776748320139297527222602879298851691430416850969046608426589033635516035577192550146359808172317425741669980445025512957178406994835904464775575660237521817411509144768199777924278627524685455246215320373881444463351805134959976058946690750217582149552003378250481148531761852062238161879477218827388945955775256586122390849536522398775739919980494606305152601615727533064437794592826394580782145323447087653022832011524090434108397460329025936741242184361987719440394379626368139296625959552996443246376781425466639071430028956079664101397798212631800178873475496442174868512167205829066226082286325752205138900545446148604568171405214965201031639299995072560931362966236333635898595084198263475978505584100405705040708785006104853424204291260972730212800672775114043439562750796536899457624932065769512620260576958557701742895472595730886284926426187503168121250945749063931731158270499427213815723227181223092589778433132671018927166143075257308930098711518819908658297218363559687730458185282627470536458086384033855094184691020907287364822363123673372365800932006103001864891183765751703285321785804220385713409905443241232545627382781991554323998500568819686029717332578408552517981000783965232492411854450802286946422226783094205654258562796724676080941336946251356136791087081604168816457119423575766768363286954703697008677766678902170556566350780323893601146683721669480980541639547528706099286308063379727367666961543214210854018044474164029575899295381659356465581492886044500397013942321475969310607512392787858733962351245907179842983278832474643673069889501984435899870502427702618655888445250743552510654738628856685009848281615389116941086571431260371020747616049756769183746034143234137499086840810694236568960641662069383136235397489558151082914665807930508963286460689848844191881522156602752464034859545850198548901834859264360490873584714746643645337357445967582651996255343021811467799507699145418651384496326218120408001734163128309836972902547130930701377341488669608548797847900313743275369025980438032188953854756914442662949703690517323121701456342288008888640653368761418899488679391928741608192607752753941619148700553325610593274613396973533697058432682782510317190128655780366236629872297234902047683415723506758767236793406203873465469759536552455141701019324000720150239789194797438482895379878060442225121467680548305795411640671666247086209687371207439680098987433586937870615481112358357299469060738030460260011347526294072360075013323962278633550286514654335528015349621102717731444096716475458271683502253708058784973130493250839573699873522129789930379860328573755546449247878843626769102220451166438751362668921430147570328325994093982147254343782086739018301751206400437482756858929518116183551837278719374763267018391815240561769427456642553441412059517382693174387602526434057568787097023553734584542459799425084593225755296551849266104489666162884420934299291760447461883661231040280804647924818384222224497724508314241378193087847018015196134745040829165514218702508262148938033149720256914407318985286934678957492171698772126078677064407181004990421275213327500981609377872094306739594852592294259508020012632716585243214232991550945033108681325634209516098731234775210164869092379115535734367464461569119206512889995702229543880684306248718812304691898222343786217874467656043276215836078925234125781922150221346662818985373572501064199102453520611134907025800274532048298816315719292976569298048144121114511455467176971049331588173966986764122165300230173616513519448285957968134848093124167206721535849846670066457815807322893717965248729430051430192881164110519835345321351948495010809872045611450806648995501958816438677357848861137730884752316486752605444811854264393927458152074356140596192128400202006556802992162475227303049223017269838679871450813252691219780216818773803335461842625823994858289245282148114582212985937880062418371192365516865726655384994349727701382755794112987357317664881707775928937824532908122195581585893140748449989380494122414476073904705652212274808368477284895300822474892175801045642475372927085847651088156228413190953841962680526108495959549494170915029333685588954881072997471485162211907239881876801289354556958172751184884544089332840320975546444664796421030803949657911637828937402067100459179710814062818655370612180903212616875281098830736551701105221174298090152495889726977611036912303441523336925980427153036897675542259079633443590198240381662553441573221010396736319158402486464307469281599082628990448231372470285564395083801137671768710814833309306655522540181457512104508342470979812309515564686907951509035876584714567130961785610074786095079923488646997208846298938267497548076495060221078215314034137310985940925813509597522364361220642865736852159661317195269700365945111810797202165268957098290520444450716288153023072039935476650291104597732124316434953890364014726903154647584060823099334620396946374299294860831231506604556458485023417851474201022355929295010598750874338507228831056977430892282555734415228623075780006967055218131567473275400623290924809663332699370588421056270203843754657769599805272584126078346952540915529315251893855486805725354739725759818633908208269546174265523123490955643225854812341464812915215798102830391492964297057041616176626661071645632588802431193073413520940405004015256093543538970041094801470440625024032064685893562025119015160486441425630307553233634711421665385291684877116448199934784156475441977140309831682604228930122536588457375827199931698065344043732773455619384916355856612010762352225762517394844989179758510396316708387098158495871942253430456441909567990471333950941097932307373374658608598966046896989929914242095495807792806693057553235978535616150449031221121637212371054466724148581433328940373155572504703003797711847501700783181235267438183628541431414974499899961578105119433486644199423302484223161346728721383932622002049619800387114807372951087253891221740138653834416730589056177859459159068038301829996361727719948820340501989845809642332023046822145953493212330714381649388101316983437801074564712219833949366058754664560168000958542203735036703332874519148080042721775742481412069551721627605146311371054332330820423353833591016374569105871933440254134272160368223218588993821093581295785747505637649798299233877358993948376109184876095964420849258363670472070103783175542794836540379735990181439129762371436149050887999579323374016285190216018512702151295366773882818337549732070070000646189519539388108816623761100728016808365322816070884949950062100010980103606867598720461104929520442214975774729518490035985273158192087366310293353244377512699692377637884838934996439762444718717427541541248146837958426680524687926549982798028078533224846858815960475522232809859822864585685015499717980200762108422921368201039130074053504575349218066374223820823647013411975792733307580440936724048197700064933672455401801000741247034033432955003065444944982775524404490739441209509929173801197729313875607175559735402854232345545951616099684459869223194574180061271290804281785834965074052521257370054388380108308041906039159304456180404280781139575349320675853850846838468447707351560317884287644834719641426419498855358462074793145818988629705716649580317807032027186254067420521642346052486135089286210184890797944306752372016000984047043186263729450282069092450234781975022732689077408149452820357424559548216198861625752671480545045555957678045428579084204006794885409183146403747507924663898178794573735085591351335460690309511693609188891670601793850641069194936456612858657574396623300597811250376901670728284277830229328958944784551843048883082170902431247919125848583159990548374598185601921564975323028916309316972616041133370599460369006908760224280105844321575710502270408790639870609771235936345525089958513071973751980814077663231732020970174948784639786960328274021506033328071082154088093272164655779412092911747363623556264709994166971960193642893708315099957839075591812819108303832697971217546687951639511974108567690070549548313058541344963655983135403855766614536459975306973310627285992274054957691002130929929844923341831070140731137194780419997311785364002882305499524365875104675280718734959032706740604996519569021931746659237191839566541158294042959035478270828927106675869315872859848936214369574342397337217325875091789540413670513958503320914545262145130975186472974557159738863836335156628063293851855964823178052200013370212622998454784722206735625196793740786577400279396798456945058921830321320371746301158775225582801087933308133592414700984921445408851920142162167508494341166020605033453763934672634576174825355600157966315116026875450151830620005779779184073881687193737416308072610821404596145233660610388252162002543135665497936036807377462444459759675738234655699044502712958393596437573555408027696264099940313473298238625301099488010132711213578361194877431493492137936560222518027829685268871843237139630559198260996656360923980348157371800448617589218627156002258282735069598389692316806340716307979948310110364464115804906035131039218494758155822606636910915772616651122083015299749741035885238271397797425659062976177807376485369554877918405153058711452384007741577542549632983858707732835514305468770111420283198104461232077317063545089317424509616901130848370164659653950023803842379028452493007776372855193957232875323580090037212492880565304719854014370022915914560419122313687615615383085260266054160262637714066418939771372976886683935779494399824908147019211682461287702279835026994758680543312850262482019198889695831150095262343308642249659741962135990550517772007878000021250049721868952907482507161805644485879055565563830263917917160321501563076114244746841585630591694165552775612530080177456793558656390298953399117786317409317865242265936913992726627559639141055327796665420754046346986332660829900497578909494594695055182532320830452442420821073531719748386617252094833375791235501496971344265243219905288419699801205249418755587982382624971545757405321861470169321085165002438825227789030026194840448002383715601312529194447176033263173594229575525398343696202710047648062212251178340555674928851756136711876492764693701079534617789407653090158166728333515838585388077832902084265189313809093690086505875057204949262514954114142143773629658891317685181150968240244465725708022956247913875583782004401605513068396812366704084259716041222565157781285522338970587660000551777697701876869492245259070206900669401336915784221430842046625742050168312446132449537228702104416984679165648731254370731150565924432440157804985518754238377853879093558317980107899405310264272158878444773619183863329975136758884257706755717641049401898624229109184809697605698200293431565222915149402369031974331164912424606876158790287478961976563205100151067782625123316575862074133932662182603318069905296251434563847815353454600421758297076450203546679185880358468027732720799364206886695779779270460050489807714258228460959496313286211902233223890232779580857831106833435981006221958335840002293401315394530606202091969021971358233441284579048147803372919387785691037997167720552489139249356966049337029267834157687463121215592038069341883974731172167162506057670890750916333192308518928346412221366629700217288531436566397244694664310374995274776527031663728823895209512252408346136079862588322572410485882238725198884139786895156843615920662891339483158222740683204704686474568014754989342682802246681310812598235123032797533630473007001343643114086331374436929708577653138587426734502542105419998632289123636740597799755789684994297402861210890232772846282586079416290308520916012584233048532638531110616411528006864311318422048132889435964278278938738801604811584646814434006697004021063305092717816924771631415661495183398689406215509371362494888440331789592116086395104015504502999970399012471194482891657515806348124484290521310469901866182872031389453694111792049903022283133960418219183101501361976049593352941840834477828546567443417460630444434148972155215267707817069355738434293952951204720178307463926909236504180996528920961922684366556155995927597966518482041924620891052402174250827793734572890363407154487787141193742532062547844928260280767984798546909979626641052425085668615832125044658367143928559174183588254633180488804504789297691955138339787054978164743087575615996058276993610621495788203200257688928286391397584154389720376952425171591999075504935244620364613063772719858567118571226011086041110129678990662012859266055642182263155416038074795371646568236241863884862823312059434376464967760231600078358319442242262120354232508704773918219048756825726790304687641100379885660515973324470908443463295187169337561531658257557371927348747611076444940076676535949187356443527311999910966849343485464715568784885846276393956304441082440101971511331672698986619905650176843104922113474776248684683170126603033264549385826619463787856512891477127857498871166300222112503656465917967147756653126644217687391746730245830973906390351669136362187739750204373991913772570253833232428724113856040146748284339129122155682876932045073030411493175979519346933884126019928479503690925766527446890207428092959101697098875882705959261400217714565086750731518692943263349658490022076825300493574075167011745092264847326879808336622974048755916772721877196459242217105183712291204832308581029977850711789175336929379028691707973811598967856142272924916504082020141238257310444355474822498593570620578622073994034859947246739852157996680294048887599304713010018979413742252854014888596080169653797966605243365128322313643768394812051162631971609513048097767991097459233845813324538419434752463754694768910000128642519505518524810816124342736606937487052042809591670830150741363330562128577623143721973085543508847735444672481696883063888576392470651525447561528864075265589202933572285795556963364323024734396425241427173921933633075016971527139451798245944267231945320966961315264901943190849423228029646199211379272311356739590256282656324144852502216754815607317640633468229127714078636044846100884348955644781554172198872053171973751337840224564583901886484828029744972508260914942791497915780166544119606022318120042911394720490828769305123559702813360588863112855401111587350764249899885442498261386521647606340407295999759516825926948535135420399870002232588892952037032528320080028984495668901019118390112090347547744574725655138788783286436282003941180483518547271478141368748422922642188046015819321418734229377128744146293420319244208205436365117762884245097303869862205068865650442129904759354655707007645815615812035169141257156820658909101323382973741536151169880585794673502944657860176417163202968626741454574524050106907878660531139381519836835023827414242772398784039804284599022242992130353928482498182609335040488287583691446310183973427309095865712374489178805217124625216087431918273788840926023011094505905834914522344467361755190066483054881066895409097133104931530850592843141466207304480879938780600574886540316030216248658592947950621863893036837738077513044400820199895674779768209901572622483074898511993207546103223399528168241186597347166932592875455953505096729231592924557759960294786831915903323965572631920128142576603235194377008339765531070218786567453040265365784405091747935417665706972593425153683731994588207041006213498041205528440747103151126590011708381642320575554623515404131526802256648680681509074471396614861186434891533733918339322933640547940932913261906243850586254935374299155524246408320844192648388861719079034299689282744740026767214899163645310948487645457590004046962060047580877618635151480912991893773083676970654721900374689975012326719600272254756509047879320113210644643936027967475614231394358906128476578715025827947767862381544300364750558633607042272062534087218964220644529804896243735668737295624462836099741312571621799637479078979383586578742999360450672800402836766982208481560800444618861857691676326012523812389157016061862866743665365445340311463243566855748341213744132848543501351212342296512449384808230302620550344669553172653234205011992069312727919694468901166067786301065476880061961439030300149437960559770378092960418517942843918533594768086477047092939604964744979046081558465042139347025790568966488601459989235652253610707479439236431709848578499331747149990575744725936956819149030952439455100836723654694153839194344385347735966144761145233315311626109327613271372755749340423840271085701736513987663662066154425112217814189368251709735972606384575340967064693868150888300406086702533450034407534308667534798997252210591124915614464154341065796453456763766504149378718276364738249288919667199697791541957527167724563210670149891987091483187592092247674855930617380483757030512075074405804433071354498376021242895180431354200437744499192707528480372283060219219992824574855502913987130560967140631307037697344239329845649947017707789995083383244731447105195781235255889704819946679396145216372666698396571745528183728570927778715457263548561391286498086054272077765307743741162945878185018981303259006570337127087489235845593746872185379396695739940410474913159489072705341427908868008084388655541041958401476755452263611900222212572501686121820955162189523682919788630899021952668085383995929772324321691211669518256587851963981364901954186810793986128350999993756093880222894721361916657972575771083313435767149521241374414496234637064143877709464818345277875053896027116116820528628632845405753695228473578726348293367164417514770742787852872375780153977584452444311985321832552114767101479003597263580423187309464045837343381473342616507617877867586785241285880253574388082105093103668077166397367982747744359929353224364659587362500613588475588445831602886011747854329844657707274084536697962425439340926967748092311781749594884372522707929001088017903040192377548465907934622485530820062993615596862344378437118487932498404908265457235400896249672347661911689863959658622096412904211744324168055582908488855104005365680811462861613682239949921577199637759596178673847818083004481652376215891938369532863500279647132240106665150668956229419821490794449831461908570375489982863833246985644366670029900802975773216218139421242483949526975503537226604727301636038506086150659577986813904407176046977678026640745413608108784285284220097893654109160983797153919730573061182893927469958343647704324296565307888273502339593026547564264249528967066590908626626034608903742106541536090914904981157802156748471938237087281330400088266323829442369846232225987177288835982775988482831706066048331284052606897719363310230156808725129594022257078372957261304150221066443166334192684512145354091582119026418347517313081121113320154871599169846322439151846762289456403284332992829593538404751256360605929992512130061377033914103245100925784051338740121555573264436877307790878349578692600280164340100949666871493673884184406768330995548944119449975835212753029434889885022226049491612594778871382009479202548359894879606142071003666374541465757949543006202977968240413440500767625536811849063255373588310473553573787709229539319688955776327000835901394756690477184717967721925475938095385482915157924650046769886275548806991764101502348861372801485348044202542484607097346821506302869384733230960562916911981437474000812073856429444277465087516476935358428929238957546398296698363501638874669213949367566727709282833763845698205243746236650425138594839009526959671652622353818443285289647920530104213524185488848516963028746412583112894064578452831316503464850750854662887309268237789327191142040262712581336885602194379722026904616253715274630069390667403734311561992930709037436482468969926783153735097185782813853234468818948396008942618759646923059344792186916160156891071239028091085645565715905248661265798861712463243358180217591585107347494741176718082365355194328823308394423484636913382600431242843307565688908325739327368469540472122311769802650838931920975362422763224971812539313561518069618104201670905922247353827850453707833344181528238040610883074956050963446981234541164352997783318906572019593943722450282737045520490149122241698003966721539207308581824065966431307875732320536351683410666125012639087294634650349296618276368985714246922108618950601642216675710378283383821088007748564953827182595287443140078437700870070807127788738582551131333177060004546151919433967768360907152027199030489605859082174443534761358414589467710441747682025532775448268756829753432445891187098900587427053059007889895756994782586538388878887112214269636804482330278973094759730103269523600785479137210763825873517711558454280007713538418820429285693074527525507247751061322024624997882291538789136000129199191464858541012443525626503209547021022030544170386196762753424452146768301436741489535043292238896197191092293119473435680259076144267420820097329720496751732489394681637043883739951327337339437712866637574500842179893990586609678813528024307176943422776563216588715038829465921358573802616364327246256523707660922163518227475634329144553016610390350738957731451907572766424654656019579702225141408259796300678910194043417388926999009957254860837886559109312450555249926533351142070091052228403856380017938327817875800948493409085247162740049252464368680339556548190215375763449460929292764177245881457159630321045953853667874310605972312966309915488535013214210349657533527000875126931475093941953887741701458964525078058982768785248549182624623504758835177590042398697555870393376488789276660698929500180059962034153654684399880829366195466934994090719981966049465735273511365555612640689018901913238277388819778279368528606973208133738219116426042238983820534520576691205577440965364442102118137005234789851536066405385321161890902479757576649804851789014048368535993380271372091697708198727727393055799630684351365299358515795264672084595653367914041684478414552814613295695450511571236791845858149248613724955006079946889086635511285629228590544438389684805700646397724112841313060657126190272611284493913688899329592106300371635930018420320190137536743255028578735336408509952537455454034485038539540674634917819497929776558938001896029324361734605920404621402687017799228904009837120893916124403512146108389187496117105835920656566367424502634352551615639969601977529078854422462914114955455533542897765103880113178741658596836160225726223407337249209995733770416463503219505057282869112499334095041558962875083572359432286552880000669718881314652263165368240503154254934160459816728318630365907210076867322773308336518564425131607109162965216169467097615752355104596534742305161290309235021387139755651400433963030269031105168377984790408960388394428370010215342432602965036438600547894385364216450297672544942449809243981314156623915480040299407459803914494357324737189413090059009413524795208234928595021272790646581619213726754776517036987557102872807068663272578839529535230309323074343233150525829277246312646011690357556638847738706822240800024416745711724118653652131107438390115805139234656649648397864573964727713284752076709733377836160794473331429415380911614747552832042006884104137277677693747248136019374017321937153365439276447568424048886885285299308826919991190185729905391422206706746033732444508789905768623395659874761827815366457219704391981950689875049687758262474918611197039058065442607069352978320965753685490822881518006633989683581539352994723320568798717606489512722100325846737085053816702201305745411365296902931452700840094460878014887283614510026809438970477019611482799067850492895776856945927431741860744759330688218547449399580720091121163695878570099965431148278121717446974612736602527746176356885372674936277969527021688057411378832481975780598898586451365911839799551986818980861389497374309059189424913726975923211189691929893442436692243523490549210407994131149522740309560315775143435746133215289513350853340682501876300593326905198157733634394097820902088261899697771547764658126657236561343700611645119796176843189176840023063747200111791770688200457635386711743960943072576029889610597504133589945866565758732957872465001119241435262031826005407449188768487141229346743641863814134306788986045938349337931844423305580272684688001844892487996411891493164261470617058871650917008085365680216025717151757857297053094663819232293623527604722644455802545212475398995602662952935164588617276820689674587560418965134763453423401111257278695756781032792505303030202415302598383076951586931773613668910595549000397291709895512196401544310961084536772695785359348386298825418280184594277725390132029936186386822985340840552015862943415112983454423901612029745868798656830982687046528577051842287400543935181879896224174580019247148119333679386521167076698463712373188386886596583252605299863390176021655052462612633295183908266071022049913523171151083725334169692095791642588384375887682075440775700423727585785072256296940584319961787107294575292846959630897715197932804292507370383709908778875086601808935786654759698152945838512536104523097046134948220277339443127635251320667032619084615685564975737794740831038885686741761020707417294247423164478276599784224237189397959816265375587528008935102014920971779191648951380244100715778663358129037729917301495713304542525779428268456173534635428977225400219867816351089065521845551668419969230273971824362938900755704500654417471660001097417470175259949480446461286624146405044719595701681294481125778893793081918867040413380847680718472436982019626818569726218610376950542208354910389520136040029715241702237106972896988912978284505325841457790551852360932772455973594373091749176831274150010753710022669435007262261578690390709520050090349663693511509950407116192713377796423277496225159144525811125180764131391462279521668756681040656083731949339906552069123919679569968558748561278353293755085082070736028656054763362739515036783067075636599712637664210629860517923113821623244301398325118791523329628138551467553984478985439902284613126341939531309527366802202616120393858894623059512140717020904771421380691951671096105157826521580319690292957219629921743851492079432010446614961171560711591880682936399301085225875156235416700044726882902900714412608209956608555510892102132118580246629673734828939036787594012117916514416035355440951921205188873451452363799301421963189880843306221737825566681144887058589753372215942412646827120724810485652844434928877250510911082916426638762325760722464514579116479482067293089194647666802611715321668997936220867759680326976950704932962658486857896129812391475595779177349924630901612839548973409535512648207296044060292703907963829990152573126433877499416199617391873807024789902835488085784976423696123513209974867062597547334561476407879452094878332570139671971418559048486241391453630885286620132855354472411912085021894974635246794629043584867414333629362251082796149623600581456403486592077722845529488415809622049404199686032401621320701252135149660299385679543754278462187568463951824507183910613423024526846012678988433606882599099845615653149247090645835001488148017659042723766292255125026943150979532638845340991699508166502493866651365957103067683789192758720583266830222682050918744669223935572550169478127498995263243790552472535647465286552765965630436493741340816278212019901195602102355026343316211680582161435469669511991904392757547793805785892635531201159060020067348666819189922713937083695301338969293412928232488819652501902394829669867068155323062448161523520256518508321538306593752507427152665409517227821906000051668703584858807468080896014995472428570370897283100216667052900316184390147670494383678340227680931063926991291266337041096404985363228442361688058232485973847291175855436866380277861962292622710737039168231066410964412118391227454761541736124595906171196087056542790799446563621110292879027260897962885099273663773560249331963275162627557180123281302486073138804270800783589925012122547628244377366350870799794893111421406915649481897598196669811332473355210183394257826013234988069732854519345552056893304895753035595483676254916076588541578029606817902152636814224850439262389341880365599291046929648157070222665434923920260755902300693049999980220732359283221822352594436815650083029270145963954249817405022136409143516578814548168166304626048620471008259066767078833581010421079113914580621826434839911231911467893280603828399558775690749603513987862282429492576093170789662066209421266392231551150141761692223682722763052760617943271842725300214585845351548303845220672201257757377098978167065960935664546166504231480862454206503059852981283833239408390038706249734684346271167100404114270864155574706947889420235579186186667471358071547667003894035522706560800175083262584655234387182092498371724031233958841866433287612203315911316159716123640518148491274769241441838081598213714470555614387523651427532916747850683914520099632736766632632337775273866010695484682208965309889642310379336847742713655709953437259757713174169190364631725961580658763805877789931117898533373664205183201170710262032223873974845376588419838469797750827149945313043301624031109089769074747360050805182270017666575484147973158727572436871585928273032893662876399616950012032290688427868643187299992883006944297372358687052703187639461021627579560985659920851899067305008760878850202143881974155658870266798449089383988117668940864878625875808231775813345106207753544347400473028547390663466935599187487615527174009428466384869534808251762687813212448803469139369924613153028399128247945646907692514176166806994252645267488150162658515853201701832530915367770385503224493958266417218718954367832085257530342206952743750548511497794402693668230430444228607583663131880734318076601505805389662985673941265535727533579063443922362925326240332411693039640675251502466375103749096380101540718254875173622833430581622444498487568563348590919660412761213510345925026213590800536376145823074268997146114415258573866584697176163342302082822557637268075088239199426442446256889920035466321397505029941675559812910815845204750003580943583003313479122066650804020845575470312822174015356468873212341725552457143468643591866870928030345657293108091067465736792115257706247319108701891194049028398998353247293853404299745103655947678740758006752870491825031344807659275226512399586476863510265106901808888252289839036698409461551951063713462820087075861188549101048775245093879381863293200458063615590477779060695037937951767404689986653226571833271161145570763258724074256513539638031949133472146835694471582203871886501039850299272434768542865164969984952152846596971439498895539025293024131766559197716414748357293656245753127532310261834421956177337403135034882963224958957221644446939207129657325340794123039909552478699846233582558093165854026147204676525654094726070668670327822628408462385194731579300250372820176757086083417594035751047818686302233862765597986167449420777053703345296032205126401325829054875242565338006474442232738478196884854574291162425542151434443645884248782244336281086589614238389173568966106116688499869286627943346764210343409640146926129843897791250062151733484028878376768481660952135549355236550074584245682845042052263130989146205213107120613261951631115141321140742126959106099769959096642105023043350272091512443320499652098392730239556423452709711654409130930143923421082316165905067670619322143552994214739003033359518855952097013261493593893644716871723356427240167141317869827471705747601998215736176773824541715276688707465374481778611462594899808788890304513740785153636426505214476742631595949200574747476253455357659456640291976219768016026112368923973079508890556586799160882111744841202475609058819675242037587744701670065035298939103577496429489862503142498312094765707550530660262997046889305047688750616104423476378744701667409803062120884753519532806770870760337603572422868194410983390242922460173213571358557572325679954067630663628692690748347810000822720076316783169936120421350916468933751176632885237640452576413854225576572258042645097794485294519350835821349609249213850173014941985863137091893440241028940650142169961262024080699790977366178940208070441649281657764075879482902044886718237950369456093268774859777369063064424693801833972593575532535012563308256609031987870216971645124825799996296093792677017759940539961669609447463945470764691892679567273653804905722760418963668419337306238859858045654056654848297473333929575519322706426361279539378269815780107665862097304298981109916013474298635672307643770219584378311916184018692908483181741791723652586670839502614128294459231011097479594560938399216514525212018638131906910694657515705312020985482177168674462829142800447716171612501429773411727590236489582177444527041511695296276122281004536634200158516782851598617107281173897746454831086464156446038945811364008574835020375592583044425097363465206815503221359818812736646816536916406269272774191225321096310180837717324956664329187046272073309958601993496434139489105991801369764209762908421901443568286073448407539499281990959119390374690783649833971595148335359057432958017816265463512488692662247645350080010106570061504505442346681327098510019453444729261166302604348072440741415095807166219369169883898265226810938071872807795341696411203746315524634426089853953504165932492003886938102230203464414279995805400630311398026606801080526325193689229844985722260570404396369057762365523015189189050672943128587432989906938868473064120506954090056119240929647966167363697633195018383871165380647467598553062951634336924975905268797106298849369804581701380925656044881194171650391623936266517396228035649325346005016796407799534027238255844747491988942630730622740448092228072319976947155809296906925856360450644208361814353724986594290570717455695196580357265170658460638121553863595063579487767015463833386717404088832686461608342908039385586788690406033471210864448056694461745849324591997030534690564936330644582614581499325648767744460313270516308161659727522204040153111920303376313587522117327018919608436346770917562667352571186209387372364590195184999587038408727561185224010297156249966660643660143506721794617644268849033685231503583339441098628419081246274300783537236923596450381873935982516308217223593707629743112937984316444435679699800538453104254121063249395942965818042601367267796681647220362276558216048187939757092408321056229473736984669562059631665530012210287075664609592618434955135297524033104403501314948597181491752211214755779756128497484601145538359912906148151855391472430122224093209135700334109098532579023672777114024226296396329192486281314381051794060350920758443216845684227859343419644396341395861960501373886097674304579270384500082892463928533736360925795215795540924104093203086804771813739929803700589345056729067251173652574423703407483283441821880529766259364251638557404180825753714065182602134747832641194712228747268187014995943746496069021925037486180604197255118935707092339159786520851020396920312602080390237320034236112290715967223893141576480302138503544783810389489512526637956033147912038868788280815267769740937421109568862798544798006472212237174392255379374934628501538341206935753325716824130932813070983725374252081195429261679043848339580914227781847717748311583599491946231294873030198365815530422859007195420615841644544683589057261020948638964378437675050370695860256944032697711471733290080212786295243184414079430478290214193838437940586044174259653364830860174067579422711785833691349483327418040130642539690077627242609772863730691040497131979417587391551310901198917875904807270880251049333033089792615385061319537735873976080253870186272593873378044076418429923866068697990437265519284957324504885067415093495674692223115127817023891999518929650052312391645991788490610689270240125814733936212531202824281973136865029463966681962728604778885688940386054033698354873034447323642911196600516108683366020230007580942573262946822964454789615507026860507230068632587713930335047325524518280241555863462069794514436883184248214783093167954668991179253202031216561734396422443925653421698023667710037594044850919635028991189040793066730203902685851002241260368176445443604245844548577560239539237752003633771309008191085171116940165452939809349120744727522360155763862329140154807874187945437630060918459517864238213289536336907061594301854134388889223711853141167932077589217209460294723533568276047715641388874555560052501444171338011325116182601609236436526362293650258626184763123225125685979481094396212808089098282924081306543537816485820410594371906536957105933161154978678778067299457568794928872097938339695849467351275767796768710851293951570007844294608057784569464544079480243554630942848511691236584774762991121745370807690036862768013473263497049264326033931417594310147340295286016261118728970685921925605509198341117475529526768787916029224660499645258059609269098826407015263121888208965162657738427627315889115425345151073761121195837235126715612281900897401277119524933131305196519468679110847309200233736246709784633885030627555227288181340616659377230635852322658867988935042677829119470917280214472910210041127735491927603114869608519912601359938531285681234616471086252492481439143834522500601242005181816222767361405791953663069358559703639203764007658973581107166273754431014740571775277960265976961344234812145024610185914309674598405906602238888377166249072118047606978446872915564027594791107131254114847549811138160675658198893291225330935857162303418775096197979256088740187636479236715114541137130214440119539680855064250701791782579208607941989846832382751890030981279058086107813015751122072791398880433708210144990093789052318427285116974405252765051429627075030670629804828338623927245047459745238319562952375504616344486025072683004007293154422690627110876540668094588362285442001404520604261377405308766480480156834855065709314099541211088090888798855156903112731866429719484142043458168989314893824320859505679428277962191383407007450505118369059229114434863031570209227848708223878465227261159080762372965358294925696974390128796709203138532810352886506143795646902316971921314765357993848282923723887598306807747164059232035653511695203410128111250166057530966657260454149724358023206085087317172039799790886045218480364687231173923382690087306028239945927507259416047093054283126293375098551053233873896833089971879365548779757214688759509326000564985124140967812020282597189960200787046957784695767560695057907502399283590502865877714696254909746566088514833688605868375485750597859817266931042648459889545323381997501908497976387032632482811850344563497507577708804895319430327848066293720163958095229244172392971265616321250313563960358604736546773798727051405726908018095467476809571354490330688099597361245826940280218424710153320660521078624363453785060161997191619374670904779554018721683667284477002484508471622077524164820947380546258486954394032696710364874473794362525842413406148030216275041676532042725362856145733527079639283165240410457627528863119858477472719521366028957561567639838995707744083729002230535681765762554324443986280339321669464017857792123280932585209395919078742393262969271710500889217823966832183880034013992887505420765165067432636279609729704051442046807787736717202459002535753597023455372648255126740719872121542948164472168316975359423116802724010908739353402503644660315503155142801301741129080996516945741471254520602137140532518218431595543288673973990014423924127980775692943541365408996113182773950676294351983375688780658458779949589272698042612115890379348829519116379842659635105204660608672979997910699141242386367682701916544359153252311373731855735094904714118906693492795539483668288032382784421056004988654602185860863165531685696461030878464634482493613370166507291190850576326449047518334985316655329127442759251412573590842053314917790830313617046653006811655632482027921690680191158592911865037809817052369969373272311609016967476634149600566071327137184665248507741028573380712165106966431594330334094361137859599606653918261138636346760776006810856329178938775693090400113038180381831351768509431865054120612339430317000587219567057680472469647225247202377580575350086044565940307789899818098378536749668261467375320795749695316833246826819925040445483838831965117839279395341025365572381191312142160127582198513624978287810836636801439684320683920474612132295185388678894848986329447627816226167812419797471868135539845943930393041663286964633584180435279436810687530495158441194626177537951688588974854960667864963231637846199743800618140884961934258865789544684336266258621919690287788328200599512489277188302259669372127830517227701849514495039435342127903878270490434514308907454510384705404272167347599826286386633939386483455728011417632030663673418351951306341252681263979032702420241101474532274298461919712475981325157869946553565355690463432990968319693102556691933504278361982397046698104818764168319383109926708661328295538427446840204959095643358674696928015314519413839506526428737626368081975460586851164869079907712377903688216013964977158931688248201813998280698763829867446970073641217449721729520147889103518514396585579206321507714569831883073619584464537579595841718399539857697171720440678354744311914405154701329856046673213930876898335202889351533669918818160579114462360697679212807966589773029085323992996069019582655541766499069135967109799513244047405549683737004133911933746559167919927654557470921314468587916604464604375008042300546626951804057458231911789123172938237555144867702481932920186326019168946825878655844411483231350126032554434556710362090134504145624499485886990501775352763454125867590353448155612467882176569056401063296398896201533811971434195469202866941991440484467050572163749633220572003467735532232976425551419678329797556162380614420918253031088600121913649532260246151229763012120305096986540693947729938764154118669408260317760137250281433249426001696952259309048215126531664771427497554001636249447506453265891314338681130410184379418013721472011252574618944133932943193356659666650152800351933200794090932220446027360640006941864202945413700475380397498513072118661916680713190928902942853953466151954525038808844263703912541438996792210470103031095852893155615046492466500095634840361133124136389413584364157911001640378737045776441953774392418379263858254605748159042257817065564043875605671725996634682459751727336383071353700220063727818188404750406253535167286332703855365751481205321250834522663607892676398842449819134846343788389173222053000299703998950590550827593349959833735598283537712626336497748512189575460184823838178884857314006714528952429523804516622412500410032238052385445686945737317552459352539811535710937739417502902593787663331407741240424233522454009817500654611125927280380245587455593390679767682227890267774986535315412444662730153305432486408309228459598416994977071325862680928275753194144089313560582634375957950627734728143865009904803995586692574376152329316431411265659562524253905597690562542844923593121382522586346767326955141450494140016898042343287392073834430073984174306273855866777361104670820435042016847753466803287038149706378734446184923183534972270176173615514141769007554752568004422782655151411619453945874399219021607915921577404297059944525737326739187351275130842903376879105061421863318179041107909757768365772564400542828035023673761463630698829531395050974772960054080219115387287081778680241368889839672366300785636812582546361896910135212985210232003244398882514580475394764009248095978513633813440295315852581610414969824206326398567889875987238444693902241595757031476250927252694304243329753303359217789609565531605623365810475956280681565964611996980676495951831538244442243654822847285351902993152281878737313718268626684880617896152697797860034623456348632857897746589610507476026572751340640224588903525301969545742122456962862181418538370547175416008116059178096135356359479817306835980496984076677411086271176579136079790399551357726307475634660384939258564602670365034796362489131187724303686912428468048157176832419683905932139995232183220251603088976464979981240076271612789746639048403784490223413515075842728283426068486104363012753636194881013828318254283941117190600264229684716302590843572581358138932723816109069956923551942215482781718462779595369370809614591555197497468988549969813307905588909569800824411942123759328919902101115838758592782094010525712796196160831849000003226943010465024449170017475474189284768578001923134330237158204556378098851363768490838500190270620130076971869477458474004512124659447395456252330751607176473406393466552217924958510043108053510085526384735344397289914692630219002731312981769642229142345733270944743630189571467142573969128749991280190175467397275112808344144112041887622264374947683215570041993200171709293120224788012263377301261092760478997094277666062324941929818112372887038162011350387446467428682391009952580239961358869708015209456953081879666610422069504987078629055766541637662405329233225747622113350665748891460713026539930662424576071816508947495843410316247059150367131745282294034531958007502972504201756404778512507913225640132971703767960335107543754690362916015356265329283330864600113127048862620488071717508928095666935919720655074491997428695014791426000934886647350847735283821681743232788835272473496642803322849225585776355799027650463587817962826914282510561105937979744837944172507521092085996710227210365076704382939646336650895415140135646287461040153734672876230273377203477560406326349904099600253924553741469858672301960269773335930389241977006467164840788787935463318718656825024312856782031873045487954431081240858221013443724080676150693832023557644834802507091397302634559611941865450586007957540674973635945730083189197543664469790078773672558450864987670197408919965042281872172547758655583557553603311486269700089715254033154144236893074552771719839034841399856108570217797830356304352007381369338470753947095776447474844871718470913529650458242187944978185215236961797966464761885571756918666466418336574685263015041251315508817889146020138232058322065615145843511695847913878461210090810368945857089812113409250774710899356863066997247407929962141550531510508184644024111088402211789520231907305068646150329597375728277643987163457883760182168455009229677853749447750671658857678230198453028359347967327069852928876089081058766782597842723158481883545848834905830613355023171542501515024686394606739658010406700184606868251636220213379011311263584741387361017050867875424209077121672201743974551305570569561388690610523460822397481573368639000862204697173011123481517755392012606589562020538334459626710414600505294003825404373324295290265830238284685195000834383479673862219989537537895723261713569053409270221858802322540225170090893262837153667604383256939043956187780517901186667254692168550171018767405675747281511232234158380350851918734705468247239770263783589337868178231876690641566837844607886911977214614824643387381881413402765163990348586936850769893642178696705948477806503678860523530284485220338676286286006711036335491756534872853138664190637049573962740567750473281366255763150215120475078922815736894329612342847452420338416192527495959643541593049203082783103422746642095337283346515173122786261501157342487003086312021979350280277033182479032364471868472072828306928196645179390320952622221463683056882090844855418072192838005066640651388990451231678247982381052894278450131831329608393572616966144050170312046494951537025927812458907344839092089140080678119159892050761202878219150259413586016161214675707658526373120388161456666378183926430425134303959101922231784879804995054934965829679217307296376446729356907154211577364134354222135233492155688601419649089066823364295131681678677167005886765465711954367465325144730755493462977579712683200247472598385265402602494874217231579766876503501600020726195464508359545233071429537867079741964469402489611737061536408296639020596826956282356378299979375137904925077876440390259865557832023115614962608309172524767022877685268878838572079224348437258731766164556798442075242488991420403798071770560164158277938893024729335514793331622153449757752304363269418872652212650976353363107573959862152577271915336916914415735596206256849990648132647309520150820928482355482610926460302830607667704125810973594969427078690997208125700120928568723479726459029563614063803446674723853857429252476657012033272653015840759238830805675072778022813253244115922518173257843066174996290354521889572712931638546626322688578340046717742441189397960097237783602493711042152898034827960006250855165662162776000366394480231222943544914415949461367251695264884378947373110017723363459927692289553308102489649224126076143257624061171328557596484813365422073492018529452212804593047123109661329145327894038662339546868144711968628190279009157682448652999156575605102430540412298183664919407702057553793488941513061216303789978555795823197486160656889517283692040803931354713671094274928667671206003036708537047709897747829445495220471596573085560149045237377484809873375475598227305032989946047217290255606030836791648646036083325198412434379098557238500376227816967767293425923435410303588725393031235518210485942028822695552001734209362642198245061697784852606377626074681875484696171353594814781258446757485061100743275645288658475735165687078148984039642940299968275381213627590092627329645380084642275487943507264484643094012977113549543551290624930552009332398885446572807573941980872167796839734574351886097923311215506226404696651645424007277217911296260618361016558689856905984808454691154465095314323089428854618394428410196997684681210432651668688710854354445693758364586229736183482372924086548919950363390297674024216663686001299736513015949350547622836923629081833111450958879315064545924379935593653402200150250049924316031343650967014944099909856358698368236695875746908230247699514757080304850016618412941787276618926939445834391155035792267902135520153813407724218537696159376903672518160573227897661434696257833061628261137694948853992849866368112299869546455779757541936598095794373965566191834831394296222998446932507354450412892859684604456441766356080813899759348552272003648110078305443055626458861645355190398204824341307228169616619115979940042589061530813378937237930116493522045178573724243933121019341889461376011028319463598264627074824884224242699384336512066433291338247060884224092354679511330878927662787479130916508339424336199397247887717041545250941931816062616526953254360645589457079625841894781619936776447503674370604627633993125448875196705541499346699005279441602337889436717375992405310929207601587546252058793796977854072369121252707736298804707848962942819531239637664428153942136867647337812313969177980550924840260730598333957440247150217273489332757723735366689543367108389319168622452544731158105790282135370936210979013850028812465612920121129884817922985689173817280537230585815762922111811042673257827096233496455480564580003704842189561456848056817871857252041553257769145297447984360738717082483258678623514732595161889953291850437955178464967742343801123806096736485348013563810162947754552285863201561595233730703447039610306169081899224360325790887273964745751238807794212666734107286315606662845062258529080408591668482353645552101097572652341272649327547180499143541790572268512309349774151154532123396613748090464657901481985946719399342103100824278339506922733126293549092242027883150377874362135938804327546464105538794033552965286616560760956447982720864102945764303010173343174467987277424120179607142503781368312305286434249166290107103646651711062620586181966855154353792636834588534115977117366124182683154936280565777263153484827151362655976443416706134577806761343585317590577573247520292481351078662337868164106782186031016864700775681508967741054410360242146883513254010767133726357801480358696455812516579688985984866866919711387197651129615360219869236242789838141697228436142880932451919769694192752965801410883001159517604794867397632781268377726212177560230204227736461302743248192488470118094423202171883434695413555502033376253563803613146612315924829684450341763416663651989126448141185858364447675343301742147384153722194577160127367120005937040846465995874613417066209545219859951547981165166076909046189684037524790065749569310131646732497456859917633944622351910353260025440562358167446671268909751290416004653406920020971119060096385047311034348003314235187273307107717075753550111309524937183337318525954529472048487989165678968699288174178015567087581534741195990891316901081073866757194957275252984464854374196527696321668527436643455328254878549393025924668819675540378145848886400262192799092585155983564023006403333376119155098733726683530692069558935640805628950696477690460700275848096640560706152658021485143916604965316838374441112129391104482798953543602165615719682415752083142741864559219211240011864433583549644194622311056289575345560587338867059486503231949836099746502859402106325399840856338432918183987112122481711441598336316677111211791190624862418250198147494377043380149839317202472944214788541439796870551211266144659379492223708381712350219701109512458691722343602526263182148661207667159282452012811953581973164321871444267151881822538714958475755763620605840025991762601339193437863504401767892040251598534972829928685273225330988872943747774455737398963799542099030970499337283738843224875568340250760046449757010600320501979853304421711051833235607670353455246133751523045714360202494947395368877091482640164520295787252572933375120091905459384921741095867945732928156226734594833190156844575101703648870607747419834800528688588026984531894174380692368853107529159291348339251228657065097615689565958432617351241981345842459183550085917088548139034550592350538573633711184611693497620123514542991255479831904235903945742854133966496507693057841679458008841205781289934955174765128262721143434820632277620902862896923813097353328260681767893945015276579694996480659099996138966784285337540154322563317186965199034821090878566511366387107473825201281735470744549929062451554115642828383164637688300336902823767429292661297568198042336733796324458421670097485389747517695030259872899395367289217836862715810382415399936715006154839464385956878544774227037930107066185396687551245621164156120290130135734326083123838968079529888595025467823272913895557223130311660332752182227094112046453294501968395260761799427117893025900714071629545010222565363880936757959128676906011551733973716815137440581014806402183005435014600146642045190270720878422021132194870255945408753165990143159839626588035998342626842400098698654063073609536980666935841107119720737145892733193794681070349993884081182967576805766758443388910411652757668502411550056987495186490599106370791786689906770883256779746601637375831980078005522279596224402881809572252909347681957663985750430156725185574563387152041285098010891216415350836777884992367236281904348935012513355463347460740971958765945554979836846075132810372949676185266917576231934905751945832738126617921815926068272630887966558684409239557524700024472494286041649888047377105401416773215750231151123173253211537359163895317237702224797773537406252648318924033318060290470349990467807478644054911183301487095704805116912708884687002456019734278978464174875820169693724940465510044287878175418678791037287169864669622690291549976541809349603750279002468514860895611724347733658822156920250166539112038199182541442674465719274841226148555768674371152689568339626530595526087724851038566805251097684429289874905247038838913933339140251578693372857753153948418289084788356239972168868592784974860947135164501875201173387893195591854694660023125869292421483104964116681733583909565397257376616437980215956872419252800185379824666227391042055030484479365822429144861790054777070888183024514519864723173446919514285171765467350222657739143230125530057554210711347191505664377694094366961753790973531084431245581362395871878457784946688091741865418108978430306618191257672875246382007453020120036096048024224311367303782385544997071684989118277512991823476113193572062509870283443539517621792783556849606363074934394569913634123001832466568464527087168974395123944914800634292578631242295056377178419771710514105190589715187576741935807204570334409506030713133102217431360441839763060318419630852796484563279215579746392173856656251809877494260113387121135266854594063745306031539093537179281033290368249274021630718618740185345534143663914399131254984543715346317890700143751959544160062672761055737165355939976536496842623512276501252807147983332768535594665679244857618548395000987151197250742378036398803746627042234315972583445228149043418642561468537562012622355984021318789152502480872569367887887266528431476321973309402266037943013899332536193506884605241820523277159928692079701558910753090222877909055597244211385576994610361562096593495987813880713353214840773663278458314271261537547785324647863617736461478572999491318657714755956703973542859967812896649064214122564276789085518383671506554451109839367490813790856280178681697598313243141517734464042057488325568582187770825644725011396338701233539908285066076967595908929279957081611182197444059414575560210896753420125969027216872837138780691213072393256197205627790251201729963643137701219673706219009611037154638992468738222064722327151818595684461769384056913850802792575854084008053273477627037464514920955528766800977814707096320332780682870874625969198268943524455459763226428577064157952738647218834385851786108377751208902340974305609823703323063463075507352750416259716074035354230380255366280928785200481527517266170053879057227788915504018728763764390197315829036229582589240319700079119949125189060845967496442932862764150850011487713949146662962447353922987014006911862358290596655596189354074565634084880214919067202287924631909251480539326295362586985497834399294412665451355846749962298853636182266547747365278943944281930711651381136451317124403309782448862361884194245912592680116483185285985782873744935317722390911638480204725738583894013536952077590798384849310899969464903604281404481330417758127834160461335990308645724913301945006830428446985292959388888275004269698576021598901253918552166580532199354992713327821289550227920389049168339040829755890084171991967202848585424963541977796692195864156413542644602591504440680484051455822332355643922526207586820976389375283204116917432221378584507769782994358821995127570371812482065465223165530583812341422842415667997382634555646693811959906225146510636743022647170215285572944419467877610179297440101694902285226818581902494946041729105860723037870676879337868030736230978045122304906301362688597270942632761162108634665036540084116199701911263176140725775748425325558068087409250031837230402079759501198828358559088806122964721263416495607314233758586542273223631004159691162737334820939858159048884223713739824513279223755633957455892834103410738843677978447484356092746569350121843212052408523496992563506616486506841576013143010322573222422219512595279526432098712914173624324137607483626283979813576032103536055319366099179075417530711776670836161208289897779205343126643421236609371546750411004787878726290255323055577279528560871794541989153796325714778658607613100493634555838351161023272981028181930668438056447085924772165802039036793645831790254680704191301041750896617849491053043440296360834790592589488964291536473449304764921581639234304654417746179463107109014895881336738033657614405998517303152372732192277023731659775018066060217929478851543258882664916933520832620866148804887878186272395272690023891256357594505014283159614776480569228601694311821974386490679288734335707922178171171873684296454721040643550813387037490048183494754779169260848361054497468892269761238526799503942018424650823777630767204486198630283360354065032413069312394953373783292747107322347195855559645822168316543675149918699079418483308396775495425786332059111244230857488774565585904364298846776746307975871870471391761758435571008847176964848576598702023420626323846105372737207972170645851402794744323287769775317832790278976603956164180150996641991578578241153234416817483107882638721334358756051477121486548175646990285624245500383761883009471056914149858192084571225917318808659073331354583233275504724991008289277630683594511662465562171581795403042631134248447487436764621240207731432261211684274924480108493217165131350007822457328459192455406233674634119430047466509167099712457348329540744676881484251633706955739318440194659030491006725035508404842620295492244187345971867617414675558276577016777266921635189980589870552989968427546402438061967457169513336579457683974117526957053219231791387271116915172493632365239355289587128195443931764049744818060839038875757830396714142405751317694040626361177175932516263375687593606969543165382124239504605224239653431431414787019212363374142489897260568651494786469841695020444749110900459241993109282641291165441345303288658910227912368774213823857196830618678794846346597098627929246941473513583160670759932707282930550547633966612195474906648968447666502697323819350773209497781577969228234691860505525312971162359867390026331247511984737782085155022462715347802612889780602446651788319438542974478407573877141525894269209788590500538288398482357691888772727050126884970725298369927120014455939600929233318567190784237598296362560604654325289683550408129511634340150266368177905802722124866592449527355456942973893478169670079138705693930448611271806418062951698775586131827604962578341379251397129415879268313202858876341324675442533590832511983098600603512559418078152689032297231215002524389520235115648389431856188757778237380578586903281930138992606768667962026071302389591778736557453562923517165546578556276024050950371015825968689296110394538857738185250572608127394553463668378376569750128270781171901452336916683324703847540986986923088774096885546550299763680643289574232508899024569984709601436762964516588024361533918327387707871529052228289419356947018892454525960717326386931134296724917507352116484153921506977056253225997778827137403253586836974382883300121811259359670448575063862713720584536169567933253129430123631703855327938588900667936840224921762457583706144843028450815143252051289661200817884346783689416540900701171636732798921951807435902566421675525721131406953541949159397356418390065015029559118364092246906870306824534335939331708760723763207168263456768741543792991947909500171819074960908114378929421540409148094630293304088642090089501173450903892944157169555105848032667430103311615858335388021527252265749989948100842500306338454350888043835349152242184993082738258745662876694350652917041815285290068683725408865721583255925898723299594412508496184422318291464556874126707741840415173185925374891397024078192541093567836359038977723639007006040060758125999306198779137880466556735548722344116760135494087441531655458104764540816963707793682050523769590406410132303705441984156328865754790867156225270360529139062970246876500810421941534114902173985954740850259537704975860361688930939047552544523656966807353758346078522278526653162138367737140605588867089857311110834815682215399547084710196301716382135564611836466305929614446921919182235940343758491627221853996596800377721197403643169620528865104853310741628926075282848140311916673488517575907502884252652787556997487259111641224103217562262664495810778717704666992644627461910863803372790882346688137341965551983604752267590609827190907060851003430450387017903429971384383213251526298289860742954738033957973243992566992410128848026457071717758736613569881895521140411353129330055412590227599025956316366122917885072757284943752661249309741384661663444980520887976338766884300252876551037188456005597668044690879244381859298891813783455462602723601781476147875704301306113215184654898302475692385728035588627786271086392712529546805196660548871963428049282733581754144178482004064552186660304891070040780392627183041975612320125982785051994403434511193366436523379429204359276193849187251131538300871411847027643487232491818523691116786731529412637050266438878085262476872864755208487775372323103609173067796935889043548782453290175748099824216763382153899237057520389830916420004447059624400220240764854457707623791049645397323001585856406948826428747640947359269110442279256945364115435889647726879554318765029435612207694020351419132728963676420538560481311515030520812939271042942760474678968939720533885406658480281071721165658876295774225505720642180779015652291020811457074804907537669739568686656787685873697160408689556809757667102450303861310154008572784949108550866369025865864267200205763574229654880837966430172969522372885265648440887639476547875924794658864407549618424411422507476870075258217902686480122466621615992370588357732409733783919022193651779986858267065675001457790718563874470143161345358328222376513076341111452920599177753646680216992901138088157065873321941470867961945730816296395210985542185622478085904800671744832998954151663976894291817114420688022893776750625514455439277808059594972678981022129632970416425968002230384888747991729182390811458412028470144660148475603862515306813422831484907598084435981487294286052091794014449579775621281518158463388005835253576979196430198097467388716666825940999976799411701304309867072862328471108744804169552534696604467439473696691667051823134657666420668824533426601601111043836242029048817179790909714436333672349141928124756306376679140911029336940039874248827587564851168534533255377807036035696258761390745399539173935388654492274508519725928607678669585479630810625986735350046439043134908731904141017370553049326372621581485666017078107569066662017273646851224066673385642551808596932088801729654567721780060476653564507303919999365074839610827962858304834406693632902533315707085353815176227197257026459663862804197372763450991057329521204336585804384538064127714021802040326136916545444790621981679247504332155537145932120804782056921285757898044287439579468918802594872539462437307104495468509079785383880056301744930832631957510822737479278334764265667658457855562088127220155196559717178577909742994447273720470651411544488285252366523783618390311331021368186666332683901902250989301624686721518131002714208880761855453434672306261835350902696180117170092132104581572539760819750106855835019920188681323431223253499269171858059035373803413237599363219489126931286792196274315138014784933807254874569197818831699726958894165761899696714933777292394368006560222490941861149679689489368719042095476550282855379307250814967202200291982000716490264948332294623467921387045514189099548209470707459769005248299791772683304854606704864215557868949874062304916787225398362759384338545468612177883276278390407737607776906550255300671009669143814298110330779959984080946158053764392273281770878046115723647136468076028478470868665059531907440727486189524618402535631382115055593438364730719769748328625329492021425741377618213545269873570555802618439626477273833414241048423316250368185521488488387585551981388077836404382590013517212008767720369284256884363577772863407178897093330454688918568002905377210112082631393915126606103704707797999147663998768046876957656595698547358197183333141970839476778284709338418701676415649878568586644626941269440827416380920565493068868133972058081394718880256704654729869857510088234338017336552790935997311564887910605912561528649989092082262998201282700911803997582828599169193401468561781929462647200498565740870169523079640961993185070034638616142282664856298609344510861217847386516865848094534749153444301751958307450482457373254446342957528584607129947689533172830963355689704724320708797992256132553468844230406022735770319272446373341523695551715555213039907268104006796292283564471989842785711157918800809547995940697868102851109199629907024038890018279444465007384559756934361554793965478286384951768590467421177218818670172322503436430184763619093171470409385608997626732334333907872923053325510881053972287877892928179263878832741994171321698843365356043803210558796649109606400378738153226829938075981293207923057280079320738385813013227611919692965350769537296950676647101975075489017400095035768232384797626688470044747625038374439999006451875300255232298698661177410250781034873072756057369810096407984207478133523969773332833268750150413651422555027468583839952628584067016751919002163918170327544540677646359072642226320106729216143840604408313493508480630728180686292356757906904312687535356405551661380909691026375266125214392555646250354626375684326828779784665237503563470237603741926627954838829756153399316225684695349086525851522401297630047585729404352214012941385184585658337707784657260512648327302120020080566192913406036895034069950880526187132711980480336577628596819060281709694486097350597594628901609317823430460459180459485629090863419488849625636499526096676799385014946721937588871077605047974093054983332726649505874859175464754229603728650449557543055926842684100071007854999751208819676415677415572006752030769273660728368090530614353404113599052452865532750135159883397513277882565987935363908240227501086487444752760696671922613922905238342172534609073655769359505729797523094352870713385727224018799982659333633120410365137197627120099558115705085025083048102615372861639992534372181978059343622184463131731121997159629318192808702819510638856316314972512183800423485119245112998824246204942418580845709846046273811748131860178477357507682397086569591343273853178220078874282051634080099895965173017490964522614351101948376351359424473345275537988486935621200201159589087677333935076312989085674594654775955291183073556898971192823132295295793950373176782674955660961065732454137361453771391470818924266598708277626006244035714434036087000992180193091168367752525125969464127067621099399304431476455114021970564792115046803059164466589095317478336867153197306145736534385902997914086869057970465854669137198654721249177621232317516941417477700764132835567582915797429592041419464295891486468999550952970299133116584840940734359395082368712101035923983073613395983286773670175247356390427396652031087351044546376299638091358920407268211507059001907264925613472129950443385300682185110892398597646623907624031509194572535266709808361994792472202454703895525479252856390019763602726864084180743943450426064695840326907937965306861526443868332463055912950455170177894703666513468289382206221791833679457482696069967967496582029650955854672405719386360871510622537962325405060998177590225677181270128081820899215006549124418071737819390282773046315334377415025093632658982022887914322771534638070438576611177804010196734458300929693904494148429526239788045092643522024158654431535473320768561213453747345568634024904127035827174087330578742029456478115600371527593395033430254200413173514444487025619163383662195683432194914812238110856242435649001575714765159195526832536827395119776116103542032189967866500449845377572528874416012736173203153910755366447031548705714902438228029409926352078329095278191061937459421221938771450665659693616172007704936304968726584149832313384193571250505695928534593880305831635415660558717186440890341856596187859040133363707428105876819228765758108779937982909685833861583794167858445349976512091749373661313247404888439048701523236254665345637873931338317812080076416447256161488092588860816993485911756347622273770224379268781223733252499522287448345385519930407836886551228629452707780305781250773027602924048519743572045382953119339795063643863406130428762091530580457422286506626916283523403508456443634237407367189868033665913380641602063512456229014057625047156899017917233085827090035950515573003159871271225806816720348306136174049391446193567784877126729259302086108972671464721615160576275389033895104174489760383797230981949840996348036291686312935651457262313677338373286547196010344576868147285370488702860538333477301053547526647647327467340773097879865959435697518782033372407761058577449013526959595418163244283201428770279371034236717508569135969397236123133207577463699467281263076915424635154090559501354609301506402475433237561080506200026336478665497587590290652151481926258328852526316931572832027128690433920963164651014939327170063051527853551559684942402058652185930836559627151676348816022715245415138194462246988802424831656106446873086761257706072023353088868249000051128839330378759217544868084435663571413915620464928415891682248410954308929788498697516558826605362812718845534130810830277990530703652954861753612367500316265877945226757673733381180580821617645920286935305086894561986953972759325698245031987853215002537952032609111952976103633244400444464741805515837039731390009195017275717510176494825955333383308564918868498049198347318245805265309722838682993381339765112895412480620240386519818799334341842004633775924231400455597717448800970947548138189959368126933307432860928847353771897349352461819451441380512123486392719498724687585565113721455216881482833524545619804666008470019353235336113750913226350344639597952823600020415088013192040773937233769828316121964218021379718973406354920068538223433216578982069540342582133644589661593875960989132947588046449168411459169006143512341099159257099319137904931265204852922593462185024934675021468595671019968161948719212862816808992568901498282320291235584435914260784208868028154908825687584361325804358168350393577067462445710160158628232266313922353925359352354802838274977283523536459737874673302932795966222510951713977140713750272063147851894209964105955681505358312995459823744286016725755311902387339340452997275596139518804935007650483755712149103667547677390519334159653544773313361687940482823208867067503493010312685819101322003415586787310140933107771268408758118566260700377694266438341402160166593750300754732010740500319238296470329813652020068980985786801421542243168669865105693444841077470625612786561479952849477221030490298358426611055028835239911514168077956886028929092704411070183886701228367663206546745019529038876949016279461322274267710184493589628990609222789382539731136334116315987806045852276570723313847893343773838012183322785756082878331326499452361513637112105231966659806434163793300617703282501882445459404032883705117134244455695955954850190675710434088416975870509216717651008772110423399869669042320587756790986609067173760390711495665162599985853040843560817549868487560771415495305952763169707525146673528506211808586024458389738771997886154225241420834761290836472594702551077627466563515730729254590898342340397545800599676924286738459026903317068481164120179790242785035025097182833183522027520225472374650388115448483645597979019128828139729119986374813173710208865642324847986957113244827141083969057399018521435687199768199128565299205242912824643041715075528935923191284244663455846655174986521793334568878847543890912976134666782919505176507082845796460439907448644869431618933650483092938013938890935062822716639418773259620259030396937563156748389487961645919617605258585016936504566425072657217361358017779659006948737483036583349097315633332949445284400440944026058079170857834603816544549429504386844368126266425193641763688983387107123643401421104564619448097951360630884184342813857822735029794449757856316626870695345122305529063252257883731672193938035300973051014165841658989645106255839898833595324970896174972393318586985886938815234010616891448890149733879687370292164988863789305596162144767770032073812491036212693373800796783009688382085185454849054254307760771217582066227953713205836169470177459716812938421315200482842136164831850827374504619780188864113059092878332018877499404068868514143229205314815382329241248972537035858554701249394091521988741317695340973514923259299234779091822282253271497082461579261170777748526047643898413010788967436857259456198050148541627118282196863667129556711429859912784465155075156528837622341343156763533050392496622830626764044686357668433611169294459435462257559504999842871707639800702432352912600505931529768732207034694426110258015002480131819928963639582867474146944329683744032218709728161088773822446831910834799111851481899532594108368016783073213538576320816731896472685032892671085404558819187743642756576747744093064182153210989698166066947350303547743858434999462674184120159740842026463953486749018150375808965798878094512245440872851598571929570053805111318770988123502005446205727852547102503284700050987106741668685454683762215323743350663264784590657784439505165755373705940055940181086711365150229274272813364110177752143329941419797867772829249742240603790968442829251109808245721441663979611832975271180801386104494369356285975491162140524280064379106712794381592585169447832193233054168302557245044580974937836459173170215022635268385449321587980354851070952202821989839146682140633844500846113602143215113631612501129257000927927610848984814828924635614711047083677377022826936370516884186391822456067506217278333940830515108243083561628312154193596020378712656033742715565291186830572868449041356840257838898832643244715411866861279504056140340986285667495148926243226486001421392501711349877161207790669880761912697756213470804051918017197678961169363735541987383390522556253904303556299362644288880084342978421307270812676795663872272970781977884504683300678969058751345677895013626580884429080695910656923716337138989924635661592341269734230313756747515483577032026802238953935095154347912425885414533034097597725040084116486715227588603340947257799280045147261119965892458053621946575079257436565344649919530232018412639639193366180281704460732625648277461141226583599040457101154377059220232668872307679763001392997807859038991692009191826045648184628081317617532653560648591083646194117481178512986100932648366901452836395056470562044921780127055449728057806903168840916548381547943593213177503802294813602882000683058831750355572886242161642314802716153393871933858178492746410743060645993308623804002016235729326469855628089219554860476638524281154580346107678086831718822596101710895611554485994795767094640964134011264856807182688530929284994483853782824382417697746208396213170961890611836181123226382377942942027907464833519255749533829535855363373123802391009538686824358978386266224255052375533374837863510424969024877613976442202352596224080378177686198075115206501273747173339461717868736531351033961590310994061537547593164530186473009416787238151345506055319372415695364189562504366732224803560924375392923204362996886661239027289166994423813152142006512679925948482585539660233656528479292245376424290038171766439632153249061343360336286892966300815277093304378571915584946911845968506981857901097241611999566572036377427690785012746662380302614722725030469487377614923060466156897608343866215285568892307888043268913519682456200930752174424443469854683499440015450121343065159623172787101110475264241620576671419381068770319905964764636955777175428653923615399911917763537496567891747553976993071675500505501196946391798827968446073678102087278189609080926006458897262854156553041929909282849491605314369395725285399080178672405716120981005763828064594880322923967844120683167783181758985003424214733518356326092681027748652468712124837782733324914042536362474828660303331501369035161073294254100256441161601395118164916821744408980033264677861991686151311774597161322486974891074690266779372633554891207652658848691665360420898183932428884061435024927241759050578211907576425131371754363331373383977683108735737568543120633246854582107280505254840113427818331895333535354323101148553048618131326040943686678513219919382418085143244190355864251546007090491162918643422845287580238814789784748371992320179617331441525711860154454623401056237738270381800610565820685176836000979027758060826592811750865193331652434693376997887782973218580902814721943921832132413896533680320078799502937541532921647186649622152563777784997493096591892399272454921194142598575357760908475379991198698407405354211890942856840456894224944531062650443345423053572979716081522434243134332899483484056194723809684915702174925240795697947408571636192413402380898900055049465669646844771888267891153646242734523110524334693234675222098253633704516332701941327336891643277081999329547531853318576138087444097668154356880913380815205360895397038466465548897462588546510947425519141396943298984309437363611671162829502712396297654739098851396647991710084058865360144184175625652107962880275570760237837860448126672659610359079989469919767453655989758874414284071215440462171169487200589829304841541466641469836487472356981781330864445751325491914440561029847925775012509648066297008129067198701367963872576667600722458978050013953544487587595452011763409167085163000559050111613283446252536235404278215172069158787710531713269363211633844214037093869974884202458087488680981897313700668199293166739437958653737297897488345986009226833151494099608094791252766032054708885741496299122281343033465582935277115513248693037126035004642415571214297934824424238025454370971263893623998286402051408601234954375633361901795335685512602236242948458094158863145893932532143563477462417235848481108714494136988170448329814148124372155818670943333893475527801974353523840337169973787630035533397386658293220740309392669760978246933052323844455977161434621501014669028300955915825324857512176133639551203540329325721791697607763009692595836062652915184724050419826418423993936115566755980308088517445855197102327279912690270295848119078696442166790273757263159834675730250919729333344791946720573781388207052111769790911414346080819136627787299968014135204462187383962229265855746819656665627781501398184081162708150489706925457129412814273892736355529637076144350717281857089630329890111178888040043410744576830157678415135148782691873070027694145734275018258170491996581881024971447705638270090283373323747209659743636614336865819779139298241036672587662968740189556013934434648491509084061854893462266129290617413403659963962515061776709809412100165738440627269125765717400012471018395640650863339903755889939301302580809825907431126574056707059019702096361484341086654920863170788803126894234998355512573725435978831419294883920073103998886733858117246334526257260785179507154615711236675088595943745242764838728848247909646187862464570417450429103039710857476360031523683721831684910008265482626023703643621956865524232614055419607192882553993167655511665182131466832214448688227102298261683303137747999511814123110682633992683618379275162027247131916666801052087161244983316684558569699894453205662538380957137231491422966202231342200944762605913734054660273305144335882872396253912635748453845865051889827669935660190458067141405125812145851078486407471951535358781856462596764703009789649527671047478476738313973261349199622055905613025093987972584040901489599314692979551865448915588673973449506841380482488481615060936330975987012113504467505312330071758395101886889119398077303005805883324637228236718395576052939451780148876007950709815639590998092959478685576286386610216848707547159771949263271681236206570533178746953649980664905911126254537345095589576506365282801923320914634608186427488356204871889671839918828929366564741007781509003988626266082976188027251262860135501355740503345750544568059857158761253686131184524688965772195318744633645633407993830475795127048981497425626529333444650714477772752752277510627712089843199886418452405068196964765641463998822894021551407665632451173399195085444453435235717580047704728866629352040714166204967518570503774481626669615758569082655237958984278408762026371414567819997662755558236443511003949813041110414507973387358478101865164271484356055620511765286633498017807653498537458821281124356492489404959556108960380445600644876251548805011344560747318106002949445050645144647900959454637200121068877742342723952845565970608015029086886058333925556820130189988815428414842111473047646897043400634705659321304313808195190589724505953620530700578019940055437701299323479270508224368256934884398969228016818879584737870709249758363877448232786035214671856992074568337488084523037059510126277569927950399845973742555963339541990045196474658940419986775998279428583576955462452753124890077038816918097252332486084776871620400911952488494371831888587100687187014852847072864302432514417831584820473047568783354639708101342815986590924075114364582616472210867241652485268553148433520171480578122655629474371991198929702771012584554887824590778399120819575587412402833888119389087808004646303098907803754718899008799441486833018439691136475075494269094471404975135919516191164044209745209283217341909245842419293389762186412538933160631011665237939386709226516850014302320581094996543648987736878285386438085144161741373829181765534358459796750015135244113776187860115693681712236664667705179186967663108878014333519820752630751570162948342167797788486254897255930387134557470298369253493066821311797647489545439526002056921485354133522221689674365702599333912689768374461525816316283319817272686326115961199702014761806208849116337563562230053000255224375375835470069957536750164903637401488392219633846525609096935157825623664997991037445686762339725002884004706528222211300286807359848912620665089852648071781959179803683783041489987145244274499285688323607448718740969563819997286513781842543263416447563759248671724019912792071034296151332554908982001427156983398520343538094595797366550060372638346251020711201956296856680223777758303849432576531476694879834042330009397210675404276031225706956695395706725891966349626274399663053974331610246341637663449596942833805321861111016699059849760087789547662583965316280353099316514622667162376977817849152486104478955510727863987354927220661333409848338168487794055557788032828829504315971764082699856513775232212003412509080960827604237822553898895852129450410315253876686142472227686575893693823011229526053266865674681446477889709920011005113186498323511148237646012455794015268987800492425748191647410199349045365692183635192481017848100323206301286518384017808633851640556453730475367390625396444479049781460604254694213214641188937115157046010187774269004040958074061225045060714744441728126619697788428111702306688812487115897731116105322477007476135115257825264677038850340185323132496900489062641394288731954166768367611571773445767479233167243358898290565178783031279681360141125627105155141880562902015194024968740295521881126909334917940641695190620899995998911211941853246159747158861940415820865610331192997050071310917382646738610582575789023808722803318904067718578403241532337795869986159315817942862865705469000172928591070210575049217229203093155037862917091369380240350205121552070616620173550558619980858187493841909573622642699778879129090805955039603599684599894478970094970320921886361719981513560144284683322893643120131256691743619465501444654473037035403886578998280611222199399427477759035365587910625794074950268686440706664545438799354766453715175046727391448061895615221656548725106518684523458749803530174312705025565793404918620471174210744312838783764990278909985444956550116759216044134421574511624632850536738666258906242081515260911200589933338018722869400071057144353183873718115871266418828012010665147304131305396998144031879835736716795462111611878754779904661820842906117098540358316207834882630528837374353579164820736268898567037092210621049387479866676457716176596790817209442054068060371149074671764204058659564092798957648359353859233119717703313265387653033073387285384617657692854396414545737505685566888518499102131590225011734713293952569836343470859312925789056270096699052316739734691835351742296116519484090817801142707129265393270565464769694729261456258926411390870974654030386964641451796050590778751277782986399109442440584930098447177639252053545985594115242234286717898945908305962616418997940130378925846342698547533037158937320130085175542991266406931510168124441675240292638911719362136118780893952580774223683275464542575086310461596106294617929736682155248613974196685836199930406510220176040438256856750315455465740568304205144056892214280245717831247014971402418917201726766922650582273404841207529768892727956050582654815908111131943808795223606320068900077508393473335358653389804310304441590310038758182476075311080458440358226414532147890608603459809707054714217323262096216766199635811895759281082229150632080089199249844554562318084079055860786505157570079801326835794851181569754026955660004442596308071937319181325550182173039036312216368853537129763235409433847816583129195735988687544776123932438632584193150713832049846341226765834894800361952588113074559296894583792126281298461077890284533717924065517593033536927511929397674918558707585604362328977197486918755637209187574067725316587296180865740552140323328133560622424512662633279459662329789469890659805865825193075990303476183757136193807126616308324224711038553675017587986290038649339591739784101796211635644070359001645436804363181391867809197458237801345185679640111264415121944296067700629498357430723509767566626096336073019406738887904444498973667976878895400775658128244344483847603429579002263632920243799122289913298278765333115082704363596160101974364759971773203569667315830531083969199868121046378525325061765453222723777826917141073739600447750079555709673666123683408910273503368075734130389546539781842029224317962849786841446488537720046113327233557609477923547941058738089028757889106828034948597845717484694885294316393028463716074230407739973633740805161813999736597180071281216892845522063468000303286661372818088752433133233236761787419135242777524745688279026996490252102629698063389396585159496100832902212880115328695528790963026168645107826406456990674835368124588413952674005983128633017396851072251174506865384813638262391152763297781143853483105616689227171496776406309009513321501023750843457006661079172425023260518407895701173553555564213103320756216528820988775353983661921007540402704684507016276386825186674158713509690340757692115668695684160903523113692640013587394142019221097580526339638859186282617156236928136478551283120132761638158945332546137476437895674351281812921314004806214699003581757587645353622288109223414300507797666796668738035814609080118460281329930750563084555961039495563789522770369663340765482900464955041005483190292527659026861942326966232527767170886131734464222260462754696806703715432907448849220505893244912312630373011908860734274470688303239991307125901452822336720720204003206109460415086977918384170767049087471175756644477367535927011631462195170074232366769632106552667404636239570185451917868172817296771202075130700993916488680710226222962706128936680744304350449186508122657665187466997448869257719371641320519604405119467612936421001433387864764152394819199626608246159324350104061441755041287354915599875036965437917167386179268580519409923750064630610980836238974384547365522409137997360139223168354788146915161476301954046079028486366511515743051885025149319837905463666771432022892147017529180375894844011307412705536712273355205244303853912962236627809440743136696205886950932101031585193982909672520411315027806779136687064509170985605008361862299257544148905779104377321020954155772207926352424670214137126819137381372363733777088162133817157298594181676673471701784853540128973817215794459522920848440693717049258930364995159381952585121341236415809649283977496487475419963778841950306718075209511771441913625287309043620505368378260883089714541966721306752485155669559042126403529921829824375920733942217426105111318854990411964554742305533980767281335213619144389734739018072311841761469993372737758078368782872317435082230646661430116127936253348991883069812229100338427644007838566948936630718269184237762414530305124102675679845453075147816112604422334463012253723396217781256431132014928697492155478352024808981466803780481675914921797262123091843804600327020151749308354096684000378753364628988490745498383944309969047593033809230045121574834339720251667315080525801811748918157599244081085669713962919070895322702395856097247815252263553163698934221918034617451751053652203726056021918540555374455184060030114013621429840863967375732748075621425470897167355646232395492893187798814389114789048935144141031866411641507518919710668162147472749809736669960778621492004931451810136582309039643859496770523219520386874092176581517149921288391901421542987946541584481318769307441340239713701696164176342162699567033331555841434507221190478318665010886228395439407410707052192544656852790481643736787313705644716357511048286816871268325936702983151964619281819501560909483431041376899475764341175658944238912728166482263007075501362606939776679095379133276300287278056124016725776857144059239737531340709615078698525826834338264194475568720150038234943081241595184656076022165769134525924726462686978003787797907680019609014735778855398451095980183292763691484435172129552244427708925618086731611427824819366195823446226809506483285908891803554043527594668034065399048494044772139442221065911486662799922418499699688171850807014522063065984581367022409200561403669981426273815028060084099845500946280046759778165842111546327044666403467289253724884705121819844820939748864243494055700314622696435646514168398634516600688709531058659373253944205813054726894723615379072342630641845696242975883466764465961867246384477342380045439301009829744916015115766717770016186121070416682927744018666376089293926429693672316015471898485851856389470579696693796158463642079268074033404032581889158363117183460007215688446566702875247838875592643459819219076986283415903772411812250507561357915228725095722939189269591233212598377567677114163044242667607162225724289867393052167318037499945927566037283872053125143520014502154855026822719516985069247745616683099550731798492272001362474427396135345742434704573020147648859266484876432924944941824537841886581426639678949964546878785267361608113293547845983142009798905246647956277540008321748210142734063537154421757176345480396494782792904471426518011754835303865152353139063598044398968839364159809443009206232984102693192251385454228137446149063553729060114873625786496915952667741721954953957290599415868013503695693426033861022650018486103501946701043043408997669920572280672112417738902561103196527696188553277458773891056860146510306109272188585482588796097379561372474888725928639610435965829037856849636525142150393746471497684861884220405633025819948966680264154683320330103466705683362931289048648804414851025898667921809873900782268169838265628786068522066738897431149307852431983907734609962948237352370850617449228555878615323658114271455656791998680025154127335941714529421211631296012657746873132449641284065949490934265878421908473472530564199452323887814644935416141207293792319605266725978464039455337243629703350843605851441037356381300365989244701277586270608517994906702309123432062900943055892904489541149439654623082152875983632493324027877354611104733006558017655764231529397202745856959547428890613033592360345323764185045057628902369336342103927094959949770904823188918172994584306635698183224404801466592931794674897403544389500653068392614892547917388538691983382159253600881805656804895486090495149294533886323618556219793536912036177466322296578289058183091733817625228228158877776306612531034718183549394441289183182443881132696937333728610495385200119508803985552897326957871215911926222338939321679911324607079815186042903408708451672766261043472496804407110122267542645480491960657337349591820591745583997658236312240766197440442649607273832443566110113149072317432569042071069833102744892414325015218764694265484360529052581602578570426408734910799454562664072174324531028024848704622120636811825969709009049316890047799415564987152741219825709491838828673675298906717989187439667608493274282593528916680665282852904762388656076593952245706297817734661253017517403019322499886301407611606997729911668569243775123860917249570659750187002077969565552107404666145301737137790191515999108459160253213078010722727065192973279275181299159213748931281938052421554750222791763009915395130819057372100566188093160398310871375951529385598794686633943973220906119538640959759348970325961142994971953136283793882638709588450820047677740381489643975763599547946289127038640840275896566137659793027837759068689801167174797856431447208189027724182293625321605345152995983580318436668331857362147937158672201903611958531138691978872298384593774889420088583318736940022715849053798867879122174884486427091602815349354397881734886539892525394945030006444532229945820544243145478786079755456027582359878706465045876135751824727801176974131658893153218782942720909453057852833993334021759974531091652295618483039407682231147564214179700496668682981840500228856954270931148689438767559984723984946447336793788497229149582068726521630790149174799336171467354268383303201741058916711944148603235420869076133342658777870774761263055796454259022126294130556401874511481647669375757267076058642874291092328571544404246381626347349596056017105669009923367522748902391980388134284770842249424326090291313833746518829484448378570204272991370177999135487444543204060220010975524443601718622035208834889741762996806312743767548065577976301762963252456073215008702335939428738778139296819287491416099376878223488831591005029280560195830532762999771816851944323973395408044149496934968331274103176262635198829170283091390135140006282949305169137798780874197142215708229769272866822933927830793188996764401913165818164575527130234429939359495182536214286144503189161361825310784247168401240134026574309516285612311168212309393348983689932500196113388128530260941397864043015363961554502191694018239667583464546967581755268442153781748937033051140589164230001877870810215839052395417125543416541186142793195749542825041941044805480610195322941775327820722727059987020999153875583886687299478145482641600478586884807494648021298686573374932983244871848321398326573520160321160818671357914540267427982621932074878677479302677301238851266594277109485306799696440272167068521413716949394417056978567979847737900174974111574984809406671136587434602136430456938381829410108573560235551493244298462434169403009585414426026169955839608191255477744748171533575584264837215610513562890203600938158526559962336557098554491041392190091754796312889049135471806255626873787827996658035847541118064669871551603780110692309490565396107254502905854566290840177707429461592564153684732590322476654764697444496673614522366432271146368343435536547789656523444033063547595503636591745749376830688277580663001315788965637128745775216156022410754645800922108989807137739145705246449699801137625419336740405260258196937787556564597710034379997634084415398306879483334045899192298659382787294174294179707948359180407878856856166516634762171336717638968718547329665885378412388543993081626446696575824948175319262278573266382063767766605879954137543090862592448608574560510480730760152014054840653447226403231347772754317068791828262180304900202673000964729666975664248617998907335330074174260783039941394786957474450368726560413148555163313323971636841485378220817949877066755825146656961880840503860098730090042182178733096855041560082206597960607240124522967838029143746335248922533468262107672410618523755642681884044108824991538378247742170339731491720312674492409595521230668268883814673538871370685335424916654632573891223132886068923912802209784143532771294801183360069975211271995043117928920166799377128502060006861458682398966503236106219557203958500058014846173658383331567363616422459424823694550150981749131197676699348035740981377111985013888051261616521178842977816970336379646209390196355552596519187373511586386313824504738076951609378160907239607684939231251319482240302502795235980401528539409804397144677023470365486127625816572856132939789066252776423935651298060288130452701433939920145971870157805489010246493703122208104807568211634901744963081253208327749906998573958967610806721060801379858326714727917166224055598520569483128924805481590414558066180756068180852660448698285372238708371720659987098653055728589900644533612845217689508313319540452023294943331150374614511130637230172241746595591519340526439287434576811884606136789900232066757485743570723805558790078760986466381453444317768188269154135743395378400237806073875668367004376731550070273754015143395448183828523541028794362737680659644828766358072466221284411688529216600829240285621926045280142430546571575220275495536679665234296902920842361152663031897381038051137470515332544108877141711883502064560243772968284192311365913025143629826256700213268686414737722748702236846719186778029775030126663760016508951340763485244541753947198246940384950411067485628007242787112586017013841001420170008517513844584637163008821482597509269043587422548941514074909018759845017663942181788835591664580543709930653259486935724134207072662592942156379898255704438557136489091545139820342804275580116394423854730898787660411346197327492999799085109389050629407405087507058422250632860496113972038669518203388935571702116079329768376000417423662075372700941281202576782206872815317290898984657104635241466810615510154173583885725132391431386971615511648219718132783143373122887903371778870303371987427531745467719119027023145527051388937507782153981971159557932733943777631497356131615964326858287240717881559537263716912641756868461028004580006291149916740100414221739031695140504041067447643147201712558975035376941163306010478050003899101865625274810135629016974186755817505192334449687052593122363406446365775067177958383776470823957590179237153938907295920728845264332035062539306185543387973377744923108854068335422394747099827182864505856901890775812715472124655528053851487837021140383724378612036909428714046454099080520954143494378900108852940127517815746180564075610934535240455923216411101609455660603580306121341238148253363319818453543788658560417797300539058709921250323289728565377300556593114206543760053056089417180240495911304501409878168341382460958523690982930044661152141314814436303330858868529240971238725932696938659894499791293477921930405309652405931242808796106356998767597298421477988282761621028026221958472145125399285966129559475584375550501237529094041141662681203889887639163849127556337680419120051791435239998621525467029883800523220328204884996980799344300249997494989759892654865199474042879450303675863664688418900795108513387887441852731830213856498302890635430900044174257696614260633284499478683596925980722095135540927163098903644660778457759889247767012598707114469287172369602011326390629357969125326842482934012353692568133896192670762506209704194878275871435915912951380972751361413516073713569591719629477017512902778511771939151702702493775690736094461217277408708222152408999102051274147267120997203395281250448009121307104250372263405304225878749981025642742472180091660758121181907323421192150231213644971840250320920624171454872853968090753124958134901787374865888214836514249234120277047313737992517919652711487125331594050532747395409980010366526515522185842944653369558018715248612900295622996523348426794360457189783237472675898881524726135094524754208505150756803031598425001198836961910505133626195730765580406362754121443944910546368784664722261753477684280472795923338402412983867829989508683796275330686906177115362199120951478495688871184573996971666177436957302112463052327054976209791616499655086252369419298095385726421704779764826806975760527766815798571625320276654953127732618629554616648446777506804529365896273845865279789415411796957208178714350863274162673348206592851902968949900114866324377351492881435795165525060168785495600323848742224056971073626302641702459587598736545405367119899100409407985382037631862187386082268525478690657461963651065661557794371862496911440449525903968914011557310792512937850463585127647059683368404662702301020983755588525286929280175228000094440019525471250314460486715098646608223616524095467309560277300501380776184596054628198627490232246408282293428233691435297852554135473034098799991802393187759811208539766390395944846425866750573009948559701394086048022651044837714203662286894753462371522704392230943445931921923423611302364333632692932007578997308827744736066932044188305373421598892006221819904739962860723501911025708675072068019172215952241391816308215091645428090642718056413396493235822950781704979324069363684764989380973458654257663586890962738957267139097640465347618485521931508728103004791043358435246255526381549329711550287775078905952732820738378879547309447902785335122327960219871231584808859807082351706869608696426333380810094791204398504667215057804207201106877936927541143832146218612328096857592515585249750201768464441250238169484231595046132872508489557737158806140342125841299589883838474971334740956654513113674499971011024891702563238738407818983687730218172814866040461765480670190533213257192177369207453311884004295056703109507463100734885292350373714821780865888806086879043275108734243967836191830332693029465431842534014703485973321931004986118111481114136561146399714747271716722724140557085547825224214138974757474220225517232757751195010969507846080049934491452190651763261729789763953909164523833640706695374994509378199328124777784636166557991290145959655253833814491345214442121135224741107129877726865946694294216368094544220617185775906715110804049195839756006198974015614228541463205545718617219968427926460034036734670180661798469785771870122270731003727509962302555390732887264164810555490213908465948144167717279257313108463614668645234776843982007563070141593285738524958362911252732912097831030324966850086687173758868137089279479692735130870302931298325771443633168359595804337601498773969824780053514026053345153048434633952966889309337574384982027454677267888317292570455610520612991588286296820020416390417243626699192383454532003766978851662946079780545701694495449076418177513141622325147322829725164672479880407094099868563698583253270543231828749547811320176162561783558204934748876882912786863775631868259889843509681792055276048853900752784566483337758483416283710534200993790951670906597015731197421073671618751536863824976858858093237634371600871740201814640123359839218344968644542709744664035346040800914091530846269241876637839628621277416029727810897899798872555625441198540931058965557522464480660861309457381887532690435382648714318481199466152264438635914685445027183607607023742573028009716920843773215196121715910633112373884202336997148711312691433764853268964964227276830312417021070464132733940821134922299714677494941399729663522506356763334739362176341980517377810121964955072243149272030726581326277619795254575065599804986024275103540088940250754762084292202152717883351345644150832655329068006504936515672531275770729347388392754760167257708049670431876558503057904283663084687900336740435907413166813040696424669028029839038559646939924543628750106579919503072083522853260957830673162511967203088799451074492617032840893647622840645469425341101846387302168387199439915094766569084672274461380321667520428112865162292240039613353877536388113812815479468103748435974998084319288142937210604299791655167086510049275662863928174628993857096689787543407605294160585097606135699825223720937752425755029197565720691921042432614460507793034610023847654137326166046020521919984272029800577482025289481890052223197637541194387884095470290968473324888540488985722100526954613018879635848280624777529457787052105182688858476328630289242922087559912517259209940401365114207743906318760541051079028889491459757536445410883103615331795729555662873329507368929919360717610370603809135048830079463359433024756311788220878334822126815027131614699459712651679585305489473474561309347097328861838596131282998840928021674067180346947090588316725230820677036132452692571545951253975090891829336790797168997316131756673103138439853704374199887201670335555762021593589908202281043586289732047254408565189562995806558530933265461273693397595373417444022222006946186023070284679726540588177195887656102630891313668525843066966606095991157674306897528531631335213070610065739324187928411828174305448285406473831001761449284477021943728602108672725007392384600763758877545201595797260223272705105038710183319341285297588867983513521046773951878569923491297093218257102698319719008673348661597709442890833978475427032612668411552940296655702783815558093173312170761913748726360203871034619748544457485965678977524418519979443155626935950633343061910663442772022389775172127629162886011102515910884743505967489045864320930721633866227035537214069207627603366355841040184358698538891424319579723652293105023461011950349924599179421819946679298238658618204556402084613084180111280966946762049511703162219556262180676394424416744205353684824740489274305575770171382595724198828528554228973192997071170367692807271104072731972032064353194432266844853264895289128094084753992452938901807480861684431406147534629152791197450975972684914892829078097284360859336271761158738526347141285076291400951671003765045396943855940026405004385059442487135756099702240940056778252301431329177605690403594012775891771601045110505009439441523360927439841327622690436120656001638348626967684997733577379312706388081959378524212031835998663006203893657972362801208581636057232707236441103923670132715585756113043846069184947558130339846381627783026001271933234368012169278647638077086767176668182641264374632310589950527803514006686801800095501107052955996789851905511193691267845117143763310583186723346108661444203524310818045234959455403832019411774449837092584991584787465592584557430876450608378717417534311934689143760318030912761261084825025777238689954660211007970924992737180587925930387709872874049563626353523224914184535014047434036791318217521456470657582015698699552667408451143315269433185117751611120577903401378933215464230351643292437075358557961291855740549033948463593420977926658237365761930660305583354567721905533054921269053093268055236072489796809868451209884604484174399403415282904949191919863817605640092946729720664262958853280644977266285906238152597622721559132940223531393084192228403905292360966309689130628862541168149097864640111443867995109714117226017832748503192305405099766146850679276794355528545650393513257756819658158632851271796433258926289800317403361063252524897286250122940250053250829287498106745296151871433781791890925393512188115112930826511929910281779382682065346542993111648636806485887762258746464516747434695113986781225861118026340578505877403934627988288102519280603690392711026580657526090810422730975766154161770087624730931734292833580332972913623941349341016041294389567652587458186676596481429984714679491614162759382405131538278904103646760752791864696115686450647129688946924725194764833252355672921921333063260660270811281254569865543165734847566815036978076510698357914585153526501860339356610056295685186337889146164252840756218701854137409109950961172738096040459688796592012356792565464021982186345293761377333736986039612709048275438900317153876177645140531753933908241387146530425661763595958380134215936183047327970273586979120108106214652832245995979708473250586064087589730703560582918224279962269644379152013509819369814438232395773963303865740031793318918528869149463900655435669047663226415934745780721349888164571442831168289642317587724380801444130522373520330853989533767732903240028017135502592465246744088486267188891967278423345729598594194531681724570604690003148190562237367781704909158164442335526363864669097687470423658990489169798009036138521445928207145306194652734872956778913054134802379363798225530736569052594400009713980209341933187932202881086101852450149521848815397022537788417317642839479588437558780021421034499345947802781701865534551548746031392257352471881094419224972894437841299049344711925304852307917888007315114265729599667827446381343830681681766685709718968146142569079054514667440143212539856117562475700438570453560206698738211799287509200484782045172005776431330825929839380420765549456915141107713620364052370248674929071901866870675053901005573709864392950298386043679848154651881850229041388440223835740798628859228128561603559224923865052225203398757763555401948366820545820536142446641161620207640078480005723047148185201315589404030947037766318269742806646358771276132987273987649285346373187639757078379494936939845580178081988873260528667244848895281270638665586363181581849809518260620678461001893572583192219417357450341366768935567012622976842654973286381640242587879666082901070601893128367934077462279419800841234371987194373282073974519815833786693919373867235350421395722670778331865919899676797311599358979006191700929392726172162185539828742731327443753174777695541061178069994257743079465393533863253105440681487540971409602341970621088037162889582240217871914420096632852666258724629896176955422239619541993267929192552667074945930914390569280368994894459050471102224807205178295581719051904107908182582740579352090204396355019113235433761440271639591081981236062401982193402268250648640026674271705822455596640316737148775956676744257583984504941643997906209474613315562386315567548870386724713777739966130724216384136765776393048330252649470256064446630621839148748242626439900631711962853901765312103034258238504623286907336893560256935731034640680791416707556709369124210996414318078607694434461116917965441019342817752109614884444019151794914617322544422160585195818569558432157859337526372061942855082694589622202968410971943902248646279370237729882122939451440198232737192762514380255349469020937075354989783693161455919592582023721428251429638411598965828564561345360471662107707254156455217478947410807985700702923137272578844787172220437685674191174729240904088928882767147422477506073064994982773324911670639193545757593646646714605284338862196036776232436288815329636198264582216257151093898042031943591386493700323577724344572706633391040463053018210983879732305479524565966861709669781555922926282611878939206495132423189736977847966275627279771071331195241805812290584714731694390234815749537172800691014148316901195104821493213756612928622651070491698524484271746598076628257918491221688597838123683038606242954395641331425765792636045946039641222554671884338390602449060631067365628540492855156729041602713138266344004323718976401794933845780707384702576373613285900684932210856736242098217271505672502181473826002498286729993110248508968392421817722404773603589240059794805619942495603714620426201970756475960183738261037869379834716937585543628209835888207396174690628183967854629271293953109402147565886858379471195753582669813457334706515347898250835527709149222197943264742729002184817782104496544129593018305219745838416591058755959127279575099536048864568438357651890792546384695881519881218117416235704706832038893538848679344901176687699392393578174919563821056856935881220837204687546899467683293542344826478536573253299297390143237304416253230991754600523131260654764273330336384165688083684273568450385443727545461905501765105196872772080714199366886212743156716634489130925118296371070489380356854432917827012595293498532277758160155221414648531499169307915183844106233991340970890609899304646988208658677417302126838056112430992017658376575877897756526563928700574677917255738971351948692357368725619852438974137665988510983697341635969066016233712698424850016554994962845803086854844664780174777651533786297095853651314151159259328791663330717018054221421260010347150540582569239259962533684444027618800487122006109951216192013465257291813579219247000531815221319707668557314862388746825739396709034315806289747123205956991458382714570041171758158920370240001292457156951429978979089153623851224626037810565779812901734213232773887829756648611608438444336112612411203737431632199180571011734916617989548864753196928394888820269581986943468133958241635251301489039046393799090527633949187572178438340221160738564633201573427895351874219867291168065683865772313963779745895440005018277230680646452548282621591661764236842012860576163798594630880088735555898859993494937716084660326457618064572357651259795145456053081659797897480886439760670106124484490334151874999422106198082521798489008948999550203331911860512845241616839650146078074631566195128066459093437319532044940519351613623193039282678742466510544169768150346591226019092319294361234787984852020472541451926189649294191500445934312982552921615188813443152170203006905352711810742263642014584085099993742393126030140359272520273054118511052336734176568667682640783550924519763756055945448529684560542949958643157004811699700884219228004844108444767915640368746990531762356364369726485875038262750695203090753289596286576839923989072181332717564130524142723709124166700868205446678596317295930439617489494551831020359726145994154434870342730026576045794104983603855958534576203264508867964255345048476136331832074707710222963677992492552662258418037636122998620588555899362544971270645109011909312634053443970381410709012954016906103414445082236233902058564948828009566983142433834034225448111058959600390563453235125234348736104080076927573236574394728458040587349109011478666048702065479134678476867783475217498882785209514309788455811490430252547391979560812034887649299298572857313120603787848976003167796660488426949493826051719225664209700463224520788785411648737736836933597832017619110292105949235934922638555030105994883590883913059525679034010249102405340623150483811723972897989640922666913166484315185788478650847686982164043546083593255510976132478320162147818241879191839215349101278985658264050063805270722430306724546179403246327431084475999232942326511138611304624709747015373209187173503027943851810324140869781989325020266482980339124395112256888080310703539235531126882488026983109561836743459762693300217599396883006091736351356704349552222920820617939641925186055518513658036685806704527382730378939889828239686201358821296509999210174085436768395840063058001518026503273179468751709045875348036753328989526604003963950759095668824768673461180973723543077447577797156463868205491919248523820478874124110503246409996806466347018761623445362070336078010206738743380039167559824398211455693915762560691274064514847158330096166278595537120239244017592621774529228366780069097748999043263506542382858172796964079422044628085910887148701356535698334390250267267701385833969029634761750478577078546114036925582477860014390599300252684283849292836489569771820972890965797943834469813042824041694489934929675744029220799065228706342142459912347603928577272217277803535083266403597782002004221565640761412694940218410065519598577728552203158609590394061744525734203260583974170643379964948516719486932303721905525356676526820909865167311834367470531577731905634517662239684296332505400597824658739430522568017889422468004237989762322305195665462404528117190065818162178387023357702008814390565789890631128966253767855847391501102512164739238322379785101177922066577714500990454124567153648604912678117140476478520630176203196229671109470358600364421092345792173303444680827443339810710314177006184173807554664639300173846029971407193302742350177599109050631641927986264974509807910799798867406727560215243151717937152572973860001547013041726885470078700973633822316994727679688011425973639915618959038862840478636128492177028208997995401093699448248744354757590059329581130684591180215616391375623584089553867128847674118045135603074919082520465204244306575902045747709329017922139284499473667664650326451020898073937858930043357182109194482324741727744511460395111822666557985092601256808475523387571808674669395029520106620572530489157738658692071842987857313933965876875115028527013500166390914634291473600703502728576069469331080131036435476856287899350026224917130386824246680652552685192905583098821191174673521817741887865480944824142544855758454817313007998533900232293689017272000405542666846291303123998673244107453025861720158405502858763530539223741902892617787726339416672287797505730518926175397558045686343609909287042473463536345080568242776656217534397202013904935964207993917041210460888383295456783979963083582828647739460908108275453139523246762027013309744984029380711841659202155081951304690708342171256526135903995767083929006775141806779056914357688517570364178852230002751908645975117525173323637133740927613148477388197779117561063383524325756431473319023025533660853673120275718546452376313934358425466989156187159484443804493514293631589781646693709466552497655416251494827312994990128763252682523565711291851575516103666360466984841987644581652074283750510976080317948623478793662586405126671089431458985287822612311565696194774122416036352577562226659190314023550279836233765878041075218315467919795217429309782567565938163277624102790369003024685421941857180521678775425184300225760059349605193221839062121658960264670258981180861990073971128098209876146894489230226777145656658484671498141128966843412099917238365296728011206160729803500464574966898581774272963258800750548815019169060509426948055521095495175565273865404300743022440167785762765413690737215374253375863104527648784076190880347694816095607786391441247242864344500595266207810582940381090966467631301987941270737070771899366273264712907275101395734611787623623449484362224127082728464654712048659863068135802947186837236895308600924397419481727097218646826006532145912013013988938361855151702975763936591598163879004207869242611182623485642497490674426891524732327935384128959422202934286934090302445964047883983818551033166996171083162165017675924298350037675788919639960240911087964245631023635479913821831689389849217158534403142994544273425238441270202136277436903890621793169375435968285220299287722305653519551074659808107790924401089090755002989992000833316078613365653350418048498575431561875971252895362022084477288102855468538779781275609294027129914783294871233044998005424900367112371978838697491272411651849268093271993018147684045315160420620467734385195989584776309858153103180396851416816517610368048300131682640632547309770199014718497341279868370104874928969611439124589068981144131066529306104859382441679151038930024886600670662883367064681625178461894488005552954317336049903017004780398492039089520779685760400185809872509357227273143983865683035865691974584832229248369332892786449587174338545476025955009815791060491882478756852812752942183675001111452472727929572773632399820111552271852522280445602830132567735513084187493623274779789194357497340792268753790901053865425318884740058209879216909384242705038784504177956093291636589414246691344359146531310167336463842368955293435626030137791953470429225538161513004947378908612456974625073316221539192864377679919801054345195777616811006037697067723310295377222038834594531868096158183240788135473451572855844639156298227974774097750390099009197359670172550317517116847213284594382379887602807904752059809869475351327995585052592484206677653148975728499656960255890687719778194901786026610338574082970834902853053036948420303376646451672895047408109466553878381356370001829483931656205512274291010785149611202695506490103484631878614375478053432982691631232641667480714522866698031696072261428517065506949587592411155366647127081008086204352406179436730746198336381330958780091070642896158486334787528657183229417072517057458633175772615689340885452861622364030535172697003513022844958732910896430718009820322301543799880059143569413345731111633220522868867204641677925198550992679758277381121090973852474505792426965300218216040232734758983884855542342336483771589022060650515273049690445808029684192218977381501994812795826030488925331187993041355052891972422351364925892284432424941065267503634528742195830093357941686203858814145016768972713008340270917154063612619410181804701902800979617798554004294040338949169454950516484977338941596047243901346849832445651911009979893417011900243797464283945008472384960124962564882528181787973621457691451511490915146965594214858670142215898839880964520863298305636463344032890792182744432960549505454928848357654217314964581904020857091190357238568049021892151987370940282840718200177981209438511200716914524456408226711242142518985519952047542438069375355622543059055037380484059748770629140097934131381168528511478938784844448670235177611031234406996404497695390672755745041235442918160115409150954185582960622326638506055619404573840642116810835822053337431004012256324348896526537760477137413293579367162837635621369480419155571064801293145893508997216719921917094951860083503850097179683246963180405350512420432089699062036026522666121747138784560199793410920472824904194954207120340018088446529231059601597247997224340974269699822204507413274335250076999932732620375024914597447600280142019941128342269085942615124591278488931641032528198525396656405443186935136330992379701147409633835959551387203150748673613688736382893384271789276508352293842158756254138745938266862824304771807946020335999508299234135569263307073755896947296086197888865197085809871877150805628621377026578524230165776246661174409907103333039168799842368688441991070761695463004641754509719905458812963254069549625317603609170488708344446736371781679532067874971187694104209465351763060972823558398813878864610265481954488046772940974601946806760056478306157609882800281988183610817160993466562937570439867643824731087639156474075539766694593067791231189740613485672392506494093085648645323124636706599852744757575856785431417638419797782041471238338310991839664788283789874782970099708565812350755907727660515334644653636995264629095147679418796779896369892272577068545386414935077586827031687555615998129423622268056031105724709996219014264595660348094167171527151914732460480593959581472769678450540802702418351508320363738357774794619104659898668026834323139339264549690687423812412849688848320879621316791026325482472906629876003648721005427154031017057821847084974401264064938431641927711196302820151939889204894202740667360257402817988624707325829312431128093679159931094105296317368115272269057165829334957468476833469748968148743831418986225364035676437332182685276555286254006546522211428120654568461883253579903098269726657417881990872480753881053036954782153511743554022413543065201838637539559473933811985042325413419750757605645235119394391054052508565901552349206825800224714697271827607650458074255235396081969523667659419568420843255558909999527415305102206668053543053737807947207505625250351573240443040668890630345630328628123805395954261379842815024178139025679231770361723811674953848748760792283486774907154237568738287240918763598265301330713950552426003784823244772236378615671298312932546675137105851039318357370530080483425786276141423894261776491823234867249010184924588607167164932530908455402059482814326972992779094607405592862546150038839020834833208876324770561816859256277027686987082661209150696495624783733756833370709335834273418467390476509193079012837919834406796682175557011044861731695500959917658593559705310470980206166818796524800089202152720652288636801600750804643712181754002583194773856209345867266269240619506197323535327592197966388491132956199020553654839097928665896677362852655671132586969241461525180685513570495300156354394330601427834481698982435992480523797376487074648632029738838296450292798615620831247697207616822350547150046282491363341958575670210840911526407099196058645408189599783961116076938568786729824784231561653377053413830427431793154243372359478291794956870140995849212241873577535553441451060982224977746561459321773388508897096660903645455645144903503032219346332329580873807476180363170431062378316467375407336352684505838982207105060948949921824780818444199450900735703249759998294516154747034438747385293343826048615970461933936324786873767466559541839453044394834704680166268881531504035954036520208675480977985156400055219561278510255330167065661543938741481367083727376856577569391952156839960615291341266017424627130487641067338975791404178543017818732823871226949407360832815509611238360129065153983307639080933408789437599930969418758292376380360407211536589504839328834729330673200584897993156652665405124101292539678939361470480159190069105525087612510663927203376040566249886143587567765097395796282083365029425974140796533421959941677641144045926717290967163819138096424951367152422928220151764432630100970887355166961840025097358294868331393206198519280639786118395145895059046577366196039824813650019783104853834540315906831719726977120107794089432557717638327001581920326316222881464544695137804264204457933753941779067767577622243273978131829275727475447716727003146165759428872701386545270152060462761085006429841809262320968337532985357919538769889977855729172451069689594202388354585189039784208157140885481240586170455784699884329590379395041858366464950218233582449377421183714473456754412792708249213665485421834355957693888263751846920353614728998686184886538104875326298040224147464923425616456596037584365229880795031587819388154020148075212490454632657003150556733281506690954306470010164324446730944959162089161738710342440863138524342427639102596860880611821113147723103107812663950274598799257475687367722421975069082865495041511904725635168594030893487149423261005917524746753930559040824442246788026583727610030125428925733795768327574372041408623000851262654571530665911422806387756743702892870321839388239208627977581533695453783962869695068561495692145647636058538418905401366127553793259235336173500081302251126914328594447625502949495830536611124765155749409016954810982464653637459296692228524823300554363573221041042399238581667473548398652024811383025618963545093422072626936891057240795260129058995977369046213946914017877441437289902834828734063390242448291134118108693862545499182912245919127849848272898719955811180709854618025614710507649895772560209856379209991979537428830045213350669414913050376649833775447289995047075020864747806234455801750556331471690495366304096892955046942365659943059054015600628891125729727133741224647010041677940752889296921151887312603375484460420505324603992343768567635241832092262551129684778460635535494460563764984777314946478980634068365266262461649858375573913329494092354568410312015279943123836843586084878307134719575415730898822062677726874780684596619284383748859816469413382806678977114501286559437918156136305659938102185821978926182000872918204832945210250106403096354528241757062506332541833923896148266393483913860144556753080494526365651863565240073965091790757750012889102910724590387735607992433447887466756213820660360139482657374668880514556407917331847285717346571650606462527551386285502366520359520049530145964849304524685753351281509391370225004057940826323770848147220255762897704407006177033418594615253549984160587892777190670202653753793388779932253984971465540141875217190709306062053615772117496097305570144601460262196153662424660342144997562261359263706508495688240030380469646976623045851379366772228856593840104089419824010076846440979457770847614142543953149725297120910797698502562524769782392685946144678518885164396657489767664834406299951922420868594618181350224859978733713774455586700045737307285036804072816203151334828648263335119691469658792381521528315946928590078662163581154505570251191462218967688659484831351486711942665261275898102617264517310874548417432900526548811891737339501441202001565549199952778672740579682045129541199500104881392863920282833223230408731851143305223209316165677973664431172404052528833875792300355486485148054311804828420067966258620387517585313387188693238516108179645659349533471174376926092484031659688414204693322144693776885190466982530413229117345436580465761100655018924816732298161598992887099376875553227370456286955745370339916302650545072578216768856060414042008246144227492095076320867406802572114009343067869654676120799298086121139476529728274142074509832609032090953953208893220279267127191321417113386872725988413824146005465996607781135714780172501221894124345002156522432137138757715090371620835603071530394860274681621645971734814260532849275379799716098899303617055546768291349675874922636147062736276423233657137574658800927741671792076588798335294567914603767612506943059987291253522405062116611540804228126210026297030899624589921736431305245229121100813779463765685563000454174140887882217056118487227574524585142346832323519020881692990982130583906426265351673580226914319824172295102708893014454889235200112964566809535422473662190551863511025460542494322961297006914455702700182505834124055141303521934241964914313646634472768831154571221063607021478386571210943735847181049728553808113223267966398767960586778677798074325524645220840168840601395678251549266862973540053130934208817262567026669928081629678940698174955216300376065273952373773983310779468390320874055127019195380266207787827867881121771799240315581177892682759426253368809388248529068658187307767552318156897727706681164763616461430094065956566911995591753484068631031880370495837605110674002853031159573799299695380559464395786187792921510474627153064035809241774329452438323063776543391882499202581879622109623558181429222810189365661996636876198376258095483526299545903497653290059825957115793864739696275179701124095376916458963395345163276656900448370706672667301160428568161116717378459842266198491917028297097812738051332451007477403849159195630363340719826650878950619771666220500307249772536014062713510896661233312304252842174493518933277720084819326132398962909635109836950264963052582350319200091913275595017893269461758851126654882328235506188652405233798002687112703284704593454463374704839235211156357833339124500297569810687180032899822765953358367010764705840811274231966294803478076406073319127970763265228214734228992257992749985572532980128291762911597055848619995983538532098512611083781398124390159910565476495196820257119971193571853421876895344364675580745441252013176750116190475584510156983829855922312966407067374738281589142312948003421658526959086481114137843537088481288263781152199494050510088173815042590267010985962369030340613870792483402365701441489904713146630197497775752976349082746126963657477361300662768439529470383317271688668533436347427554906338732692136314890286615893960515703976148112662780067029384208307208845196586528606802025481613854414575944926665249103310165914590748508660105750120254897030151628432147031167305653274595667751870208470335759608028804360709657781164830228049199250263772304321803315459556262395693611205133405297079216146449960277363492157254474794161807243653491167274378836910766226638869687177797314442414806902886888335336997832809410744253947697443842337204194506636785482441863337608355417402876391652151442613533018828193303630084591229164116015415730707032055004369120968177278360164354315033462978643499646087999737832160610358244609501709912727517382110883318760431436406829762854428336239989613127571893885841010743074869506585218947339348599039834827079720984980442071553791373549308612791812918665317506802502449221751412707741410832907721045142151279272529860372805145897256834557818901562989335805488332613622788944266394833349022583014421603027352055020533605167687130374935387253513737780446933636533742679792408616488052048689476991946570467388923233672500139028492682028081046934378387467502135948474202925302414818876445594646628451755030107554207627923499197550954757047144231424865300439907710263157718106139236319726754707779766608609420308936286682385252848833870819718930162459412257997759693586587143732045500393250729664804541268564405734479916380249506636655253002994561291992891245133408741263744591344317242367441691416813599905044949679583604422719606155961487534326628160779854904703252724307706446961520311875002946556619794202508013353220231517791732594516664154423982981978683661064132827839031999295094040559614340258642549100576542676333919710377060397180966005210254545052530507642388375522713007535797507616606378903604818314585521861139720606508336960277381653093203348930366425618574149408426855483557617929695409268192682408542121873872556358285164876511908582156846511087562456960909585662518889623927329783718132651796545109044740852334057597065620501939849946115059189271361145936518111305389076175925569683309827613750974244988111670530145826165659600885810765494113874373844377948605906148613476493739232944948630080098557851999899211315844447878796242767135768205264398655355697251558686948527893951197738911413526489051596001315035521410802690158367427124847333393475262579287669244584797373702225743568624711111059827525697468307960654269233928016701618723061397810962471662471262681018725994854801144651299552292888861734500280853769713884806336808498050117186904821166289883945914897126072045017819121114434542978787766646821243691505211208621452921247999314559308925668774407732003816307956950635433313550656144952687558414189172638732829834599765563037327401239620574683845931548369252740799361157850376792121202755315345449819596841553197090149095897501243555002130216494483239508157496016951033607612442900656405414526102371319586301745816241805581226498255982453445684407251947227953783285391112618125535852554556968088614060200296093824691999371884375161885877014005514053966914909622612694570462238361092376882288785246520015740764430635119651479701022614170507181312507286658110507688447889887901148170176554291454111355146053927150603333558240599339948509740211615978119070088283265209990701552036082798755834266253983617023041026707256532700282937452052223134447163552390380954396909287632038953056571428961143636017639224082096899099183777552617090628534192704899909349528786718169985807306892998589257831465894656728235614735183621439555154848878069961588540519030581958834410843398993201799684063872639517550593791784474445827557530903345651829390884137715700364257718143620872545228859934840522752554078591756500891451931431096084246922648685747003000387590691816637500534974428238072179897386647737677735535420262222577015154290178769297951399390522917082092340515083025034069368328545289770146282513930133543322600932152501923284715286552326516058312145069276869646471308255661550303280157120163939678504674056358126491311952061288018256458836674417094325876488408726040256265499653566435749639301236013869204191952702630143348370613597752099614543787307703673704132053922912837808204521956239741534364819636514583585536464653850883343190206127117142392055896196602265195766111990508487833574236834433975730818969775248517441146840549607641965907116313105586174212301407437875768906919889676933716797880945515299239944807491829195784758296740723191432202527052746934392461947884992170192491774300810748912456945711490748194321474865524857598082598179224169533191586828675322198581455625086478240351932879583672611567099693712539646512136479185649726466570492890710650844961472408993766499101056398169978551090439093204606396895138378202775967746623571556810530154671980426708497100912876500189636572884263938604117436534068396605859817230114219546428630753917626531220593868793403975880285700813834824515317542961742504681542440965847451309584184476519255401097966393687918952317093471545118595289774780117969689061032962934141245926075722526392718923927799981628627605551391115420253651817055526170898400979702194648607959532229929875067487109259645733468668522277876945537367702902588325447849769008721926746182253195648049149306515406997704314838572383398643140827051016469595302143375783205886954045470212444406429676684063608907750981343113824775778320523515185612077271382108648915667275337608806430662797131674408361967497707728788896449319086453458166188152979794998326540547152298636894478501212418356921976277433145321959412747898086693040535367093508281151448268170300723969222546245642491570879396460748736690286592245370177832011256486666091104709850532365699207904192382692405883014833406310960813327270244559121139911768005614879117324493240979326659806283298008821804659174198039935670908520508310285710695795894107571692688985355806916495152487835275754991498785797252913571715603952567033162315933067057549258933017804726788298069943653175731041725950735733908665780838535702136960918423983899765747827080704842163767933134711864687207226377347452820872433369821493491627190209838374304690001074920702353122182226026878214752465102629233351081052975340612040609097224124747071071207267106741313974646109967831997179994711547771198426850584836169131724208858704916584223601172186953062559327308840156201467076784182667138968454295472456464008260877723770291795820774794140260211586977525834170111975166559316563309308498640302664292762156965523706336633145675949023903935315342626204519783980061608883875483175418525112479786879377371595736047964490405160233265446383513049893207800467412971599613697814914615133834933229073869556149611497646141285370143732434193104241340628248838613640925073499372977783743725530281653646124007920972914655930368108709842717274785733170766199188745438292154732296731652134641621447418956507361494242992817812146413982499612256671941767794075130636113633259266379041058858864565903210350765064774410294299956192916126638020075477430337736718000009712000179438121244045350819674286665098160363785618158461646718331796393945527108210512064931573453103967800036723338207658472071404146945416694772692716254696215995270033131153495613340121829333807399993959244955404866541475381907156750363140793679580723340469616343860455176307441256841637180293160522826054751954782005151259245448367520213978727825745876219949781240387219961426896289463300128222284752618228170678797366846255596204970215481147052617695533628617402349999412853146753836298295370852996311568773488034247548956407262376095067070028893926082915799494038184886798628602700922401886876808663131570452344825419814681982783103659506944318992372805660865859550509825154353479142079786976081605069081784019195176778736802442046655504215063564860715897772535175247757614957676643963231949587396453188224593397495127999737823273972061460757913360286414847491648563167048696917180735522086950974188747848846369031357380625816085762513972327183025435601310798129268545766586264168425194919031176785898899937719647679681560014759720235848560998474173532780043966645824895472906789843898718107063415443431966579679836301266237098537997146242420972399663384025190590489243702057125332513964539576363732293407964753954416094663912120862876043644194961598656305742555332999984758489088443031098474906379877306631949183705741260157404886856222307897366274787118590896511870908853226286057798502482909960460107999478770220068726663762446999281175176148204777390818693424350690021868513045459987025756632888528373534016681757294642638064071586466403809580531258797422174986387137791560950020898740690062988272391830119945297263507148833933253465039416757885462537013487964696764348751770774779807564263886829838164078916137915853558571935296960910195410102598185574667024206949763991799266301083489038473912683252418770175823184336096668622166695766709843093262265358112393198650740982584397100699320912554427120840048059056247263350467340375203705258574060375566751633166299265461534876976865090649063334749295747124890583326891729714879095342169176336802459609374574522418831938644944434013681286830432430302821742886828939290572146879530341038598975422651737056879137119833991455238593970386156728738377121849605765507208086712551305881573788905892591689637481617576885574634585732330603523812626043249298342988185519539304050056672604753520241945929304653025372329433422402272286654732503601198934372949007347018909360895778646938583617360632708139917768806714420241805631204224193455174391963298612294791823462406025360031566245475237823708394195378415217982848028244026261656091687327433787757023052171996286051065348272877450506115168009739530626205348808301337253457433310844751552024295126990078753702779799245300985699965953323922830494477016506932405972644246478783613463481069056607763065526722206045217486807876312690687505068316211052398399425626083991624660912191126129581042904410748933959533232413283927997027199274067750742503226255535059960646589240251267034526472071301306357639641370610838168263717822426181763327664770106350115713271755454998981260216347447119501800749928012592184236495691082879868851018812658925918108961645845749102455809506950509015210500243843178713384343173079514415250790079142761839732654433120794539211109052567302236985026013723429609002742641423012586914099679965303121107169505471639858949025194108906883939127337953654175583950183331169122969402671724025089737687305721886689541862121294495590870034086032317082426492936792836915350104544032133774250688062981427559474537002248477883760432809197431059780982936156695290448193203783482498696139768870902538748734752898144607982575812804104545211421596618287966616713914805921461932519095889358392707666059729172313767851134617805816485729783679021478330389577745169536386797258725096901486233842621290264376044202794751442327561450391702218263360797726863212655822894907032900249074680915552242733818627390740959509234076462416992309544592273300463073111443558532622476985295060652376168581177466281637695651547083228479922120074612184814683246258140407535799663289335558539565530888085756433149538688175061624609326179763688377116572411585438269772943072881579702663581468626855741619651609330275736756978819129842655186086466081354103955441817295827173922819964269092262618084396116866504291771161224045968479689960720745331382871395133870316684657235701214522481090225985960336846217771329794610773094942862366268499206212288764256580001271058070999411390715842560218601725062326910219810860993373107697775399352854309955739049885566680162255420384190724637843107716679782962048579270024325277525377536676895526272778719913887549861197018715253076368132834481312001318119840051027515200664438074581189390947798930162685077870353292465025431668827798259849745681088115565557362890539125723461343439892719277403534281169611432607429225682949429388509083177072060455601139301736963948781021573863340981941652038202230154414314318172244043876914435215900176364266425996803014966305950758902225810831591971793145349654382650317827292456461631407231858187075589263357813475819809992974801109412234413906141105198106820931479189413954214664455483294780293040548880862849147291767202626338022786848622132228475516749954043676087928883754360483560831798894403812112034585251736378720162988328197718499059819086979266066552952416243141441305811031959584990296725939095444755592913730712355085089993334918681192421130774413427303107601150597568245378821224077822850416111687398462309377177822037903444061182317935363653072061804623270226184753952050934845321625307335433926837183788521369660146431406881182903312149164142151788732111786923874615191975065623364025075076818647101912312635244502930657619144363462680882382917308169495025042410003150807171103628837084696930582925223189503977027703733268826278501034571490737009946056508232729084150415044547512771192497875943332656882477584236352889633359619675397477632078892266849548866538601180588804016340310076523248180499709920366259338156453152290892807176517569535248107893264502321058533377363982935571675996220648767781829748814878502004290730940134087309869628710687870322338366137647290530964656824221283395589356149007672169800643463716544740320231485529189588233077121832864889235336751866883551584138875277141279314091181396619721766949812400206330739967179852635535228276376876108270972564181623581616747805493244320018532671167987567591183876412082953373911424877304549322292700766694249912424686424191570758033816857084317107199018346177400848159171864065872493471485316521271106201664587534807021454974113592054082544638824161632265781016167401000949393003507271705068496095846330946474121420452317569554544597939058636289481069387650152878676970362298962799969981658679451573460941724999556050903486173411522391007485643325956423468779888816437261885866199032929673203955279583913358937348900663828109625775911777574164958114970017960435233169590168723055345829045119250876838506024998949963300363369946075003410956890032669961533629992970952041640482158788973384426500381439938214560683973197397706577576261976354348986330955560411196322620627753577644851346212578133029556695252113907178163879937483513655624758546288427185629980012399289820306840754306164870125351275006404155757554525011473437228166584064401891483677707299804302484613955625366408374970376661935265683611041912031328505778329498881009501403299366993497082183342967404817471095777540759760342687746383222802775721516031235201714499039129726508142879637387982935272658913662683310527762879568017612148162504906595392310279555840088031383195753471567369757734833649443299137757053704380451710349770692596154163191436633610648317233080153030078114711590699140461951695404370878702030318011556573541499417748241241494719723552823305775288848972336383446071684992204658222583814934722701181162266249778444983984757295840000342765039125506969175501174142950832278571858472524258114386262657914538354312940881342694240821022716133696844996362834003743683846856616917826100907469707730014197266133129915394168846847350709520280828035796714201824887995719270477650295138282198122427862536198805659315227207588311891073833052515574455793587246166340111315440995389962470288438271145340204734800856867693727334276054561667592560710325975119352338602727677808285984715237788550583755172158745141480396140482446203639434038414139234872265109367370210923629708772026911533765148240375019289336821961289714665926889200936260811471936583571755118710742053848853788829180845080743508954301842407417326568555424322901507319214165887065149457264591307094726624075262800007711326713986910986279317091551859127190874050568610618477086332875936287647037180994942675585839450275564674381704637670476599392123168678861502087396808841687685988654789302130454885560972682931012971995972077424887648267549842124965046743815080140969387272255918569108050046310042821434241452517790818579214180791387114435030497258640627260512014092463752921739576437457492937570417535153406808145260295770641436517713333176961916478128065437648110907047066134713497394829345299781173224719898749131454127441844137523434844801172999221195496929137501898505882292023153809569314369163981612725817062317401680302173530384027455364250185833940603543525005468838262096184634427710158666224375967896790011201627091015866834739752305682268051272992879117453686390586156705953999281173346327732146524000442586656415615180009289574482063831710451638691495341031585667132390983218066559290190841564772481919813403240884425669115945840491280842543469044215329126080903343622096892184627208985804877419052979476026291823303095991562548576222735037775844885455795803660644435390085282352607394124225820145078776782329643335014103247079830960059304459742953017053898331396665303170524449521837632966380187801699328024202208597296254436995739897354803080155451724317957823301038202608475122833274113140286627606567859795201823274935008405466602577693178926999069675340379517940287181726181999100551816225300443274790708540760576843616233916137175062464533692706967254545930299595371864401604102061687178130323063035816664536581613574862202429583721182789490735546615664875884422597151870298888368208937238340260929642962487583469943162985422406235919340796982017416843018970996067978411746054945224382780475873196070609641023671139588912589672164341820716597894965105789313094678376308501774211175592464185619202659420484863636169678047051696541891125669805965891007407526785326990379165631893499777209767865500407701681610964545621781957811954879619412431842751185740343678847682099792331670637045016468189437334644779458946629738047020400510638059893992368010773636607696543100469594614386343580924758794090035819295561586529948152792139597121415219518414043050995812373112935194098592251691941102519091465151969383836998287805405186040563302630238370212726076408445375314456297793151958140947306302446100139316200392163517399745358581972487910735770255404021621481557373832948247038157071183761673368866171991340615872421166243088852351177748330891850646296135386877397044644620406668119652980531566653243770553759360108747177181493133106411617540085574159557031318595260013213049064990171990565938293843087937025952757302447796449419461748177573096184414047340451901372290738645234289567415614198340899490971087484380166855316067598461332875972924057195168366991431609499611887915793203726574952494212159235609776320653351976887197614455169942925857654838563857556250030075920418731648436486316225660125714491649445266471299959394719598279834026970118148316404934021280706184029145009787816581297476439276596985563849900008628924061288023490457677673552299102704975412528407595977917565724779750873513990520134866402040876692978667526671267388102177449312943028365515684647067733092692918230304600723687158677210685517713304330683628887023746440603134100061450969295449610824712863083039093134757320626298932344693591545344153149425444100627926466694513907751512566923460945521934192093009396998243578662383307827493948655968944802898933309974245963711314984199846134413669760835531434986482455655526353396632200852605563300340875066816003359544432674964670407768926102944463152926451690025026944168501438128658791652070075743855494834327183748437488085921874402870975041366553740889141225631581768644914091187346635710721271847591130089692084010599845059654016676929777496171911976800489321859239734490233395651201753710609049396048128195781265684134295744722141440945864088579080526287270009681356941755258616972188585999492208958678956227690173990445018891858611759569576722661686390162102229460438983008024886835647229295257131542282528597212439708070741764583004514735031269301588553697820759590503291220063235941823780557328748790977343104657720163478853000246638160515277636024893714063530236675851016313942006675130527819121287603978923672022138259117385824036774191658447006099915802030321532554684168504496394920391314323030351214113705738153802351229179810883910750806684207550558546457699769032741707709409741205192886973946759387649347594108029368938613230404495439761931380132085265930493351233504781786153529083591814610149703735567134162571738856600591604228260503072382893907252626935790267189814145970517894360228851690444204340882242167511322004608789387175040299273581979692858896184405308721905183782430048922626643307065454683779162613994240415660687525084464240105010242498062228308014814286250002811388609803822887105250759756432284634889344521109769252867684362029379600208159155148433051571192742679244512467215225552101684250261438391221418647688483922776049200312458683937027507283935947975747205738683950942742822802100166665801412888469426775807343270576563399613286581455706407926412346473911766142378734273713890114638336967312741617386972197475720136268119991774763673868086805512618287708782929812481165565771820700981268073276177584143186982586763859481291484093438005624752377113998690428000782022090502868202430996964198163035381377090753758533386302295534088127956894437642436658377015084052929538604095109826965603681210778934036341612258379489870080180477482197236217336047050536139186935908147235486238509051217461584606988705433132586966730835207455463704336825908382437126538820988608361647235143936846855828588124803649416433167362310553994265616813658941801124873260692023220027622517226267506258864397454404029147615129385075012687863963334761497998054495391417687749572552723332960396869248595746286715777516272267397663132165042645212371733108217453298308783386080005198904033932737488115175612113804644360100598844087535877406536577658527993521652755470585011701675752708528471718448936062250625642981546230561144539159961694630943545691643348777463353612220655026050120158755882686903912761636347915827247590375276032324180716752208716790219180561863781318995994736838590510229458779004002717839124041881831149966212232331476154730521975584868467322482022826232463834294617260410134509656155569032520962951615549111011313700491127133224461854626392095188074794358047387468454883267506430914513793891481479129601738513876601562917174295132625904982050248531699355047027117966704182822900866227005419809259064271328730144999298170278377662150936030305190693688303116309057364956982688295472540922437707258694321189214133253280504949820136341892252491416671784610165517931768106000796196848823716727573422078844444153085572593107809366275291279519883007296952572802887191233253435549543861965270337648592775377579583224569160616431418212650343401804904284572933514627147315073022840109267286003010260615125606632057639308085106338814107158476193773298579734123078248402227364365151164923779727376917313362523943964862567842777206554495325640300938052928231545711545979485127681167307280532177326726558470510185636239711947643638820444501236380186160983253642592641294962908155674413970430355105035443785518903470524561198308063351451831686680034632603792360645233691804818326514639821118553304016722257153044520273415180399640302139809411926005189100825605374054393015482151280982582200661349656652259008190331686129339032029750268189123433712558854274008349042952624429611017460052864611501931682911913530409832814219509434760176645135337354652130467849626094737650247729744842339633706702579036074630690184475147363277296656326324679959177801449243625629341704456145622416729851522176183632012224523671754908604575912092610746744878164093625519201577753765935314071843792895793559125037970734687515639219811193556591495544794927448328015090928190185177325691660828890185942512746343952186967158552849726516589200761787911806412874581340799845417302439562103758417165048835127432964317402259938517219447081237007258388690573181132615488378263771035474086483854199179662332239626693601422038773173589808444799924985227267474174303776768542712945566026207894560558975534662129753098621640515396333486566531913866516084453135319326713674845417068231748042054520794009873947081443512662819566995835687240429550066558567684712015941235966206137122136520660115031504625012176346245470121903827121748669570248743972111718220985498342345460475077467084078075587540463012581341524062829341831596179618209889349669453107627450021953179167254960322396247616154793659120288397862363478150321691042322310226467709747752116790115296703637754668350065637442100307550357988365865111989230498620242984513405951669163944223670753649695169101222956181287716392239944127612157500598131181200252061156385636643946602875953859858832678457737787191618357421583831820627889255804923316230346748458795514166561713738763029030511551504906657962646186909557258772559287674494393350122120058131060235631295301168669705698607433914877059492454705181406625370522368632086288045924448896384942485488979795597987784270006318843974310217477045170491866706419741365358672178671442666590405195329935521528550694925680633223465386998115407184066922531817694293928410861223649499504883733721291002057229025086462172795489672040041900452986195869432410668988456240295413470582862287301713225307457129574924051022427226659462372111982161546736255139072786904074836937528206902156969445853130717733825723915218251151352060101353168888924100350498493384993759782443156476871162513991867925936488839089724077813446018672733003547341078443544672849106629948725060214922453012391210595003280898041651307001358045322058977216289195471778491230764433076769743856492668766304897189908089661000798396532647531099153853669340258494141002075489516904728270103720909893170758511440012135399807128477837106113876748167312502161615264021596475395317991537604182851498447351093414062135755563038393423466750918586573930449175164627095557332789700388873974608169755672516952451969023233121424042000217466403307625990999092959325287847153334424969567618825025413682760984732236286474837202225758191943380783772874287089499349656930974260573774289590885264292157891011219749490482381814430027667878760448466484146925641591493187889854995046504220717593347481405308791923013691103549578119608569396803054462198825403784746674025443005760842673236048626148858340801048383443353992199102052033948442947881883850626022510998749788044529452084363684719390232570582399187589379677421352093641137825038300543062719337895732711861307169191722246320129756934816051375080614970730482010844518179575846301684162738806176766186887009522796301546960930995443781524275733537257030185596357699705975672513521853417830211260654417595943073438924869750572227234648161109657863972044711103964796117479051718847371960114021026960814523439375837562794499840251257024733144399483027358172552937272387671324146920449932678697494432993793631578386243312726379659300463416694385730397977431268193671895034064034260635382736312256955977082515061372297221410865429081993284808113727576816760739042910247800382195425711486680973166038475555581975159308242701198285335788660652189173027093505469252914553144187474139761283069379045632144862450480320016651206900351294136084874672704095681971248704751815833095630271926814776838033539389786178151319189004893035822440159980281823197034070696679537111655316371540176536002338116405329018048000663964221017081865750930176138364585404990302461722289163033732574226688009028134122204391751215149879337597524632141014885174716799733463611709076586816849279111070263723144819439007028483955602527044478441520240233849283709992733429033017922224546926840674997470232316592539285320892392004636277539591773079130285613828597657356764062490918378127816694048251395857325946470412454587666880042438378426599735926337512181643999546445565116396060941564150675306871373644713884783275510926247492898898961482026863310296985932887484282893411686399461728465240589829527647260980943745464515280029337944921896578841564204131797601509615647025284736328300892071704312317899097158488573456478154710911461316616242008146868282684433810163658872300513997440281363498726968902973870673926072871701125079600265829736032045448516217812399003771117074660554146915727091732512542395398285063388618816862422692859130192835596180129669393440401375325978623108962732203739163911775025392642349773662043733075750775292776877555953320116291361303925484227699798596130502271629127649112924917319885302412232746809111119185840664072989702339486164834018852720180667017603733375338321731049916931199665121508589728901025167272180275123192680865373959731486279612923838066371303765801034910314323323711726891855872592296069823929791979189710730556301781698333110531463802869558083494301138866470174643309224355532505004734435748790136475208527107359296430579499852086166840227163123144987660921940764585339949193799140796090338849490451628246819400136134163519267390124263930672626005134018346321912484200920494088344329577094178807382822154078785769068145210875970168975596427748267065673569162040010699159067187148619439921160260883634211893672233345753027677721862322274459228519439628117598807189231455587320130711687218558515520317742551161536621328984230032918972077291925855807456437376359224682960827156677834005995111736968008441787825571069172380798678278438492984461599080637818824791052743439763599149340536770143696176859745287762380834215841586873176512106686440123165595257080894041376666087451957217873992430277697661885521589693562381379886847231247519829631011878688827954305791695656001291594548042512563149136910861878646152145698294211057050532308595720176265987617947553272603210858201587452540704240798065374879161138060055102657761305640899163979329539654405680068209890817222510834595132082917382882251797902516215358624289719673056286830012962499866105520245825421402296908874314067020775868345015799605860103452079087593010683490151763705396312705014911663697600401054565354895206798057017936348599738488376696085837368532246704014825302318462770657932359154779011086152209719670865774765993145699646471325424347036632265943376363737430560825672980270976041360040557542524976373809814048085749869796193714894880918598776292210847186495274484992771894985541698628264468496864072800231524371874175279827905525657184258177399849630948209571430030992883629968039967767827827735428401989094814674765926688339288908639854249392632257613620596095953885810038932459524388299456497507184488836609978514810402748916137074815138038391721194355931953792594361486497235006035481003849589223982098016583934424291956105458623084085303233293350070246296513784291659500586705473051002628003696824730450685681008827911618658177637184677382719928691717553210229731395656266201006365023498576200935348979966785992873246000149303025748766264638046536112600656736719233961098909957402125025662483862013709231101445126115507754912696603480398565822574543284262168921703043346523430440468011585321794243244009612641058509782139848511742896522205748129816379543451650978340076835651255178865745989046638896070035570319582608643195493744770419984960795223343291201341724689412377558530968386067595208744680683413787107212343240653860234587729238284175284107988350432402789810038078707651114154755996802132618274139298930004297707143104538854645854686279491157276920893813262987182800278709051839055989350187798590370059633595452548229867739756967664283193097652847007590219190037516328528094315429171460839705897181020567902902677956551359396611905976718756085284454639435308843941417797055767120455946621291275726914472383053264408089106600999423202773506041716499223786311911776120873292977313787156549252843602875654838272361433934535343208770690081820900175837588784037565149055499397277728277766604388766081981608017989303178047934018987700849137278935590825863826363789717606955029516280847391296493050940869159910819728382498055319628234036286708802359863233294587377388299064245989173312258104914654890314088845981384580173557557533372296927462280117130730696070074993867454957450994003652641443786999327004494170474410575425276727889362315801358139241630710020714322903982814575871134233968993661545795320055603364491219722789928508188496315281289062738168391817428656841708366180983164667398948246729987471544480765801915734010880195281371410673142158703477924342190883350097683956996390367351035434232438408840010112141730309963480745824745392642771596199759855667351352346566322298163511994823699535104613456894127525433159363363220032275013394544003007648583489527835549382362003686505020591753904604190160027526893795376094965261586161589766327419847125808679984560418011323325563121350754982484404978435120737918071398659273944097946634444751728754177737950633012662712316094740027189028515709447293796409325789380799682850923148517674618678064751162054850851519759133917757637862412114159743336300939374408776082253349480906438881149983227636471318451693347982420005900102587659451385700590019583384225442069914225423365326948608099085499657124536225687371457961686469008963925400798709752394039139103889580142304524994369741083736763325925740726811167529714234724609449566085525545863290960568130533381108590873144596648808367704281908189908981378234576674478370023003303792156302820748515522522039686084254709395946106752784981475402156844946877241046777360339513923999595490632156010218106871681202921699538290041792915297542766212792740089507784216656325946240476482505494530359794614067245960677948897892171584003140992438183509745850359722722260014775373984043363270460463167483582624194603228597927609813704726945476171046390043552254007779171430238077998276654713991225746035758744202416068922400096782721539463531575190402356266142732160544462314616691891395997207487440398480187307249126428734995827706934626623937770515578905284416023299812708961523486009097695265546671978572734873693268759352399662044642616734557319495561501665911578309231631378205914145683483981762875589216147441040792363813056201328075125892497638760422155778776649700656922475111952317475015081157183388714961311165680062729213333292420882928222580548408712953369886403844660977907180190681409302389637815870839326330773889336449934182478211202750890602112806625174530755154367085076103978640707642905505862295889263222803743429220823082119394355945478231265767466193152266065700985096574077394401881538742189499785274749049676087254692714179388304388165896704496415903619212848829683817893176517545866490357602900689776262823433076659556409692149659784177166904516094089203908356658037375938571312358432205849717458246178003724477288406373573496530943237146496085376519211685429982971876974319284711867644964373414033424561142814370108414702070016200030914553738619011996384172731480490527539158772976136629479335418698460983114729770435784221453720650061111719494974124448728250580058153283659797474192283949992121705605792112594991652152608327964784285647256219535488943607704115898853964547854331043348914092653528073100902662855073111684710920890972501530471182196501088928271194727589028232234313028104479656682128906726656700460420002974061524725022951909674634393869421475174302207804902205973950530170677569733462917011310207014583671934365217806087200060541581594532322737050474422759775896835355135579476955807211844370172596444538841661955521376317127816140002262157707126624041323183107943315787143310732603313524831272905367308866777799938532413424898606378653971731313360195218637026604577912598630705482806861630663108557632300352021932210229458252837591726096858523073519764130705857729445189003035683985736289482114222676996239310592947406841051336691090201189789100757637279278875201493698491700968192359594395847615020009885453101953976506879675026350012801882032998170285703872489399736666511399471175859399957812408524924569897828133283223589504557260680352047548790645288218056538976402890470294089220452442013697442652046902556770944974060810890497594751291407990465498241992839956348178997057237530192832123207352206679801937489779698194815121802679196733889430788381239212385860220845218103064381634936195050080894297212037793124275643781362707795137039029598930956613120621619232766813781467423260573949537948890768992864530266958140212108613728877263085339631300663100616558414968789824461958551203485581394855912277911578438603031288427246081946714082801265141834293810680876058331251120267228857239450215169692540021099480493882551048111356476427825924519732717807841334908562337784032032100243633532697659754204896154003119269562675888592819741010153606314834618446178338619253849027321335402744365481281866529576380822201026830196848481457018148038278628404183444171524735864371589555958801920057801113087350458671668009639859135065022325934793783931782381399270148703387184164680742319563124993192260643086311569850848203630564923938236375202130883885810758853211431538597754809338380914091061831172070749142480441905719351274365352255524535574242340190659378867936781076858551148988464270084867199361808572212922486335776552422327554424146299908369542825191592159353063254536328650916763205738490205652420248615915362608130839231776871991965711730183802920570109763402644500124227626541973063798904115301573320999024659928062254189560604504966228516556872547036929665205853280107402199733022253263186897705549566139282924141379285285985348959577069151372665419159460947604460130790785641752758299269421844794716081354609245275752356878691061328332662819992121868605299720327210270292342393370352558037491775886597685073464898417030343123009117785200811638042327424625693275348902613158731965918086513075183685734777013873231756621360852167938932509046429572319327142017085610429825811754296577071365982124520503841078250650855213313345270833264575217090917982376869967411249771815282296248223670195404807341297014828855948390407550173906258420587273566322131862025997477641869106618679971590727334619930669156903293084295154897872602680478860236195816411405102293815149956580694939548376582074842242754998675682288166376219601156777379093503766448483702795322051546639407234219660820066898457236404032449208084423282855409348204761270707115084452826864390378247912463979971100554632451672788293404540672484039092936462648920401476203793989245407947679033999320091724911911003223296677004759211566032901975764075270302007253414938243746053136021188002820907475645101888113487671605698069675611919085349859198836908253623728843390811771050626101163530695135297209167092516298537729869651039076239989784178471521490682586763951123124561627851775889036106430330573614601109859878828229572039786072223631704213197879749309093752640290825320119164812664148854635898518001460649230104287121173299299494585962417322731813925432227749967237279393205569089643985270123504931773814357644205146189932780426712250640783768863667738352062363841787080570776396558211243290135824085443872056361663293179921024533267156637467864056584545745173095560289282529137352816191178341263513208048709756949403545407575077134383708527344571272736458644273698496378327715325259443851596552256250855082615841533611626105564933860124996403029912223190330125685002897422411133025296620088596799041480680712210624960788031703369999288822089408476393420917626665569839468250388740687040006701670475075844868207000247069265100165970477981720045326796221638066405691182413068437446759087935054696489492828769204280760087895954183802581289901742401063850847005166848091134209764875370614149374732771126313977008667719588352873956542886720991799930251517988983061213181371523598239686515043518143457888974481040844625153889184498331091640174747691271935787749488727612109557774064167915877221528347449109523983377447926861127575633972052939344420934191930247998898035705974427040248276393476746423469154534325982859648880272098344511862065613632337236954741346384368229083427039178962081487887753580596928382650723031391304437045862288421707832567616595115171642785565362785092502232680385260051301519299636997825313388677357316512168963146777551767513994709859957284748683717855930452928041804860979744849987870980694202449219939889029230849997032595952618529970567291232176478698673632233606369093896002278949999877954032062644622365704345940599604833992331184059037779714733173551958404543433471157294467363134145372515885008349583413381996846471521804591799991403074164803938125628932890233400595797056370152870766680571181025875340558887093281484040407042713629498975288398231406241452804915720980674426257518285368354785319296760960054542333177057308643066312461125405555998898798098393099715942765243888224296085822121551918989740074025070122349401125193725713365029160603746653860326667976328100442467187373502963692731996409498120407733311838623796712521288332805763373439659127467160148843074426802073951569234352195744199348940584786532247875381368533000900150051592012760087071348642164378191361327172892811595695869594336775830452755530738830353458691828052951513313582392739915762353216672256042972954616863395697479389222270303692792707850420335741129616640200616178330001333768658721365186062815851283358137841875835612240443906110002514223949595825332859513463283280800965150993954205105430592091879416390380683475846824229441173898563846805793239721496543298377883931917522766461120061160761937328710896120920432542274524253783602508973595993323989430783251380878383437385662899144604638904097911524081429684213089089119518558805131599765275979571381711215554313805546060685632511227498618515987618490164764731833224493158180630800659403099944384939095864627382088532707191322793250821140182486204132978136297527850354380171510217357049022043697148404253935430183576657268942787876607585548969722495039205619742228567152173384395746040064159501942699662182511599122473334555214817799141562994478382225550153139054378812240321981032288425020081257885996903152108989568875972238234093588099676994596157092964729223471436740538053036253632110874165518574882888262432829186330809117868667829476561839132969976876788058479379216737236833704280558089930617584632153284382720482251227366124206676314311150654007566645809149902620409224703740278108578029518764247723256062931868831925730776272428314720262945286937358817441203055517768970397192838091192098310906271704194192569893859601526889883430684729009044370979925695872740674993002524666454008833602067928703576458548414388126405727648876203407873164714889255516518293163557611127063391688246644994981577666654690200265051113573852179136715947307313122957047206034062120743766980456749525820907141544777797421922100991707400869590082533058529569658501832721632508504277457431599470681586032001382026965878313827926504681416408478573771515745878723048913691701317947366974404004125893869538823397838206592851472878821914561736681809833066098842173792889330740526124317828907636492347554386957289532301575329193537964406978537037501759763071984467644364143448576205845515738317726039071181265213679204301981689555147963545913735863849506749012660201497731664206968321487236228625505916862350572700009977946180802963993471164974664970849268051153376807571071604057013770586822444060040651306291752055532145895228077657679300208484856193315084566625170519656839599390840392652149227380012751004488307482462333955891191001818891005404578978178953544895756355101839181667772535424968769543584387283672269847358671078962628269452913899781630890427992581119211394535707086552152700528817707497857319276703895061828549476435786507217124493719801483341408698750963767913569209099655089487634266939652787149258601014149704706177020441630514770463769819985798031245068902761388419056054550672426925162640419932430737497088027443769064016150656577621098702821803851161698153412153851000510646973473214591228591375529530634232060112943922693358130536494571387626429560756489492104437529789408998127502885625477415294457686874012937725451523701538565999268521742064575952735989508171320571166061471385252354775780127673003582123128517172210505221811364912628264448372439765528974350606228553126947307228906172989133035151641681606187664182768803655047758348938867939108622262350892192799365675671476440872894977899217609532334870675092020733067381258693347606822669730573867690119406516949225313919875794562730859555983118354994894215974557896654802570394114859725943531694373424709866549649029421355529524746504981600389147400848799546197087517963739294957689347932180440170444770738968755012063546440961142395473274430994578962305365267904035745151625770701932261543159973164074225257019055518136598760673131295838128472374887599189342098397898897820901165390050093019039672104197042920756997266751596168147034879513606955204160242601247710308247021479145327854423943756980316989445905600124756298192016108391494279772571294765283324787913403215621223246107433730302551734803924129012035872444018639267496486201412969563234678576953543736091805950653224665847494327073184721687407451834177023717946035361213081301080274914192171425721355379705033909213247170031013383409050458474570756465442371560667836273590884549757653940267594751077512659508916031240661091241908795395697094552292430301179267735886096654686309239985407654870641746131050309247079927305875140372950939569576771181497480903949062564428757064457872494736820045665574232200934868664683731444104851345052263656422641274687022747924207563504543470346073373843119264413512035754305887324666464579599173846779893490642124473616661853834018414512750334383238983521934977035472949416645282103523943903236587668915883235141077408570612657556082859762679761772530155295732135730884472776891378926767155273481228155031515555717322435754372843168174959442132107414698382718152193507648417016128479259117704945100180069952270609916633821578109099601370460893537995647562265950663778784367764320534796870617029372249471189869208158358217595675052057758956037437222764167187990734927118959166288700480758293166341084838786196532693218061164079121693869127947162624748137295907450383575772446138916991900693215292358891789754154824666572864661931813974197836567049247018545710278785476074937880133960587541576027385094918963957438527646501838539024336067884387140442570238463912784963919931761032006224389454402648524192759988054871436273168635490583213303053869077764609981547731948248739061661238664045275188184961984914255817917680404089452121342115453759816740000620039554878222377093602932894203463932357068235023965426834408660315507217133716837265822344535119155488890963313647175723356153759220958150673863137468023893429660721409706294998081728122534487901959181408302651782852501396705298166161818498893075265919348012840644695804810769736093563904459704573169255453040936374802260444602713267083635623003035802016352356288637200281737031195546339947510350943916941699880437833718196988271597105974930084353170842305120421783064944765256026093433349380163098940602960188491198805345292302004578014919420570303677054135404979887393127885738046501314474800282366485304276007852310015486032897096500493699723282043238941322328815460498367980985579758684504091760647081960991267413338682576985240464788226577665926298396714366272727473966047543112000044322538925382344229093465221353271704637298074821662053307167970881636056480127010816873802929640808949582731864376588411435347015541612432421328256452927592587881330102717836866636902349854421070662107056509283052216778719633737556964024640214791181791181246302428739499111364515855748691407588711467238119482083817172607149576098895937077081391495789085020218150890660030790629735532259842218658802212362612712913943513360605305292746277522283934655140944484565344117391683441297352961844042106179552178289593472629847776697550374602814062401655118366500486866827013901789676924334238047604814948075745464439414480775088754167793233333849533950376092883040583258156176340689541439346110178512068774089266795939062984312418644392940383042710601106034960215211332815289669750398836704454081996933206134152566295673967039573425986009550910062354283849868702216166513729787523740517502473076172910623636737853818031085810650446512854574078887285209978888956913459527861327433443167765623375084963152464730061686382029192436591379661441474474786833980980745596295271816952628244144577166870620628011790037424271135465897342678376814302023173926339226686963151655668588470626503635206514085360581046314730770823936951129243727897160029321293919116610574662063404729153953898812164156945541558443342502672798219252543317410372719790988317171379366429037673228713138290496347670156004657212350179627469695458595375712160333998540484556617991701360398773499230117963048628972519984351435903789086542617218131040897989047280257480519495902821662421467241426694497085545084000820731341096283184846598042806262094853600838448163647053743115580593822192467668547599756298088666587236274575837988005828112041129075410356327697218927789467579877252113045217772061231400977519184712404877240374266120715640177158018057603748855008509016314562566253322629215176086127256778351731715199843677832155001419255972636168787008499758819532868187968087186280937213287508327324754305158734930082126521799834515502257051659740156620403836810122984388827479087615964295745638334889754111728587193908989290190604149040941219878669557253091134919521714747609678581879060481315074018240290854185032893427693936710581925375300157563345400175960015929980717660317345083231213008762590244314888864789380433203116260485135233647088143136506350290394164067774202565793783740093010145541454742209188179638315955863128473806236225649768668749470131518332308370220269170077788502789440576207092911701274027525237531543108740253139652966705708614253389695825278113368846383502768161435471177596884634355888600386455358936246055134532434831162382477601278178892714523767987930691205316860680131887254734970499003937584381940061235098110531475414408751698479867564077949119807792821094866015183618297428971759186279758055242165939131794155828912522364670488525428395339626008067040182950800920334634271683780131703159446246343054679998686971690332721313411664108692974974527316536919776310545256335748755708551556685218959037696156183460123499833955372941704487723184090929519422085457037355600537264954800670222730567410680438249982549118161650042773504768953632707610962815374448953038267995084311864956082375671261888187611891651058535135640718467883085334120226860994858091541809290244481153949810773693388794449126545469276341794130065927981038263234608079856390653620061032691505780287630223715731993158651456749054241372493682079489293144716063394996986134247678275276006110210884359551157369439707381091655379082284834946284728340804356693277505050906088465784252565757576411881488384489517827405100250144082849185695062304265363015045649120176629104260281412277891612475601268373804264161737723149294171897293489197819260728007894048563334277009761520921438781920591874113852868180013487002513186356527282901401338514767226964694359259276455538666177728616810199747251485379921793589203450764427167184442902692078708939707232270823247080582296362392188569484920434252371744109221411499119132764030487630266244436957430537507404938079185768821635360738094960721635868166953465642688977441752983928269279745473900992959025578913991552968918283208878729221722560529523636179343211735043560399692485366968263327608330070719946476692698651326093831624813359031505707271693071642667478708005228194381466318975854802883051431517592813068836964786175420424610247615397046910358998032894931404237832475796755751481058204726845876756135967686058484441659988192182952369055954208627175481869257145317161532518246275258946900284412659964440415676662849341923288326011146618036063966360168903097851576787188305176368666643790684341814646427335564631764784573190941114251804904257622812984638032570286161337916426190021151590266894612284715910630177695694324620485536289129130057975738387332254869025085052220663657353587221349036746847831410669893206809814331045424982586808981177174453314555806156718105830823706700532266165376241289002067805967849721479649119190887712254765710323773568227541009489779890460618487512501027241967799827772848999403130800098670986573290726486640049037827109609045671279845993146933315816339216513805692564006882712437262114886266284791568216927456408943215825950866977802679498068570669098093966213807288250645476777279504820502820155610722972352408397804283357614583386525675488594385220454580995019455860199252365425727715041614880766245849703889877980184036409292094805784467375705132312735102517741269648333010833443492149470695036117002921988355205829856104800433438469287459766872764243968116895714068223565144195872461207466147738591987229288702793794726892214966974682402513752743319819072603471651689727916944174904617963415085615029431548533883842627086606995611524796636091396435947153079514975546272927472413865205244891338718491018059947546608005042278100251092471868405737067529580139230742355006047470215243638633090659170749200472625570191344182382805212765265218771037696309651219949090958456239969844188921887224590406818453416365658273950999033043237276536051490591168268550408934487455612447414863316867836505292376136304089692813383152679881557757271532122355184613358161006842095205780299728112553774863933223165211506129188596136931268294113566330439446276225198822402550551334659583275198675297454660156051886177501910955471079047028172292786918533930504165774574843328372868359508983426348683076051280384562946265114498364226806226991837875333183004093229221838126913363572370556150339789760728096520164917786533494838050575172932493580690376877477407220780619555211195091807855883988266073398199768410746955178316313879688890243372183958365666210643657321816391202532491916405423276535007198022818557776486429887167546077712839882812352402750754120155538372569483399666659916074070378016206635206848450667264279446510754806308031025201416462424727988022602191034364875831779781265694059002814330333457145696875351611622840078532053532259242850621122777454050838875516315965370052199374049752516099149979435470928004901432712831947897598404824606877367351137345511401310487574196672599856461565973982650989622103581174606864370737766070178860221235823053027798662557466227337627409331399682186699006426723437771028284248461418008842740287583479502534956969213506022958874183711459512033189370445223286732368619347226359023449635353630828770606522710523242879910731363774952640975134024825497058912655326208708013228444623041401505385105790993719192895822873685244070563289860054716701597916415495271906419173311847296452868465002633388706693068311805928072246257907153327014646020362233914642246273740391500594776954338551987814959751170790865778402730013612991762799034577274816105038212393831784264089064798753566474968572111011564160370104384654414702023666709842828706436125873568021887067007086533948092696277493255183501635566775949541303637622150703103980027021884196377982099911696722095162928284588536430654659329888586238284463595580003663765341353281127127168327868116221604802126929535271848320501193045663449090005343774235093676395599103499130719787614913195105816324742716828128866543970745036474967839600023652254663276960067874434448765813367046925980560706196062745637156311937391195358545433031106187362471767690555429903624524527851926457581172491494639318484671491041392565985287905812997708696949646376861354182130058398454356977633391578303483611775772629410739965013381972303835030565155429986438090582397274414668022913016722088496448712955050790782508095541348696191484840099531373111994146421774653774541244791826350930030118751095138915560457734143667855474775049895353418821351529518641394617969134816144511455750225776800565356492807820101968514779059697247482632637472118736588955803110929043249506903305194810887458773445832735436825198170696216517844628377599922584289909538250267506251906012054709565937057547701277164328897377741332411620082420720910331954413959355662236910820652742479790654120662110477566894958562242421104303274850164820753634660772224244638893483260237368345510932393442683037040151585571328394780801302868573685400751935630612730274057893740266902370616161155395826735002128147521790494122926461210697554351277366882195515019493020064276065258338501917377614077462605871372923967693733782568991916640861398768963661611395023892390986725188938539337057629972285773786623572271032193867564537251444763619847094180322319314381722847616365967619186804053631226932043294064448899572593663930606302389508913299151895489948378249402469242717866069446716565670475016403055382928734276596637279910221762319779296853875338355060832917013661828188279379856122568932323485544676733430121233100492750733302043903678142808070388844594947501324341355038847584961417808277809291901743738577439110513229719715687532269347862364706545716852529307164900819798449294199456294786631325573090204203400691401790536970082311418304318052619908186982070417503065446097253530133731695579127870974849911410806162873001991673179039289098789849478499110330420160714596281906166320783937222109992227679538108511740410530639099591257716248992042669903319862850640789793082056376046998257168243685089638116737323212024281598657688638592121682393936132959946180640115550176592147056966826785600443927616033104124385486974171068093074495775459162267712275688846711094328993321083332138467591500865262303859699746766846243371995168492770077716774429023111739202583703803036382327790996368602166598337938753552872521195402272567615544488045870370333117817478323904527659238071062331704189641722055664274922523490061403065163231362520340168923099192612142784176216900066207637314203168183025863496098694702855766055581879340907692433633125959503595317706897263018679991901103922438587804393786464823403860244530308259550165358170950011596454025126193433102611924474196545736181631302685462236050490006755716869512184802611331254158896207794069874175457001724320209763598790321503361380061182238534822800629192028091419922325122891609817599811866254577730539762241795708863369577168680231664049907040228404936262960084798011390733979518860051961789937510548717802794377779742666228361008810135003820202698108785929592419874433915322406578302755935013202906651192316267188682571298401147789548245151277921523475169576655275892355760082340019664895490255305890320194395446212185648956164145183564583791722673243698018473016299290047717111006216812911840542661687872712993547262196460615666470626738759328137275472210247725631961370540949781390921589657539455018539588278585395546442419814282804198631858541233475804072740134500132849421266914017007842266336146578413717379756684854272755809289390137021499522761174964244581734565418376371502462435002923831570973084834653693641751772059364326902964157802877099917813094272876961269519413982825985926109687405326117623874377582246261315035410137258907607306149851454545514855604911680046884825725702073446611304144147052939833205105615538017088931916929851658640431325770618540536990547513710392431837403147087530776094383897095638354969412699490261727774953517112164065477780099388861689953826787089290043145041426624658447514781671246828077565053568674570142126452160745109039769139324574045073762938833981251236003607459120673859119523953571369688408711679739546566253278056002956450185873683265847673468331374435899984022752591779756330586566506912956136402472484008807284761964662704769085397412849429472756858976433491180023878364961659749305461683662031828547529851804634230792298567000831122118637389009418736144633760862968774531079158698434339611340606769988822258160577112688563984833787891439020954372815671262609848970966675826411904673141027490649667262412788681769056780730419211143882151007877993583701740983805418729162641527314802414047704244200823785222680111994912049307201715152263007704514599595183799913259963405075968737058522637094239021606429716596546912082893350428879994126466166733068136773845024725767445735721937695259538325304130232106737139985326805743172728505799793583406829033246025320889538977910759492858341520566428077529126503876035431439114710975048400826675952782216590869774410940120336117962611185769054553724216290102886057696114798499261673263735189258045461924421101841358799996435125712411382771145772449673668517465040463192558308743784941619608290144872014790907847335367410164743473563993031789566248540854525217957226167209691308794394835787753821317838917684860546991720136506956732709201319679851846384961919768603960818540304126134729440309389210145786072562036557762058242498887385822364513324363914608725735321914457248478471327473149156329469882531315699771920976284682642114728144030259049892215471175130856126833970064858128343998292251021818098561909742131549040162608035146113926754903562949645019950098314855023411588913747388698901593033155024842371484457411796904982004820376008149642240014719094756011349691050443338759449691590550079407130533307512210515154176645549156102240992870696558295863241685171254545976557230838348482183307859903289400386314140838010604150555613122873543212827720798021091175654486942844344049340122165020057298378526503613756633136779849859118452648729447161653661586210627500057772010920390763060484348184133558046112720968623998530835952895407797026396038811678601649411330392940851996135491951684033591258055083318600446634625732282428267042502814176356242066956420940866215104212771912353871357680131239498015322286087139080619655082656124090270548633666269755367266591614014548357203866138956098376415194005310331907521876265091538582968552102478349027205285566403195358253619636146025628105220512887107354620861840177447370799564679342714045187532525092073900114770089257875947167067964324747345140057130772167707095150595527065151504246198339600017054797673126464734786314605220827074043508992379409032351010037757840207358015595269095300242725764956807225208358770210650328890824284734788555227278476977475329185101823156174436813226413341088524394231781738982510872446208602078259833186849271385720283896064262532204396457012969764444566071717329855659499335326108047938022543143339482639871572726032273155584652017329260312239142254962040749960950019743984949208635708887687305274020019320503247459436245482950528835317283536630611424794412016789155623086669314688643673445045150221508314102880414414083171695931149874999178402941344509128104184085251705957069452650029450078273405846195196177013569422595754050327753043155060559604089827389176862086192947054443855960019427343913439889852594776480666316837713135314503007596621121549441171316924820881326555768755825142956284567825952398584322475606387775064331611554523654825171541003523780732264924268098310986798760359277763505995122761439103034000767742624825630542514828523260315092203773562539924762182886979358741599759277629423750635823589084542574717074675338297029394281530923879326261617261257665702801785465277885712850379018791848729589643480302587057083741800027773634225219767031122404428007374759882453437925078252126596452307067445631633971833270857008151583690643800039817598203901157465708937411864317491634506350585697962459120167558448970370633455776520671960658662464829091550192136687237333103350204175832361982970125379832768419632262631261762471821194504572208304413184328000714432439015310741652612705858973389525041377668969331536429167243148062414426647886035914863492922659126425891767236430211410600249262829778229643425822669625714613794406642092612615896102241927094134663165282202413230592442578240097837805108753960966735419284655565977756975548043403885715501756057418185913758218015863909156722714135653248984049098191128826725287721079716269288844047700945520887536259638019068210772653837125462756966656831390296363317616950749248069983662661872045482242630768956727696240553373674389194528870702742706900105269776082467124289037191832385242690851980848769494664011694753980474318692492327374741185391399501449131698495541933356831001779276315685452256402626955574624657008654450968000373349084903626048170792722950900023009340047316654507029969073215238250232347494005931132461948469443400149260199440059175282936132175279406594227572894867783864157277782761698727140951535526390126649530328400067356798873763548030157844432553962393474671521366030133000132954756568693892580573449285651560746489715018692197542773729152503401181018856382107763280630297553122921438757754948270791489309476271767686024975005193204940909259510367411028505065254032252080916203619370137763131574093892170828740975636631224619545289114843087349925007277554731214130914679001290535636858602807633611965183187307588013905331340994275635337217803134620370007112841678960711973624172295895067647374597438056781241232156356668622974700895476525794637185765041283097680843642964090999461929672825438725283525792711429557192290820779920286251546985944122802858229879260861424455137761915691272190655817865757892087489428622013572988813853964206113784660539624771325744853639269992476895447421042952176218754326487616444395355022913880977415559965022884353343744530967057238222981939739214287669556636572757753558597599671925060167384181585500161826419635349438710664985323454544563282544271936419349082904463566219897842230160181463971648916618688560157080338486304075156834525097968998127733780313021764980114473967878031020963191684906753290343729999194514337247835606410668610578131881160277239235188471897547269123897618989181603285181482321737319156782634347416050174002603913655649582574356700946920383805089106137662025087935666892588609708818242898792946246402923659240819876696041603982310202689383894669071473429148050453003812966335680917339481074847694818715797258653648904099035694096600689483786297928856205442162126037445195069492874271695275806441410387489191901038310786416238841932686315017360818382757627060636512883650024655267579368552302341382998311413048618345396796621123201793098503293641798258691304119860572667048448410231774060033992143264446240494649374197213291104646660373252430160899673416191658355753369655892355514322756569547816707429874748187334635781682181926562530605907052517047446124386900401282251611347999904747039125160438063291338702312144078672339237454796328379697227882852422665322532792007343753633584752289562391060696726902579425067160921583904693593731637838553052968287193244222983061956837201568569031700682158942259240191964297910332296989858541456081579240333413305781749893880040152218613384478019876512993336138111413713136603632635662074000858888978933213228718045246769546753921837081670658825420854962217627185344431170950861179119693051340666531965181785061200185787290700344235748066023315849137992130508224468678241672110964214784632919017003804832710706548549108326888242576768768457039328041987210919119388859699597617848296907749569784455014628352489737385493329658527970541240159221851169064528375847326260833177158007215977292897688573944072379781109797313095559162326509389394869118435162727364835309415872919439530059472186594402771360536588703221919502495298081050195368255731874012535645716685010714379810708559712140697874184211720789055185545584894943283102303110718644387242036886061755637090034195466399112046150374556309959719490237944591102862811122210874981743712720826879574234288646070048966266044279795601908732915009604730875640983289438981814649661855417463621720453896173608366984195978003879560634293829103111447926260635277379842051091189813349800306485605616461322414015388086786403581058192018072758871451067757707601284223243649119902385278355482378827775914752294680517408466477449787435543439919018539920455026605428918277784070044725615862807905135243715597888565682334383979603352723417110458944755414408813107783059589708907369803677323135416185347467126695368125564093763534105227132853005719826637524756924358931174416086059170002274293595438736033089617558532846677944008148702384549186210770734960398986782345344331942958039463650075389384180954344577204462843155122693545764859123236828925775243957998933398559103318233678961458404964687795180018745366373579394699373852901538718500438843243132365538831016356506779936661303949617231218361457157248903446478968281849441636997730228583798324698948248214411982345677850119545114256354271158964811476839903265156124016126189144658303117983717205908852829757072905997605833797186911244631021249458709788028804381144122514831177859301655186723331681858562100500316795101727944621484523412796814274087190084058745899530765768102036837025873887750395442456757942698197001081321734865362073553711868663750273337021815922788334634688574203869756803392372315623698961096122853850624887474439799139437782411865609885136623731138373245802405466007291595096702934048832282689823468140885397159081842540534705298587148229136732196619160345072332450220797825134237410530011217276767985066950303540602859735507337324861074240008212395541762478945653421538160346614882895899205843724834393949368320734871314220900850985528319032828828916947996894477306290221775599774100130178261635568846880995678211129321474723136040998768058009843502186637106518624105647135622005576745759843913712303360788757216375403440198629268993036872633777512885597918614158791410404932660303371507004315801641175404584490750097850143602260433173566781692254466854012286834820493736505409245454575071679555782524189035473817791743414676211022663298873189387787452523180812011290721818261981339164443464463559549064649893107140581464582123717487566441358023532219524732334634239498580266138184319173692991813006103276190729096176823645948406758313768810211091448179625601122117786326435820068258245539613206942159016955801382534059619816649255313507569410742173944452381566185393811959661312613078091069421339988124850819916952836539635779600197611375039983107513111772571828060878639976857941662315387371637244373385512831191392431764742553160220417087232101558270017012318852367262288565831419759992958407321652209232353034898832879911747197473157432052817844559473101474483371011512384031367077309076074024177273815927861896318212476960276998365726342762834093880822274480676100232875892813003994521025500825310572219671090269259238074366997523666097246293057833717625970974074345615747971149928424668516230035615707274360316150068101516186809190022134978330870551966655329062599104678291147407410617564643343481392522948193986686028847033325366289250485803892450268050863980684605559650692829183107960255542175582733883539363538205184290036361828173527713511526714237667340909582635281497278073910181093119422976562293030293928162894853739927673463953655957369050400682263236750097500149720248702688613198074139026576068250394264029340192354309776849225970509843587489792415114495656656150415179762990462076162861779158405521579263940776970006493080216954101666354257245600214072036045867925093510444871992087562106387520634463614348557217908978659077838491169826181200799630130621935072741109300268393174633796423164543465841363113008533130218863455923207618626194683909931067198586229657785024231030087726410206557874451509494842260572218070455089540493133039475975713561872014552241119167214005695621874950602032631716190856919228655563068096472794843431116829430662850010257485127710876053013051793690580107961730724981067750923558378913755455295858689867495796199643802525361244307354619810230624902295481712422297988405950655988748573664113774554516859548939924319918353356869793299809526216770392885023909973663207972578953845460548181169097101439775058580235978960853111179413303864030330493048278213983156886121631359624819901470850931159465837538709724001270063603748490305554532335669847069201592827037917792804128100905119579886150051486129912704079163834139266372258695337614101922072561287821187799394604311722516224326676384354917823951559851702548196029369167805106507177345864134284863004051935970866591922397967144699183123120987559987360717674621921406054913338407339633667069611712137358747024233383843631636141141379022823642607339440008147528682014701055234920200177700772038421643443554258323654661702646230971363500428458405406451833125113009454707775857033749134915027998918125368878903184183559318354364153736859329448334257580012463470128563997459202539499475816073914302838812295970166051252466835654777628673384459605030291472739142865786025510808107269563116844465001561494485474107577708718432040576200356109283312533064884289164755340702549481032433240819651782167869765835096735001729516962270398167442462643596302331442684709015542150617528359996208993652225728975227518996831569619740385280336741257311761095976161583447098115482537237037540924413066724413354116297858570511742597900387387089807362325739080793842343433279037224590364495811668872527141857689838674732538643261323570871305094664861796044471301546297218347784735225500039196228724836117490306277802459713628617595865494149795837411702924938232084824360824548639519495473299389532946235468769183395396985406434363165198151589594376568796703991291996530032471384032947713475341692437242014639155141938851053563123047187196365842740612056578014534790666778477657261482493588594160633032554238347628956963998720786688306016333086451391705850461620521437667025328801684985834438182924768530425052644500030511841111260494117682570700869383106320818600004717509482646173987096679949011223189362706700510305844645206389022373358801895852418559637987782332874772976344525497750618520927350320908323093067900194455979707040379308414334226890146166160311077102036995531936463769558503567388182400525282178195974002716611391825217408087195030905465896113343784284968418872684444425731720267166936273144320860675761541214489211157615478561080148800264799562181245262661496929690849387560219243515087523447793174760313344130321702006215682616335262320208546660802376813323372669624072916606152616769858270055928811136489207911019633100824634054584090865744678509301979695632045572876298419748481906253495729758116948622505994813352532683343743414690133743771101750413066638139405730340070848150034203503013596678621787759826582751226493484426421171126501263714924302340523192647422128537032362586721848409166075681618324612316835047573471014759658222785983109351456475234861412856173890446560118994044424953993515376951050680457314642502691064777487826755847140049573186179982418853548737403896658045215037598303090805474355187763453506939128439539972644055116866891183017359258778161079107895066377086249983040675158364076269475207450509564974426599397319681739431731866820237799377328000275815567210309903860586221521169909772520787406569679430052124203128138844202145564696657482733343306308022000911341212746657824512189163888661376652001180332489329376923570567612443738099525188117033896696506624862663348873377902158486030693466717657739288294124893117371323037753381434199357613891873834445780116080227496585329696234293494990632044932066753060911362885664664899556684144709424407807148707327454171246729492261773764074578884798745771091649773178500034622983861174595942435743397519980679406797495356253198927395628446763894651001414377771475676076248780292186105958499316820638000456571494564100117557924401525150258029230608314867466243969638056410591753950738315813587540380463210844851670939979712713936639316820301516762029574105502666179664611997398506059257159834920426510708659351977832154891838793291144452931703036020238474515812718229946692422271517483439647711080788460430004139939944571404593049536436406420176860763315537459406278106406657940593678242333129500223093415839137216726621862655606481548586216542572707528300025554203228702456520819191163837720719778005277782125722196063292418482950782017858069221009278034481710509818754908557743092676712789245144525235486990766580170090476255406236600933527618203307266700633222506241402560339773748536069248235663883611295196680930163604117736117727963947757260226791945780340706477999862931331788814453031002694119720933710684838382400433865894162387985790522899999645990312875881452859688254116409531078753848899327074930648344605304238917450162840756056402677242985440314654255340698831438889082017506236524673382325169905659119476384893816355841535418575375434893470722100595999070684448194982830747479225986172768037324224560638081657074908899757957797029093545342745104425344753150996671937844772811141173974490335131038629156321033280275556459908529765915528375624485351613380456065351885109396562466041994423501098681908383254260037503363812389478098130187533949888839250042248735710140534836604610663422983211197803341177666001208748530076671791787624705956470470316752184436998843251318499524185261605760813686519288350914466911689525301646150628258883581556346353771641318461844353708219493780190131294514015133870366864797712672395871716570951081873560854219067214638427417149621627878738424541801608802812413672971347743931462091936898908523474314217783045935564943428041726159715330857923546048332537797046518639119367271308660970207617837887523318018295969042746946447179925766164311058943924666097722134796673176796016997286894528955349618153391427454603332988630978571347646269607530416739053029462295786689416842318043025800514549611455779410488493995819876555555046321533646289947735373369499117359062102597883747862749965646703064898518411200179859433386946809584679086610674188460212405356693474605287521790254086012764960288217154085142638755845512785656432577150494416185199379244597800162287487755702431420131120587848539086495776668130693147529978237193037295104084276732368912406402697487684330569820677245203090113491871706134386469379146257597809213558637074138656491128953786399605826010098042288902801665428038458903138114360171129878495280971678568156801864304477566925567634701633983057591864004005670341326017119502443052047047237517884905545429725096471850379430647457876307113094225984671986839319111865312999573839919292788537271142155757030323431507356301553045870948214520248314738518153770634166290941338924704018158262444293205864324045659205433877458771137175564783575713768691009713069962282596394971879866461846239663610694848131656141551560603908116206131838699931141720975850432911968302638530982003985259065686912068448182950518561779184903088050516308354874932593820687854619419497695746624876296690687374268071229019067516476705948679785758524001718680316791543469000975987201227432733070638696463774985036380607906331005749821307042146359240752505354798741380177206441226926548550632030842435902795790013921566912198757244741719957676759430561424558565662677080361656709030920473540212447377177515166791177009424842610018838318519485583943102056542643146011817933735283103507004903152991980045809874588554710915668474437457677174209651930737060643244069818495260702632647557835067424162057992502268433800411934825400427058832620013587032671537389414470081800035125418241126107253521914236502466314087105427200237583109626033520699129859226587386411757775203326654525740275306158915954508714515000526683400399897393675965676194204738713208361080488832147897271646216463956849041532051898449490475014392653566146489963409088373063504322511967186579083973984049769537381119225132016957178500009202478871442972392358722583668117414707769139233978408767692982404982999151152095426819293649105344120997831444954272682802670430798817243184166114674811850987056560334428773922810581150188651823066298106114412546153370473674176717846722575782985995700825531204250439289909527526984058710069787843910055959606546295428295893765510778276130312986209975321944704882273374337930722598801537022856906083574990041506569127747793819449819768365580134249922358764114617348952401126445903674070684788158287854312810488951506871103427206637511397531546257375693181165788822790293005182811180496638234595127200407159282413378596264480384548566085322473646261515597973496514640923407801822125297785068903582779419018839588750197626400787233289441163957693158498861910022276314318536309458902679685151748087235208572107117577717493794861653901075832223687884344880488306541763183508130013198323803862676788980584940265175728908632227335632311334795235286497655297118256629337723826695430864105574839118276063568976261816195644610179780646116531939903315770011500415342939613664891910833817290982674759232713022886002667878679763661119963241235765705922765748160409226443000806796549494722580247358255023528460554630416500458454988327289419576434719062329607069969694454887702613501827088038219237424510072852100629524900811361754998325268347414898409437998751547118305712552720159405673563366005721125373957406305903028575054810102616974171454444961107035980660728996242032102364015764703589003261971120808397233938656729590570156291203540445158823650422712319278952039658387229220658072227271271411149678122807538313762189001604768841685915356363287444861352060979656817864951835974958441995393341243095859998899913700108956595186268578253693676266751007761453992053446352713793814082211040899101843991687612976130515836914985554889667978571260736249503504381979399401949132852116973205087714686776057872989452179547471872984244930469343010018411688353470708730125030078775472319435958258578092672982591777874431112816442502919033522896714908072191225050111899791209253515002471482949692088101897727560878058374427662393664460573358777536431256812123139668634322040349996501584801919127674192446208902361313015032299421796975654523917925140684276705521246924397888661691182579593755483979599184912319277205032225151829082385436561850683191792914864075653525664367120381659111363474240937235352389792519726459418789301321040696103055462924942723808288012843592063905882806430780880436338090060418841101118279433977734482600795469235718045278053943704370410177397023054149704555440790454529995531935167714291736157912730403058305797800929490577424895787432395306108945619646863785421487575360882431103208599689485245626054098730838370761340310326406843983099907137991604322903697492672724323172098044936194510957355717258535802749314658840399563108393755132582826098475713144852453109689818373562189033257799803763957153645119600483901931969642270831023358249558292124101490050832658017183407785845400831943779454886629121252880164995245743182011582750872102538548148330683388154653747106670824139565289605456588806930157091227701051525537657103915830589677807449623614962377339329323859626487535031227963214382149314521523112556802356135081341452027778013867698550437148565765970161153340209204061239730349516777346620546260492108094048068067237798033265536471867936720322261836364362838159732449755170416981651504864013150786566362557602028470339879949059199163646493229315675188509285262719186396016421947095383674176484767341385722634206945968926476377421769415063289591380130954892066979635699330393763506643514968857112685881091905264949428215218843642760893771677652192037124958806830983014366962028705290919304433522416190386889842707074326812239454098804462414383283101461519814547047568278222191555944187328575141821916959832256276381974260637706242129615496828001279027359295592751623417433061529855539750246452778300109867401624800468639862806642430227080730904236204634558481903500188861087671434260713709960826349387145924283300307621800828898425886011746603234052367014361892409222392817684808700719391845916942212446219791032318186038799347452076362759295103897326378334024767503442937269775876261470053958591759192152106307982477874348457127220723048089912875389182459754876322735530659768313830206437842462984357484356608915566537342165847555108549225525015029072898153370099457586623829764927268087994496347820726986028170638088274032528513307004250898500483737593280250411558368155841279412262562270519829880381666987653623503675436112947548399665322489356355587449155119964511156892740284837884814928059195626990993739633633094145655100509171152463498534403930001699356805232673833935849813308390424673627991061979990787729299699513241444223393657858490943588272547549794694268998580733533726921227184813886603973116957500502993912350738585864397305823108105041635620219134743731234089869689800116816626625567924536798558235790413184856465511619432591842366467416728958249351862756566793151783232825782400757939880564379723982075024619740076701043136549373137294083488306412671312801659375402843922855772394950165882203578482694189987610114531516337546827875238516061550060509719674322611400501485371783577465168959873584303573514219585208832465985317724009886322821265372750222392909807240240023922016622997120042905548877420425852717729924562390326453953584774487594998364997264112622385600359392522918935996651998425697554690164535737145218844311526682944836222756098568262750567795663593094041490850789699125126212080602477613668605291512561893061159943341240687973648290278022844097671932234885479472574954631383514869921644971566305975677672615355327804570186209411194467667385689853594243323247399251227585993543522415566468094889117818889677975080485910183274360978461700415722855115217819045452736953391155626866407777957952280198973162250433452663176292445218735855560411092823912708626588970340177379193725965932007472462978228196677542862185165639532518371706615999068765420825337748836685060420780396963187815669794132287294024044802466041567261158078909902144080315451162285409176196375210373352243710274901550077696035566350592559006567733763609853154308254430357964116132741357731528906954416005101507883963796876910515248955258365090195672330046771681720710592839903955670817386907155660228652316973928420316490905219458071400561326509912974238461405095569019157702724836729188488822877497751145895468505609302989121206714251741004327169787126833204935343355667038824914055954595965921234098682256675384492342877437072005421980894345439912619845980859507217089688554779002233938111782019969283522047509402146158294294786539450114275455830626111545011050076456342319308669390231468106780081161659096933101436478358287920853206162281619857689156343694622613746046692788130082835562630857892526194679956271390165912572895307910251675543701225068581722400411565985183768993552181314409111607096948149019400955431880330821572677204575161531503837415583049769552574636308248875097123570691565890120904234782895951326969903768086598469334965472925478893143794040740695690938966306197212929960262505297731628655059353857045958294050848171729697107684072154715657845345450105869975383218453055257891127813775649139694688534189227937485337502809268578218955754370337707286167197974871597965627612880482749461559348134879495977731494241327353392286715664430845810209715486583327722546536019515715290613788318486873950960674509844828372586112587090647791173350101650518697530820285924903842683386029751426240083510814512802765392958404375017332439746149163286078630408318501096461297049328795195882053992502094750165657164331396486824333799068644979713460140403956855180691974442300211074332196292613909764568720550493967824052306703576036577861068051589606884555974581579550677882815035818633986339943814110776394214765758548416241932813947652913324963614788754581392384584437194026008535021510010934633207611537488535266320023180224492058356650603819610044868468544014611028058285818550006525216629497789883524946329381181365187903513864706713205016990997044018654624981186174722309107539824544981175337895146069958458002827354478185006029820916479443622392961108205823049042646513143376638804066389545168072285612399093771325945276930533800055649203135980479663792791973173553354875807834714344159401799351600298707044580177985370307506188020788954386727634235247915776441126617857138361588775972615188670426985519355172289858276040433776785948391755737093767879544113579760543001930733794289087372625291475613280363830725987485702385613313096516998105147826574588989997698660889520364845820207055472681334266968112042737338633539333953575222743322753664935012369804012888021739098307757789252162005262973865180170288581599716516954737916260804753102760525057851732000124343895928825990293348385713895653113682963521241971998585478386087674042004720022927807033873107182493548789677337873326740401280476579658970983544164825897910792909448690188471102917889828239609215372773523790621110345777374169146775318802942400574873891503931120072677837008743883739950185978518901591941127950310688012741062031216511286470647755864300750387432748900061578400421558170947982900835489081124809828298070463912830512539651609637120577284488311814998611706505413916223126275456368652690907105377130658113748256838718491428280016979921970750170529546824685611397612572583254330548514427254381955236528265699707459226452210746494253215107786045953969776546500893160085352643711172416758457985201240036484843969591632649161921815288694888341580466553638877272408535388315093928091795905029199117487267825498689882320990941394812353113901585722637736907909614314455955916440992518714159215358690347450400147248804920439571405939777392803299372065188289439800941952449057804654166816570867157596353103312735798019176637937412863857309011894672915532576847795995027223139128885725836491256228851254481738237694609194628731455625343956542678108464070294308110073963687425533437617961090003207425909270879548357712694118482759142556857517126296539177757986420230612845854863451062754227666859928096508489811385670505793008251184578580447189094539501234229374081162871369107020868112885505749474805988031718980344345057110234262081610049718997386578859629528580460698298232018248103570046032780636588335478879054358824311167714159827605061634557266271546699300463606016691094842205969738908733598582073990581848734939958841881849503726884451747370539533306612147442251276492776863412778636692804627437823749942607381061927107890692409186218316883134931819056683907106287995021068942168351015783187598715670698875289395945676225534422804406344477994776100584497964014163160115702771403628346866808517799066173738771185960109925134293114136446930657673316813079383165498399457363927621732512878768137578636289494245931041288663161128556829300856285528262847855931909385389484012761353196316661571694472866151960472850484256463280453176214294215465587517960297498252605010398767592887843488499755466995671117480944881307277257591705687036243301879234757232039188575002666321737079151534592982135815363336991178214214130724922384970149651655556026994807410864315840130393959108049466308077191521436889027027170520009965914656441261702430135163288258452671936034137419121762227725591654539360086618090824992698090103270746346620515201187642634773100907238630462615438278243856635297351351659147325104859047760310666417029347390676611144752298561466209444863663758427874308222602717716064102790165447633775376633893902127020170796784595106820453632382833791758116464296784108715706754423469085236413279809087613175130156521330953705089865576028043583451278475510611370071059257096375033509707647079439572058257931696494054067892139820256607284100675472266915501903776444293018775778756158074084697862322008529498320196107402988121650020524777658751750479442395355367146254641489381612558540365612219300412657831858376990786112699965678205879345549055387766490833160669568868747562780021919501133334532148933589536850105005935599520835539044220891431743713505788087112934228730247318745886522570425710911682960301405696412135162876481729922696192713889189602101178840040540847891553260586674835068686107468640599878869769723334972833818079550311609962805099657480999869169301590588240713167642341574820157416388896382458111623749551103889526565555167954102923625399535578095794708939735518935086131404910725552458732026063524312847735797654065540705996706302423973815911676434075299735306885064783942991877936885385220911731692625167356166379311682445197791050204015035811505286814016965282452859211448706631325350230418069004489637994094330057229282608962453707459135370333091844438590711182788750212355720269512436781231762061480353512483673840462805445916177551184964724933133550974119352927940163426646783040071432229753848610751611072843110114059139254230821455064101367573573048012424337591980833565411507542830623497810963791463058532870539124082178734905922771450138294257445712175295190551317367534562838523128798419869234101106015824866623183481914016092896766117482033960645485904690573493464563080529843319897526835103703331532835552207847889004375171210898902338001691420944925230450205309807406049547183068999635605226013954790636117285661920324937894809927618336533579080176575224612739176372665413786298907231933499098869117484898220734453064544983564267888871494351392740622944799620242451580171780768076970537302174272231009038682905598978930993539555372110352816884990206407190288802436216247899364600069773855557072713777319942292909991705222198219713438103330253029439561155575306958699179118587541916091320578584597107556141259699062680766021804501212546461172964272876130694411830648034255532862825115717664005764832117333700823149733730387892393836203216237863007782090228324253728961326897512466090581854617968100187937833852439925268619834648876293908086725280834748627831864913118377654526660551389863388679296846720113054923481759126593533624669454079831864926615216018219935371892768984883690326293185159957655394278380807995704000586342493666246261151752533126886485014849885594459474165394866439506161203536458186610479403834111048597694450384840655697717888518310037952257799295727542933721104485885745043915303475273257603274990551603827291949467075314046712948227841128481283457002842615476928973215759163216279387579565505192177501307079684732520309683511297164475437403084949489722054870103617682290999840969888895073122327842333203237050599012759756942580930479289498157758715646325681417522952702002748597593398313971748877453671941361952257196259026679950525984752997653385186811127979356199043830447127177692524458026657673439229687226542210197234071982945917211599490831230803783706851028404010224637235741036420824313815619734992592249761634529470058286353185216143238584821391778129475739473683547956535756653095763600781693493042676049682265969077254143098496618296448532216331217339722366205880720511020998075215230440982005760874474616846648044252337458365094753316113703594435401456708638969139251011600050326571572129587728805119378131412528459671111319823813927602691120636355654906221745141718760897280083474501546950592608342928878524878929942053127885895005201610055860003454107998998890461624584828519856126348692000370896419302074977678095842494922183789145017856368280393552835337959716056315050232474421534537463185992751116667662192063753169830289558107520607102782415095990261520799345793010566242359201485878777527814751840505313362541227987060632579679438781714177587528407455346942766681487719502193964730622242570908802800634963778307290912632185019527504004374399440272677131865380977351221914780544078753815430439555428442846130856110630089216817829365708639640771284669913559349980891026745712220170028611253187320080626804955637851190483639548740924249384006526981365449896173123099634683811069122310679323246284943536711272448721502567937934974394399844827198732748278448511073323147023408457482897305312630902293281170853567589003571039956013451249343491354085226588717810229343923553581487498018028456776473889218759626431339694887090352099906421862156036209774699676222725075702115473587370543702208290773518432408947705762774406507649331133298297948556432202424062568214295077197237099330125486841385003836028231799109147664783168972340738056299516867582786400715243423281821503930553495038982893375993082353604730323598636786269571474230720085379754966357400507727324308519102801382994247362470427919103844767736580176887868706443022722075147705742913456382585719115929662617761811118331095917986366709315635187548536512271930389843351472101376647348497634815171537709666971196001674633895337200453414284209683522650470143107809288340284909834221177708196648157132234080227862228707767538790647125849026227622440378776053338138316372797535731654615107939532874774045599526032404250315624718434024133462419057903492223184528067333056000755316610257317331811492623780553368024437797089246336967501375685175302446257638066124514851639377121384733620003485786905045143919637690911398109257841485141797445594938449106381837620005441581949026237694915583189333637941577313646423679766553710862096829408898931144667454093412391705732168127575427388640748939261797985564332824995121923336681883695701817075546571381781368193026600417145874141700340937294894828638407097117822714845447931354492427880556928611697704741491338631119777791057704539231696892979123964013606682044532108523559803558391045476271766369545351001995385134570110077527980604180826759546293015118559189055253154056765495892085385014622845615552558913800718637723319852163754624331507008860951403314658191697317140124831589838826752699249479001003560307686978654206163229053263550274003599265733575752291604603011109239192470093943303535417829464448419267615524271690896851699660352524075273340729525025243348472175738848324478759189664819370099233092203554634508717912649268071987550528645598335995480865202644170517326177625039184780286280415792570604270606234900353077086605654755452746658388433691429411778690778072334371202453272699839837844086217279409512113308004498342122706267430752582353976766053397923149340575021419561159685118885752161329540867053431391587270560690491848657282528131864158914100620019811134730594340358200655761563391141034522553360130464271730514545969360895938202789219729662715800003410745723393035540661248721607936679904771290697785959352086280363873150192361051061046641778555915199719413800950062000567921432827084417256517108966678173220538788118337394716953340424910754891567234414290572477718786455932771914105397163527529200649651271143909489877214433480725708652566154268122082918382400788446240009389830834941320331563403682652806122693012911076914221369488837550458950948330216218872394263047649873219507396754970419097449684672700539084098606344999017196928332488227707948069211406892533491088289503751671957044494757373646292986700649207970536856131655807159576703627293725951781227638820309342600604965806884058630032019994583749893601065320169402861459993909139404653203236357856255241219100742497162638719744941588749390768181687874784344795207220405551214628954691064115178809015918746140522556966487744138623146307500621688276317263599484120245140372231314497531064520768676812143080166846673199521362638197875226738076027417934095254045174516929460860039053298932857558913938150975965724707443666054811689602446473954336865167059150916864509329847098444240778118913918225055294744778110880737651652337463136841806892598146121524527355966295813994950309299891584973307792721723495945373341747348373844778925427462412234127424415760667182321556930379354033225743762132371242779823240529566704837482918415183050901175100519990537535962680861028351578657762338350168014084602379161405734350833631356731631194594990312617405399064826761143334098830773878579695147846289227459225715813957975320793311067369624465829973872338687806157154329835561608813504730416257801932064830997791653216822616735314006037102828638711901086987372783526466274627680692846790269704315238570540689564532141438539603368787585449352695353057684341553284181288338114611880775824803031082023512380651067710145877171522311843223792533337690467889672931336908975092365318896002976355295616273506822412059348845365983966709008397796083093774205933903906571672820912129727488002220671631165668222860984778453731606017747579154586239578066468116706594181315001165088138815762983348051102870665860753652034046455344201379411155847941438598176517965784886087805554791315404730093881620260427653255607386374265981873517181117442090873971261617787400461858416781188585029100681925232543397719495088810505902186013588176498511778605810096028495952046099497559410842008110704082663974961091820282181955546474585768364769346543621349534330599509941950765471661820508650760034450435977848705700752972449674944528862787849065754404002173103026497591572645119973947274333250678471775611024280835462069027258927465424458094369543891368872173503091041477859339459278490592720353847735383928268285720064005047360357925241638454754363810031545944213255020839133230630489756600924828253213669901288906041471384024286448898082866597820738096033960521071730076275991109600777579491325554990544544172767794075777917346275147676358233316192692202680056774699019089555040107638751092897205575140284996347663198212518368490585145121743957437163334252216882697219213320921423717991626448398532248938601265793289829350117902771648266975354786383638476154471372545498822069545424458436554831016737189281147023043123984460472714885980539460498209452621736482538723929552182895950088183208039366736332151981047205965104663444428492860283405200703857925350701152330165517535079633767441196865884323637362661530481220486673639300334516627572503642370724689863150435679272580695080671680168175396053239651070089420870489312034152957423500665934681005068413817402995274694862979788203175921015608282344298914548402611374085636325882612844745390465309205736111925661910541204945449482473265152478881179125348248403520851568738509223528108990304923423448805213566291642252858328518186438147046515169007499818336435753356384850676580268049451308215224236961441186705458420178008864643870454071214286743866716622980907026132151503631810317929620523858562630415838347797911360416377355421533863074582053991845376789282657039939061409642557666771386375715628668937840430604657977599419017958766361416009384330931409465033781942403386588418257288391846577655127581847793736583504541783741151344934590720663088418651473582318358344274387883208291905831690366027596771700022903308355246295889221672882666144569506393607812932601107914613517428228829666649455755626730174364801137344559249135143232008459190866946166526362765186380194173016521702146689284065340608288893840903106082757642228958293462810505975608258743120266219813049927153410784251789084261451974406305462340222433897769036066366677268924480250722182519583719768590909121106110795328696512018721736087395885843110921418258083823201378851435819373874930486490076015012324950138418033131263313485573015023797740766428530652081322087151749059656133932828900590874545776527252063418305203110086630412614646587724561273515745473443119726004354616945584445271739897618716879816843470302847456301997994855478255669439122993098863697793877121240995078574025171782849746889551669273923355245152461104503426392574217695211491591849626329488199793658446228919671043229559716045723203462987336574188989186571502850505466987156197527888791809949941283407934425937102743594379883545704560538536735793023352816532966045903575523906046160974991457523130481939235089371564706569433393438237448951047069472835263221591130594856406386996428508632784857266595587163668924272904194465447874885444430280171599385533360974730788826450314853643428095158190739690336522147332000512979704057989991263902356652884573791691635897177678679385580496200832747747947640420889649144948962820025096225752383619672059165666206936847223373313521770944969091564131916464972070972834815573890230376910088459697192007270575189872797872563489880813103020579393708440689735778404465819261562755744761500546885026101531613507370433477685841096785619922753863226406947063442512189934838717483632516064392876950051658392228060244005114891595656758746822350452535728919422537104195183244589370274368370881891667646982875215667177370370233981311530853396671470763620176409487467513978246525131043616431600679395907305813750759385975709518141171329339662650299805395590594223249206645724562070128614946596953610260770709639587188358649410301558623102765639511622797330824454270882386366097294590904188971431970527256839958781404026769948784543508100769518921372400934558810735414895475290057098536930460474944410925271428340921375331288100465312573813869485749725909034614639194086815014595743531715555889034395650702078003675446723879580856080775017819952081176392431581772311428234830474067097524299836599881733902804304665408549859535043170181912531001238955156635175517177388985979560589903459020888056646377081559669512023926858583060814256800842795350680384130752821465135548702001008361162295294861870491117032415689338250051285940336779866267527500299252218339548532780117108307053360362987267220208870768000698764612268864260693607616863992409559726063934332335684936551185261662586289791882881584422400879629026033421487019903277256575896066227049521920255924591851530109528861718234174904183565437744873933742851753256656209001185619822164358220752175103243337861477019097560846962824289865110724707742923001436927992207881889985859510324194052922907867842553710271448589734610829642947470211204983408773407569367100652277199468354178911437431795182841726437593648440579975016490892525067803708017204013830188235750099186145613287894838614461596185896548481798974200675703323697745308760612327794868835361214401279428291705527768237987037119923683179012298173417201863436809579185993754593576429804112538865195138489068918425111848229972434275680954558256576227310725618052883158076005720445936770300944391073700698046001029435409036996983647897321438361457758634290568606715199055104946211766501899047093939294689788154705497163907881292170791356534626326281733620497994761800622292837272631601331568342374839645484340053812719399420326914906080462924975328585158096237619087638720240220361258224094606995901872133325015113096619833861037359355898343894436062994865849717286046313284309223745982122146996161602060094357527778264943575474914673557113213793048982567617728970058944019020909016886355835570254866424331446067989886465870031424829735714573318503840969973437632434859351261980849143577290568966570878800050021955252014897058616286667544337004746999576832826128247571834003578419587006804512137338831034730344452654149863966562948775842452513522457191947589277341734388619163502647816532904152158120939929800213279861824584700229644334451717731141867741909107415006401856065665635216252504501178864202149349924952096436014394566585914504980118037892361237591194935954968987761677659732198958771396339106775839798466900193194010409906349923258965374343482838345201195621914987394671730930607958305494898747604859065241406694721177082913965813934731126031861228479689069049010837317124223792221563201005634967612548751376380023744139912163675746200952159412976021686019882479269481784538240087072294521940952441945839304727882417594762621565788346710760294739334755068011204899008628428121454872684143065004819603322443072489947419483713369895476217820495466313436691583764276740796844888982881837101132825576212882800077558159429419472479561353401382550183836126335788471083357439758527762546491993896551620094793077124784720207071117470881042608857822042083851903334944085819792117434278969702307252490153465123917195817135946674544495929375643446087325476108299520498938733748271835258545428424503507862001003020493443960337606814940095425185532936632542880380366518573463827671564380224362365687254557525967781007454794189358768110450800631324331566528751654397644672726026801279381380193927326543102602213002113235621233946721244930633560982113602098327259951300051460037169482515358343439265828450338501882301375219714973582571442929889624131987460441580316104062070790847522736669762567559151397951888446858792300035162714804016941618434066583897041801851596143337761537758795071350036823637092466613090199139097865048423827526004618034244336305190062758392655298791972821169304486956447413293728654818088290043438199738586886708399835343430013453209564071806319573024525618194593457421009107988435191614839904484196136410864821450504962738016415641200640934555392471094019669246150430479147844789200180417137624131724376495357689245587870618708981105787725124487332142390739358032841068353103136391603976791239393991828333383634020465155725853792956431521827225805132391263783800835791277620237803215691976680317450230496849410111744807536242394984551735179329616408117674679248593693203437582164856035357711136620765723514448099765045781042738561752748349980253351616102610447497400374266012882917833451471045333594474185565908136237201995614541812399545945748341452448982603344803926504866129656251607434786090616790151139165348632721637713151972170012392928896798402959213059872611048263276121437562085486361115400648185660911630347864236203163062039625047595635663521044540568976456706111672812144534007582023770289578387457297726966117008732545635389351183986815959059034113347382225473224487932103055576081235955219309833712971082329260484806175222242981651094516080546450112596194864988585303933488307954169165922122371125123072998531416587890140858550796872921341179365196591065702287293687354117570270806639464961326824130205307474897998068384586952903830576816272215372992905048968383290828744089501660820856496923580420690839264718258788003296061840740183845307859690388209310418577931750900682941810255634631410139950809942487514227979757935526337207985264375065052285481759434962818351474988167631497947998958328796944658251733435960317990969655435806982369589029549382218936950638833692855475906459702070082834458198521629770754522800558686032032661642426910772829207647549726357570055981153189930289301336037956157307017548430218091054400368181768123451093388096613031554117968009132058215283248686822717364130711897344109376685479743366946104537241578049420631611678034082372355167439905544149846468305171169387413821659710054048146194695790263680029814092454594694668247539270719913724846967977574727983343806796739758807236384217606129554215965293897811009666802140316919350758507536427884823943627142009373345904556804178189924581980245065923154158362541529734166338044240720509902143043041168280835202278515470782532083538138401168867872485096490030863665281783222157721223974949243443302955330831001324322769464109969778106606370334691407124533538367053523913677513432290795680074691019949237012178340409862228504964799219093348493464408649203301440452050127247798580467491790782818097852069947473418638718726011521786888989998108443318560531415535302696376813144368532749416386107997877225022737645205696125426870405409579624559367277276755331896030244131092221720615101254527430160535542245574031594363067859689113315009127820617639290119122296069821437674887158847612126679692995135751312044550889562403028981187243517674529546599110982570410389107870716590840315676481351955574585252832895125701303367571959332086256880578578728310171248326975290480459541947257170700965230176294048821506665300155030031498879124883323062819369139125546827862640016688045948485015633781197206375247874651914908957999555564105304074966570579916030505070473466024849623010934110400169078405659859810977495908668954392159690611238209030360968637631867254367522607078765174871402576816086224479405559858933571592471906884716522552738265051892302968144180268810794224733841859494448488556941839946045460347872918542295917693427554886991240355980124209793011378568196099875984262043568779501510436242126160050478995140318346361666460826230811118906193405112696680723745586034543868488688131940393355818520366959567764846423385661487810434709916728135266850826006077022167615820017646356709566437223415556138882465064014392174712601437802476739412514644974449240185672597898364532697385360981616743094253993488269629623013034409914898920130439690695954749687633149102323763128786538303134307915693044797809661094595121740862111051758726009029693142665197017317592525582283129040624545977484114084001353749872918066748597170316957832173805875371719979743206804830548336869653818604282671773119256918471026804563576526372769819269483159074683846440022839153825577976652985323108128166237230162382359682964477338859189877934988137180687801424157410130501653243967884258721499787710714343536526882857794486405777571275620916108102805534538453248091710168843411882736537579243804685732897282192540777445406517212896146019811818490329822730115266393166150061652541576770173855240915678889668355943889876222571254804359297784966391393341171906376400310993658482076224121293538088716105492626669666658368861985085069601933684998859427144908638087841458481329402547625925356649765040344655586756268293019533479689147419412268213329747103191003203737914940130132088428438502871123785634405930877181659456128253562648180600771182704271729728097782065192724932222990196026573789745099930620479831923305117434983302129429761742482327451374483129689227321068214011740989214550057536078878594773807129360287682365887135035445211781430189103823703652099804468419384645768459717123108929787505561978543575671350832418963037392184384565165105636732800204981576753759985610363131438029569015429349454087658729108705382391967914955567162106952908051134147564255335207563435629334365095847145953783720115485553705786486013541266109940095835345095557367148054707134459447652026279186574419844841602136807866889734106564393725247025495460583110699711178001395417879785686336159329957715723677510455126816407383513526164754765983944853058439948030097668580055503187905505588120739206749333125896122496049207830048664201195703298305139517668916437981628038119918647120410546740022302228043750167580954362040299459433986899118778196161322341635734493211179260489764408624293139687530262983688822933378104810894777471058466932241282291892348148848133069373747155136145323860231617768693812278217686868340351547185900299789847896184922168997857147909339896061604927271676068387780644123186798009459191712499959515407985861980823996545405752440931040171118769798488588050609982511308449853020181258564552733748809501071769687914216965567722663568197642042431219978225366883841969073955773072319873802181600475136800601418346416813516513147186450422422527530240070345041276228907522063261404642925791348288988024937074108359097385724456266488221330792714605034279797881334770066069477258476378052703749082430782595354530930036058603533872780375837004613792656583822965754409919031882952560082448134442610728698294121742163349862619181469851192406879035350896682304189062025653695448130538190882929050874375439860284959226876370396483334140956874622818979583935300627704771240098515621983112696127551951836376240433253690466223200833730876441993584853359934064420805024704365717637703306935656857294432254548528297941035039978528387652829885373464937086217606708423336718374933770621668168359131367995835476541388051365347777966393681782602731285660081619711473308160292970113772171571879544033738632615816263720734904820037658600939066748090610663987180791849606806549895469843792067846735502342680118882983174672086074624121909973310019831746198034303292563493197740500565843112279378138376509200641286668232435168434293489608619665252930556421431906095287008297394401183336331611232919457274638663369096147934465373474657929708880680000856912369061203903105630292766099502569173840600473893985000254220243810086109784529789753765380867641703142866508855517801769071364981737596075239581757987890063193290695162545397290540740847256586421842671552365515920928873083379948054568928492604959392972811687767557155030759378824187237207094903288136665290460809748324424802755315484642610071956283924760158364880586054175676210258832291513825957679740314407928764731925193839198925878126469526646292403456423183331561882207922730786659246665868073277022874847303377908723220712136266145330202678680949466723790476303862653581716643485722536871586982076814613645594249767853464847578730220143434967585247651864631203177438646101162248137762957007279829613368432918251582830615726128009109325401205237647666457018455282000181354569102886041946469320770989152098736118926038370107720916338338049232213489057368426535938941962719725953984664327739530458209495644185607354128203927972378692517014874431279381353219114869447569976297735038908424174737457357379551338725879802073574331039981909287711123988829878098205161642883231467490583502721166828017269392922429119374832743430941584255474203244188042840057096615374732487190533731134512924559646083094514482445452244316992771554224381349853443699967170978824741100047802766743033257156246878688148796119895747378302293114189060173208304856406124735527905537323764081504410176004869659249133693904319870953827417431482246163687827567056852812943694476840390649479374743924506524190889242428989882888396618016250841816554956071185500455423484579196220527144781168064727786005345688836188652016797218096339711214837180225168296446759195620806174404129695961846361090927014789618105781948270283359195850149132565292951518506232666131855338696313104158767177006284325313493122218454163470867269917684889474742978178613808354773740111359373200650803075787661683472558436690542110369221304421170891462193492797674573594001439787688520390055898802067011912365701140980404465005652653781615091050537830308238642216516102089189285503469802935615177722938153464200001052970300470588456194649097551046988950153217507199726952432448857201282449203190747433637134734088564455482519549174520447298592873306281909576347296822196505198387784246978077206209916266927580221664190857494954694114543429085038098936884134448976036095968418019474501485315594005960946680515183489571822597949557960631914990398129922080096347958126769439880102984995833194409048510534014113558878225484723765121003789299179505693092048164915128856311438274534058820888548996344996802682213021349986240818712859333485174584173961037062365740200338674591959856365361061159138695307154262411646901157004902210724343781655504327385672189340805693951152747976424876387656325944153879508835433058523523749486393729946958517234641657389835286692462908418342975893109671340875879000189466600348344327483555549890389817008851714056979430645949364479387853373594991470888108457883677268589285354502931724549768549403151365699221400130183702585687922995685420771367155301357949205416848435725630514054904573953140375756149476292241311208258291985738730822088625504632454290484390495946040638065011978134574528818416692111211304595856572262194133427689829989019306464101837400532908563719940710722355994440257420237324630218041144852556082553636552607164077131997325125592867297886243499568488346050069976259159449514816437127606086831672713810854329827948106542702044614538178939178976687772792139029406743761028291433244994941222258304648375543745889206166456072807765731905166792391506777064283871489677729404108736559950290150937189489693152402600937777043532722005101518399894824767939603988452650076940464503280284756516204156667733468449872158759663822967840933983331680377131854927686921437047612334941001636563475632965203816558492314583695818159030884860743082635787229360603442752568217604452145270051600738119676153827443356628667377819135721719671838025225478413030812143411804697426040776862986849605987209967470216076065659920411086897434486037685769350243740636013221746192575280086814105955563108633054665671236274618545163931060080908970486804017761344650726590020438941057095878955093545007243194286808438717935428539707534905156250170513545733427787087069426235940719275490374954104226543860152467234022317492760191185846079606888011947016831231363042612662819187865152789872164713776053786456352354859106646502623802887013706522241167323392067443028130450648283729949743891597934908137705805599360277206737441659495086310291209721535726447936634626229697840578155540305185356747323684655409465489922663530263151265850727044275606800521998694429687854894011207705127158205528076750351712927369045280226734894215101110010499085634670977284916258476595351547984156315127390356347894664958103912283580559263597668702419541480426798267602082883379997529673645916483480358585718389083027148641743294790004182717529679322492781884104645460121703281975340603486936898282337718912236746202581499169807081814515474486598799859748050433438875919853322258302851333922792843849806697939836742636353059219027074733436395217152792412621814541114541343406598848125666431639407121671588892012962115864162691002166372526364675676608635946413253766224444449610488107515229889663368545245283055833527599926533380085379997819992383724307259187776350970297380292786220972678753470240225931278752219885340219179850355849522207475377575424963425335673159528902172711959918162391269155178284142677814356666964006378683943912835974043072468995133815965661145756631965024131267566273586766118328717317868143890100939398413531333023946139869301357236359220847652986106879230653514682473048647739525107982188000670829358689802530732160878543665138879047784011698796257398065991810336659430360089213102615061578182203225648832377495778286205689874102938009022063111544333297876146839806649953830006050350180456444477581409752785481977696678469806844021074085567703269716739723598302866057981666897410217215970995601689603632368331324858692803988747291098623332916406059245219264179353087569857624091018752725466708856850360597378171143641713462812259687557467574008708064226047723733890538384444568250384251362542616806770623087849357585631922138824691154644617603584978367959081965253937882740518859770548440130987457731908781913518764914314939995479396917922207170079382913754386341430324254832075865965550333036218112037477371867571418333009925461557966823844879071296588601630879678244993732527882881403308189278730218720351841171427069138134723537321555512458380281224982430194070673712725448652622928100920910500694689162968667551272424484567383979199504428818450750323106520421320525794592893029067159935679330244109075152182986748484119888050815826367277920542960998570531805875899236392319777957515580229225202167372431440046440754335510250980895143588040491848218202169699612245354123521027724388541198747170731648159524702094934229394031099092320611511483480375039789800902484207737902878966488593978530176607172552070489755743190169625858950958551451700440462652523988448408479819099395721345328883995061263203219702928559898500601472478432137568198910869118431583155888425482390193514124173580649699543744905924006377631669636198130787309127307298434967660437669224478239110416879613314623471036592125618924011647080377613769244380198434249449904159661499503375617404089483190414281156531742752796185677437596311300297836411588546892742933208866957217473800967949590446856818029024678317160746921824970078128304693718195542024281812676003325831749488398352328953013708824437455663336381227415703696263330342348380560403923690392159401382875197398993509215875134453299170293436991907849354430579631609625532656486825945333986326097130641920305302099024081833463716048859422467538195125243885314190158735452793416027317676043418054282215009280763273901845814006379948692821504522537590032814158434200177233236763666308005326379024358137528661239279816892087760701140103536095452612413510946503344412961732398724252783346935818911402285110048238669228122317444666835877111017203347745180085850365695744381688380602924073070772900035136225915942150472838687107086355041606384861522060387349689230756290882950586790361185214104693551873598074542087653288998434845553238504441104422585984939236340521145577685315414441522639804382950742587331461105015709663015421072550829616583256804501760474938520857526059185192235320421601230905914605739682632735033988533343603002188628978020334195692357130607027167197934019630514848150014789102891419127090642244519930767049783742108491624864858777224852348519363173997649000133239758633130449349663365218658733846584900642631543103344034465196836351450187696328855151329662008171882773717916697268805271395125180472986522683093468367950884272317455722269256218529284925878534509472823446301546694568475349531008289898690336929973989291504734340500427152425181144767716620639903293214148058206114409019587295043555792456204422421839867950953401841752935023317668048794938306176833067656114772263393874508826897155379047469514799290081957720284757390355883179079580826665877159521511886043747236302160469741237777391107972020159729957743844824973353548345395853635304953475129179700933126579572573202000880239592526991858064166547069548671855115134250086729955329852498568206885329662461222447194883725421665600803524029150581506365788929530019864654891350177327560247849460230326531888363167604899347085705370540339272109555243697299748847774487406277283437985466333312788000633068454804684666998955599465213953369063323955202931933258143188024148574765634721061902502634402455921066903412732337812511027792192269322958097078012558187132440039037249502075763553985630732000763530634398162933006871081011099303513084853046874696608325198158093463938153382243278040608348319822362948687286333236250609811950129129534662975681561662126394089238300747956117129044834627464848217503508528462006711260263691666913101395394370883136157076237396189790507874470026439939269880071484096169585578067579161068340013510833490239090358229182788061602236573501952496251254668097819200578338044455104731577140991922438425542483195881377799882678143663000429499444631241964099850779833104176569579239899708100100711001596055331879185362483475157493869518652660283703024041012645512507871675310177734292617906135916840582853608826011576038605903161215687818445625831827910021248887270543007767467448728316953011246577198447137146039314902641682794264912830751019276365702760718437282276613937102176952245479400295549721403881069651399131619738351634639648730944804359760319742768891095230931397500968853011755028340003495056094867000830244441031762892298346963866099381333252973557780161376436939785205582516428680097642425485337679812140603206641078304783292914631428731752639472984148961303719540527586446948157602431257464850211350423591926726649405776941823466533779176570365717028296060613072224334413894921202709866683854523491421229216445124970965436999431369962908300594330941568947569215609215495117461450648971752486553150963817371360207271964414946965836068401087664453266498057367998638877949820156124602294240505944040070001623894681055337084366533434442317654624557543885026344415110624347797853845783031429024838312679996964641310411546964362380935439791192938768430680017780246374428118320157196649367663296801011438972299887253561718140988872269897715345908844370727905005787199433409173789789768116705496890991061197258735924978869722365381080438421458641681126802036993209285545105230233972580592723901615284762415743505547132536059779562865212198426801005345498846629052128625881222115717239864542554399150511731913382791908715216832323575238520169991008107590725862437635679800027002139532253078670701080029772710506079904988832384894973481681314022068617213661367972956890214885162690071382158605922803538355670267183033317828536225159151017104840418668733833092541954395371338277116506148857830341237182055541379156718163368384272900285221965345992427771865381186459387873844505859500575601088296546524003228146026848076761127241326933292132214979737691824931322151212453857851259780543125835586617713473056947570900978886535983166705092869428104680144816939165586904298980585524971506314773571219835046314600166782957847634297294805076869077572162552780420367758010542067073998025878516636148232291206380516645686953034791703411467557745011516310846549572955547709586564557935006251810691430420524278036898569793448226401236767850856143597934250799640396464383133158359823285719731321622498560402904614602870721261877726357155307623909869862906981070555524676822089351641927961430346758620882700654621100905634916184798614001665197472294198572341386720943379509054372659828513088002938961591025828160021358643001977779840165600229166316317545777105928145838144114714013589105712288956397468923542887434205760101881241271474034182510887811426222867316272954641325559348515684822314501423551463247533445563141330295925833429156323499309216013243312279436587582211755141233232539812148690291848682373602145672454332042187062437536898580333059135528546679325964439131573816032286518122681868568507284817807318107754086018885932956400309046536056982456981348037426788034357827840200507283892979921282615115987262831510022390237844153060916698384987606453741022582748864257688676000671435550706710134969684857172532246480269035292981855975894031068629273352642714351323893585072622013908592201380410709681851299434809057074866978097183566616402585175973617775601469378103348440417596247728934922272366756352559859306939013252402842981853177632760889931339628067999433130615279496865722926678670749721961305303241488835921470626043373633662674989001176351310630421728874409656139416806054475149777218977193939278500749482536905225333494316725596620605186587981599896396170177640146444121733162755505031547045970263279004141034402551996872316097112403312997406685719137771094346108773373421410043773829748497994036935011639086091139164046136207679574503648251300232221035110345320657340862818386530306962468511021606557686988951626196684691842006922098784526674379133583362630738042933727944783249789725807347914846090866419486314246177211125995676932425710293359228145837815306952663272929632260400139077390183448738323970371276202656785827884964212257415772536164377383959633331513958080630770835428238882073776334592070489703547512381076658030417783066042617402863374545419948590879245032728756285035612766037782121082584927764260103663834489094421383418474991068367679839482190125824239978558087615227089657219461317621811272994728216891925655356411628890966414051888131995457481962551152104716793851024270751682735785220246567912324982228165393863503803274947529487029596635010461093414153449357084486005201581707177451817631459330813235826968663247730763658924987065139599757546532295096346032014992421258125243071213271576563724902403191659748511634853425473858334928568153964701783308618284351068032785509643023483788041937359364104545849360006118829140761919856991839499630900903965690469602748190658319098400555603094530703905416882327767117161487831442950982704013662705564071869393898584224991145555562314083617601842536736466454025769458759550943375271371731768462439489351832124408673443584766113171248879629772453252546672273269085632750973429260500273575246292949095497250861715693430514025438180465568189670856441697514097223392359297228015831626785517111527490482281455670606099321900408855503289612178821854826972088327362441011389745140274787914054860484344901780373555547169424403878791819849640606478760572381320755402691322872393137827755787165639518839557052506842480733891227213417726236531804363671912778505522403705161535568982237529836886854393990765215842993268372959337774735531856388539823301116065567054925032254683296040003217237885942633516169092184238667999205263870336929012079686728501689935215732268427413108283967322936338850585997836270199075868427529829641232651794032541949196416431896885739140433856699447472916006579132766922682644886791925799880789252153569006758378585422746883691244779013511474768686859921516294534686399962227842352368393954099628703970271984765405384575694934816234319999339193347738076084293297060651255768429790489218085851917911533425865095124058574322588096407054239464120545172637148706371544111184882174180587379704291583099921115032891609858215744418187035247930059111826240895708852663884319090637229783308782284220989555506288973574517132229651899734216902103119756594547589859473492026128213918837117149478019032839004550937597950480844198017964322798266470403637387590419933575724005486226909809178311094317608091874123379802864554080675021810206135367625955474723453381982659687469663807822318139415050403570264560507029241880791366459214157112056588714467004324536223139916668771859474611982841702259153374120730391451303132129395594459359474137948961882528522836368171560239417137927956305943563394797655810174980563430997374643437086850156928773495466557268422435724023018237760147098921700047231226643968335933605382016657918514181792171990015189381758495690837271103113125575541875445055999276941575840940000319276097028525119457794073558064491780886958402644190306625059307509920580318630092214723192712811405774225747225706586896707259485145032177474164133200936517075401433701441851181309523314292018019465512683306901588807879310462986881634151879278730631584297020458903948154910127222124191414819446756062341326054098115732507962609247670873141441276434384345016671970196853735847465784735367727403719246625171437758868115706597201873012969236954257585514083053513013178582767640740056123385842115252498327157689784354138034691934329417710448490746611607818692604343605789743546985964695756722548713968542808975190243541384832057365315085893278129499618459582925546778104640360557365565929182644488016051918410926056902685712335763976338989219852643509041449099943063538420569671279339684194984056632768321962802643778413942254384790442094023054540103050096227180238852572387001315819594562918028050106457915715334980347323247125766896956170637561146504130917892406101218000887368874236964429268878805575626853161905745199593780168004252182756830194030331700083659529730835189619340108910140366939803439594386658752499707292723117459234964407497911109828321076188294952534305666084420457671815160803444358765832535122009355447524932179241413993485911296496568878133230985776795108727498838622222975556929482616477803440198906465077698795227860447383007931023661813599219195463075941937961580929508820271996014979203426750956446490600658317575916633849050087708923767989697021323563253409940350019244537616526763366599680970706894113423052674986927963258240303439990972190465094627293297428408554352501692613204011310507740194586339574988773620907598794902384945117990795146689940937575440767564010124716278441172167479412565306764166022788157765873013966546605026363013069400949823954554551178297637125889339743061495502441139533047731762892595618014395774794092988807279052403849503017543980877989690789409514295537833794909170343782478215190232216726573481792772233783547404558993117658063823781901639706348228498711809686249316508392177333786497873476408156538918476721145277759817732098311861418063908611411627898248301694120927582323619156807141949171826069908146833905038017758185293964911750168657699010383380346881356140844321503015471604485745834201567228022712163792749140803624933644426007896385980112816853326086681642116200396819277634230367461264667067040823726660902273449496655290030143814135964727955209541973869439575646376967416241396648118441611704393005913437633978536187755273147661413528204374149813715984950122156495497530929450134834316057920871521416782092140062555535876583923078119009175939461439135500818691159475364836483584434052304038016996532116270244729905912892578827269057972346771402754856226445959775159110627644624475101228070110750172477092827104165778291293024887617615480085642287782946994132742742011260328757142936063161128933036175875228048709006210027931530576316232912111098539906062846427069897765164124787688523833034362614401590830379620940284235442157858920399543202805442415858402507266662288028801058093402512302323302275465054564224191547574654290602293596132458459227065661849172278117683666045272996658279970874003943205098049061534631255922872655125116199358884805486346291073400778034857993262360202643373029590816607329588913798208024184492451324311180259482767405253750889565531688305126448599167494957277252143097128765596157270355773865031451119280595818769182432604493970696519451133065190305912823225288817263401418754059204311283186234243929743223800667030045763856937299358212752446296339066785330445960320425357603776105077077751871395634230283371883219101664224282095759051128007675732616375329033016735997994277648663437210826828971156436314876707903063875259567739986589901278485026467466812138104637160003601108547162270247431048244682850510389961903213490141939900608844299694032233469460678831605758839870404031771194261601063446629633906790977834156949272045450233888134262081531243707864519422320727306923177156674287178125412034245943661417518007902979708380217986605835274496091341766943445645090193910279606602988812916625536989222845826000758838281013984990665995119885430760778313147032757072180291613687775517418165448756763355383916871103926009956317776105558272121466693309523975070182408233488663248085840464587537648001324713522767633024005201533492597649209649309136405289746573142204838936454925754420659009909895816533962290721015116081281264438738683476357504998222382664886162243926491004311458607965442303862727720184374906284059226351205173461418326713028608219045811383759667498083007547184480218321099770581392900521482792811678676920811772902285016611815413814835015894513320973095730793873355044117666411671660503027315318990743395450087227139848473158867275513161301573063335889797582101055636563642797705930448225748119526437888077374520936526918825718684120036512810109560040395894757179667557523846485188495489404118162511272622058602885765164319610937305624207503993837747791816956150125560156082605161282268813956139202004551071418451038765445835603280726402506451767024680412859740027604001009045089393066722479711189793608117775772066988685851098829031668993592901615180530235901534177958408680309798790027566508352860334111290006930717451821014737415164542441439590882480021198188661684224392229153225356923497004057660641573705863533149601334968109925539909196503779599615558627496370059003956635271592395133065040950370940684814701006467117276262856298234011471066893779439473358326239622581962471919419815194460881890879774078075160435342762668253707448044303953949762388354944390538834738849525392419184445685874469131632808795031036741806715625800077580142633904284384224036981825778042347531430585556980802996348582963364543944191579727065962426236557487343276583847006679102518544939289571131284935257160609105045739854503570706912077306929842812388741292592149422632573523044917548296759587921597204559995507842212468460727841363486620515838867999994454492185370200653310892306695019833134445489448739578605010084943215548866711690497383629065765215155402847416458776119579121930335212140581045495109720474668787593142896518951209820130251968385260911970727001476430550363467771238954581760420079056368424043491097416640177727261034127757860717351318450214109773518327299146550464582437114599825001060146384022925538879284301895662811745726532511428558010510242225114516503014378375890851327331951536470844097672528154805640494546110705165197510092725698175997293414045123502393896297098542549420902063635226496120517732254422709803353726002917216744660239261052343104212427279634028301082931250527690962002546848758725118528002070705802588006228025808405702005503933391979039710349981793092964958464472619822887496948168114628187206610008859090887164521489067365129613629076211790094304385991660768123901904663291549008114341003505110830696416167132662013298556741604968688424255145878135007062622668702334399359640504891824796912337353193853406910780660256633709455665253631920154175377337988919244034190804074001633574614579967866245506648411330992988694586333181863543585723616535329932562654001855063499528827668631231650226118393333704483088640904278622175362025079207974983046064391837443461378146745001144552278264092443658967867876669660261621724090270507270017716654656542888532376506101723051735618033803028484030482324441404959390068420905905134594048677987984292059625973196122909653336460776247367988932146837647155614648857300995906538672678975622133673855992590840555616306217999248452045277092096193080876082295771172424872734097710133414679238293883757995263704700617560665307202020813350077403253496552821600112816559014261428819065464925274343870590546455696386296895638856439355845788105103046448174484989331057080982263826532169931756911809491033191777301095521077916059431028564092698051985967741472705118895641003388815549728526341615820103777105159680908096476481166726248538722827047901131588550146589188338936646101703828566051636858051769974326782006921913430623615774800830565845602162203332693747932385283330860708437480532761577919724927243233307492047804440959434656331749917324937309130086865802481179444582900142203421837533225122726297768068922893743414150248501160160605746006055314800690956787303976222344296964583421072709342250990182233974305608498218213206020445350774968865892706772252786559092742386892422952915641630582710404080948649998943150792155020126098849665204352439568757498469822083403674842175703558620555793704974759543089656418953858120246002434691172734459484557532563456819840850447147115110395530682188503214761342554133730649459604484783695215480821814771369492112694411579456799437864363132324802140908273089364145725936087248456583926702255425538614839585697010748608395226180882112098576626270206601284818168327607744896479245028303373930333150949071734779391989732001630951440422486809197134628286370493818559612975869643632502472506334240916951511814094140729694967671925386566004411766586595270160843686843742006181416154759838081732349977613572718948082372087936323848550763014051136776623108794946399152603521683524921530806939753206967949046427384580926434127344079114188786369906753224738068195855144440016847951562873569913753360567399965842821094180629284399339511477802319349773270106906830962016526301846543523521861937629166811061412596067211982423170215348637519855614187710401686221889134741313305676618968740341128557136985315155297898118770364242861612160021528802336858054792499969266366543697226332589651616834732215244690057152815139453742798729872494865232763177513517336423165050881912526200602614242888315804583162910671828807783766743443075127002162345191571694011790491620227937076864349407475736056182172442320352436435576955830443729744540200860945238462568393143867414756830135036963565386052381266809385527699800681318848287134868485124917727870460587478720592023461283367569558100686499234490055420557689514992984994934369736947993472948603176209235826224922767707146452632770588845987716755689766850635024579549117691574579368788528085037093409828030543743223764494276261386448435073593363179336221672992130292800114779808835659427936296041042235484841937622811491622093045110283620697052256920670287011763780252673831532912838311731305287627734042692711561780349075667483566177754019552761539131808043906515394258522749035835789073453875519732495020077251341974229554280146024889833988572777527226822808559296717567536998386134264838952593597503497937824973463273196825047109359709385404982096214446895582193772985312509617510621430446989830917643176382188827352967838820391616181276244045913814194218942319191987211899949257904691589933497623152801149281288460266783959448545511240829379127517977772443659046940287069281412335604105993180268378395663821970245155808264706517091030967353915828840840735029577917744248160847822333291246603752178971961736247123808176757559374695116690562372097228527583351912011278603961402834811168670853617765520585039940985935595938900427948668083631948908666489450142731407833064509000224415280954563550415100372675316309789254798004240243890615310589587570744105843016993441752283273529795086132235873571432744122732510411849982420345611243214268429108286124032691241013224195490854941292062321145178961324403637186690201882826913635733044001072537530310820346993741774861940766769967699350449554692060809658252418949263892975934958146532140745872981070802401987526204530268615984214411872843827150710541545620166378864622389988411308904641209242474605710288995436593620376728589480366876491907146341842349485954203855126938954421503152269552985348010586240639238372666726774386350576026664576868755816189346521515298453825004435346936725297695825116776829576307905060313492606867693357968484732736348308083029320738541500551590738938964208536968542883503578842275728661607559766560009066322409427166250556326600512560392317870653563263906187436783006974389066312384016508420434632011877734958575951824575958182802173749657627289041681370287357911017773086151904635012197988933673105683956914883108199107935771049410415642063914871766862047316323882839793587961707442779041741421396063345856578646100218754091222551880688406095995666365725518286004554893194892430445366525744043976375513092108808659498254245579975610026682230165443432318861275457151970327254142275627407817839316247798516179591087482366332299149784575936326502514918936825798009941381925026005500535491598527962276832433834752243773214584392105706315502225855340555991960298122077552695155964980591500951485938636558996276925021374180968544792173856567142705938404722540388519899500637371161854978287376760598157889631918418251863495642317967591927667300595492691472095455746894642114945692779692514131197875717281618799064701660342599628317343060645997702064043882758758469227143976241170713848835192275241436008251554212667113791718657803919188562185844608093951408873901803438329080096156000716447108256428516394343744510201055625071025484961781099037441492639705032982179578675521504452874336791197190187402506469328749761066613236165556346650297824975223113721601065593359634171526748155727099802784326260535606807015779970905871508057953189577664757097234596428718172489855288860491134480049132457937371815723850531754782103989317113488143585242940651066748294169446307914293289106829477080370215497701076474331272043299026056856598111442031110517900507903456655345928694192109368484504420285521152191962480495468817294624835639775284244578654407708952991116932076452809774744115643647943903515760743795069267678185650854922327451249568795862208540855822352160093925343974207901065478500509647946435129456874542881509119269879907189993815557985837366981977147452912195172854889025951123886603992999855882510564680478945919999984203523295592931303994534196550000990845512876627614761281731036725653671367974159225046811671477920999350669326754250050361357807637344709284264527592555329080800506197973590154802676683463194474134346498450859840321094418297842860263154087315289250440247223936826843484517985865409190820577684335500626159548431055663493550194806344783431716865415352682761777357655692535634089892530487265042570588895172540106660371101440952003436442295269431784135076393096831217879173347087003080925812755307815452414800278171148116555906501161291569481783850337035241296752374294762167061288242568194042233617503686450307273905039129922786646930950619172729521735790681016761603137123209562095890842257655448077448957278135565296359772193276610438295330059910751061532284911193566300376169552283455633054951014569026880023859574954514464638914265789435333950430851592304377721186281432721431871884403348761684834254352815964618924031203142068844680349701473075578329891918437254432153510037993424588976259684267944381101511813598126404922504964659539860059694143779668825584109697504033307024088345717883719033789686861796993727629834701616083957865956037234973423218914457319458977503770612647724759013307069517782216182161763915022575445926186059309434995601239835589815477059834510028125946897353239858165107048414387266310363126873979119887601960444756268269757935296736241893978277887781726011631296753840153564857669247118141737652933978138758286738669997005805755191990181063000430018196856206140625597809840003653546595425835490953057326766944665492812590580356675371231580746228637639849146623139434099294230380326576826545464916063698955474453418766882218247101720275785013621900855917511132226807224595200558916076086335003921595540833454548785867631496590354308616959923212694154817085427493205324850387331541564033435201154840661954311256102002767004740788614256549755904336282481857142030849847272631353860605410508107579766822524368849152254679795755043908609573602677256121856183019862209674718379006755118333677974705124178028046132390446130719214108713314257889900079228064919522680644613075949521668573319144832410277380089155845987718808889860315396908762334646003453926012751308195226901133856102536447646472070425467200327406006214784316377892685572032474351761631009809921298213078158095409423612113322444687213783573525166802101764542117369091083705073483298271346033346896753978989894623329667112446255306962890029064419877534756955759456074395333184344907172380464984816317000917630849897806066226721447589117226064142137719695558847184600913269280094816002939708928949825229341259863091109762813002312272813662070755213003437433235404073246557108771965884652895745813003115268661397706629591676891014156953090753584179908261852284934722472064232421190371199615709881392317839903736478656237126797285792107672271620878193047278662846725175542826301274174756139751942446134390619514717685803878227653214300185798165574550627026406101606093501777188966966012314552380640739053301888810246458242408113271809192663155424736265504974996437585235064259584565002123445231862036707008761675218644508596718009196164409966114361204469248888751228540284700391050485142108825295480080678588533545401735718242957980794548816365136226580612300819956623345527254445846132168362557578932122915961566153867054139718224904880879762150196894957136105477221259253591475642853401098740711195601655972127789251857096759867345515073901253944365401126859288585518941157359436528005812884379779723025916165980766339086805603710287479627340039173609912293668574853919043825168505938151257988657661798510791694747366779232073571714370748295288918395377032274845169540280677815122457559749487554594872346195010235405047595578756438824778608402968926472769689941306054768602218622697649180988315634950596024644077044829566954633607403465090839380549885769141964200435535600132054919438995338138571648122009676771260411432271735389140158343444383027944666521846014082549963167206964885082795841647364679941468546715673996135211193404097700702376692773857475871358373552338760281120674655293291915445779821448858722819786007933411527231634524836409611747061322295250749968998354767431798999202858800549918041937665010668806933431254880200797383392125842999443473756421006816694154400608812543088164828482167023869566673016455621608838415972324608209553336373447627672818997183734849211618148885492879142005203479674598240780440972845491491049670321823105430566471842406536811925412302674910926374625392777358692366583546205589913779011979939781250554597136518134328286512325824178436081313854365568447101150681066640746743729913912322065401631683806733684894840012727849301930044420458076243384102319987895798235205804182628296128250964762850431446411025728767861177972953644650664439266108155713686356332746032408865725746623934719620838350900810124515393532705031059967271672301624978504653447994923208132066138449954485923232658466692912152056119491763287674838091637482011443721990909694421565125920367837120716545857205838158382494679024633751296753090712337417950680136962739684267964165437926816924427651761643579621604493212415165852657496213431823144529879679585853956545888067976321459565902202206468239213505329305041135274526545021836767519996526262958407945545951676404346272726504862983432715336499765597336181528040087920445308197818906448497473865874079126277376145697028052426287021156250064047925969762821760660043437929592867610279564168315269596026693122178746752533387760840553156218827301927844657084799039005547518371125012101091863788641265015228760218233113939949849939693177054150913068858065326155094572415801909688462346319464240171653467449500753255832169829223515237874811846380573575993693782404320694910556211881873177544436473242065301864647159018788958937343049442167080088458162000445893493691418681732962968696363398576505565766727413802046712093614446127744315788885582613767149437333009919160488124487636652735768166403079836274427720978566598930724281294026853974113330849086179604988527409990060700346094419549408955784666146312886291211277613710000581822499184689200756300807181707171370478318239317331661084726697651531702449221406075784655206994600226824163571503739516884811473226912575771395590781202080086086841310110168491633596147408870939960963849173556052891887715468395712791209998797549084262965474993972089559420769067826467281880077512523712881688547777611954290204266304911724308318372848382189684343223121797631147474890237190934560018377607410308884532526028055608403654278713821230527777807814267424857272746449012143756689145113475096109163287241519075589420992906749032441136071022542525682376547758859318669278058784632767833284335807203283714419092438123919836608246643856341561639893669428909765412215610961856816578200307275470851509156894623392598613984137570161261968755590703114783563151861079077098518353174845189904969699820545344676120321998856183407904373120878478363978328280433876437749218815322527657235400908081592005076146694240566698949391537311637197192364852941102428607610555779253299923079651629008611349334796846784827434966651785887348063884190268490662893314810692375869361992826610392398883152598931975935957580911691645091038567742342915250020008146108648000478194893312495506940144897848364052448749834368201202316089524585852929795348564757186694081191619845464049561914734115950671524641758455907458200690574184839392317662674885599308177306815517267317140444339302916947746209797832613006782121902020022130323642643606417552026583169404735332834233383024128347468661585315364459042592880554290616205625062882516249610892263750207574643415670254769681109336943395241746199342336450809498131010735924397213923405850483091057588067124874438552359681757623753524613319486442122555058116143239454446953127688338958539435364577021569853733959006174068783519744138974918052016719821790310532298773518741242621433728826028931559336913772277077993552662911903740890275090717643375257193714846148381863330523641445963603121290457883874831059613569723352499801417990380582876806120367480841858406105632162330572011044656686717247364552137136733691561727951039831005264319987314573069474515429427089857960191030224802663881239364469514086617418206545632320210992230272010036304127606444347542513723689472081249033000987867560877137474412338049536162597700580423934326591772948384337810657556033420264974712844243210475149604122740965822714676284424086074347181464803301305349632917064504583582681508692252411675538994586799562712642575101644012833734268703317591840445542290172774586958972375891580285762602389737256736943011626663520333566086454531707870767631614427057418610788764206111107242903639950281165234441052737255267934680293273193796681955967508979264343199359639073968936739430839837972028750873881841710839936886129135608958378117157142451137960339887898322038452990527467046028426169090339180801949050349278708825608025380286167262450791676034413230800134051606662117466848248055667255431585879106860418612925370166748850524013092751217818038193451421574350222757299738178117066830393325459292513539577153330017150880228548422930827965244933040236472031573504072965933240808528779628044051436324962506598101789582190638652245832974386289640733887403853885851890950199895781653712966979434108494967671832094210736067326169729670848532635472650800491023246706680368950922104569890992450688934597223288664040274078027554187670988495864269242999254278917197512922366388212073104730744235174236886319232010449127840937865286750166253789663911240841486816506098287675183721627475620658378398862634930125770295517713814742008013334865870893393022149855251481236783248386544578480893515158466141746486729810436448508856487326412155281181193362565970701373223291852796460574444735867952579077477424437884712238247030921143786280876748597892080932844575014906241348664711042919157167564983661037524185560242267242356058675484105073862331318535824888889596320836766198166871639641095410769692549925812280714786958371708595061735616998021861114414560499548648578782038611819719482286446231331501607567548329746333120508998017142752801632274120751606942083535580839191060381526642776215578416662230396990626194020189668876645819509857200159533265372919426884442286481032473931947702881680808030464592193741152785098431127822500435554336593222871843498751313516483493105495443939726820292970084640552067905077241778833261391022462079264067283683052285643535784435743641774620097927708701104372033807605625281182087309321919268671709214658002759051976985123733500323846722866617091104060732181113427713323607131365189960828149215199463441670737703160526939678564557622570314884358506801712688474786429358953288689752227369633562805067075499118400065638057724730184419228411966441780322696089468841085700681769587797441569921377781718559628784697273351442762287207003187946367720649859545722265571671408172331484096053826520212682582828923882558173553776942336397031245260371496047038412697928841227744248099337238644272602529942961947677260737712858583859071214442001861565385368023983100260239909273788349450054577433801215771704293680551521170575596306637948941214825577700900412387296465029137662927066682288531106134782269609864131656775003756050899613574193655303806076357272281641557395549089227398681787674758623298138540021115843668486038478415784895001517981781151177190389398015541157645947896304496417680773013098109537778245943011194344941720839157617527711483108420359253747132058710460399250050651843533835653877131313447500094777334512467758445379025930628478035410734570644803237490567607187004421986839879978178632338418009156843985229706520593450622924477607231756375968288842967581425642106897934266088242151564887810660014496666609489016969624808422756316043247943421288257199186647489918047538227453482923242363739067697183594183136005643493266977516532302439530992554882610768227739234472454670487349153048257904580422048944489420753219460416354005194973796768245259069633532767679498930358822895559674273149110338996084291506639080227133987654919829578114748822814473633136171527152507995908948690220335533785912809410556353338943235538817827246458268788209812909460878104302113503245936436920231875864432223255091667743123761733427665142013460986490835833973610861525877374283284250903752538809905568118616697493446708004773195986454244031468098471675663239648920274034542074162367749936837737401678611319478608577753679078815992993439645722666008667451404190006190011024182763379841470349873633462150312533377561987195526258701483984706491132489545061488908667092114481804063698031234973920027773867634750091032368241142977866488460355345616610365504415802281778464677434968309282025163502288131109264082785665878290032721785220252876292998330647674840452891290074212004017699732200059264005433362532790344318450593459743123565097551353018268965164054430586530545483805521779553378306424895483118333218209525280342265954009022031526360260047760073084697539704056106035332748374739165801377701652056981344626110237099523302984670253085143600218565594001097066631459080042005673691817088702213854093449624332987763027036906186833932731475753994242504048761269282637262267472835837125597514818437951121229212525971464175684047489396342317916226052488533353728379593844326078619144284130834085290158670885233684011008552101742596154133784166225948266325839422119228739625438247264920098247346409931755859574871504106986319794908959055520480781885684338191986751991213718743836953215729960475669113928802038791295085089190666928989890238036740750481193254501137130461614368805110108714620690784746958379205069918690687026352954383904940612302943754705543675250294675551222233359483658217873349529888979763187511781450641965533534780398545372358096972210273697543968522186048027108899566531103372550553630076204091538532051538881168369845218836296114999304517626568203124404430697654468300506833441997157139226457843543983907759950331225759025651239712449732272636339280766861987728331847550558080087811609576283888196204429142912865459369623446006535722181423602767347589518148851330463998314687067621144146819548659890507366780091291686106721145215630885511447506056971783436860273912294401947421642151325716851749192242282906325447500680898980486103912367260644452399657859184642042767312704267383472806828042330223759523997295081045942902071078854230237315779006426369459536227541058814863701335264640807785920780863439174138566817235045048286554289406679077904765710574454586690952913182010824830950696998030165957993936225429186645345299162895099205625786963910035798686766408338837984992490637228564156242044105657715803257885649884209572297352545926516910613019125014847425401207578787196328937898858962472489369390907868491737094617250437852272014081222274123705704627490902810120546903957911914677859621372712793372335861060105348635391316364616157794628007764385539112533165527411075557677386536005048073307748876251875825917727556568799240209803619138118335809628795296300879241359443169616351501577784108267764464377209573824183162015840416656248704925386876562062131148412456711886502171167348577081772955638816182240773074212220182888663845081780910704861152414847060193855191130662079783144525004710252396377142286829514063923815272692786836415533999836846531621502230002091693900348929406220242136551200635747959891278168796368374153709308708750009817504101907142584612460130602069075357256240708843783158625987470020545625756279807402969442674202815611264675206347334804276222087633194456941106938273923143238706169885642156917968822108243851400843640081416153081984678394030954176416948396272496236827880499287394789104346574797996550096388154347695768465830057310092772010840326053293518722727953591443678116429396209284513834676152722258688901087530218387100995609797701632843784132938780753343662211084188671511572699343848979560927746793774960676782520746928323126527709341592960059238874380316023147270881873123030278668243951451996576406643908119649763700092419081697743616703765215257098126734345980787471899223472820603632531439948050797720664184996399050893474678475292367780882589425153991530126302963876813637057269800128712256847948497727947569049328591481889005080257206693919217511809227182450462963502577127718355102727929163696570939503170846031923014038562712912992259260233554045897388796228652096291565481007151642766485960387223382149424444156847535482518407676306417320744755717559164230540751627639802045114730266793031821759061270703135209600292281130723672629742050512778915242567451148666530706177493800455649056934614815202751570332687775730665170709456580084366896287228265576998392946427021157645676494342436859941154134055625025262131872300903889637358670348203056704247113369916543463476809978139473526394352633569475470667427563454395090276347333058208824944132176588778129971972539740099370720887793784494744254396580296964586302229481717392419736792991740475329848140437315893040048098974196613593536395730363344542000396972294696380651360570098931495864635412736954931583066399014778923889521504315368150987453354403960620002835035384648142786758766741455583642115185142263037014841781911459989231516198806667365444345184920469208021643481001549618314131975319296950397532660795774105502182149320791980958582495766653891283936927335435264731650277379527010288535969277468582354426096207668998124328293478754831536895572813921815468375975391046037811815407724837983864093757875581332303164770886222797678189931617555013978545404995866682774049627560444621666970299054637788106742537473497974133964530890911553912888813866672271123108714753945058089272227910563053664912253461118691035604049490151996656136426236735903082122995855029595122748860473004454196158069720964878337196609833864659450901179393662720818059470691309691143451277377491658995278214608878358862606988652848228746996876871692905804402052670646056148830722217209203590039666255105879243262536045294937338759861182042743425637056656079663559133257443433493593623287643110971807788206244551540940866478860070131229234785262918952218732357607394608527977730360917500031289495373608175959329875089988401543334490933879849728196387656329783183287113351862643788726667231434775055341641131784056828121753552980080014398245100301159930337413818304399741959532232634980859453787633940967408331496998515556435083687269406345270386344228048443109077273925085665161262336508071389119339593114035106270126132133822625777210289347399765330649028558877392664912642116549799989945932981676411931724105529178743954223572079226247638001326163447762732515401161142208320016001350652245901790299779505486672835972275712694501376651391379711064401545035275940368215764050582257207574189134034076200913675646045205134469910039582824782043785085491287638713000306332885187539725985159168291062233736701650216585712830515708421347302114446852220076794537617713845557817305268395784301827253421371017559121889913152077909581172278424389035983783591921196142824028683962109421647104411202163497233680186955427327485071800602437698417090563149895469302899815396798751584110575058227220303136600751474950987393102675023157882335161625913704755507336523946734330974196038050411557861626305891306970262720781378528301856439329161691916064935434868148414130015843135697544583756826760026098225279947490915102062514372362222230549682974756584554339279986530086066884393724201147856452948849260157242077279988353428009342064798410649720212984968914388552809177149831700249721871951701202859565541454466182921070608394284202639606125730887178823734844384890496162921948527565787790861876512631723422165882272371656615287070712578741986868797754479538304490014618216795202432133317642465422393261094619760348364184063271424109304565275885003447199334051024287176972889593948643971682066628731821357528298642792270566870638776688523704992943115065740316255434313068160527671301997278567688429423512403335943751784231260868064446135674429540822843857540994342897090629903760908986177695505809313646347725289253680737552826759297932713060692949447571238578255281456162959693877873828854541006681310649677502263233540989491073628716872328749983287632771359020460222531497898249241315456511060008944708718010926130834386658669262237481113425738380605636760872577903743200576982933460050453290793263694017762965377650417299905341856154697214675280192178606351693209003867899393048619161143997829121180705018689152082677150349181860731743979169564080207019997815063785232861772426847925448098185049901743627860552472838211579109763676351956072877677427180581501877364075332311465036375464240913696917288447245370727066820115446490915462594352599018025405734948927949683662022718644452612397647695347328571613154882425056185288659636101696046310581761867603197017412017304184137856961808556844529433659548763450194909340011401939095954838305499595073194206961006319386567411307016378970190653013448546373820599409422258312821483067391933401239139608350997758489150758764916336794448086777791044175656605046047850592383595261680689227399230635608295852548487271525296299301515741569169921101758424889993155893529475943884311088349164472695021700794808923478347335034599345431277742821182950640187483835837801718731050863684291274037479563194780770048274568833844928837480254193174597152951504077971753295825912357051213098047990133383413912519625772777704095102334322200242335508638382100683383617964538421889717637909397362336292135289741464806125836874903798098257172338487420810643024763894618755664561001612966313441994785226117205315767261777654724406305927237089315889481589970796880564088406118601739678745391248007271029979269243372487011214516672543234378451074147571635312626536544463495228792068391929941801171675374514148201782073669147144802345650075341367431829200057342770744168538095722088222130424956084714436814934863529075816524116623388678212973627800425008194061335747998652236760948196947377802275512679980747239522029554677640407694821584793361657824889246396586162064612220696746708028006102440524851352969850049944439429910634521148196220352929237801646320869351058101185305767615354682622742607361017763468782792642683493026619753926531828825349176273202951985239280027456074691080413114593024028966571279119039484400086821205063616696225233430692849916142374253682726567849830856420653032581634305248459403133741513569512122380377191364629444668789736664327114029559946659566337769048683125523918483325039253259944609120842093678986668773400697103724322731971916868653102216214784632342508405726105221651942001695713222216505111437027712433253375370073438077681200516319396869994486297273354706255592838793679133905673319339113805961620596204243470376694765593696814823686457688679990457726136863757738771527133968071867969810655731085044715588801888198317182376531447674007365427218275371319014413042374915503048188913229231553079352276214039534649428652297483513328512908505555665715396759922313198426775193474505438791421246734357354472158861660556200387682953791303243717091245715873248280086956110365264785116692316680087569922984027996507350760343975449734095581543490185770666957706952072837095677061719612998380120264372174144387323493776954232781790429962537794728943703274906562612749988125726150467740449624215043196416100655372126793308388832568671786729004849311759053783460568640663307920979191642483081009236056076506495863831997067795341005497656537976708809113082451911541958698260194691148172496414817332600373552357529946301409319521748903781109206517284515104503449997693501727843804200911817175611633075655353068407271123765745639401813386366075765089081291272920895362145461460351337051665612149065495764430046145513253835426488149386332884168821284236689736067975937658572060775067035984082019783111372306238820260372700415586462149796670064324855143683237521624091401102349499491753448234891687786887175857515664533833215309371077941602776864687489197575795662208871852848834922954724321039246974264219101978603405018286166401393335856143457297647132431056413349181913205502764241371817987642128764324794935803812436244230050679242714936898508566572428201984889081595328363166262091681423765897040187516728634083332916372551686252821005948278277468743876740853684406861620614142839344432003196240285785659482885388808546801649427077318399348516466500821837902940471848288815170693044570936440723600141836630469616573660852470032285608433149004998848858227540615076325207859565990428719448378238187308537721595210449872089220122217473522360877245863784188885416040455384567405354848261519050839498943468596575194684274916382417988497308756704648978574067171881445458881741221096343554045589761555382322488352883961966949343199040085529288718846888724310579172927659967412606547851608014039404647651053325148051296025779019912784102414710512295075969920064072326865731976729748042315482670914883871327343763884400456810487670025374667844107389314402213513967537645223019953263150469011694169630033708970327846449771761064855067975877242473992095811460666973446415797913145450116893310983467608375307034903650561043419434056322556985189175437051114002937611042400493379803754633951543270092916473333724449771505168440614380789902412979774067402930246924150346780991481131723159661303801747331623083758559768449384793202414119249071132783437955967431851339628112556074285895148667833351012400212984707315597998808600654738851034291233162409399691219745097149508202774972469211548131484847077774757171377357164126603381544222069898284037732251001162265500407496620718854780176343060482963627823939936895282196139929325969319225102546247411493910919007323937360733208246300797597612699943332488196653509414176770561844940227928477969432115262785071265363583787675733048861826924137424462946639162345769759892583823235262710098777703981931624519826719001282462191309844469005583271363844562397350360468305049005844333016686183065537594253422549574581853690926751789032306373023651941937718124354386328265761357895217181686109088758025713115336685152207781608224936731293162735195574973478573749965452221952514213483106318491937530498603661475855092601723298249356847557806564518780306819754542281277279560488442353713309290398699984124935610515100072881167434724698619251583194843848734000780428293218445301187849129247001950493470076360772615696865662666432450593072166821481990562846747880814033634574270588969524181362630782038470653083142186700431861191498392150080704300185558959329057809547879871197841070633834901369247244707480404146814815552102197808856086790419567977770806944997334177884200032782565643233047433617306936270916299279765461386438367886250876482640596220518722108897795329591869411049546227766417506451256122344502977112146299623271464555961416447413436948176723948307314636644705297220316248124419257987111889550586266764663594552215918567867411463592883446268737703752019049333807810546103025852841098339897608367954944382841330789268827191258519960707679435411337205296683848848826135561882039848346226729172264285232292806472700541836011670483801500635526464953204486522177852323109213056896980467756508122203826733317849657739873117844320802919120498149990898149140548242234850309356231256305367841440542962068313240749266182837856309941385626317812477885443902237137787834982518649571408215359645806411401010474133532116196095675508675352404465301811147937426060203117792201679539048307876543657363707548028780971888836347305459837498789861067152640689750427107702635474427661958775287318243002215014278218420266590483349949081718532908971943580598423309030859636471303100902138051988164533005826804066566608485751270421311991527383245902312341146435278283116621292315603727803586015289314843268148806123573502886659912009029394005695395145815542641515538728130865692464267286966242143909846024450794845160545150328741864032438226337311261126732430509828265112807693077877849734973513875351729273528758878199712364019860196857508305378428457050251309306973190483536905947071593471871217328928652329173117190890546832203634264166781387650750871996771793249606885235791162671276533297721306232093803125221267048533017489190086084214986640741844459161951551936526412623401988067450501197926980154920983464780820470860702100217678115240744406418641518793749881196043636840188361801720601777371459420258345691038160983016826628301477664459818303665877839474187388183432515183201061167103785236636594573047415364282376508210668839205442921905313557063416254368730853912872709568352871837299623957534957638786465381503099694535115995654691241797271220932497352800700810876099747378488250719413445981209478837015867770388097103766586404580018149707237311548956619257401762870317429100904176304270479690471635328656261034123462462410110733153225534531148324801702952190535277262563948347387310839171920599760876003965781780030707834352370724256331978894995569287390023160527553174688707508868378189800259888850087193378462753082154582228636359528274766518982899177774660067929930893656696679761529535942624242090856380756484620651898042659228239814587864712096916299868344125378287874501761942208027088539213393646802115780406908708014539401475121898648231314983071842311773105667344221807069160909986778299527707737061269519944634528325574501300133397529566338539077791988369673499689193550534127178071429333124586293600198162463732214348609305199541533143930477892861986917940204542939778913340331392358915102308443463801051116783404369926566534089478105701322293546844939054343742851950828081167848580188594708167545014640305749656642161025647973502597735189851739063531609024371039206120309099667807182695972349427080803828500884629559680397602873571497670262261902244121731368095394797468322531352039416659948415835672041137051594317084966624650493116117605879784182303938661823626368282374132910697261346540830149272560704292780205422656067542238621258329115409173883074318737042877040578775285063008526342205789938508016981849629082088502396696511747045104965869579438622549311718608993346660328322064823782376734863361580549489722976487987018698676861053774226576184845848862513280417969406391947340092337393204020242015252895585914078806408740224752490403580603576750687065203357457418720075318686991722949134140439001826366113555857730296579246110061258957214339760278245931786592869091326599226086452986345852287840483541738213597382863516994931514236677488241455866096977287104220879036867533904162007109423963840859073355464046745456911162648110468552028930533077405652334027432861483293950196336912707287165223976572928722283978627006734544452378426026058982531691318471792830679092159175388049717158167410519001368808020523838393575676493304249840414887840157109296758296872999483130107892810581177248252155509096071223367020444264346398245828538663927206464013327117185206291348292175554391181187192022764967966849124150240063688935117825909631167622918384398383642707369795708158818024663430286608058531462730161143586007019980060447261144773688307994601578983744804286964170523336076095919676044346961994252352047937845870466176780588074080893050248339897674227428380370074672806494134926126050745464357051084500765143027581436952402966921017640466020178875803043262755288180477982366825999209675980774988918630277972452289017263866323795636290342186007861811300216677310781886751768747305957801776275743547282487974794032264393733291480154734615341192681395595396013795041376630019600009395146390287841418399636676163306185023707138682582723727715245813432988091566354797939162217514083700190356523969574365139046665076478950819287525940946913942068388570272371021153107576134389610192485960525544364808281282469040071087234615167670766750903293426577696022888923351566774832645544441068095903932774080783430964890748124704200148951345891010958499098636083742200732117359282059951555016574246658826681196828221885779436086435053138667842528321733110411238826926774789000566409647447201958235284943357314962169766500446240519907101837183443735424664626671130738089135909973604664471371518780303470618342530020398409236677909659401937347880480491980470027634591544457831377044114639131488302603717364554171706584242940766540426087183477478323933220872043541894129943188211633437546829444796494765863317864952857325591016378810012112308806752522307221920020189572009855127013431620783530981090750506935649369134024838512585062429689263499010899459646353218551597259898786560906350311538153942669547578042587729715269442258769401551175781898426897783694932108788057152692326199756572234893782698871365392961541605438092714925917702426861392776441954400466120234546925501219375671294085958556308007646812836177389610222107416875390130094114501177907030961090882880396962884393689752735365946209236038560145352343524661442408941814196100251883508550221959341086591264092129555694978488433324053865434730006684974387065527598788132081156793773066273862476149951490308670912030984748758961885860021038272126185180451169930240504517088392601454696330395161255529113695403936624166032906942147188772731870471270398948716933041412573224658427585810758952621276786806735871919200222317439647817187143821614634437849066396212054174603758852100903825729905586760013142531010535690947473743312998466752530428573494952229343377628620352968354403384606301843824636712007322125176051362707524484127288051001519495014072925628469433127885832120957911034722646768243488710082310439629964298255070065974098171933874702903136475264115438538869090883061553896017943855159249666061503578433713416542540374248175475619107548549756063672293432558881423192834223707015146749046848069498298182317492364470621727593300170821740205427658159704384378005308098298153416538038259839603438706111061070175981767618893933229545733528286811687000664074878499237590250529238978251824131763410449293101374618468809551443150623989666192575378913653581577506885130020741867826477059872678598270791249460602677683627381381788439130360560378821220305743128515268706132794072804678719106107176034882174771138217455031882888374202464127525791703090361753201073884181265055682696790507677533093506187075257637701067128765484795976588181969170644327455885473614478127131398454506007422270858837181807994468177918281649884824182813779393936380684861315170390476396173307728332585909748334459825840630798525074228932996811646213058808477196808934975108412042381462086621445825537647873691328981113981009271661236312426919186852945114714638078885097725546298204822610818400739614779101286845255919963416672955421326555239743283032741290951546309399259691044250264437216887795702830965378644189749742811491392483293418134419514803767344180909290880126832169466095510480591498245266646184147811066739204422175070221925105603951612671579633196267099691593890293141313421300472671274263250143126896882597122326913802105282032940338880215585645544260621822075161674752256255145721149497308289867294467162482974768221449173570410061391639837461522573206264567156788875879723641002508946800408690416093747181602814587183265737228439270976974179286550425664262986741253130310237454188166295977197586015439694777933084638590499497043522849937631339314535205374314778061985177971547836588255089069576556434166060789942690747208564618098518375144235874295749935178559825654519827178511640871913520126197396272926002444662913869555248892217671202840714644399648251027052150474318448775261087029302887016446289108998995381807826546158063454388880379888844049105650272453225137138654189495982758246360878968847503794514091125605401449792579621684964893016584493061839416855825664575160512980476653127766989513097658997559119867900795491742842245729735244337279937028574414620339471712070565776524588662782113828896845426585096461881486882554881095373056515998556529771358428755409264724463514448707102695379797460251762188684872464610614839350527563572981419697734042330295358186864666751539147642041870259498452280143095760128358433377572640760282683415141449812185605183555448656023390848414628194313188183076815222400109588777433681431847312370921494714406494421430490205344852598927620318171482625337320370792112659904625892089454667177411776487413457997843367097108294619584191480607679364871023966243100613083482794639987685755871216433880105539115849365928938359125759134893925334727383126189187812210927808245521954900230750829899822409772641503927797942696657390753793550671108990983519207677975912516940519737127738891687473443613991354083503817433980844912420881939421410582889929645932829759129611784010214558262908844272293932220483473806847531481481210649796913332787097927163088757474196290470661454001022462401255364482840889336441725996528739653404871505644548022191922401003620527345520322433361227190400958377339284593433557152827772159268178207613146148709676692612992938324731255394579275810128837995169933022245157780848641550446962288444760306185590645164535293109226509521876961443143079458397649708575260778155726102319873563122068777017662033975879686516081220762228266795543416856326128047147637597111181331118097633504818633956520224889497923944520213586711189642458824242828157899468047946325911211273219306434907420961115365283838441267297956294360065635909665022539566510433640793928106416106999721551818971602035797147202491014225560684626343009848218731607372146317012639506188294770418795087630353459682657887252775974654066422301896218180202290239027178107269986755191328020659154194012044578684215133985160968068699291516254514139232809367403808321996835617580937398745195752247199741389333844952732243851060751461254103356863563125709548726497654797776108082107319015505824157354491932536250610524015206936782602544403511600775480671296108585673590543792044748368129667112676064370324628827728514465835772463598667732934683225152176996788914187241583670241272960948917081280820820298692331821753886380676957111725985018432497567297678300136963530896551047668529094526247228967771339959037381242690591826665089721469909388088399069371629706225935483350570801574272827618965219215677365015110742961864410295723663056992678023868248543443866186482388128713691914392684197224123531205877745301416885890865339224043592819235262602243154584595571166727601736486459506733551898819016165070369401272491343421962249381714839128497487600839784077645299274009888270130483111446758946073989871839211182583062406236820428056681853264631022697605042271443455767648322470128059608380207724648454675366172754510082780557520419050746438234012660011731539031090692707230976874524175492368057321693176867691156131915157518575583873900592151071828222713823472234070602601666581816691975520110803960322110271859712128882400193502807779617395124916640260919168579916597070112460982029352327084552436369357008237398460279018372061976511994090564931106659842419601770337698993560517457902731076834614347134445782254151213050869758179658867817316250754130483473300062504179246608405973886958595567869953350319783723930154787617444917696133577956752207100969558388568399776351694996388246394652636890237258983575772798298255108006845258543292628602172013830783808143252867547309648486681508371102309458504376447699685703884051359609416083404757605228763662477651159391321947127882172425716453245039337915551161594262973010146745507918062805101733015841010982817449992624961719640394655286075873298259186067409235167368260843421744956707793597668139971781206078370543259610207557299966486451708807031377441159723881449179660528242325651585405394074127944936328913183567161210949382068271685166270648189309351005991533655784627011991255612787286801646062101680738024272741600807618487998073688641263473180564917170314317003564560773526966238851606708045474483200428398940247515020031095799567404480713711218214310457113266380976271720551870678224635876169894565136239134344216638446516419923095837695306132078859487184868400064625028402952989595766010732422629645110597200172138974379602021725532028394786938895491762708251182153676779301277457470616017445752742930115146781161130110675650869935725445411130693372193314735281253775075624747411427020536890950035910337814386999667826302208014323670711270619000040254974517539420262355097433059414865090320407749081433936252513353813468838369808375427969018765672336294178175202178223234644726195328829669921361520451927583232935922742382786664529702803557225464595034199829050634861570028479745465313284035505755207399773773421791311814817764996228215639274710286565891242703707616731910370121645160460267506410513481376153182836848426640681239226873819717891665783548502417998782336500292706908815850523159928039366347003086641006535641964172819317630976753837284230880358469549843355254243070151477462947114732187299608389425708338182281085354675274023463064116827726617627974928160331771705213480361615574776920668046449354410171657879179324187156359363902585591424552695925310217013338818374175064466000135476048554352843372876164685222776276400934273616971979560944499127877260157423826764233323765053281102655594030020720413070548779332392625923829882893586459195867573699293960139777917322769431671774985816723855908990027883512186835036591901713135561817240102985665910360073526661797936954792875713875694234038752327200181426740173086466749456685989965446088194576000734561736805888858477733499866375400417341436443243031294601895928553503941421380456798524939111626308819972195364704555123964624128794478354628346696736230428095914415258155976760016278210250864060539470345862506436342718497930788894075267583573814199730900457453578798308890319666711399792888493937581140530509150755108288440456373084124701528799122715319675457524285067886331400111019649038324137094255583908455358172429389517061218288364586897148578471778008653077422737491950967798310186336970413718013330062805413722237472677654689632865645972328624958543757908580285586929300518313972821252863408880268991579725193601276794668805351788280711865324003161581958562401633326238727365972225276413645954647991318881752893699334917185668140226235883957180246346330146781712025247406947983335222371146909568626656610814777937811689910865964675899997981175367453120793283979590678380735918199323575037668805459480771861665623034515152794856762587141816915958478776021193863017943650463307677371462014058633301499762226608207539992891254162769008822781772852558131385135576014922251004278551823078514328821920729038550597246541310887626611105522724179141471980342405971738777815612834588506035754318952087317467685581624717223492355372412799058764776388864711631302865107769824131267788114980513061589574312202046065465709417139158790986913118348583443037776376688796549207520516431282540735883065708070370558726828668251046524651531220297587863341997349390158847658827084904611005228140919475490863491011165425683447219659717786641582346928785136108914569446625981897944338631395311292963774962196764067650938514041083070118431862025861008712331718231520607846175833024708248902323907153161883226682175368515737095125387999606341432681835190282199732514185997954084108043401437984965388420690554457495721832301193875112404064858784156598616059275617743526183506046113013345904487575250386436045909664043996622376726802435314899567395998921377221634118423405197780164060138952615117959428970755260420511953703553509153100085710408093999546512550558359352559167128735584973158535425588819945420379735917945265559179420028237329386446785144981796747491548702299040272955883406429688734956345236243689836968642995133892044746770113654545639431919227693819907936197238599355518834197106817546923864232149042618603454865993396039533947743790049564008333997300896120623149746526882450662228975890249889892062909743636598684749540626867146792430470976551901314511634651160679133936356136976251307978718195413606160262680879375169457096921802014137407451467300908957524312385740594099678180451851350704888061806909551451530288982466876868019097174956168725865459774732361655646363826472494822503938345880882840990670180019634525282177455744817130631740794756722798815451145204351026676334002909773461209702312470503483677219716608653865553735191731732826269906718592871825410191381788612788383832785543307750086173203678968473797333576723956470804648984059321675815905876521840840686504537117455732904074850907441828435467009759862068355178012291457723850742940288785964881423536840343469279173383999677362733359148853210412314352623951214445429113271450850521700025674443905941671798632691970057790414313230277579032119465734468900635032688120538440345302772116316973847479783799065712597818884928316323106238319030074316666503651725169964151834211440633316174478467685045726765658235603758977162079027005904079786051869642122843582010867036711291534146245673115342701808665211879084816874839858876377741299833539127559772595937596341232284289723830918174395377900074082836273127580878800931466477625369529180292019199142984467837839771524755379096117279564648452850504310033278460950792543356635182188125570514686104941768810228273433429820605207983365204097633338886499145897480132793705601507141380673774169332815350923411104280486162580678302000653270031130595860181317159416221547934541986431619061418304624735659460573783254584802875186911317315827786869428665478021370379714975417926468986370245176696443836202340899719859906359515091315821373264030025272306434359904127263504699016013957960076175669179713354531232618920790014229804637538046337045533520787754293572793795197237445382181030471195527221770063150113122982584732960500290858363584671722199943636073174108309389142307933400511870640647617178058250830351021167359091693157476474480538780528197163103800883454699967776333776722350673281353485587406898250845820798571873183154034103512276341838344047810978795365727355758462659968252912460792909556939952804639351561231443985465004219131170224446476353072234323282641189476183128523409799901555488450353098887038915121913405703305251477866671759330821874748109043935515762865647621626192218669434099538436319812106023160283758236721563594590057794966357871243661172798338561501940983136568510650541700928427307818090063810023256393528332282975664707415665888282405208201623728246354326338522457877553898428392411659528313898664392552892545325406692806796686280853728073284433340772015731971344469505013280142431165059786523478368995222374481145862318321031942200804520463443288062152352219985391223811449124452817004900799084204995060702099337613182076129745611905774416998116534054900299504100483516385884833548409360315711919806412610782503345780526579895106353964778336995630253702016636010637503663443251442207508264733404497422846611230852737044349924000032513359931496628884834871961451624509507806570888798834481812634959068969776904034363058524686156381039617709758464017731853675891726876092864589635157134881384655783845281161736136347720084936270922748158366707815609297223459118537751386352792194597937458494362654512150593894584760645225461188008287951586788427585694547210336230319959825083428989607511341838521397188940946557086272719611737269749892260555015617186341310054103387729309046904840299205070403524632604422120125429621921061576132141956545848321357076886040036455910554037151850855007231888570743948168901605909385632314388696217177188479049162768861110467856048106136631545906675946392964382462507082489387699888896054026863519194033922689008594641617056343476375824454611072961838814153445255085578067491273969672804421970776551856027409159290996433876088807048776952151625435666072909804056261462570399020594439690198165042011708723438694525688535814362792851209776225477932450684886411076452633864184604364956874037329588761302769231113487264359397952958107040497767084414148089449885153903308023809158833513277079064633585587767225968388972655981407515876620999371135974906661768199697619066397367392942253210431711289772487620067030512077323984505021139365756789984602310081048255049229704314475487381392529694680104921233762015498793792911376261111806980544684004358649758000194374000267668079092751182393237753087461096347493028129631536071406608117992313927758007917095580963100372785228921148597087473878838287244600652357128192762218425283167942561316337520918157701959990840788934806159402688553776291139432980813705543743770211103247095282904135265030186424554597434799068864285334254631356971466173761040365998878767118855863434363641163752197162193300480711824626208111720195157882977759961119542877218844847970391612220493250656875104516532529595822010532302669524470194383862891751687952358009282887513827480507240412715229387054746750456837237175186883868287972127810892618667241334863038658711315551950801112136075722898290068587816874284409372983561076511165399748335105996542951275291329243322615042044141111070122955219752356429241641091457478491755050531950127988594433584641901188973344693490074870544362151136275831817309738145873411641541588770230234976125849885128855688092632594581355097870209298867190297822283640635268759503985908923631683943775460455500384094897670910083236678338798303191659977631579707909140613794614651335465602915214206617253316643690263734020773604111606346467718851343272155607206584141282301284139909240497765499454635838402092712136003467820266794621809088552956399695405181705345639530978491762381617489207546951384274412808490499619017891048581190489580804988483306104133338693672548685158894047603593925210300729433768251713650632108250429821608855688094140204373807607511134411829322053842689090893171299304504155893213059728648669255959705759094332680805035603347721277321611556431430058879384093975757348516082641467783289357527688396886554450153996948155734846713638597304927093424886160397427063806385577203696256973547642025041228625342586683476039929707840461342813463255193606032293017993549155526614165466321084919341078012803083354291965630890398610662017438200597922547510280213762122760082674958325942553208615042969348772873534183230316301309603324783108941590887210366680656758275564216994690848886247236752272104841675434891889928564883510578744223466962178630973655799666495092318304232099418435914712492846433319895220023149423772463763107210582691135829125713747660146042129054096670836942501353400838569049503985846664538682403174637927645586134368589901138421456749272319354592534417710040367681932242322579947855588438353731922188832200692237546823912411362216781107330233774500132991448634123421868904367650199866007734860046793808500148053430481244459042497864921445581006666045719133516229954687939447945101345693308444193842338381158843970998437538543711685360644127324908963075534199425107731399156945841199991601179960412606990360028935153986000129919599194233507633668353090299912692177067291630732309779618183926056130740821927644728178113201610538680341961818529671406607788855240901303566453042244756250278283599530601917427701137529805784484566163949290574811458733782299606085549855265505212930620023289710300648757223398447814430125844329386989980809217864875274318426348220586358236340806304253221643411786530376041458794165412588914353980498539318295251250678967982082015004846110786725094316377683371320275731404936496656546701608233470149295433073767620499249309157607135243604201611312645097289234406158542860595263040716152960747483677855253699045445220027941499508938160246507878592251316754174175766236413395947091797889156573759118664709473038731826887553417144458316724604034296946862774181005983891479578600658148141906981641856820730772786467435126261536007082918974941523674041820314854764718342615415389046752595923480501712123483556105706785875051409115971122396141833133931866831364953531363506326502465772960154902144155015356291385256074777311551465604742967503433562455997838812726046473631042528638309982949325519885016653667395680419283420339006527239059823536174322394825054915458165162458276943423546088263732435313531166553542992087307194321996954747523703892587296105740121468012241919959904636083683595904274108612817910975401674202392986824306468692530820037150349463491583885597783187219809827301877462492634749979805650541577649740967726312950405392674558704178372069413363783638188639902324814967552408574611769020818965017858260717852512766093275594695906293677431450788007996816225223003815650538964429909589205149496139676801593910662285636977527211826230973361956480925352098875613753172213154894372754827191549651703666551716918743001540262281183709225470273305849586840019366693761768631657519923048062906089274674557261843166987837061612294509739173376646652256402351814997898224410025479458159231381283124717360790783472742720508426821929849006575649775092785348081916842521997969379607783661332472455397942789507616799684129403212670476317123764328350667094633465237428330176329917666150888563468893242562529227645956731849589874026143247869315000456512233943549834380839209318783122233210499650017008629419684097876701268165657508026395865320364084169649505159478062251124963557612805620278903395548048122272837965935248275549969444915074918628705547796513693440160081307824976056628000973546421385070058062550712753962655700167571930681610049648844219375317865397239738112636629747978191604017588177107192024233544703588780802863650374456914853954753935346454295063725891705242795691904359685897979354377524338935633100358120834986631264480130001438279318868834818123531396763278111975434896900775211777627296257426520732628108730134800719661894245435496936432969275819537649557196497571724138672936419165916274485430711670198907347845269718336718696445260185223430551927888651175009668301733222558205334552162411138406139814659706198702162261868978047707665975624038820782301768525727995515041694537967237548299392794424299992028471293579376516775937256773164456279301937742252289095880125256548217805287734903103677232962349346131325380244652512502807924745314222479543308487977722721082134298210436764376618930232345066004643879521009730117865088650333388371954678495381505415360417752744043898025677124080696322860799995540701099016922267062593975239485302232651731106736496117708339462433506828957910854639014426478430737421626799795313303895525843248623565258574266528899459579331599492116884799176435570948904257821695225721725124925343711093374261804115101071982137091063506538521660400821430598337634496337147319978645032476062086510481903225044722060474000482366066124072366373332938212208979264359954628685540878869568127269289258346400317169153593064116392433547097257210568979224122273575155155029316901061285420312859602983935861588038032850931090364057493949268706134055725534116727351146847896018029135928197014811566532413942615945845047461268722063720143912465420238154488037421936704370444135641672240994604537519189965291577266584115058477853021095719619130493535884391403755474557161316199257053470298938913117981215637258607697491310690068885652764277021769763317677637565150459777691248595450078298406140319294544206771476849881377309754494538488949322668055115368477460154640102144557054329649034668216396627764122249529905646058147196950865312422263280638834224459010217287124751155773246844024654874818300215563380803548011591470271698091861103807948595792026927082631858166733588220564839639103253745770133448166498997188074128065049626496615321430346873836455128139397525246922843022162673492048017654171372461751974042254423781946894486162408547776447344694454519007909201432622019952111400519593285491820748153101279232015978698024987783389842969648079332527799898707918479446407179927354298912248143045367516169977939160591836570359898796140612880640146485954607037811869285588309361128547701741302283948618167376649391439276242397416350581793443945945041780099479583873642051462566951222560040223319209834853452120262244460916865460174568048512828949384814130621347003561359638955257348382499307995940925831873862541708293541112054109537083307414573137538445976284290036693573732616728286664804310401182068237729946481021615600121165342867423501491001525308497745152424313523872565923663122852158451559710755877253217107212546804385449890498510335706883629137164268788902670255291231751940250141255608278781843195153385326900677916903506254167780713036017723962550507106197323885532388152464236314513821893236676100547670134410979897749444648016691957592559724436689432783265560854526250707137180319478951200055657194640055095297098813552008494272579389640154666833831061123958943660511750681721644698455231942088758010006016424403889005953726397433863650974956801763423635366362719175141246260900068209492970749772720741778255232268316701367617401012567301856088960324326189476018993167925335196338247331552083805801022315460780095062829551583999597602790768967593202057292538939259893093900263604630816216460951195284792733353344307603116168503586080882939142936727494940101755272728242753318270529575083132656911646319015361588448204650389789683074215144109818074558137589850765050293362831463091321742697129674806447632545703761593377362092286101679287542417535284020586557909148638084608670121975770338419033383375394513548823493948745342650020710706440695368845188637695676359711762780713477166050097041926538054783802913272006148579558089440019865867515105773133271525132031594824918264612665929209208659711302988535394242131450610422781454786785959961496880744162374283889131700698182922644758880367280539688299183477446499354569680026549833249479143065677463669529891231929010785042472503665704116634178156281287310463756963193659215949545570587208539603144146277636499246833504603179766277860417898222901412802346633209434525737281963162437214750122097563569913257001408065274810768926721315477490593151027526648654694026006393808781030731056543189232241916675681536412755069775692094337092498297945723642413052683247214152960347879223029186416341702904121324001364136404119845511544514049669521440002076964716592515264128391575640933103238859444645879164662999253662685364618904737744709184629289513333136667214075221833203088991908971717417978235669295064702809310496940479931627925571574401749137040822515978580515339348370779549204449201542309754059457735015178677732994954300632263803175074628500707904564209634041762767008381358954249037426250987960248717405689134304138913384170254010901217071202611663806426852414180573407727514375462691525853075362993614206560119568653890040938048294480295165954235441604529397030918926426333450798451858596613771887708133858842773627522998239075897871717724392092849380668755993660284433073737407555049275419119462375611883047864472433698455932949898168917708991224429599308597991031437603656163343218393143045493470947471216912768323978695444418619470608513218905630592556377178494844653887140155612639949427351366470773361245566183939686540191606689092423713978719905356410276032809269518362838139783685818957258281034280259265812578163629427426913397038100960517009975873389764799152491230514493765079182754320678492281645157927582606116078492668810565819759900248878834015907430722935548539395045799702400947982629741769588052555499204315184866866138897506164488965521717884228710408007120026011223565418166762373706324105524107960744165494917518819408605959241768378226267736317934039172121707356163782542102776948431812909354200808198888270604974865491578962338004782407550902922808809403534304793341607927982252788014282535306968574486430789247767541896724311182002861050437904540904441164899921767003527978305613271169147444533006981493515011555851994520759676503357962875032628550819858251008993518125768458073138264763430121977972016102308001819132517400743500054728598684442307921688051834400378429409110043929767580460370140860164603204289295574225485724634667591373689196417853882616584324184253992640963334958733491220462570050169447922393027513059121342223288377077764962675329110912548651551761312766183804055316509536883242955828923606182227376735200362700825487170904189479828643982674139465400203199982950156426122763114337699415442247958364879855451854162046483694849504236127557577245976969653015574699528694582379440847448186865235735867248707457138698627912428632020863748236947090793764877896435951410104559352416128606750172242227038066025272628064732816987030956410465269742436664889635486876624444074372524780757536678622685374902780447070800300383862163021004589346015245071226926387364630449736723153242058317888299613520598154158082996521703417491808307388113444354537008189542637521637491801135543550156815452027606736238281267614437360618027928280075927682154534210543855392740974881942439774925290250021122167265751549763519364602296935671270678373791939650234868080704523101841600330779493168127330576212182724811387617992690100926834143012779118310136467718148110390565988839252895604762112877362530498993995840587033384632215779648927159290272856495892436253691066370002319325203738731121212305137646954770041621826727441883356860258417812006163980133420198721881170832212023785673382812506061168359715931303918207566104315560141644384475790499971115632681840356088212613792971396643282668471228428272024332133052732027933253310613561107971694573953846915760025095080311126828993104397095542024387003543631400690335901550615792084378475217905229308683805239489354275369677024851469984963438626989476816910282393303008753843267439451557089211069492063153208088649590267259720784729485971669189858973939454628446680076142639596515379926148199231418872575371690979080177472449422775181480357593325621849101089198795039005594338463585080151918067137413104920926481755230061627697298287611821349774886975526973806369575210403672617257225410167890774395919029624018849518165941814473142972881767279206563567400995840529318923877512473373095566789836331746176909254836231189742179755017455478716424655916705300615175280316096583356557409342021085202036668441481234339464597548147200747590200503278410417682689271510675646695370544322820470636254678275478705278199266486256049970680374650738585067656911678840820618799761836822013113522987596449529345495078659648107086148822095466381654774926008725406744352265324185502680089699139333563890294491383591865107316326736724539373560534399771955887490790788696302540001129732640938581489409633034089582751774317059008942360863018611089937384363701328628781992496411263442982791714950760573490077607357680852722190804560492531550206135967800811420430481477248164433353245845292231511869096981422240348881540243391533498860769703161843435007577128473938826401861675005554241581833748322728354954416446526251916759202334926288809152346975680593304127620918455428327651040381400657128130852451183977164340138304082233996278477993760802158964305364472503730436507836336487678170246647840437792466687646330812982053222902644649903862884677655437049376189598861090984332878242611989213811351717820974099375415130535313141499730373427521285388021867693746988381820141335259567567551094212152878228277984486133459198999923596343009486026871434880798019271955657622747817581676236245850668273811128696277170455976371351171925641235598845709451090855419664796220846365252451537372007124074133339362849970786683010381629864369687248489957032739527738808060624494673048728157735559858566915405464447245168473549113695729256691045683044393966400909968855821731005415331591374274350644736098827707314866851435246563282089444904157877067858008619178841328286928812259064566486348098284585188540406497779066986860032726621735914833147200702761271376388273933550763486371406616190326407299644489144351983264593530678675403318285393481773885574048523554384626866668270706825491816108332228268817819245038031445523598386033244182252111588080070500613648039556572868701808242654816095911008229847178601228890658123976650836069704002742212676841293931161401458519402355541217114962493914500017661754475288876522521496172307067111091525550970123387389108890451851002933429414751120458505210853258277800823975505969168136939508825459751794341202935248474131153388632792097430962058142333930551737760496808690156753485525662146293551984524288407553404630539476325302381859055281355577316565680046390330109400650353233118563198569575027599328461886523468571692840542455806369316440205056270206065499597475683735619899752766385591171826503956160361474693767443043022917664165612757093749745944480507963049354833282909879311021747426933275645917846574352483634905126107764136947394046862007637201725285959681069484443665015818224340885870714504200571045422475623667046062610892917313513005867004331037678974327959923157060673682761441740779835361936748145733445349394463748452981964229068674614638737558202743575580741380734511350485232422184489438488314054757871435186671021611009489847039002300585256578532237019363122629786758692536311330198266912246986282972690104647692169572941956427222220385851324546129925852675492596791925534747829280987575547684850095586858220629682659853181351381506876000492431499838893940305134846043188923161029515370182692221581944117939467932439022532290513099264106728075965001756199179524691761742983397237777804510960551031018452747589066007435917960696490784366645748664367206371191261093978595802784585389106537500268800345550721048368462903098390071654083560174789084791191445409329417561350126488599413788387366715534958655641070752053799055118550838018229883357251607544064228030050863338225408299074760702869514449012674967408346937438660158805839056898012328138576611518829213169092294076613318018918088528586074462373538187763880394518691858965906613346561438454166264254100757069553969995573154747861683312785494481027792325322357269265718966353848931449590484759699836612104827534321148578415085781157381773799565188106998147800251495005940658551215479589004622437099344459819494219148827049557923343289791796404644280352622534597184982363056566649833089303470345892450670354421807004157379890692493819223735137135216351287055829161048918314996336196802455575738091736594673747334156857630504472212820706314815368581816460872150313759977913924766055529307319830051870123161898398947386208555327732574257800824530299059313416601239284847156705239227634984756211384286262682751086579591779723207533149824213776860538315065448013437625461132438678436575397138816687854689085004363357225070589099379422123889159098326554708373391015101750734652350976484870316776324370712874877856465389814356193641810559292883782841856247576087826320514116019299600516099404732122664637788509318581342987754310232840647850811573590738626344382440856511458582548619063039529126925001138186573243341867151513995555624619958293865153907631489942694016540860768512423020299581602602260422789275301410042897691770868503046848775308532013416471878978067648793673089922950316732230901922437865379753504021599444574529154508075745176242715875304485735873933854768353411402082172986168161104152395616511720131933097223553901558013841096749115094337549154652984542470804850685223286448517590561388765544370912642088680250582695538101141511840212675883592955524577490472225940076570952043991240703242165583526161696780566046374373362869619543807299035838076671686645811776436301026045354309074247167667445143348214811867541733992927488384930472645572937198792762856796164454528691881299383295584634236246932913669124306245444796093697873978364880092239876591214793219532437071457676400382357333575842646873427323018701550636485158722466249047822306258894386149493356561196322587313268751505357924338523255192334149853254141794074125898883700351997424086908389401717990266630868678554847961796618200761006825071913821273485425248335728265560004542889400723831189051503612936458948685768286773451390865019827158564772731018595309962944213798152470765710504077626627920956736713866230228131241689061164580524673808709390547164102498676759052944966703230239020365871679957910360315930437174755967252384179176939542409124417091579055114404353172010543601775232988042976774122527108776683733572257052753114826866716347039691514655295102907108855523590179021260031546715268146269254983762111782450371575981170882267326371381014137860373524288883439061238868642080973367351895842412303784388969360138201784183803642541505223955020837506031589463707214044219874668384373294788469500975736742777361269207039724301589529112783650047979372201636485693937399473263625538630389428832871657707263590196341707662405444206349398583894387093673532160988999976191764874612180788990304874936135656991361625970884478080045156548791879988036873435038774066297260171892098171086404231597866682839697065659872363389433402667212486124227995238319637742618831738163240983129192584643574312162788301202411739538556408523762555284715827045587514919522500285245496962782956089222112034449373526459784088876142784838823023814935723304216949266644272989011442418026208278212886283169020184318241979176328600147738649034901112030484297120045839814892046356512062131499690337166988058352612801566710586111378338674996489254845845951538131325780713672429137500123960583204604999851819853097072878388913694889055517747334879180727268674632803594299993626655019809093963703776787704170201069873230511583850040365229538857857548254525493215319696867475612462042770313643051598488472157476142673824841778873411630789635031158972783166077859005420759197154702817108596976983720268067604056431456470565822964487306675165000051466331525283911668373623183879700483786666251652424161039042753091787778224363674250929504788004005140782531888789094337909010539543186755652061212782793543956011356108145777164183169588801185599585393516372927796024509432024359122575180164207283010103245764090241710536153759113834712947275620711959531398163207009653042444058119376433316398919133075325387602390297391441381453121799118658608770656772008425682664779871636923637958172214448233736929251107076813063233851040932003569745969024375727522966617893985489898765802381632172353463747651884901778068035785214724575456947652430631595185583871960559015704593443948894639548832201188369926977199730558718038289358095208713636310969870266979999802854666819783746664355539544343786103414284190739353802779175287685266402824366731504639805162056787263193650225228600671358102749920533818688193300537010433077398807704416671769381046270566860939985726276495017836834489905963200061658232514693069531149269753022086594958095509618173090219814970285680613423438172289038962830977990350166389372967323066000108819398461533793272950640248414021044322918039584818060949490666583996031961654115457787893413131606845829047380119261678569006971725243392990503055042371188720037029723882407106164317460573752928180424170589397343160362239644477362122085654602412807716247893661426334976700159626312021390844417331591336955366186740407449901946805789049312329276651590532493039089214789671486109416637839730148741572861507438451902527240630345146895112566264671565018795595322731059973391317897525842579698075925421489561960744127084635690910242403829895727806846765489850156636366027216836279384557638360367021928537343209173818079950490656241139019292019852610318769869392315228635382211442252500254666200725647774224335666594226729351950788932428589817129184543779689964363813859411539312201123255237425890918274939951406013798465901672931859340925647864724222608088755570818554081249895216085730186110424702099377823994424287693102551628897736510714794724035252230584565667178632465697521531171131816894175840606055934021186796784689698881313047389986410070737095848495747260376034973173589056677550596562076031599508562218149325133149936394989656145002139907686553682375703831721724558739126226195815586094436131795807204515497841988978828989822660399594652806780543734392296835837964013036315098827587877343903493657121430709066886550199076654880831111689973086398437443461905668119125166859570194499535154809831363345854873234050714020351692424383018949268940755039556935561122828787761105362139363978951783844218090224633600890366640268045487113354917329082837311303628856526329365329363224088690134308116586697192682213269142443626315001558906715273285492074013996102210610516961489380240553223832499998282754192819944680338099577981133895578932110747487614918942170067499540314517238533823042874699927532043748814450316131779844815776500784586691065284041427062739463400313382756160898449653063348596925837379269884881842013340165104840477749384197667753976968192687013280886110424092049831217679397181467255216449229603848891338265504021504680793706253982377986476181470813347845130749513860473180254977696460207530919351441839612091143113051070690584762200665435326338435156787632800545302790546315846645787385862827287926827173397551832729643310539168163166299961257170688881518395638253308580503631228822945077199973405148107693365600606596137306349162625805430941753891003923241868032524901623061602381602538958853340731657305356346957749663038228688145738723657899776453714816603516925935936241432204251811250627488975090337924285676213491211053113484562081346616791898972734415089270362227739423555564401188956062280439166171423676026793498746909163569963452765802311178590136083954365629410961672477534184441592821990481474318919310904863913236629391997512065660830678838303232447173379423569071031316544773459216751189301161246263550562952541433297354513467161876814161631546443474971412468483307782946964984793028729750427240765898385637023548544557164614308718970003359389171513078507279068085785937924360920169201799834927361556555859366588475282107916929554309028030225274810113373453412529568339605535348483190938123247902364611607679425857970487785427168532972453579928976064510817047209611356387320411962012369744096495479990533754827268653079266883337934479502497411638787081573463568294551537371179322164207902350226646801239404641297449364262501801256101129858691557943323807444955614301961735332570935526935433883602498017219404975994349756685746925267749216679043871301008093214494512006562644262487688460789095388002140061631704488424780562089261535147344122403175220424889449229134357146855690140464015480506999033114523531172362573848134076182192481090555549445826791668317580037266228161161448092170443183211298308774670151796511150426584168304854020108502268346771576403618552384464663588592504952463825737770139829846221858619233989188545925028999126494548649345799392929550578239266614461078023998767805265826856388381778991705398214660516654040672369858450687381631117167121711198941959964178383973574519527604799331379415182978592142450427725138239220819021929281750249045051510485409903685580349400164950817819521145256049814195780582982305068009696800845442540463686280840346616627436817158190236560337374929726586513280965811993957961251206698663490246923287358014727647399029341457278971925021471471841293816099022786044837452006115810533327380781086678394908895484444269726215621139010371080974868225368262016792276507408172870593808192449492721039070778808034478576549456992046915380208231141520123868864396054158795600398074051491956136267452381997677541040152191503054172488393085548650603966859562113262418782960899727658579833194330952773117479032274026319080541383313994182373287661335985338909032354928975860096060976156378554660453860465094419539899552006949445434723187362802635247953331636549379558875347513305647156471741187935100947879697524144075531217098521253731280707230261979101041796115887119906267798355257951050924463840487440333577772170958290675524625593526059108547935781955295501076022547875805039950197318981861170638377239831908643735567235467357634868619793912932899542579136361681955440431252906001968816029621653626787646565308692163733147097755843384288062725371954307152880868354005669160847821251371393893971673041744610521470833796169789865703219679190374319426877911893022844580340821885461193501727294184719633734387338966855653983805963003261296635771261057362032549882022230562457594571154869318661005136431040029557444999880738327692696072343180343386244806124326060778953854391931278060807268933978867180934617051117779832884074890886071720068334057577071433251065346417436516989915804598143140823905838162702807478314386519744362231074669189321439423365580252413425569444694408889975642595540992967471922667182868403666271051984469235226355872357668089975193765043111977117429248252762219568016275563306981875263543352374550829673172901362073672222296440796915939451108141470283850709551030166606288471938153009108629001948965315636053870869421721074171004120374384418423590131912979824336291327522657970117936799596463300141158791686221357109224226998525474091460595902862274036319952810385656106911313545199493668467173277918981200820800345585507641580461360561391181105649034241186268890443688638838214600967794729498371417413213369003579061502025999361944326939439038978832931931110169363586229619532451892332492839987015543312384877135492448771176168338831512105509952275206859923771996890861704064209565202309827099136574174244481839399857233914637784222662196829380650630402213398118112401703848185963896413906226063088819367023161048545227629232875341344420077068153070057630028091234592193847726425311670027717203826277093414602518464678822037995769029212454025824896597548212829672919054046187717871676165389486524097896487554487684192006881282750136651687414117869843796742393823556542291359622544152251464293822136331234830980493241059960518552241716474879852813751820892991332246134495046214546023582638970737429824340823246605236768634436773904749877988312133874077362835296117974551756098097913142396454201682446439691100073188360076977653766673083147013306054736062481369298483532175719850328277255715838771028472495165003378320642934343290330006867416266915103612073626902480640099380320284362356233996338950432597146159016740712760371889065981042474499424861658596943186276633936539088709977141119492342834134961557350395186928649645010865294171578737271139242465298012662739840352481226392949663410561619420480200942753425989875855918587848354521564073192165051490054945491137217855365830847870658232017486966423774330691686404179473357243768766516022532461307899985666234126963111483293243408010908119750028937140308355216304745657291626238378150261497768662380160343394021971980301478892264264555430280713350255042371484017175543723046010874222514454031931870518703665626627156705358589671310578352337863626778871672216369233799601811162768337110932862890559359958313916451228953061129647063292792470785894255059595540939631065913405081898750459098473949803949247749463998553477928007058223512528792673193182483816301729423527578543739770821685224020113864723330643699819302485136717808530412476322289039183927520179039076043451191712412552090808945929192633815174259120585453175147369549028780059504584100171623903213572625408749636569338419636112642609724927727848459608122366212394220376235618043258694108517732085432804197447443992449402172972561169285252552100390213762078241875999636127846353137934386522803151773909220614528713302948546103206936593971860008504219827860524855132411563540429575491434006037372408344773219965425214173678687291477933407905523400161521140328825434715112834212522676963825410119227215052831255999004091943690430961132994930904303056233241549252378096819901058016799850179541746981541519746658509927784661860548906495352456320507849931063753249189081759844178947326362501062165553152856694776293591055703269336624853847070807581644057491331207033671169225836670536416359872333844000731188566257085000672797252974252811744055750490389177926632504116064850328530004500313713736580872090257277839055682059763835548475799901782112199907942782892855066057325531581547185184354938312456062689609847713130451729806625483985573394528611852121160354802469541883666724943804420763561374640326036566749648179488203840853669738533610565465800555643093792516158501544145514316726754662447639517334514821878620864415679844037512561054087203723558373709364522908851638921335768899021346473178882975794877126862814574097283891427978055848288616251334648442035914704657046669834527629586524625659480558077758394404134125824249137013563828269991422994502250973546857000768552815181671471847349962481440340674809019463535244151180346639220167142829243950722634890071656184604453723383339463666810959424047151653720508441637371962887651588457551054047156223377637198675493521008713030540592124238618008707477728709168112028321944102693333205779630991768439183739362571370232465140183716303646768271286477665519056139496702116627457353258091335577112089722962086259857770015074691480303479534653449524676438059889668065999519855251701878906754790910019233413425756481492496267110892707892408651906566136590471143741400101612717099663860630580261663012830387863617863620462100343585636732668989759746052255422196414277745836944326503970549062834952182699428696787927494242822701209719751180683333426359788096533594570809879819938336210071661395262821413546807052868305805905868230413779278345689069771466521622080534434488120166787207229937090777064138067585296173573213092270400049514416752007209026855695864799411497242539631946366919489461723266839186120606886110912331866215731963594654210187874222670763887649507856161574959228132439854308521486116940820798886683200822440397218806274680061599182381418867734598410590704555052773732874260633129809597817399320669670147120906318890916909952962290248709929045894539285788266037355409457666796610602512731179941981493982894176284544510138676067949778246750224980862814055626010211417867611147730225383664793956086820076002844241693215167479025461004218917339273365592323895379895335576163494963059214873467759421882172672181811052017937939259559461054179650084180847274937943962383175987573117268096572808090906046191039423482613993843319310109495036979244278994230192826282983941997678969424022808244017995999569629261703422001850038879974913092941605941352637998061551096280936313421232353066082486608250234901850885429277278082722692946226852312825986944725410941911416179168038308671076972908697234130090601038431200287807818383053327904729068144460075951137260605593593304396704672023790475655163964950160785750354873509809248107340530533051687266528652036419468818702592047730351901280725832050468865396265314030642976384786002784008362685624394868465894597475905302737045347723052870566091157328025094713146815039630854995766266706091056826441060943600171366068862704648200306362173339874570555385095181388834999515588042294232339833621586263378380010255410840393003285413947876269241305346644203867572362973908315549870873901626522304635624462508558175668328703876657147594530913915874214659167326609027176556609071222178837552029238842462217672442275294527643844570196191695423746353955000095792870675273174739889550657074280740009809300484814454939809917012613658841223652059206414450085974267464716906627811660795049539920199542124981446923627868102307365173997847189545766238884503302212909602497432507053530801243840271834489684864509792593948619935653391566467246073025417668148768334888408905692991779168981195123860092715342153583809777092468199322572017481171760599247964678062502744441115200157556781900304739952806565346460307090312386360259201091970469820864254831728710261350304045228818301322274847819335142320331686150885551836516098119200205332727753051441722457177679422866922072581802865418156583126510763821290461018449155188011565628176635734642523703376926647647872120947899517811789100860307480211493805350009307574447743817423470170578338897574903685305298749711891702472144060157059451954048276945003472006616591689671215111524695072086826730231580435887519309045552787796896737569872624675995019133115010911334320451276460964227587881018680723349059506059843914832009549009572952249870467397171619975683288354139382260249717797183064935801744593935230818228493443901956716651563726578461361520816392111296075654536985589459310363475175195655012516875166988894907967841716669914906882486926072154066050524059550605883162406523105370457301465876211837468777011964531679356386156956810925474641864958340867556778249105370828183199910242359363153022388348995960933965684135723788878036630865302028280225424875171253232982533174781653573031982847645171321157724823674028302699858296128622340222607241451945998003335350947733143610692368765210679830497814099680033032032227539520873370530051449448055802467515634299627030155557571865693149043313815997572113363089045721734622177457263804990801345161207217611460129486489008582218058884888647696398104531662919315138094674145393045820948638383733819973380745454673750019607477286355656941745630426649043069272005766067631153500763084920405368803551753740162945453932621175797387817123534067908755945657341469924345767319197235238106450421740067646442723180343342665592690358028468149670288488981298082189870753528577585685394628625168369618359442907341042488440184755219020689629845904688759250643567182879880121887086565797139589994986450271911627549432706503829185614691969050322015804697752511274956997033521283191946970032697798540247203359141736995026968093379163394304239805984265318454119209167557701496902185673103321582441276473702779647522849478556937692719641462026065781449713759039236277134694180260982558731354094730332848886425917505067004207306196074241936780846447684765181470557080628546648992636185906827607675219197944695149671593108235417923572312166931890533389247706423308713452035777713221094312574545629299964546958975108176720628496156743704400745516933973036646921655251306663972719985513718297028094834691956111616448251240073457280511849151082961020212453969220860377238995401416804931476567711520693311666689290990063497388355708642583576748307546679399310772483424569468944976690323932024959668570200176297860072979775847309428477086690301376057656705007301775718964531635880293204310474235390477542663803654598965237157674462282339266898720686828187161664963024752030749974052754642833594441610110011224784400830283657897531365516273482284026147022684300252556057847570219834373951339381066760775574075566106207179712869670701480197156603422849528437999308253931948571388238642108003428311660967574854387252995183079251889579826337035590253944385539761244936169482268808754883242653130911616104124602511307988974064580602366027823138107571972186177911811966743285906954023759107061775454930089682525175993409222925488111951403842139897022067213065267731399699831278003136984570648890266086849632009319129888913055565796494371363469308345071151814186038127824376185677679069936702524161862023532981012404213247884757121690832292484557157986915343526319976094262941685308646644354060928297973840935251200431956151907462298614202938520315657735100400660772976478809317808380939157766461872615680457117200859967410759419452226897130431007893513460001042949663562248047236447994734265688358075431678312536647326781340729323565198723072006419540410996435264177283759871346938708902735661919763100629770820005966706645927341038094721523585365957799382121373446696238784863921158925570679449366884404282365294326984321492940176095639397189517847898937230528154800309479508581209993261933110786441594651637223483896342618730611744953048054776688312239857477145660259925370040451545321364453769049332738952285044452084905539058569233311570809441849194211188244595992269944637717724725250620080645422493711474205116461577577276460323009646680853059003928625902344229470175441585864487420430172457061768061910695472030638021336017877566958182811410807340007172093970545914915695233277820228552122541335076128816398697550385822110279280182494327909963326641897165961354580220714209240362233318906353028845986410664684879888448464464814785223063418334289496681163747479803544643979109049005648981979386967810367429871142313588301361339752317918083156832978518776962704355186153696052143904855896347898440746065978970248251005265724355887118939459259860448984073682118942181646493079934667459116118337907256813135443189237558330230361268285164751124809355845982941843190821642486230103523414170012071487966210429479929268932678211107863115741901604472891708584315683028191059372821946967453518268382299543981875756294373690903232558483420197466201217787800491393769840766963067353637090511044751164828845931339216031047172178084961210354059015374098742596235899872741851072853731082725699162749501924019831896412146405499730332508798002475494579677199153232253546592598058703731928540097774691334952642012097330814082694743813639728418083932575142493955851230123760478238246183176501008170500197016792237451181859472492896711406174953952281323792956146310355966802507163868478163430001692520720276385549521234075955944602054068605387717118169870688060073852316499479722196136772397768137403049729314842634097742429087772233395485200598907521627090151422454754936532292002799838739942303280786426582751757684338160153241765601079233996703760969075095337571192280124993868116875782766439750012568371340926102126418348291098806558494730553634258499638017916791074826237685959273031844821531115040834897566965435679032093887003330840143272112098660317879665092018291004802324616464395589736318940180518068785117487531882724584941458531442720754527323827688879999234939743230711017029063749433947341093263720848072321084042232993099319498606635823228939153061582801709572390402041075198221200188347255559743526058545670755925220011457426229237125087097731026544828484072817040845019137290597695115240055136744200896022663704127280299966691818906252471190298691166501727556725014095224005723446891331140628770071941448735658459435320227826972001971807006206650356218933541122762151796990955659596741951246983161921378833740821056796410742524987113837007271241179166752297769683235827392883761873551893289747902671330382292322652873873112896278667619086896131969468003665043791076465278523860198106260454166598466909897017080651846124353723910049530919551801352265927724554724691778526135833970015744058767586268090815642535846731900741548524686908780411237029474084643642667874828739907670206703414297040398901876875232224496934913956504580809190346313374008003516552225957290627392656304238255159188393549021212955449650356621042320362212320753815990701678252912874961255664479028558528184043766884640150275981409693249148377460675059719398726073427760399343136679882970956374344235568656947804078009003028453522026798429541408766708198202878479449253742700133146090696857583398325118752364279183132439696629061311644782184616628405052669946358325939984768502678790749097745814314859591929594027860961445413359826544006848099392726295464076462692991189456793264289445210604609718645273784822661019446704137182041811866982350518812116853265054735721527884971391468098978202727035777679835947612113105468133283875887620457893051223253493412558397627099812665442941373015678686563378618319547990982206359503976678276113042186142435629099974622315682014159465060195505100496166230458303652861280078005436263908851583423131028511513137379550635360835694775052544829715602365162370196783664945817198767674652812791852824276682544620807445053333962013513998967586356390624703254793534663770405791179397732380845637158940969382864966961521638801986057164890244297801276746025564894160620113692985658900263360520256917586223637172438676669084621477727640238073274552754083231263038467931761093354508891039296362974301666745173438832345635316851770864130991293423904668846688194322620410614073483443879475467100994438552024048575422178392103556674422075878925875560210167212919391718232968833943077722274951794325160566141786088627435243810305031651664493224967256385600742016967660900635532995810238978520684214324593064306104954669691256799039154059975554778044458236684128418218065769690690182385532776517647510395996947094964716840083881601877969778777380987961915791211051163723261770649753581163952582588130165007827111017181438467429448999782282613252153772557440118408298164896617811029498314459875614625282665587207011574379655332422103370866832851244179661249066807114405482360993790648284175498543895423807046662486260063356513515246474980394472042117232397573528840431597299339796977535131745445268259547007210821149574329119860457585208504385120754195997633937938141075775774480621842560715126519646149773508792257760975775481557938731355112055124626549983354948981035825302373570073924150710234038365481448262960934373030032220250907749733413774664320140323985306274439216193527598271488341151265214360908716473550368057478625563523465260525689970402069698709797261833078005079687104133462044370939188504770322411811273204883462889919157105206382982918998034587224888714851171778173226418143741820655883760406845504209298749708435854019748872411792517609889451869126650832003916151735468523218077393320195665409763208103794237446121748791084181942560758386084566545979717850151276099244033990681975946755377980519586379463392266600828194228447139653249849574038181171343935517084297933250703222552750338221836173063105100476140497860147541374315179652070903032730859951449855873053568071796135232450473483361839350163161538069085988233718402692714188993337355085709910843363243478927646694888741616471357516288512557710353680694344334763120895491597611748395788504760905058487404712581238890587129867000964472500416567834499391057519048336420282083805934115471154042934547330088724552188979118729134156785844959286660566675075599967497719704888110401881897951965596230195508549825971042061221086871018958764255418450342709767591116787336760663101894460044882660941439392498317200157123437285251456494554261085475101408002838550792379179936176005103785025547138441879693311537668011017436131016531587013654126197262059534998043144938539452717031313439612196512421808238930477925076464225956461388293103936141949524059186181937544812533965181278905189781514885002228402143898445576228912106810446264328975067021788047550144843702037301235705978921569027942758410009170532573331895756243119869298882593675274087405576222718517784876276705370244728415575325245811529944517259333777834740045150184182432285052856674675097127431833478929273157318189832106707034378506204023210384159489623629048598490632135028350360513184706394234254350491669290675276830883250335526703877422069258028007644540381578714839775824357770923380802125499655606875326766967811367199127482878270726359307164045280717505278327161783759474057040527373970565753718563550809953809222959602573357694494854393543543335503451245515477381482904279040676166382941536474399948583215330460464023577400146958555880798893887005735798080445281132906994762900490031605794202156103490543752846438917859553022563726942718228287885715391452268516959044398727256922543040041220188770088281344817821119535409280300091587972133997724883936173901167929853446289686230683223669555464109929107121941920834332255316341166975252785021534777677864378242938044242228527499483815406398191310004049815549843999674901268271108162063043026074931422772000040657812224631282495105388466542801152095782771773442265915736030956212645321734318462792015336344425052141221804689460899980640121174024207371049216729231568857618441033152767998080638644113044838475143152613546134841775928480290161179250012538269544099474311551808041391423376759635285336647946650441908470291064784414281364702887277785709807254132854930314305288716546902892618561757623996089828439702383903549225288696440481469995929313041999051731342325242758188805038560706038639353438572718120498860888351539308859238788627087197625404901399264636909699744476051192755109054867926586019633370974774195108929228082479030991272349734750102732590795997568483463602372121876879899766384716172090369036092590574344065329472129928083667842253198267750510022719002173706057311011655363202987607176860610616253073336833386538826466057235472684128035984626023661316547311130715444504228965605035171958204698441517844770507550115109648838877155668188715418471333042100766368536146582865955627743254765096172334277470239943330108795799151151373022154270400921268699892100434541266712484582131202943280311058842442311669784623009358257846331487062147848551657576346800311242773512759956551001559061772524726398732730725329837521877174170091271656974132074200094799121807172245391825120874015600322608109693334802705882220229944851176012435177249930020082812287213624471721107591112939678490389061526314214514655356080510235264537488356131816900255389964045742176432402462485355845376854177561503836837286954123070488439664608495405299010209351069046874380298804789350052108715099552577737552104364126774585111855764158684681763129816004658630371307714987431179641675192643331436464468834334781339665152341701440037893897255462435449285251725209491794228948264223681829150722418229800833770332420086302459258027680039643860164964456131715991972679173953852598698867908395005540397783105648181348658501846110765617587884525279319000219933526868591094626662557911658638417071143946482913161033222918879293327656959279260793249403304120668452865718419843845027219036590949029278572772110096795423597347175168594317675538066284010841410217522635683661053112955473700708570242858386701099661958616581522735902306504157031788007617568233606768876866185763318948690011712044866704103696178224810123598646246946195342474976577482350935248823590070422639819111692642891359755782429114650731057367853784576292376485140890866796821699962535342209225109960061360115878271382334928292730239074117785717056705647500511987031975591903351901396483697416184678568297831972414681229499338621550511029666163561045591959530127697003672012795414932819834444657547036190359800062406267998304332210136843824206180156662006508133847873010309597331699011580585757761653129573127656220942125831090719612480647809083206264120787876356605494102699238537294692434109292718726266856323590058129388191678406412580696319121549872419446675058514399543219395054830785475330000430146596506713785569717845726083957376739050321293790590896674876826560682705940275209836623463659287941046710104703920489847016076046573448204340531411809822176136212924029742344311279859526203995478685075619291483865715285664660504401695084509520688958217544780702883075192996848125636903026397196152697493467773853709720349543552619628377371188391068747738650081533912892658491671623648939256733820778123630378956602164970241723379126600701398479496865288780563436850709251087998434191885983557206390108324762736746092639689085116253504098374454039883117811576857703897514509830113038710820923337856479633534167993820672207484155811351456178238525066476675457126265367341473074905875947795408731991562580481672433794626194665913780469528836556763851359811383817614964389324107366143159792365007131914184060620655065337041795351490470545762526815669338523962081437523184410399813191079230604177908674264867546579833881153396128354785007305584411076527003326916538855913553072387975418644558110706327490233474777441089882041828422785987059056877590293224408816374684105949050148632218599217812758773472006016675007156787977423677508502129837035133936291305058621286039664917572878872525216886016857560459104227461456008669408831396435831900009958804664124444220043103624573728107539458401189318965899011632974082318423553690073545075808101075443106848237486921910330228957815492839977082333262615491577944746063575984357195383647370731413569137515501703968781548662490667081988166740476923099984178324455417739144535441898675346718989186050569576785073262394198412317042161281430651189037754933588720349944137018864967466415411053498739397029251686594590694305466992412259081173651967461639557270929317057919960670421030549068541540415580584673970442929004246751602440770902249115798927907939876292275553329500359295204972350296675586690226486274751641699396306745892617150235480087229494045565249066045404560440118413266173767298837944839206558721602444510841948744718796971758522647120289867417221411577756689166648870565281733376018356400126240771805884756340797644435402794103501520434239852075362904457955789965888849331175803819056287562424939458663875340593532784776127424548314222980681118858465287197003963698321146731458828227210794680063557145463357262859497312018838768187978163930954472924632879854714864988881352058295395981765746997558929184136385551990234496388992347947283027263669875939554539887912853465706179275140934922159557130389075001143800313316313645711554890337769421510130771264844125690544274379374291354015499254085760040707455434431368770555311480237088020749940193243903035719432294488963454940182111822458611703486661291782102252277407017214407350803745952691939199531376957915530120865316341061628464657620683809079850844981519610337810157241703998169661850849544313987895950948878101687343698572170032609333004186487622475382976699789429930927008137829582780442234651064939695667024094089659974013592491852588365895501293517112167669039921465436288791658868513113310333498142152535944937997379919356726778221150702979435604236435054263134620806139902773845074507240933298903503022028069292946500666168947230320829459078446831182923997845851809157279609708389684700969318605275735499558622318773541822239203994441080634486200483575661012851779624157084483571041808946965604613174379567718766692993350384066025221472484379774953166680788697605479373193463679906877221887746281890762376545475722700841861282719718140314265552054450501222717733668170311063020340518501374038891725695769531418837553927181239772890812897201359083798295730030609734569753923498481742927231514297270291849142541084271205961819515738755137261500956265896932435517993539163335865023526209951154121087684415865651761214945084085191748676500033719548615075069163970994014487107583357018954211592558604257033639110826959555258157678166404557390962460315547628818938635291930166467881881839117316342649873236622766735776636687987824427295183017378884311106105249989863215805543002893169196920109704331663180257988599473049851728854199420154221939177217437798399001095859122417190875628586078579220571246664016145748833801725026534034227305373113951920957214954864088682848604943980445517889543066962956394508004765087913260197353665778136265168672339816768825125028976950642265564156942291105841092526513295790962169408186119376001125156085074115292253705269538447149134239873182704916162924927826614747673305346472508484721105687369817515475870033020273676437117044737705976242116458556548817249385392513038136590717876457804207142535795266643169699031489407702115644535165012894348696189720727222070323090008482300932709317938369771635876913308885018782008839693360008281052905475317588451834240085026757005367299480289178707822826783353054428608820152736066518446699844039259060986705082879341588909749193114875492459255484019633151535114329758551080760253172303589242234258829984464759006493477510035594728920802722955002064514907174470997888443406700434051974339544527112906559677997391164849997802669853961325857872228550103890042666765869153627309949020761115059666549010816524676533480113097538125978381073371791760018850203769911131194847719744247675170549116624436946049149691832108450279749152942312139334606315874931023596460982831560812428521984395775164544669174588090168568176020393825184525511156398398510093623840479319858863755765872111717013914571019161326763263256267453595287162104847711193484431120996238659762404563917113098021017957871348595173138389121528496721550136135669215047039275417967841843503258873625094469652225163904335108296177661304258348651002192695175826032027329935197584352504838020208183539092541774408327481537777200844254743612687902993469320645601167308895751938899996952687087720557151004554892710917691797871187653698838318615690628871609897803302478209153327863673819390366077571327648636796951681750195718898729866736103487722942972084751548161983151208191853551288627566030853654989845159828759979963818328506029315223742055355468719604049577650089581146767027324034280983025123947133459464318288681542133086757308078487480246635647282702872216566956790680027851536036203522668769337493858519547620420272346995614843957546221352800008021133571987327049794292730483713466159238797495152644162624861952944040523428231343072838014622620464357101938376965032043054103582401216995116831910613868248142412974477276179234897511347358952061460300661663529109734373674105677765628548484500467938137659578436043800102804161480339315721287363429885995398689065922044297082640436216568993689816736893295979266512388453589509204375341833942516667106974616505925711881205525121055557760078130617579279898608098745023408526942794039136848180241333081212779504674626192131982092288248977049009432122018904930327682482412498770147670669523553892220960425095348527970575373478815351573868726172902138013947079982640859976210898911636685717957269211733074315839935400326998223011127803927112288254597923490985916114141980634209466196419343126933714619094044475342328730969438012048516422192376432787656225966414544003976259836796436517628551198695397839612164971852660750572667271814513307146676645130001840310447985734851558765307329816946700547606892146781622207958125178348843448497570505241845990073143411170809167672193963897573378812255163618480160053892166799321197361025893377422741565429067342605598428804225835069379766984032342694164453642167341235766404466704897258552084017493635541000812500577294175694798293670890600706885949084464895368725519125154461717910751704524879946614742283344309545090257015331279020510272076918897816928981253566904054441077890628588592538858885429768311884490077903426947388708168231172002333508349699965685368692403522570708531957146622797072535682450850762455756761834339221539307382119602003242266483617780612277702303001914185927191519123670701309393488698516125320676303307560312529381371646650107946161906886018321519233514445099094120283145775173942260091495671030692412506912223768559777417340801497014180246171426795883207210011418623789617942052777844883237431820741064030246611226718010163294326880803633255448009802181508848755926481034867515409307687742061246445680462553816425429284936510113538372114577616411556022937576663424652606789650642132072213181866662527916892804168983990330524592690572021112236484482110618249233515421839792769700971613227909557822730013384762823142247317843666043383287444591916137648116063252937346115043015064652478880417219318988514647834691328046339461267174067404290506829071438670063008837819840153307496514635060779090530446652961832374723283405728452549748832629754241232416005849119358651321094657986356489368965164317762146572244794656337209871247008727042517789937603193324416055310300873390147825732767064679610407362805757909768848685129934727760950957078036643084775304110071916032411965593076694518593596369004241078289926785735823056976823919394497687634191454512775481254693622487971302246042913840094814237682279447263830946744896477267919831730170710915689578451238194127708849467698570338794590014208504736183266625983515829159241153625159096141390431774381363141111114746320345701003751918858551929749290162847652073910354513581673087435277444809154466164051829766389174746512622450785798834977836524669027755208223477816098226357124305439490180523485258230982761123537063702194239393012794191646553336769656788049806750486782535958787252600744461997543739242133220758774191485617326639987891605132256152196715572867413738402086434329497655375141151878459303708478449589542777984389955311069696689035932749480619834818962830453600901785024106776452425317778756220903279919087503039683079787271749351135592652027775863919102411859836600970429244595654027383775077528718804726238682909351954977594742290327336972760349697266092172384353445806942024094664757977047759007635268905203777485139988705984781594788032243614717393833549197212338161310422540998888764531793452536527735289461918944520458873646389475413960995053286167220041282352203044482468429330630742446063942049253225248326679699506243855330893309081191953843329625843685888663000577960289509522428690437881646070447718319928371535320900361890202880352438225708026322889887419428708063810550255665370211766998932025456982027606101339031379077004798698444522649635218310262966119127289681770474665563481957939483170254111358401382652566246929705374298625399056833276827171072479442109522532827494142483557897099899413249588869286817649310531760193606296052757360578763257575133490925762566334982431986737665975030131891960276007887249016994172497179427727506778605056985308067211300744544458279004452617875344605528999627127923239271121236265435064103468478896617167313688393012724790664750270076061315600216750344120284142913936177552896694558003714518607953195597812395123237771725488270171772496527774734820799203577262578897365647686891698138997697862561355458716672577592286925540043173373273899703429218653068968561825950545057210807514745480044652212631080067936511294152766714954001675579840929244857719808484077780256897303536766432460571844197867075582133393555376236086699061854117562944939960731622088583694052955930372564319307146772318790105571076411548518734773937337513532972851514031680876265716134751381442220235509131179033813528328352486859971250793012663019365944007615651630206897054030014901035464792727542865110288146671261298983632441715626890361277197170430803380629615058445765294871349132320990545536979110099229908614978466563794008470131432287165744517714696491678920051604854862203159860211374465335636008500868644820352813160433734745141099253796842249318123390898445528341442220270979590252098980779007832520445612785782297209898173139344187141088285971300022118300194005983242839203565553431650844010961140916517492009476435460905002500084889381470655370123650686778330942056320647923494363421020798620026853881031673336545577290640956300994555778550844676914891070813807685085544747620451876945215004676865159994833438867950937216348152762700245639625253829243032366974546559396636716489249402898067027798504197497445262585168621720514689843709138265735274617697175814325719367308337913269051398159258395172495100162674555275748035468682177681033756314189869720093530266489600858598768169851593628268913591252980806928743479959438725546839151862040787949732802051231107974425864486104564078004112962966165678316218470357693947010064789015703191549489465686803869240999752717996184667068779442123678654279368583363868542282255671233139120913996555529880193134204117114491403712362187275541503301098821395794627106909714033831073341232284036066011598069610166612428572143711445405180572212982215274401484224053405538028726165100066570689585879039786144557932158740379415054165630108526945069059892028404216942297790987709302629395764194424410231000755033107126416397668816944484146533247964014790175557181700212388785188763802644573551786704520159533330770039227372690582841976870915112810598898177787163602608017202187786452673934098241788568444678598546697272624639845676421952020453445292439369947468506826574468403310365257334822639154374659777541426551938155437017079663138658011208810678282285171834764521543796814940207967204030842555209967822362513987336123169800904624933697360260300729196293814524928020302548492188197695825978648862856720070456860259754838298409208254187588776402699758009798140597605595562430623370994094431262680507773260254097495892642341768685471710915392780219799487316808887529690723218498149082428475290760349534070405891003347055778821353565667582370266871000288191360605168812235840421769519453701569527704423749203387937941591747105637750221865980807963770437469027927951959199279497506541341695827762981137309838838673984899049861743602606442058455054689156572338715704020328457879143302129481593375751346195421525474212733318046253457331659275913382303869412015299404384190688887198552028345559425030189692538464090476077573380258375892246301897022398599331196498712589867313106368365572784738127379001098203470082686346653394669538066328210293870412572809582106633459324416375739248455700996788142443264307990407703579666554976034479477139413757974472941327879101921861102842240634602351228515068735383776404278809583919424798708108692006840548853264765175422320148072496103722446679370041292964742567553179564830042903899247331490657036041457216284884590460656867661621356222168762763974322053962032354734360642601229573319215066113260399723655343479269792131703602074823319009243802078189388205271650758738189401597624691611930753749569797799685809273285509388366365992252397455965061134705653217142989975478692180860959542561222285053164616294283149244819673168491208700409669250471089822854581160537041700654927944457304741647138481718838801605077554406629746807161036574807051925088389737531967450120133650892321620565733640952595566446756326856573065880192314878973535069407285638149216085445223758997662248599696738973801451608209851978359109227169106787913686732660166872121060766856005916230953427212880362251898005213669824111559329949793831509741342775699366851490540149087687128109656043199045592728199422483999174674011164072741333544106283603408278923205258079252458288144414349346698970478994565909597162273461953858846060761621018880930071256347056992408853235245237248373775707374928111894267854772636391689182726539435417694331923942539007922520952520202186965896795409082925970265486959963426826970792970435264629428550717748318844358241500278683104036719254967071915150118197169829201409584464260261432914319829229153196953906974741225788064544278429889001710705016666776008371920944860066575792382931960491780020741094372535059699019168471356913640992826164536687706423586885022189036452500122563017633029962638790277144291499054557873114867608162270821266268094875490552483247153648439058267912942022399116388069762277423236236678777742567785646493471945428146681279677615703556046940040882492427720250728046942304240088268496434673813239614603155396465152587220375541489202088424203229276202768223467123797791040683645651045319494604242886885799230023641464254575650943145968214424523107345836014112709585795169208944480464962258734441500519521422975458835747661507071985941525868395692150860634798584209960180577861087749604216076884461497658132828098598365490652240093868372075366210993355552338916514917335590316957411783536214099935440309615957414032951854866819592305195136518171185590923146834098166777548231934277387789870034092561264553323391387373993891609260102214679685959782933360028258799170241134241304924768150078711766837460163423623741904364071972071290359982137733281608860884364517032192550199084977507618118014491169038654541329337475055242085989594450202651085512172413564364443768999392955337359847490471311334916984827317540997898395222658812677580171864938447195319503510162021317996914298644347801171287307327065293609576492474545796320999679595646094523755584349654617189046979670655023982710694589512640668728616904746883248479330563241899818965747920089780498913196628053799897655648211822851527473069408177121944188907775821296670248698047168188861514302480259994816060329508746703585411675626759004081629062426929260008658853157039994212815106044120084104778147346107841539590773146657377650748160604042668867175820750984433439422246208266860388095481690039616612133756358701934875093023047562409034105966337989887175778421828186401557983183508533145521835337813703143495718504305489640920350261362894464020440538361741793660399525858761709818964735662578476254919204641422396300089357980784471550355396983184354152351465641280216065876888364865249891663269855987850022679294617679102291621230575590575264283535104672742278898126991074633988814233591449943543484437910981999991093952838724782011069341442543981212163098899280202088750840708843752251995153358218771545728408704011699993973415020277987522567566999873781194432059422066016237537130584515422976963493956761228827714533657719378943667772863619881412940500430450496728565794459711954444700595462719444087436610469448778490880466378981511448649296240513339543519952442289062421538127840554717392564975992737443454886296910153242644742311461207939321146635081466391219805093537694350338014357536723502388110889720965785217420114330829004311801441120070369856648006722655746369430254970168025120554918953195224584051406754634676877525185879622623018862254388790622016943224245389814522769232312366150836596740703565749114192195527570585448753362373016052479172370367135770381799754632823230136775112649682614226631271814249720171912131048614194655338403791916022869652422132510514783219798220265773194449729872188262104194806530968022378753350835115624292510852924558743632886502275938107947572875245784933020674513453471440857213393721559016259223617518658841942782832912435652718457368769646217696056364435574750979213777941034021328551735549625234374245799230080754813036248525914781882382436924218634885583037710323281540480108341631438282641318400037200167940128834823451435059563622221489956873202821924334330159070004458628153746775828198475907201277080313879741280654479870939464748803284173222518556463219183759669306133418953274630994751115781880983285426211779035280009044050381918857318893828502754920578585268554441759859991668093440900184634397225377746153394254708854545725374773406301667900317049537117945549566776879987964940795761437725688047075358572113952926356016261573613872959485827148633342974997169709725623581698051848505009019690100830613402277735631968496205031653151470261578807902192343696813113169507191844177523414374011323519074365772547142732573632250004730990413200067518785712525452369359280100776135741190162061380688926096615181963774007097057161419293314912663310966661043232243646489258180625618035915666514754654629555374985478577665041551468305259017934632174505270249375203677801573229494042173170463183803110118366227323196940988982206446216372269933064832309936587947547521998488880026230366559465749956238837228228900091123666789643765020337740523055745207961946842785989512944104444860946348442115423300400266974390050499848137173447395420958642688238524990014582348779492075971258600451980076689230252881360287061092801059356201989691945359185750538153666111254495652709141430963366408191672518027533603045825832313940125955603020401159219181729552902919153258620510527807688786731658436059664990511149842478000652057952072814690869679514075773208351182137876407799717998123035849126513745452862480992387718083309363625546906813661277490394736505202548965918222676819161904904842191153205756685321321070447521430234975140985919070722242061683802800273901595994693465650079921613311786581214325577898037262170228940026629632171721632716174448291104951484200372742629799040777742212275535111124852881252367341597587685000545417706074599955456855650219502690988188479208657501183012564587839858585403561498826881561349202489396828231718469244037096815790284999949302984289944838620065937577759573534454277924469907000812604295440385660455205937310394703458406806834591674674606652180192282305032228132839745014271405707844714099539251007214309023550286407916595118440462551698641456506523202508073605393812323771456981722837450689876461092202876434941124895644274918094779867700173429864500228624360255195867135479157703517235008640460967572784849452317147288180289747750302003457496832513153402731182266480061989169402468161620126948117374801684995238845175353904632189402039954857432021379249656112180328095852654673467377375231562338326873081783052671984084250890839321827384709662916922958687136419055246167084472748291952972611755280808058005275391533127106981008511285438339349155369115440117846611714348102669129823206523904049512358047125491758193442161313381764730629437811122996004824864975223779962286483293855199898123576247656639671583614431403539838880798949452807241550191734417640316020821628977002091747657856697025043235424830187769968987922831222073104244587543901207304485061445036686523300868021051323025744682144887385025069583144742000949968211629304716677368623128885349206135356278579870116302948811077208844131417516235131211015396393526895120201372701152919137353620845322359361393937067136960918384437129609479532666547363341202818647006608421647392852639890870029138330750701114616550668738391723767085262821179446015726646633919976051898682442877964946501482571193548472608591925862223921068366414330863054734254663514597843352713101889632253861764961190811554670715602365513864485299239330378295055496161524183837567736762789032499108380793569539439518185677373335959690948982437812440742855156928472457585373933510392602981390901971436866654627716804327567424144587045683888273033414595984508779657756773734236319462309261060437054664779485903039211098744261855530206305496200868677399149514845649128584844935054363337790648214278270542563909862606957736839962839574699973573976676520941877510305963221381421652481123094263304907200055801141008166124127628657993257018869594935158197482787544501553611177044985749806595654893458923129840794882454975457767365574181652790392354931119453406366457221546985844204883756392005636201073758521271722017945193371916625039260144027430806165196457934361336962923806673965221680372526882161297031863354750884612274832312210949542685247609906237715923744284887608581840814521083356511352463527375924580604137702004422522620291034925260701428375278985984753384298915903832222541927857815401812219757923910901085655734782376207949577614521472499214388196753293528639465177694580625357995426588703395485038589092992947666969488865771949896683772945106826963379637459865204555576004029342822610849180669465532992433083268544512975540151522533227880839333870847881134603819626104520080965260500603222058511233399455165787210202765391932364142042602076427651898076967322339817698030201342985606118123698076625785395026519594391535506161288461010447073067162177798110042065238075129074621822329827525252206932998500724186750001249857448927104986129978076612712523597045608418707636046755580975291618454451800721490927991760725086377800957749090821043793191519932309726469910819928124718987601407778013806214380043958623425772973595902294106828936794998652692377311845069748249018595210654598179703219100179196614446535457705019069122318414614707529497453837035937033567781323271520712539757720923521909012102365332569626323141651952713729529796098642487298609724655975947500660316751027377801084015621023751884776634613186999578769944290752580499971493423080421067250001920540548948952061186602686801023994837780060667970990983490528551818033313701535950351750481923244073720159872443329886479243671147756006065089350056035124779346347998632703240240817937960068938324617325626759145793868877713829030151228737821991048269414799504819171474580957984424256179757268104166108575321819940480373275679073814591973883583737457535099198530790064395575384580174009119611512264922475441784169500148324930177916802223234914004885237587747049326135104481293294968919611128934759757420870429491083264968943154742937183151233097704020750641497730805694887330773304353167841808437824245990474991132020895513320847153892017803878039880679850688233213508823467303674242298267485940827402451560395269674764101634883604693252565337145786689464624798914763075991490933039803270488968810388384729464173745121446852980029002338628967430115324050415940689112574676960644891215730006637162124553502154355404740840855350891478586603243711466253585714791837167754059414143970773426860587811389510946702693768573112690368475796976815040018888142494423788819332964090300347130696457826195858570659164467653149427354068980399016771342962600218232657455696286826845514421178006190725637061358617292102047142089849073988691122148813258640150135409719650623833456109890672832939949647473860636352776718524012606112386786626434499430982342808742436894723979976165916838208207289132287141124104811560995486739543733766751994112721880693077925451228021891542523260979898591904908184624815329363974390147185413573531563760391712176879693474729018375301195374300422872533293819216137340627281232038382523512172042917132063097355393688166304129566089958828252006789583047515148715467792437134245073027837288811981812953102192533078335899232101570636191971510490861256898872710443074484282685876174607248215639875471441986960180361864453300329059989698321002478339486356725219888074121921148538117160939339926685660479873503119531530711077525229826714929499631279209404336119539805788098182727321196538792089904179211652090859464164701088872422964713398031968248271497089262737293897332987804503653359420157640799595887905778219922039432154684021268277787123418906295241043176876092485226183673398734460980481331195986705115231286075619166938046991226645876924469908893466185263304142817795066212750594421679356692710726654002293685091332468267220027255564948313149432367074081311830702219417935226953059451270293725635791165271782537257597708491778077371356994848734210364121487129325033179764660005389843383058720634123064284898226408252000466204820786696788108343927281937029772402860078608270876080694432448193701644862413427206790057209624503918333609437129618787153732492500497584174649753105096753715152690522408350339430768042577764344116055621940772596067233889495772929793375128313892651121253285126372746100345407692330849762192679876122401733177299055297534491942318411154249070300415992699163997580233271988367868704837218603302022525807941808010994358768419718266052359370014471706356010794187063425298847174827611044229323334348574600343716167478047715743268695247753382447262438150400548390694699776863938690993194851443202612406990046566355290115178618966615778932287606139298835139695144183333578172994177930869054227164213631718882993661807333427920755802263143363203620819420099281957522156113442057592040086745059050660537676300652040382713507650302313910467690638088939569637316082513633962671977241754237143054386173935592068041650306492324974845401334576439714778805643245956300344453709097824973305798264548978131587337943449487679750237002464126864345137882766332982988611304195529555801239378812366403263684461770752492955672839996988192366309270141757119950427858186261212240782482957509776634698191488755235734973113755913928573099838100096879697999481212386432322321744740079494977983616420914872087114423493465005310937355772199101749703992031078499712705761712944654074227204040647213778501841440914337686321120138493596429573470395638580764486141466317818170572429184378148613353680710141736889276674708402728863325707615042771209365437946376599384144784290759720250835838835539994281604575846180793544986259606932682177600446441110600974482552542595427384769203805531315464480207860023859335673875618349107450789482159711485993742548968085381918716091607316643774893619582422292939747625781765740852694044394687593462182357992174880054450310372487172438126322214024920676504810939419510692365435713241782287244299629702456158880404853588670785506594665190007765695620637940722444539128281608568634391729693944676522012748348311661514205362540083644789516077230629792749252185429660357365568144967989141424755966211148319402698038399296539143043497201290111523129863234768682530600537105616901152924488692801926565668234375969663139094613327273630227336488747235045344656977896910911722715157527695770933277389902905147639776164930610204648696059384256177440419711305717371823726527765767374776850984274978457586099011854512632765178504629344936168707281537538726516798100910227122840707953057133429478401547637621211193216358060023117292038609460300115148984458906383633965682753453085897860140351020561700087379589519387010162282862331039263443399954434858406459937724466290225617227121324831973794525039622077755021418322204265233295972214315455994977425931050635741884692817152008790779834622652631288600282209494691392950369034737648921615042720253759432774302305884867988869563307971132686340554753785770727718858823568889120339123481806097643196839976546686552020321940632960516222900211365402157475652721679324123489789670768627756547813562851826959224182344020903512215669025963178701820204694901051958660465000522050500691203963332355221835437785110559575576772731572224292895802811445436998564472132135023875447161410704150887758494457166490182399918964064650753249396633197679166001134626537013426895586987259867095749234301341467680306438300915540740724985195882962352429801130906621544199772715803005106671431468063507462809798552562518429048985926328229948536260295280429836561616391232813527032398239496974843234637608716949654745465544176687102808394128624956864852992512634868706723020405599270189551204768029099842117492365535896750229780849347541237978852233742116472990536968373466770669795781645752428024523753410119791128971020937654896772070242853832681530386605496375504000064179455996860430318102184051371753272091755241554076578522687544371931964688392453403874044430400109065742242969313576487953506462251015567901461319865255465911104286403764059876865835740020657301975538230396215798891780701043627654626077343220870976570365756998156485003546876928425988060398966183228457765855105873430006180210663179241801310229594885384725415530617904835180902431882237430629731928411246967898309222211801170055612846254644103981362831834923144710087389702795571415400523610940430345632358435885930298798268650371363777522150069871063201636620268003513300754081555713410984470132378883958941660372585197748469530208584892883675865160939922655131398893093875401427169945998927748230719835580824478706271632244229543107680683812031511216112459135672487657660156177492020605740110968927681626996636177742020442889640634329306752072790134848736440947203450628526104006732657919297378283857190006730111097338832751205256112474231451311695841873535010931060282127292937450940058102338536456238398994070887317500044213864676701497652212862652675462478595024937130680557275009439149489064081499811119033052689041109877831226777282944514410525690655322314053473877437379552408517616906523968072328900960315563350700111658663210871926546027146402429681425977395466462604500000752586791543593125983007418059029068515259827750668432318113923298214124087287396786404930265495917829057312571514804116786465070194696250188130978551155542417190046479326312636761051237084000806756103072251331036026666631200607281145526026917237185354948552056968403408352690683254823955643145579820266971763390831471507291920510983171142311531780845896460337282005981699119871723304276067647089351358721661395009151100212461051146578177464400940458103819424486295502853903655934865543786630746502825896719377352559248265712593335753608116590209583640268489809436613926723642978215892292114740471018048740706786525950414754029444434332665498996307186159874986042779710676581066890924916941584515820185204925294736135518487512630283951632461904521164946122778323622387728003483056559939721818567035241914262480640841887270300733297381049815878246756749901651070394625185546788955001389474975866399222419246807559173432915847908557523317273833731298243567550431493074961988886787976641146545069453123919264998922222398185637432534444085896502850780791717195630164338618726877384683442324446196036010742088210431984414352716295369101477121993006122563435729826489956234679476394730833986560427129630394032067548193099495105418842564321183124287714896191700837879380945627931929739471912826421178294678511090247119886630980796475452518401228162761836194619147930500586283681935479125950785918691277102204364181866054637157204526896647605505553539559032927458850963050010301325274747556208684978242336855834863705026485233142837648816686098250240475732843482197594805744762028756632107495300659222005029244994412353576492940834480228504180263809594286171152653881013468313996024983230930835488107972995832019069433907603874376781984530026757333711893981588837158802173746106985435195947216572885114131676674787573142203109670296011870061208941362599038108209867341774451646130425416284436332877521382528173442540024471349926883178450233956158771758166370422393878187598516592847348312753900125416189073493846005503252128812099641311845591990041096594475710657243601866298301265035717425690521164023053645479192680348602170977128560013757584904551006446851503973408589321855719832184985425699271630090168184664615154900020958104837034417075921528763708080823370098559321711913836456256454285343804785251773279726998841899918619947180902828190201269725549910995098655074615083089820560775209816407835134131264179072638591624769635090658408462765903782593998218280599920270014748148029451157035541090872761421135128691149586732071280404724306822992423708630421675369020680332087608906368534351416662227067943380215343936343780559427238507410472218277573562047000766266346771622497969814719402943299548997518849429086509006766746018404544974110041677250425721547636022265051259800692153921602694560103888437180073748455891995909310183896617538462952275840640727795457385396479574252904634486698199472305665750814958804785461894717567360033918389896605100145841684578424753447569866592297434421118245918875004803925913365428888483025028889357624215356742182367037326339827306235153503335459238656682684902870573862011054705847296984431762597075138631019390019664434495890871999298967230138520654764369879710882967301505018750166937465677638655376050695490182627445277311736336487095721525996286971396812143085432552975107651773511773520065541431915658884635610763712489826226074704353827456106895641183369654308433221642858209350756712861102276642616639832936692289008034245742814491024562097406204980081309502490474108863398587688375497349456460022832721719701737450393614011612929226870731587037475360244400617780957624170158618221652076435550643189455917116160921665811285455397014151975902198659317527968076155591669935478035870334603053862241065932461956719566627212806067090105194700133035890154442180948409053625000343255682481127388659541539112088644065272388900069047870925220661825030972806317664646230103295083332046874310081625503713648057037895329760843717956111397860191906234625060870998645272762357271291164325366275067918953510932720025172204653274836641719360173488458947461311762954397807620920932212335637865197225714479316239063694040028178666566794139119704973347346814147494066512426536105168433864131781299632450865166659684574753339962477831812408965058087390417747597835190487243215999490985805038819066794730899462679274051844298315523993524547019130059518953390136366668486123589306230031990180635389500442829056300831627174225739727986579741509440435061134555066571902265467789216568634271657877586425270214534023102152312307065090539243951418197604688904489804405819503975119090315613569829633396524725900864221442872007426685551241308177570907671162463375653373997122311370704668371836045459533444983050185523421849674126447162986615295878078784745273184755949101492559927522760115399414730746974578005096578169768262591480170676439446271309856719129479513357345505889129034025035949174001197152341540337208416671294853517390501781452265562333395955302189615889974831954589585803228473274635776454236289455262555416699790665351322035357449058632005303923670896996517223006938442378591958454426254982466864350867872122983354900422429785931617082028065533133175230956354622713956956597427888898131563274570683971072092522838175607897471811719828498035968415128150204432338005213554238784351995439316252109899321881188344639528577259030515732495061691009192028690905691698110494254556005140883790024846204382099268619597399500905171405513510167548010242956924331052226528802297733090451982257763456531648681917796446293732634838872799030730056956101744828312083395471048745700488584219763854787568337831977994408114368910565753542908679538743562998240683828159727525809742970780738165475346406017484639913898310158325443481132200479598566312620850804109666509016949166546560735572339551878890415482895823211570673530238870277521352904383173550063788773942779877261884458210033158770927814163959914425877304704911685065978964644381981428765574051393573077199385993336194192261311871627513692630182629945426566420763571395999034497683772392166030059550265436167532412416981314752026177218355164515184940544860509152547654883882861843674751348498203734967514796259202049932457807222136287264355558132751001852602495979620471993271021216281155196493756562962518102345041675957142330018382563949754457777000326676583652772244392990635175803751371616210338023963635797419372727898577420244452102766137435594116205509206197042126635620623691065753481128122139531665283338130226386437139768709864519485073385295965854444891170012607895542118597577820898473738637443991046618777296301158635846434118526879334421139112451036999881498942206451719010104830815801654672424273992163740716649689210065579990563448463236850836881210565159949854559099389068202678471898107057105659252764619271795740221140170395182018142206990108337224842950197998970768277114090034608423522669545774977994112793767484246439373065412694194167567872486350158899064135701061872681700746418089913692655680381810379955625751579856271726541503275059635457569758529489433121608598853523783612056104714204918447258571062402377527029139167127184892624076914721985048556113092341951296278185563003237701669400655887590363793400316596065044760841976197454270202989940006207446787865979495950867115274568777657461652514431676749056455016774506430877496436713226543074990526160477955867835820637959182420876504982568821118994380772556216396452904045904435314967091705511502967526818882268781236458256348479244612471646576851819015451316433532305635144242568885734013768952974440950570841495829462403771337157540117830160167771732630004491040491797566848477056433616136365955207986219034744660905809513157701487095376525848680348161968344815166983569421365598446533134156637001398570849589892069152761841732413222437697212284640276723063746746578544327223909615426262046658125856556361632475607734278954732653957554107640729296674256984421290453763504304808399626093771961720811568990931392189189517665475474587049172532588737583653785864633394617145211900200719273496021872298272584306988646433718480610767763780711094769433469025042722219112622741481778808414934171236121447001728356437162434177135336096731227100127592774382356858791770828150168390882033103757308394919011548046365899505552377087467743384432320549444917599548755825565014474292275039764833171923084181353323815673851758262541968991098034252047947543379002407116671796263639280165565146072940007953473488331316826446490090599307673346975542679258255945286700652626192683595696389649433314968859805858471014566027923241214720507763391639808061273889711338780106298369300319471018072011364639532855941006408105171224663846344517132989373223613595538398788745385863258891206192378001014322226010665652633403284105108976807217453673665855793149533808292315878964590628617182922819574069226563263054210746695073402413398891806833965628148737526108520681524409639355478947543993210045758273636257976204747147957930899287886013407058590516849964212206376521769943248660357133541156613125566637395581183289116146113717126287725066616654667636135823621354405113986771448167383396245707973611180953223870513657381394166331607222185177911982483881272818604134573563469336629026300912289544913303823104141571777824983705791847193824637680242374030868830269832093693986701591870169532082196609048664084407606932750016853635956255638289514412615025256315057237428338695415023950231158963039381029253710224107106844128150144162183894589759720096142482509554918956347114083648829159994135499217095060805499490184932893655951540229454838448556981139470507423841343131234260681118197271933244762484756757975960917324284156402749227918624839481487679153948550515687886276500884332102952890146370087046215953819590476512835886100998118525117981791311156530843395325398824283092747840639120382822501160158488864098972435565255721970019662322078907108653192256782061495191618372058790835748291327916586387210904488696777187830434967958722499970775263971719798491336476037860196874320340592193142338793631639270741795377895705278258643749870785602432544518992913950337411714533630316377070665142827770528927797752829780997689414191411878716812278419543572703514337824819210534788819505318608734505623138990926309193902729425678797451376836954734947069527407961870786889667905986092140827116839252232543453949636250035108836016917655341195824916660794599636927102185807587115411740531758737984311392798076637460549049203033205937459679049597516173648035692578742047968056746720306883777342021262566768471567786425286467799560847362825358628637487040824252091914378693628276516268801602071566355534512925352703625555423094372816154875867600690657900589649752747659074777315842189742813698876456683746229232391643771291335536355876066716299300445128861664547048305923811395930667803880579423365518147685593772331670318995708013435441606563801082707338911561168509934721459289108401878045716886712546430177896999266006317091780975399464089526859551379925170610068785251052828130185471753083690949333504347155291684583862961711371124344245974278117463350769381077837920928830306126405150385343268471067905536159436618752671681640155750762060219923738002041072623873681012973548298824780275170520554670776653706036440710157384705307851544750712972033891892856189100384972643078468392196164164485491191265786891507887770626489877094502415595363185953666648629995200628322987393309272952372492758340987618220628022670271669632621277580463502453241540209090458561111716335239526270696151847944851782711686159702670207980981781709850532876426084037515844652229169476757602805983587517617891467285910535313584307136619400317060520500456412989008973174721886816840851629677759750226652005737117312640550389933525757131171857488089593205878652559110459202790912519827484825782425305465447407706970430561621239735396106939718903060716283375632652078063930164316107515505735495901577758943060272572055686804344436551638424010078537025017294423241867267009769719538762787938677444325492824298890478239521193333824779029494481646104282109838283417825726910402350750999826160759716391710792918196766252283940666655039822047129735488368488118639919612550169919533191907795980818331316027738599494058140933706215206085930209832173673036572244775306061369817547177315158520604273569290003565718884955949453190956587065576224986946979855896721629295495342745202533134615863912256449599221118833694862933466568562962242484084422874833658544960436173384589600529596826680787960778563871952365020427032512165743566361741534060989203233070993291776190674709279384548852520792199276691839406951277153953179596336466121487560186992783037864869806953869910955677561126365568697427514597538583125207792831940652337324876889417359424945263840670295472170789469266548872122944297769753796017206586245308893765009954502383148255449603935092560352564054155869888842406357930115677294501563947545521940608884862104618560246996490939004322435162607159176018438916453492256032999751757979983751737833354962965526059320240311186283988049691758806164003007689965106647957218101921236339782294253183233312775039519861296849804755567204365344944895491830800365545010809886812114656168998047060543575971304048306433056065585619666286371695263747281991462952359308174234096464772807185280892439784228315430810818650519936360507046858219389263203583184684304811972446091960824752036399165434563336111724870110050447696306965844585877079363645433875198242446551196477932508969984793355000358673223355027959741991519819751360102616250971038266726540686023103854624322666079267972646377798367191933231281459037232576919389176978334077138558207178906463033138430119300810180063502351108143598857787640870907142831904022475217408293636343369884888811661444899425715340884049058616355286512882372505511076876769593663420469615646414127973288450664173508678903746884158735783018205827923622256572104674085546565385899419209514324045920920342331135821753033476163489474416247347991217227798720390209638009448062790855619671685124783909453220341771914734915077274088081312154124784746499007288349262396381046652728892835600370626442878772054368786052083960857003516361309166861922311937630740803856947732299624307192977100991780675419894489081884814951363366942213052803530640873497551223367948356505237713875070119286194161797971464596108719942655977541934979991833290777001485705738675260215507930405722019936349853180440360539619762181873353030925950396996070540269876467660955579499037282428701595534698489134681786574883126482701015854793310887278030980138259787880511393619107460696562811050357997197151958444886006538223403249585382885083815121212862605275550022842927953964012904478113837974154157150401966416280798102253365660020316203989386066201503946680565419254543156906431871734630475816541485837298911099710256374479123212868881028074869492781500245384590534485294647743714515467565623357827683605266617233647997806522020175675781550208110238755804324420650290314668903904405279671487235217250574027156020778955451268776458115014827597193724577715839890846729800544499112579232436590460280550671991700373253906211112722609006163679989526471815674303538727356273262162046870845088582630374328315213461320613937143190655949796421136246339940062479526474044113079317556676948200175393593939145327842689719002979426420601393708777599849817044874712136836287416773344558124863113095769357229718654797829766916884833429462542026242445080217141742680729054410064061007653301638956261964202954447121243008294961314038234121876609304966314151980237867463088062069655349186360044595327426211074752668979806487280584422278450413250347639027066528142942262785701079576458851291470831682876701564110172377484707565774195962325241767006844622303285117494676939009901850560482319604044797184324966979758959877888825183341184328040711842348924753836440896472905017939737432800773301682384298725687212348968446913129874648607071470214733683240058461804785223026959652988469788453173227751492099135653926212846405387518053068142921899409513870272521075513106185672912916584000659057616599102911407310328718464229579542796088266625285467273376423314822718179446180537008078266011142683204398931936138194552626647444139061747439175211845933265357636709749047222878772869813383990119355254781894194233803187973498651826326924124736961934543131014142408028806587769649419574070240089674185255812834724873384827462675935296515643595355803200260102126579194797897482241685452921454602453497183582111076511312421849447499573237109770007978651434708408231435495547084530881854116974397019651353197443662502223274904393415860885306418130190654042189705985791889144113746515628101547746228409081442144704514179646577702978001413577233601804940917566518508519259682619884436483799328686214519774430133427921525538019097274570276286682329388473272447888951360631433077474594771782754853309023325225232077867984119988270243777517458714996095798620579300680596939361037946310999095251039684254302424234222461783166142885598915671546810039891774677815353250470235176888085557809122404708582298288192612420315984603597867352557676898463893473349608458037358221885189168083430320751078781151609376557950052295154577614548491081120577490048916075774827510899833058691292881685447947628147896554592865265095469508196633327865042951621899005073324960711761298395758385828119845031426639314277664156228176419055888809172061210587760925749276564055429681715946409984892742197172026183129587763909302509116499587643682362754428580946245800829470404262037367465286916652181433803579530326233464123396221921579421664386886565901119645001210175990940150497472840664514370466370036966418849920466861160120226683288662712029975427366797056150618361710627443442460582620582846239952453339163998817640339562764512580706141344375287432485770662177185630082559045367838979293132093279336824468030234388995574885867169099352841382689836425816335178755298482709818818594664428389184819271187900703146310678764173201026099368058918218998068231770278609158054745297669405926971999793075173018106945365849852548971449267930424598678903374254053356564246842760458352516807261093370022852097145519090883675602212456052138752652531317520820334739049428031039303905737558104895448155324539184339120076228042188377091800089523719777730170186556132143581839649256186828278866984411563693345584997088221097563210412412848828441942303580966306571541950675322814073769905800031255363714573845416463619882577711758570773109340058640056238411930683379732026111598195890037059092025706941000309600221003501030033068768577936069647559939223467198668198611131879578837506231710107000867919137592849863981653399737880062957831610213619521696875751423493554974748897679239174419377932625267664340260013982963296928664146830492508809177323171646482244531882467103581437004533038563668236586758538291676947280296753137068019731762992446196524975201413241722858386213397461159292721398637989189244309009129842505550189176458509937885353012291301246716873158230151680997670956565759124372348277503062666006010370146128462271434490250782226253722472541535358373998772015291281698415299054350220476394940685390293405897327623523709664519132774055602234157242329614871997636972810609206840781355233612800050356228705109040024191410584073993330514973851482181369162452559970267312885748097950229875338706021870124749580133635891249357341596585405850805011689369287463643960658444164700040328092498398017358728478277085233787800410170297729703560149099287990421296481418503413607390068771087719554464557667039235530549596150616518675861954199499798694304134917134017935192432949094496466775053134098376134672784963075044319923880738606468615476498771439234772327808900011180610523208356324461436470473660218364329871087711653616559419096809295137129539721716204262402427950486572210124766733012046073286383898830956093801265037195527025617457080090112715203470749987072599591180256573601022894527690106403414073315047262252853872787167003012806064096658040944526639555051455136816364411378397903354230484010125171533630105060614055739140077536164566285303752638561050955031963278985727714468045256170080885744664923342909261523291961174053793590594559354861641410275422923095083669625384814832931310923440759109158221597811843424194294460965890130073365120252458437603782465442951610532289850000469533029305158257700233684785903373096561945549250870528158024510991212340672950138457651504291328940650171954752788640762229834902381823223420543330792973668879904325465691042002026864761308042469381403985067541199129806576633248946338574033670222189830410034614798987993057841653694787799060954852175846948376061084359561624993916374274956798403466699745657795800871752312335621430209817963416459066807025620289400971945451459027645031574958830275609751987372590104695573242448928162284225499542429549212592788543294120378600503751277640465602033581004113068582084208468447642681029366765676841546669668221225140350338900949686683958952393087737466354518413531803505183473942279292001409049777672804263120897294284285512411883820695046733366000847446995583135851343610927919225791806026151649364914754121597515340565248632510697610836493661054266763657799422921218837454101370549733557544430068990092027736178152995575490775559239582965334737125823727251622214281429116083035685253243423536531995349487241555199500694698804493001405674065412688372404650486486824223719579296981805342470285438517165098399166477421493726525782550051246168678035926157745730344119107500798078562147255255226548488564499140552570543029579547940416633466822908104252573518443631118799789586367842480250170893324060009481926420540064266250532015452210782353758885126564574916248213800034604094701820876756144075821981366868732838259566375349267640734380859403014380395572973666614617337712044961190633776475461925907885062586007381853093806903076029754462531179069546864662410231693711390843203686767743085524651914271735494469311191801645942403535530815620348696545805431528294025746121826676707662333523690554621400666539469384927485476976189794905260054080275385645599445684218248908736781671549486274408257625730971567429352367621542889785767778392261491590588241513975882931226264262114557604369678492989727529176142108985464967833749977466521160141234834404948002491094139237776040012204106632102203180583975018599224238483807900328757892884481528942666491807503089818789267659194622397493212475805155397628566689171360635407055389846099299016071536564718443312197131675024938117908754709277520496778562633780403901486418053371619582594117688675765221453591813242600420209563888334980806604873594615558896406039906750795877084007951698577712529743237640696554718759358378724672661947250113309714671474611134889140562364138170052237740269521655091226960803821106523611208076839212612055855174053834246988846050520607769856006639727298440419385713662214183286381802702550195947918725895525688264628047078415568985189098224555752455271675939446019023485491597113337554781242011380976253177208756123565566764279320826788491185011452789910924414231424311193901667426511703043030433820772016168400900106856607723042210306253098736356626020941842779102997069550693412217908335081130935107131241280447502851402485514027872802706744142894778663409767424050234361704165708443395670816679458877013382432033236821848253621826489051773720072357235400324507821601829552237277252342423422313139174788832397202760146816738038787449287724652608943379402914687115488749733452880993783212385997994805111282329325095125196456546243452449944146523094717838332234765627313840863664699784899490286161227111213490417833424009145377613713045196167485613522039750181006645691723031955859456423657380271390112177952677814250530026453357260373283086297408570927381379159255112021993532742984766084188960109677027517081004457068824315174360174253137203256089921997744122701170791512471037158997165002133834403885136137588364129642459565193288111230812847037921790889685156893517853748796539317688922441136267854886748210220149160487539625412681473999306360090426075984872567785876822020405329102250202104817864034629116100741835511210807134720502650474350676250961415550388924770314012560062599815300474938220253687282501208715256993955144338629113039557822554627955361394249700105622042376906723276243168976671660883355441019701458271701651598762241486651836710870779634160662110121456756186556474602734877558364538802242660318290760298212117439083857145759623768902733794181645555146979525319980399406033591649665305176501579286482894862720020669498543676367326821968668986479109691340515709182129808197040245845498792453157279589039058626356228029179885636178544677968267156961048069571156425773577319958843460137546275761270588366653704212742406926770978712679361622310860159269559113123769442842901728679750846127275940120379124294343281590612260774667169177818491504325778881443253396301009875651427096958509634668063951850145964518349882370662532608242477767296612981992047574451349178511731717084685876567737811859841283074077816423929889984908080625551857815390572489683007724482249013454896523617337269710966997779206220235498746162895723058467453791374922343070945794099901321416197427352267271042251569159830769894919726823566896254425779257411006820040992365277207115313606682307870003141574236411461617937156560544823665786910386932958317933037831275169829184759213223410768322876483905418818243649483584737477352579727286657262743438477801740694697806821153321230629934688603478456694690452886916509068891842087983663111823136829234891355684521847539521946479955169826907747211252318657331142649002601210732544461847817625526864768981549306821427283656415045267813288901215441386371495899116666107523985729720501712688866072541180823388934168912323075383095345795936790866441723743581634699671380304793290125303257306483232948840065873900307932034971402420663844031942327515042845608344656582548874207775490161708951457758019778310680099275062509192244751108569690809118687253131285128537811883420026988729717832297697934423643168595394249573087710563477358852579780982052774845473399257962721108705902312448632165619492002826591522798931091880798868324827568528179317357790494373102770620428955358668618244299232137702831381615933437334535034824919134233858483843434112777982930565857744349257296610020057027064626184847648387445972643155353279067858678176715884708256027158202996593660681593837269833433154498086879614170840078257997623550657862078470786489493721302706998261659008140548079584532949689922404268756799261529346229561060843317286734973003797941573575029509345206661446975606066746986612189472469652245844872778658065387200122037472742813794545071141245696495321370221039755002759312411319776602494168711631541520343733535559016906062200142335629607097837385921597991661599675445247149192836022149566970224704629196316856931657282788275811365540619657278433721069280079681788896292827118398086144680601542125460948674340143731386287690249893902611532021246430702775857101577926575825673974934777786192154098157156592323735610821647360343123140444899151232064527259684931422420696901184482405247648916828686015722152750080951045134491201606352381025183646133989567908157960222173346771054195998823706741960249819358331719502469792003421284186818542216343421619344718473139247323593210923026393421948246322524026769470432559206366057811146913752489075177584717513684061158402588355383864114991973590680610421077908706227162217441176787833455783486648175721636336846045407825514325567944563398566721027843636203259290574535151119791276444384848771355751684833992602461425491428806152832538855915506082450634830799295817476080312202366351983071248271573929074651995777087527754138766900069249533306142651277678165371908855609583839684018927568017703085787276363858212104863371380218093061570348622319093787275249882445320508964331499551833725937584626304932953074794693460534827385670376706823470225056999521553236392926775709222987740413857700124259808600617318929205109820830246823611466824329117987522019858350549072047560591896940161788106135810877391796605100469304455460180797644818041643947109458631386468412511130525555389731124107147296686086017880548836487853082519547571461136831375996510267349879700385850416729462597604975978139405441177951292002213699743110186559302387458852115657114931798762415989592260917091259495009250620909749341010636945930564443399354771208528632515290623825226030432137158638622245369273502627733726062446651634129337205790513739013763483677694772132063912093000267133225890672430952709690495614707363808088709525923968848834791494127449162969231809632390280091286257434371507624982989213448735997552345464359018484400989562715003984266658929766060816093397520032232515330845222166804204451486956367439868047268290258654097544060414759698611359477307304066942671935296906522869943884609450232979488237921885047269644804708599175195291011218504980021518897253337397900514267462474277524795688144517802886042160198250356530515799144260885326307785488773927171412816699826492229309772436632221470898722229800925456668456700716156606354387927080218913350296711242679170098610837667819810689781372582568013087764926061541942377664865897080661090261434643045645827070630701856730313733832996420789623313604638142104270130444520534270949476044833702003030180691142416412867275761963650432262417472189736010870654960190097671597635521716794121773787216248820382294889545771901438169225171344183795810956301127342670942769341881145730643079805643096145130992153932919989304905698494748146074540246486086698475568467858964872215558273627830167312451754060759307328474629264838781280460827173610351775891516597103797760586097504761433220897982549473104398428025251056069114550044589098998533846115915245639053950616877052641593489067570316200602419217421201735485312464838744712494226121554985340555993542353628821991452215781631669605662057760258977237348404080420601171058242289184399331803418579089975871121784494767691054741782395600088958715225355905966059614214615956168030674084015775283831676557015797300993381536380365174284956345256753080355539808987114695150327107075613735885331660336516812434130137596665774400377545605858648532913038873762796595376680719347008446447809537847154447054950286310410172329825744697658871925319464123274211619882938439167265526111262347295718332352295371793419571772305903102930875879896624809124313505736715269133702814576029286940359420635659321329896885548241813500830189881086403650275631684470558722862688150528934439134138097872982416148220449755499863062900915000145785774354092580738769846569702146299070732173602334076128740410346194124242090691228846688456078014208330425527527567281819420064682812590626415993760193741821794228568187213251575489029538601819282945005698575559977764291238418475165271061744800794622185603083679054660453082823450899485900036228855230289987235175862342760980471010816290709656866325918667457654618195625456380582023175958884318586351782274217288999401124443575683499597016206986895875285610218600859241209187205437825301016861585302818032072337426552337323015620160905074822033257896822917293312006569038904826144316272436966412317648769809600746936131144084630612916643242131396764151821967842417219187411745025435756689571651490556158841761098388004082146077813375767444003514392487724517506698415614108892384576737539039716833083584222732689475275119686671985001717430852711833872485194934738534015122422500568196445705118083735889191057453148538532420735458817423428793006564718759420700469213654161395719418936661485842576817306687849159061312174117159442239858995294217086151445624684708129301242302974068088567108405167181635803058517348152441107195377179606458721453482389079632031094115020421498866107433764182522833533820353014260960147724941822288849391619541336225554666523261554097487065455396685362627174627416993892397192893066011511460846496463446222377299914902393924894731080681387303206217041878709140054947088344338125170134785464343988975387660016014228633365325470276996082676236369967880753914597564172572466599807947421008956351802203431826850734892832836277951805457675265903901683778092726017638357970919413165000613874516453608611406001654321617176213184568420165266028641216841251975539937935499316942380034552119741473648156003892405847477818084741629762342698113470042203044184853919986272377056205576261299039638086597053394734811315835445147421164853769637401682508296792183856909098077615124371419628503089696643986234638624270631943594941221538539405476075812335599205782532867673053410944003532955460935881309247280569047779341115864458788659123504813244981480201844884266314860037085152423059400979457263357518396224807415754561304625144050102217069538902843515005235898372971021042101023395218639400436384835104297759356142282331713972355362648460490236926870903806752881718910538754954841746545364055220688062044109250448919654181407489723130054805760261962337435266451586328285842326909175428660949939946299239352611353039751622553772235664164229351187786715550764857952183071946779152648365116848668402629204077038674319405049871413486160924791319382888558681080537891034242089069548577579296437119698401564311419337578176099773875361781873905328387294118484719474399394242637206816264686745434410941190505776236316601532576031874206469427739717629007353417821141471476125008829161263260974658549735456142645475878470825322151634172971180363134938281941853130451040097830508276394244713266230219534409832054927313090180136368645077760433781860646752114982867111046523806234310842813442447603953323779711150780268499783090172379479280530316237903532477425504918230060065724780365556425907388724349755667747757133481972196054592188076025078934786723177577434040371402718821967863261214905748486600337896356054202473291798285666128778216690110990672678313408782661327531429669895466103816946407206491068650979458879649204337109880043659386669564624801206462664823297475251595000970500255017658995666262695037136373663827039516705457955174572545817703389197717169719100332628875255744182176627192817593769633208230807209257785171979980623017550636454757778558232908542479613898468630304165255918835176633649607387675994493987562496995512416306506409587244911882013306178981972042248962265153106191046998333380927468781674003301632874441653577892981339882620053647946966839140174308184020111185126906473996975055667874748870512023778376247616219498912298662051023075649845102655455124982452927354284176181286754742235689972692359243378861338255479247268498028805788007698105487995620426687169001099173293955604909636446245090505904537707535328775734110608047009340550752003057491834009105141982470284625242392761696811481314608511277465611228549037751676322885891528179260292875943981490761197113333892929349262729542947752319222166902893821940094174013905846426281838578626985993188562810065247637460880460424309440611181641441341342996910574398690709569880747877501214655991652369993088284025912835496548465921081024405247720070635375682596070166097057770742002424539651844804594027071917108924116438376560166911445453950326368265026393892823403019305436875643686906484899861976663425872071729450460294860157473924530198950402201691186639968597379991880477244619034689592993125011842849595186891119413392260382737998308496259234561396740542230170599074005680487777448783714792708917194641036804161147858739053007076176281820440917122961869462090045712531325334845542795097728034541790508192095726186814929168942870233373396214605596191845053457371450505063403682996195560267582550496390057687770866559532460822706567519776222308046126238649755711050465463502341295436783309584542865663699424009270808886015996435965196347814808934220088491280290387672796607142498919517929398932271869718019281062683650774291716830560695087618244289389519528298817953595120408624343168723215451004296807652672072321246098724922940203574896362350494747807355778283984854428317363847101031081518332590557656684298054800029511714993606861011383407730531941182738543264949421382450366041585666831276662847652610018376247600547761344330527162341260674067741881740179793175976094223459796317834068512300881092941035812852835907136887953185634395685988927973762211158410014443335413390899129910333684866460197465309496592050823267153482455744622927115848908009783920983007899329434445059544872534622503078411934682364385973144884140069191541771724124706894591024041221839038029763515150972830366598308868912512830612514315716514255336598871549085369161907822833095012546618041183456277815873904287540780556754746698566859780841649797520199626487897979579144903562901666187307016608147171203987325942223984266691493323898282929587586656047180398633112571121658380039635890026221023482821093323585771653777144154361552141067251482607128287111514112125932998270896933139424471253149445813110457736763167623297031604504862989630056726156899084758326076083498286677554434047135171291007043095797455559478746639804137225305669345135318881134576658203338792731452043949745231774851974140285676452468887738443269283598676852304669611735470111144394352032374785038004714715514394976811198948264989451200364667492796000427992100939962627807756653243877586412093947666418749070426923853837255076822751359307998663554268419394706375168751649139452122732791677180581983813242349178105155269236760494390682723270058981573016627284372273538658128837935227488508792790911816658848324097090423211256811984623393309073574481846393049588106061153638663083952607086057176982232171207326935613799768878137544997712257650187933588008627964017689700089980458402632838130415199999753666296168505307945628621298160452270604753223383894539445135508853482492803894665104961119255892595033362776170679254961486762554063625249432256628749131493653358330078903750484063730337508610262649217001482030310164251713257332694086753997673360636588846516564306392637727427818893043754337437405298854747713702835319183904439624585080064305544461573962874083469081744287644227825685052318284421027642765049620715690542315786771209627327858556097169887953084892074444871727399781316382369109644662266848050823367434325228392806014469401602089390688809423198194469725574444156068972432358689826886006307818978408821362840984238209771046124532440070960901325736442938719352612784765930283921257864654734193995905300658901095696961445147373692442107616094540491824132067141222380056974077451699719604457156631910781146938393309702383656086342048097125856751141299955191545731241613710198991256471550933354692333965135121942154645079083857731616405730371796260634752188898394259532314794518807418821722065737967423675161551836403079439394079086893049459094652419931656023566705149929394251961252741903269539406438920891516290639901902688409608012773498574464010184019283285856579794247028350265021570366482214275516111311861016205215141053795814764026048196779036446072610666190538183888664926724624259141316278737152312421090271317459496165474711771441132845817465642733842617193309674026324272986034007944604999395901214557030372871412025099625538374309944757222673013149467843416082862264690480996710511327740498771461689277567867766528360042239466518218414098887136802078793152924368495632695216056282650269102821782189951678292879348094018342892626759255408697445292810027412844467971545186176975912520897952596086682185999686287736398228865342735662551071451087190964060388177425107928746700376902456485168002847140749798032950184125672666977349063767034756195698009355870048900897709795220742272352606284347369637357477761735927179390031024604933463746947141132593271932384560812862681445253596413860079552879074850613273225416511602686573371147473110830644767469642306145473426657460466802270584872429458917363276686013936926638246629402159744033039586693763114503703703195548761046221538301767715209356370101087635705274938599703421766518262614582214950683553880140016392008166306539406809772660526830916679100645673003913605644109372848459003750181263757078431700092107596222629041021703317081671263352654603167839513919302831139425898793004360534644359911995946613723473566676561612157897049009345981991922782065571806779888912479307256854644942774890388261594874204673476402902111371603070856429933471730579237110248571343857783165961633609910734785751148246153153918450875097273765630675680074356852329717346966439438306331791153489152226704103437220896713813971650569418184250567698838526728672457851765671067661377876285204218459705537298004859504367469255748650564031721071359846993387107541805325479382837149933183016163022102011419719636291640669954421171556200186477422556097010322891774483501966056236991232154680813648947612305642127508003911501908618805930437069947578538766872620594213406129124173572378071210856861921544435484528825424647170224461475455699235222166234657077327237804443579322409050556325683612978401989940936925360648443094789873894979238510812173489558727170175678081151402939745373326746411190691495660966679480119454160764852802588374716167449162294478670659089515091435492945778803410878059970508913948838118577472639900663529979986451588845629473403535168663697481440628281021046811081368731564477857947169942289621942198878940321377147383157609803292788318243015935676857524859827552899486288077396684308571062190802988582916436543402026536975873118122993543679978613248043621757775495092263830563683585665321230279846900448823942841351626621801844178484536586674497855569880409393146079490609452014662321468324819847071580411442525326413164024460211009973774512842541125679439472417668252440032216057786355492164933888000368448038923102354461262339296647559969028546290905501652527875756000122329344791678764977377222919549487554999515359841351003090982222467204607543777672880476758513650610838527431627212803899679405815347714331704566926316856576045210976394669003453599863507670856082797280476098769556398075386649829549985446888348687646010876979913462421118896958139652400622776428507913544294368338332219943610884614518889990383509776085856245876709539439705507970210731303383458755385498703848016531750151245137991572483469374693320473000136524365582223461594605462276398080848760581829559015213523559608706582254310846728382890098371998556620132219451507773623492116768097455500218973346733161424928850319361501185805602431276388978400868191972907073931029768234534327265188024449134904620378267315293791509028064743897160181078425964057861282706555947310929279727257052191393004950532931769967495491917172311209954445476084986401274002706363994459195670073955347644451537040824040475847594003462532697737934007684322124584324202917059772416960578905216843407920742534270233261071351232507747170009218965751731941842056132010363235487391466825241421490406253320610409441257999318797197175151885051807988311678356673307703818000549888247999785433953256254632821273223303289393422031507402551334011751487296870230390639104998636622578207511215827881407989632479328095403589154145931563555303337801338875678312075535882656418648962828650614765985584043089449704766872975511222139052438997575259070543252144101393387943150415243654086009310348064413362458554972020202068865013296909561415822234408161063158813551817982219041525521278536863626083658759668208465872359996806764668112131621372421941253988950368423134960889225212262334015330744499529469451821474677918706706158458724613052810212999379747815659058649083221903850400710518619966393400077459110756429725468917903390769414496017810371478500711832380569291127129862451337929353525675671241516709944870253268106058580544348838466563362075007775667987182970671558277653852945098079296721121091292179815621439022093812846539956977839197939699993627350223590588105421347518899463559732749516086680234800817661443806118999208216000684230981369335067670966295849444771076194328814389305598990558227374073144000562193228064860321531036490192563180724316862554056377733185480730284860463651952602836627674336141820650934700967541701977399204331859706734161825889555051608447432991665371471596180060974096324747885672737293591331319262720311195311766629920542361626443896048796187419091786576363077601717219304368000182034480175956444038526961274359312677177925391222877535327646111515841609964805740622865136977147253972808923132577181888118533517031953885675359856351231869475038107033586244250275078527952166123616848936575506300165784890934608108184467146512071718609981671608672491859590689540372538164913914858161107239726972031695698877617039627337390588401935216739378990013312579479074502198250101779879898763976290875290640442351306954417981837200346041289983118851456808609468214938084949900426132941242594341168296318719957192092306586313205609153453556291976123785729481492036755584301027204293604634433582912284285976694420443113251762725658005337142380370596980850730212422503130104865197207161956126863464330846672064319027922805838388620314638837734802962926300858406602015502286802232173298839361657874027268847806117238389613527865905879278610922181114418323842185379048857219694967693884458794268266618570099892758210953445300686494263730297966930642185605853615469698175585448358258601628484105007326512098418539829391497261698082650340153629003931362354895284886832414564976439018966325791781027141520809483178680402317945259729492270337432847737647364505432697784096527031042442286658083733185896612409234634084784916933115942443247076435562813682884675110627557781169227503473121473642249014610449609194115658211849615889573159423760158121229743364636322721740799514924788169828017314724715728333830437913045217505420294725928080696655024549511886059925124101147067346531132464584409688027749576394378834639275752601770909748234086965963177307182184703076602128089935294803150920568514622787878859567677801947536137070566763853142949561246465685515242426717652753455773544063002122812271971675911717860850184926212735482799413430525461351980120514920221802708674972316246537745028593643847740723266768897429862432548651767516356774797302111818986850179676829327752966899326374509986380425213162140078673476392440663104524865313471820047386842978268570916744753826624278548735514369047020709054275752117113948764515498983370886428531469761717994331661868467064876156910959808495268979143379607080208445966982432353901883720493987585328213823965135335683496824388974996181480607291024089897176132733975229964802636438125067980263878619422717620346105655748073319284341701236430708791667920518669951467111557267718106117819469110542965568980946789997227794368329491168421872990338031337782403244519974564989720887663506687947672136845780054833494458563947425816034634720819811756128923444599842657732101567623405305398829179537967176238197817525845431762108598637893236124896258368617757800901723655545701558804478077964528448550429216793104335329068859677835641626553485898336227482830786114157989579354569680306080880732767467998103092641523010942342003985914103415075489948089412908738808469575264205925995169279727663905778784732830422847066588981303998937504841905438411560244491716827737446747375478607881006227107064323682825495450443696298048121453056335510993325264790900703274611907944893921948315476466001335408783937580121241552970361497002283463218766058600631602940497256742747647759624048501362176543319678822038229971241370878664938425771595226372705236346779891158560879507227106920905298916862082196979272662141380735116570840176579484962457347779446972324323099070946664253597736353234788805080821094210013820801966800056212358158752289417588783146923451227303265194509624216572831794917138312649710455918369590874926251193779599304966240303583395049279905547711309147787739137348156399955021859841631430800180066439117103071791007110844856180946665691069135873417195644580730363482969073745304922869397788675178182235356334862613148554333707047940812868943773775700738525076781521863663273192988152922371395442210118522432225422463965360631018111206086872142519949478031260443493586484749430472519495690914526842701719569377711352096754502340560763810527762618208895594313451868584049995861348476995831882964512493081743504474215422566925173382496799851735915716173885792476073630281307439273317805989814808995166778821867411428081444770335439965151945763079373748553515228179480459293977668038368908359567527732332228067958236958164451424268927760865533504809117652736401667066897786270601630864115036085309777291315918618861050183034309670241780227763692966566058068894693494797239223397174964527012254895214915357589949192554008256132114600941261140556752556606922480143793398513422952624167542178084665724471385410339296935565157332814455963661204611727741864287689913058142619731491844990575732460203540821994564701765514287699274019638318277104546738441893195314837605033670828677271301457410179835181908309413274980456602237356397987991435343594558671574435615906937270923869949567958225831796749765311123455990666380961551844869328706126549732281060695538621983471517990233682902492741417816152950501076448520230389720117058374014185189073919635700230639499240409764308504987393549297448321433407524599686021071824887656253961436937340853740631019591478360520940754085536792805514770984201305833477145305022428988346160872732030752339279801011655232845498403237575297277169170473729140442951892047240901491331309769290638619200172093241350068050255296989169618276945025447429788175595703132840491258794084808826962111670313659374652015651154041200674093002123447146011085933628758292255727133103239434536472420604787420120689848788176337990358457005430651428030621267699352257618601073269840328481711754585376621675514708628103275857260006250365328711120997818705805962642718215136468097337494054945678455452723114187909134616989694254918622593426779360270868537590974338561938537606941179027092692869996482543795187231158598201849243602054630152134267939791120910775502948059873814082528119031906334061405165191258632131048730780022755005150820683302834333706232010981300180184163315270679156376660205434996270385434010272585108076144442480045697646437531338243447727173371277766121874314075156408158880462474215995148478496019792409047382928444496629253424721592359874590949185993312814004017463870655315530382409012173589031141162226250456863657947770040351899881243055981829063434605941109602666112250764837741697666390136113209046600464840128386382509215896198772586157618392158327533747131532400551034568027090153914980009155807549299784113692309122178302376417158162991319484143936108888456660930636667490950685386136784266786685093681799404691260122088379423018542863049595818604904201796885315635230697680180893595646822389460333628722447547124313126983106361073563933724328663940346174172087273313058357516690571164827554644161238476574308803191948798743869669739973718501765835375702411070688129842713992104700654897161614529378855532010780591966205967080050371952512967634021116060634940826619335870124122608286466870532602735037348679976746384969551220144500639209563124526855102672784762021339214553347817622335386500224330667744428336029997108182040703126902164061623723181223515158861932206909703983378557570930171261748707270947997178834126956630292679169914026685384300473327632887994660461076841755132857896282881787466096442418853737265648002456475307608653730037905127948297016408071885667285639585090596654307406537916177816663335526612076207033120177148615221862607185512210309801431312934646630483341990606307336438761114652477602849731809629627481170222547250748172534766834529135662248559007436281629131985863261179092866673096725762292201598750986727599838971029525392345741002324215159337151141665439571405297193160436808830981413925711380208264909611733103242129945906170993234576726824273274516275245579156446063015238401403028521680235961129845439088617479040026084235208650925372830467491669676104450156748348281384293215888471746307312116379109780753075862841081319072727410208039014215200916722573258655138243954794420517406270073900771968793775690537882953766360442226995302701755176169082918626100864118883162576795402035948509540417064141505192698756835122796519473524725438296101575632705499374575926756102823102594667154252715194416164334380129511307768398276415148562514027316142373626563403280525838318836607218671479948301214327782655487203501419558639746433549400563691775992064996319559773129105445665772095494583997113534168966445938948311080336889571141797910340120895551494667758774806443139160380672082129829993088738515356065016348330404273351549943103588679741147199437877638058800932630326174855284760322829444517018322408853333223768571346000628068504122474373687192514183201229690461394047417014327371189671530080008082239187752492922211003397814821010040206737707353468903309075102876605383835972391132327747699104768575674093346362750980416597835840413811299538767801604297092782537740882672290945300257961898659552820317963861011530497113819439172541472814482358010769767702821362475167979261959729369313569042922718759335490873839011238462276580197995111232027851546361088687100906583913609296951153291739597670205545828141484687364617515035712357526480756249449620393401580748236526680498500489190742539533067446187734459630995956811757568991712355965480967760347023820115631310234764775148351624563536723985794823083172101353595938231970825893513873081403664214251222655867504235646992138875690594981494040861605687406215460917566020716538325228014204864707028799493145406139867609968594746679629712513084339385722020053775673740167062984975074600591929336781870861357321842492516149991905704507719155372421001723524099571108997891630569514088145640250645452970379863935758585532030097688372780071462388527997395480417580124963645831189537228432176155226299793463347384386475113334328959366211469068633487089745515637251671094986999443084776227214906475284318932253738668919238773806542292872053161960935044795472158535114016112657211630927250240117787733374961339643576203283795373393525603913467137793009287220429327919170445204911422096726301815105502793738790614271425883024198226855309783652547453009777742817740931361304703500364833223212197979506633160122527882863148649211305449468499380283561807329450491550996740403067389502416256950732704209065334148333985588488505903461203759292488773115761017588921132717305894867874361859835707658473124877412655673178656549801870189961395801196178391353017765137347159230460136492068873282482229851101833691462534822562183128248255041088045100729500237851631541722071636600725981327705494635220056038203071402719037316629234702618140368350016880581714530401715369772437222306681259160145951517969713173876349003982857707722922896102561316933039721195929744101962998997005044030269662029861987956788224072006972320447036187943296684811528834493530593932106539977194734689931835240765057123024800385160281262395407644680052557083644831169771154971032080492313624915935808239639949536426869589697602221404515199122178269797092032811799149200374743698410835306062604461425266273093037652507352410620751769563576720316494874079254382827411265832076664638878965327026789525256009880828454374394967522934209390615412156259642337878815318594333853696223525786656090704963726364294890492262971125679991629118739755770744864527531856604819872505412081291438980613857973195728004092829593336959312768125071807486948642787552367523677235780674225342670445179439637838642320758290916715096736946788943667620096348513696857577017831500596019880583585224856250367714645615628700232854553551331698379808007888781017078483250997320818422053602012649896884967826626605564227897266213356386989317541363042116778389864674517748835872016809008979228875573024394990196936786159244325300255815986398119464140538135136652019904764562897064076375455947428844427400637249267497842318843439409324513805426498956068945033727829182018023507096569188670828850926049791047479246463790622862303107673550324062590024582722259089677130277443210143620237246479464079995276299554228929168609141061863392939739966501498083745731363837525135458057383516761586833055165685560205390366636971077871735677291348561042799120581874248432185912536329629738352991552015846906820334453814710980996611208106184058479327503891454928859649732316392487649144979391073660096594717949413223312975849048149630804619217949269717020445236731609055404243718958806006667157585444035172333659064874713491911614612684197325349275886979635911268139683095001895180762333469680339062874854248676032739567019864377319764112337011475728449256483468003075477201093718813968078134249076586356800095895026369186860553314434534322717325725317471809894126043241881848760343332525774346656134420815823929573774048439851894233241064380995205896326850381196948282603844153452115538284050934972276292256615139939796156829666430463140116468726518199636338261928003060001909029682936764378824612275988215961872922282941035122273053131631742337128816064178012601981842804119455121109574018029597646132571724487816497934768021905123690412270286166589539224372523340259317829090853153371946571510601759800602945816833844571252864408937885321813234559406637572840928633043016703561858017207633010436878771139163373432382621540996080648747041001439982193860407704264961966974310323572001705605185755224308809209780561776143333279812330502605460641206131313406814631815768210449958434192214188143578138395105460248269588245580210918962388862704250472863405069366943523773143139223508673641334798811507073052632171738291925475489569166431586200269395215062517480945653766029327028113199299684503862580928799862623548173170360361238206711176571838472982718277133518332104262489475138954460014985693318093808890192918347285372245478044309156969921845841617207506949514095596000932369380153304817157062006974515050228817332332856149703749285040598139635159995205622797907659849709644631900613637455043992159180437478181405902702616639399035167060790832047030904962024362939985974114262111107234095478030720617977042624852054047103308967006601239366428060923805331599327364969322657860627048732971690819774527470290800823224485259103101355340419919938869959812068980193074353739604208801636415584065033162546022853221987825430936201030281259728266811652531683525721188984542123450459138291257502807917596067773783946832332592325061472449857263933724169032459584439011701072918092481072772759163356249963647067150289011284305954787887950589333140784553792222790205724825945020011198388169724905700495831591899812820442091879590299202277890079759857119905244183192061463210615831246991757781332399302460079178120822056887833801212024692850430815505117145191799600432830794832342971993267445861804910061302888460961334122421090047968363849846509869644776083444684217928787944303543667344790060528470813125423375461317524281345329225955022212461063164649982808218124510590663879581911014288294586319956987175776185457333964989165024050386957023188472378509418738070106134277661350460673917712022778648337203855645502683761848279457484980845687196790706495967654573522496913589047603564537473493123257762009239121774516184415765330252833944151091189449334120797485730444018268899984745889523052013779776815380172334233605841657110029742575272459216617670159040910644392083471508660725217929394145221696101775832646020542569917081595809445390922942516825225528436772590020888074268660538503090467509768000104058261381126841312249506546684403770820094203281075245362212319920510718274808053037709010959608151053549860960370165657832255626043248224157192166557698947373226920977719909203350145720614968332824769601208440349742642738205737655125156610109677134745191052124825327081010922845795218510663044472962770407895213021102553685548184944434639615944683349306662738058560973139469011453649061723741661682567009928653296414430762707549790006887548861272493894887558411995282931339015408095234423416181453347591917610951296201333343199169449371624625218391413862631098754073572089617096096246408861896186214006856640489507271468521618586943850372158874257883847708601882498288643150274373049427984442615648647873841968282411790979242828622838763569487099763240055263468994253160234967464463085309845584359558370295304282901867283781580190843046256493587971146431647251536662679006683741363204476578240470881093029360238241822475186583000105384451096387494918341184381635080653976832878066635705271586792290425228852310488743784889045095798100282492722832696091930324460059173585959492418085140396652726391288514319291645209493009544240784553623299876714480277013166227307858281043564966133157074417813636426506814175322949277913926064800874079999090966860000136020367507469442574937704553629832821374651976307883890421087572880015190050758138721686582784359968399677680808767122044654075445511899006087031996469191005986790337525534727357604738623915959570855891623994867242509960829140748250187389291698513352077869975830709660764301934108919339423723975264413562866241406962949555591852333593180450973158420821291330852123927173213095248535378036089472629248809652320890977698860893067019956525928747321186203468940080769160751166742089314538127671734365346736585885667023107363462693977738880428457630948619231450668681339836359760037892361249534841221465371978578171836972722645699218837776390963473169189314776152794503624254428353268295562680608358299340662170257728587052077255272667468758002378087522610497859024388149590059407191299270223191120996419582464829480954958396109702855924741050623822210100104532073089190502740559324109006760981383791369176204737960548466558558080135345239446335447063199101002240465272682155653050199822866646169065121725092402017124151395696515137669010333797023652262194703856940617875195076809595530507721988176453404491039972453934760258949903164831135167813632809934975703650866312300517433469885647671527005068183142006729696242904269983365201302679239786554441595288023847454041482511822290211540499429400508631542106559340891112039961353078822648456907732328239952825640386247264048395909582546995378541181514788507314051029074733504291426037323965681058710426152483444185760695059458871906386578826642880595856060285813749368374424634372987539458477861646428530883290609054964254495540375509555688830878252653678014518222412528215655772245679129831242919617724764135970041926475361475237516857447859289301587881161275112139651891475727329089536749871698762747586052147193909304501526833141865426834374982187411492781032923095431450739533325082636764083120915785439881063339735937087313542575993912250396663815642910591701879080815228497861459640861057588022959482138118147573126176502477391854685399229362626440654284449574101832815169493820330500565781501306202125050548358892447019847602816251793962750708624413749556735131104767225082135550450418977750177885380140548248242506201097775054809079347150844129772236422976416517512264669473434906599430790999073344404294437151370157941765240900944237920792400457356337417376053004583345994782577639816793505397479741760929423348142059975487306864701793332549651206175650330714524658468259440491138775271156282513758033176743037647232830284942371315946954095070226710219047710036266199475735034335122387581973648943851826109213778655513566189482268130772236319236334488127994694139062668391277742559602894003367540411774881280106966398552631711323669894808960338891145782229095138319142767033805203175446651944460925866393566825378729153297414417071823736737062351962185589116503556026649690058884532575032491280135370561196572233864939821763510620042052995147456214403897923106528373751072959954999951559767260256291396238395236758860481139440822994744679851198361713558222722912333000696162413540808736797040412415365507619425086826261745878446742660860092604973017800525598431727791915343269427343800454507636045425918370393499231468219773997174277927651180970168051576601850617803659092810442441169544749547088195575996132727256176469842852841804817310564478614081705921936280939363992520138620958968147182206319832402432328827436530999737398568581697659442421730398420454132859210503027144547348876447252074867710237608054713834640608597425949114280738232056797329126953568602504025767179335597411602587922240080966585216614376354627187946943758738655347766818620692797894502047802027477134424652316361818485798888417317063605629541571912309449828930127316538324012843080623688370852062610599761780693291611659611011709844016701577048398350461323105049376609524550906202991750525057599892010518845296631436598776361707475907969211095570038550702412806777890057098938463662289430926929193268357356651692515502043345689639317722491631927821237196097593245401314832011779390382775726406878268109827914031412000222367007085623247045361962792592722206398767350248079518353848101735183516114943350212431373891761891477430564018515156659912465049926033392057831783546944980387711051185416187107554305620692362703707058894162480008645884665940506585903328206730395116282921845705654001023430265303015711481929677051966627891897045307780696269854115373034011408250829099326977051496208035604648893926645757652334317981942742184071519529251952447595894401762134936600651702434226391476896463017431026890636571158622644370257690579601439363010094972516101052038121715050678841240617153918798659945160931213500578840734681241833995673388065386009357503214888946965098879440272140290282338190311304666100362758766713662883216494748767580964155764454242073885784463316725024560271805504554329705516580940652682644570630300622646062491889881023821753989977010141029433269294702980758743733741047826305598886130568363458369609032928415247609831793772862434906922890462098861096474626793749070288560167949166950394918486153457189929270949004191990354541970665713659855435211125904063973435467905351441336747497074831033861138882986195803487562560817573458644741511837094844163298679238995865046018779204339434072200535588991054623582529569492528959506867636689888882882802753257724534517775892384675979218545168178025922503925633434024900637714297928064652533784557855204172965548270452601880447997453874323565988646833289872043157338757980091406293009356999655903913079739282213784955381503823423140800968119646475118722233423348240614123506856520364963467591417688865970426374242452678822765879884069609920233381859486556502061867664542898485556809199765207284723077647671098492139729113496636412288187782269433729684213573662444528284020005768373880423007973851207696373137589297152767918904874484038986127011391119106036495926922069462194634564698754277405581610049017136074198301502889889238066529795120359749423959232759958790509465781805917830969887547709929638442194860528796228673800609929906372240360027271582341518826127345139506008327754961406026083988544037059442320171263389622923755533959505897473900346842651666649154103528101035214495228124320585217931789020188359107646736629079984163720621327551812268171722473986612235912837178585758872037787683161811794014527480164152615859442356418182649308928994132475445514992553615484965342070471205359163615643362705029581070604322030427758551237291446546284946504387878784182913349940486774285898481082380090594413323395354977015547499963880455751162124692686903727317007475062626074465453403702191614189977918406419668497117622507356241824888931636269158874017903809109391835677825075061702169362260849688696425222996997039778857140197912119017610940646149642479725616436785733764520811401130865178010044390526522038192262816374681898739096203485070761348834836464774178724607472028760469721917063483062964308743241060271106334693167232515386826310163999093289745412908528152505789638037414648465037603208322790631953861518023383878284417537863877303774604133779883122495911855787596550564597245282435839330073080482885738749572459309574075160292455397891309974295404196640350624838866646749729390338906505948477375899070510687038316282995864523236798039506898344584018229706662529844073952755639290122760595024704943886617322190971745620578520048118622254062216619373388186133588903236874406814120401912330165601104048938855965694665855689373402191982850656584200277447721883381993063938034190506566056621308274414007580029966585178703641024947949096469316244499419962188545932305051965717694251987183531088446516341662702319922822476054389476249880704421950444264913373079513952645640694715810070280981723269803432399352518640477935295463165520207821398550188773252234666094755733182939211599352123933044221043756956243188884559615186213003663384217276739307763334476791471060978291746189317672968294136135613612929302339240252550759759829069642700615758419630032611266593663988218618458584475754953117300098288272888206083382835940351325594098532636511179664430025108690353621114288487653462203484478773298946589315070931958903736497510527260960386037873990937812231499254562530323100149174058816529868737437189741310263538237747097708369879949040103841738546063300636271257113176825054210200214087665249461708904841835764039355601913460829902216410953182198094991504780236399856849212179167867765923077789846533092962094660673344914109005042041199740949081455436886907095172248890462399669281098973627311881748199247691293453255246997703912425510883985047691315990622331462973624953509557228279947428776160079911891202614098477820090650513200001028153066509816129774927717402908318419841925732272954411354580198906105306183118842244355947133639388517977032640895555716954394098370054387480430426392130521782568876617203697375358958532994698048069671089347351361368942233548286727436767596841532516484996604085344754363915754846577324072824099417774629120733286469917912400719631466644037509202072140390677464780544111001096815319420264648723736953228849757953448109854704195886996204010766446371128526918416155160166797656218623213137469070881736469071208772595846578112537325869915562867318609048480395464249007227715916796582613111047782499611297923769955541560164776145874065001056211129543781177499386244861935956637992821222680123066969480093641772466678664220876031591700810063777239727336981570828230420890727813451090328618008651581855340793007541206533427085431386296444414542841049025522016901769557563976792224902077502751530610653598334880932583949890367865090028082221674716424155223299440739548973902709838543849343320519840336256916108803763644289392085686313293984985291894561577691451000278177184181808010560353323319548768575807873990331533399788402348438205226939958117555278060697951595979543760950413128253098375636708175259979440743852852868194659760818234498108547199458681736818782579871098536363882299356029024598355344508278367003659750072622720853978113301750184977542187579991501023079886542429852699494092884833015261367806394773021429977680134189182401036354060531069788219267120447824215112009931699822023596663735414778178958678327809746665813264440340532507789764968665155404215573482261036050991681692444642223621608889510501815696377918547073385822917940664691389625417436495617421409630768016325864856298547466410043563487729507208385822613325244706234644055997144433797189491554062920115568583963820545295450114546273319680544515714540513722892521564386324289535450485526021808971005218116199521356925558553745566131837661866931461545004385110823875333816006652603778685411713357239722374966369545034313343578253011306052099147472850444028033618275820469169861253678347520113143380358926096832472310511293526224686054081068883773175832113056871959526249485331647070773046477284317442365967896251405560863858656153263331659894027931595856175286317067998585140428929190147698048433859864082327145793658085969346605402227129314470982963521808299710678658785545672997399459610764015356345244730700312370420435071452118545839837204574110923390176740011309056858841212379625126953755290514349619663545223614718479925887182043083722234665020611695096176945999803447483801396963053926589861015762197869570254809668998348729989129775021071510034456035791168623337927046737259463593464104912611672391895679495727727405916620088932358697683545571579451847543091256748535551828833001142642152321923524478503941419428998178288977749062212845993640382344860217526936680125514053408666007107729138464546135693603235815310578851369600980860820756538464534565466706566984180655335071999394105675290147769148335322897536496178795601983672042461931963099846533781173681431788721328868534109094364563166932039932556676286602851709981731344555933298930699519054683904956892369905793803654937197348936603360983500179941824897772154639213359108264897671208148257162373577942311948081211290822261684487585461600761205182222872395548178891314160415555483239839313267749115501065464505187591141680745682139468533137653732631085375091739906138333285072004315162751895761900092294997719864430028638571434170311718990792220884392793476967521094382218694718132613932439540904951725818619655301370025476804797879186323653597165029021862608699248683854402449198210866782716366561812587895482150184274123744366555455049553296350297727424135191492836962237735346812240833308928485074946422108202872304820202788792245371110060260550989326330259121622259546396847505766656204599592704173258180486317020401600868556108860081677961965302169645773779083262378099301504419751239516749511432975404403643026217759599201157943599490317442091650647939400485167478943440969942591279032107182212729916774667815996435783344460900111457079053026384371857897365141917916163407330813938395563778951498373911754155242503965636791491937688431792003544093727936406702090313310335107988872921847410108606053427406457205141542695767811430747241311680865344075617904374373318754688906472825642289797714106407724500179017999324777592643154532289370462351846537121339812347606272338908605402458766059839255165691496409596548812359536312886160306032986587301539650449541781289813484016875473574440566237428990380229428808172188994833567275913714572825162039414172991357362902485408199970647117166110012939519604412486015879525099384288157979435031416672980114235601828840973604629289227120970537471255889504510179043714510647122686327843344307901101069282873533642147791216766219582943953541012642443171396946104834377320462478622019375525093469619063924337002648906526317615405615695349103568596841192060180707956995786526365504562941527097654090930607894854099295642172841459991561727090941370021176978637672051147224742960219952453629979392306957428963052993173662948588604961581088727266655451103083177437767316791677304650826603217693489895548881656390634077312188675145381459046643233272868606287932065325594990387225904305875710126450713138376803592999958673679601974809101521463899672218179541346294525811693780930980386373153152560760911198657629876062965583588344349460309639081241155798804412833361464288198476683235820360152296192007701695787941201129185319068278744723681682942894790891156137151982395756099789757391433156302954520583919256006365050661776266338826269050017032085702393874388715310574528377801595975440419508142387915504160633571398964012293884659383110550379277426375591936774646670743535572160558565529330680720410079157355196782970275902901947806305303293360165536631877232856855541631544614740331890482686836335145968447239311040632460397748553912749513313742018781797416237815826562544169085674051181522075912429157259481543681636731132049673164674964356691025822522470721772707475378911592323464325638498953575348337656574969791287486532228379440543446610451602864959417517511883675813243032620982937246770891910726475089029383333613618241106143965545746613819950630030275701725275755413628599781699971867499371689057661915982694874310130665704686472924239887439156513321373846057438042467988764298456629718141346415955778583824155061069066951328087829782100537924287961399930219926520736714373484535636732106382146048777243627744207895824115208160184918107145505878200754844003533859160266087368237424503506166114572778436245237969203556943751921163176814344771199237864919335542149039561369909363512226138738972328060395272853400407423302749261865211863424253477201873272189936190148239661885377448241512597084172662081345407182811497165651195613702686827799074613702144483817160463423182116632740122666940100036564598331634985637271918081253896827197836813263119595789338238076753053640155744462882376315710760047969450783612828339939103660559831084599822251185202928428159766349041409469634186908780796552676297450105802415251898669057052681991232468421717709173043229779931886095330205668013967283034925108110526347075698625055756522002918867438031718965140957748350798668531761660242962773314299507911954890433041599303125813651725867539322739140393162396048719299706609369380177638196634559240845470595412566313489894154923711890330530086565216688362840168294747817806747636490103828371673168870448985020186172517851221013611541874321497442380211188184477423151872880386005985092416435842644782091791560357239281742009910370728220530684526941667379906712993300301588011759033163616684154022907648531444556471287603277344953326815069109878225657374451605133456930761656675006082703429718044946539417001653047180761542507601432065554648344250459016921197632512790558264960977386588977752104863182066960928392096101805450114895387993172586761301291503350793928774623909899419699727716030830549691035112213779574900304505868144083560080744257691639325087565847835401378430708446021766998911591560268084831355563366513838858944801495494579394719302206588050210867836439194702277881983782767774631726823520135993558474094049179381844048145152412470556447331140147546350234931409790468123758715708644182816969667492684477265257141495717744309960422287563571681266856201326073073010421009389689919435118833938939507611730414853697696744846385743683591932972600940527208420906547158283805220899666033935603782220669065038024767390860598662924269993025346373580775628856152593498329032933206263774726077840412661641017134506437357462689566451933093786351184351351474269295151405347315841124146240050618684957470575614992521431704928172870254442028923301946071204057853449226323980536099103740016204858199422569374074965685974006888349228635782366860308743721680756971941408326003451895416256617333848643811598921173091827736449646018258808773835673274124463223674455456423681674762414666150606531488123429394607286133320289098281300961066400487321857960232004758637729346085108569846069077606767726409087037768355124152510298719270818228419332275860798932036441261782687869288831091298233659460148623716737994045805157173471346139282979643499894016870160977330521167437961370798559906455227505995677800858396001771277654205613589517785766983559608854272909701143358364848647894089544947345574904427556985616959949035359016366734225003065317513443765403423577623461139518157183364271967649913559487078470965102383562536518760378947587306573006292515338312178432873642008321579865034549960915257665101067884853467511359132041455083562489489085127790381552125699601055510266469422932587258260446741951175540983459470141776544642234407441158937227403420978435112573712462136750523277008022393917792537460775444264195016019870531082379165802304671790164842895059248389043694533539745700101916343584776948674602941742154917014197215751816520335226051195938581774276774052125449913567669555905797924285012769464078524345426506519758965570156425493188005897980770737378972235322410829489762358058269632323489873669319141976459811800253471572207244579690404921485171371784056972550787643171872979505688986128905806359326073297834729512000650802091770647786812015666761215249208108477880086496377442656316678033836780436416773495956590248145307335775191779578449812627711219082589255230979142625677555329250548225260896705894383716314986061662234983084536814191677459430753870235722597061243961564842628994396291945434487853625495081585197664750488372322622630667789122030455972076957501303827823330109871292233361569645230675691611139473185055737094868315255290019269962750040487387491949004255756951495828460817360791208305531376563136022349379829423494889577239078072372059194437380639430971952415967823172308913342980142613883922166765635941842670896672842105388009591926031034271840331768455284855354397040136010137721294320293715680851080761872324219799433806792178595241131612344993680940074507983068633973950483750534755984026770640632968338051368227184035944490767097800778289503292034876454044788690852499318051580943724287828484765816147603409721402236917986346546351063843624103994478317308076426778408635799175694486897567246446022590830147921916473099769767964284325681356690163676606555416996358154100367897888526962789535538028160637683734355121517142885930810717434601305403630178174473578260234777267158974736725202409658709123030474361679040831888310263737274781228003505811635538199481381338705062892995350327788384840542694616584303431392699453877064295912143508228327820064571213172499274927701687095151838571095301748702941813130055457919644768767900292700567614174715554314016632588676176149919365222175928286206745500894273342586960359071543546206065746483110721569870700012796575418950681308250812176956885518367074132181209541177373644249388983454812761796467114166192979500684076372936072985284777447053773688225274797663588551431062358558981436815187300229824786853217030294658866125310384612369152372066205578790158520608078726482246063428175341884845583805339249253818583012525325877511723388901514814030012838449302744525308580010784141755537740004014794973148114105880665916233073991567643130783233572764244040636487881111173877891454268382780478700492442374879943557070052845780925975721812954144138025185315862428203837877604104923308041091694813093917146696811212626586819803429199855501492447427874720008198357878921536585097661577903132727502096249624930713269935255563622977935064712880946030956282973891438456117900253524750630729014216285799668569056655877878109295482383041569660972671899158697901285544420086159497868015719937248546022694794750992286987201015573173625139060319939962144191215860875296731490624494114383899189194748185713918066568219407649042008558885608328328555784227335716850139809822411661492111324201748531700974927942540988592675156199061149633326378885102107692198262254411478013835406330874559008094751426106938501039866152254414888295759932937695683904537665751841657051789477594581477019439797003465820874586217033236049328487982479507068071061661023441652832169924125643658667429932677619994713857026817918169077302000612323577367424270985568971921269006455997561183366585936110206941251388066621882456565261968187731377027360751986896185540679251485982675295139437556373814256416097940509611573009342157903527496722877088313443405399374244667455587134776424248345275312185920131185556631290384163093661840011382113305304084381291165215955769549233078907709065499021121001288775265811028034380531691922526154093335667191810360204036768631735773466966812539361257044985577541749281681227136202353318523214355401141554404669022769822138317489426284414860434072668350244401798738790493698284974316346957875472639302752099778428708239029313050118216108597361635241048970226117694944740351203242779623222769678634947564834095752355023546896051109002568654546183715632609005069161776109287292453771127625821963524739893040291452168825347396982850536239386981260240446360168457110546478876610093094116974301694125573325687550793496159947691245580494657313744053992005764292282735314460981432664358187878512711661524253840901352445669140568862414105913615425152300423160015645859331154156055206389024974815811558197290115036997352595294218028766419404904426741015123345504103001345915328247382908506392085681496827576690743176803098035378462816540642589601783524439314586461372570620593592419737881275209165794475809154810402875789434787661100726084030604937684989030340196540429948036230494280938839103182053988440352551976819179118438229181535960198143462592035119904515491845040284928629728695198478368223988060234472753344160307660442287456029080137375305504586331773033449120640566152361181646559740612606494146636425981814989295450968222586737744855138494958339133511977577202306044815181223201206902171760711204154869580173966844988474739047778286108248622055375758208191144220208618783007480746272073190946798128976311377958002558825145570965454259867762984760108741862305686472120108772906435123737066193228414062580712739897750701602598312369538122379164991186587190659435491229436022171077950592891647339471755895058625684217153657843511740067862069227371252661296108612727179233593397945350386930569028003256460501291753160084958594821276559505322705638063331322713420437628728023493615966390638011476268314911499206714740551465121971031676961312915898609249036246530338002012677127329523499194928390822220890684693681169278207797860810741452724441233133549466610244260460503170439423203018646053069083519499001660501238188982102393674513665994445528421167729444980745838355079290375215102437456910015259758208460667274123929997858192240676351708932057411869534897637672193343740594004088936180800763755246543462954429515197039659592287942956530721673334815290256549208557830170404282045251262098863164003066119545083858480866593582565756512824341929515185857651782547451577184078253480808015496319150761220138403016256656995907683173489850250961965636148362982085124269993833404777128847348114615382246650943737180469676924129135249318911334242821277071595794756914359328235257147658166486316406750843975423018064135747106528395575511073889886539600102490960370361298059179628934731722441413427854265470657228527189300504424075023601155950124798873264934258848896383462415420491714156497829380836195626577943714035548477870999787702073289267292888549517627377427027860651644583861783924342550608568532256764890320331653920307873373600262647650461972596475876438525640890707387338059266602433053909402614251039692245300221283976754094243915431325870548802774077644281263905632952178770813759719862960331992429338434614748604935089537157275017190119977660909732755518574772194316414618996666960683617620280311994857245895955394618585133904415489733066605428219426948488676644255381521277861365184549230782634998958106631445681987041036123556153030135190109476433080477177080171476882907895536888441681431563828581369825371088220650754552564160501545566708736016785962515048582693120807599905549449885498427421454345875191104673465590993545804773370857866260808333944860219390985447985427089231446634992399029600757793152244411667080777902521119195316498887944378299431033763630087303957505417737539648792270062739622794464509033696270473090806032726596162978441405782370852162046826581251400647169670973164107617179184964984085764667641386756531033546032912564104528294002420185368250856437493353952802607608589001570399143752843838199643855317314635190542335321088091562961871757048955940895895935878879939558629599012084622773896028324021554824615522348061604223356336277680110237073408424186799526005472702148716463828894138957253910766769578816862978736450941464093509711746497449388958823424314731397153919639385095066346425942833576799953603720830661630409985658728509802098430578540759534876727796741038465333453329218530213013172483683596449122307186773755912780515866230964801306509428637583140977106510228762781403710155267399102902192047072560266695714003835747087526271563558655403437795883357586080271936483771279915635900857560230338656357349532861995889543435055193280798503334792847272832069354833108536558977513361086044402631092837155263818675550212817504386215722608920322347250036552061176128302823375261716218430026715128782904829283417881767471778430111151998279335110705455939866162448897801216625718862003898775065069757031139227893024374053121731714302334396625382347968232115179101899742945758099423943812836605978412961379459576145915068500344405441160619844271114485551481240354828048867699106111170000091453657929636050752827675853945485403924971212040329322199140010419514065104820394704698064870395105957732845944732943932598934968238738899886303071747412447129908595333508186717706106179015822167337680067415482977006985027558692021288395219970851464229910703815434212750975735134409594819037851740023813227166285422921974584562834893912926706350532126939226258071862671406384234655674022512170371319069935398099899887210121237841783783513563134005282666946691487174555284595090238788010358933178167700257315283908093416335721487595061001683546775616702728101295480460286649975975174036514527722084744890148288095009262806062500325842898030290224639111395613516768912514361611423894883799466042990021412339158603855530576994402255834264720161809187046528296308006603539293694689237604020338280586517862938551785557007637960747694171206318309113069353407919027765714688561701139665829913830122929241419491104921071310233554667424601411401809795447756139401297395272016661865745549966504852021006903185181350556367091216024209913648786812546436885812199985529013822886802106354212721990255136315208401006385819277065235681704660405925605965212348212720970341966217995653222389494297781930514861367847559531605160258886074273357847314672368496805663433927203342834235134209288529410373790460725571730746319253183108079962068262608281839656124096260134933817729852797090694842996416234788697883669730366315358761387180042642957350155126295887528226277248794846813680976977349259716333959171627339245616402663886381678134130557209288672480984553985273047848166274665297299401846107822815474953538196747509296249196822675648750809982403358847384907756229488202309422816875808136634975111311930364035995616679333823959484529957860859803586087107223013373774974051298628406502648509222194880081888888071005007047685724767248012139083543461133486437924670147753066873561862054019740346418846792160194319314837259841768144552053662836290602366765321889684359364957150908955136512134445528759120871845224320382800445993365694206953451324891939620721449312624276368368562919039894834497450228843212631775679087621551212029851653340042629433337277931676591859403265502794024822714379259419649827483947384550515755411215154965038920018861095005691183848177668962577333339060701382560429386096222251966635027440310360306060256959588303600011381071131898097121561702100035663243961782440263069765751662172599784743382203854060401778894939969626386163079588419172778569128508139518538036367245747027220890872893247941249830887941957399664480343113062671454371565205766078301488965686185590532811177093998592981656897750913496573987634368283156328896043608934912099929504297198784402403598323611370607910016105164698815486947575655871076869506033656560049052342968542276144786863236464523958652275399728747227414147713288252522885584120638920643573362072052518720606791217511608748428316573759665315757027634756213691580453136820707749845264780391808118630975481302703721276014102427619899818997641208662143262157086293515566771629131128163209290256123388880919201974055457955539634061238860897129365840592039434805193824030816492590288621064005991858872615953468860477070464563483100073980323730369412426911320165189870427301036150993637170659537558630597676388694710060548460032897393670314155714962614654953047718612311303715793985375885315602099869320865762089273027864015228778165886594998843206334977014681748115951865626658056074577600974844107991758026008948700872858611546204908403977788714394818425667079257551875869924114620826688218802197207230158832679971035462258151636282858392811692899602092234371525187682684668433501840841753070870053863745396837947389749519153707418630860840983775716746286792320610224136179908067946407461130623344545102571703272624662852013672082841932355226179368702169820093436468761042531297467931044615965348829062191347603487041206352100196272301326174262350695363443028665614225031884144410930445391154453749792816534652709708905846323450570101047142335769192641609581782053504394266890003377907932848957060769402816251320258410224007222003031577608376825791557600932959463397658333777218115443892204643093541503822450543012985054028733040343489044745043353831604712621016144635291515993399132448291334243939098852105228210470012293073300545221161513401648533771364748582673269356039268902966155098164875162758286553729023421509275813753050291956274102618253562783978178739502725798721471635570874110033901809610355308990197655080986875351583504527808079831042977044306598519524341121182234376299286778070552443094085861206877231413402047527248416188601063910706099907713465955884250099827590124253005678737151150783187789654010162311689976043433666760470287619731226774864106839096870600801432939056750974133448827325383280068801877038483222538683734049860384108464184491167601572011472535058945032893824117558223683481904105779653104257660565659743597545205758139204913822031805504503737756488319001962455136936904246212315044145146866259933197766793125106010244039455405405449772567710431591381943882815895858613805152482587116037969967656373136604559746611750398058124459746467694943103506705290862398129352042986214667072492335082785535651500678223041451474955652723910309041736037973408070982159940828969051495614108873854864440396830949782221434046675223414215140961108558702630835291971118643932980349769379554606440972923810166018654542191414661601858417340688586565264531114527451220890638859908931205646221165483578393092689297654924180569679154056519373359605710191876495087700387515965729298137463385718446460538845374479575225150603297316300785336868945660571901679942565260065851067774567081875343735293423248563932023824921718898958279940442745748533556941836784096905297392632495018875719495288301549301965010348197921705669331851972749122330951336442221220051667716907266652607501682411520498221146284247049736400594879477445369785062157824357427079404795143966256605270328215143511855173804454946071344892007416390286737452951218298341449429661110339264321707388604865056401757273464091281910932782545775870944577346833304299858693798486580614765643919046751265555343400831737596891306942084226413856739721923233490512978344669405459521656974804761220843083852938506556644714206197711379347951927383534672446957363634075288611313053498072107863092436948112809093959765778447775040914353012297207724729298566264015663351790955360016056289679228810304498350968972042023621334320656867788670964562522436148207930806009184608279162552668000926147248408748879051623022361292526096533328780787453602998139242097969701468397728126328779129045998316689682539268293187641367099999812518421017485975770036217533234596219842200373648621153634517002358630827201434145707664444079489533623632095141832824688987182083530877731879123820757367254425971668257445178266780389841785724763559511738096299377128400099238389571549508060410463899361250121014402783900166665915521495975298890198422978825268728007967156953264457368343848577423283064927572717490620491979724280725742297263647668688215173616156331008317227757760155241610118555573739353937374033887551836483858671978627334776015692256876338981242490679908992483904815596770438650540894549769313921661172669774928813232201692294247404868447676716071756823077271242160214463216765407857356318115043400865657039080545039197149746017450554013533259069033916204615171520381323132052881061410626525622738743208708221818037665004765383092377654409816869368131495191436962290879846942188331746663495615975188450807969743336825609277570610713465518598232727716424528276155254512892033215251170412186487749755249171161180284243459980004384881581333946232773638235518273339773943577246867782918186235538560451600088471612730915362194548335367554917985254881530597028678447342227390015756724566692432525845369274107117315458808510056702152694216950779967791890680766025524597910322377326796418806502341110940245371992909327839206380429662382585152064292242354522621194953982284608394703982429978801134666795080022500986424614145621922237721162839525756620051698021427473004150403940914521675232504281017830749333451402043897422709717192521694357324878968873521959644453911168504283304121842382339579807303907644032252179489674408720156281714265475249083254321019797578168412119321236179699631540862905905294369433260889813471517891006752930944240988494765279627681853052596277156471769198598108563822762549125787156485843679609135355968048719407181830389863685931222820318982935009166696230578753757775308472541497783741372527066384360050016419670195977522496889376787699559207531464020895712582790912696938328832977412344093109535805060119704932756904637199544502056388461835276914821523855209443894795566157253435765146132024270038180686113707855068312658922235957137391691114057352825284888557457438672395225681761212047126977602275596928787135115659397222758971098514779518161280442422732110243724082345113548743412591669132626721361405396568857550012629390301126946920711167511530351438008332933616454065696024937564536594160808661533792478368887109778418040017796822036461312077313528956702894620259562058267575882434733086621664057331614033186174185317217531095486916762875343111628482014076024664523395804919499469321242136405457979285207951316825184151457180581572503205784176627140318480273081397520490248983694596340574747726088221114093555451658700524316311502692144935488348764577734090833943742945619184153664459003654359761110596622861620132278979611661477458216319353869977350960278849007361378901953608714033488403765812086300754215523744598868109092366148408928118118394216853926052552818207551651100997331916729377500814615157694431573456511752596735410862591446700182008779378168874696479807756474625555833531852058764052712154012076689894509047614252473549627175816158990916297715048290192384619997676467004873126695319315079374281123343307760593605439772834380179153027765350853576933369406849315526536284093695578236374287386396296991890007592340305091539890802404563748199524365621539758146440007303213017132544178197079752021270860375766540926612078738538015783768670606222577786281372398225231123989417842689667513036282237655855996295411077548467097477760812523039384330515412210247561675942203868514580172714372380158737558533476524444917195129198702420162708533157956961189126717163876266284934881562350546097322883929830839948412509198730620368465437488313316211015939251695453692763866086014972744797334527920717650950748990937284172141743511450093907661012914505707880711982213663080323550693047675625253013550851249037370767008509789154219965683928812533125192839377043749454041946692885316846935290460742454923519321168900547085490102159060750213568407751678596995621255488628734009187134805647904285874974391145637843087662678976658914960787867501504900944497102879072651570003039680778710262400948949005030968084881365072635524720170880619909494266588129983993784137011625163347679240163599240504159575272006414599823786615151791144803344294982226533784038662346836797205387254754782072052899420741743332892330851372350326254809475996547849672471193435023877756570366486349538736380610314764965123412058220220642299030287638571893583815798892530326738184834663117967687280590343586282957498693513482836109625855654058210496096840189320944854087345661337880728729720527114238292521330160676390071242965674881659200028142399649800018861941799596525060968971885336417077459980188094685852259872476928463638205102525267393522020353117885378632304063312929529557024828473076796814951162375577981851282882255919516167389481986405368539088962227221187292402978388877403223340937151542386554294444862853559340788160959735794728521247107505852326102925715303850587524897932429093084567313667881762488778510552104227592007931233767261512002064143930998543343620740528687225836851377007114039646778532741516791476493016891862328945946607522903042287593719017097733255611396863588411449362682840914334279773798100167767254638469672543410438304906402063972657498296717524790616213270274982665492762880865516089081760838056078484205616216250784256438675497114339915931621856551836383214509434489247055366479042903291328595038603485114983348006673137655315581242613307937939332359581003241339127103266295015526841634763288134703799610818652663488894134641263107645900266273443231272554515378476238025646943052569269311973143247066850483222116462710311143202360974750880813362992482272915571420457127298052387233960117712241344160735764052344272330902965626693258117381873805771988347338581430249471978612561355553162749884591540399447809527118450662391178652050834784290654304211740439291301785154740286490005268841710956424640262870189056359675271944951298895608746031969040875237955629907091401131239306475482217895703711357720546524418774480375966095125970122351064393219363393484822088641762842425980190772177051239488107105497937464236299301925057210720908221068340699795716813748670793611137945761632228924493567941147435220571291773497492183193943103673251079773163582832563795865994627531015968847080631206263709191827533884811079379437238230799777043228872854193177911725153516991071694075271696135614954377741981353829322322878333872440554224530209901156607101649717122155784534908150306663899254651863444851633599765092336232625418751014988390547162723293982971138716894023578208714224047699226469573565832932422827759966301967820616882269069902786111140599552098227614179518007132517913600977327005254717324961526567369773293269964829432732919110535267295114807801952105635017998405374670227495719826495178621147135627492730892003319444489183650541952801422633761878318062977965425119290145422832494821246453174403968570921766658027003311586622477830427491741362206325380091910326254203927048429123286421139429089030395076683831273123066150490671741833045300348754032771022510508312339081847792016800639291503279331333024312944769991751607632249250560732291312340743465806761441838935295001203449227323685477708008113587559746059662161817683581186748595896846424026704622840116471391129201268767038074408908086631343387333468956331052116491387783684992556675880491296984271830290687974247717333369536837638210312282536494175917659353262234632694486725313594551986219068843660010043562360987553672681059697810073248766450921823767325078308433861410145646993534878922931617106681044767288995680372610608225381535938288508864126470180646466282096138679713177895245414292426084773193278348732071540207803583597584199869358488566454742738238929115593500683822983708328327148073223395829102082601607016375408851100179720168492293203409039886240340573217608163371701874216399811434924546168178747659603818881909237254947324526913050964776344673619970539146662383629172519363869981320526028759253096749034410356157402818999685462730561238157204719204550740029138971675647319453995688945066757304255371449551111164074665319680603575694403130513134758648510334402987709100777403812818478053112473160868197604137169881033001767648695686356123838294607672903847527875337144777639076705537562099941786757830448545943738538913254900018121677731517868990235027430973633435257241081017062544779265549969846756250667952329421024185819727005759837195976920236204757398435723012022432412805191851236587530034009929679728006707255786849977558476164834326096177536548455131918034625799353933287530930418138717117087817864730728306127043438546087068197120486012861002366124770443653512921454278596522459858326452547863864583582519363972830723153596560984145755561745941723600044738463449973279246085285494737297886017047435512613259105867106384889788329682731673160959794950914402251737841698174106373341910174621328317002071568899931101806336640443699084825030941390271596400264022226019469787259506915998360261525208990379090386670247362021688552850602203625278989032134506262087563819432449870468655163066506626546497528417380087393507810416789474836277050161662380031212508879010194331336883994370088383669745668969097378272930520576425176864764150695196266033436893369505186961037410080501764450939948031164380617800128486278114250542432588732304833658435031566937627880864921294547950517924566095423124325683314372324754777662970363439543368536707122523045959193928260215512063293347756740899039185181405231040482599449681964756320677732909341055137268187447035512574744440937715096821086633585761723121750514467731382686657610464330728653078173111331480579948206234065728183521869386199181642215598247392406182919813890685454371873059574877766164920417600313727928745117616111705581228924714815560573240829292471264084075239058642921952995031763999132415161562420014356204573313139405780263184065942354820989671879347795916617552498664188782645844822837384792447619686385986895537584454136176616556681949489345782509261745807915243553790635720310136877402197051680999310412353099696527253659626968807339112427354451363852842969424901831942851517659312443290642974062346073015088227182038488950654800845666511840374783153336776564464276001720657764661998849280950354284841097846854283023803974590805293775935847725233322920419928117602193146851834967896171875387694907628915975039568859764397901047440642834895760402916942313032035523631626550516121303892245413478241085517775890336007315087771882671198917273121188685141590835634895007299643678420462661680728447050222139869909403017594017322767916033535094302888822508969519212234854235547773212053042134688469498340546227040213328280844585783781072494797332380366809640559590959926452594593303150547118971334914757120364256519848063696532870552547584783130643089691093155556849093096634910844894736283217860403432327438834597825595663625239712719107832027247890554380400824345922497145368154308204093440407914761178575210511601348055999525436271278245476008325417591906449553578202457683854104535036790417445888085626996904381652395913187505100451325105745597693400054471664787412409660937371632295471763276166445237423005041944596212328445772839770540047952389322416374516985179020943869863867506474571754886518159572351162941772650189689681630116824231942661264735026178537528172184290376088117520760134832270916710265354037531107999061142377530116859214366329643666276829374687384630581147598555212252638434015441506188301186831982585696156824166711800302555064808885882621583787790340616377125608324158155443843809936956972798478883295306800522538179587908412247471388770544211772168215902240001414869614255692718478882261588871526740641002334246989463718816186732622549665657821975644242724763099486146723115490231223410359412698189759248162153453892697562622875393495156675449227357774862517623858538082419026312557318816935642371997178032378986759506275657875024419349734300325200582163284094406840692770307965663360231700569360629445469903715512113160117883320497949814207719174138504658754348695115165939534796927854960562700217773360780267244334259862882271111625341231563032881647061500471224892822806636574705504247969679049463699524231666026984507192810076921517008896599878104495098966225687172206063589301538522735491115303638052392150875624918146728318867932552958863500547352429021661814352374716767224173530749286925451319086162668036115070426640734964356587770757001531733278641441707138160999604336575542274312272817332960129177462091577280561708305063728765163040543482883574541410083101516945199634042937630234550388699828772701248495097733220961685381306316317473154827893011796356260658089608734498279205778412887349747331177420149136860403338109266607846020953638323076828586443376508320610797465216600624198355728711543906574439456207679830693075268112364049594386309133057349279125157035131087714007349746118348587068817228199716888006622016713119298852964597482380582438840286513334771077064056958472582661041157508103755239909768161177196183724542554292079648001628253337269295042142613840564508722296054730802730446061126118396299334506883490742769278880406460327072785986970234980093085765480552739315366318839895372432145551096262311090432937143363667505557288334649946290744696151375322335347464744235044440385851095840534200545935407498884071030919205102180141206666212180444864581189398055323322276248353578108017220184032829121404569080577628177074308973453628295853639797613709874455132437643888345688880344991923547736120685445520259745185517208183209690660151950765099884717318260373113398954397418659212851188019208514306754051234504488897708172119094865029801326683185560540691610906164971850625064810207794734382984067896761700669003333195496222496053527381734321234029951890402738963865268100382790954417809613466159180116235625724321114138341894280529703705551141981349897907218049962559865611881004293894394030622989133871886177638249033339021472971624065394664076273215753828152503853068184521459522777655205762604909832190128140264253459029545692464000290896517191724727824812724397764489758303745306610299279721983719792201145103188109878026978305350075521910477587933735205692829668089082393864621688711847396284809032393088049391483034715021614733565460659370025881329089294751445557407940981297219528910359891713464621292079217492596913467067578725169129087948977786361432420668658540451851694209844646612444083989005433034792640294835841784883398962945193317883617596263755706398815688550124997612418484280266221884951924573915785537335310229414619344764550272506162993018616991004446329431837973025541233096242471146764970043143459648692063992852792373257590359783046876316114303841395522478911032323116926973882910690682975998585773119110206463219007400792258902699572394612387180534290703006724818289813595804007469176238346625166495040813003008064818538920667320998718662219388542467021370933697014407097781159847175575570211495842184285787181994977141013407391045736382299357725383795272944875027890724362422755934934230244544949767654159390934140947618153171840714392245968850169197397156198534348618283945441824412570909043276407079696501298596724354752080428316532373109239468581240181469539014335516883619951119480380820272434071776199025904082089040757549620783998333914889434108007156057904124342772899365159137466423412527821734491508981356907596941582442969530066534375246338087561408354059975923603423570756978845607301400031927623778861759045546544057636667961257634117843489697156405669351910404989596836395453773320635290609899135128976040710936378137013622139772652356213551010106899197267749095792646470425051031571119824408393081787181281389172361545621434976839479678767632682683820659757547280818902834529412852038260035067831061208352010080189564234039892209916439353390236404197338566512589163751838614885399371648717709530944246757633596837651191626801513586702843773736994024190875321365972591362140051750105117726753684964467065898292730870804072718092470927568192378310474953944952225106674119235207437740290250771569340010314694279902371065507995998218238317038697724504728433131412177389046577264497661056833284333475221659334210775275321002730091124546533603751510278285739947482922043772679057415722317327244499152351668578200912083803726251631386630388882373775029507899194258354784035737746341281888216042986969143981810658781962790673377466618929187737913524797586648748800460071063917653815375799597867989003062004668561836995286649240470537217352654513233278120141772482521942211850110156181354595512234307136964469408858284076819362627626901904152456953712236171374916538387245682897020225335434269487525257648776323809574896524869417765995459064203783368918446172258933887790186970884594636927039207093117001226536346266078237750783285699711876456504139427959117980782972804130530530343505065649387316432381415300597744734463141372249975754961873407199419472969526493392425190491965980307952174827945434503305641800812836606608482091779751345773369309511231315604604141332577267118882857239259591133481917101448737576121524198819741553762386599003714770892706228230770523199585393558199090921875595122187091454604266014768243608312976841595220039746450454980928466299757608635550284275666730916004343929049061031115252990967335051865895337281809364892103783852802841115506656409750369180110211832674839474689998718659649032435751525544730116465146910782333884555972915719568178214728518959699749491007884304467476488308038511673436722438728825443240754350462964556842687450259090910669626758207776603904161755579931307083876112586230220403468458865703517134879101236871485706634409595683435992621129202881879060742158011669392868971246743830719992923176585151640355978831326888298910624090988685559015170234020778599096727471667570461790776996492956172860006059674694671497577384676958808954423382325759265673819600002493824942974834039400055640044413394878045611948527268450978410662050940233104461574526915038108086710305532925228179956970943258849649974754038018158760377168553152959626062836013810276518427319176901686627016014675093020060288554192128199477969020779164166532693836202849700467584048851202589316738582973032111642770234534471796367879456275982122201126909515141043652205291240730992792886546189582094897056673755873600225942596509301952135945811819458645397257505763730023946817721385811492075284833012305029289235970730668971386825495878081376364812826342528039863264363023601900984614084426531517491923769514886112951009684250648749722971599173736465527727123070533881368096192860515410530758050483402347210467056443730531150152744826899252104768760630103853532534304779225624234229933137691611644864164635547802220120229588903081071645808511055002159475824753119173731208220547482294988483438261722359748920202282306439702742476425646154717067937700933597276546215760251224303505421747884361509309823105273014450238031815098172792306232374821235086183168697063406776728220665031650888745408928589734227268920529211544707363423467571338001345450446622876174960733388722433691699291683887016313776075451763389929387478803406097862471292717892498235491581636962909860464063817871477863246510305216538774827872780786171738814897381679908360775071436422280622414482442868405542460603902332962029153733078607637283994927888791226607331301712880855777625374900584091196425069894167293189570928995238363932291995925016783247529541156450550208455135351516966554638951139604552334508012393863257442455207724805128676547442615736325582955886581268661148089062260349063376911860266048885296461337171717958649064356271626075574087143845553984931629009797876322167558978388806651876144489434720821350447740248099713829984511863072422385493181611072687798435216810695447308570869918737385094674649284760094023095659632657059449491592056882367180762142616866943707123909582272889433497157392558557106723106824146367025748121143652413134993260028071436851269907850068982728137898704081580120210663619527627841788997999759007585035235555547037891602097593862667737770646648971980119375814977327066706314114686974767530394162519674630610654486946232455593759326010383660865870047360457550090176603270493257277960399450502819888597270868442727002570334848899675986300440770182642773601605114024858769726714133724506812650243628096509310875255359640603764708398995844783357450241149209503947059129420676022527182461742025862145290868714918631664079259675305978075180793857881323669599719447132769115750896959745618082727390225900728702952195907520486154470703441808643842428533468462344677665560045788342642247378171080149126450596351753363839933380829637544455683587382992688242541724071593837395266312536977297590603603312471638497927621639370869663515085966787447755074707226643423330805045443318940981065529506728101498961032798113150667237537006561149879402669886324928619728679771734348763965554778854351911646055380696295581143307393858993599486669382525251406254582195777465999829519462009839898466510509506486572278075561360228771407470584016984805240264010280742678280381473243723320311686640820814488337395598612695450669353388315983539551829207468429258502956125020490191684396130020980220692755688143262146319633677030160829965868151606281188815253631851028119734126585879996641147084079291906721800015786859953817442768301224032056519067905202210043417102552623610043802786875828665166546042316769082114097271626406207900708895521867264888460253131517302355736306258537290553416317502226576911317873130471361873545334210442659593667463959509297946686577931992595006252292793912102865134131486916934039810143035907828421995541014719554157326866434264225279266461900929286002165322110228971190266293513596720199889990722157352447048334527126373923904595504863527578555146835204109554906347022974771107745282870083059257424509613845816932201128133738587980322203469940062442152804955217006714389755949306158650654835055930065748852184421782505116091684049667612101445988697695040684282076151033293979449958749256853356625779355776917399623984461336694353746913988729892195295066476647595967867072839085211084701789686565691107410192656877033585701669325041182270558761993839507741975954934127552747374961025978213200992519492590300824361207520515628121386208008882434130001503262579060721482187130031041096357178231042444891910506163265864890143596529738460837770542701336217562152179339481395638987305183718460047522281421811242678012199375898044652976613245876199011242824426142297975797001653736530985928262527189255166349660188483787990951734422588209938960105102403944858849904737751395624422722441336653615677914812231804533016454691982815553966442271077500988487959272999399753766119324880835915373002457201166812018154168981332158133042296562381902325390574005341114557850778799019794965938889075444239046761597127968597405322404956947224773148198924842726334396051304962436614985894224240305964746895172863404802663585368521862017529968813949104368350145478382924202859014653651898229779040353180809722355865727727547788186943358013354687575998561239927359207164307336510822974543800495719251867073809621567125353581893233943908837671594959822244306606152878630292699128873033349082558348711274005663211265304291013815356311943062221881398969051745166537395093649236705845733251786424404040736948415100519488782677577145121218578585823528913731614822169462932097654619297428075523455451951743573234555950475677158359773666545405758050550730778844451231151236807719903421934472173440705775349546045612961448984988547898148637128651657727673440738088762111845494862644289862197463503976880191247205194815133998000061184943577598767742641535763593860674987398077828778646748172766743937415342715462699641737711267649613204879525499579931307587239522932307476893067189782221548667973765820812592753935711968630379368765166048882949971446491151479619187199521165985363859710454960660119787830498484301657394036770131480937049777130372586767231951853519180242673113457689952201281499279361627447262371988614412125638360755755051127522847815282546132294762127305123132233688072654296090408501278223342831436700431765408635786905370301028472166147762595341458102404313211239445503084876659091971641301064062444035775236641330742261168598743240808032986484870935210571102508143873957751787946192107553123301898381663530478589085979653095490702657021388690075552442646872860710654874269592175202442174814200070632224211722406264592107686001454396465508972738452109100674735491679394799072329348549534585601370439954761013789290653937394081534526663013342602596143316903182354062620775042504196868596162921322223794047803777783256351180914570210189134390509400783569026273636897027649752289050992574858780269680103956517614811819292146490603196580250390799387205068112426128319927041719361424375568708335942198447337484204785718081254611189720619556248589408092651957925273541038648747404015400754183602354114504517560345122976067517819667626101275956900265022353734094440554195171655803313256877067342229903213578795403097382991735490995142232408324874679335104424295832408299693375755630188972018016176171701180637117074460100221298318128831968738945933947751621048313310017976199035629272495128128971801520174261348702829502707299884151878290448695812146228769307372604422928629151013083864592522776765824558032635274588023522097166534829896843850284815486050488208514923366824119134358456702306901818900500839303608152915348243602984441608135948484516054492254567754218065977892721699374442044326399368425027889361537657323277128067470050520810580667445643225681963277895673382854736829922782256450044434008026639812533484026141585643244976505298888240432800248214331339385542207471739583125924778771581545026549576720367924102301756846414541260865856009981932379275206208997471810152961961733915500688797558390554624340650605052892781870841141245594801078115784177732370573957217937403787879075579398875332833861657434056870609578897580084652738695523374206391326462952770458098527148309606831661299938400769125683457722811145918633367827239074542564434453462329013255707982488734908379046509979512692290747433645801824660279290193066270959730646711300007539132198401573558082711913582445241931047612325825267906024414234247103145515458778002300306824815139999269232644567145006654570088266585605751926502885543673904292849899954196319456622040599453035524232869634116092731851694034023817765325999087803926193989451545576892463312078719143280052857704506561842560279271049408234106067547511793118893644945608071606941188813987472777930467815882885917814306003287591166140359887250439165744441165136881065916364735217158450071600274199742482459564392357955954939517501957067296614558631900315536598851561961675165860356848439374162295832963669060007725482004203388278045718989983504845376344313066768489019294908931962422255200993764300064632253723088282554305701660897425441825093005120219230617741078318486045411857800245295179409669779977840460299855458592685300820480778432739879490262853085853395820998936849362287641552886197133061200312959682319489198207984549117111978966068727286237306004732704989657153034497679112442688933385474448002289567161289868483860536644398688491188991792581064683015188791483024888459797240770072938304866044787971746984006170195292376456888908018210017206986217533125149392126051753989759812360431094848836933138245359330754181288240443277448817412065036972046126358154368942241328970648439072571172204420676379860178331519285591174344827525727316579875380498845328403080989422121247127545467411983864138257339497847285941228418579902626218805063993899847846644689948676684344546331980928990342102111142150380367113290735893931802440690290368939703619808999412692288149732544846984428408052951731184323421803110068701199409315166414012337468218403166499742210650166670691332919918391847718242235255613939009376074188785274013420103168313334273588169432002258305791709009410252282497180056139931518767703542992158257993697888571820382126922221375651780876297897867607537434999392860865400908731183007386936113483167521532427269619090504117466586704721546503808997508232008340111125989974084439880106694293223166261585690434888968878874651696445799561379048763274095273560453257399592360651783900655849933238871076002250268214404102320472816810815569183021456978526280583730845350402651300928006755337889233342673982404432898429217985355051182064687966034971210480599952000329071225675483562603035988180439818577376402919879076180264531181996929419821023472542035880297898155925956590990497834089770616728913006786863308434526291425743978542811533026733149350528978878352499369433953716145923187037089918085047128294075241719885834157156084285100155880800797349972335064279420104213632144146249727543224373484590886045428349990758992426843933376051881104525648552643348442214205575406437395018863707131273481373661439170640660918679187797927004552533540489923428964068511889369776045884236514475032507709015510271117037353649475078447947159398995994551332723980530778129020254418922616387512566865863267245019050577988628450739146012793531577642333447390690742503293744098667864896722639464109920324379437033179592971764997315360284312414350222693307894907796890321372980386402403009326979572134660054837546487160319946652550899654275462486876309834046321246518513019119243070405420289673994369697767367689701051996918812946281409297606759894336966171792011875331004451235568313217170777373099906565108378128560930271061245950887062362839087574337024119588707185059364640178968399070675685801076122869379155080594218592600352101663968547341635503758879507996656328424175238425309948138894503778172542567829894831720367124287269828149184915869821188872010024584085550616260648622503026614186374496281594292614556446846895928592192753576339522389265356618945269639612652981174048832427959121169537941450139640235218473742556245602694194740770179015444863915062436546313465692750923299653191365108852376557458448966016298416619817201758281984613967128124613057820928442515406813897704439738862447822505927379717546545660888115181503416501532551239609507487969069753062016269692209444273875818181985872398493228609571551454004213895501358772825654037731164876022415922888922579052830461756396786128542225523397574141812107067430185377265446331217043900622798895643420504288062050838813432494880284168058914110864469669929792395231077459459786564083228907682917467290292966513504866356848663308172012638381158647328872158910186011087090679223193691050998518835614675354185382259602596637893849983727791298658452459462764323394630088190811135904436333813594997858261423809126588332995087128154860909608945620892392259290893127884487417138143958981830260945488544161851310678237452233410699997145792847229390974534045908394124396862768521626428927147391029542692495584264828480214796365828911470113174211787969538347322657021577344115208663941978130578188716221586887809999232134974129765231845411937460327898802702348427308588988212839045429898180098464154079305471833721242271960807911299470899253270223994114643887412595637126553462293899517769773057399514199433029366663921682478013269328443399373317694250807061758318482909604025567688717056626339598284323468242551996956193260307334739486114334300256535157038823405676553410137180042512236270178722112024547626784374324189805710571049553204132894510873203356623129403405178734053289882571691439368285701663382609075342239133439921874273285932725344618556489928010970005321893245195572269373479676052494467374720620546522196856439243258984951037387798687694357030860453721191280021255686089551058762541685244737714131905816420642571721514721172374309515586382309805854636092903020698013497897401347705044219789215411958351670606541796854041506306688370159073778313487555124658805813329526139198705238286410564428164573764337124796406636502210376308065709770701906134258689447266180333373931973336067605848390017814758067041625545419252449537350876698307213265781695522908809128264908833388840973362324026217956327675180814050352570160196757543240281532648043064254258700632142391480262430499967038742310314012670884732524003655496792798495902779218011348814530651521278389429218442790502371747171328513916013864317364109573864925859123082443925414567837943861981570387358222641595819195452134127361545195594814925879855996012008326659285299540174347546914752829905429443584375768396861430613054706360610213980760328723732769014184581825304809220990953187657468145225282607352239783759497570739561889788694653042875811880486165222289278230006800207870043720671806445629746304846964592840836683998063028561269312181871319095441168831345838911415630367180601112687645732950647359760300846905961608350243781659461298472602982989084123900995836851796877096910191776181094027287638116463116401836931448833334469468516081504503280179666444137363436950951082356853678900622294635288235667931025074963553808878090618318920548054463695133096183693643487212686477001666468313656282958136864760576421885994460787088817163023318640114963641481659441460268300839239221081190313039850259828558305324652527552350458027599212192745256695948800129786943923935705580153846046435392044527564415149566147166461628372397262941168526157397555348501542037906110152171874371017470693622189759079643337245321314640590188761866732841458373917652021159336970879027878347883004125013681206136781001201046206504883084756640801330655868910021814015857473699974297412886023247161343136978726061066484083882698703302523548259093974731597355285331855997999181268093525135500343083838605924819791018047253181383589783273803109676032304822363796379274388212561890775634887138888262707876348500735545765026905969712865532995522977401862024289515814164708128093363106336243487971095278828486592970708091030203481925755066967097530183346599136280441251301454571693500902098990290521461725254930428340404047502894474815741450507027246524682014408648780916276668749683121263441973458635049871331795602526131054165080460641232416960678798297863473372271843614992971685188829416207616469890227890353669664475127310573730769737561588576958854997760423047819643589873038618745182781803451855127537306319691469350268555621936887718964739816874440740953021897664081340000326228707365546125908897603006741611193767908213510474428259244341549595280980766159750631343956786831851807947247765554212277702007024974550357649101590236968514939500472850992560086144253965417461315005906353742835685043851874816202623957002246927128503267546521287342519517250436289256786997959259731912627384492309778809847796109655214414344815492765791561458855842007934591370403464304491269314622574564585533273393467250763765287422565486831336256132312316763250994692123251216673864236998126210354908716718343693757610465734864559005428874400283564976270765701524828768498754780108651456968722954354393405896492893110766583863344709553366918214739850755784702481599471047176257191605990116983866012552672420534180454996488649892847611190960949193613654706891100078562538897755058758687045049242176236488298232334181545813706191591218114844601635615187015257006794638464669105813593747417896898013225901151064741324376894904319978016766465664857176412548772467830031182769321663195305633248291400683574196455885352232733781997862231082495159145504428008567399906644841058285847819250068126642099677970274075443275696620493587842298060113840852303441822128537552374981917089896868115764522496842335349043171707080471918595286316735294730728434709895892925231941759451245399879965877483712424793645604492234595157453485520546880598256811681727645909911292736055479557736481980125752730862829073417460230523300095334780611740306071323402225166515373426068723177077637716849026098429471415320498456997032026354245099130973495103094631597084240038164171021042656169431752655238348978735664730171852414560219879538163604513678177570907133353709873028779882945669858716234705907437664714615367502623819631513406360637808971498492211409630329627880725902048668907199566253710367158362474606252466599137611912509780143160008755676548630792323637807987116345366794255409228590113362617038728043199424142828837226141706783553475724231848860259820599492983715919009440250272997802945776978032996807045566776962060034444213728351984571577718996246624148964565368119206694465820843571217693288911982457604297203609713026561922979218358467815171301462855438978676767827280219894176356963527524522472128934037519109356921881105429794404378169943862853766340676061711995063614917462111252899063338071195379820714679847008726161008024240671633332924201782624216280049835090374526682775143207222913374794674906357762873902708882992704925120461515081728364929376314639727614201860126901345524983378098224564693126458201672838148005646805426081460763167235966747411307302031875429435804628437358193665523530205675918344391016043675027732974379892025149741869851318922738687186026536767125879155190299366487075460424350652212312861936830082732088058308619405521587612037735692564523635848247714243288669506637104800564243014338863214453930617460301921127852333711043237271910381395018648540839401152915966782979609275012989385641675045011050257463326340967528630436551278815599015898094480554494486302659326951538005278325027538021601805670054298855489757890351079331002175043073487842001375752322990035117854208093057353823974830868122362471901662067383012884353040618681551155231019032241429970780746552100182784576126742919029705366093849105006489399000365180415308252522237512420677317469916068539480055821128315531116962147478082208785313989191723210129889462163033601345421592422886641609642497425575670727529019564248503834180569171289973092885131843870949115392943005667485363695330305314503107141246502638141531521247791203223627582726693177539256934264820171812740562521680885762788206323818348319087307508915660631928818606930520316354222469126029316199261711617180273098802275687284772740402493279669056017910139902986234863479932308321483714667414828554867989261259179321785911150482453236746439665627002813581172556559659513032450745406972314276752246707370949710028010971743197793070028507351178142281303151157807925774938042717759599963079378605293614328883947174591121755610699730214371567041806953182139672059816315576812894826070294242347806821417402114660538965148352580029323131309814378628247274374372961236444116874334794968737403256755399191962978718260875736488122059251784964474072173039536961485752470989591674260352413098523931725104674929668155377404538332095403622912839797709340115595750296202492382552535969168418739744533662920979830404710646903864999643810449526467823649710236263685852046416305443538241217120039198913559140495639821796125779762741525394566297745797533969360570043647220157729333552552163363566221572792381257271811008374159883197116365478191911133813792080280941354093458121180202190424945984363520806526951820090048632905289909698457627063876823554861195233445092261795295934292008819375436251331046735848269976227225665779372540848235196954663635390363271104352731835827831730994496145343638566155422374921231224598761049143710206056972089468696029496457597937528708959972265313220246907346835946954863626364224737582041055816663999775611563861853056048124649232739188737069984273478321995851610407563876749393712937787801776110311935007606135068694828018121777393484941609451421690121308710037974449779689619166948034093000139299288909994928125636923789295527807785045276781377723670624942246898413753697635638829972914828552084040311116778142794849287523186435678221797797694097515293113171919192059518943721597959164565439969409974881992025981559916443311680831354736743118694968795649522835668827469041140448947723422995943221706516712453991302046495969461738391601862452366854971075681869376457296325728183729007016289646491531718336102493959350029087486079235739753118748236248296221840403324108620934987814065462875444298167562649871782099036445333140487696076066384031824855961371531230157271109916350467721823128194683486897944138707185634739300289820059604046308231925333136459893413010972986546382112852389398025256877263093880166642932725296099785283905218308672347127204145849902761418300744740692744282772598166871537432058767607305313341266356422297980680977871061294867466092493233543216911975559030481549754479128120561515488925501971615444758944354207928177287258723105620980202923019004930382886491442347191078380916371650538542639480796935174496070347865501461697643927340861853924438370216951992323836946408017148091405987939780997431225264466196982398756380271558700307858228566794312986899268329580423306461245157350309825193504095646168032536706464559286199245221751595582063404186972581001763474265620075226047124134171446067510442100789378475842098374861348678861500322177417346975442352952565297344049700554577015853707042587216619046639400796934998139954667265665521906198939422935358333248232064993779068976213136847361327817728232245226267644167722693282248343187172540028193620489184029084960670435012285550384888859876949571080443123163075817131802393814446707656134401398148698781039369058156196339715184431294717119816800986000754681856204459030237110722761489211776474069399520189156757610168235104313823354885545735814852946714956660623663476925082319250775327648514667822692464631531689170338683688088080048284033447808114070081029872113079960033519859808097089168201850631408526012996183235428308115991382685789269477380655769320965330709798685015384751755729397608208574652399550326710452582638272724555076218962466636612576913938177820601992576039682992710111133378935629090355038134602420487342908717962965360975226380015000326595176388142649671728038256435417887499025090731929630221866144289073982827246834636077456449485835312149483289510151574696727632345188658734674841072667912006546704716113728524859692322786814385683529287498854840462574656927264215832436006215134147851933283553556787094817550192000737435603512094794957462786715593046701419562861933080621164075458568641681487534639821316766678451139939345765287996585623316332996406761651428745289536089377096599488833546510931444936349076627632340280947665130526757079389271134976521232975883805875881528679439934135990140087231052243379706626876186374999141538865417179816877264284335759071875968650425782150736080711355588236629597244398575504709084771284527182833579214609258748823958793887827179690433653104064055668012252334765635154699787984664629044110695072145122986082950959539255299255756685879673407122496971156411838834723183848008349874179569999100596545011412043053783134538584694005032219847232763351257949370191849794903634114957690786983556819087350511474851041980256929012244855875178316670410260082417342036090286154191806856496548349799329926936442146343304171204749054712873567660914300710228365501953805540122189835555825343043865806663825287789455826848866169036547813505493418404184340288458351886318369884388505589531359893504684560242990230742320956322024250264962578043598286390049846160932596024181434030542586288934977234410616684513226819073206099632169688119245070644098294737914931182771584861940254529576384721183702560924317064523938800464746282555843050718105825148972539942254003775251071434934829416336851554507174272947607946432725873050336313244786648825567757896814059478676366901692667079513675887733667982166662972543645614039383193145886766633852057782236050470586802671622785047992969445827020752756684103032764244698971630400969815472438489743836761126873247727090832757148983409122426942258591258136089821079330427441030177045228629358051793303919374155658756979216435743444475921650741626850023540178687400896546658511322082300836446424467123657155743940817142007323524076389739718659689850704143177170672457656990676374860019581805447486778769273220606697249817431273343419252018991182076943292009008748849749147900391620750558130633414141977107661014607640387385734152545961927827647702147771603727953252773427674495090809495292559633466457986634553957591073201990502556259155109524907718374734888625947721964527547650883886437159203371646116012908543014100106460637838072063227570013388985121803610049604084365579477151133527879580516293486676535620210430210833355512597703044896576402882700397112131457037459222549907203702306703934312225398842467950571909996091239894512876394972757257305318175586380245318249400661188911791153633343704872386359454511186856234931617179597391428321877284717651306759879025721171698331119011578344794084630690472086098838808096622282304800093061905980372094443898693369737722481819465774872740887644622243154953059446234792885052322244279907798848072503332780699940243095098314252370284484709309847236882343462372721208138403883135160727906518733168713829275478608484853154094472678007809844930832671362994756932143359177702386573654359592326888939937496142161866337842868916067823915228634374407345997625801207837135025206489614660005979318709076875268359711895757059957148998873741320353254629268756804439460126154674877611974086883493619660174144365175972903002200932580999260172619708961004312758912546471908324907101340571597099151758295830076302321188324584260076782127153618385309281755845037304031089650424736221977951002871719817357193848296375864983251575482797973589067910428722420696954971316925307899267853594340993619345875555481279884362780856075402188224252951169180433585038396398107122484707760938178919417837490205528396611627386519014209092437409697767854014103541551083126170900090160796796293464360011948465468228282435898609696252956191263378135287040841918602471177610483474223783639661946788563444704607377013621660061003858663038313794573735849371871545854331605299351070659787185807405892110206376090550171820348611100416351029778275424588773642534719939660752593024437973803174695779682156160151730778515583422966513132390287133809544214005007581710773590917974786522790025127076055178667175812834993192255534583520111264199443864913460233317744109372883677364831679380573076940347052995749483587494959460437509338102304561546152236172627753009848231204413758059732312862056459993910222730988730802399884498396869201020378777034721693523298899748455617544497042648301782632322914328605689796793250528295167871036227915575445023070847002349126273653843501725568025274790164766580030198393509016626551300934521848875358036990165582977364583286361895128209221970133753239015600111810056846746707985572250353064088162992912862921861667356804833763423444584275114573871620959455090014663803149999853906407698004688496050366493895071426826709690630571511392131105090035266600943602606521504666826061781679262338441861126773996303597735522007345043745871590564438754787938493533952010166757457513321810283490057162889265165768631893881192626195376594680979109195051565090237729492598637817566807569157983833555680645425625854808003032984083743337714185195820909083705255835150716098637875852674029967230427289421491037278011656639055983780643940752687080437458446794749237155708803682606731421333757035301007498394460048739637126503262623136835691822894796590985882136370300438865625368302128953709178931156411554962305327776338750361222657502354757414603823354654847095813981625342802341581583940449082384052334914767074685471122751365350319243008449581165817920804117459977881060994072166436709373967817100235886628368466409884868623996327965659768754057098857817849424496414426577435216592312031756123959958077585113771562317275317141227359485332546358487880215621630369947361841493254543112360741631464112867196903185892756255199371401651671246785731437276568468312883127787060330033041467903318557677765594659782909019173573215617289827473581162833801666568838927229600290269059473510011035562656676632155542730021992458436582395443032803715178306188616640846411239347581407554681610556161628610313074761195456012957857400684305212780369480518972441127768900768076683571400019634803240919777014844768028015307511803144247831171153721205581538210276283947168124423335315624128077075741339402802343017658420723285826886698694352806478312227547231007008348324042848288110045289188611233978819184330399416008759734098154097811332348480125857134612088819008992656341487596133995272489840617691624507458869274147476655624735468639874803780882387580799603547731604871172120632687792215992764766701531955196968757492479011056475792645733227843357952550171363732353878715109689378555817813096207237941199532973376686911072345142571662264021273019831773027923411432067320080601580473756566228678133414363707226755003119335509439528005339937650719298099579061448907629955587994151746774567625901809944251525032293595335628232202439718648537389514869602735728471237699946917822998397830618154447128143753134151328760389818984270262872497627460749727808081632521364273411092310926697562857940104968195585214433771584396591734535657336059207024354021443966040426134672705792647590780035764785103582467013042666972904613545280400910045784116503609348250708611150242295944566622344406693984462672526427405256777521799216512698170505908383272607257095485516857769775477001163187814845308247953780421555356880155102525408284755234808277276488394510826860017960444667151557680423848508448849362821657942245521978358880136586149712499716075610784414137229182068949140584250193661354310969057967508192267289836109718103405871592979327164378861819841803094681166596692674056405015763109256316279797491624691299015135147527516715311306763410248600905648095782806913124342883367177568535210214142152887727891590172212423099076451376813394845340107928325511453044275470385082530357485789528463619661597176491735798611160620372168588744138328081345018528566175507715252238333961192690566098726215382799439088339749491534548634435396134668660406364462845914834161784322117110450048335824978358662108745624099772713393146667054878027236533564431231062931706676584762477736283649787843081153820157525844337441362140790769839021093409396294129669377614258560686664099390059288259167958138307814897217982007389690735363261478110729689924521729285459894302407269847623948746137070541374519438181998438323055935939952797847298173770791407034819217555472203062492361907041090070014673537135771407412671489118910552533447906299627814385207360255502765542653424035788919570048861303055309085101317687222823284365590647962605971575060534857991461957367716986261573994391362224629066400000657443700185897825043137730996721973233859164835440907812956088941974181367952775313191288837215583998329165807121785031944044333142194508963566931880439324433051909346093767557496409435225188726579705641804726687552965819256649772076944974954968261916784437096014578830205520322024941152145669975763709871106312742417306123614178208031489894409747961117925294885663322859108714278401305367440462518586788871512412904408763774224372005183048450894451303237351089723177766745983119561185285171763536787959381485082861808275100847346015859940599393629560415317889218632025793918527362061144998580710067207462609449250900418950236912038646150988962427857513539652330429345258109554581257962408998904908737569432677903750655152973969084828671630442376390946910475859626918617203448509745942762833724813529124915687604896035191531622707704167649949283443859912184285243341071083142001659013536471176418443959688430585108217129493305531054999275988917684635555243840123294440310708762251405081384517931546655683455137808627100981560880594686033260226268788427192196979248721828970105684140468019604823717581729570169482466711754806703477484707007468029065655039168587199170205356436965517447562299199651018525694582310109374598482044008941398782791348727284626861261427854149231306375823915980215556292292436888333163010117179262617344903815121523192600731139582367896366049830982484371878822095447369702882052177631805495528761379886552057445350488416532243504302737845431062093480294998076011797931614210108026158427672094384338179965250023531125933067976071816251600147733753255427097636077800797091946592601399906015099822317530077835970972936511889975230541412231994005942599012926638651829701225451298256174093135936827178600228412992051455471597527488032163925519220872510729352326120347096809688118463110480097031951396592303981513054649518701395295605135243132699625613733130109854151581967069405281696139913903169228890074848224827021192372030993039031201847631893866666276303837312746866534807789448494417027558104071847505606415655216068233470540801952377113623717764594044289588969772034349048201589492764644779301061989830827591781402506205512136036290151109720616144700606980278764663865862083319946246750361663344788053868129034589898160350203508484017397278045882164173952197084560238181592609687478474440851369176605787473456443366063201148329754171846210403129514818373451592095928651860062171471379929948390592664714150232409426008571306337117962273720121722616681022584969983567452756294159567731296848477246815029192500559976671181375018664694980950638488762519871150744437351914494751355321067862996834977852640862810714282611609967090059136078813744303489505650416722916167762729114283031773435008072243360006720460097878875803762511862312349160596245822160946335823104182532918974264797901243434770401347113748849709387985041157867273815457802192737752944588709908352293198768975981019022755586141653631981342517673511162541213988526483777875185060355952306607120856714910742639795152096834524518752131859194085609529758665803666211246957796445090948340667924056209564541158840989419670719960984977778662689081912370160153719895970511453668684138865510114650245996550827602094148962443448895952390389988960995564441252514981086374905962560033254545610229407853550788093666091162029582818145091636216785311440264547531726049992855067209677141204033271476063288642032579557138397475449538581764466094058506007093039810559455911412276812699138553222802713301304961055040666268736891607490335250829770168023289935860006345051506406297698052757888346275850796656804056719080768292052747125886061680186868722207345971133399806172714829510191824545149838613219489305378722133540274101267535241765558592665408357036357126783647671219219886982224868570904192242179847903411531519041426760391434863329639508322065646341639702484116701275427148310456655708832011398102331511221469630192475949275429259582497844511000694310826747988729964664195145893208312809401837051535917036224082503049515444471514292814831105044524154859732459751016799823448840914456472605880807507083565144188144250366881220608613487503682138897620931514965296554693104142397897478962338817694008619334928376225049973807273853948508866195395322627731309026672649401375495505838126980827042159274385557971570165020449619376027557707468279431276203437329190251701068113320686702164076512397934838295168866734887299809449465464102365733150632377624858414720510877403038652672126289158600899485549500824933063099707475290574929569824308353763006267366271803632344046581681361982589413664554148046064154461063262698673216153136969335710879137479548745589089217277700776575407699901753923978552881655991787236494959122192604780285078754007618668952093268059348046085960910232333613830095068672107806654803068481104937299252489706464809324625501213708264093855366408176502911343109058712108923609661926189680186020175218107629555584660891180485775494664367835272761935875412404411524267744546838766413020126286469887140789323974355930841218756860723402402883628837675418337092221381289510136032546894015218647150853065872807943520615940849120318866344787443999432390739921362717690890440304426132816103502322641594115572525522751027912461783517434772053858793311131067601518469422012386353438897825895482430215664875625393799386148797298165859965363252129312109317216975277651772354255513999956796301432026059775890009824437059884958898825770479801062717230335259056490925857175729967480122887325373983935048259827518172598681387430208541841923870725909034415172529758425568033945405607969878513536653908907448242644343642075867927477360981054384869878758715790379625632713024270580853552181392865615483334044580939375864120616041244938319424795302213013426401142298992363805025090545570153215167315520765166590892665004519265536205276613364834579496256995691446934369048955471869939577627686878460829894479129545348417414382331385536498167991447440899588068404667078820300693792397779834856107514854802132252892762317814974240313126492041737365007201627034754811156275389353488121502587159139113709624398873550416916398083521469372728391027395664260971593593729108541176162689807946992649983792428776822623819257294708980439497992161268366647398311177203909465659779898576018909691326514912733139554919454424085221773570669757751214112950688831841754537187902880040770791993320293491834321494464806801535876621022661164543766792365226476834068010684632107229447048841258867305846696146887939490803463188373729154788046577971585151264413425902111939023836083353719144137554662532390302140366427428837397483179475357955529987690723719220073708621658598664943071541448239088068519349668427281064612231737830713532869284979419610265306412822868263689251106067539453637676950477742107855055866839491309197968754715248588987719790350300784234979121408371047279659786833250301494798322096011874032740672052450647490289391421623217534164208111808825692107023234846323861221650532255720124079163463531541391038670521491979686859977960194880124595262555612681184071854770455630874162123246678747325017513164424356194555998441881775577386207537732111186740648177525143580832448408612903287361677691690463312557668355358726109209713615316929845668772868504276493107337822829395079371154501056971549572021483514692647414698910143751460714182605606853825997433247055477827104616323024343327886409538370260112207404453442580185415308074850367132964828556641172229609625533539762896772302312966523657499054560771838216303210821785310758668804155059129025359468529040181627556899502632528078138811146121642857345229576222500406227392389883471648689549857327360536726173086684718090210328756470967176886035455420651894648990496564595450751858310050301890466246222426967266414752156543134627017454591166482026675681305808493389489264218380005309297370620375411186360762061309435831151950428048917284981455545917795665017376612996649014336302547898722185754982827256761590401923639248749468045952060190022319657646776659400425351370307503410287954812097048361819181839144028893228857481147883403899626225292740739262092101931420833635888833012091803453443124432299926028569507441991968483792120249664159568988487610279103322311855314054974955609892493013979696520102656004140092222701191946350721142321932061195874265374213027249363477568093942776978454504893351065957765218496168801649572843925339098257161736272124144440353735440263517067172642239815948317324408824023650081206051847030988088345363892876838038583872813764558825114704347463275927640488290875959510470544365818711909608665387679514935697447299964444462300398762665725531789107385271914619518571069656408392552187050773800281424044442526188507306530153645804500968479425301582177656468340891934718203799813699977810253103311585196190635508519994153596265430563712479708527328338500029463499910044829156585595395224789162257746078325682882246842011148935606595294096461055854121115594716442218657033290332990435403491276195458374685438956259969409095172654268374134225922566815793364843847489019625810693946286790554056463649912660075151081338853759778204896143636275063069991028448474371068396028118069721390177657061612338993835833146429083140007428770878305420674659336614311695869795457778676641857011293301809857677201938323814357279046417948654782392560605022068530618610456287864203547732609918572087728131384227348794621220573852124290051204432783812123402069450988327373688184343388690047538521759839857405168070828763194367745449865822544381283282815294978098397757373761092730746356836772956608598276717773379687122113560528598320973930926833727268550181976127726045129715593165173076668244233897313464483693454978240520802869935799364169873451166885820259184332057249414260944165945655525659798366066132143325236760090635341264791965147505707245306302835546911691687492132342237241523852508855410137186976881870016622595286058267701855055330435356978796324555835339732412000554193128336295038289100962844511985386378741440596589851387142536952688636667289063595844353164977900989283365226814012285643622320818962572904500890763429688111379947039831514765699779223349463435716337075443108127052641179305414105729820472804313209873842761725960478541773867414656660227986983685763775648837992398105347856837515502799173544702091336740318995246192110259331811023749821531768858141465985243857391164783402000528741303872383449176294336053340047661435779334639558295218674430339758268101280158520678971645610055189677546674154831348862881429741270818144812740134750818044700666442487423487962155388619922720311030118728902145316209176147623704477619336229164991097603186271894526731022934581297768559916281044449596820084668886913692803217909538313540338358985459568693751007336938714822549353201185615588769507673786339000332401145778533272890606526497906816659945423369830882737582781436999529870860416650372139654358360804650716904411023101250989704538192202918373710623084998334629030639779534139371171121440554761651725543169616980006864145658046376791881095897282389085295367103780701113665392527889319735035460265128042266901353053082254202786900112740576102274862706849949232259645307365439951345271004242689305052355434838141951325177058600134234006234126417278793743229964539069268133721833672763632539541259168767840638717710551858682699025385464522606361613424108101287615246593327684887801413836857844486559202219383709173893017474835654863003173762150113328788089571586726276377160084536467421133674748865163258358417582722108017811935678616605985760708345253157690289697676180458602802048653595756840461527776310254943175697186667718874530230503537450448657927786045345199067248218148064026964926432923252270541758084614098444066434587278995532678061794315484850539442327410179875834265627439000633066665786520526272381617987815197498340552470003491720183168432811949244878433832466692319689251426628481577288324741442590502486317921320284513927378137475131670743417539453025190459640638381956811022985031132220102789762106001496432893568848299139210022261947814477901075249828698153411077203759532601791494955456572350122945592174688830345719166000277354405785577736414438685539731030790117119977326167667630951370316149643181865907826571120994457198120461910345121874727403695696121463232683424423518632715646141701732800400693362151988498830339099374749779906417676198370166762166172789260428017648528546081127658046364287062420474135944430117883977552547312529934903389951365978085288411372841624707164291679575999590197190176944820367842847083548795811622592078212477198735800326200434897332057782693919596477432701375732703293348041498666719050061445538692399632661482703362358153030854340024938313484177900528054883553490056926870592106706968207889745933283305711941579816929574557890679349014905220580211209958479470581892782976026780758647896516739229953494134522032869791538193316231201551260026650312188149301074899157925298471362830445189539580623779792460989867544355823866477711332143541088749709202640283620113986370370831048066781824308906640512326617193139429616555204704866317043049826207596866215231938797544195837872001067846693951333967174036361267008935114530825444927073286078156014459668617616483584659549822246221950714369144902381885185565020059441327099577407372999034488335822455794687460979310247438806521527935894163523478802062438445448549663110540568435644277885040042578503445043962430458182758252285631893402914215740369678303122460201866928031974292000220160447350519418841878340414376267535441643210059896867581324551519012133018498437268242078437686191386957328415145939074514260259213226761770968066994360391762235174680624603668634927265795428380002296746076729213094371839054278821931429444709859429816052504503977618621923787496630935929345302975633268384043009515806857869420318748327533150145942927007503758418534879277990951091434445930731619495626368592275493271354272994981490211228769462408881213182989036415515687622471538090499463421957752142296536926909771618494805075461747982134211567923360749924526009093057159281466766466774928120740015326871248590407290671115572596908487765400327658871738132978445405127218232034024833132200670445342775546750665040730708069761291567302577654125969296602873640983433470536531526232845451237484394016627655535336811905642159145901362862341772786036651688493104301009634109203863503111342850565739976055636400409536777881191230323381513682478704623685098915252897956288118178618463630471356154220569099173397176787692223549399168032632983167929301399322193328950771744669920709675473811403281571474978306952839575406816023022020904091921774043510400918995510437244043475617625472129539337367839284916040995036344210765568563460121610259346614592471211062285888404544458240878407746519014643781628893577571845076080091638559965489356911030551964334957966985642390703372678828201485777648172541642197019615080971381458214556249013314383059674538919411047925763164559596942851022654626906365649262992776078434781911231781832536386136317874787455736042357176709807176946477685064478980084188088659518195839441384577736641784193187568501246860259644821098737695085304656219681729881910631492293920052812997792253465053219395337761476056024636698210866598490847164785007331800138628772824979121020497352829930379057127184031067553057148280720759194331099617604508859557846267520571386086789319876176732458463701010050572260546508301095396632317047652662251911590027430398459007536701367051063219531495373326493346327876939129741302228108129301419948710335128646079098982709109381377530059197366925289289274678084892664477735023501762896281860760274775239144944596197510335369843063946489964053012957962594701148871061768082477206702752467100789940853064051347078732123814383784242927917396107426203634579649966539761078130359552407142694148776622831590783109287430964856982014634429159040174084384480689709206407958196854499161164413473575285604714526587877170419900132672296599410526594815249146361548842323883636770142474853674636531259213270975874457813143226105996457344423308212675797252023381978264833502754836529847168566503870300276762809575814367240825152902955328886312823962557383479291018773039048868633085196012957538997324655078755794244882173809462303449900084114357525570780670359192160787893009378471869756266175609137249054632228136399252655811231970519274926604988583744230665130038131629410788893912074433046451259078150201201670463524188716729559357529491795278449833595920151942401960367081870146747275568765931883718702877588806396214282527678051784902745562602031463665745286792277176571724314593152297391119700106638755774481193910589779425772540830386748487464089107851825870298039858544507661471224537743319449999978567605510471433132026611697532622684583853150999660496329842326547960144495098793257525270845346501461357170216298294182428471569296684988529273775805487994417550111497364421465503349237674583280709869917320370341745809672855752267426409054882138349316098665994003306639849874654639110947631848907757631041965121357457121862573784950042460496267240367951371649106329541433574347971365308778151674083482459952257438285435367698217805318056345232820960517882616674213676873603573109839184816541493462129705200797733685318992874513589078934089679069545277066010424452477925087098784058899809134625862410132715856747284696143403067637942181034534983881912659356244410370084321065876963054859066855597789206718734060942889065503476017573642293386070568351677786925475945024084812720052427261428279703825961847708094820713538821400911093214453936027046534821422930167047857414671663065826105100107317700454766651063558653063613828064401377057307684056143449434339861852061433445009275852331740341816824449063748243554907895287116815327856073246250722199707718931252578518525963459563157165742680285844657310880387697128344185347063929462989858044854697386238911938643340826110030909913067595415501929756720957259621670236757047721159253352745826401181026048391355655877813723040480470772732470278938207308028883083603161113399477460035560585260008629655853853950906560272819394781551026586735189198247885527948695858219073327344106338587539140994018268221916332597727425238909693128873812047048508557552220048854611767792117713449846645534682025032318896843388569724402393726767437772574018396881317921027207943371641188302962357400221849615122496929827050535871744819671482768424634599429802451805056057424131632948329743870358699235358447371237093441285200694254925637364494489955936475281221242471124367596770681933130277065093212140986504001669091059496529937238063626925020572635856703879951843252954528503218927435842258923001893161828243137248675065428521041288373986095254825330173690114793999403180802482180573316362576635614457600646660892585147865765482358178914204269673897047901579172796759868078993584479551675965532063989535450245647265014892852955873425397729567026986204180869456527022393843900563043805362052053073244114190176575243474546164191211667733591058212568900542828693174874314643271785875590659889622930897054793727435222373510861015656002374163685053941199737349334879867583855422814703094265744196506443901549897905424738990013218161931277424180109793591155018129876091577725552916870662549165530179493261243158376608408925726081927219037058718258307604844799910706972261384067211892899853065558744106461263944013805627732910251840462053862727583919974895531554305119280123453801086812305174913798986441256261883174783395767906898090786880829282428680606702839927117915991837621527031734575189128227603549756621270524781070678089551300904236989898347632494037172184311280118264796978641179435859760867173567575625447470811443957506178920725902565548049449544454135065508249412654224157485085530333336124962162964761991067217602101360417458413392796474470156234321853598584893337680557934454890918325966037823955262884032773337427082995531903848405295897918640202627854318339329385297990135042987579155633925575264019833586346185322134911282875871172244788912183468227877862304829014836278009851815308617894031872973152971682098168583891072868015155890467354048533747901378322743753608381876884202695925770830486004400059051210513327918760937836824044105696810583523452182598977607922023514620215190058928811205884643572013542299643642236927572448798820877383364450376501738183027871387567936215143826088219418022283395394672896866537276861648572112409354390212738303812471455520092815647540708529595242462637737837825518563531162634749413202931958395584560542549882297177547480300846730922851443172466179699011986180109555264735296666561244989245665762329068379101598420708078407465230901361136110922890557520438860571694417258988042469633571371931805753267855310715666083991999097148717234809462510937033172788605730370253990873060373100692071359177293551133848565866648617346452133298464417805917502169143714464127657924199567717903091996598308581326368932202653629930595344667670509941201812530577854116960020171201884982241778103840090421872151795836333176314616105803159692600591591253884536550683848429596896113295996945820645732196991279265377560348139990731314171570632154946625990687695343262364274667976859524020702157919728898643792189697495180564248187151211755567863397653038217355635275553734800207120304388341749752628128801308331973833033768716764055275669829690487581783411368980020304914605161327802428267196716184411838661947141659377715470333434929435962415835520350635031063045321729685813130826560510235090967104700554618710637538562390521432327300797956629944404469823650521498762929026341546614088008891278808518478848696410998634041781009763363953890686961815006321217945392830798666934043589695087781482013489814747467600742193637857519222323081228142828581302379527367584518255556218732649567333326119025941915264088222754952536550230486623418372126633529237359005707983206641480967029291963686074434096850040973388830075125764564974875412923074268670159899506628414546675511554533170043381235068167103835886003801766273122601077242690656049738455741368464533877963757988150854482067050492226559220480631891503550875590303061415410419830066948855451783669868658598416638145707697459755692686725992304635458698199359691737842306886703389299527489371420667065877701864969466119524349174570930618210187333696426227281324056991644575166669898632519923138620380908596079081550985058906519332437521937938973049522223993198807307513493443623990891786361597273445096253278708713876088301441229319005338849196819884001118121266941537101236348988492233139243076815624207039289400094653676322726131948931940333661858843421873577521683581612590911172603838516727765486821106213124984971971354391098386740002165878634308036473237624477514853828354186771170727259949390158585932460970620362061924608997378838614016899440613304312960910796838021323511656808261273978431249637604735179674040617541836010841435006680880053259186419709879495042568095849161322868797045601335335658028065319664274412434477721111716346026967397136148566470726605963226470255366763626530224758936858379684287879505525636427411521706338447919668937854093265443062883991856513347615768416887197580970669132056155876101686288372508392416672320707144809463615800663822985417137772081900280514208446853273824668686708458188036879926841326992816499010743888474123325697321696038902312853962537043986140963225131659886402377595757756427228248044203799208987409744604439895243226428120488196860239360214341777088997096855054971820242183297445456159396168754979539180464490829981266045465138023079706779485706083128708902680831378688583361507048383365018353517679459470379473981318669783501261220495717310104650668373521956941931649847589813980986040827377665515108023131058529008326123343551836352853989016777182021883720741834887341701895702495596888785640217137510293541520310235895478548734352393407515833018420237825319685632372926854148351580603837727434610829337662131626248895038490053191504841244412196315990149706845182998433641484247116976420190663448461489880990394364645116412993092972939880001189703190903822710146653594112010591203118083780502072866406535695072316049218580356936704425034972276458865818227124175708357402393985003845395708151790710245975169464949619551087737589732519785362651797204795409259227795259965190391762936579864171512789103003207018646151177627486711993761119068646920364347935526039105200739400852970773713043866219223858981757726345302463030273030891108704997017680406100664486944072990444037815401583744784300339079658372362695766378587281956337729856429180596882385788697053351727392785212022614829027931983758811864196809639303766819246370039132630868374095500547740087559863312005158716911313012421501515086899951496495040839258884164068005264768096514168593642785086832212752009070567772342754517531511768143306502123242560492731943430540214083415094743219593783312700858763630372065503745931339493058800227451392374067842809003548318725986169307561782994030741012933703900861548135701854453093693402513384410867554423323778368335375014663343648383789262340654348558691751794143531537409775138696911693507703010283502282503135859819798207208487919676945785604192898715288433013377589072006661577230355457646615221365577736034880385294737602966594197977726516149711406997384439796329867433142333973372386707174945375548228275900276480207999473829770622079852573164524288118466422850651696583406049640099020744934332229653587421047524773911834297833547148173071631483264120192303099395756811731222744309608087478559565669252005327301113653320994343136005198512576842450477177215223331697826165489739368171172811014781797849721250000558297007842683040591777269736489125724635192791807190687994724654180735649420466620841947197652190621249220776752493474248189084305134178552278037231276647398760026250038086485714101584301878065337415496735368376575528077900847285568320857795814600324245680417145045779349594884694047224332430062663394244837135047080859651441816619985845186146228436723388193498814816765719227363371532530260500967183064320739109839018032823704354350038051746429414615223656129781916130209289343527474455418909047237483852674090705489778433563399741626766793115037298643765741439088000541959318715251919579337627189792286478126806089848484354152531302095055404135320191590968026978917265517703761382417809648323741189743209317560562962238385578832836596098426903352054460759317010855385318220937201016143225999469418480409822029389442996713023664568717614171646268958570849663594798105482579444450787966312037594082938327659501320609580416229979053064812182890023624257792908379844926651720920102305025737419758022913454489978538371106899854637788860592978905142515304991288395591594764312506199824236471659234259574135751491577345990878032532181162879962654255914898701044819639588052206626116421247942847367048434972366274863101593424666085096898382049449384059814817394368864725194949111288014882893585038859438582109639702645000109106098488199685366790307126130948714834617701018248367178021210080732435256908335603283964873388079195068667549767931648511386088077390834043713895519863088093280929022063692840357873220610736725565292149643855155319679008485998497763461082229635286057176664841726045203844732812943520945478493584392279624524262062596819010893965260589687262077730005443119282168944430881032391017110997315803408656576947939886417630441787825100432608507926828342027268553074488231311367099205749171126880069739501352137152879517672017978892518360170699050728116613235966779009111489608502242132823498149689216332227818561635997830071902846736137538378172783601402891422941785430961575600994759142552614025398371537458373020805204301972851298979819448180988856223096142251132977607294842241744414476044745129476034824616983718427062206971837460397484075231098842899750208610025569344280127791222367254452559180362474903439057787742085190991115966482363115173519836233196607306427864850721445600756995570844795796533239124093708991387462500561306873328524339246267017724459420623991642936929367827238625811864972623506671897049220530383384093274067538334183729743684163010127147673831535362682938857699659281563777448197510809515941569134542347083668465273561857604046348816838065457690442156707498057005542749369125096300027947102600962522441877392841744080060543298911804454452433533276188128527395022764188843864229932731001128933533390541281947528113430612246684130376337491682937100829525986962803682381726579923244879109419107209444376381094856466656377540657464912198496287895964750459117239680185643118558354181348378677131646307980880847024374114421220198696031572203885172479796193035389366039722487544758445591624303781802099478644597386219535737113073962445161065917453758701573723126318764603833233754301674376722564613128597790463886516341984886451121417040299214920513445436436669197826644423922745723100733475432495302388225285162538954331121196133388363045905671020317099782051783675424167936339368533792954378079404771678065785399314057961419612964139979031683147680528692034363053810299234504962218576456646213495353327889137700532665634502555685425568729532357488109870375511309562226493295172934408771247827668152612080735920396647172938980378430154644521113719716215752164112326901797895151402713334984291739994442410197531064307780876991533953460991098176227563669087712893777785088227654066676190765550031564644940875976074175533421225204812950812417646582320589364035782055107818591075969825803945202405267191211850912066623260130567966538401964372944938194500999689784816917686414105044461581815282656392878758693958455204879569047429529930193203959593279762291513247563729436924675115695882821913476041021398882842528285097338174240494408786337274849078568142479354111335115221388945062022545857875988937751304229699234662488982738435416831829388577353713346948706975186669123210805549863543592518137351636364047067200116547857741226469634096617171080276455602719203804409044153834717789815362099823054335399743081562300142661472884658787344483723774936634566274506171241035244921866221443817150062456358902529700730069632087160265603575675437699947071732948106270717445085555985359520725535520800947621138594939247752740572622141237755274330673119535099788728207223166489596319376685204522958907679362198210340130427206669586753936036150570521398480864155109927051248503145734885689300337826994332839012431060319359996262867922714394022936010039716824068756913047183972892786206270481531944771783752172148106889741544816664647517721871049074489613248204617070676364263980795889363710671680073473155534150776498049694481864462738344802934121620934989191473825320712421339695658887718335706494713031252049725333344578971320298588866206636569751262063964129393169374081841216218941751346009760034107152619918888879896477936048989246580652971206383984733877384921841236709250396438172351769842126196687382641877904343486318857041424186181455579165220569445717889954665450986120099918167522190479131874195191792209111716383090176867483306259855802599077092276860191859906285533784006320409836317714941253966924009618693817275263914856998657187241556999658344572671961427258068656130705325135267343678705329807843562164414254473641498957668389838997216936991919834812869019061138747570920422951319394023564948695717963642631627160532347351913821444198113399519116173849190812451876982680419401673339944604203562478939739956152965512224739205832204737200862571795591986720179685350398394090622504099126649398064347615444831405590596283150164589685529370240585595931779648989494067184819631104756878868260438811489780189961560458477359427009400170187131696264815193412102679463956736223818900762475142449136961584498789205691215483371066928674932373246510947367165689884800836940042505359734643052174377487231368189668426013394244197072099131434653310171271738170453350195950268641701074920265633659854066488293775454887305022287619232309184471224651806690938560406607258494534804202089856291979781842927935160784792941445772177765195492996820991804695088136130040396903704444812401654663290558788754453166371931564463290684612845503844175633032099983550915021715935411143884229138039431140059569661427338675538692364957958706220634528437499332985357850900141996008050417957206422887768711228208071366238690951918374518520779159026481552028980951581933313141559036712760402098762862882872119286941992918499552521339881401208940190006838695105694259575224159401060942487726412286392449046970386299363264567171707507383089288807018440156190271115565237335663724602259914825569611953222659017508352594538025880013243737486495960095803100679670790468496499669360024990839151501985200864959456331224735262783158919937130298858779445604798732780637144148262936031782406522588468105515705347660567088816767152158420655048368365593416148512744978717840984767214656320710510881213404538730087205315171772113063739568146741487287981062730858984571319868612106293552240603221250291122021919543042007188184197481696522010886397825728048252973072476258154956579799141182389653490847883053748986057498080287112772916826080330589715192729768030303063670031515547207582566501784589200830511316742079737243680399413300128896675485919732200006237659171284670015956996198176061001074207787097304079283928409123466963710469750823902403860247698038421190184410058106483966394737996210350150871609410268125772289075853224961583108845523883894500066343366224081029280384775758090018712268611810660128485215512854947121963222572467309648157718729485031017866778962617113125750739058195143080739260261881007364881977442025222497422716159555602034050084865427796910692283557399518534002724372650448733951759014441625976577446191179133033586668702538738628258259382352124538303917945374416623885865508864305238514216886522592389449918298973255429760684694094796286731628739655792485395794018817555488131700455609986309066464991479158143004654926134416578014783442071624396251357899852116702665530822728193806890467614153655372104383432012630120643642666538617885192123149142852814222542857331151166031232664219126647282461759593358486713598412488382257421879566791781016913147847690392247174300521485836585083103508480009994916421005293876559468757226716517576634896948097394018913081947268146371878858194028372503372328993386001582774301990435394684833226773440025324515438583702868360309065800293625361298264888372358603288864954373664089912654955189363423834244187556478289792438198526589037059397196531090753463882785733111068811025420886960461332824532118088043081214285341388023159417195099316119042525067336033888022783004276900906132114692257142677213010342969137115531467096231993232364734822700967830053027526386312701807960211376738056023381886016918180450396434681693125868511057385864433695132096814048496862409924855479094933022800508333710288733428811304719949209717230064383315185022526747033114251102593541301702386786686643560200730332522622299746290830589898166800172969156602246284896343333137375170442929300515432649457372779406212355878524324807166536060127463763227448106846111351626762343382174584110158998858290280171509181513094650010751974716076243402589840934205569970400321049749676948783469149024318995048052790238819452602752347397600593391788255868254058709237491650241957714424294153658341366325100658415842481551839092534245011752480085584319594714091253391711842990234176331505569119267017304360139197529866972274062426825521962691675931340332542169184418712241860298336515491464039074605516646293992319536375234871551747493831220961189760077192336764875154895059385902460874425194957187755521023769298867376643292828560407828574495212345001422934074738585996588120960143896281332488585817069949126432026079539786032973680474422070502612508402486636131496973885573350165045008945444671290808538985729134882818475106194394553890069081697596942225866441587733428588935174054732564105813220255206983842147934754543200096686152174586237104618338055492761037934636577979018113414643059453855232697095295681964665635106904140876117046180776292157271894228492485910893893180118944920539499170942335360845332907056213026222730800980995962395194722961752127437619543245643110956757916903984410687589131160421420654100947470075581419837814136159508013061325401868344040114629322650828768657241557615596018432154240724099674356962609420667713158577065095697239980898619249247912439505287287254476069295198644436131016196736916285976884815001159935792271204267426104049270572474863085662309385530176371155688770530014244357943276879343315626779646195025976072464688424985627098558542512258192571241823413062010030287718439704949241852071059281824937119565932657732253922021660429813086433515619298380572796644800956528293496039100244205014552480925972242811123097369599824116083417441022218216945989114997676242071502155421331228024503953146742525812173994468045861980001300486030411269548825819906875427636995543366291968947023209077940698149550685664480636889965785745781102441367130873825162832003025630745923070969304224911333067624131335753630933295621189520833991200051199691640213231213865316957993390465335600429565010656491978995952129904887890872762674538073830415290925290511039684196937592157055359969198100987117674042847718418592451796692281207107299956368002711083071167206279958915324253159604106151952658040777132150133361942906537214202987142761293820217218907253816607809407939266348223249479349442390766149110921127719173242130604532894575317608846491255349101966818719512684572354452839084416792211847533265128031099410762422990058818990870861763291261323036390916158681975055065596524844117759872246951202833316835268188437769175787412600525899749682303832159301831007685012170136699959369408754247051640103903918678155176946737762312455687892801458210787670135180299104089670102645664110345807475776536671811786776928551288765097422273199015092223762293392162618538070848066330612290946516838187572207732096801647934971748686565043989629009059009338301195052602885557995966213049887961250206768370203629823849290964287829229719174815399370471025696684715401157285357673135866416710553717778571994370963929835173265318268516553327152391764743443356978604859079205151962168399876065776240913454319939236361317660130668050464931383458702458210210033735725450094899228068901017003080850482731961119542365412742488429246804337480714638282405689376282834415719497812864175495296453205982361649318412217904241202077142890840799800879773824497359271466809995096880671522410553873822788449776245198159843371913519301571594900000878076361217641462857095589522287631657786162054124826468554800006303910371362686591020108742863107363971690079701502819964607328915064088636254537526454748164768420056002435052389085659301685162610015832465705795279073740733197125264818404071710583796874024123890453568619383873697142438026716228388688234450315347239269393913220097287839324092238193613266534401637405520935865086627579617096886941090087057399864714848780977172458317421691829485466884821997235176731977866566165281672406251839917613619993307648393499860714779784590064257994832800758440294399338398129454898392767720978043031568841682781798045036625483406884721150184406780852386957214061959472874383858814151230512574393897645407641836597881721855987914750027836009216860676601919247081520619257985736324422617521175260711243062956838464058406248242336466795813741353181157669675237531752630429416839953273599457500452734033401909663749694782070228921962145329245773857802390982251573470713512675650258775234105462152927242866314190237339955363744660658707208677390969873833228718285860130782064213546259859140894355847279746573364636783071368180814960711338972334816443910979934112902901262220981393911480330003584310913862037835923361727777181706501841545848272762467309207239027822555842677488037546715562286843999289801502303797905475379903353512421674538931142113410463084899262015496344068726899232701180364070449726703611485747536120981538355778638498881130393084816058568710380930711319999046694847788762232940397521973859486296222383059317505527513058595664150877512961742965417371581267079326212586012205708771762577690592135353588562915382353058910017572956150401195191416640689357537831613858173478234670388673486836218101710402528474404468878913125011481145006069401250682353158811391823354500286577846698584131235473303895305507062566530893279975067337314891313656117910004944810962624746482933064158914194458272797298477712608867232080108246819130829327155777746572609437068039939214198275860413844189513501476823418766878985387238893789381480542633777042851418053223675593653172970013771830547723062490867133074676845902221226475274516804536851016398974293692751183533319307982429393999545245219423156395757695368634479510248215618556197244508664313580705217733251777677185327491499078532897998383875678906610230328100162308928963932835106442797489615960713065003923416156718495114350816864596710811960551190852058156862734416499897436861738251853848375325970556598139251895218990157179680455664577552155660154230418225150697226653043700288438005214101312054171201542862797036306693820942795606870075410461768675492199533565835963946284626543507939987698554815506497739760117407531898837065467854309728049888387798510086598790373943013500120036110873743355762015783836713350310192173182228447468094219658093091372815901593411434116949148279568997095890237328202531752816920514193931032306078601547078565870143363916328165319185241440218489434205169703471103712295099339506501008356760605484050968011868078097501249936716669653185561809953104050126902554057085013924425662547803561190042140536279451383953886944495904970147769947971009418803927735634094417151833445385599129246869913338296778371028854022455588520079645858059437835778273927932324811804328259880126965133538968812609464105766920484089690271654786161572884103657772696538582297213266114444065924907886790461888568214445814223505598998162236039351035136994816614369016876619593360335269332386914571105089024332147388072727802737257580428290315005042953064957574603877506257237493803923408769473039592756370425284815205344485919668068478902952972436030610482065869319760851926646214846479411958936868336357305178922783557190646153971418998103771001419784813517230041315068994483474212453572528031885324703397726962784732016388428883171092267235828246835735610159964092971632960517388645349116225917192733045788599210275639415062931491347053503426403972740344626324774310649161326254207580484689472010366203235753589386091895835761249493971981846040552770848876439411432770281222661396105826295649601878185201623830698076502819437729571532605333337403574860957030112224026511035508319603366909183552202020098982021878054398207642332291928140177251913835874807315551500709403395528630788854255128382388536290642781342399242995723720972263533620685540175744198243781777988154688874918550735392866624902293115578590297265093050126105979767286403024645270797512979213610425463000056037711037987432411486617010344986902777283116310980066396380901810615259790278279792264084484627661545019002489729719220350232489072553181401427868707003157437804789361803891487681111976854985100346412189054525620297998621614798219313587132830501509583718365090786816154058336631649817288750231908724095767773205183331934491690612380467286382517086536306724523331808558957344704777689920180644330647454472917799145110896546691401962598852427748790375941381970148566671271652412519248394674351385829838622032360436153934524857577863694084233767983549634392833581977513935142989407379532012712886496850859153074630724464913883532097482663740827102052593133338169873463944662243497029922645945324537587894271262860490370157539997785743181914381131778966272602433658803632211497360217430969132368929429359101840966079538701079044235711362004060781135693133999983858839603919249989617772737243235659689785068374728121746553244299177069163844690757750482847156031468260849270356385615459198225919124299214008237651881931124331705032143590045180845665625141696305503994955474554997337366824326972429423775119056462959591769401080696924233059077844350035603571328180548795469166761831239077558123678455563731287134837083141335509460472511789874536024223768224106163605928991001631014306725598721552992619985370831248242228634110265671077207205700538446773312312145110238505310676788348422301446616638072102461204216912468358659665276007379408210340423636379335196375130435390080470917686559573044414063586260432888106459888010467135417093809035800620879971603798610149953522114557372924007353892139060860639189475369678865762254987111747953495363009717610208291213244360034708589996044535657351656479486570794108886321489241906879763101343474051385358159419915872896840746077774782779399194501492074196126565922280470172184554437698728893991120225849372246633894304176678780086165670033657044716301624894532297218569538853734608036412841855245708168991450674422951830031404310060185166488363932747326072289054997304555124849512895386037764338252417473867143645305401993212166235568210319120243712963454371548149546516757205509545641810524510032156898152001688857058535584778541694654859645674814343487547507282666197686767998824804179282816515444962544341145967623809436757318440741560693272750697674940334095157486711887345769574566591683290303337198494283085392388141952109627010294794598565278333012266627487500590530041566192199004864455391925472128051291540876485613341132094106711573432865395638796034819390573551136543338583060338648268904778880125816196057299444197318891256037493390992262675281006755313371638137587780103855274006257766685285304011305329472308423050555767136142530580733890031947127740282663963129089082690888831097547910432963022731370626740852469790373573638591437469527649041571883494320931722618521513196078891569848459332551238315387172670213082691188257082846333440449050089915999333473663847650980730543838764172183521765295749898657292506783669103111697146545683671742643211438076168226489065001754226529901860426728507535669572163146465784676841892258759041874510128629545460968476500336780748854726744090467249424551972379613500816971655601678856486158885716013085725684865131531875900233517695244839922581811908422967907975110818348240943689472133067379177303256983284699400975557459671187624394895803137959612855663212634308873917715245814165631678915176384192970832905646141117585272566786301069760934433807960119486666806064433430384575300922264381136581925381427976255969355665927070673136317030725788451662100600084155369589318352634780079336190432726672744965564030727836343546540040450909235732677236455285749708326361383366135008089972301914579617127509267898256366782363332955109431736975258812518415371376313897643893037761075088796134734482175323312082356933111610259838769938664838452309162860953098593781394971640298443197233518594790328295909126230861771982655080810333508479805275583123056596355967082060898679786095440819112766415909025428800307179557643906867295776214630118769140665487857446724457051547668613124671123452668215791850055632495966422037702120070963781676256302889182662874871505989026971023205299767467982166849153629244539433038782271910957842304817155335406282143783027412520816407691120012071551357524396097799433977113342632711770567154100901127740469975916999242359810947292410466824394692368404823147659757070692339483200475673901319661243496793614035695651334249114823648463113453985005983787998005807202061772790606904278194970782963368747847655380235601896068557951638991158290692535200685305499822877985933091047901443055450812645633229055308576973037773395619968612448090286240545900391137019644955479804402709913812609913722875592354907695934236313870275641838131739022794664198929297898664177704496279924228274692543296648226075072982560404607521001956672753996145926904895180438697066710333395470241383371282830547769301306500382392562896529454838820241202033758230053784077408872779535709702202029168921964790264168823643122460293907160128460910010939121180094083754035031217756235076286406118311889119165638278391098806147062190674079234103432286406712763360744788440417428902041685313412798001516695074813363845376217731256113528646171374843566303240982422454283640500105594381281986807640936487529731198680203311273894400676250405953367686416812593034011233465003824808244763761224263369627366636408782240023406467943727319071927656076338747729011258784393400132292524615250854309627269577634016765529671887690231405251537404701539987879093692435528531673026642775753417245515125327255014226023606265044759353002673448193834662927648569622787926487559066615810591805597976645054846511232439543147658430207151055480572705786066592291546390695779493921400447033867514113843165681857098810380186552904305531873830133646484422671841762094583110171118544591164716821093094944459333367740192873449196952753761006392305724977983693349413854310734425295438747808673293417248520864362889846801890177730365638653102670937955708243239713048172474375271442064379828485549063692797378125458670921878975993650102703656028750487361430543930698540982983286857881921491740985683067566683303764908431566013714787300297812168357542245404153819162570725606405851736910587386010899620543719279098077132225630991510388387358479424777940204816290269197232566953902956966885612323647252032382227834850899740427203704724417419367166150801840920489823503443275934493571893846481178472832375728072163006061432650390275120210850890798493300203173775029962964248041584882466409661054669908642490234042911697273948967030937411142396547460937813642390897659754686066561578971956904683761812491087870463999434548922310644866038852996478838232488658121225192469497318502392262895331377970825862260585169122169376154253798790573680894383546776302556124789078543176382098435503976619200933874877565423532914803766024681181897821731381506102003696357247839833956687943946131945630454434641837357133104717955383359860314262139873125627330702540597709153323478884424667913781935417342914344243124896960986025850732258503409350955046520615104229604134152857738699258601067627475586958576379461689335917954333438019221753142618538408877604646430517255667836557677509394179698807343953362762159704856733710749144131502013161240334689298559845546671227975942652460223959550352966611738358712723571113948777301559812080136054963568445918411406824558023179876904596684273090142083241005647591461408686345382559194439082282298795619215854756578021648989721807853475725694928654490515547179736208194113626632380010362766762389985475801879655026318496666935381724718129443085642220551492863686480163037730099006032533006242998895853008123682019070941304230511214108261111248538542990722836093047838685041100974138891578504092459131560410466268103794083499278893239564633282133001790865236676747382094296645695833937744412022677613067622817042819340806771109816247099195165891662501740424105070064849814454050063713168899035349293713106251009049127563862275344194584142074027143444720227594585388431858745183321319949811673417108835616529110660519305021381193712921661841362167430732219151105638052154312330442674631669876123713482172281055451532216717382280778681856294642762197228338661231979381796454146961225154667894208333129858982669921718618723858184677825876980805233317978534394080896681200900163071185233977417035637210683360116624545205666626326238867763968869175230588887967558787627858522325786721975534332551168128845379223921679541856153505657319538548552690107804788324112141331655278252284859582836063007391549731042957370055526071196371371072609448188540445346306011271520915092164002211008080201157351423936980233962772232332055738661189362916626675067572627815518346788349035231756306957672290203728848426202785836039679909770289641938967887184791994445077777272460219851547294204865517016839559564287106593292786590345214881271367531284757217379103957657201387183386133942306672043027870231467327544554368067507837692579062531397872179127239152183645570035953692744956990927132428529972830724765995469460587756226773436110726280584446456516897776571641500764638646190595626551709688904308720073501613148341718022669221052163396225951948785864107859782094458866842703351197005070748643727304808183843567715383317161970571351364233678812491874172933848876098888329972457126133133437255279513837474434461259190579396051546535722367538413293836060025736488657590318440587161862013477659970053307510342546967464114323743775479741639875319103758180861026817282223856735666613841173382534299917900827870841947602031971122637715426898113497195526263840623684894133349143393723391675439306656817305759786921114701336463977814679868878009238843829068968805142423284086283735122651668259855802788311129241476106610160009623449484881347938682412766126748189324896006535220192449809750493332595798760035082046684835892233856189232215585863967567950888683318201186953132713012346813591943570944991297554261036428276026300637408851827035134834964671158879133370753721831853135870619056515231703439805928901148486021343901278056776792995098237277504935524924048138290324052065105432219293954843741644809427885839842357965659837463779729118648470460326447271552444657364319896511579006015848601714993817145953822938885344157608719503300645749710600307783788566772029260292409733907547480677014824265197862504921798703781619783939055230370587348608238780791057518775871903849949915523450743592542885316454405253511273145922175988679330932841519595960501093970872651624835256406962580641375492354669490476085274373761870278228288175123241827474793842599016087411272638871669271785577105917718861489776518647192360604153799821605815448107378681288162845686921583206064551765416708848190665081203358509990907425764932188313922910497841767869063527001775974782771456884350612240510323925020776798307164317958925420008418786731457774566115462561347571292237422301497973260117178516654247691556661422914154814930615370886595561310988090059006592157648644200957797754175709999743558726165008519948155794897481584074523329451968257458550606033470852954122902252971854632497584834311776946931884242644813682977487985549012504922681043852805519633001642207199880619864384890752456872926062743237756159727070143505839685595131256525848936811882245920961263915409039571833123710366707561833720712433662368741815239913973837585980879837998661805646943019219673663394010528814362942758695180764823088198978432018300088917334635529778179036641521139456655286089154712345040063583649052375851731444215461704874649572548442899502970828922534691376489886823052825592956949221419648051934667987660967530951971091110804879596050884330476364984122589710825206458368715828921314188130281732321107402896146154053599967957657399772636073114971230809772269263002690613977291159130151034715080270364244347770696121463560029000757068427523081501405338354814248033781310232511631527517851361680094971082329118905871731099068206846570462242781996339205210856010100572598265803842137150526566672102138989726887278794749351500857193259983900394744138542214396951058792165699970415768419631671490911974885498554159114815032095610440958276336259417771587941438987058273797418431107693093212423924456571371464666391784999379493885170918138383301599436639589676068166504160442447333311026941780050465586913297093383480608564311050806040275903554259805487489851282612623531060014267338129037722565526991882231843559847867418141537531737217066230752350816740072505669034828775455842164897663489602843770455304512802573974724230538888194249016386629230684380432195518193425201103350825586425827206074061676421162606144725821752947078808279565262191012819600541049380921533856340037915450554674999004396505497669688537279862684031539528914065574233136104123559482943543728179900333446420554500473503036701610695106317942071136463348132898943819715408191017301718148757704624143970871232389664340213828592358375676832398332422274368237359444014208824067101035098638398496832867335193983953166412467604377965430701410183463029173135120259736701361204354840925315040159282138161047301218573330440160375313512598541457236174227443671402299200032786690892645940290115862671605500540203768690921814246573128728494404167511266754626187890822850189962399216364013376378016111075714980006322691991362426782030136260422925268125467057429853046544142392581840445094546757151880490905344053580016712762304410939772774756653808581692707970411823619261560687156104660371253562925989465332069326464113942912449400979456952931997758844622390402956970277031722363339443486396910070934210745652705496804912935329563052913778799855621400897299328307939596281378289246882203897656030941283167750037913556220169324470986654960106134329892152286534300532561358903304084468196173787625795400232877903251034556654376288140469113220683663462188880266422991044958387225571092630298696225467172678136978865998833636359365729803912206050757258167627785276347463662248228145216949136203576646740192954660075528049757409955727052347759199613120895007107362118079079039806553341386101533078391968806857511465857843641171342094158245429575807417619016926299011356061823453483184958699831256121441051232189812211331139082251888814267737950935515515049323306562186498874278019851250831961385476000612374370716280902125984009588162840987941094037417524252252130817424085777236482127257227760137375706589217016135191011959501071817924519280015846142624628277903144058563293576980953277701753399879989818676085550674971503160727549931039943642719526562057475003443757237168995357365804943431760401326691740715965282080288912231049983650816643751098900640159672355969924516125764288590147684148389904291020094614606473492642581599335908121032527584089120765621513583486365054963134367624406515331202084250857333594324410602803132801195653326823757065398859671377459451642081565290840324897641387032325865742196495541535148070578734071050821820227277234877043822459779446860858001933927493050627150461067550704487233572653127989834233309102339682608333250493566235398358820098587394831309490196419247575584901523823208835708422850955342052391841155244217766564017033757075713459138495074480408705263309606546517271841583561019961136255634219355324527370455629892896527641450832255472338377395458130267448370593965907972662538664096682003008727063127249865227313770830097246733954298687816987493460130285750544981155113111073613718000542347374560552940451388184935142670271128426910353640253581308998089171655952134486190012276579537468577683509199527423188729469987878551015928221235803320701503750989040303093324481405955172038130877555384138614617170642972630939276372721305268586411820623864518678869864576976036983872562798776531318857043057517692306904395377223173984876364001825861918218801549883340940612115982837953041608904440912497385697546153712918750005737152333892543484651978102436617161122899482633415313601055832699279008648328952120029072112073096365310861027534555874535700969631056526321959142596946201726524382574320389841574797793891092284360816529373305414551136533095900767940836166376565714776545535003338253537074202786321767713615036025351670620310551875866283371835922777514376218061412314397050228401548143213921143693751383837595753516754982467131580822056811385655120962352838270796321198937153354800899123134056817639644565547649970153191261631827756017021658959985526191845639562448856077895240906373928634449892622486136174703674656062344506796781435312217813196483649418758062330550034844299099040106640917563642202766514796977979278851716158288584807621694983681999823551123008167066474425655524741260992276721463345167033286844555755902165244162995689242980379033339998327360178872260785646983450196664187011910125142511557756789708019293138650058855484651203779734892732329263201140029181184866136737992124123909035668975945754509775421125192397734742129725171410439037185269051497168380215993703826770401357461892076411391208828373292655472883489062173023876987623533753660394544662968870720186715196911250494025549208614397180578035220863146558455347098765756758150923785517968545898914180516110983299251612833327247235341576126820716617553976690745078245698480346137390941963570181944474556663189040700907904278944080985479085127485750366147616906084217017442138929257288449513017260233481380845158305183672094537751823139478697377000790073959101047054123154776431507046746106436680020743874809709588909968667020184101042841551969175064577545983889050727623328116640322757963252712536340062700227415623764172149145496520196238933794242828248042473895306137645689151749444737521551335212850250466661230219365633712726672267196977654817418129509495980507058083011098310218486292616749268258891250480724242072837224510088208329251992916033919028617017940980091472391009772946506676912852066810219900378249156964484169025639443474982118694750025052829225014416062797459590848992115888025480690148648700489710751666113571998606879610930245442719780557020784674453498245029254802715531780860229491930914000100248336653824949026632917944899570562594848455000439817842552278754740241891941094720508961832831574140746715769811983575062060384455723125347661730603321702027002978097970383514401664035508605806150525249189128142112043112083058389849638259913065845902962995000150362871433303063854607816791055915090200573957373413504461336175817370932522981842885973681365964231978305269200528188696182607083380900523256986224776508828701753285403696116943732637452590303073909409742763398778999438313749721702872653434742479964442835141795803407788328006889640502094935428877159688760075416171462097663665966738699756386484303561447850905507379474847651160539934784606944819956803750726756855687110931184943337654193189248075214431613139514768758216705946872593609173417298758412318313147551223002780711496956255992108431044069125310802227181036560693911117084070562231572262085949607411923777788535755033003053711081681221499227598150843980321786946637886519483048543482668960594840084879626270625082974855324907542492303868067430535190037627721881236348892119463487485973374816030377275515597200141448340076771020694885146855528935931053941626580271376478019936489951036302672830251739683940232808442647989949822955800102269791290168637756130646472599533241694503177506102243052725816471904477218488025566723505248376099875591598683068668299151104592161168863256003357433742395036325665610160773906764781634480405036193689973390905350647697304609081216468507175521782955491788237293336540339756371314933327927375775880078940197889471982372095728906039979125923300645179765496706676667602712867771708863799085418185718539413512465890568046988855852815568925212794730536737410310988095777372958808545821497739328890758043763249563670606799711262977258472201570027391754168549058230732391314505261980652542609802080304577332131748301468379766241989873887849267323843527548123061494297946879039079695700897635501258147065066632552546811837848059386461073664821531803755850062847293456581598667162040940280589160655060741866979103130562588084553762881016530458911114280415280955454658627209086819667757955861829372972330939515137182467873213819879945500889187668462441236581504568224502270979794631121520189574564823434324489512770766420433919399806435664837852036207899082572683234094228037754834407433907268233634458150456347148077773023089138597106743650800287082051689249267542768357462301837315489212431803895086022815762406454903914454352613093144336906311617952044113104887297023938702604442701203817865288623186798134138857494563542862314075860804918920310886240293865105513112295346595231003084127102287580642405940489416840567422769376760245638264762597330942193012034512750205632359622505754733195644687517057465464727248329387120918346192720207296841173910087262180787169177978439488302014440745826042039914153271460089833053877394201072204537182324060898830192824027952443423743863154179092597722007070045991960284479184129066888679280984989133276861546953417623332566800044208853160222656129514244421027641610314122402631820523051326889908897554297490771139891294890671511757926990729821338328652905025266762468684613266720638048678784237608957992396004971427233753876188181820973347225350253481408985626383773402756344682443398266132467165816533854744365794631484864581647523309222091563737443474112841095577896366446947196546893330592490368816917308572144830405852516142828191722791899483704703222194433752693727524980313475135965029413619118878450201214559212544822247926221363822125748803749109788814750243077068319441265089371892787034957928464407967453427155837737566234985031407722040992793072195997722983136607313168872114334456727959017893830511507385596506599221763239080899033605015535944347293115169048004267310954176124876138418126843172772883709742932026620542861783755543000727820644947705339501386700012887101674005292901964708340304158323713647538542817905476428651518269114883865556798885087090936123279749394700341235827602412669806201095984450786590431040726493901751765712792423239122476300057825572800481091222277755465157926884894694066294143298633637567030852378370633843027695345950101697317368889724102167071297527163315394098833109611426675338768977754533651702637375272593553513966413173566375688524424046221635589443721732193905305219892399459563607528272000802365398515523124032101469121610390986779819257840036031986567913883333595538917313432988007838555824680535496980770856758593197953451747946707338601907286887821085222226206607712685980068484656363616933797991858130472448208383125869144120979019446208576752406086536265328431359634454978695428884538259209781420477667224410697259254125558682018003492137061010593205212712675677993003442991197296850285994927900171925473147478869956841415208226675047131983050161804735505490595939182294658915842831766982738887331707975745763410643136025873343159893878150394917827437645156247251036187405570706272510482495472636795639628754024128224972245721975968010248253298982035076330351762156474533708061713457736595890107725214637418953428647544371869943958769201317642040947233444878478286339969269130092090855522997837687542169230615606409705484696297909730213175376922359039414892832167879258043760992018079714471794055199843599271703319351128358430396472505119058915725788039644805640174170347171623870679294224539911458305617249866562041735762307238418920663515128805032613777134977393467001948448378648306892418357354430800909576443711449846510981827323117903692571879417864733116837813001299298495625503918210237480334967756902787880422725986445716228691312858714141833039064245334809889028670125771120805164556937044245580142362333769255803495649374691275980401935442088122374460798177948156600130553285225734669363232090588683754064984222899445868227868257976433902495152609367775220068706071029289667043753836982463697960408815325604184978953472724402795153951874284733929622403127521774579026880375408496489395084106359361809386808914950159057378475197221353667757574083329048520065910545954091433904525051840234653597364568077279999813017534691643234878182957542748643302216357051342900904194381710395344725361149028754733607758775179815788339214853070355469568137746306324316406646201019981994930626529347854559277785709138269609824676540847127091789816481437090988023599771549670144562562218414509407918467606849953150763337823693362050103324351599773168260561905147547446913326973893508087147879529188354362023273758735195291638852055082273300417191342312202473540625949830294514667942427681021913293199834553353102045769590812439787451489540392275602640081714882178368917785945094623049111360009872884242966372031056628879169899453980352667024995489843579990618674828671370802061833574747913635008599632335950995161637929004791231723991671520908825849037855851903944579120983606087929940433489959017231524723941359517762173123578306248517949373900181601504695672627492834042813474169015547444378545677664792525187046970473770642925915808152791768470537557948541428140792833473146663333431503919832357903554196572902377916535414318992227483482057032150878070261374936814388637256930342569059096576332995001308004937465028308457698694909429255235790131226378924753586556324743065737259492098246937905118029844974778701830085575778902432780352099963629369301425972498544419305204815031611027473401060276868063901257118103397336829345484878236421810436988134802584698294643979587642093100101321531568704500405246097901726736880147980153967498015147172136359511771494131337074282115830861282677563632179350288315762802224359515847237908781736002373107394524808659348350595012888547163891309134791746310366829219638749576023985921882864061237423821537270053482357636093710487554526848558452582961299821908795406373681759790658923040512262471989921328057914474019601441008453110073144023199375125723159904383113949169689798272376372355915476482320213983480850806940262073936980786529782633036631354179314098686026401569308871814677137452727341504588001145694284061012938010252584991481839633301696466174163267667036966567168699129633745218854581232384098192474446117351969257977789565148715557298828767265780284692852156742695128818024901072772086477268621388902057344055405974122627825444852792434031511572761293912188717239695896442374758257047893683678418053622697168220299271963881295102202675992638181875799326434437437421612174229989778958868448211904190615831298717849540529639463411715054125014523611825331242962650633259858069644281392020677084354876661721084801978305092320633488670207672105231594371273661270070461337063152047602655042939705445730847280764620429845769744712573887462184217766883754925072252396342031317593296086227392138140624220510751757700608802392563181593248390344523085622526196901356436156628212355219387354298624670237392984558893295300986789959035192154414906926509398936866786393326377948331023842916469618516793154013559269551736964515013780291895074926083663652685011929429514139996500715051700371281619662712916771892582434344892575209427015969371046984300518914989270236482296438960742191046568805474685238020243419500967387035948724490363770539026362514472267732544346555056793421391417689494112990963987390393001542562409779403776063379246903406935447279523900743179662325382823393695925955518652825764508448398638820132115532275599374184171833658101897132147663525880951943608500294944821542136211751474877639727516314351083876231246242533483284659106830021514465867052980921553348745113584751871214983199734754034353127689935672901748682710711066507653781848764842906654878368190940204020621918439409760505791981358454166216115344933858070912414011609355219013112320832443514895528282233663425609229734325128457730213803501914925062371257334985256348875592009331304136310196522679012295202839338425772522926855703059978822505249534301895618888261216194745850554798977440460616776781540573781868610026094083526888361596562325676367924459562607414491973752103916061035996538726733094425816398944305348996012801555147422263826190851000322193365477207543541343742981951431277116206622768277570224210744644786901106350178248109890305063704672239758563215365250952783588555641408634330982367296680498349977802383937387179664717499440204819428542683236841504198414340638042049408144331170590634550078482709624423206809438595266760889487678899426204230101165444397190423788959320994594008552155097311832399855496690363363129863714744139897937241721876664453560773595698183917066361683930434582217841894777910668262635077475000856957066118521318236412198941008732206834225064135071432960140507043644225210286502122708011325459213993374621437313912252570274240991307205555511591513465493605206913046765119759617701507116256009770877181089493585475402348327039604292863973355961484914427045801678864163316242379617396314876301432543036304317504009839084992124972355560194162603613243171530804880882810257076974806151327759023481449606964983582535315240301868463748597406586256002053748916325230236356371122239658584525758705649254505175567731444062222205920672083958689280354325275548564563694849696830298628788889344214656859167651285002788841407331251773456166958411932668216571541201953077531533795271766742759160967225997540302392010192530127067497756696348497119282537102874874813041922580125701942592370842655863967734734599954268243938407567879887079103611817316037024121389459781940764466469653764448992654621921392983606890675957198197761018005154831961338436005555482758553529303547692802399801772877720695093461133322668912865238646692103591953718845241857053035035117377110271580185519359610783362179997283115178050682590203609412202106019069909816657785579716112746419136210683939778422302982027359056170100160025522920796431577161509219885118111055193621690197081695867060498629376589623375176146072277571010018011852883565819807271575293968772828248676299504306264803656536554796785502814243557004031378117945672019588200179300397375282948560219682943370332627634051143983278735326270584223952341342989514471958839761413226582624246133181656377617960890542221234217292778336244303470347062626701946918286302903426074650804087721167105377522116301969545273895270454421373365591451547034772489127837392916279372263243272384908052949586447921539104424941658357232836748175605333404413752904082180688018207584282740784271571164718263252035910141578459628062402638595593450960493926622205507973234080216212079343191450788857038596692251538301662468698032068941263711599890579119471237054746175020427114394724897716169691022403834889583657494369931729260742328827462001075877973635963328168351881748019046690268066866443925069825930840319766742112869048986900944185924169480792351760297023974918802672997679668599805941590746920383241628993958484327558231806688833210003664572364113482598154432443551214338095718760651823222625295288931682011972425441477452035590565302059577329000757058370311457615786442996179888998521300932171673222769616971141166643900685231931533382989568725579065772275358925714931041433175324677327910675913929912430552892373666443500799235537065317572713497073859901047132537629703108530130407045784989378754785167015661177744022633652090964579816146419989861510920252280935394970642234428597217694631696883536793159000664083469438868182179021474601519119796996490593194985829344955457331246996415295036440740420991168441181245646845885085465792872331681199775183180425263204030135773270557298719290688206505147587975533383534912419346080640055980878865654665238752522986378543648174385276972056384771982642077710904889969264757014431891462022030434214313068590637808891112137108538577595128674509397265426722803764336680900502033549710143341661735688737502439135026557468002815215137091351794686257666939201696374175258196803207015756055086949382457317238168229633523978295781388705408085916008496713136500525138448653094108707428642026084969491938740275927376084332418503559167594169568769623934258577997612817564112512159401036723066455471051085382838901643414796653283109523504319745394224217523851409528841302537366118966104198724819862657722248496242531196031885783542616078606377803957347086042337310620076234191707188186906390642025572360361574242184736330717646829750554039634438506816726522368615208781265862191566168690281097690444842772940553223969160203926830033487885214511210890775163028967537894681142662175875506771290747539186123106327919770241975014311415234157244761796774330020569961075214428753323887752430283260355568336783989399930344605114719655976529936919029044173067355782272811853659344548083063234895041801223704291646007300682072517823704965181967615018077964452379786228353832755929688221876033035956538241772495760187741292022232157260347124674339440465042207200510670776570273008643353910879497627011665544111813132695817722470964962396966837100379617712655736441077493342808147161245330699633787858167450502666936764094287620356659631206889703376524937789628057334045893429239597329451445861746421946816630685520612100563094482507674994206710905357358231558922464736191266050968985708520583211415728911574008016954548625055777691985540167778229727679069661706681795293696299105138732917388156064405340827760129407923861121240239397730500994281991719965439055856035807492083389772125028270501811380671186812713258606013512706179016340607538927337877382263819505930643374706656436523696650039951227221896794704568935225624782533403316838824405305783320922213024518298823575719763283760407756269936711754027398715169501246812991088739587783954346503745209715605675461535181070053432138266754338283448345807715238294329591393289363811216739064134942375652651000405397016551562083396656322199363258959309466362206783408417284508486863445818837183464030777241550373503578393545377839946378812349939888115419366488776744966246124760881115291139849533072986431011794146134842847253231906042228403233238501446789317977043381238586655238645168160074394347195721753133779955906545568385022755557511168533493119367502640481002077322908661076367469373354403524374066953925952797710170166098594055121691646732781926424260963581053795720270777951440912655085398340825612383463550337374995613082005106115614664513247018377570662870122514599691701547608793523336874126460320385702864684951659379205245150882669974677365789901319157812642235816427997087793975282186019868584559203442612599571784052214951051935943168693420451772532595943896603685864145327154662865284641658278364488589696564940379985536154611765854549683463728051014014623143247217923299496815863224295788828009217808824809049074648689188545461732394947351575924060031070572093526027736355706990002829064113450353526804353334560455999307231940837746608329239727162483962452643556693630638717287620340427729923702965691531730041522981607471731885179540365292094309858316926680087446267197321127005589401853876814988147970211520773482274021395251148677894132845394377258731183125790625299453407527473038495629889723362711065507251373731437748129071738672583158477124404265512193721588227797948833512592564883977014735304911413030288670794299126174245256868887829148506552924856015360565452684722179932187749005052010850331114607736406613344026786211203466073911269791314071722757455621822428239266094097074573877746422934723586630226913550221497009707065885037062339135393462533933818356265237242472546117363203355319738767892072656463627648432903785912114032833351859567061198716670763261349873186538414573071178585592955549865357606627406102289435520749561498344283633603421548014558200016568204916867854592075026702754927076696714327319084899157958939400808131711972211252680327020341820059761492538749375720388192372250629516435664533373651245418484692280365201270910646050678537546351852559412089876558244435533928436717117582461784427224198973649422488197350281942128519043340460092871130516966766006279537744530130945147862130288942981751059375590747741596945728551764978147954648925670601468898918536970371814567721425572570077281441182782036497436328403267031213610274012052671417049319013753956140739972403508397040981003599524793249397754566483156182918868281995855090033568332134658405302971104380354930625539698659340823637594507636163716965748592701773606685945458460065938857136812347020714689656282364103404452849910145738771879145423536021954694124475071892655057718710642817851851624324259586688903022183139819981777396749308415523554219255282708242964828109300073435164324259382294225915202063334338320370423087846837045178489691040377811273315350327663143016628112161479191070438905187295687790545169656169075732624664730821591377481207060427001113304068536598393800876565432190618281342062489135965950163619503279087132892504542256705636625496439692059369064706999679800752821137865779511378267636862618625586095383997148240950869635698474330065961619081570798914686875649907535989798214598900346182833642565564549058097757336255529569903061591540604106178451631789732186616042409375757651616556737654381861558504510176208109348996176573238152751153383363966249202068356786005735204114241429409212640719783395578536887408466597376671936988639855058783176276625346484493859029220367638152008116073021036056106763706934573153742034336827212445621785156827280165509661096376014202989438937030468938525497353737193503529051632250057385738621229534468170665093192164178890322504717331696133435992210046205906158125503120238507590299471823167684818607281732832998247552862657048768318061341083308825115659776935574131723661341775538150040441270430870221655552804417089061056615179627646880679911186196734214299721758308250231182087923335154912906119737614197565752773956896184682863054278634337260611580628763925446999424744139438165197824419811893512645361475734913536305534773396070632023279867557910257994614056385146171900192006711633278246049452167723462141230495021179197464459881760124591127504294473519009624446425847084112359567016320680124624718976973977470778657599570950997812027055168465732407121262391206678889804996754572000324840302239757047081761505044338808510521132798931649820845472895755677232547416563115902615739478553310935121689519492467333207351747156324936156725943428671941299414795006895969284599567679692587538759778808479288248222867607641255706911859509426427352087860734580660494004934428475954954190682431273051263086797239683145251660725040635841139250227989462255888784593974501625883140300421926617644129390916565831487116408308046359662747487484440733634409240078969488817053291569262155103505901955734976726410462094494237364306281898411715972389935484286928884269371067485248344204424700715068404522789962035434315228505182565969979380045034908807622647650601358641026611622147889940839369159320339163957631209766221465670097553155421335874725959962269948219288832407001455989798140635469983530793184873574458025839556626793581514829631233707341776448740376723419889990823475436297393831139013457174819170105585200348424299313574577453350712622311934898706923950873672181100100235216498651966639327438377177383547875420251386289117184680172219547095328642181883502564430761764797558518456997107458481327664728915222992415417567512321294347354132601835371482296615866582198519914110041246424617436973089022319866695686926277788252577741450446067557815164466216248969149658828329326006693690609362588510744568329272602020697533050531331981079627254869295063464559880219808683579752647191125643554575032288909334069218410474311442763861348259617356105630480577967252499926692419081722535510059595077773245449902360660263489278980755776419997760548115324709804060766799494282333465946928591661629349462339694403156297820759710614447147786578462687328512342573233655340046477141226740691381377241659979931658688062818154014562679482152637655205456042997737134316652133355022225173979114716313270813002092389322424608479405372527611880025383298768311729412632220928761876702282507645449355088467402026590103948233705115064435281382609708829110251769458314263178744601637596073871243518064530200491301880128780512306595271191854591810065251884764665775521581761511786129342840887479528832981745287191964046866406451038656229054917510997681353623156135566710716197655254934840812493600145468665338486271183849549481145384783955377263827772346963697149022797590371094232401893928985868595845814962963881560247928040472009736477938884547321188473264884641836817707124841670238848091507440249010214695190369365709214935932449989686752292940908122000058824193239870532977169887563708446030431455090879723093994118252342410393559868127735209694273682251568851082179596898976220935260399201449639258667559389460921691341223051824665720072689989229399942950840280552669247633722794379895900880717398969737006280057525810372850199010519761386089124650079686274434646698490837848401292939400105414798216053163479232979234227405947471293587913882930407304074530652423093012511580285038317109101812990823885058282666846567402376686556792319057053032716271825893928910161061515536783366058168903788184109494587572524573679085313028720765486867745707556679442030817847747189423040549927603924805375443097692664806695021747092578528018941724451371285967855080269945440703504103198133826634063653084831582423511560213815948063408734741871431101817463934331492065761678258822039741125643678676684327314429330234051176918434869261818585873127506884948281353105272336365803668323150161935702592216729886689480304386568047046125177138794554387824178667559483255433938013564795015139341418355592756862372759085104147726362824343769970426859256149928903455742824141186262792679101103204159493816846391326292489808355250514587220774680376342951142763505620136833704302897374598723620337360619687374255703682846755986515065392643698706662585000846833342817460252769403765842198569267683306117296997314149920846434094923880562962845948823007472363673639081587255535481839083695556286921065035824107139262552776707020463956266858734030627519145022114751679393490384605512985706175022004502274074376657067273285542641112257096770684716314227892514112693048912421207299166123727864356047892957498116283970675380778316921043737302553226241504840198269106467668881193326427191892801104109218730095376565951986559455793928702997772042275062463119840328875441314274581795120448674082297436409582037107413634520380669554307880684557640241733370670224347862300175027913550063581759320659886942507026928624242622547022280037982118911489141258413044334393867295103334535118839096965458012257183507895639773058045901237485198168691263854515825711837471768919245521336280380062244954721821471890993115613303094611297453225192136994597842803971556335171393407533402555691980915072137529419733604784147582004238853164363949575561839893986175245642173039711827433756352569218861506657020322455592525283323946880629599960238811175006986027108831618394961705707650520186747011369433091612483297688592391709154919978682378261472902885812497432295297096253499045732191901339572353934503209472276491891132229778284231094410988162022995989396209804319479144540512183149997830884455980900136355674037089347843965673754817352272739985357445877585392201760835130296843342933774322639595534151853163676570454057326395553054938008456945190967663897036804250605523790039413922555846564462419856182221404753709324315408900848497573688932033337699245917088657021963525905090248396205819698831506708437530994997050699733062329202267529700747346067360617509678921957017185899708005695695944458995288885749239852594508596713704080201064482990236883194912448502571354659320541533893748364082694281035372798314873004397917309734488124840153342549769679546705484333140312057152969849364470848790186083112593696557925076902230537253818927391207171473913156611635398258408563946760219012856979098278512894043391727601065999525201161261169629730653966730271154562038775624360642232996449921079470376966603501581480486493410050596920465086373915316064756763326985086049815156633215881020306588856618664583631958956564062440999513377650296047242181622466322624572511302939811281761455449102788190104029789155962471443880855992824660977361361705186410111061739623221556445917367357885118012828231851450836116710600209180216120276297596437307817855201996510890713648983554402851762650576601856913878954201369271609088535703386184931623262944011163493516514345419032363255729637809188832387479149118505550581568625741968694245613679334804560797047803011973723353772622878228244946591933320200327945013562057940598879976479235868753870287832174954954558917436144142826540193291283349720237056509156022876656585735906772792529229884390323733894718565543664039021849907729467686868586497267367497785139954986764457272345273624873428311564922115275276286303088972542964297843370475652819193688770822449572300506322290069065791872956221650745152156287053424573211621271733489884359255054603157010274549369657805750369393653315167808309575093707378941619463687986222792695788305094616452633851915467524884952810874684938316366189609198508033982460704016716547347760250500459459598646491816379215623891813056197769156681285648127417295285962200720916886963955308802857819507713008449003569433679885323323953836412537305058014627239616527383648608640167864244121591816075679682829592553547064310767395492434583222856255739495557497267124814673076968706983054717090014692947212357920204948828927407258976077755578727639133573201091593087149369853728106829174489596546205608283696918181962018257886589517653337684114381481318776290547227575603532993949661877452873250980572741245211799828472521710023027354793947341026292927422507826695396457311089082864493747386824238167083530516066608454358090905816501410676797937543082836954235667786694601116270202083171114343270158839644002742008425400799118827597559464118452853310467121104888778552078674622619129821498219449682211855648471734213461686401578221960261497360462254224956091919667034083816132528013822215146157639990700353370443474000715615200491883171485575577838998874588140622727051970586537566155294006229136503839785761875062968638947924816125872749523722587956619427327635596046164774538571433733879403404643862606554361723205294419423498933012140848164557140697189186786596492359626392490114686860642782784458989419571167729943523391359004661238873982001266595137512922091171501141385848010325803505490895270609206703293046342863947138642587256430837147407120036658922228769706812061283920353475850847196673259853818782910527768892355992114050802510008559762722515671922333638539204110348531941742078865458431964688456916848008016612761873946786077339099408644268151231362788104849675941621194570428088721755280911684695088269097990221780454821902327089860841218787979897882715086796539140178396664566243722741431296322723901084572794915478396426691642600721905865531370430228963553533939990394973371072355845178620627329022274079291219216554485884579108675365900693559013526702315535462069325228877184507488758325169206728117664689656503904774879026723605098924306203264657808221478541370888937238988342302378341416731815810362820206150726620020050748727288222266089694535064926634490272456582775907018260068292910925546356059486814790383878161701208534696303352371270776160744456440906687569519960032251270958432368975537457187447170430602738729300728414940553057069134941685870311732447648672420918255265990697045874024459607755458379442218824934031562636752801601353553832099360443778445698390903564043409814776195524383789013113522608279363706533455951107236529662766449213940099725749009391576957390329723308713851073907514862581094334132143242160672164147780735734683116298443986880656181815261262156788315392091892295353614109708486669591328695891801168980282742065742565020763518659604733984343719886169760197365870573489843308734238879512214364061333192441398952770154941386680414894341619877003272401858266466114061884868821078242193976181800462113668468430361266955926368952034484915097764774399880735233217067504425758209725568041442643669876596925722358073195649797122123635165840659340816911782149193876650516958598109054675514115231683495841957158724450023072358053176974326126101400926207389699163007167510308164635223121736496203923009254471405284611586368125567507717688821858933906504795577545511116601803072593816477938972032548503729950698951552227042726566561813077530390250867253801427225167671303474172304351021670840262703775278425886437050318908353002707888922758543719819248045447988163794126604504701454881390185069015685480392608091998238523621473359148742193935813117512235966091667415302637407206691532461667514415093450992775935636241567659977808271342327543617901515906844214781437589787950888803777075612036229602419964977036702621500068331613790302703026715317194573332209741242109402376853318065201119844525913325538449269619351889485509222290984023717420579126866817287387685985171480182387673468052437250729201545598757744818224519764781158406462617859888709043113046823858001618513840837555885106038492915980018974261378328622952563394448758224925256655257685450689337951150527048826466179026276109806393964025674605106585986179949206510905320260180131630389012422054068794259063963160433844851206668507574416474840958151561800943049997074939534174419154555115986303577148442638234848764017178161108329227545786788208716533933729686946278086348350654643702084695717057177803216147377124221220348110012408994930362685502245422427967997527635112997450601447517265520697156350307782744788049276579518541295911893128659505192731034158247511453008156000196537493076521943735472892920448874231005717298063618163471837469278313131884874989990289622450941380278864243135575567643201965374986157081933111784078116160280103946914791538988988444204630407148869834010539241862795465503059173100486732208200971594150989304829322452480496562302864663232370660552030659880698823022069644588666485283423661061322804979436557140492313429828822278592902391036533085593808594923302358876512823146793197497991816430771573846520148725216917141101982489249240600730514878409511143687400180064342859237160314226317840906394126198801901426846213317285680493855735729317323418034462858410380405685463178594767032388141226325506322903716608689538462685714917312382124394810077165364316054015311998073066996133618133254010112394811050263920049522699861022950132983859781205044069002380896342201283136197042522462334170974546568020107578665284026536354504156265565663859544773533207273290489619612128427516848948977308069109783977015591152303250303365090754169513398510817591702159550576234549580722069882728743124829229754123135496808246595866066379647600072869543019171613833549072991534435770226760266318252244183179287089849936676249900501833539093300569688303791575569724072134234137213225492221844335716276485245452023842539736749788397620983617440990997994607709600574508479837991079706422257097476564512206913154578430899133840613157186872967845652323376847721946514618497455381874468797680971304069352391767872559845455021437848288392142393429191860477101709068197123631360225400167390051073292470222139504901698593933879282209282978458030968919001214309496091602417502785088942212509885806920896580411119376878736262397833848337800397754451385614938297283328991041685319778019828757117127108202684858900796323907163198322104934065665992850903297868474471190479435075296383530034577624041818380106040112015749043652863522799591663946379181665488784513520081177242454320904307723793818497950046876140133895836161605683829095436457111872456929964198134369969551422908306439682939628871742509745172990220763726492086796808884919123618565779850109438110345449457785653427880379727048640726958520367008982225726834931737879276639516347644957929850689332692400193329556279406731197353130380540838445963910351347545482519866471857333018357217572278978738900727934927869163234415458787210953375301949967615454455802110035559772395725517372178309242132009365882755191603201682835838010050358280110699904637696977247860399681506738004458900791047335120302759187360815812182692794269495092482438511772684063099888810234940775403535061526093451905666835906523738887217087383569152708921349819500363752696368194354195893284071015452893029640161138850423707625085701021801382315322252526671192184096585217821910999499365542847683141193846963052132139338525562738979131216078605170001188168120061701495613410162536964767654819213227010661911127105682136866618437118609609863794849524276271152416330431561534408770653200531448165010765581714806911640210888619553571248577763058506595666385955041105654950544245041928023772724338954660612026268202390979681110664459069255759104040464358751815644954740921195305078237723175418149462784825724142933126114461835152273621106882382587709785470095728600205192308753600735416791476578815315983779518725623289050747971032464076511900510822769860163966920844805539508168664086575769599638198970850655858795494046782692602802016937678962492758594736773085336794428468955882580263435920222156008979539954395673274256691812059675648549748383518279321116732157718576399540915283525474491160032009457122371409732003252083211124746357040914207147445013128057457436609477732394937163523529698005145768170767784054341735321368992784403859265279648574153480012701654056797472364999300815540825390701677216777389342136789612592126305265064535417241949639914813663701310857364265300072419155655453410172161709090774820942860259356956186739122022488294648196521342717038999730795263442306034740870090940411284493246063378959847767810416221221211752957352856952060016191797835832063287857662334132791231053287616437594995004904344480416565407127912829262628971535656169935052058953851423157668442302173898820197365882576605566191799801301808137581317624124773202677260938839435458760652862343646223638922719147167411998606205307711358410423135302014236911781095365771552061161473358271245284760557043062055400499410020846330640064641569321844044613553456261544717918404682230837410651826210751380122489953711835283501259167215549427297125386634843139414074938894061057903707036698788869956940138582954743224440246715567592608758247102118054992759573667196945512977002166271742056592136086107548212869463524236445762027740409990372705605573915759885844475699568113083663399752482453594600122368595471053127905823730594765125121709098452141853144979947564468550172597963917734731223032347011989408865598428856701440528614430680086617488267147109848509316511097321680382510407812745279254195909079702998768940050326400005870051230405987273215461813666854350751347452793836871346024592656317968044800115327311842374523854172077564210594462251378257897635627052822740296616795968619441781237377885544203854280707659019236532516623349237603502858814526635174928670761639450576568568653979339510090166972038057737593623174541234343366556844950290704202041347096914497318699720818406413012436941693757024894517959839696546662045025402710436354146194555530551449062983326188154081828948595046200820647800920833795206283453086527731462028675248741268278364790739808975850502179497333060826172813112195732744302965024711721631792615049741273989059015849987400981292684962763910603235821950008882092160175651437124323448056464475000361688781497018140112496375059098921248488181040996210151587710301043572050553586393422494658637151269949226878199483750111527389586423331642844801741297617544065257784945599856231661794522195195231360367970610869427990206763049458132224869582908695006636927415904876513378406345781554194578566697979927755058169272092383451511339817657926715480585397345399024155759602248379573222339023414805044582207976945821148271867360944361578876645670619082469686726595839013728060602517306732852967084779213792911412599046082645838938822537358612751561411177793568114518627345941152060820964327505921055327397528871224030601885745221466257615151963592593396069277342381706907663205814055449055193143201412654080093504084858536393006573364117726181374031068799990160367011184586629202327594854608552114985278516380794772393987808061916046329610482387419550100173109433401649082680206277556284685790674125057598226622374016804017150387328999076286311428326071503959780869468875290474582378176475511868591493766810262649016860211016138448416415329634620086427973305785666583794914220726249237913727717537641661849789221921875402599619184845094857536444979816220498837243762338901192766514692123108272846399247180557459604961551378530417469718347596395139974317697032058974163014979481853316450871914577582619351245020812708459175159695857296375997351426007665714751615175760522853062389560018715057086591917618519324215073754454232624082046701127629601406151594452686687484607154200706197644849393560665541125712480202751336885417122714809374851049288437315155551926665447272818083797602143638198732073339782538303786809676960927093546048360448668207265475194990240821983561513762976802908702528425820160285615134692411041460717917249475199102936516569010000898737352214189205256792361520020332148937175090506315659846702710183434027687349904764786762765486112500059712888194885590600329860247972905410774500435258249406423989204650050688685969264540247061356240321710246902545082128597515062591737972214758366853194724686208354127812890531607608999161737521772372695078372645829736727283088352145024356408313421580496906758539023843036618745217308710426612619009807230669054348944699373637592981147146671917668950937492817195638579602623730628704407444653612298444838541123899889414292315520030512658136651713947064094917052507270835010108836416717870600386574346028484908612631123291636292563323593260504496720795768060394788506118164107490103419630903794922798449798953202000583462154323087914853539478508325799295954379480093378197314851630067922349434917880754681115800385145635207426705687393849496002429357046449800648911861494246258917733568202920118015532306518796100960866423795160900856822969818330512987142011051814719846182973191851864677959217167812887081620791060831005327206264024149819385283673901605012745415405307787458244465694219560917588861606960850019527243734043129811531774876130435151127891000368028947449265159324915898820234253014215104647039241687084321742148712441285345807753181709476188429127248174424758118124852933409987037033805286115141056349324131170332303256661648411366652844071595869655693465935364910892867639049366904783351041323851173444274364865763685089826440301336443395811088111512976005272250075949564087211239457220885642304588067493542821394677370606829043374214106086140588439310780056494146422535376580711558222181330588679028247780519944234688804501706189668868029066678798902716042002148279827957894821335384364373249200629736976909803547203152237639841279786565404452475272174556291761440773735566905934445047423337145772816286451789839308342848588970299860321203882741484130959322251019085163646077799523178158441490694747266336147429281972900077474606382152758290602131252220196093608612355256037225219409988664137657406272198001032163823820461587229308729694854592799420135409148018314360406649085181945761141018425977616603851277695433421707067117995449563212941186701001706769295231349751854463096986013883120517205257990084221599096001272097845859072505441778955515790216678234424305312831892531171297815160262948594397738895052549414202106377069665498090386937949314881226638184431538032523341516384883925250850480332572030216325577539866067229713665323905916633339803878981785384385606532704864738182944252598826501489679632747675844009287964095088553214255224735837579764364204623848782622368628877879916329584360509466654710654680957512629088299989414105108857191405522719699587833062244131548089838972971497137778059693757415749874997647636828441415145084167056564727008228396102449291188842280307730213868898771985843673305643459584605905135849138027096894310011456225682925497737981390955487818463228031036325593761075855910033366517679979610245437645970633868165944636891388323701095802387449163515710960402661510092170664873531736028278817910138360288802406234297089169798302595343806500133982099766085871967631874301813715266906179716982829712411608968733973646857690387785939809489409791630909822727295875183548722255521879674325583885879620204025152458473394344226600637848433929497476786888374499237693963205558798121519334661936867264688898079888388898977712661595262462186969831097568999373963948787119969440254859466338121043775752290539485383805063278605269671455480575057068541916214524678443462161271536323205775428819821490131895609990141547728819329366799653169686697902585053833114646263657822714578633191624592908893399468590561425888489330857191032713337674716004068867872309001910965444405890973443344253320692395414263396368010491942757778326074997035004293417014354040765977609274812833019377709297299222303697986806705731613930248814571806829748859922321621094358539865996872142780923522473311278206036523757283411976295078442367873155016945322604818480317068859089026866345893741578791154983210502326376727116928924171554930400220091822216818545400789949853840291156356014686546358126097756154370170023398669708525199062509417563128503298489559824988080857511308090426258985701826702621733655520303754335030546065882868671394694663036272586303639119592529170303400401829771647568597442285304427637468416062544280110603189709396569405836047414091927142394391044333043369951132082430059367253318752356138313362675928694703915212561345042195534991862433652631508156816279380374872336014658867616476853638744536883783170388511886581074387223528548556160550799513172912993156546302692923701963901717986592398080131704258972919727512962810365344013236067338724658517287022862621666392934838520773518781120340927784509191901349030205182589992565164400922596340119746214940193249905371320276150999224492471416046531092182590973253578121319828286581936562200422354471467076489640872180334266718264756819957824738899597538595405649440843791564801268321634266113843910935718380703372568456273398416511622100664939075458712055096078681140278080365486860886369939844411960108166488315363357708499299300579646815086248216743191026894086178522347694685109596411195001353200154836932042210208751185643714065592122547773375781247733678921772428803732575947515671105463448400881985879030979714168969260164727556786581582172474255178066064912907147469633908792051804972917432376359652851001350716650669822052071615503553486981095653123989773698397912914296770491748669299185886089729267566017686862570812313863478241489104435021329712759363535815223605026323487234411920675152000361950118046864567869079798433320297741485211684766142454797385955643482931452982889671811346729787268119447430978346462762048667128487010594446747096402671161725800728978811683602778917044457674592835967409399419866309198324805138145760869827714953425743463038491893497610358271601278332235565703871555829473195791817588219378155004655671049138221999818556807535849573301030037329693341162897212461696124230603320846087143510738105840644473876815734002466954712625907023647500645510390006852585565518320289266748200634853682838302036421095433500278818944528440439559014225730871087902103686214240690902903251769906350471542175194665818628523456845974541324548634725003027798751361440499646433561018054278962538891795901786628239317570173939223750410740719282152865594813173367009261639383924688156178197319451490344522663008489450801584686344128790576108309988476545334341111353383662124335140591171085047684181371727560454833397430664021873000269286977703471715377559371282004291282310348135802910224128470991514083576442121952336890578664801224353739545903893499588246810914910027759138133443748943443287857654312155549081802513887340597904445457942807056392045856849701782148083483701130839187731958140556245359693901278638464578439177995598472072725414815528212295879015382186175824990555032296080457073144980526297184160804914627438510971197868244127208898942453332195526183269905907874989830074877957634459932454580639562598244708306119452605254629640913118823321779642215620459435745918478671418259641693207451795779841979005160173751515566021234477156339337522136074409023449298817156399291922944626630196861376318263237840733261289956525153253023523123847814673795225373203638252386111306349140555424283927084537181712002943986884874870841044794599959616089388492205663974246524655055505013896842248637536887231168008606804900833414981936369229782620290347330585873833825117495432371442208770243743833836036173171107309427737697115047791464100145327012140888767096156264953904025241716986027655822255821305761778795926521919460901730470658113928072162321986793558860922246652669330718723805715014940256392593990190299819261431808777027741474589390760579989801706760299682609527459344643294120684198377033426276805414469152497671662803253843765830327156022688624303951106875745638461204555333656569035032584382041522140034758030212769953332207806892588267000947107046676778793276010406234604856688780104831959636490989430203881643961222105652262802668237453160502016687348977928624110014914827198131391058867522900348181684548419087956442805762322392998973189338153337849806317511344612510302463896114614160320734054247146843721354399389239704841281943037800010738559130742498183307296229440075889876332187958570925922459276619899296642446213948153162943253677014150590981207988970200294147420268931762673391660105367355804636702799590054254816179048061307429169398323814912065614076284726764961535265060054886989262578132889701445902012656941600428194740772162762080441322609079851221299111740659099923984602417418293387547250635282864933095646894377594992970404359179106168649219576842517926239208297115192711326978840125498882378802835764303788690506500895835393940883132037183583932065432728947899972063972395865123198825751360816070806674933396770060424545500051304189553257523568976985130214083524244058638848858410567498918918241880164259525309585157584827466112644081819332896318748994971189779798466194933170595782264983573575793040536580236961794628124473310690235889791458608563934939660278978940128712859098773504265256410119687197441739749855195773178452686238134411567521352249455500703010877627295903125460026303651821035278754053457472192518197148322293599412844438753328070017722688275967928956229587254666843589936272228864045528265435303874034171958023158314260555832872284360868703104294794198673611590930746836079876480497725986774209722661596431097720809743966295005951821691928034271881331888655056620281197452196833643518389661099253545429996486751555643618197145585614594458756387096808978888776477159759060344005716027733175517020777544765405608150874888602836219553122698120777557680760011777191007895567357125719391810337946637122268482237707040502582720501950699010656359331281139291571392017876121370656105640974650410114323954962825842685652837976405270219385991101751829641402676470675089862400896678761898346751869728839699699360146892288087104359088447879028715458053274104814438514985548428240249853639271824597832704153513303927645439083660982533533622658500402652506962538633951644152744486154754466198009593896234877467092133061171382194043837221722655427113026892454589979133134000983904544368753664742654828494072964940357534781121728198440467644517962789858762166416373646161107468240959570914065648848723905436684119102024591043779086375883998630547289641848706010496300276548091362067723529541780710003924907653696138611010123249780445479101812418576172167742633865367047923803588730416864824354654608575047491123455388731548466646535446669391619255094777241282577327123100680542881398845316758448760413216546465327818264887684096578627932609634383485380332378632015569607522974986541869558446696518448709738749916691712361742948720150221014562750994439256952336062310259884570056112520844812720819040314224920201119458262398018760063266728141390428628705010628008775518899553444112996546356991822375079055761867148066049920537046560561368010039858617336421234102859648783461509201050618068878235825026046157262878918745465988737072978261847192611546901136306698889172214018812444759611318803051947716705520448734555488249845070651643690720609570822669344574782283415977129321930596829215931010374193919418321405956231526461041506963617120295271475766882929240784698287414840774188213608818502321151601266407434853672853243276580513389399157774562619252622655953583430842105077872155313808537800803373865783335843953255381625657771931839814181216487369344473047277164868486290369554494149891003186429210701290019388686877468106460599134655248903178394403786562331633733546303132211413562620545286821473077120409663641561107598468374514796656649926460203915108996997666733194969640103154207596380888608390596536325063196211213718242257873507212966504342420685589731585802057888900529541968595155964575714135297413884998266751693189396786789126315358061011845786035289474829715324866329071563095393814869781120865464366661787416823978411833233756014882080691042812595009033988878868485754001682345375313020763004269039685550038941091586677028812593153303475810249680501587617663472707901711494806959235459948490282800144040148078734556720012482178133663323810228360686411198228650655933074974606463870780475780700573918684365226426233032169026629450307124754120061683919461089718201409211929067517396981294941066236070542260901459755290427872066454154786039054910733850366885553023709455342874970062560129828934649780102486447329376802949641041406921542116334248498365883259697284413118059400436118553949062535323500008030966347041542764255536025098766729124876080133746672207364052789107004524295876199195813686244574180687435702169686087007874191604227545279273157370204047332610804448069593305628559177494422843846893700023942318032129627830562175805412347091937969570072600977905814632457962194014654399912568004386957425933051588144886465967089615898318391118162565007971147123810384774085984102516838418391879741913152937589613652510833824290924549468073248688800395428740540039049232800586512581244549510348266213370070233290771172204450155695943948814379830075944787796291919269297053226313617410995992759710906074457904505352501400915765903367526310308834496836504261199332724773554742231633664868045073643166579223915929490304228920113832859587502783278581183581054015699789718859631780571205392843915933516830301726771831292771890575193933744980316899145031312643400323161011117292173131390970896300721424200660153987114885129473260082054910645770096871550021010371280198146270703328629285759010096616695337164933960871220649349943856557715225399034774356611128924289456052436928196871887050731091536048151604309602550848653707105341210069300107018600408654811550315443797612921210342152311219333803703862114843387510719156831755094954406250497210233389780782955640907563802325891083940709724429109269489534924040640115616090678780616676953678384783846363226807634492181222048755728939429573646786839402519707085253833583616301772247590495147341933036603123817212196234012311410624882715673926972005848087164572148644834997447271001447559578779786200368815248182090388777045227859194063820519039777618637357950552526855732762562005596845559548994784982191980311532204510040853899570949822209171252798309483388357574252624460448125579721463820560793454318086846095273214055883147248789803252494254030069573183356176604000874332257939908227759471134471724535613152431243969746285435283464978872812238370584976810501625966304567436724760403317881437072164740832213507219299298082213010464142540222090066991788281947282057883702387153414344170009578237853234443422693490242537483037997901267028243951625475015727309687267521640448896319800143142486935627925497878083938933347382416657587401877733054502930515440947410963674396518111382442977098949175557222500744811645730768140815334874015815973781735308938985689172080129826009596202447405926145484641911486871391750272629980895543784875823716703503955805849244629123475596388329682539923677704176623944573671717647776229676203770942363375816322245355293990607907273056201326874951088912775489001409558558454693729479901021097647865714394268290134169082331929801808658365974690921387855825915811861944836381422393759090332024820155450737495278906351353360014455896414054636445189728811301049110414401914979039642136635207766644995763858085955258972490504117559213350303660505777803705535976146338696784524521072646040564716005571017392919331431045503932118308000057983755016981235704914359708562521568764821693910030401731478559417727537734539899416839551804562948113379048674037810288078359142495197393466490147331509991412983234923185042531166459018290697281537759126576849805103690100239452809769329960710022037176826555824157596116730598772750299815746681755443508534875062896473697265494831382154351622531354322728544718866085673983477208027130797923159774554747626237928214960631471921299576080273287639874847445168779030825699193164604145790378425360242945181248770489761476175653579717750567977962477790895595172968610993407102259067932281200511382041928086308113751804250316925063492064412657064864859346413551823610038109924599433093337911591057628807785979801819706090931804096728716792654052760072354401985593284201567163803705673850023266040062528909296367907864266544586520059726280848958139111106491422964213197240899837262398039189177956857994765763917567416282169329531940998962664874350440217524314377801324326496904735827186346868805597624221275925293597053208593203286340629679273265226176967397383857165691121698529180722449698399718136928178727645710106347696683590143659281344677890648734272660427630258789256432593444668561388233364691553376999853720584114509342911539966886819541224206571917883412464385652027325620972029488967325453633441566551634850877237114609684851954056399050170214678844728661120107121975114866853539599996056219736932824858578219029473606311300704016184764973240531569888651848597786409142206058191067597241843840095046473474745531153107626543297278363927214929522587257743056101035863211876735921065807552594574537281213269567464943104166659575511332612307043855022112943282967417460598010966755435687738683432963341157711312748175834178123516435507739563879674367759119076481973333131679980554840152836841251733638293370680875429956963410963604357161290789099349231803119642777438329555352995874720248536626415514385489141288630552670954633376636679329663921453611887516741886741285450257499527205246963250837904517955551071381318583119118159964095736321118918077255286150816532662788061369160897980948954625239609174081570941252667370776300952262374352178732064897151151938145570221631061724227973775009281331944414311764918337445965804143030420697060959731734358434243697122739233334731238084756294885563729148270017048098240879362960458013386538518116740900418747688775278899554139974813302862213939890307221253626432427541387894896517990001019350297486112483897868744383776301491562965056245915439466066741832866606375110096593787916588729353884746111432264725846540987450593932251288458667364247452876820493348444156347183684256572906560000778101243985751611991478116084535369025980739046347447270610603603664891968497805916377936433728331273460833214066604830264043353895899589502389060095528446074955084055717966901491877475233151545561498798921948888958767648797937538737533471087152632056973714672498030822875761118657911173582142840656975132452323905865178327492122436185326288880289606740310455623980001370532004558997107058560857083722529020079093837853146014216327115797865197123040798823396100185232030423769294380895624112533732208122187263422428874005393301021264517400334973664626107367000532178807252694409747249115237703848321622697159703160551373888398881879119983165205089475633955970688957107001993616624824745870065529224578179569970838152036253121575608652141345737947899058754517709413118037956091287282550846515126193101330479638564292723319218677922104947472644691421968791270143763167801143744184298723777212466247668563058320954225470172047673410857671515277966804180193084382468357010205916003720294243485704105394456194508202891334628401675747100129743056185958045035974130748941824268847063133058874654805173358633392856621533418685368468643050768329811798022067704442721649796055250892992994833159730157033119209152691200656996031637663322165208713970944008083852335998603587709999277157065016879564179939496147766921092947283693934557552210729760690061991580666606074846723092532677770905865771129631951648297963156422321586910468580426366400297107571297002606398451946159509640964317759907466309823676436239901649244708397633063087206717418570198827031831609185321389793224516110325802113544766067719474830252998136197493865696156753365605605406106893873070640724853320153509598663468134161180951068107151121433210762693988500147136895248889558576189801364294887456153412893729833010156791171278438238676453888723483585191692484732123612726442547480797024366554983472437654868178943394029387731339314632647267270864227047791813259007589966451279477868980262461202522092156786501727832521075091836226137093041558994146564722611558273467242993458571591633382670273141743396158972009757899270796507429949762180420100660266357790207590527498148391053172041106363801955948873945142299225848489451446564648735637806529537321084872386745901914551054667937636116582711788967619186398466342404519337740321512594928605041937572117556751531271123155040379042792369541761579263659725875936786202472700237212638624560815467361202968849893731618733366337782967557901683129380041640672612215384443709876368034786040190684520846347389159202379698506695138372318663518465121726135981828918776919219149838946553672050573987611848901806931685413183672824865236814974628310518814515094387985868267626412203413132192037208487237913895115912139917939951545013353122120857261079772442815097990086005911487865032002843145777181071152135932083165115545243036746163358931696506387004108705399803439150535055589443031289722351222352609341617542354831644604325040589723423501584838740815142764741952555375403735414602424947088772629562943724479434789659892071337506913279469567769188024717461913969443393150429599555564571117454805357442966157337488442386372238290137315364099935813891397148757156508035417631019390159378400924948835772555644860151343606802344195646851494723354614943209540398189855735382720054927056997863662109266572857601775812682879856984192261269522287859447096203543234790266885986913690997500477002714481100861543018117842093992521873377268013283417687159314209626562939878007867009923224087854299892090024326177780718291463445129090757978713765446305790363086233737194212016442168427484657890543035539721489167030909518807655002067494329096230868948084741647121087352882574282079531431806482883077726055761090868492092454569009059750220035656668420175433254686382663876600516728824657323208111165495803415607488480043428655138500676213038372673857196144929384377502495303540549287589879067617539115718154300538822292219011705124829077300416138227670319417694105675896558592974358624752069330261348141303081688758206371954317939880053086214564594689017287073253426925986701390125953823579362047418572549717918156037263349114337992946793723371079168908099077517532791482150404380066206873140801670204167984566380749577509435222911215930875649240757383496161039844124965536680686470076058402941955724870464432352222474135436347803295645255405732725312015413249933543099543309546367105350905496265176084894671982518417497418325826112798620985606964415089687493182866635426943790774635470215465187840808784424521880461389450719515858452614787737891008021885960600035659021373497400198767079941459018504522298395524158567804957374917629889507655094088193847636470603251738552155775839605689514858724572093069274021960527857776192852128010027323340113102913673272731540793181070950129673476685163061503849492117706849383768576797152040594469390916591370891056187421912726379169307853749846837670444623498925040636684715750209278455332900164799036035410412990667356516825865724643184500727848922824679741786823336302161735540208336746133041467618684116479465564748161942521606237944220415059885767862030406039903700161771874501433608844376648181116508474074242442131964417130321530717172006167265952202484679759805091975985782870095608717119775696668967010064648323519070499164840489044097611827228375700555598092654426102478052038786976187773597869797243780984772282666149469875466842081233854431439980954809996827496743575735446866282826685921452607363296361555519203115371060922498358674049347729285647610892542539278483596176674171912665166177321316748983429617546184182583426499252815176431611068458996203834459001068195532058030742258656421529437687016984255065649044685909421518416470049607130038526617186822328495372326100113708190808583213401582806620253935513855027526829421354734224303464673016447810329467403038315780812247463265048726773718531899983707666064074149924181535888515467265496209275170898057603524413229348981089168588647218313399951437152885689349204038159413738210929556622750783592798542565966581737784791801482041792331924507261856837179441288383337407797227013956645841711037706803846021096731358129912168694617326606420581264546342713302437668812613537117377422740925923024531893905902616189035899556139888287561178810015239152898438657332427790952153359259677534225990641355029879762307535677196354324414535381250875736981588999024187046269996560630301804544278585998875885695088875847921141068518655895075068616965182018123213579102873265542320616583943748127187239001934439524362566584644977957897574007927547331693802381496182066129412035794255236514058293593025767443414213612858003663901569431923884245424014705885369265720865116623437437354369253685444216488268859213641641291560716830988093302047126326342507436459752135915085569460470553529302209082669480252140376972004178397728696420671247047901061140362667658423936198535548428185609059029332955190764364367902658038300969543996746502187474881512787693317281784070251738756897602924499663210104047003588477978178774502509346887117281386954759723050748389079210010421295114206938449360939216273347088228257177409599807531478141387154479867085895102729220835577416219323646186621790196557010158678241124737178824442097758896806275846279996546469954100372928497936233877515197997649011257867179935163069282604179980286844628357898413773658480392821762152627595341355170405023387333161322190331598398306772185771164273646812840343805015311044086126144691192372408567460500636880265691298917179879663929629911076389378101602475963972019061077087601378986525443888839992583410403381199891888807717176996241166341446260319923147740382032651418758953399662293513529871193036565614149568155861262974507768801835835598671866674880943200742122562159875729595379767776678990656599219727809597426299326024839957238494702149990936726655614379621723040834841740232112488657486233599263750366942432391727107121563244004962231321210344162950288509968205537019644645339793108934397761696726542311634572266689418140974858609861364346726673845979682515547611751793580384361542754281534831954163309854765325344599912683672985677303026508286106636751847739713691907021581486333261682454970276905742525110361922150351942664398516734104871783714041703572127420454270948591521597104274296127895702093836358142575073029765408672556771316913401747944797885739859645369665665549209963853102766981801230042184148647759656399939008401110757457955975952630584828902078541068120751357419331510255345254660341604790084870119553344390027114738938751288015669551948311745699431108219034031102971090138960875028181334309154092281582639733657577194022455756443443367399514958357334931541876233948315440809824909420656680064287438625152599114458134372725097457094686411390235443512497938522374906577585889730244971640021706901160032944207813545879045599243265813751906945389308071617897913321366790053566452562463543898650922773902951808762752363643176218528001805870942222885445419763697648975416098122070377305913434993967814637707873895993220748632755816571489260837050803050823144115776878674741758655285982296094291429473165196817196539705884402196251692230514449115443639840250009110899767264176006857098656748975412800398984531156347070240852272320964186300998160489878999524258852842796595077236993166426929401703215094731013390269258875489543034585990717960865539392488096829391056948314597828692256653228406182452133936225423179964475209677648405538277383741764086737842859767149131050774856469321531641057898760579909813254146681994207694092263712122944766351463545076976282499868420056816964511084539531887004158940556850949356125904487740426967327568825201158965822175257541514911999351836315397231044778508312010581005178543020581273135482516375417355548632564370896854162911886779572196732683187028031721911540776642030914426586081689100495757906135127125466163092237269150981643609993898214732818100900214167704012138647017187843324825962423556104460693730171330262610528458448540204268049808186824630265326506821472675358942503900377039194428334001889496324111082852834310559891443338185300969431477781810411869574264559734930614588894269592419784714129585274927477066853503693196035328018971726918744957915974168174807377047431025018927688093257736952254526461837318257315642550416716210516435787340461909034283634926863630971412788482859221770567498880084156420693830490547533506949391576131110757760301305106295287014947760025905840635526456360692280331433859027514903229178255401652281810809901936243970853202481767059419759905746971871677835282476574413020306286441344117470410009760552196348281527873493341456527073521134632042523148831836784534091889542734825351040917144605955117096594023618669450867393388207288477167830106548890051362965408296495746537821220091856369120818683718671541721407246373068102174790989871239933464583638275045654084457948184604071245346468636051274832938231780255547929752149951342342390071683942533968237731185292444433637070522661033143413620543241623345621171348252079044089364465018722185519132736443586516577259525037869430439451847092628136991672360701530151272088995688295029898284981440011652256946153278999144928982550920876981109499118631710799400431669149607832057238567645286718607696826520210915534857846895254368018733058570099460548008016865688074229477862256464813829320760883808520370922876614311298983271838454041121396865706818042726074237511892231140380562597196785650952447693091299830072720293901892105657797495924653361061853697490764677528692429381349060829460950620142386879212317546028710800033193097276618697967121266447993845525168905214810027246710751443110339605934362173493174159682915280053843280276457999550266818057569799157923667806791360472357604949264219901941674388540785182093442683602332446180396387815703785118975326224490641180027665342221107461658142108694172902507268341238214689000137939907945740093918288105965984165602398088846061932239608283446634219443765229603271918920780342612470415174393738608031203362746323919178339669785134748571435816929013999619339203160273249560164974632636734494977403144946641049543972469927331229525966846383460085623944716074680076744408138872308031911468365710153564347500147934378532734060492343649222716008770195614885456951696828980367771573187564350675895699453647818631578354282199806157634824877089373276981556913226655597248233612743184541785504045014264349817644252266268964056485529325958134106500063419422405498288740368139875354047240768112473198258606908596952798113505740741648565161835201412328228624576238507986845936928735195518339952303869816773578632312661883792817766373824368502023014911468836770034422848921197715069455501794118473907179071578755357447146746461059460112795160298580152738183692101185783805342937108331128632025858656274602386189745066024406236775460033139503448057506675672178594362796358993686892591815736649564760488068147671859898520047407330379075318003191531328965869183740267644900630515939082837991534649104410647413733571701004593626852809813604627740358632953213158817441197684686361001979751185078465097202299480806128195806754018063753503310564751846247378802073540599974517397592320786185844702127155239711734506231369400688557761310857062381059880909393699867745496759893851013035684600471031442718070198753206956940975795175506289828465878347604333730124067721646513682602221784666108081237862782903280268543849219971067720149996807948911949474953471383086199016772396653230135611067270516093119195928869806095586956169385820959897829859343655020173715098343072422188825869171226595815321389910071298888001135693499174652057196246822917736349226734262802556195202804166708727092347821547809249055532273732628894924072956960281775791567357746329259383935337893482562382443302704196352869039349535482932738779151284412533041904892122645773815785541453962579294956081598631471320392657867087376028887073186616634516655776495424593351479594919802583339769048705724483562568040022400385032404617855541295053422300050620439720035243895416702795738410790408896275763132797549762210136945495339664348464765409010025808049321377831707583025038732506691922385204833403779275093942922054810088489895970151262590261131220481542812750980997227518792677811633768524466744305470059072511980189957833544353668545546157248983966691741444891231593669171329014120178511243583744621907013756541989812543229995700181586638542557145107273373427963584031867898865116743587722225500093262359131668699701876009336042071903398848003721771321746197244620530288486492910298005196777022837825585396430543447967028854408735391574765894934232500632112307087773911807889967140806285199055732500950679550360435377330471348734614824248991940961115252751927017460257485437133913028563748604251219670555843911400529482888503096266497609358078267070038240678883517501747131493395335187477018274176424330279715430777831782423680756324985753278521658062590367384641690807788825422310990646760493615693502871136528292891484379692510568838343759940810488996342228852674440857447087441711384048593305796211574070933620905107035823645409149234566651272545893687081372308404445137719765718329405063933896766517319845334294123761220730835378522845462543707600974726313144908656654886557661395287352412991117599883206138409250547484350971103786462329578330811894191085737229481971805052975133253082497658486687585603688325708176026507874652506280127172881590823268944725067181816288836758337291694683873063343536138062206826514471343004537273062175102397964539179649637976991238742750386047874876293473636084271846197511670131615081971045186353059901721460470528259813769139021806603698322757430076892136539666742640926031718925293661745873994365281461577904752189335510302695658365224424983228352382363047962343122636786578199926339734474190314285860020574115815667296553933710913731762621892784090756468468054625712888159681497287436689942512313774852454946229860586141767106385845280645727539900513565565324941277519073158511147623213759476402322094555324994695469987877037687943308763667810270158256206076057324736731369388859308334318139047799990625016891481928867360681672326763905487991949456693739696642231225588663021121710145030240334087259077379284894451875739141430362767782165248694897574136024877178520033098221022065701011573518861668034713142306998481030533923125326561225632154983582006068705075875021947420188316842110052686707314527525897995539190790145147931478962844027822976306381454663571900752857735101261599548893561622028001310043028047934254464903431238223162898963328204805010909032120829703351905866743521064805661826642990162211647995610935500700397289034435818727714571283169927440494874787932317382612519488217716811349959316583061940081122228426083135926174113900380581054284765501497520324014062002799647634715241333257571377137507183207128731379242875975120071112971422927132909760958131259733953196645851917701051547796642503855376374925045972831779440755705891537655499437495153893224284680653051705516987085025010971773772149164718897429097097557024066228647432406481474988275805589400953371695420337398848420241024469974127767496197863560448620211579639717902367279239161476665361586462792014371737057746213036467642776961016249752921687451025091045494095091097295885856728606937814725684409853571470498824222822153798636631572714257013683054667540961393662145504927940475366045164592700331338874651029867435930631832141660817534541914704937718004382160142244857853205019956120500935066933057228854293470827878706388246905603974210607763111491544554170219130209060648204137639488545867738852444208624176872310438825668072867555980162069965370493912734058834078915894668791546478687609968706458955800766249677730940760338337511063496910747082767449073178075042458864731804108872140195685564240452951543526223183835477349334684624303645251865804255974001280658017676864963969033225816765617841804122677304604943584467690244786656288380099144674930418878023680439127724468130483366032399221392875959942423649159685920505826357394616715262637934780753023593033182860565508763755723040035340731734887601377941046620629078097461842178624680392663056861516908595931190119550736898079889308809092341235691132651444420936115848859038509322364294149232217314981914919691502990332308209232955378465589164683823335930053975688956754380090907493181608273325268275850642591427263159459670816481415773889893522522309709725464485585138384212120644500899935716381386851283995445099304949785397275025618132387996288428194811285528434824311367771831862856767784279213891860468584612187475209971242231444390272320776585691329121936885347881100104277111906717381220224043413450445279438561787339650609886890655699764184574405557633284756575943970818107406129979825468265478474449825418730293257082031829270508318123631474883934874034590692755659395384373822205423614580826796226085839471682883936001433165440927462611373146923446135121713044158652444984107100320363320920053133351625868780387230346900051314233858322696632547710757856066778147460900028747080621838471753266433290705565586217955780159282952870098382901025495306738213624843823197430896014074195313516734900393023654648525955389388059197047106615078967941243413514127439661793134697326386674268353164480148281666630519206655683647664459678390859426887539298953318984695939466196391344872481092095332874801391874080022107358487290056085449616087435954205617899410870187928417584761372639345260139858583042948665697193215064329906430254397430556469732179844564833431452288347070181176970165508699084874564661085148147178323680011022059635491429857154724802926782174679441145154321684762085027680257486327967226825214351777709116706107163726918707782177812015750430334967349913050660431913553908266547329738710749007487677901399034526766505741478177975322669208403229897573080399624501129194835290668823395754478831673113048251160042109854220933399026897475973521970585833988019910388453240550408450472014215185237612527934174856576986833358242109000761466406507323875495116275563584515766588073006551949923522228186812908167991190892388440662153260568327312756070124138965157781703852685742402983820863303332231611538436661318515950818524229335214168198891655558752584881684194226346532314481535889268951845024438847676036472021587450937683151387186999316796254232752175318259822237716009438968104076905001103929110301521640425013572897207990320711928372766677128529360718138780146634111985328414250292594386825511332716900223154144801898647068780031881275955684618055410623288249033724489360991518459341154453208052420946697457299083800410848762618209749477391275311177488491538388223233042660008336997527883057146916526041364633468557335195240053158770176790782310785766699468643442608402826293454511513681602832434435986050065559128984274257026514314364155445336516618199470993290302784266161338855202511440344529077697691234758853620674845557239426489225613283373139340508119980370082445242412077743981643614553376707459632232934700447431237494641031959140193462488831589263684770305313271574966578482638608430429031468646167626568599528046147997548128520632434971311464205708433484396742193449734853954252405427755001632523760078337676443338839179805941956691834988163253605295047090587124813997320672673382541160670121445891775745353904485267120057955097010362296060902972241193915769972224284353299464052094124388694883548771159428285811461880533409103117789811943292273324974865026604922195405883420088725419085128449558750777277610835147108315755109749930759866540629383693904354197441074854214406277711107409831527924278592312120052882055784185370402476732709391541698705862366627708687428522422836118830418359747736402712636491590175907218071665031343290587177720728283359122767903641638771420133524648556606317317858569733194472004109997491587721057217492357779726306716887910056265654792831825906716370982961287575151629933812264194061786268872766055648072770295994697417282864182156604381490470598318725041693155631184398408388276360686700138042430337557845358032595710158545467049864040321204575459669997360169816526011359488926735589444319388740638691306202607572105662253634797518008764942955162264824806300025269418717469117969689553886223929161932953928204314589049067155744407402213475080680517581410306227114128875945013254173606664325341906068586424739555989240081309569294118003729674905228794027741213233348790100287405725132849185609186707359064668871818840054025700136512838739055782594388386961595331546177849028634794802920756869793836382881748652268713204248372684995230158606305408493384957207094423631583132804082495225983987910017845229681516799034069118273349874341985600620880516577190777121462927634810892431072071538721449968438475019909759789937945072760025741868408597898761695700347543937952444614925511856423409103855412060092203051216746898662782654825540369165062664163735915483432774012993398163964599678930916706806573105526774752669687378421708453230536871844473010917573303335418414669721913968334928564530010841949822165226169699271449392199551217497024910338221889367029442757123614760528835180994234722386094569014290795208372685636576766786766029889890754576935746152955783178800066900295144052183658325578579404072484549216602869332877662001952600011528726476278101865026499906226183923329072628673327450077804209690055775830805876477137680676663671196501711533223164822337585529229868948609854593450287823804465541036878058042203430871053790227684200905396199172815606389179681151597463646958495744808370957856686375072271644618438121878266410521120439420166320752326755200417619680072279896800729336031533946637773252325504053024091570471862208753010038132875658872794699665843667241880768309028145096032598553316021588079134800112591133359051954861269730327788450006418096050305139067083847895623471399204351866863398051522805663044524702475850535222272521609170388921504727598118208440109308879963000842892544894491341608629948364940176716751257226231032425895632369899298625644663428562417671428371065673188781548571836625341275923536592928497101253282773382825226483601866321542348436945575601917780107896192972538665561771220914219056411674646321290344661193506044300867006071306890369230494885725912673203637942147421126004462574142205190021866472200210337467801640194077458385221712333133917852391128339254221673443806368040690597842935650475424555793331783372318093225001647484692890397262688901872515526790063601891052122475168453990752823960391311836904798688453365822321848428023948150043696004941182793493464612426802449171614682558494331201165901184114101310180834557114818144939906878747610539710619883973648189466037885899876988994610773743663527829149603289984234022981158966158762291741001465175810754516228444321817459393659819489703223384261471470249653950046655857266184890611827524606977848057418047214420350777576777877530819928316303985635637146308784155449976524058529176582245577952640504075013486818141841534222818550883428813232288733624667676552998764770192338976882861657303821053986503716813771808819502536647535808789155314964028291056149021206919663466980522814245774423180881557052122319509538750073394720193299782132394619555008601535254207767820040528583734369001063021729867991476241600752922445166829830793738933352150437139373201838834604558507837377471949977831401100744333853749000214161938455837301760569980204887907315492780897016163264776366035548563374226298487772274982886801160441873077458223868439567040851711895133910074536659199363867125570347233449188639058407812199086048769058162885648378070317832036458442967313088457399431597147790180859633836488452049933683512239069253517315470487022450460486363774963154709804216227988198577953257858977382498426912448223369843076369183212844905447390847453377224139355022581319239602325776473784503389000699696958430707017104480910674801046907647362424689710317568684157779480172157227549295882644340761159649144737438973092248597150662209776851484806943996670480111866093674197392692248835522421569731525152756996684987265106873408683969428640730762187961833195206905247626313508127882943259847096947575412370627871213215844344016104965047631318786579040183676778670830029310934036454092507846525328357628064185855074659044086766305433479813721285943961117603402190661907630717185786984286420576692326785350146561558064573526146794537497271933914910242267897697958871819117443069480725666635687586642436895572447268183500862242350226492437198272265179236106795635633680695441548062819638045228844975814767544202565007392614964040776218338379196601793026807435216308606421256666215480525835287717129360360318817235196519969212377239197536685106429253614706864987704739995734757046707734345844207264623295388602062948781010228553572807207949510961266302637637713428899960604197743195592857475864845272229394912003302909003892709242994268434158677757657477859509884966834704239318938704745235981290248011156398470817890775309244118945193674235834661265595245801537330983717006062923175196926879990277035933217073242134949859864852000395515729149008910329707366865089456361018933315493635038758027354872028480796945906122394723465794677583910945953766731329540843246586060719481711625909389371221138304681673252350785796472049882202319742881882158359361236275887372128530718901835409354435550279378645699902833196238926040226200838536030954614578439634123277497447124568545720197208335432092888578057021279923297411185477828563267275950528525590380929746338371550866627724853151981564353714939470499125687946928966746424682957100495583588354805530274000945529064567320156037195446833530764567827919453126266089055453042106177301258873680998083547391685436892374908055953608193493845683436627541588455256265570789638254506288477032173223880978631295651788307949634960596677400019643288081783950472504412141815820847949000623997202824230276420878779021050578233164886654456322281056969195182310711323579719048746462824573152349614743155032061656370148062737991655775880135230074416946948349349525139705267509030594975389132596137689782220253598639760768682385667130413408641589396201077798789082122836166200482224012966260727525655919370952000024365096756474750809687560222215753842550812343791238584598855987953763901721076831339844308183089912358808413105770856240742637747900391474072425564762331153466307625033108455184368822375912705431514020345607027048541193312667238375159517332225876997155495491548358383587153240886233744861533717309131394594798212332087546281783943049455378739473340427679304207974978029766600334804731904845599190285683963359180565754366827142598345405038987860039507310974428680706812417859498659747581695829303619655223797924425438258032522472901070246185708631159928559488096987499774206984571727362167978704398474870493738649909350528040883015913199992356757242950869551222963988465172981070331085269381705809538229228105276689101560850952981478779939362942445895329744595293509567856289368153218372472581496820143824351090414247318141704114424395905563141518236905254377595377881379894319697131213276624748124210091804051294522574591293766861445373910288288064718104559919316978805551652449861416724485282969304848849286075900030810708494623758861660968351562796709764815284816399662296328759467141959112012406239146256229616448995583840270331655521131126908385068021387023295966719559544281500912484885620859311787064570916352144485449448310591670986568219954516392719548340600678970758550283959212568718687922395953453570471507843925891075318442253530067895028189529680439335054492504358528569920653384480804320901220338779439806131268655058818374480620933840396227309605539632425416839273576905198137067504852864179089859439375453241554800627867655053034175059838903490786820714072581783989739191538319729739304682747166720062343118996750938783407783640993933960428027199789486311951475747473814230384610391515981571131721873868122224225803476886361331736925016221801628965096042318502712962068723732530821885687249989045083100672821032969410137480485959044024407333484963374758307101159947178165931227080896760099331802859425727828033603817354044515688226783119927140868468075176564156969477044067838475722351967217470355170675109450494854670570545160622318815482884630246217865459573909530439770101697134943478369203397263155693429429343260802204853633315264281302619310353040102151109681238985533829906575579295960216976850592943384030550945192784688921239252814767302186943796167896920966166716402480389649064580803984029928790233381269752894690833948629144087635036042976338346307637869050606304228950801498360616335770006819413087424486847561689930921177222449351686956208152072068763034395346097772695703877348386983410888624902921051952269514829836438252170661218020614582597743032779752955117078465439917272209289824172471809707869632238105884418409236091439956295269724815881641697072994650378617124490556075406019421533560628274174071620027508787935664970113665839023718074859333826780957207400606253511805573298513449417996966294532723369841825573114847199808357905855159999750714456629018598737152165534605880995491467474409328958099889008761862120392005342748476989742013853611249315831485507313113271539920649395817522842567804661628966096408332932934866229655448542581812733230806649438201630985367747378696155108887950452288216240015225001907831811594997347145329829984405103037909582601166197891674683418890133334988960927497845820688221955983196079881367940733446483954571649198707102699959936339991959391103478340773308224889185591970370054027451925652657707905892946628138082749511528459299654396698016356028793046355544424669876805376922053489021523158266299801051536464879995165551003420237601568550508906621582904652406665680118399525144725615432926803625707654626321325588912829921831889230407554605363903853603647896555649293060424923221176836236828384795246274479487008795936878949540684409623288126429765100549532477594379611913661899444511681225241111465518621465428423784191553301259322221149710334594671530902072014550729615686397717512814699319905762674807519327198083331338841116733086115470453355468707333049407347580671966521974840757489574911946796495684572802398329308681312417620870466267319911514339250663206731118567488004906397527057148682167307130870212089612125662797865256564516103641639679829246594759016876794910053903239099827432506554601523439415071363348704710731112569166868022696582834932647283078586095092187337447751779825998267904773205643965220993060531291589963025759550237914446202671868850519268107329323149504959718016450421087083031440382102106940835873206292478608341196991932043962115544582627023575223974859599116832098665310857862179307810481524321554239424729686632902375585804592823958411525609487355782787808309548861068041161679104701565712803248548662731599549437021296899365987629126004109987644878271168972439197671833897792989314360020513859377974285545466551060421716459770537146118281668757187535916172514234155386182597951943812194010303444970662110093491010504513868416727908512373485175831892074793722457389827407408621438436941930527864842707226472767126751452602788476473002065075510003539382527968491426600832387508934592341617325930061119621548325165459961429218289346234771391724687876582983685675290569679693663932091163403472010468177963554344884395697680513162352143698197437458366681835663977979496594554832289745726363087490826595199676022684894257138044670718933447224777844090581354779354375600057814666354820167408815946420502374775709452890425924260445157631951190052136542516451621395991133393523780786861210639411918376339190712488618559791040235400064109883547306170261973034639168345265331888493777572362535603333687208810276727520944692683251503112537906095237305967472626170769066351949904432342693453253082199499296030737536203248696053071529462513626387990866325163559090308938811197240914718558287598195141578266135140610937877162815639773036878564976000902307531053073204271528128457666838051156299503169685184210136251617896478537688443971723211212486907801819645999174401829295370237393099930102176893755162588459869624417800889124508631872794780181879492815674847069320874041602187028972681864200878417511653528788475296989288412120579668334256125509558882214640323268407750305780724590525057670577878727954644455228901741942141097135928821655919644877323634653048094959965392087949363783960103916123094098466299664041598106111780830439817181755761926408325146250336152111542911824173993761128755112279837746176019741898544144653548781723789494077824350225673323938528076600419938795840142449013166911302178591623448243002981829192535180773048257906102274992956076337023121987111624680997849542949307508479410149110157259125216862161813387889288681192955676853489129593084593180993108057428526461367191604681646582101500145804769956576176593916926644113290938586730477924234578829884193458467726204319774240580479346394542564165508627393850020346099535310878692514999057016417392351206449473071977504775159757670803761414640351666659545207598987390631965466526693082719979934004393557590237154934407498903260776972382335119120226312930467625898582928880442998009611731731814740438053193625320296797619697109063021151330456466859392042379384806392294872405905455851178323498655381311047962597437028399945269414572066045406794008158392860087019854394554380196002330222706521510239761065484309356672762391761085951287948531407466310334741008994060278330836480870621806504943042648462604880613576182462858293443491898397780661712078820691825752273801847070932423412643002005435518126582747804513776600820235637366877305431656492279381431236211261025773330705728353320277759952513933879615648069451334940864092672169592180897730958100705324327505806975359340407371553437098783673572386709898618865238714629811890338668936834334062712839498390505951924706983760019596819207499328008209779134619392903340132807539211763066961250111714356538568036075547152590338875207054462107559041300982325994208332734932734647681718973612503356022628176815882646061169661173199829644887047208745985677021352901789945459074647274866082752537125328490526717429202381452824046527918555471265154555302077225455975948289882621043646611648307216551204583023227491012788480960863912218284126599897793676488509715391045852972282803934424693341618360187802956779217657650860492809417149530877456373507722978888549296220314299295466376353757230820506364983223882646453995193882970044363250138437247227826295501501909459119846280841916670436611141625375948167632856764668798994072484285173206449650234742436226014250518800039479855388058862204239759404895573763549054494033327688640885235728589621848725686921984615305750562072647567153304360788877229697794796495817051152139340841068611487383716400991690328228775124765512910668264868942171590232621913898935628309557247192037088275958208386740562137594349346039486949779222358142726305269656307031694744312156317627976981666080738116834786524993737122799661619103371202082494027423918850576988486352165138623396403245292957253086730578345224611634750981684194603246093611239945745135460053545379659403108454874636782872193675854450661519356301590383865608756104246160701504520809273591886830808034526253937363997179979077981819093170131774234309223011122045381069987415610391888250113882892834543968370283650032170171491617088234231644687883735146694597631702279689008029858176572552546990599118093944233483712129859486055102006520709822881551440239357679460225471735371638733352250567148743682168222938461717656264296686576745708076195521075845621529722764627457543827870700310898316824187081494101979371453686533583984681727482403918540262933433917852448364174330039209361295837958077662591487685696367890989104935493796788446847999462863155964829618949514871713063095802751287657011809319353861582754852772860194318839970861210040468996098515859835513330101134447751453503247181641312861012485112160559325771918367298023712550019942593016743190369643705329396743811536876199571194444209863595319577855147916800026482067672326395521484441666739128260178549078425599586250998975470928028910091375901306374436848407547148099586563121338638343952888940604488193750894859805758717817860583621476216389427329668346756571473420638864557807837279655467313568790573588346847082215576311736425861096529756941365438104698027217614972605952940358283091030391573717618641754548022687374885931666855355383676757733982423385321522110991843077656950180220210064662686297716892624501930296814543068427234517146342934664929174218815524711450694536117803454393069373736119463878708977676160814444701607212666620685286065802123015520992011947237033733956526689364761451592001874219779034605782113058098130918409350383123386024832827473223561518527283198985405030760126509964619779220049006723064049270729297184478738064461210655284117296266671369247040974149893286648442495344735718164937231242088607409116576739229511283292553976221840015959752265807359520003022381012133483806150709125861364557254155459600672090615194757393158704594958407402476982585571856124662088998797576977749255936792121701840216101478659726237185531230144500862681935834652776540736620618932399591178958610974760698707473932164260374805728725852566884500746619561234317135333249267807945670343207755796506800004159454590698161101218475728197655034146656394623046014152243247649783469795803310909021600895767880707294084769385872115870128926944051300871301229112419625208378236405647087117875013858973598722787931798899897781060920112407504876689414921841819523688668558189800027425652730151321965266563315333325340485836735380810393074694903766289531119110311177540307556610870388723313220457671395848257814897921250246947252954426157148418417829553056630147200785729102115633212109576245242101988716028397729528156482738149999927981690133382929885280620425558380926604021629703000759674432462254877079250040384777726560769946111799742669636172756739195667602303064029616787070955939009142406604206275330170040875138616269946397679690031050960247979818021196380684942063847435338100901974409479714175771320357108152657443185445390387097275870044382831445003508734962032684655297263547812334214271704701941634847239329765392241450962010273620178189657925788051146158624651505867257495056648936879222663277023696597357997306226244838119777490889918369872041068754973632130040446786479677426717802817722754148321728223047700233872780828934411412706794762348098854788095095808201204089023075075180468082074476019718790426405760393156313717577851921208021284167008115154370348975864752512444035131756148530104561308355637780623512271353262222479508891118844836020238492938772837490966960316542825036809558702471160540167273120272617015054896153473880290492752244294910432714705425782820242822856748882284715659434383516804051048498367347455064891681870442047067206043579009496488073357830078587249696485363378101760851953279045057154534794367585618287299299613009355621984205956182203300900959271091482600362833092757714032345610401072673426813616791849332919909688018480977545365680769872568036793974198921903855651319305557707003329237669761675277396194445933251559119876025467427205334053732066391703423484842554452823864011106902441375072448963798120904789632196088858221680219075326635488636179722174019633606290582846478110735752094210525325741141718939850800006287505409808330940557481822084039205527855655974868515537273943250292705865882446416801189073012607303993333658140125111481308682112660670710205993286081910653889884698382824342210575651348798349145078634193794443672994976124120852222057403386394053845908019635997685796940017790092282475408066502649340867377214363729245573837549250048767610928647819585883386714406658764510206255817357873839173793309784350214904665993654261862704317563344360316147325895983248719045682691198114260605721253523564290860423591690746159722342099763679135951909128414859052480901056945739039147739827229930377534812038163780712808427382419211953946693342632921587678742805403007467819801771248082692224630402850136056783769125944304015967970361176466729688690193879922325920004454043831821961103836046047722575326652831103637729367428497353645106791004581038406703566483129049935408980458257516172654608641517510697595124850177105051607999570604937538177668499627364387619056605399890502666228436058436276573894596345701856597220829351542947195003325890065672064055992256765777724276922633819075565727266716629410648324394634112403255831481944312700091442618362215496243141882923774830915368805770503777203389662176267734619675225190151465044356197149909348286143992110482604608364305735726875449690837836510191445189447276659850958340763956357847416255094904998603377640035480839404913368190071658816557812399285520556084272030489088873915945692709700183474651208605160119373044643179903540728221169140827349184067598759193126532683121476341855144923336468012169384077875477082019955268409066371000023082111096716833958226432615822376292952475742381453646873718931745360931199178004559805380815356313635707537887431042008690931332576130638300599270769598495976860828686412988587527555174409406526620255468100229142246920031931323073918970472372355676955302757100307353458323788276275692142009405893364003487377275008191933474928430288235342809890194039606265953497408310278500816724566288724645144105814644437644914531043411079912197114802743899517660102745729580072656338561168835463906944171146509032855390700608753362629934784697370699017924466407555868793478792572788552804461012938314012645086017048101497260790433809556040329938856174419971890120449166613167730964746053341799536444332271848424537431195305224859526174216546398953244342415560539183869986482264836580671134658855586945141104777463341422755778145223146661014650816192881506215294632510791484321742219354634815270222687969349463954798503841914662776984728354486459794891467764764202976623510892400414225971118150841890997937525731181429950817164474171325205608507859908734564276646327370822578833018283090807483125447991287366236292401906750751964239025650209819528713078668446253307020366036285814930250696638318254600700431183680502816942591849778724090945366237805795655521603868529619246078409351723704852702408184760190418250245635719367503152894807471860175690323012825783097614699381762204396137136198750466031289445217009850552838166586072410564785187343061477116215264543248641428052715741127053140827953089602424628613908167655016099026591315096367034609143778784585806499996166338579841557620365613386472310358794301524436352705711881854947653549610856185525777351529441631392113059080613647358064009494968413122932693900692561471622331059849567081006639368475816661783629449259863820569180460459143933164631071757832502755846688374431475621267154835083384685185876414766503132041771848715144870140626304908867794757984992420620249097073240788157703486665284380070085037070436495672415219273743834677220822833537443169230364950995398754827106005104087229792206601415541350603137036909726747943381593814331502907897462017469743525959601857222022115242268067718225091399495207054836000580192178472495971691937392506612961206479290395627389672323582688953261862984375202173656114263257069339405552256420172686582658533014907617377141461803911547957334855555479928882824076095062600160094272219321973419512178655299102701275723581317216268687981228058464049695091969781999324890271082458616444064147387364508191701062004105919327542008937275168823738659339798884208694127649528310715393035049695745541630739845811708480496497145152932900178482740684945339611942566930402657092795392438003042021932540395070418895736157701446948935196621197458283421085672305553191134106745494888478621764458539502529624848861110380250575601598787640246411612256732645334385836867063339525065770340592343425665094793457068154296087158658669136238021615587507924750640414956673956358007991186694367496105911435934683503265475545423885968592217725553285472388501353035499702202661744676873304637670728300768690500113735827534664118781813460854607571602374975820985567563270339919413269395820563123900686146734026494346358000403136493077727390969143040594228157152774293249758850210536642011245393227242973494100776677802992785692769606598256484409103762903448354067947866143078007262600721316548010813113259355844905571610469200761975585551639084119747679093903621999897269872839546263832598282288887641547798721552232574080359901335526668913418958486089680001976553053802487054292704867196446437731397832329756962455218216470510217278028805746756693131603342459759187251177654818165339781393481774728345216844030826579995125582999301758664313076134566174644167802792152244560552873679059148815958281531986323693895392433732908984333072061073832658299417129497905455928552494473408378071790066486695833551353332821513360827452261450363145626397337917530120698715366469218369898131065345242746109131469817447216498756374315940748251836749862364888007911756811877070084654115687581100517365753606846627689513457692059642304752760697640505027152057948623971389927385592248350935906861857328948402244966868392138292570141897952434065408484571323723809962645832322452901456688137964204004146707937379334029902565318822166529083743503286672275866874178353328274137695091255467433085164785722138125637574232603790681473225938935726611726574471258595437931068285407360795675430505697222195739987354354644651797856727307842069354046286558764291792312540858179576411232373638106613653172399701305678799977662331343373368395771302416920696538922277017860443049446048328877831265043365015385543286295706430653099735200243822337922483699570877195865883223850086559308815580907573808120478813499346030348177253553753342628004918363400855069318344911375832791357764126897364278053699706975997890596728281185252887033830850914930656675332382415463444343917875596210598041716790817427985078768320525881804929870392000209251615808564545649941005263367221247393665418009113035752684098261639337205842341840072675367722570208744152723410898372690396640358829105283682391722933399972263890238720984001308198944999738601983124014683543503573271455391366628668359494630094643183347242592471346570582711347948250306218734079227312783280566626828857853845046719436416094750635518856769884416641027220808519378221976890341823369356108093619752622969253896469421243322861213776345592915059508343684675804965262008279882839446639647085012088007770043108873817121248102637893451344376960222513301241718427840901303390953860842501207356938614261588846111296081324297998713154976396700237268177901636283305933540617540219997601710988195770852528423838579221138565836945711391440913621147804116099596540715718124476939997549677897549659242756129518279342953851180504567224380537030785456063182095261594524379886638584169671165417825079210737957073469880989584801049519152382738478309702687854389058598953590622387661838091506141998336487424004448424885553301261266147502220661938839614225591628767712169086297769602020939057617309316325940236223714167379354206570322799334355711714035985790200214217497269516981757649989179780972714932972722897493972310556341552532655034728381907697031976820407004779911430439017383146401529724742719891269528299784589347847858887699266642115647280274016874624112572726861754755475278927645246022697168338866620086729981306248440042455542178729749835725846901103951406980616074698229457947460565291265254324313083902024100601878270091579120674905916461636364779661804719300110898753704415102827175428493050053358426562514391188186485657663495985269362875863431441368097700379669206857247514285446107213259471912401890981196264495107074260042013332698509768845484402949578491572475812969468291312617554975292362711378874763067177318843885815401100918488977398852466444173704829302602428016975112221644275770584372954326328072471635661403621503742466600030246238995728356756544009612417234023279728940449071732406699704293813523264231457138652506743721508917570876847495164082092329237711691753634976088115490419449732999200713340733965343503933318633147415755543366156230732050174787459635467423501806476985530953436419916843496275631589144234056395115754043120463749828908618142191105547227117534455025431910918794272051490665152152115328250781992130843305788616430590779614395358324449258793385941553118255054498129863998615826722160250604457526988623879669545812826833584582668828404259500376652855412178423720679846583238362499662985951419143376710177741745069693390866616039742214407375806576926434536755796006390181643584621083662023685305228922544246112407295724680660741702975206638550188752303977785933550291401540073365096177610262765719591953070796225168369018083377434677359619616788525628970517187062978449291465066959941440031447331905170463486384125551311052406303908761514269086810786437487706478051484787583832830733799529710893577515668525982112202995107845344488069869127670673361171502247835856020844774178424956933664940330461688129773509377410349128706400478809160629435018030246644907018077176510286475714081876788191735155544888670763011844985883919969826659665289254456033398115437564183351542730107099309551755227509745514097857558182885121148028140421874087445428926337407420909614995633675391727211848220493146462007874154814777062017299638683998676142960043251092150469126095863335602440799226469733040679330850952338143025295224220716163210211531178805171928482731798666093876148391253412571870163449031315958997780266678710350763034590499999881513576697118734192102658086394899119398262790826386828743572616544385900237783997435279460602181489796545955528822517095957015739102850747448752074863657104182700704856614120863241819933021987945448597708769705914277053835736600875318587791094822685637630424519466774638071740211466909798454431080654003812538935954006453744290984709592777744089033965975469828047639028568365124437863162441233489913770693927708490231488692487689274936948335792228065624910337724772172929519803870687641548854752871151186769949560447262827552536554924863862239665097909591937932859546894172793903464691935867352417560354677214081298562652310397557259890239727166854782414725581054779235190914543146737610952767422608078876948548524279310513894270416567972775430147438635681617407782172202464016139339537105339628432022789943971192667515893599159334665379476941196030830951209833455497512641162749438395931994540921035197460688550245044085794169512899861670020516812261115492251537874469039361658980067169269972523624210652902255076476308604098317855248029460315640362337754667423650340284348654125838636116349367170484267300731221365403427535578892343423392674262442769667112685012666111684848031476932669117049885686699381344135204354872222487847309784783026091046171051941767153163259996110901290057004533957715621135106096328372947549364088162081614379712695795628898800392809936942784933466342083756995065807287563309643089626244610716051184835401750646293447009697305559428486153784184142868219236620597416989430593263164390777981085932099565710128779792842639384093740927438661862683499300401658699998571409183050947714420937419030362404025023962904243854071898559827598944608321446688718839315731403342035967066874328118722840629946996653461562802475364939120781745355242864190294032804636348651873879637640300165268585043066839371339502455160643314639662626110305359175513909395368028462927488512395028800993393734107877589109868814638379726002943001623325967221502172389927566729818137088928135719898480929670700199885381375993933361691694112323524241527819232368029631131017429735843198484256496566791057852302863149845025830137666316126863411975336136211482157564647478049216494706858024456278164924922490269644897197178196057281487954392850447065252337931468053799078063658142475741790335930535825482406101272594903555797248712670697024001483823517958657236717007598335924390666248184336157428226074682129650379028908604940445238097142084551294069229567392406369508586032532817512999695801485398868412318892307110051355354053820486598544189853838699258623298301866703235981875082576253590542523686557353028376170104446418657786441284953786192432463073836703732899585896458719924470269910331341735902879050597163341367194825972647902327802603366929778100228797090052945774119599157386714946365114404917671052032138706595803350243848219445730745312689734854572228157396864317734206239247176928786520662670057271920710210859487905144614017912970372811392401920895901299729167381836700791245035002058904134101813573574033679312014265547595220986702853089174250330236347639882382607761830591800888572855513498104810128431209463341340660942776569311940575580412808007392716480877603618388312633454546557519304158997846481132944690710604756537398452694176094737433914535688488437772563841623513195195706431998781217306611191296314011823893538446822968962630911658702636988284096302057012509285858044572770493126667901481689158895757085668161815621813841112058091037354283006938463027586199705702325971187946470440457750762805698194717718682337943971823098470941162858924612295555208718080966401606732547965876113170687370027269223008098716741840142660919721572938905932921643921308363254473841291755700041388662173587900948290039125717629786099767650153982117849034592754227279462785320585793705696579344856398383029099603805933360338806590090701158312666720790622504305082751205530062098796791971114638710987991409767355411230095666019734911411105875631120895431061377089623889328691507104022943437940264453698257454687264431182281846522782068917841446644326165893163752415850487126905342589698464922427064274743488536654000706973817315220329463284790393478876604486898479509308650100927365610376385092232585636426589338032734008430940864405663094961365577714065142996809818504663898210624672572863406817475143102216137657731678295600788252246841605856254917969407557781081066547369642416211115195639784968802649718450258729574465917804893335026741971676053354642110753198750214934459263345356863297562684143011738556695178039415984258943694768861739840539223423854105443658963773924912336764026643426789338278786041796316717597667626544405533888551046959939479830254378729778552967956038168675080570590872035548495642123653483265593273089217832801452961880890126451363506995312170936292063985183130236644597938479405915473909412697117737002539416799318762832217964737258341103858792796989842071501179305203649700994267854808324908672862952359952965500182474923303864112580862170882237707402226292152501472341316251486195950212574205325110554007767893345004990523593129697499671880436347825347743194566192251629695776680667673790761165572889328277802850708127677236351941920068902134402041133982130331109865654692353678627587322425044237866355219634687362071618261333476340154137748484329587441400962282356604200577007957735886090230591912063775755035086956749509777192502302921399827296159583635758019588687544569439134902215394255560393578544835194185594562530326399968481556010134611441304705049624766507808006944856722417309848818572597312728495884277390345081018973689838945044062415648629300766150173700772294701069839406765390498310146917030041669343317994850627474848710746224213652928818697508856923296104728467001544829905628857811158976084097877306725350615608446743978620865185399635953304441360673807877932992730067436588957218849993499499320608252674771491587560991314866868302125378386413721717979766933504847889507560595747628126020037926090402943369125870373674732561819136637198143413192135505715229999862333647727303411636423437531190778748475261158841022540950094904847439204954338536315377816320793741907380363724846048223555038323746827628780692095307711432670605988297735569621215353720525031169495567012372691002233971902699511083487241165339338355701746904797362549814188958472121340693351314606359438667395437275629366518203099460177579018247183509758256112483128538501245137525188281906063548495338395195668485671598210340700007901919000198249977449608065674467264035532810911625320570205470665394565415305090923819065454870066924269113819417881451532409334439917075641752471391204117208850575580351166302663453562442336642366544848065247596377716062591189931944753251204876599246299979280690431543634552801080735118068133799294022734029581206178877086665239944312045805465405243745271104964718089356699884914671191931234518331857237780759161204222974005378452146882659581130091084667918214835257604998280659811622896531732133459201672661455228983712775589568314828510686070063368880407038250158256813834371129562793007882751539680189355556177365081128676670820310078486084205581192930107452223781796795592449089129031948043058373331688349978279844347672566131473561296698755881216227537821149136179571895953606831843999971125455599766814359247480465859569372812379699837293815982422429155171248259939126420747183444582487831040638478134251955837228908664838982032763401648416030129562187799163330095423538814766389687325668860902611868782635348644474157588557642725997035297153654958339659176735500330335523305770779640477173173546322843730217241672909142908349334434878559487572388743656390164054312255913104643526843436935853186695711644838367203431898452783469132040509491443123459678677890293703852727575327812618640281730852320355838883153868449454177543106173909729499755978660094384426584910655542571567297165059751955793105140230174004711277746235294520402142817156320921548505447790402248003040407391953806936978983337660805047240848638602541983801300095818612829802524081332302189605778028828651025976262552076505325192970049084668502114009544240132429848215221325505623765925152619736676872580797315173912772002410434511766750749396003938145593972903600025134563058852218327304240909145075509875119893224972047861055058523756133939033889310738061679352023101746114004437393736235471911435820161593929825853269913115575040955335271848141929238753452864608789841774691382871075390899244334890574262586731119767469337364782445297795368061764015386105250105870563118651194780982752424909953501046815846031949647353817562318315194464131092367692397601547586854764355118577992620289294788108017189166881198087781597393640129393106539041860418413463711819095850506820129131260614552070963675177214190425903722217242152150053396542790984069712478644613322641510608827254641564062305577865464510028108063332019172346871300381284883008091330977328711219039005606203465236806605230570058198737347462239257500467238290132821467873236780268191116536174773332138925396436655458019566910009963568261987540787078675130735017043297394853909249183590479467073435813292293263362539937413867133423537094083003919031179165602903436526407444158330478596415169567235297773878295084065871394750070933101179724177755605364348145255268009382567109723768609294055635052410990090235050328440718607059092522307562040706642774001717380174621330147571561614507061181612027187457196443727906379370370758029956226341486889242972063431143932836125589898945583659986336112821669888845005314356498687301015531664745762173705780577289842964354603907651579840169904275979580941279661848912865886751580185547597994703043576455576080107588583168399072374423299064845364970992449292458482471421214660154004479280260987330168325119713397679893944533486447722783067083888332460199426510328693073111744665585230343871490442845054377338607638861946555968875877477356963068348976998530769569236104333983194138372772726431057749925176347509200577642638190215911171801826523082511331713911009095130186343220901226519868157355988473063423752796094273893405616894722672388285996302367004739781180491201052870954623325583374186530384523023413549410962177519583696776954263229225893431041964117906961986323119078498889153805895009855443479286623530349205836093110246185775091268576647690049254821072231362700844327962623659607720687515129077837394893002601800114453392640900908649919936785435774390522032011383338400715866246710022947452111796497310445597269417146305174262305658219863078322062414277344838920098391835235846279600219155969566450709557552522858793386813882093058451786903133452235776029716345706716989053355150415479701898916384326574569238186971078864696866768762135576086480791677444271295838339865193345456341661124534503590224351168089824847711052757421583442064700087822050343680560291579023030807474863040646355068645259904657504648687385976828628312416462251968958390526886436851834794121387257305514737664771695313539766297657739848524115510955545632679110178630070951073616263944200093793452359176838500957470005531714398800567389481947680981017684300506053565276487351346070770910224536026124537961449364028832877304474003770460096315060818445321942496601990972246031116766181842524049815266325239908456519705392760946960510372651620000231792422622697154266686924855538632425885411574919114925486677894293440060124048857440421440369973133247402482320801143177807855807281997488870119103237217517779154021497937636491978102750302814724329828350218273188193962221944227884676649550452125540412122451349522072952810862411781949513455213695505428332895090437680848062966775785234290447453772617837057382021271990435325881962516454487690819145575156231427115421256491341122946898418718678914882426081451438898020614074499461677859743421194193043033087248065100634279203322891059673986314861434079662499918808953767006458828397282710313632147053862851491857047740626868429401944070041702228030110528861243343846235477895167161671090761628258791955644814588111934560990835748857721874825945185268584083784340481528813524924650903991414488346256674937113015310493794428472191931455857828983005411736528834562580428512756408678715210645036754890167243821519055489974617449887044192166781819585185988687041555855440311315415269888754095528234306694141163235498871030483904980420177271223511091089359724983072335685923564985584888899319728459369706909159085854765468006819528627709919637998833445185003326517182627036642101374768306697021525255174572710371638770129661422757180808144135179690193477267254956031748333162363626967729429931282748834356378149868428359893663983637358541419712560335669238770312158556963602665813652295567385652328268693796527068990158064898340286274500511342340695688690618688333347779805573571388771780468366098149621638247776231633689338494596193100338598759284673053436736385040680266660893743846983046466983421208815158035557553941199892139439623240811426264337121247238757762664041517663053097478614016174369532296765641860059044043104998096832149794058561397367971395782465072890033816006950110380057364516842102880915087405161392921957219889570184147942972479488021105026445132156662020599948084530458401249786485656019529980405979168176053201776054520195712261232419076712220099250949538521546871599908712845293672276654690743232771863072990149449340726440970095696198461004700562097107506370644767120727955684954481872939512403957841293905392812643797312733938235906882971754378166813370415237788930527642170208559086297393233210672905282832000844507358082371442752992148471842511324795337396082814215035482258822014892859098674083053625401831447711421406842394570377741627523322573317429526980021428267617554658195157246180462828151137764338194091051943615653886625378916407898802791173515929289684663506639494653924127697441297636338299391412200141568923028139799157465885443401069452457490840997507013689507364844333091818255932076297292323712451755882496750470843991736671579024358217423609729687563509165729469827777036761029412699293218456181809802037587285811542650552660347996085794194463681096899924972710649761612696417582556845103498771331857753873437633164117894886269211239382327177082095102793040258388835386317586900046162446612124687427595403525115862322706844047504761967996190642741601058601584470130790292450897802956681320707983046564753716799452662983320234065808104391665350272253767145985319437477105845705683421878764591741168142036143577194396112267043642221731068806224337074126848206867160690294153908385289074571791951998192701575309027474832603792437608328938365109333712037611056926784744405962567407473771323397649280884849231493416200890848914012942948291959078781978238728014447847967464707271619373133271988557679105472063114983516591571263590718749867619928171724680180183337413573256313656754193879753142508962604356171327639822481390922836261158892664850189816757041842409027596697354963353674280192193675062467928031271464657754362991191317212487078112130414306579793314305965503692935571038639903809207699908729392382396596669762787873754164469468176516776829701740973178680806940189697633559245196513985232219916780673155854491651046021151744418397591276514304997927861164778789561909968265950762870037343560464674533981167773531738138224815466351189742806980449712617383835358898731746081632847367276622796199409942078248761582817620367669918129829366654180374365841574877716002875172660985653936255259693416135528419428499864461611379917966917114228034990721617160601945789417261584111235145390736741027484816648052730108242987945645135412037630210492851032799327804230065301005288482350949016290909688192671259108942630701304872679928224500952261419166128203996729849133943348878143871356414347097818219851995735193148242439377191408759065127332496252815658904185181094148626405119077776246100417721362052776581945102783518197152980231351931170552263920498068704947806201140642810204668673230107538789164194195722961720580323280699256352932639105344728196192601274709767060623576042237318914778712115145258533022254077765090179121013058253160832543911049658931046835842049699643522392206083435448546763977527101586901253368895755032299607343654543505170262144793023606614490840323908542738579322856428912808107566727142573370001381390952048605369581244523382580509208991006184693036579225176716304752338495731029462364585463859497608123637610191944946238191232814295288285972055955551500983984201508366909685157110008035080609812337805285623357358353794882930007778711940647683187466984854007906384820260610422846936742888742005718829246804319436071321602092414123054552889108463888183274102570667023419864481023677459299060845779513074420700476446977568871823919040762383444320090228528218666741146416944032535519109664980717031472669602720378194679630027180589551581711256065984082206188042414035774868993167615500689217204690153744766753940486101225890407454525362859848885202558402608469322605019742409484060672970258231686630956690446610574461919630950642380024634246831867779429048276986502403330752503723643377810121781394623137928323624058469167965231416143288807789465663887361484979417629891874011813835650066244939652591729228436327329799457452431671898563816912029844511244927949812104703947623797971538431829920602988910723484576321056653898410955610743881081175585521157817932179518499362909938947904634126031614276729145879111144483057753286321890881583923400890656511427324054357791502269819085053763137376764070734103219506090328949836617974455424525129474515679281274031015335875832740158977574249394865253986751742314405948965212582660322495756259298083485721128571412017003295910687537187784979753868857214751068415994786813652346447205563693319120324863904003939021327386127107921313580018751670707970109861265194679962439035816368257783281375201182951401087416370155289802786402027289706483710837380300654657330276213053164854129734994880249383144310225982926974506895944544784425546401360711029433364739719084285709455382334592975531175405441243401918861037640620696443216843859195188552420009254288275320560471656419723992727488891088982015088125446283428218621202225212566847391508298157327896724205252003407103099162813389832216072348255866578792550838219268681310322874447536199716381231071552307336662110827060707801236686615838992981227432043863723374972759030198105711145258512312668598760900034073802723727487967583317623023937107373081100718400631191667838630684672945299913091353539656502567865072930937484468510881560724042647201433671803741656261254621494120446856751863096273805916436979982546858936825381272962771718243226556578693119350518334600240020614070589639470187981601605159477544759784428034988866226010076615863513225219367308235685206780011532630297088904658241523854125423157427568084335914445828170172006599603349622059117324993673069533060506058974621943761125587570399150848275045295081285686783531457756671286212548196247638365309461033314514047506421528391005856467802012056523029801382268960236757948739127930448007767952814966784916066517886914909178394502589105686242032154074432245874566547440944938318425424812833241276108924460227940095181913762341705677101296486345463513840029206032400438261180073724213610999689812034531476567613712553909785347052374765331691837994853091014379894818424474489729991052961527375035043268859686621115218822280701214737552503454913554349233525376125211528440701338826682843586949141947659351352083685361578265554065095776780854672359375437061702739617572522639877257405712273032300774759213647582958920627082069580769345061020115807864763330094527268953490419809149990203449814741295684763173139694503440782360213953984226415491697422384225756720465281790906696739593556493298376438063455527018260013653535952695316254591891123614663632832050186622846004632385398081851222409610089539890663505058517895333820174968755425655755406462551955214855969093531406763363662723064778354899279663960486157606944367395941682238365076507560438165397365608876219077300734943637658885766707747465985936182332754097484676091829421389544551609903699227624747730212360610630504069602983174240436131505407832736454708971962883922533092368469164743465220053513460380041690126891428624555529706557347110935529304394086729576528707754105186573042872024376482407922571990713950132473100010680587303177816689553775566590559645914144312454851743181926953568605464338656641467044541273524338459458508655491318816248614543701246637839289775839351101732542703871876380457858186020652298278400244409329420158891956512926051536569432865794619018680374543341381223695645158844410057590711505448716722623877794167386125836227415145285583977317793834907725170327866273330845110847079560477335103498188184142542884174969025109708616359034084576901240820643470652089325077879231502873869659492102584497236754172603287829622803950058829022868701835871998664220966915367475553137689214477588204801387449304671874665440928816106029040225230769931310858143283140077657650569863793587328706788987314706741158822378561011540704776152663000729332382715309602562572311993767279700913529138074370290569722221841830108804733047011015496308666975180783499730217735351731464088081904479009199867703449616259693169366889286414956596335814741523572841486102900282976728802135600319659545144778216934905498671291424359299309252721653346335711281796867277558144364481117015866141257739605747968048883952825493454064766155094785457195150761460253063488775270077290251021118108165677205684052910111573797492578894599067713009514638147925954700648014922993974199866374078900465467168075187926592905446294510574941307266282814554020577434623770562451627484547598754643706427867447124937934118121130047823800633219263748468229232248085776023188461176033524164231350599139761697639976953704586290802255529252077954253643502388754914630247466669838724974987133581678008716991093961535734210218919772078892674394419782095034844108740899225539062097901982924806054068258156659485235018332166716459907546917185614108017053997366086463130984151128024775900586612118300456412959071213632495524278703393924080383297180745847769134613510690662955885764358820910485056094384169808355965458906377982484728646025484470903730811451605729318989146245075460520334575937090823559592775230198865491636736352371733752803629312063719587997560942789202562571715911777081956118464970783629379223653845985104650369185041381658123565389805255811922629164730350858185551446581549226771345604653229850327591925939395958515575273177237936986240739085727662583069088443018614925522041645282072893231819879410255455418771724351414176602531767967233951600966625204906049624823854205301224666682405239065019529857997173332169361636121386102403704658617673276625836695574059713032380224175747786510956388051975129354821054817795784967225374187629295130617734011149085338985017994432858030466170947158754216755037332752471437874486864242080413422192680055277553096394031119684559792652861889847558554251296264885000871977358812358923082032739437533393106926671374754603701570084885289396502956857548445123633674503165829119424100510136936527615986960625901668388240677430940003191827479027145527172158575451376364929215664614384837892483990890149863349324319793828148395654711724054856826984788721719739325699534985345897849730116991358280257751589646332663430951421900147928252020879157145896456860153478592006723078903788883215157809594153920695423052344330026447619756629541422072282731216820100471982799869942682167603643915200905355226742767377628536576812243312000744594087900434977175870297871225578986485643453499190358386498423438031010964098993420793472989901770646843065355572043993926600632569244064891609567304960458729131756101736534053944482464974257289849834341043051217332128698391241873780146132963686531387944462710446224727351733935451188760208982738791134195409967198801747426202648803949315939269462715241706185285092590239915695621204527100120285191911601170004534543499691204987388993468715794777958273715454585979075580145665530301054478214722140746611611180547661319752331372740703751716871265776878722740336275832816118414760435998548426752754082093681541200631085536649294022823524280336619812246387052860411173336197094578707289434942394894382319762344030842230431382527560222707984654213269827955342955280458315714463937634840029131320095719550270454645503353975435145899863296224195514871547205725285881654104703235315029823804448440756386454172513970424986871621776244026113956420293672079674026304177454594387071640431012268752936727387983258885241819955907128177663970276017931365265251445311009921156444873107307812340327850851889208320295481877434387486483965653831953177359222042844772524559676229107277218194242876562963398485179074346747234130357679019190406387437320094202178972160089269654592313566838336024505915164850486723605610349443641834030923319576198874907995092535961818122071036826503357156541309736499701697823774282106835219423816417683131776400133837185028710930910684081999758000069811665043295809944436906271239940143272756470721931725513597204364478788287120571564778664149297912677489505342069471429554367807897733340227305082109464299100140580832423714315543702471305182652707100375684789894899775493407872396871822346720469439531071893327882838659195525465961447809687536736890856710591296045338498585089358144269634752070899449201042392254314644112500780149130604434599430783203846467438745040065612979656696095864225385669681946958213856638404628091438733833614259180196068678157987493380610992382854880106937697483249941176822677080712340849340347863357313397471822656389545571166343517474355991390563281285030841680615076358327089952885624642545472820656296015755605363782843063852512505274560259109737599179645535289109026489675200489080048274929168761220285444513955712870098280542427230700361200091601941502965561285172033576360756233839513245370618458829436832264275779941286486003617471810546317327348777923430055663913309068021326003914442118633103643246463650322844257458905779865716202234610547115659044245059381033955988679682973115946428916499640298679092462717355970306899412191893905999990045455569983009733726779171191607029034364248847482285848596018041486868879617467719503657452813750871152244903880885943085909003155623022715081574806414829899763722726917807927540107365095980011229764766847871302019747985243028771517492284129229556884510307289206279635814551099156848185804852833838434348922233607933798025155603572827818594670380458676099574772732966171965491154315425557558906568663820213026233794421626802769370316163457371001314737086120300393389183233296729037453166398277354151161419653499877256168282057505694645600598093471077710430832385127082240293630996203007140569331597613634574962118453919153755749564063449671366866380673444125662500537946494165302286326233446607417624139899923854105881783323555997836147488148648343827833039468373431395698498328875740507234418906048266182018915376605009412521473014516665830010876288879278630899240914971339614912184722356601817950943968727032144436587363153557071341635844646051557860681389151855829223667252364736999116284864932479316622841015540662047551859730657780183238605012071851656898541508720994410147245899539210513393951668355573737634104354410979009939035425296539461894937795419776536621483874706988397498700421034251418517868025998820367463077277037513423792568007359806481984117862335079724014855588160468673502498201279641355216578528474323239576831401806100583922590894666034813468957958713985105444997323686102346478089419392718322333103959439507937498598612299821152721514553987124780594928485762540960769284004893171331573572626746555088473646837803092454825628418779619587377356208023433673290781462193840926097880829050582296123662974854370875468565572068743132288575337813543324834423964635525807291021726527124305005561987130066111997751872956138095478503906807488379615281478489576797560370199561597051908340731322421888398289624443141897030175274269726625205477566283769007067545403703823115412673389364802731374573841349978134905153642610977528584025402501200408625349273665185891915457754956247120533372837769695318821307036116034383881826077323607588733225664712110416026077587785165927308499531006008251399460256255611158982473545195891291496719063706124645663308771356136892763201032602325089771413645239852856953481511081727190361930652900362429569731878003998817070361908117014097267567849273861660575210541652746033977963811308277835095920161164591468699339208026633177178261285754120597509630189610427776800636387371209996298508526765065877579965751474249239666043045907207306284604634964164454850998893438431726041927945457376685087916838225200347299116554094217778741844842298287778065798020834457347400456245166505784119571302777183894138914877817602369949649871124688656729526605423770674591293661456037057389229760579754021607475468134059774232646529629054916803986121168712139648860828641883234178830612499867511228993921038117786478099672005182959725826156789301773453185986350547500993000763400872227777788547922604982016413898977671618268562741570623720476436953555421945613697013832710855138329685109821372550759555547745447825274040022767626453491125991185573289792369854050735239107684673681226086896239641897548997055375364292541311528364730523514653617379890820242748096274281350724987018968814640008679372684254472476950685310009452123715493934687658248812207321394355628072679107046584775610507654032421175089861376639907996459697534814530836714267861035870538791961338468183781777591555879507461295517601863979077815944455311338171817992844161915945552592567999281901604685709516349522478308515189252158326834883957000559030296222431013840706893696817094892254749361175727424914441940230151467572100836115542726510482319127586134056555547750452676807245070734164901250461597570663219701126613064066716805160630561549858508138950091825240921623495546829026512166192016129841843497343256946503366104465675458277639071388633400223061536497506559491442300887896726884089472848908027969308003433333432875673209410268410937941494577706915675135017835757668798642635926863067578156261778584177330240660327440904345689129640567878558520795733377429428808487043038969470934388701864635955544334827723001468781696977768147597769957973202200220114266429766177633890398736670062076165962799176098204400770250373814949322134477436057303364178489834927195221006284477591453873571496730955477885443863494775198731739965196396084441042869765609334006290530916849576393022903982800548212793236656242814529172615298537640531958891122763407767808743833200830082639588465347170974903139466031578928917896581854989073902439594919660157191263577180209871148045239272486041313991497405472953387077016303914530834579144253205385217340071056669443549068293424839313965403663888122916247813159634709979572946442595320773879996608375731871482619929702195658080961692427128568868586150935308279801412413921249529751641373181832376751784415588266009860578314475366160675624451564029584837649810364841993952965269368112522450401973485287838181697706007715459584054927138693473127283951337841249936980210369437012875040826894894149669202317957406396139023038149757756121837487422873123095896126128682613939989922504476435233449131341343610859740040559107282149091505231215022176467936237263028835884693112936744678390275174582551643127701888842672150070426807623004689992213604419739329955919966291229513841981703285968212380900547586146504069794486823755252576121146036513692143805266722791859973629965028464302950292273128457056446640732247099460878517634935958975901287827296635472553206138358624590509186993361703121141227742096396642864560235794339547193433803356747387899093833342070377961162565495693741476539546241332033843954250101174787081290959144198845129977712055629219955366115191619012236712508679067814456990123728604542888110735454944679286135616862069714748433633714621973794141024372435576057388090054523115188631372085615912985100472844277621302016496510644359841266710161573151742828463058750522266910401306313453780753460697821046226988064269807725002178821120203251187770226887742873851652368703869232369684078445498891864855011100197251569587185501679594727903858615271415965081146048299279562377822381752160288024062589814929005876583764706488005946682850686157263069511906696531482914635046196641216085591910311282449213956242136236526679310743221288607463629639115442476806149303984936241779964671684436915979578311168185184438652346249138899541413432250609262853371125191584466250061307822644145568146837074993937698572194785570412430207802186827584390066973880869764430362384369514986090513033488303995282454011764057611554905971734175948297563199899594970896092002681600343953378549707126446780852084189273977080243936252992122906750439430050892924489885895576900261426243310321829183553790992964911736663905114244022977573310264776024179168952442315436556210767548396121017884093600733691222256935847702952323273213715736166727768588046636399993411982336544826714588283071831746614977983795927766799956502503753899859479277435103639081793467564983562858374599253204540212907275283252494554688926258767671471095173658161612608650483882112076130361173113311416579429522946572635696911482428910103393259083011460090930383989608245770680250520381374689629652390061760840690609393647647445040344042915728093271736405898517733208489331838100099890947126691862926641971417660611015537265021784140611618620808436737995162552315679690619762744036038888284661662418806521280921802877352092852553917452773323688818961497613430109272248120162464113289669203307811895743494152793722709180248622811024510478833465053409468778575855627196084124929368466291826912867754095113769401422526010637915713775978287264025470551729655933360121703552618752105247747677913097092344318220999608159606445285825982876677059475272959972766673007516868505501552681298693226733057294546265311157510560747116419944260224404165198326147435688486802882351885092225013330031215413702480337511566395654411674541626761460382943928718327174303421455679484819876797874302747683290929564588331075946200013651411808471880451693281640985824491577612192947857927025087837658985862949352546368023985266735113309516763713998223216183056091392267621110429536806392532315227575035186893335688099674612552480890552366607918483844258816478317532770118931481916156102554093760369739052797673909937069574812356254356673437611980135134521916643959983870115197471703287485423527441908524581897824681728270869884318327959090993792973074759471896614294418519011543138703323564687371298790667764054018133123845361497816671615699408551487376338839064408648241268712065891012063193265533315776629945684651408379132351506678131401005631255994458123060430009596052537746675024570144111655529181866939208339793304292194102178012422568412251902067289611740496010700331278377271908976168615371857671008265090506689512003174399507896481042400103448607011604603856976944935203624164498504718057763427952455187400020514280194727030518987094422290929934672124778826175901127080677161419180022420918771281931250462449482453705531223279800610272820172210521026669547649939994440769799248741216770339428048892225178132561078675708097162130402729993028584907834081634662966529847138646966451330526223537382678042266048749547952283890548523392139570251718475217569216916550232079793473619156755176640897216942682133765702609094306821626242898246452662248776857265226224818911378721859605278489085806004045838028494594000153594482613554161519425710200109124421879083885031918806042900111339218626865467168289274066099493750552783064853584384860913013991502473086205448832072034038497599399797298608837200841836796237917371177858012072135029092729331521920780954957523594437829892199151670973975260558155111267254224251475692632868686425714199827476041609770366363063589405062368773048485567973206831243015847204905579405638160717824555956474161806749607159422126116354353346122758394539661098301195932212760871738330739752989090113925527749188076706323033251465448121735413246145489524815870764064314514130889363922416677834972436037605735992690612406642604946074478901422182636008982678100286999755883936683965212080633422094280776400919699288162331318849786701800354539100062039169302013303546076883365836351408786572666396583982412298335463180899451106233872747943061377116713360388967714336002657224054332826639332815698527364250386136635783422467929776268129588883580994858424996003891852647229645889193402462595569210304297966089006616846961902947502290187887020076015733784177667797689844009190391708521219933644606662285429323299362115272043577305098336822762791604920572573151401977189178015229416593287822684473983889072129942073264642442612658574318307299737655270278101772116740951913109658888553664317233490040319264727539398527013841884888250688766498597097386279054187433965923722596718327637424737599834877307588402963005347082545287207184829501355938833631998814176360943101625538702441255966890151154867821788731300786079767197312214353469549649631571149229943284387830717590818210360041669217874129706017889626057877331546846194930572151601232564141401089801450178272579886480059890699959391952524279461874127931415329205292749231054853705483465518325005126331807119483596321023155441812497300866675058646109861008419388920811754721783635914710738289415203968542177259213756096042009252890901952560943039148839114964740800677593654458212955346080241872906278952572539947284355037802051024303027644131209954710817192443186702426395467086121597490773121483406700848158152792758104651150547335089413223183727158061034853477456174267988851761788962027584744987274297200878930130911633103218324756726040706625783784651478975981919224205097777890923520847122476779604106248003722212864198002505521809263371172532345358695348226186306007424107739020838195118840625915947234940278182958094920325385172081192767325341840550029418282602489004049764113083116838375291070902634648666963484170975397295513003761456602902473733469024063535971706846749663566556083599146435440897669123966418889132229855397116967524624610144490026053615369405429124331471802708557514651622752257247776470470789072989272989746291544100023706364266740771033979705828054194655054914060998687423565932397012074900565105775057516271658521180888336538771373482725055734877394516141115577505917288731210354277982551758402259212402191465029513324613663307513033403618321924556693678733783039937402596379895297278545553069608832930217618980261982110371934301181161781159540670047394452114463304853004704619875963278765400794924604203253587666134670213885525964750731387354576615868753128109673794102191158136603029602511839131598243339379141049623241076970459821868827559797760726697233172238825222543793340819077378892704486066587053815265544738209996495512888851368731633658545816790662388783534107939389246629396349650480812924337929306596398375029515545823809695704902091738741047017669098182455947125519367983767051903979666723896052470687954984575773115603624054058163282447061298048029154210035434882250856570323918635343110116675313635669583437287759124956800328609937082450722488701289454238537801822059957740670752686293869986345819214585833463744626625464544870633345676500881255415099071257079277368784200773259496212107975588779295570866551975860530099113940292453802217640464833655637534115333999575101840518352353232085389903956349151706838806498701007409003917847833590806859083731949095035313641019337298029365445104932991119729631446493417724699497487625570272480535789493279310348738342667900366179793246606757912193907867140880365351914965637602679562139628346768842680306947556132037872070549419010432264650838910307483874587963918011015577345301621341667509316835508504528514058258741245960700996225868917847557299105529518078550276087090904972271673472314405541165885476872642842587216429726969297324014333190323768047776946357140514472458612142028015287114702526033822854542969310289439510669463743685273918273961573585543010381531873455806049866874094919566561292712336104224845800225710966571861083999759149627875307071183478115954837379118376911932867600502397544382874870718501619014484552682105614619978433189190318451736430694495519565892999464619258321657273551394420461668561004210396166382326306233060366690187775008076802929954550602536779045853893375895151684862119436289411572641087312535800633238200960232128257548940136968204067336408716909821165511754918629240350885224298150875329961175995062724299712651796490182939307538178780252995956096961022652806385108620178624282936851512263589438578356461324116592058090177040098180476750761870876445429687208909125232181670289107874858254968761250619756077541441939286900366344054202601093500577544767986171147915014834193625203298270561746375397478907724243336231208951230250609742013473860566372265622725949398379617312725182569905460793880831425423979762298737279240813519399132650036745120061744346437333864283024373795156856294337610514051580210260720675424827059812445008218404416801530050304619259269152022754287786087107631300064223625561265587538696599127644374754860368679727731244406361048290760783094836987534336697380485166299396066051469704020725051384476043166367230849878939339295322283374488697448748468682599562042184243935664473143076374036156812229327434352633672355278950345796345364738574634271796518949848877323258773747383881198193475324236253112346505305864252580346621364736699081477594432334059520037836106736059952616755606256383048738006520985969149501848636685001361818054042732933437304832259603450215426782802148897525992613036116718961070187847363550321385139932701902340434280482791628285671892441580171817702758647217262814496666164528409810145310578113031215276372360556715444658307344985237241944817407795314099763201475490545703032362315544637920659066547020224003763141701447145797801854078273413336875328148539656010571946612750988153984442523194463432592880726529359565737303495573333330891506065984446222848459576422484826993340285188768918945592435383858668679223882808215978314535916933362444521529280087940434614130281828485920028804187516321271794707028872561763625961997992842686925924004866098965997872511987292173196842790072175926967483826909419991303287866567672406541745959595822009396185887721261038256375299560073525092593740461310003728351895562177446452073102780221583548445929525968436219909313935140625980720894885831532038214659734786989114643362079605284529599332908071687747439855541174004115837106072007012460446061053575712075157643161323964614064075354852018534791858057554968519543833250864918888760715020588511709683289138971326089128395320708978276967142817984403443234156023527441863229782681860555700026195516747723535088784912296229454518603915778238779587242695056502810201967327462055730534347135585649396456501579707505222437592523685912845582000229822480116094049080314130314510391843368221321218657446528886587828760052794067628020215155476101546270524545752263561673312360094853967233985758912508188768876395085999615439655269678764292254581952646967109269830275899905928472343205595467790503885580577482538813995792047912664056724687887514775776861244097196957553050914045760590187209263084965411754649886512162125984040480806536093477659194152342692996775111062529101537011275786988518168107212655950116790928160246893999997954152225538726075663282977889456422007420503690791643493294344303351367283288320881337505815747365353209227455617041040886724792651543961984689480399704905172549874460577544387633296501463738157817983257967356767083344771553998534462129680852329820091075894707042427069452372393425848156752642343021554893112461194977053699347057002186574828375726188018427466256820912633087651555132866316061294194684400097612160264371738186548307183287525034756476064770118950673887645352828006353825314595667033082206493185864132991414539712193945546097678698427434215858611901513549157654102726750828174418328976561687623976535779236084656995319683821657312554183120038413427525342264098608800379145721926157042500240583547705026257027156681136389201912313588951354804778037431620365482881205482755260502270539432734998633409691496325047371256798076686852535266604670271558667997918150122222070212659030663912575765734399770657080526337680687955287674286573995243475717003949511255197181261805259294878479538033260350041484806787151694533021953449877593059506326718066451041629128422856772811577886610480225371774683607911361392425537085898164508722669249412546457938575265426161994241600703434734559770442095948799523129536768419987812667224878284371839694286299030224418156826133683825133097573923368242875355838026676935432795137858613441369881974266344591250696624288597857604256364994990396769574251036537154798200216721747294998486824907969495354571599036838782064492328740249531779386211403978524958951045665717613406244758483009932173504952804367388587663931405002470425047843628453834114876126491597429365807758374634273456183621970058317887770504083657219260065375690607804298066513018486599122544094353119767376790727831060041895170539007680124215391643604951168815858820752128531406100275776218422075689618438667951353538866183001342035897583352698004474697241793810683318782836832257745866014047401204825088521617348503449787317754626948263869334359520831060250142314907724542757303372215522300098599153161279526699027512086025029563805595172060568193552756423143386197535130593091693446718394387913486678141055208101545565247098755354084144246728309765384274828308067041147920376412540531736225439658562148537847235414288201080893634037388004241283130018090241531174726202692071012046007858771450711287985297688128039372140566055677622027364907461729855459297627660923990420751115055100357903669963801568190882583895721305549758197733209007808520246173441080805452364930090945662143952650763478885850347744284384372509842548419219150607559499502819751336292840973223953741486465974676455942075055218513222935605017729091231722628831385837465511721780364584184102124305528599055100158199705603769918724516609156405396158632251373274739323617940299667317057044414169613131356260303396420249189537695785665022055563030060152494720997297397455871590186534239327031760506062651456643475632802920715702041616072940118622464429137426514682385025050364323366372865690306671195179000733507908522773270344886819080564545388274643307931446547197832594601380867423323936237239981822699842479090876134197766020333899788773090496025169932844520548325828422718361584005865380323773317240656915809029654964113682915057010547517377548892965143537265087640091632529962840681773003434170082383902579877895882101391710019493978652451703861696011402199949039679318795936803446064593568687059106127113550084180896137535061347879075643286957471253294302795368153882821782056210413613356736014485288147325284881352675423252754422900530080544926639997174995797809930636219313866089043048437030659443693051471104403986308704687363780691088833222506799278156086140800675050904063589393337558377343839833141574400927104702804133543712889712535297617200405963849135507764245824763610730586475338612794179801709111158686880884845245277570663114768453143593447406494601954042664164985156967371152284211053491125472680465110440954471044242028123565817215134876449124694435033356830781957655397703418298526596836204235659839506080701810997313968542810419212046895650847378638448471329796050660318433375352244542499426485888179942051130345174676825243724203693873128976999517678471064803078097920840559761889699589444553449510640750692601159352169740921954379332817509772251179794809655852798399610091472854326247777175262774968175192862171254369902181833742603558884302688085019363773738730987231219739805597381277795763226671318376577835720644887213432797930930156659800566764343969005318727036694531761739001362645326523027046953660275718229260022594084387786301867391311525017247735495149070976853765197946211112439835406415189793881167429850534930927475935586416459819054056505507363751499472967051122633423961414686244003111833030417026409437196440748021500580678072017825215506697462079874271596670760270244321449514089237512278796848077489481447872492814952847144721632608735612141289944981116629243725504801425357564511934551320105265020070481466867927332090033340418080317968585450765404179701624396730927547449643393254603631542148434101678243380721619833973068057066144057638632911297970173918305606863643386320414809461257374272899476156730205842695167876915389001277099519147182558867345091861733976321654183836981418955661323535879419939154354418351929228119486156274994326838690906506537645012184895655109168218407416955844872681711738749760667203811965189872468477353833992553230351623518647509006576367779953869190104678343088630344773917037426200198803901831705460663823799979940487722443294067871328419817507720689875555007785737688616155704806522113275801202285767929794713514356471539737268238555196244071864485171295578500697411101476509790650749988811418081962571266717527287783955457457617925227760091519456253357278797919326017640472323339032189851427306755732883974424813548500029516144473943476685748108810461801235476179829651658605023820172478361032496109257832757813430942165814755212098596909729491335360451557899129550083111229912825898896233699368752202959384349241641644070396861854400161792550451905151575924701919118672210375486519335315760009944434189806954004123713401199891865660337232047261337697081723874556122126879712300355440041512760405910208018953007271917724350227770481687484308785265135101158870807273440555428654944568848835699707618389407850750083673967946066186614383837859952017951349988077224317520096568584131126484408471327419340610871349403850364316683918875136794648797490268642378428449134912507704462240712581632678049345501770048948900695801100012256777577943352640569990348803131071401424001200033574311535968465511438232487338110212425850855766933454425142117437187617875845681670724766803733611778530146893736398865790889011463939055902114003380671027308724888149030698616702780403432338455809057040315885275133536676060313740954119346924581467617058839610862614835142360632789276292690884434121553916021296723028675182025013672093545987005812441164907835599401521916053620220753646811417948613503339266850790679008012764815089121585699213147834642677889571788864188506487244485100344782895799977316466633422462897362668448280116957027051580913652355684247075931798533510326404594324313996819080499817379857093452085857619074749789885938874380381527237673301755781890545342811045888984187987713259155762951502191247756610902366383458103028565678422534796870847814055633597111741294154454127877044817555301401848095470825250096797733317239260918910942807882201144764110352463322087105731604904420118745970545288266035875392100820735726235014240418460665432786998257040840484849410113198990447933339571002773226713857257920838028766597545127953396225427508493921056338725581655741566042960289552841800260018345002020211024517099339321682842695124699697945321291904884765935651448049683824472045920633871209311324356192244297684942635225170651076630102430379197551005728420296253569974870372248780090654670576528125347373642843641921240754678320823520131349699014527709547929006129624558239516189226801775374687748876525222831327970426965525027412721040933472292573867534434710898364570370792549615803056773854038538288765176279262553824172954372061483798987481228479393530612431086661672810960855957358378951451219718533225291681971427891156300882260979846177336685194192840644514331130797558267895600946516219936306936730718862823625010376129957766789469349904495508180836181953861286542303406137704316102966612218533464917523118410416521484574869252412306930682878036292727415309041868353947393580332740318974440501265380751920711406063818662373212741281870837049695219948797347768196332386585753315444117028144487476174578534994145282093472067727042267080945989576211909313659375457589274344479908055270273930008762886932378399515852106756942294122059968682649908954390124660518027552023046424065111831420408287199318335897345254696994091827560379930099695892749422527331908181431582323796377989585069769796307158376951605469987995867178530717216866822216537657481896521341656235067315722549266045750984312597911808144513247686437572650094977968728900198322838847810549419270087444922798800178943653287911154498555223726513162679446822151606438876583769938387968857816061929102845851720731216067612094142281518323431550042464901676916219136381211297088132289875227401654374178247351557090326799651033566425752019718798749688273180720319572403612830823970585608513588966000573861860840561292994791990665786586370105534782027751296683491554408544740605762497996364963067147814410913765200208087641436372929541226598076507367365597902783781941288184199960012623378964044301803602349858363380920264751773895444075569757702208172798489737944333544903606166834934100748798749405481817918109589449576120073440739810294982426603643394342915139540935237890651722312219435125280934379125834000895197505637900397780451869852264792631908180195301842587293791746185038155603516901699729872477153364358019727946382468324556681565934639134488552315304279470515308737128256473408971265104472038910074339130938202052280379690899631884803772414639050127048555143035387959442717248419282590281851079519275178888057945110368838737656510731228436488120634611434977151620202404856068671834839039664995686500314075901937590337527109112098288223445045908239412607531202983774575518065232435792693377553267491007796224699461333272973761201727041514342145422812076903040321039998520932706620649741749749156958649254271888190285066655897390762971350997680322349074520105934508032339982938515019816232394659946666181949326108454555092318564105158584988115203226767073796526178949167390916364932271323151101166682197375835011117580280438780882070656461384237620468409415715036914102052367403148443483735569072615778208345604259321300812764633268798347745960647121903540060532554470897931287544725054836798044147753941857103718954813557535330633344488767327179538645575211326029372652699452631371875624416976725991147420568831118296661587690086246624498427726014985156363990539471873436525136987676092464313096247635246887122892538724219568006251884317274691299777803665909687455658080846536885522428771150191568546860424676798755680074085659335271265470539379291696597610165246613636530867568005407081936867843989968299432401994932265015227345209907608856151202186691676224932560031324398580368548244802167585467564978527464350185408126516843932003947491960217514256702381219897104016280779224524632705198056191521577540548842090344252200143785710748752267296416191146842492821687631355648885933564233631868592375990761456436332569840191232404314177580772230199570938503686760146682312998518716513149803398329286783837656811135725926065782571910096043129234143463147398624031117148056631865513672531945237828252734915643460729717231921993076493528056023521419482288537574701183858215506639266883856834504908114734182862421111015578095335093457747719477174644748708941874908195773937921874851505806698309175391087308957274388484519739406649309709450034212866915579242002446421016817394233259900743420925983558926014323025275526579201826887584302676198552502485017199143978116194782481335629512849083373844969136305217086816023902542285614272859683669266944219509057834050590275219267704420796972850305283101294800689650874941115579063494905629311643414016572026721311811210117070931924784318858711527352683507551463149697254306956857076211160126763954169159485726689137884656246232617993189663876736893961766146544950281131293638789688038162299230702646386216211906624262991617756878198049329124470103940166184371369505696652013099088944473131268797353979221287220121522727563914620257068850069055601962568091628247808058023919197504944596708592753804733615945046019494654850167615873068768002654176152673110785542704872744807621405380970541829693793855178368008910778431727754682944068543549144463303917945360930599941067380213839193549778482780552295155637003813611952186162312473932629885154990314317761233638029357611258064571595149746321659286187380804794186554168472364830327524722746969190183473069021053628523833522473337849839588667357087866033375363115302437197119157692213417074732811050529363117598899000737071563856206399177323970200635393148032427639685012416691445264405188137505076056138895981227764911025558137761690201697891945918307501911885244195533841605339351977991102847898734958418520994268220068941219952808278347577903576609456260086712456757589206041431404971753679429510091553701599250897079213932235845077538940480851711131128716704527419336089103988149715527000280767473729280166515958081044019154598581750987616257894168455523202506564921554376491656223474839225250968699523893905305533318082352115144361686411936271807549683292865153548530133673356578510235996223566151799545337968100959665758786653878499742966551196727719795016525753449428650236758229149660727199880416716413315024580297113188669808657507409930518766865602399254449248823471055659749065357763002632258531226551453921464714090194704495879432017471698013893863471959064515798669880073093347455462303799401452753602533364143753373154692659502734886674231732978274678170003806686207829778866460030269265610307880859627738708961221355845545272097641258771689129416227118033812349080238177200773346308040135323350014434644770102077226333018819065448838228387826784798612236033097677393950506802948548286036831716164776277854674765659199942610766725497100217352568757500355534250548506757177236737267578076011506523273961518666135118054846401981610525391554196701545811979081592811717577954255740613784673086492871373516809433796411455144854157327824150329307668285856331307932572068954772480230324558273880850908623637859521574223862640335413857081363888629236497333319072777514572687914480886091850883522425593639128973155309270595799153290125952463411951307982878015048497794024251049671091641133919377447564192180576407814472771333845286754218453104060367169974516146178487201209683109201601143303571810697461784900621330803706123583972531934329007534408578950710891905370166695685107858341864778026112378156527608768129318244320445824873023510802416412663633648781668343140887425159653005709220967893813007537347033781579307147885309507736597640667304953120167341965904383922142976102937692871898159469963697803135296070952212498470543092880590806812521935640054424274579008186607177719688725990164327247228899682467695131184078171255082054040871642619455564056399095141342013322328527371183792741778122517140957521008483946721385259237272955059446263490176796397706173068042357773627950848038630677196153877814430988135284832034364862267634454346756014424067916657233119520655321569553571020844532557315131879225523735915805010522938675543237906028700710156842896339964536579059749534224617475641862597443724956193297621355012931812699839131828352479579155848445723557570950847089052994009853905112270212408123355685573309771581309278713514439112174469583857700543813000694883937852806550443417904282551138156270076379058144586010414236197397470214548958961815875582319777558773216070005308912795014074254489441768954142055536125848651029650777205788768886069645639154120582655092286505371635651966130610869745095184410045111808621427141455731387797446305096216875574941666242607665062450222985423615255174133062990953633692474309453516928809150583241634213530525578883677606898910071368252217491622908842199841741297978876996252222896261422386611528623515124767345599481223995337385134500544686047331584700976952135015582961200634528486975920644620512092810004714522093814134499822126901182207928713621692435714296237856978703845611564836747705709768823564787465080244128918963952812009548269369878020053696451925002700096256767748376706207971104436558386246158379713990572225102264692683278390541614317759456071858666591620881159011647454262624597873684799211046267812527858368204211303461015813821580147613017228294009448055667793277928718727172477305474663296849367083605438845034752714618186262326362288731992126106050670091160716370834422403584410631896107600717818681921405747564541174180755469578486244072620977747118128208383450917387455699945716320505400565911110899987166625688385204347931569568149654730264594847014390638868387907620423177761394030314296935752722503185696415029679056750375689318488051640646431720301816595741909814124039627786266930068186250950116452507515045098325835750649505945390492150622303476811702154024422307781239042419591986823477263863438878831303885971472296482288056831565390405488858791755021177120525659670273643301533555094394977937153033444193995759845274181795269163391645907789755990762394717565255298439527873642116478386956252346974934726303774140521488271913992208309706912093320649331585497443824070240556172676352836528818633652919262432825055180000361086954571239321569592077236436355373909261693987266192324486920379212334430857810701605450783946645554159375012293951554398202359960794801633992540486594729293450829085171024071544828377953872594261256516309278536689208668377217460699192231661029498940264565392342461253955535378888264623323044349208662775347227106653835125494010762417532178011558045217448721203623833545093285403858315626880150729982793881951676470296261365734044016759946278822074306933383759086690634582430372706308766081096378585948114635821584566367668315878787999900886687581436550448616797150673383711821309114818398331183786256237897411531713317848925752358591953674416645566351640534140991671026964789062185064603286417694882255784629886024332389548665355607191254575547979266126053605989993333931741569782661866488065042589802493904532200427109130345186014786046636162285830784645791555286276561336819916443773911643953877813003947963466772722561679800541996556241230580600626477643466874641827367227815634255973273810580241912782262353242691732479009654618165532258410303776352090147394281863968324074247275033383823653975250690663520391170183207476072334471212096288268667042312407042884859226128764794607211877272248192548822400744443733693110536718323667951277311308701700489224239106642855207355902078720861420978900860546598072059645377330714665760830374880010375319043285261074653073115730318499919739205978362541600795094060706694496941548304845873267982085403811838335303183839369962870230527584637670949909775972389227072015050939329604921804599562328910981287782037113053236186904066249054093859285634185551935980594222095777949792669077977050854804202810630152931376288240768214479053563009521313521562327203256894804764936083461892088243629855263216640559115720298802613938017330805284701865498838381282526556764699724263655413682603045652993302327605372271591469632248389740507105533532986272542435130358894789676000503586466666111220932588779310678677959795994637247376393331295475831361628942036163438343781598742223968007440708121179737184164896510963061652531886886455905812374256017005108209794856463824138670413247521206293252493104056326127808028951786975247738743611906528674432487583323222513170213071279412692894833937419203628603397992601201389821969029254824098082001677121846278650828384729767429571091861107040248855120589017193770719987726659195700376923353113812079791266465209358467619413315679115575442472253692962104664998953913332438729815207196091298811678381564215552043116303506005447911341250465049201181755575962153398661300436184705758630050929440851507720968550131134697725655233508144575619879693929111449067539983799543055905335662616272893583645583077604442775778938930497932961441724324741062156218442395614947388297483647286313708050098175750286595170606081886564029688961496135146200591240277763400997820001206862856702715958963672846653570220065994634768657342942475223886142540380910909239149782374734147124338945986862723454152881238078546933478430602446796110297397951379984218823889566721430435196580478550242589991731882494527261073499057610723549235548436968867604314803634357731389938036095409429152987235481211647060527136037620091475178879401926186694805782220679070195788291534473879136854947822889426422826559044252556811167577308474116959842645967572646080355287891998745988810189045705780234103443609834479163904457970891451872483284523079596342362082584002501566354563838282410038962654605845497420134757628048740478535201533664137434350396854938457126486292157005482830872902068004762693879353710837430993231173765053512187380154905225187033806531073046226294493212721790695363263066619665854673626539299238051805993167561633520666046288375638610882738466184608802440956741182550586850520826244110995168846074961974961458318468224367761137359198812083107512476620441950742194689447318525250377956227778792530713609706507507725507420348561375200297947473812234456859422152094216442249724287020013132444620036659182954165546678366767658815813599254015281069190698140562697913807262572859876112164449767892359298297251777556049278602707089711319392584718025104698032542925372965479480825747373563321339550815078283779377450442303322174978378837277767440958414938222388673706795452554340341512602372119977979354284223270796240679353986273227721875346888606161220103730759334291025496549658147281452840318393521115310839488679861364780168379367925548704572953636972091947112567067475125191916172810637501591400740229432112932365398337262162205366434045710036320734542293572430177104546460193382302719984824313495902447809144407663428437777857526586442558053808079520864096657802530876149036245555321287678972480429114846873700350637796751508826292522312815089769556850592014399479147169111559412294452659211372493159705080664585958986652481225150699434494425721557659504229343724495297449196990459636163561300727496250991473466148638656219379587011113848747238613192012291852795316527428787279128680372088138019218636310147912444223462574579505186662169660494302640154948214044804293005318166793386055425113772359765774611529056008216459386137098403929365712463180033604558160818728947450515059189315659261703713808764703937613689052173478790225558957387891844741523774591617532763942918366529932459742988586937821780452271686370653621381573958261107096554935441172055352894658991279633534306425540198620883608546741345437199127897895750893799804174598819829162571662835275760292462969120458555189526197144296995356065528318719762293038000078744309842976305713100732450053478465824497629482116929075022902174494886357906498291290825554972844994589746484958165067204056985464949280486287717775641311190972795132100794626882515360527739463097090698946517576696079538396344144627920360524242060682675623831332134594444485629555924589609126393560797178330080354813937031936556930750763429238998303791534692428167922738719422149263070545167007234509138570222600932821483162538486605778884860430108497298313853690699225260929220341449171609871398989419110305610365718827401423174592749660901572247179803785688290901958091704674698866596263948558955730276185616766439328579110996608729662362880380455757260493006049710586592421005019871314735476806365663520455566421712771953933897034351996524510298871416080885418993561080782367034559461528917380776084846484782160023673912902633287388463159791589058246503498465714890224488063942001662075895628503070777194485794400795540627495918819788798790094290879595454513095537754004909419507698820612452087616506002379927004272096859157003883140521417231210384709883641478702616943236610171125928576358423698489333177354827783941767528562022371683606397425064579021498476373040857828402347749009828896016187638804766926343108248693140473813038625220469435874006254623031996808361061293412384912096344561651390646082295180873244795885480046790966144585739409835940586950848005673058634216274561474351248955036323249838768678711315358678168622062198356690743969833226784898668989660855210701561713445455992454212529194249038846340225422932638255510495069189221318377780735698021593338103705482528403212018217327558428782279206049190960692632758928158062000391439397023341103841369223227804714683540811395291345573719029969901143700396426026065890452598259920764233977399757851290304718580816317635503045380673242609896231842817901518530225364098591154946975149112475200991765354677973185996166670315825893312669718008095498357909662870341010222642817245321750714708805347297105678083707136081877415202308356359415364567553487338434702331633122453265167643346289826385209285624480224109445185290704077023427816713086012412623830197830599859462886724706046558276622739772575377829602448158181694319813570488805910084772185141625734846535065062890267798720348169025899067011900845943131590519306835687493764772121071384337167820590019005809981720513865385675726277677456523333086001454352857525246848669341678130263639026614883744684330325027113706360816776329398179487885727198456553758216994263497713439729959781244277093036091455216946771115241352681445685487671971625913923852702287332194063097547250483606924361599614905226075812665650631536462690097448210390905834868531290295767906548807470315621444346438621710583848726314942846459322756826469484368465680013986008521377328271890594261228436235506671234420891585943281008003935923855915831053015943213755796953148223796017923383223419042873419231046880949637345555924860008584848299502309918585586443467172745032772335656295670742671545289700877623939691692297408734316730722842615677522531181228759923073719800131989558931379248022183398775389238773794734572235331606379931979249484209681024307367927136283907872241606183028333548833520947675304800145647718401143573349643874712905337228134770029803387890107164227911003683285864909883671564294840141308270285872240507044290942324414191011805637187294856478829777676451398570418651891658064287853133746974991079515205057590040872461465609782635174333687486795335204818985100253664520618838226622993959845684019061235460563224299168569425053998839303488421907592116319861975350756102209188568328843653679320021648816495106880871030432379732248145960428191137684103775004031422274724289067575223566348140921113365993828184631264474262798844683578092036758738457658827044899700202917077243830740740456032049371940562640787465152644895338043139585501232672152235958267511495592010393918012407063817816744265859979530985676413345302027488437576125006161537591575120337961576091788363332002450123717012593193337058692896466137938514702998959639261271614525434326188595350050427000334616398586150173491609640638631556699803117465386966122473008239211066187858665694358110115088767722502154083984072889617087985223991312540032808431813126038314762033845429684344219210691861611682947302445512338861909193982395584950352281416303280293224981354609476578482407603713224117042282073154249841698913144524284661172987038834743857246910619665209081016601500709901118963224176231444689920613793915789600604154302268637344658778950840834483432353861068236141949092339096574203042632440625266363259016513462596498025833107602474258788899534551103161042636502849982249804314588408653403657475912258308826766580964999936827732106648839255388150467704636185439430184740066466809551055495890997108948904402294006176838487978430058308970907989872524833431432995376247326944258539023000338535335387982923964504396189475284031298884662133451892298706225231039367175271043648931356322813609664835749906129447217675786581144861519004187139290992683780977516354374864371006769499519213192756896257879671456187487283024994513994357474721141112604346386340321454242571843689099545953611166220298720832901058369804567990044448998612866296775200579155975049211460215941355551226366193362800739599752090746201636100881978728313214781170817061898654435387815867431168997300798704445970735697367980883919041047645991433024571687992283045575766921493675276857346665467572563645503459154074771473376865623525456451833908015654303816687141169795045145059929056273452699274054972959169129355613634025775623252775459531903456673044776115247913721586218304224768343133330405347944093186041722557883595019726698183830836471146639347956051261084013382921717130327928905248036951886776019306153985893533964083130148620517597308572540169195121918621841766541094728247317321790591800999657414718794642430243299779911988085510037809002323524653023778015348879332625758847928589001737226739867396135188116643122934990640292828087356164257343756270653308263484619832148506142932437096676319168433852202396186438138205226294057622152768810296693347276594878464450837575482403831778212516265723151683204893224358576193963233328114474165608569159908136541799099273446618062276155606625212463772679900196238689097809599155994922794838940511992915006250509147297102422780128215544414129253001400457299677814133582841419014586244619527414695891919139762691840780519727369183651984261377112895740348667680790394802459641006321933054057983004464498703394295005393159759193624448126766476849232480454633500755216157161258430209069228872437062948593542174601422975443877434721539616508239453086981227837329564801578559425391875139204594604435517174565832748343026543619326597394019314206769505586130715947126147686582008265452093552216153646636490885355285911360718497516717168493526725852086525311058933145831018034052475923296586982605361380134351685855109859605543101662565685245592116163774008176058648415849369336990321422125126590993139981164663722398124407056559426850026121782697237472870854995323094492236107569611945483446297653448211768716919427747372163906302326976014449432116248950834561157749285408263511331084783934927731077972973982765864688575059300678080266236115770092283520394781164437205865699992668397421578631999932273207744739738892835907894595272712752901195316543698297998036071510007104634238275689894599156614559013290465981420734615329304274959567915127793488866766452135194296237960972934922385029267972666302568184835290576504789538372813018708264105189081524719500540984082144728141190126589319164560805937100975830167403597454216557836510292330129504118208687363089211693577404472187822301698878551927750563545388119663347906959358354281259814236514780506676017643918589305391347445302037205124041025266460521566014930053254897241727107393350943799078620826120302021300796013506109563836677621242063330931837632257280090605791299092499599506475450055753673525041293795375506432004224467415069701343893996637073200779068596125390933924685476256458879933181106806258614986814009282776213575969224234915804110266816693326622687529040583399051539204590285401084033846943544429627523620647833877851445477031686199442278832376355978531519278897299862084587817176458708217991425059929436084929674860788022496081189907186365672689090628530875172784086843278118092177946333808328099090633069449286092629478429604777060590080358992656067212605151273073739564155292429004717929471054548458898907791449861517219384724579309601030922717500438188816661003628698065417098034781825330236881950266148118816856259948087669259051584633799238608183648855028402281477944664957779674273164693534482270839285338602131872489314256589682145095557925694139790561345704777873513585368169517917031291983032625659671039866255552761616976006220790284520384208250243162753807866765010935427648334672720730750039378465571148189403663145777235240178978666694323360153052011822292075614742067906698474686986682270581994010735814780517532594771438433967679861259198638211723951437689551707080388860383679260131488368116744414744927288649073410588803067475192730824177671358793969795290408611939390613265809505764547121587775666930870238803867345575038869232336361235604673512665993077399481895696686720013580590810130542492846033993356433611072355309275992707390630209284059696821023651975709777509864106311113648580952279676749467514371444277564765914723881954197479373517657645277263453919362662157027140172103065157236482039893179853326146997793400053408013896679649463516042952894005809455631739126034642530277704217063211634433405717606129160434533762364774727119486399233244434895235880140419680744358889717539335981860110853616501179180465637349793111957391978947779949990043052740863163361875050460427283311695631614436155038506764783160163123971263996542838918982770708585469645290076988415505771678298938190385058486648545600191975949612066981852384163866596501264432666865812364024449827854424288535278652972804759496351832022767899935103585188815542871996074203240331755635961776405166551929341290393134622260816094293966822426432908043370201824963207363116776155587002818972448897210183793630258941745366100307193168608410727402786584953390023990536272434173333301306413399212523058428360013140884828403428550510775845901338957041617640722036831728051725502181224598685331231765305463664627331709638617211543871199609347178794741761029202226603357293275237769323419930782753205819369369226206017992129007215807813988352642540756658762348927842007035353585632838878055316380539737528844740999628953494098543798484607320325443294099392069656940519785798699143558424211942084894172149932245817897272499246848707618445092277108733164841139284394070319184365316633105354231617924664550101173641132189758059912360249976617804060008844113214960257530923742533832598527346022871250553666110355872306583431837709671338767103871427216583806934880110470926450449338975937841875683400739573002474581760363586419600425996175350684058508013183392871287819011965673709623787135313102320751287473048464725337673021112770390985980985888052122093373294957831273837632653461232808611936699409651153498450744798508805309293534235810309899606332099508773429801783036139342972465645009162874622692539878006737899594185369303787747183856452225385849030449313927200865812166113008151734152785729361949988756829061057396427298514662666205509254515905439092786326159817867617660678246468351146204724386115782620264515181603562597211037170197715620875291440036808475336578036743167708250700387580006766317993854175336358936577701824148439997128527634321249189662643612082943351846831672479308794643919670586054547500563363893463643344702817549286904452497486004068032128429100043814214171511088616907652740731406636734142164700163428448699801731957495838078231135075322543255143814927501517951878586945858985013584009483580844952162886106227322111404613282701363775122091702592370443288485010318601911434969470898462314753282350429466528439257824320628629417242908506223184171074965002866233571133335962920681151309760309151920418117736728537101399221090402215374634747501451069269906423616679477603016268484005688459068270048047401474794328622399781599894479874748382604862208477850955879338055511810351912139975316086664550217002870641735236734239171024439642415654691431581214066744041916070160706817563574919385800800295295637809191904768448807624470737445236673820528737250068156445328921816564909568259869197613239450841490667848531502758389722201283672778217658986446592396097292772479120874107496468306075551473914284752605239613485694752619134556567416856261663604252034402269329177533173415432704479354397335595268136345586576089721027209682551384933887064364521587875986694601720673372600900763480587828268445517195107546016388201132379325773495163209483518001090425354704894803579513186343005976855096195136229874757322228420413156089530158084535607124396553677361087271073836532541869076783570363016698552425236064386261353889259402294525823502817972653432308356497044124157619478622071812981072463368867984045966705820143356673066197854541130079423374240032281931588877413874360117289816206169644430238727510524787775105825398266416769858118942531225560864149250728185568820868811321044365115680029633690778227929729095657566594989002624688393451255526706076111164755952145567725606384397537322124787778676539314491404531785444739855731521404235666732736538916455744092352809423345995874352506588314269155381081444868505424398738356338008353647693829937408256218274635221447633958177246697194706354942578590244022390551648809428912459186188783476683318169492039595113124047666936609989223759159277698809677004722731987234213712640871973184237384779014747948076148767312841707233470401306753084199001259884378097546776810555062342639685262815885153971844089866090080045950499185430591072430949333831836383975331904781084598604874989992055620882836334951208738422571638162797340196779972650008129835688806238499636296901998913956128010795779708458117430684212288827573050867204819553515429343558704777448421199269609570676207109007494591628411997256303727096967747326614846414543334814772299566381468215963432369587943225848046432210443627184678913874474033354938053129537247396147352515749811313629731791692625336352593981218070960076775219359564357301178293733610011390771409698218358897505856834517177798147442090884551549721933178142693254184942203914046856691897846610452734670589284465829918664338713939829074585713465776167691372110530615422726423542019756273388747530669405541531626548507208915820523348289148574143318489834336647980039617439136232557399940998576730501176169049812639553499299719054226583565105887622723950497135453664440689644018204594017562667391641644640759107868434151471758241896718156635531534782397464731452403222781516526681334380987265442104897456925757065733561405076836663738353439296511737379551864222421626805522477865619117602236167675835246797191575995846892675106878959029361036638831442860631545732078594874725067232257418381516641600386515718471366465400689762058791491886238168259325039463218137753194318818852470898119720365883324532846619606626001222985757975044440241396480477788626924930985462317541873793937239397508657912956358264650576059880966702624989222529232410397318207650382631613278754549403498244227094824195140675267981755199837709939684032593971884038534587535643217581381990863485540577116487312247864689343075400419909839585641747802370034539884995411062535659995800751813348470133043498270747009524293356085231169549020686271670009057463623231803025289010162375731864564809689721846412799763304488854707095651986177985256306321618692784082089875460953610300200802466640676378933294875295007613755134750145802320882073058979198849755287599229376865032066148592709611404648614644699359090941331548052561566912205545861713839584406998087053952016702578878808063228320720342384818444030011785957917138768658366249728698913605424479480855983494401147793735628065934411372767991017963251919029726138699088849728441003072839318301100641748441058148972296137946602499100292061607522212611975479789831605252645296450004428660778035201156001769046120935050283382842855814034323364633931547319999546033039390021155468802510870996192378164619752048449138896048310398761540482064091877615453101511085350239612645223902362937970853961968175313504117007425498558997448907093309516947820591189551530829515630305250317420147122548095972607545521035596146018445136875121090730315842066482172910125866474296147978158617519458182851141775869261803795596242037239471727737311922083798113163443410107915737391841289705742156798890662247417649392754964664155576822060188350309191283522548343451515992778564230202233594686637609025825049265737012353448823623065085278105824755679197504245467089859976332415917188879235489839343006674468296136135289204069385501228077117159116141804522780686222156461950537151602104606705779068544343608534255143542109933984166011610966467398857039739811457710946425029619795328771391926759288265774040699746317441593764513539134438780858684605369780469903532735069690463730264424992318741880237027462977868163281398321833614338827226954576350991389089898026064549434129771113220803109510590551179310829878734580278080536168289655478449231542229940544782157627601314784340597742939726067825831186125940209000638444751550232163431793249186876827199150182945996537215932917582171698371354433941207276735063035328619851011205946382249394704377119835387706642569991042845613572354706820684903498888372200271627463640164710018035220344648203362127610705772910041641435658865992432652482457023584666188373949431806145047737095424360401109649368915841846999526555110528165345895636197208283285981896728523445348782487184731807549123685747828935353814830855647407720900027559494099125771876480034889676688652772272601742315777787278045259737666029279494542583649992251404575050734291031212402090150612222917855139263405635562537683999981366646177469178288232147492627451810944553842032949974747715891415165111569653420541017334847104294492831698798079707576552608468774352439314723423993535023445496106532100868183548671895983800397353200829130561564847213471459138095434116752501294039534369735223278343324944905737603069092611015335672027836530872920224148345522117659191622760112681121091862524986917568186001717867146397369885625196056548974815438557854822608708277980453155391563028273209408925703480058319654245363612372849005413922316552264174332796310991634395522500919807264410180204110264091520963520717148353882114269175766991076207602279253329239623707961902239675537541671416776655180501529587818216339601365266216638030981725323553014408792611503025852260499309341026240620720271707515240491819319954268355315331433767500299721572654241790374321363484914325163241737525035288672772692005473363117131521640953459841900048746204282852456366173608912656005532480869471300161693294599507504873594309320601310335285871716724824223602233041591938527989910335627532193884770537383602118150909048815418278132173466750230991954138846369250056298023424578468462831016181022082298993993188338216119445073141300216135293202660186366819485728540002064705620814460132705460690297134358716824837078531541836839362672165324854868762061829370807914180971256999536026052907809098988754499360245846135629223294562173399033536417473969514867453276062619507565454927112404239866919231192079914280017444314736446954017618897497478765623482084375725521249204497233059008257244007315109202576393965701063062174897102899037832835239087214002745393311567660684036117374731745594861798418698739140578710042038798016070220088919940498887810894584819661315466288877910425394669426388882124135856419728243283116342045410661443971303262652903023772060600467550153562792466448510168069648665892758388738542008715796498603479102261772658398894098722713710055972609984639456278735425112763594086890462430160402737030782751916995071289845544656080727335157070832549813302220662604325314001282263231344789658487263867512931747007487125113677131522033055633606252081712724713200265462873385294830122016455070463974512361497060276357487026541203945787695889963403766587850075991287811603750979832284894358213603714991357581127509169364370268115827874427762636277707435138172301603519785360622728529160687127522495024167096023713796117808562390040197745856529410260147670802249885326726915890952360522509539681994748517851470963191690131519032758663999003244558644615585835394038150219616545760789351217117379769323636341725735108982049060337999777129506165698167830726659022181661694194647294589442370076962632672457031357961253900701109083253678834568021168494474527775352975496689688934006654596100147945127143312435271633526796625555958034192740882533967502770939963893178763570213024161395411413459213354161316888318564177443465370313862933034014533256387638435810674735772464101593598905934706338889920030553951745824165716683616696966798383244093198110522690970213175553980965987492920285690016545394196531294256002232696095020782714251919433168605503689184575383593116169188736063985844031601271560936466738626710581258734499416737323586974899308745425776355895113993639272208377824994894892981776491413506380248971229885203923394582933935438164225157855223572264929502201359752118170876847235921543063959114916562934493735921283496414900760088115178158752198068678688263228593304825169604725558470218790407392016403328071281596577730148032746322397332521653647115990759779542583085168741237369114256031307605558876223916817663119795593866696683995826224428254990089888806707595601454467456713991358963201320287737435589318460621791691715178989476047381732932411045388620845440900890116419228106752532152110135638928392695317363618189276392583561579069704009274102994745474723137355944608445035030276015754004423844430183103325418562688045578846621065842872200441172583380412141463816807478764923904467311520685785840119736335084784612936968194353572469253292242199423658852102356572486845858062537654033867167874268122921501831221622783951691324329909970367462185545529609180950528178555919923655084165584104771768049174193136864574871964908501837106395281421992655303463542410333849332257328866159696436576150965285324675295706224463047881684105946559850740605576361533716878634666770766105141711756416025377641608215904852725640849753635962490157898270504194885305886889301075684902623327759519386244397486948439134125946904958479621211596596666839798045599132824289561086534282751458446235518312358385896884272131748105819161286298265362625069602828677786503588010112539551482130523504570181396990456874418328506955242932871386917835625420609066135722418498184522977528808701823421231591002922667790059128838293960634235791870630328747682887935172301024983123753756291428511057914967800608799404386439021142364161379845629176981209701862733567811656450596208992972780118548737717960546037048786104540870428854396430324692599722170775237817348315059539627249335095778263886964420926051495393843377600950708896891403231337501179367872331873792740978735878222189797509441577446368821267908174040907381274040158292715329181149098257621771092550593071543056068809667454103101148866907474629520478489614858080328733995780106233516005461569684592578448995973699121483969410297732328693861487827444658809282749395203766547669069354294962270530263248488500473377135881010623665488141547419927989088875309733693270038414347623759956419357475950364845505599884393094035928956423984635684463310353830617029495066507698255557406030733921744579441233641325884698533756886995003021217323267811844598956415389390308301023012214519222628148881811440462458951383221666242420085042900213361872841221088754622516498510219495374868270019438393780629913214111307515888860351415892842606141160983285145231456605750910367812571391475775577416457731651777131968822185361963572209585614167724685132571431598523248959155143862856187398004362568041760811115209847564829777223763440666886247072681422339361777169088606090335912916243477268344820999158099628948306579203823863446900194485279097253898439401602014353354087904791112762927263341013514908084263455763536752649797936979628719872601089231572613427104555196922637062282500354001906419716111604402145904760703428216845952202753375865244764941439759957935171516079235922370047909849737558868965865203297093840587339530793110135752962105056629495827523940666918006163857170130129333968484823968794426525851252296175409728066068798916856947778034791006660730282721247613836599008032427274553177825480303534438875955277225801177013748764061851382387626755408776018355522356357534312366482584577204870363584639813367195865008284588696407937045838521997187648703287625793061495770589296245418657294466908281965155032395563474355239211650969204394949202034932146304751308262254449111849417829780550500270350202783829595595607939540596768278246797967053247682424133661713226501122032111524676246363847391134610007755870124878189642089200863507026379679274074631017614520781384032722093552367543054124750947906953201559071243399686430048855366183935599218206516816925785577025863464472810655284602144182303326560676081860226777089808386978785757600637561500067143395373416966640990892266626238985434820416224891791105844336473584046245074598996650925201467870466576501509318214402579982549767026735291677799441349064823655043021760166913078205500929836234257553065207755455598864511477731207884714469849014067651722961390115091015905231563069716181485748336396900440150177410281820984755529152458247192522136585200024925679205393977881714171764590365793736129974368969577009206292358462045268340313841255312274733983463847604247616390718301468945440735095292749099745146442270576347374227168162524607331552074002792414671012832030979879775916008588589455820641173207648554203762030917551579683382100712136135723110194394744340246527738324694861479173744768741793069368892238948669083793681195260621183171223629606166134576563452792163374243512295093264902938891493233507579907098219635066552483961032759948876398736201273943429663314041110559969505536064190230634799537274212713108988107474164593895812031179993370850919095123849881931611750328176349189574956553848646966022874433533604981073101263316266308968500251733752609790006417393308518964869337209708904811107978523223829394032650698524870955426385700339010058642944337020029642465877005989607131891128347360608011927387035544522239324238282871096478869485878482448078476736192882669061987707203912683069716668750203752352367477337535829326450479592282029664536348758673557154681464149608007095711857171403505597079612611551176675961974171892586295110394819983801189001225058928949845753277765335011763316299125251186156937943671505865933477046525737332861461773552839542838740584657121185587775634698928617421751692089710812466945227361805891384445633841307160701985524599090451102487080813788881201910649064990121661468364586449720748278199095773019495519916205153758629289982849951927511471850378794308097922711074751670114898115831131462310734548461534149863650338857541582922116775969714247174612984733323318939502701456640874212604985599555310632286215946014694243436361030221478886218786397393453875222321064911403368711803593602495659261194378700055451485863293000720684388939015122272037447096730665125646546877515916001405736603271623590259014287757237047755189176878356910988810234177476414917011266023416323549518077004491060060429579683343133561704948223025545889910720016716637921884538922229012947160553728575398244875467224305585016527201427950737936881081872793852004940438314916893705328514526964845686016992278031688333187043486131076657767549456042054507959038674714549562003561731079353119436335785468330236713497897365088221741003074869338502827048642981345715865028608906074690228582422807362782215428829945201466672595570192252213644360682634070044027907420689144707557028952036658136741029375334448695935592289970684900352096069482241516362747150627723767395750958791528657543182735445536567967955264853427418150128275417592323587703997742093309482252508875201705973464163264327316505424285049801230527015859469016760770518514756728407507845183072077078702665685551848302072872313872605204450334082438365536411075658252159505596475421281354814127408653402284189482982689879278521483114342013125708079398694480978490549844535644111984116303756568843160028239089910168657375491120836366978154591191307933518432603226500549617678008470597743401785832008402801643730901396187286046195489859376457059225711259761641337374665819173640658628227265113367004940818333804907146297977317609941803770116044456222664508471053581027162258277514058885444720142663865620099094642019788543318617813093526323194253796453591760771561158433585224305137993221368412301810473226721273990571376034247787346386257077470763055894224627549755526311369883604405266928008800425731444777116453587902321984416716924717131559788255356740546529012815369947197126764898378772491716191411445832734563979658985263496773097980831097674565906199634210207995860874439012755399820063300027253043174806762413130827775901480425541298489930825674849310392516978185847325525087370112786436687331979916336799349175150168096867119131714087264179626980969448371271078991485034454203126303433316457210222228840015248063064117952891091930568070284380554542433415709007403298633698152125221475757801935024272636178979775032957203816476203829755087950537269023222700391150263251089026706299916873163672353365522185681713651927381721526735279202664384994469555282479527580624642846971155512047814643776317279379157131173145737619107593229975425056717726535522606564796295967210166893130201399042340830039994134933430827841130752106866721422990065114798591662518282023603902887061099838679182805059435604393708091959969785128096669355548656048248736817833259376131613262191822941729729193366367153051775427315466056079040291259460645592341640943732003760697428649599350082773150825865808976061713956741355926015541710288135783000518156833030125719390601316283929975040988279513592110004687943218347757523099693961182536427955918548532170019476532766554842709469487051938402390933750449928393946544007581430169372939841285332494110544614049243469531990976641441106573650075869334327915566862350387898369159942363698715042084343624113793854281292101480307284159448250187573876486248959067303248227417252191856925785823607239865682742795034356387714602845036291050949494535720258628223816735547731357375445387767819947401937298987779322818276974521303184736998875804482850535526598193996441205946483176152103014587659392854834541815875297772904179479119422543300205520101057905317733334539099917467997837768709562411898997113727199819182822014264500038650365272790026623368277613455422705033195026225094816081801690252875911497759554783611654472240315998692664828526082835554578318797188534543203768736016734104215685503921030820319841138671720632329154939597020051791662579381440560908088229586744928156591306037342062973756770496750184312533772544985163381446764714629275743188925919553821387291934047775929645623721088972531607222935260534713231266865782216267461126525674893365001377359987399385573537939672232177416172601665745735843836667984315999528745496196356287450934733123519665855335817793467768874793583137083020472845653823742864704141074802691024663076013829173677710812712959141954211087356238210583328843061685664659579742353039372459681577949974557280039284832579961658023299492922223111759360968198474773666954068452285169994666170398807930777882716693306706084003635421817640289419187158713123465313328313468138419060798314354328069379080882461471254923872656421477597719878637357244136939114687122574077413657984857019977861303576210244034081698678855331686327552640321784066123337932275151439051104698620883544023808829947516962465507844871417126411807199799455661324841625105747744610892286147253161702787464102401307895407111426706579958189625139331578397230976863625800870131880146956891838849894267296858651156634488493287002296561893857614323031158319135500751773383749285784801152552297298020029384557104739067213326365280312942323170708441837501837825820854446582815832666055874483487537348197938898321252050400464768814908136925786820797594731484314430284622982247039815039151077547532966627455734423536372193307759484686368311168194946389265830131202497692489131472449601519533933310671165397171046839136139351195009463932222526036354727584926666549133830818678432811418175049556573101741570450533069349724501043097399083989513136146019275552056561355831917895375996218091850290725868258952996231966493122636700887261051266054902101186098746043825671037066937839308715812760918796553814940178825223926080627586986846395298551379775832061684652720889417892429639680260798016582334345156327798386912218121940572258825307539490195515054144912648171388320427669267382202112019907419624647650793105001442942085774015660832826558611618808950681116442629651925802182203455165168079752497631321493207768265895595367424824471507072640019814120285776373140664144967962211686381644106458444221099239446908359528458715379336675379816115119740619795461283321703344374916743183087189565140396130561314582479507102468565189680288870177464603434189465207559914499468697655626265659120366814321495282739359224288216134509939350538881683388616240054714274294977411833281439569361583041221207365140198557382202248990537053414628921756639631022283794398564658489817432529510590282676506529938090373969294166825360578671530766770458674602214798111198343171735253335997154796829041772687273857646110791153473397122570226985067918399924855789806333395394644354715057009482050557781977075003190267692420161359173999654713999459438492324869740010848188797765814669883243531250085832472169672544214673816937667532673059709861209456589246288078676157432275715618595995762137386412880235334876006647603982548649980313375704434685194808477800439999101087825996894846101846653173756436961603921494687444912936334582196562649898088654001765259796631111654133959677128839911006841485638963294902356705092208805846244498708921129696158475960945559411033605114825562218466020770509363253940561048941446598076657466718949120464960856190397058764307065145668830271027263335882353950943362518058599213648719740105213772421042607946057990393951500937603462433810078095522770095474395728272260321158831954252625027377141414675272509312198904096699776939494618661328082376547682588170086247782558311983105220185810266959824186761999328351571710868639538241791259005704110028389637533571398768087051932544009914651594327060691244049074618536901869529931326470689855613434370370001582971565809362064135235105334803132340272384516591127733340408794154088238954045456352105289429527625415131100994291974937574033041991055973947858987877527299499737348031795035396959572360584043361566276122001513376342290015626984373486279201044838752649030409058444220737535904777916027308978502969593046253227486942424927781110179359792330545175805992027316266422330074531025753984298928575240014185532693361547826210804344533157060632090032364193269708941106419228917979543326561634167463404557711892655177939363596149496356699968058421788590983409074743192359164980286100993461946045051053417234100588894065409808352877537655888797405024814681315690247216838773462200578940448008868293314593861062081480812996191303314438513065183437164184347515131876179816643669002754471442696891953486710808320197199475643930805959241028388291715535924081095903098021365543104399099485562723476640207952590706641284543281520860089211213308225652468683607631084139336521001960444303655468074748623478586375136051345866728619230245156977495953192205145284097728339612116435099759791776106868821131030113079367120601440641049454778727229252955154029244312796884966737060605260943674041637583312807247741070018118376066269215244728775332971573880543499195268151016340799586423291111706160885506715986083862970177614590889736506802422197264771900255572745551877308618754838136965971482409242039139677590433902526625436098250006907650350012938066083843329404332258100876242010532703794853824136057272707495550193941854152084765650996178395677118510485031178815189910758498067802824731320011168254262837488544436112515590515773509443589972653947331795019240736021154165263856723862790000771517365786709821967103211362987143860407310659470548833306610439601185003116045172292563725023785644518386707230513775905832722761945311499733571831902662395515352590830364258855815661158612692411126845072883843476326314665139096066181041527485934690155817572559244132907523167455144013585289157230868269756302415381634795237587874430008167646521211702079350392325235808838228288447519053338809179704775843810406715772532970604376968465580746397153572287149667618944525031471348575885320205628948855112985144293064500030641985901230540444473574414053656936562512807140480009167227046018323255151972698363876468843865892960507487729714369154655587704690719283062333053414552927347033446070137842114746264745624113357442472423813000799872938714949089455835968292028331249300184644223430510189247527349569821346482798313686776412023891940005267831096876739880512272246042830326524309959270227674572723010213173819269020367569628090923384243260924482960263197214719886534730530675681975736832208289933570922939118192507333302761061274285913749175968096952441528673278165183242357346122969650870555872912833842574499338651735388522717719577968529242077169313736902976480181218924027456732099150574715367211662963879725646586094799167352647727371974049978466722104099442443645212894335545213301739893702817991440357141977179508706891192712400649962090954825202785910897972635009913636080303022884147665885122309088247794320037970328485908065877284685646321937790773768721793918786552673553016220463749220674772049547180992172548158373181647392409221286764388577354244932434666087982218619673707545255315111556943924478153329471106468608510460469001300500915592225657384348679703369288736657867728925252692732342952126413636059433951865938235830067076448896781428660160066546750168889478503516460022730219423458319909396069719483664802040692466723803698925565785922949780399010825075179696262707974184983200007108754150504552086717767497842243852168933503139666918618609029554690694689471485347581322845707277513822530331793980044738365330787769398262608684230929050771272812980115181991431517747463437728420485327777892969235154222409750454839982691922538782322008958329761235267139764907037432589898836947814279446299949494551501152216164081993495360216647958699658876173704996425846232041230471865172982158992123284129042232925401111498401867690075656906786313912689716346789119611429358938732666231866865374667827781677548001104475905429798353025799708361731866941476049625888365124630278081526843698137779609532336653332192606516605497455951196769550370164893052866191400003599496095478181982335521600093504619786295696187715156647132925373114824448555814378910975918927372806011675936242211893872946876982239168685639178522364751633021762675577667538226934743580104663494177737276237595710702966610811907273816544295062518361855538499812747102775533814640209142854827623837812124637697197472370746431698467770518734627959097071724819540085863899117370710938368115427113119727888883841435070082181754896132450120622036192289755616157043248369812649107531190400371246052068106883632650759459311828870841903615150642928738059443458322539580886324714656138324910140045164782656010486280224139715616565929302097294311270642045359306172071794709424204961897577963993130552417303855243848881338606601997838553853563195001472861452446270762617105637529076327952955133159021458868050582369871371272773600439225709552249024688790027277633795882328303879238790015332446630512129504217728770316631612159498518872129934269748764967808248299179893006524612372194166048748560965627868633371272009940488089843283487994720274728394552902340842583125112794721435610920408850450598385935039713434803956150602534142049837005596185392976563681741663852319829838397450347611371520816354573633079510847588444979392631292398135201377108157457346557315852298042079609886667856409337759912716197471802939186487979792331912813034519328254932715661875356815169837795465782449228900164593495649432425242327434802102692570479955708003266948056321387329619855652562611385221254934091414982462228632163236843846411049418046977172502305181402586883630817424491555591000941343499960851957987719250599739075689041016079813282880280119572232733245364833209627024247901312238891343549884324816038307531770302698416717340399669445545540675252389233315733677415353944261754360612652188022117210530144384634570565611989166714486191972878270277713763134550155749520300547608992487006063200276901017714043156253520917355040490927402838768522680221777965179793746404988481419801629507322153063685031770141582196983478346416384689447163197849179725285871211102215782768514751306770216644215433629386274344015229723983100449700006311499408900520700014991759951065825200483422947098047663460782185740665969481728156349657752647325686961248861748406401609364097243192732218667355455154509368317511783560557767666173326540436768276006972586634949632678998483130872023347936907542412611983902453441998418415212868359150984949436465897323525319551490667089332113366826350069925746117717295714910336787348789159886551873985681499592788257936674408468229570159631761426820740296319703749511090390376665397160852517228308339344615187151088159720708569230611964783026747623026508302919308480980053594499161329370865334020798835116797735254965050277558189606653116582223941961893131996682087221330138815608878849165447560437367492538923469690455725584678694396307061311731837845137082826381845089579113090771467902675732782423386530777477581384472645198901538506372420863209712799240330396670909587202094249404745217326738987522628147023902823017594370686297444869721242340392796197879601246244731455813781574693751739787215849370851160354528352913213447265545944127223711496466660515045779108936134088481889057556947417203301483088583008543295641736036201528862823008475285232406944910843102758264882914520600278528369646750192642564103523513366538228037169867815337527747696437261457411592927007094356692178502101381190927013863711708072327054377533613212869191231375230919943142857638187904611665534968563499916142294989898485855898033929480632821531044783534231002309610233890925573784066017879550892143053216154793383310888775023522955423035613609749122761641129323949458227206395575819505611814865925860665500698838608840821167654671932906529338722940409551967174607644992997018144867238767745414871883865453440931736244025617925153847568321779847597000389842338029812701534975779785976739003626366394607667365940307532080903272151032859621428236146775304408028978376518940699875987343872622760349089893221933421616791741564192055236167159389407430386588858814552786057376975692165773303269966587790666256194965667145484785978457686543534116695618481999608495501946766468680223515165958438649336236429738109499156564772625093898765520910297101883274649117180889834118167782615965482018902085239944954675171617969802607789698004508531166419877853609512655832607370904351290339563946773851654201705956022257907298404554659395394724533620152547912571829687800773007322668329578760508247370587478628437789322915493490459042696710535905614188025944566424501655359577228778559424508263559338428464674317015089828622787635764881999787003605433491188378790438417718427083753091678417366842434782109200037531338705187785756566662704174406310636251398479002669710998042493530329460353784409872045742404991267846226142723342093486741716209333004113741527599661688189154523109673154421745823782355951469483080046204956166404521819624451979795568224296033043075996358291544510974164032359642444466790197570985916720505524535579964702968329651163715898631365386242191883562793229017643146630861722170444086879498536750714752829966505947520802256410536252061993490546569148759469764760200939428376258079685673667198741035681067685256263301896266249598833413816644808384651461890093894099342586570353738389836811891220899678288956545787430071245354024166996358062413644348648705927857020825311784247168118334787033991939775343266169661283325635471644369803539865285000114682151987433399885347855079088059172271552759786324962964418921699208117680801753653132590493079058162503013939085326571620798905712699574253065783212819871110803017474034474756557544205207426577502706502609310388245610061929248844211161534066337361888887363371472264619525829742058861565713161376266834879011815133213332424528994330486850069430109533804610728020280120943364707777691271036738055899537320174366128715110303612595258496247548757803784664727253815513694085464759480422203946039683954206576106004983788083133834146357398587497100980605194473858098946751699924053491722223568992008518251705625461831171446170041381369098869130976330484267679678589059603254198645083289529469641473927258500224135962632608318748032127758006557640434875563365559199735308908194956016417689966894706358344361585203464513948496900006264722643227705711093486291070739305412906877896827259736822370165042397912622919191864579335973671414972028648164306323439778547193840770341798432421171121322647202211670541522582930249371093792770170490399485481465352543064641067828480793356021244876797977685711983687698888146648480807298974830034383351452331037584755768286904666309103842261534686538253979664065787794060894384066080093270671667621675908660489372547912837718300935030964043239897178457226855650040609662765056912355316636534870723626887009537909064656069460845104492329847467424880784394140075918567648989208740050488133996754129129142563501308645423293490693476327106026520243181433912010763831586517372868999648447448355699094832808706161933204985273332850691760829279035296607973074368141431142301072441780458309171129554457670428187502134059234952438076172447130337086010839764790208225124206532674633081987855676629215206446492840601216003472073967845457356972748906468952067578514996250439142725450297744966447390793603398247849243380010361016006618067533249358364654129687661501737832276856467631250596268499175683484284990788629122087279941601088160249751102271002819472730685230258668681060268063050432823579869565594469964312458542067817298983824857831696842919524570603805576899933003980805989735601352204419909448317519980405840957541767615855066266783566262165624950985317228932750585576416512919219047627234059624075689227922468470441912498361815685086566782995551670686630484060641907925481333186854768735728779409084643909393156210684129114555535994776209654055385469181717495173312582940039299534138735842237242951910003707679825443771712822440743011201191774423370387165191518986478473024753620782083455168327736292390783114943943142069303455937503117463736758708314074416690338127866183730643544500314943308517836908480663246265362397201286783787939989831065492533036302906838589032478517488076188848178196479698639564129514365525892070841157290151316722499388657650638729545307300271087671678476523443278289667269121959033807161014876007887435455595705984427583057732300451884217052255784803953431795843825719983052043803954283288995820451921409048766204674535793099750373943976775424426393990558892475127209330525324724115662855220357907194744388828453730190989879392301888995945626742755898878307161224119925433294042553091221719322413681080972274385060865824186175448000199114023120960633719054385892082104569457448556830829888313286173689013306015179851609699086020031721227914520828537620617379486077554771619613294685139418274891073895834837641447233492807301988562031340126095091152546970754068455120636345997852928866265484142296307974424697023719451000520594804880795716110634683989077081034885450178810828212464149613056165267357323933213304215366787944387410487568121925556309943417045991437770104755283872802171458015769592914688861233597667808860918175776392280837744199079091059919684328088398461629829959574481908210030601525932225406380795236332730811163740758199566068816759735132292326922574082454881225710476129556310675314833278380912623952209013517826325869973264468687227154475507304745845376858828668219897310966563112613882578658016567826483862797035000180578937301362544533168343071799123001891049169067907235379999095718800301609521387101071325148064345592892160387428137784717025610993730604481553379849560236128808822445379224342605986387690873330262701275992382011247718427446252226195764340954470227162561571721662931295097888605808954466617738467110200494215378970546912046417497892474441153950328689672712197544909082896489206712227924398265654255718277734024144232431994720947070397249170589618597607173156214824585511789838241265899060987020199190231279320252105026446703583186200255475921109496239512160202637281229478930528363314704016256547318164429826812446066789837572381983828205251643821577458391551503204929853278804406044473039612119286237240391479410710594255491662297182231999339713678177812231003837555629358438103024842835982077513274475866117560458321516573601111860083353821834729220899407660647341959131041465987863051569727887952957768622700492440539543440470496251674390386657065459160014349997314108643543717168993690513660004521847800950621147293370985731800947558230874758889253376510021889127358048715020158564412008044367107954617346103290838253376923767653953147255267733447204644816354395128619726773811651595418911431515901721259020191652074463027079109448853506691064045867006073346009371977334082127606653599339025120540766696011824502719570253857402562571632039061439175113776670565454329254245068585692728824399457676193902179203988625354545280811971637171036879770276904431418616827486599078057397716410490171625416945148852555156973001270847641290348217636081662642347305220781615205882665921285732686156127439295384533853364843035298607459270859746205931131941426905541222262569526923401931498857661210636379364529916158764153128012624951758555705931432636728907154813177443487121031230558091538641441380305733135034097007780973922086630892066332308901111615219209418836823177855528204014274457076414494943347374366744586932948991900386995920018422967215252534332794201005070367007526277112506183212510613793336690891790571336620566475289232074983529287403445748223362416811496601030839456785357128682219426746610423292215257858126532737826617958316718535303959709412071109634770923107026478779013309186737607467501118980095530160968129228004368806845116903899682088875770226954724251492509542422897164288925097886770587990252926574933702183565791172838815784707080591688309345393138299659043518151614255624983955857230574675786440481121636623841250023800468356135072836833020418521527949675351483827846723989418051244488824143237656254819464008274828586929028543864049382652024609815522321722976313622547120803376568555092998375762291858514405663138813793404760774475644814163835237073392120524353083358812991149189951851179235987163401567682142875257650836816964680224155270971724743660683701605735939432578637901614966129485989769954869821126061333575115102242094167170274669415730627424491373240294783777129549421256038331382939771486435058684563871515654600107083035276701029840679912170900390494028388975696328879091961299969266626157832355836268155151038546285928291788956348021207986975570372618152723881217979490188320406280183025252003096153882901324441691508031841709598226105357562897115304111231748601892558788330237950275451085561392272184649637250935635471268183900366321083928052511987600785757892196893809851096438208036313935353979279791296762282171710914596296567107638338268430307045758339008617446614547074455989096343135572889964097589003201034171001372690353110637987960096345507569986340383619316491999932400686915974761466218654843839343325800837663072895115792473747833302778835872957615181335527786353326119888679425154031908350168379354691540336854093168538796772653768961255654228202650033287332865739804599593401814111624471270781509297605455325237990410264831101490726570764243701344278334791193102289660807673061058077059286144289798758860796602786052845097597243728294914782857590775468007200243889744722382656461018774672418445638053327406433301157559306047080628101199801352947964935847051531750320467953513893946905169008456424521267650648163957674293382706094300015223699796476012651541198475042536714673145397447603298114146656600278487620072247295764965298011834692517179217357424236911603540166194661750055265718758856180012179960518116724795324506870590776613905656944310068197826813266500403544867376151637937484169593172832771898453381812213021648903876363616344739194145550730514179795432891981997251563282949339658552890899336640653587438730363199746035327959505658085914902540755327089875464911549704087071669341163969468559166918269358229255913554173034603662734597929517561153745117644808270906788135873496355854914976144862305555316059100823029247297556642705643262078335768341089446549284595568863645281351641630767255960928536958212704472328288126948724277753019035327059520713080230161579944724033473544437483828114824538300174431719377462208792233898092031098796149583849775916921902684943585743066743915734508259884887009329206342662966361136838173987225142335081013907647684913035350061116099919004367053280202632332083249004285992814764230953700874930710942411074223591766266591965290919743666511909630415922260112222520743951092823022191526826404144847876508460263536919238745475087939904931347754756897239708747223198435519077321183030107055105622928763594050391694309496483337825052846035340793846514521364959996091699349748414134624022952907673031495912253606134854386576469308634569069627283248733485948780841502654718923647561127467480905824264757805663414086332020795088035198784963669383758960507442447434130351153579696707597484914051495779383302173412735697953403779193337542346905630473790766051577186098491171497597529172615888053352317243812105586946541872163851737994492175251006702331569181589504164921092930215908428707387256521948203955698355728484937841786704346813117902832013410403498552761492321072800088260994994155784303365439729319140193615039293855405211424076931682873804105062048186955139167496029183960473746698827329042856602137370089643283243874943757793794262954818668012684005103241418426211600213804266886415657523948108135363457968340311072982163457046140606294631398305607679201259372521119772807489098070990395075922945199335009469360412790013837580061102225494441241233052850524643640616941334826620005927975168049203015322454229887859049698424848521911373909902120443691090168920701039511435890792229162215528932320430224299301552733530644023080008105070439060956185614675104203235898735809238720864254672672356415613629460215258196143440126666809917491570960426919080137599364436790625308886779969948948124806929409513273330567761321017342448288089967901328959573892530980456207606203899814466234804810278764967299420609370268157080854050746964406382765627524155459733309725554498261358517245733701111239960702636738860900455758106227257563181730534588812892680130278191769895719246183961668369956667195482484413086777891542175016118223743787525709207067122518330402524223336069699845287119774149106614776006896428377680568692374927097643742843713670002430497352608347854750018799857786299245743304052087882054998947142765677345655733451005286889488075751177573126478797695962131275350288526527880285260004166018190674317959426382032277405130170611937789665726190561615765315926342238488884061626193830532181585725726987439201715888694116067964848366638488605126363195557740182601956414768079521442021445831202588419278997404611633507776911768192037838267522273391501655880578881883376729620921768609842929127276775861029097001122160698271121033417122924161755296590949331777350441277103519793270335382124283653827803820744030216804748681949262019197565319174105416738772364124484322066453369486358218558028255981016744409686894663354602655275345273788526212848566730021628063986319646186964698176333533718547097790471085715103185745437746237772354345900726093267821101377018444917469692646560202856405013246529186794011259247200921585877968387584546362048725085616206414157222901220609496504187690135091078485815321424223881331154160156199371410935709032982791123749426058887580127344812240021332112621363714116043188635159627755776227888411995467943769343122450826182549662983383576265888095681072400341478127602178795816262648894023256129404054875304238741453460474741440038617728985874953817040710819136230847394067838557298464176124408593072105657811481845886348974211343250552711772862643713988452206446952309526990868239369457236977584688457932027459810363574711510050077846487338732793960684775088536207529165646949805849465430217879611139592288417755526573845305137636397572099048603144103364373079183557885348617649397847568251555169749246095990151882768802916699258376143700577529907513668567228362293235491890967623212200446113126728202266884636193650012445575763679712589709194661141393927223287300900150989791223049523295840466383268766565534793459967682889567743185245808220108367971200613842351892712657155485426543513311087451103338919476953159073857576140574194632924607288014341178750021427346205995954614649514732846250503083674853627983244534524677347519070898205622881603807665557845135972039825699038573199040573868586511998246887515915297921773503945137523870198981917864066183890027998022819841676764958570792203508300974047991649286125345591910841287005754902703191808301592023413536508011177683694290573037895720524675591931236941466323808264156385952947469838814438694263246935587349241598097060140355524089635106522012121128316124502141469009287275894546466127022576456516376936918135890605346839326466511165066131110737173522630970263105968403544964507281906512342004219630118290676941382524786760854647702447667515994788539518042609796593418931196381386646142758453178996999045794607766628792731592900695453857985576036152390484252833031694817046152093413514683958857206030702810017477884279504954721318098561171407785206981773204084329177404288895556920306797357327910387585894948766554659930731775645044337888563678100743112234812409985014461390210418396261155016327277211171086494457910487502846102531481531937800914085167017492557539321135058535409123554779509143849960904256266378150393659989460150467870666814769518535398098698612080118105508380578736139864971179965184491321874793097060988899764867074776608183844379116392335343085999231328764519497877498644491642701338295946362309998740325605557365419052853711610172702075435384805864111352639778436296181617051873450984019203937979000347460583107109754552580045398247634608778889228754076698588239324842488507805794610310973932852142280538144485404099460452222844408338231136128189418304633740311228225312523156193749407833312501846689083345458934465319040733005892805434947319570835151993082745816643965208628341578900076722841522684965203323846292631972033591838438124751347946240416453277127346906015644350107376306756342989076439673316712660937119813732630428434624945585973762597989728564968263033348798200019537745797510259447175223061941321202487658463157884317807376068782270230761192929949255595625129731071774604976514719796162662605065358812140779911181312567864344323660873993200364051642791064789635635529142217736046994909188480528393509059444195743020766313699806863506423258669010359107980073349016739072986640455813669919462081684951349921722521041540833700748871206392231855388459689054365224144884402648625510308280871695190343225185026697866864435525270525109636794107301371340306238219838038763900881927242473502519935643859302370219399473007777543912740326141438827062256403074267893442618672755124810018307400202802906226132391777811644872259760178642190573382379537547281210036979571853186875224116241237850653938968431132447341155914996589086990345568909275504350059733004678006847897702332448682561963848293343034942356829112137004892551519068147852060884137473400830574109975158008923629784819656487664304612302355422519425509062662759511364999882714417782921803095382283455570416512716478286262632652764374641379850857382435200613131108829380741426948898776191603900100301831975595163689433339748402980128171018776915647642667276412730818108848101882707668925954858851163510492602336783968031590467205788527652640927028595728553123660507110572763530278157552247354072457667258276232779935814590913086720579298894065513696001103690264686803152668473164618970269041221893301429700094232829090176406011580561112231650331553390358563406694624800624844933954677935432129368140154170657839521004955388292169678330882138176757954714131750186824916719429403400236270090549951510506624429228277982142470856479298749483798425071651074008108486933751113849976899715902649899726549469946029269260486416495127302093165652657508172528362423585760783273143619519798323988159786391307690317043453860635981304358873936465799577297066661282396453312395863027483472235561344195166457777403390499889217846912804676529119477033467151696591141604084235481161610295988711630413327256696759920569264353085966001410642464603763028392273132033637727677971720497974434959233746016356506645101013621896334337028543818307960974442928546348317674402629260790361231210546247676724064236196958022830068159286947094305183691205523020435438771622945381201682231012247322978376374525304118750968129335435100238692100888845677083426205441806750494225157977365756768062894058863183253531902523531702894502052970810829569682120670668332803541185620681414989523131115209184790893770550470026083787018075728070198062162841531616963166889944983055836500326285705660229029385533389742724252215430360069397451672889279175067959920454082114492013413214781325052459622155692612540415817635022329898466769418840456482218318152988669933394856406861097367779006101134541942074532701256084550312856962048209339253608731673504181670014425448457158978048558741701651517375101809259707859403619724460337648217471382692959577915783473365514540644244759101862795296486465413060521050003948719662439247707403363063178216911745687304056115135634878378836682360435965323484980837630030774959115885786680665664003810987328582367423030776391693768175954254322871581431196692978040184739415988274898128306498902857458684251032622838150701414786637865902078258297519450497096010623903832503274384620250780059495368503372348532519553524799444159122643220113993608597709127323908518695977287400545754476589331311754117050996965144845568576755316357262293742430376255836298990580770230382566947297648916026367719297324961427290308941024817135760725318794822131864154810283777846619986641083755957326535811517469055408469375847715914985813868790183558754664624345505557627011226522467791645983363217853794707873905860706065096107704246268113808358146296888125943434814564932099637129801972730038209876755581208168731589394341284714334160388707390526261422552210936381250568843504485064430488673602825224852771579697732268300324027806054514100389839281820584015323345801012087358154683989852361905860342305112706117023861811097202974041975453540593243448566681964578117542143669588739935833849737792367024259254884667294390394612951885652504281003696023909594438587249169454400930278653156690969978725341520243998358549088075672653662556101255664496960385530367816789125516266473392855679100423296671358275806365025732780113411524429076532224967994974269277994493028325386571021082996198196051053018590957700787200549428004383199471486437273222673933159724216787612938110257434117071882939019486355538728606000978464381237776285378927558705755633832031102962877727801711652668998314362602976808450098857487539311613309658226709584854286107422419790858018112948796213073221794650675069012932595687421737683245904045616691757854564528098973777361587489391059820996346919304077300328251096976915131480269299587530997083015502301013089846981752810289033031997430556780865412154153462503239628755166453670631187749306977378515980641093175097340315021572452477379753596409496730684795604747994012030683614562049838471112577191823699316352025234989604287970690183365752349489047854400166638059125017651094958965108947886370933048660597335809747210170581993174550395556082362100886384444158282368002105671392851799507328061746396719663326105385467093896480566262344562807714476820020925292769385567716141515530684588353914343925829118707751163054782517557533503739094737190419701910533163057305048185417134148177431340989044125336544437979929491980065724633898899965629098731235384742413647753999112136294869811282634879578739907688864618250451892079937111945775697071329777405035816849675609450216853292528626217373379260839561252129885074657541642187255674676252123301316772565859665013565568913827477640029312130570247133935413145990680556576101358981023139082132824462043860935706501432725554068453844699516971428383425446433520196400377298353137668808814677158076400111051832264457460870118859483301707264923999070455356082841147036250232886982979510135780548286929715510989199974942067585612144931325478156056362377047065223508587798280687340134520992736992039926272461975436025987716275698860741299603515303318979601041349758659591109811082208046217504571555366904578790552737399379335080267255205089924383530437780806754146274082462834496527401710904578131631757923292234723456982037506010833868973987254158434772152123931732019449742554674473335488828912272491557191582959538673181899411717345336971936048164173929282597604663935213268347628252032874973852145020134951773182944834358820683358681723656393502220548424680091930003736209777938846971417467654214953677399536504839310610189301697533241517790984749532893289619681899299850135206599910896945450490192027033076618965360203153392315950203389736928418215368750046343406244305906345817004482829119240210373406663059402323384707185419604157114880022508220138899322690851401701932604562349252255170997945159663170420885594959531344063891077830182106601475093403304813620415769576718349770956826399830971148363567321521954637968478334955202291809959954392384761864282207522600711420044014529588558332348783579538166435198376022439982526431897651825815209257551337467664071359842624323288978213252399058339058142799227243885084002923901935843945768879605150019964374424099996557449785749480104278670717477190638546543981601273428294190487619209677089033437687832813472358807446440827814382011253256656444263310133235739387127772413058753820188884323801155869010208393781761774524463628757577574826589138046734432409173356401718281829701798296272840525028250191886714966402152019969841429036027224658472374091166244327474506645562156445726816647526607683915414705060700746839159991617528911373262300762744597008657711293303094211961827696383831926237618441710563033062497406558090184221656093000100582310202614245679032053754330881430218515107637534948517022922198605404394592744518371009105561934037161328010852016052524140119855667327590446099585591520561472416243604527324127451374576379281002324043197523189238128980735575130656059048444764470173602880965834907068779612245811424875092529382706825837845197976474518199050375228555089023029623903103529796065760450177347886004599675263809452937463785051672878972180517675426121933633916945364284467414326550725598070130618227435436669969796506606751187450011623879690237507974149576464172918752423509601617459140848432931638610997805335960883837417487132041050515500570596280188962994029943602982932519773606455043491301548467029241339500772567148734383436251092828640021945590168939466977173668254643110633200496111703303238987451709742184585936317112576483570002883048048045645984279261118753852031526158545149578042935993971498912498898483141881179393085403103488825760182038898296931944872859439370448846282098357497745349472314526222822948314198108204439374660136536782691996690100281290966576744299628414704092830157054017195005855570211224823338468311847230997450500647467281845847695799306280328743245025816298935560599342227533406896626390280839388375176405545943285066048272739679982868397266329843453975374724133789331530917512097449453349090829892273505826423034304334438293314906265198218254583132027999591307258098257392061503972218783691017590352202010541666439112741873026392433293638989152984520694749155720445379049223828128500559490197128724371646429627899313936405759932326402874880462426857736341294196192276146163158811547762713645040454242201045327037659168699047989655914471321610331813586894818232215310556053751071272858505666875824547377062886286901330403802193440333604042217165041412677278482300986000250714257827363501682142769332548829085396795726361309405998581791887492705230493347538877109886716885414301332268159733621092652546526343164993680266573695078612570405145780539056985433029669272125755361230520834052129572673022897648756336488279693610765785523841092643555922957582035794207855675124606011828255913857615379882139559654274952303886178769843911090720140365385927270400537767906161937289412427734209246564428057433415825376185666280272679218908614655873607076466815394944183974414350269608472048093755192738869631941862225164276970447648175578402739761336765426758537780647110160830872056545763911740871050153630589492766378357837648153826637248189394362245893268227644502859237256063699902930770911604843800656690486796705143157137403115640079880775405907453921549851676458422134873005160965322011101065182032213489112298449791590439811003103762387263431706606183710720246618969471807689239301187227592534198269048375577949165753321042211806468982024387106860906321521754877169275157097124339126085699396257716753185898271525908752646693473544953815204730661368361917769759438691419610844762769702872655032570793615831327426818863776778734307779238289271833595674741365272295365216016889808823193951229560474202498677228079910876375433319668585690202840572239395454748690265343010928829768936845337532026808414107974137460535978221456768837530035213259768784689068427001154141292084250464155892479485495065099146945674097440614285373729681514975688854388223313654881619691163166466938409605198473853409117087340479244130813045980133135351439404972715205764748499529766208311847561564460633257400995621028205914204994642612061010931204872956401919211805891543055487206919535446204687409734102685643245220169937935989720196916659566925783074955801567173756272208641119466844698603539425859532669360191385248912543404649046549554698454990770685577277029071957894811366403649372179625871728614133038230769791427926726513937822554445913878736915673384626794708454373262134789371361542159611747114586335627899013560749402837679955469052311280135654539283517220425940523235931785487297029257879629149944076241083628085083076092207399293167754440139968457553344848285569065245208407619116027006680958717377346666568125712187889061219168463698060497434816188428185036173033535964797236218541671698613929333803220076525383049732154992096489053303055913819787553849485968988297033202635060120402367272065122967565159174913052637515632487015734181273709475495208798307292646778588415638388834532469039071313499905422856064279851821998124537486773847578276850424525421013144717043793796722039563725834965371279433358233609078145088776146429795404282860812484667348030959188395662626839404100090644645308719359193707302090413252411560518598143104070911656526940974451294644025678265880322294645369842234025423508008630489354501815387906757422471791644096939028196923499183288421484808851020884333815523213970214614553917026686017640594953023124050421607829579171488365642241834359090096490941760165148979717615847703305078187899798671990111828658079245775030225364183759127336376760586856062806326447238964992515577129391756234313515325005254480702446973096912266301718569678269613204213986235583250012266418820532744527139722010581730369278850612119266866421262731524510327188464290898057024501241947802160112205322538904981335586444761130139348075298491795584246799895459112429884461377534652718233185940660781126643451851762600698564955214217169301826656965943231278357839011192609940994155881155382910094799605382870473115830134026293331561460797850192751767547695233600663954173622522784973431849479801482751241573452323334038848777622741450702593940118385709675238189751216880720313995882907399039677805548884353007489158733136509644477687243877268592718937404165776049986026031140265283312404011122799845748368164649046516819407686445299697985132058127217166956096948781529037333506325077379782576460147391352777678489050160579543738465167388279611723211043245510687466913431255631401742927640217717592916157018605351145386804683353510900539323970213055675432133856997569561836978820824581717256249286605586061497925094878526862175330725423878835263859943563285208652078921984419197788454060856263588177404317145544255389719328915407868029928837998481056647261304925647511494534731401950901083797506106548796793779777116619705272238465309946556044812756344626067179312513688754171181532861682317264346164964656415550023544408628185553325104797298217686130502815881293841996154518363986769511150006725906438106470825446976216481050630845314690041453320554944580402106173213035371252727515773233317643507332747022964888492030197179182734554062353634929319554823428328261385499113654642887296024725710755618528394410084970893386980653427466469659694450901286159756974129421407153385413441186102175799731719707224643884180935920243109334718511769474128294383546084658223119734287128981879574475287664049801719510202559337623770126306928624626193067024503439214984853521922689515467874839326862843163937548965412051341713057279745035417390167782709026195313849289655514675416514224930325822903630283381059108385051545135930838177984802394396827982593067747114397688578615064509044548619204726429976044468593863605070035211555052437343944099923285240215352495933451944871863922121853383269255839136348939984269064056768855897682184488382711764432299956549525978401274064668856541760268550341597771676597393897463991371122515170437687169674480210627300956248004120884883303676401069408589937943933281623386311089315778753284687324393574751820523866794350115740363200927983032353184394892952619297755820176427645489701041098065041099517017687110891757251820033276144221337295795582212058164073116084339162570249894004977106427413801516904412863605417595707190398431012410288885063655118714057327029790406519788792725613145922921138548039813745539669420280464558256785019677857351938280706658511619941264686393135246058105643424472692923187235580235038519723140455575167109054471207108103131348055186322628094208951851913805652275680698667251083289276114269836675649043114546327451073688818129031639090898162944294680869099480218107893709137903017146542218296491759761424676333450880093936891505114163009386081423802161872923550508193848972465739585918298468275177761111893942132713138195427972569095739200820960042578025215974786451369480556444066630028239714182070609359748434878369557067120252090728224769117333952684392689765959835387505708899831369012883678147202818677124121631887044525162687908547553899393549055937742200614901295985871549248864345917176856928938780420791837731828738003879054641172991715006047781080258102191487713825600186296571593052251367449134399026101555219473704399146756778364184335287113294696972998904482509783971880891105035757951089053040201985680439311192842856736838669975721880889287280853221764321271234425903034597766307704764268711312445662732801139865805561250744144763630363470181883131997118810439800517345476002876683425054463860058345605972094735230440714613653856725220300919754440337696767025613759818473103159676168590331860389644818754927661062133022695997225264115968040836954074454784086301280521246535346318157459785573177231120622996765420538096060208711168872700617762831406685494238649473498138709024695150882818976074018001823006063578174829828648512353096661217999219526910374506094918461929535478947883360828435463663216779646162333774507672733345704295397011037659275253725091078511202236847547805878258960468886891086631207876800771088286213087198313811828192710700084405025780292133754884645889416015339224814097848745922001285074959005577779271818143748781175056249222620063042693061621400726942295963085747467709519158204868389541429026609928254186830251842662215001065151219822470998921166876079716942394363930680215770806883669917121990841130103147920382392624730744577936597795527015865568463016844028128824434274649293941808645370215774978269096698058811769035070514582139699982830866817947164950287141880096236099992501616335384226927055256967858899302023951739209003702334770171189616490111732862550221502310036009356475453874511752813770476104389887355422402946019387544397584859270042388935748094607935793251401536881696885423609089550813263428970019059399175079732077518178499103040825558139094874627220881049562144068166995751971196021350877828620304911790494122588739718172645540001140349523927187714062719051497779431786070710395314622270802753206927303551810293327683776490615491868284296191815263078083144149655041555900229538689106558302380179439341556712993085952824087759374415372719825927103637456243596018247272405770512170678411910750743541384888260507068973193766793317312555990357797693016477869399459245740021449011614349425995532493217196105835234922031684371266408882094311452288978525329805896953822138431335574264123140362360174099247430790383962009821509032913022838825887321801777599438334077342686836085492452352809819918851372498632757265132932642009334153583528991120484304199139303602150982973664165177914039894162555414512829518926108775681677094919129492526284701865886967480604972574976071442902873272586209247788142882600995335285064449379288499307465293815400045995923275764130014431829161488666321930430428324620983876112986910935553816792199847985028732710239441222509052016447854846179825373389846197217989031317345847851158245481995471176643620194754279072873003532302155882980750389436551767448212926926582522045859792139365826241516746303632423547056889390828429767023785554796909372238474937040101286319471954866744611383868640264507169039931216600192742902779259964440986155759064597564911195616506473941481263766187435616467463247921235142325946430014340385439901839832082233482398614123798419704461787530572239534779934846444516793580680503661809644008506879792592431452481491174299031193371856387230673337833473979638748548348014637881952733589881210350141774032993991745128292003116857398547068254965293462308112110755242204559445237440308491038836997150138320356991235014522806775432873562549355030917405154308549144629396922717952029944972184648932639962196568018226354035495877562065737515124181898506332508581489434568591406833653894653312276441957439790031303412241783711672438000671871636250325849853061791431012610846374477928149501348943428163006460411990082210172742970439534726440772485802994235109607274950698324082379083399734013317852392813377066911300728719415529337491037258544007986176980443853460060103860009179705003432633212965632941265458670023860048731609135697706163197573887037953092957097208330637060571808315776126214634078414427083375013565547407092015419971289052418506905418171307113531849006671762971849345451090884488995592643213689867353906142739130675727962053262134833430368738400842988926005504972417952922009446699266622467765862000420455516368619533996827093046372128986685668731421404557917187166064753066714752325956898675435615759309463210106918897923341643486669210773074987472195735537122370462181752237433720371011255922773913196154871555238527458118811618596752056327127429015490850878283629133399435684588811280426510138184333284371196915288879726709760643669343734226493443274992396159156012056599553721088367257121404823093528052679122400664768266678896640379710616263907915497097399927994027536232511756563987740311790172723159607282164541132829242267000517940192795003981886467376047960011393917827889815693176231455341863358289935387135845351511013728630212813022808220011143338159653363796854926042780880292719977544822857608513813530836325586153271535015029600099695942041007459007986399940297034289163105476564902103813731511820476724232422787173225522552499579650324754820623089850280383215678685222850451850824361433789132806744994630101741222255999421405617868778602563963694639639890191242292375715718940705271195168794412338334893323139546886916852550075274708600808147630764056851307209829311255893272101460203330177033865614762067668758595589376887891806874885681605174403098116979894957160325520204282575177395322999459844363788453251997093090087730889505575104310313008239857695661927921812920686456739624542408006466512695178981854695866392728233517558013764199064815847216951357151071064143963488487309849213999469871523758633263342116716451120332747291841482002120480441309323893257404708767498040643210302331581354096033690965822952362402081099535080522876806021901646384944590792552631868185608256683876757889845910515775231856331575825066198521867406935437810333296824147835749329511257666329268792686138793463198941198881294488128477622128492266415567062095567457531309225131168960405719379350323829536753793219162482657540252160775735465970850917816232341640992635106728528460413089669892757279419373242619118319480347225743255802885111367966944145528639824423218596146085826752072487740467580336340076036641183340506715422104448905000254542767869938263274043393828264153015334622977560140198837041296416881902843552384187761466305549817334562043882555379201169368954923209037359539961302097383408408370834056463970038245268997534059005525294209824335617033358988894039592783027512841104450410299461508695453008082005593857722859219358688582285641744565469811609642922377866027282093809688294694427838987687141859442177997890736283674890783636115341599274137948941787147705645767459516253393183428410651121128412059309436389297857249711697602448388661808463609585549503981094187239368353027468656260363173834578812306379770391571954785349060127783675125504711815054494662014509406352811742831309198869875803014881035479225063852415980954952411735190590580612311124393977860829385853611304968431594688778682833850531371663608254038649874009427471043217479684258855148940753310485315753118556398585498998938188163476499086176818007954579514018433033781868290138055836969764214745942938136281168750148741934529212082109637561328334422222130115857024344187577909815088962397793861256588980082586310262309886162194327686857631784132631565742605053693516734071458393004570871093352416633570060334993451048981059215763652320977062590575536408493239212987539791521642883972484072201906462744735884322348527327118205422447611226729375983264263245109585105095277525154157483740451871722016376788344368944107450009216305984303489233847769783721498581515044242221227730753894353559823153880502692368547902493560228128113323934425545110140956616347820300572465519741247684533278296796358656918309846232586132878558650394102944408808331528853807686136041006431431330970677212389728103242955865945175090980556979488239645683328545581748463545470501036837216433680204985342165727252749146229246618439415854749484687548756328867730364076519382951275207932251222611333105483915040213237570597291453543504039934907836264075404937529703943925779878143687405735356711789582061666541759419196516415905207235788295699683870166276026856130356276380405766491364537157345051919929952055938480534434576000995713840531374819613901702608423050942036169420074348867386838068793275125681893007405923306740001684344425686452981652007270777417855209861641637755641708986027958785429000334752093125274774630950407077846728381219688973735947084539454029117457808359618240626683882021508997117097902635705327918847484064622428775824567430746538206188958941611466385402899393579395010673586162414597997145075848837810017720674404823335696791106051660108511281890144768314956828197665125527565105027820183630030623607376412426433801334708485520025964067359086766861525697333397086855946928621649295028650797040891965909579339372028383370324255657009135262459437540050066375590655688985856305068018801557748235008875451595337381765398082812155868700898439269861202711914988095114432370325599029929899710355519030052701793352665158341306373442129673489322827287117339622607955786456750316062328630335580557177404346519731109103509763963584956927095308838409259137929531802802136506063699040511904311429509357446552690974467703846427958031699760487989745249699105180593127554784989114563632175427711785398834387355687467156474484131072217655145384279017968607947399049258442852566094060217877009449371197478618858163267663916400913249401658887646014134379395308410297951894477647958028683898485194630854434864877677353000455381819254847843207320694180035621554017850872367691439407998260648537696014925831947520731479627707019586442414825124809641422340918969083357740849389699216396727014498223841560286098218725785016122218898637304220015404379354394133077856390666521758344542313657484297064571132290969280744854138854597938379657296878942051886403703083377980513796578578453461606914304492694445257367822949293655881154007194688890578504119263843933838668426826422667813702982426153018399190407316021262594012861429642162782282529141420762739577019162457119683912790699323443964790133451904614163954720087694421041106230973974863622684999726724842656995467877693338638366287069151581958644508378748233552776107996665323676336985382215176468759353808218628043013376668694476112352795059534542915356634905525764022263183004443272808194009826556179104027381259891772542508791897519643911699097873384904416117591583461693036629043741063365989029491415159973467652188711379331391785624361094119959853514642251144371665248357516272325519383172542886236038804133628604405239270007110593346628572461566218455153845472573485174189111193147855736420368002927154780523262255159900639550024140805233654866188272762753225084171615003384476230147016110591384944274832014545572446131234054100454663711464937603424370022674506519074780689707321768224040929470056971909365635736468678147671741914365390790050987510333996132722102072815983604628529021933954829188534214951166208150458719970746301991956016229501744499586374036931512044015079781058169237307714522464708536119039805774778814936931145064800746339467056160373662518352025211363804385953737882435872565553367692909490250251330927669286520166447862051463820124583163908407014956295803289824647755010871256596671209158823673407293414138121771628943090110206641357980307636419431700612967623840881197841770130341589622055367059984316343549473986171288901116091400805516447607148311728679613132119409308867685399667931655118821012718995522149729893703071616248404563973035343147286165097827682533975491543180817223156546920993832144287954808461837423672543535299004299556005114603120301114643130977173271143973887550893747196525160837026969475680907216230439323073970958901088992462677538682823832761454031774366198851626856210491057738610637410440859643378688518682545584065110751178671837540463768798452680233109982718968550353116488102217709928982011394192187868926343515581214466764370950918226304440689341231892589227723862833276098014983068069427380323886000921326315756987339377042493406289509338643896866235463909117023957085912429555737657487169153792680031892977793919085539254762398746037900293304512743600821095337758423058790774885216180614289642103551768044969166775148085599701881420975525860171584912151948049832303420187602435616550880226083783730964634878484060046317900738338656590475245860126378622400749261869937414528246303530391072114358223044477193136791916815020038827154156025391880076779328899021284712646094191020734205496343745531801864413797720322264163266973641039263152170172639957034814808316977096872721601530807024979064483192516745339050698018568007059840562446082817810144725171234877907718769183039912826908350492621975506566183271920201483570464302920510130255305907736996282439473993697966176294448698218738972277463319761938599700944933197227586038646853414922228123123177787493875213059582668310866221665912913964810733857463481429357075137386513713241820096987748780783530054513265808629278444819308291737897804459173172118927769617645789495420756732838235966084781792145360577177577174710146878006120203492503668483597397236779470982638302598977001459450019120080597548774860461338192285915230096018419467252421439234000010926726385699019357376167048410669918735156229311172120574499199867489171465623137995715639146764360346433441529640030383097566400818342909434060564911770615298135385324487154509041053536147748675806212718113921145899330793999249535050275420048051666650662164758384711847265551654806790307956794225815706710371753431926670758823367667205842972953777469901416615928889655369422856176129903151679215674605642743861745017209663233075082560778886970440643835036469718737701468685654182323368019848903644246561738772442104365907956660920290003337170802441311517158353773382724373642567303865262621682477147455491745924791954306273085710499284545129377158210453576077158171752792911864014721607632257635290417572825485373758923915123424147764241771371805824686831525614698942749811419779137873174819546430983739967831503468745901859932598507035896732246832133742462937558085610936649833400006822791593288101480791384539439734532295603924961919104476294911687139041895248180824495924558411396813685031307435226937399925146202225388135416077774064336172058672413296570471001550887045309951303250197435894764469098899331036012696550154793844207507773268073747934045276741589280329454268100195606845967232121202598144942596705817162967564708826048243430941806015882379859491316851994513393559413410759875695842850808048824459890704538766979191651737992286353809447211901858033496844072470007818905231779591437651373363605699345967478910118577383626565171838872679300507154874109113820598881051181911144843736014948536842298433988823900182897477452354035717390200077463772999824794977150394398282704540737090452977711130893562504172003043901300829797672552699355128404049699063026632212353027523141849398395596543105073046313791304927188512419538438796972520067277872443690963986676391508679446095859414682663226299732478757492641689594469264139164814034625752673628707756592392989814974143729578561661356960203962727895346973806274359673235513911515093549695950157054493658570955625575866289627207173610313584920611654646550048591674175296517240871265890634241914338594858421581845732324276503934972664454266082537898401542839255901969175142957589808398076497776669667110180139990110810981559927491479624781694503998358064448684963064088987831014532271214318973765887577225434040364882719719607338680816116762544304613894624599182892129810655797666601322987094202398600368492255019053482522288796521257842648037967776769935475832890674915134993332792779368064607680913265005052822331616583374745225944123050809992454230485994741567520480340343002171042984814250943522856091946359533280140326064168218313895307513887030089771647960841697113520389515487824860645336102026053857999453418588131404549186885568576207352385149552326623759334659345983757546737073737792911790986305099782149867422877790348540070702869356604243616422586404763900440349003342498557216152210314900787800793774956432580654389553994025183202012343591923950015026316921357258708059368438772932343368385498969092977346521532836593050300188973734491150687660776574670362543365284528652905196592959442959996102074982826379539188509630154180579633939677305122055943320661244847350276782610582455371090497945153798548434461916897522925223003283071443621438783657807292769080509762413586545047033159082628159133178727794871412355685243164006783641705848273555028946247956590392602546470763286710901657977908846082574335534298628284301367742693953234462357682018008830999114429641924940152439078618719197348561464059128859446911988110714285376371982920481999665645673455357935577279908045821469378949265264364522406690959244755971006446654962836252337413629488976903783325617126988859015551197007432275419270836492758454510290601421063462643014114618597016497123491156930983885040139650415769930316392496418400272444912028806656035617749460278494648271582031677742901875228300996910925739447657714617978238841029269235359860597378258957032466576846509888134029468427017494211009394854943396592198737951064489522606997981618650726472621028169347418084806228356639149438203767561112984563167966163094401906330402848748690831659320168231494101750845470616372737773955861421393273018292096775853101889850265724565689661058064266662912945493063331606500440673914520953989647768947630883342813702533316220903140882560463064798341612250917731645136316002924260645685707025069665128247238419300234817392710315722814570375972417040639609041423700934762834313295040609396934120167429366561490696642746186565213487234856050201098638973037229891209164023407144676262910871654427345016587298826929936148232942981969419217083173342171401864919730297896468319591935506064957848738264836089412387422323524497861961134154564909869612144051491065925051029476117579266268052967114337463309667322627506011174209598015906286233254802807848166980369822648766807594677453949529227791207886467446165452070872690316189908766918647188903769529736949510208744085802122391815519729568031915420976315093176920888471483095515828214156982278994287629925783708022641128966399898452589450787901244603250334350416176270500878984383617385879482938845298997175217994936620575195327814791097895431587074354693557856069781478513845406236947802117466285161947774790185892208377413871901439549540267121664547265781011814307785170064805527247845175633037048373295502754155194479575453006366159997346699760634288572962660901798246404679768574360284037971179459575242274809741734933268988139756651418035164016184323471066053656753084286792984936267502509972267403745893477696669597928882153260569108024437551754305902393187257413293428217477011426151703882039204857171645624715646344352256187381989047670050009323021953458303100915351062373180076605013132865442874241311992931167039353749690870037167899831999774000139958814202769679425260138788741720976825800406621472422782008301640691930917235921838667248998328769726472263617817468875980378807963673719920510363820299652527467047639664143470128510979046332234194099166587071035794067396148462696072189285403713892400474281792800015266592646128197167636925424138681692697683990464621446385761016937692439608260857991811306975582879299778905719869353013159272960438776582593266686652464561888944363049082866011930504519814793588644185642745453081474973730735399113586064670577542306804670291182204956756223807092171055114952223235887141234527311342891049484638436425677321191892881730308053591620036828019023372196703899942231121823883414539718362220409787075232979876048181234997514928767652786046984813371405925284091999040348023332573803597347919600125061866877291105718483060467360821772752082349737465000579457018223060556518640166173454056798222155919685893335336153121243998837472531802054972599064053404006874304338863984763053174173371552591855255365326652934586579117685871123289580317207504496617366549187598587822162815435324095636766714424306068295045475244225401059373531914086130100410882685146991724105066674435147872654563836361779251618444873814788772246708243841168703177960806765566856695612280150728888445797000724463856821360955991844963799491468579165731190814204043380798220760642907063164208289099465280614103848839366248989777195015937654395190382443062205258537217717983745920214287079576973125322957932702940972818384223186791266317364539325383009392504526319898352512424418768571121808071395482928830214850119376388233366005990228377969151752302368959762397821315900855504273788014986168482968044151414724909891426499814131990721953214894426290841496957775419031472920664562416175186163816321245123191248171918271707224934228720854767018849916232279022331693225682889967739951881363746296717020544787238191777361843105200988569592296277289604966471949477969970979598021438126364613208413339932390467450905477617257166266577979661134440398069568577992021826212613001444605538380389320732389618568826747888660518050422366358611297609153310342200885092482642462114748716675230728840867983425176580924054014990755072860617591875387755831259660233690716803997000791276033746103024630489290750703897037243101418292706860989126915520712756006811895758529805658603832282643001421224829396081205407090333145174777480058117448558656557612779104569377427472024973754082270393329168023368042805844762117329410265827924871327879202464293820182211508196696428174969995923858605616438841007241879042225844923285027547607113024839497744508616361735912230936817486028087433275625338770619631748229598673611781618814797465258307616946969760085425911949855091772191360308142094775349457140746794786007790764764833999691053162524489712408252457733303308056736920090510926753097139231604752652443899675877009031034397961883236655612693961939878673412334540924336728981783855522601012133663578303159957110608439245878723463452329332782962750263349210578041848972468590291665107261921662671736854543891169673411921019578747296569245202353566814747096509297733911677092020396662375946020244974333263734072969055193268385239083589611421723176486667537436467751169888622991463531944206983071099603955134853058542763434663398267933554071208128224591861672241900751761329319344163522622685545203925103596343862943684562318788493115067267380461445383930967494449593072326696742708288668445109663406435270364718116875425096953593051868381880257860136403573007234780415061504755679207778788213990827069876306372510469861740764189645542331233313827752917227495710027429730818949235879522432708087179576767541314031868631339394233205173413471732193414699520293690091287382048619916879958983350990845933574250851164075902655200860174534114789416746977628574667080243773840350166570851814354619615832574946925744309709048528974665193430766967703478816299133919807251991555171336648530766298528444211674610968201637857935779323028382050099586418807046642325835573185685305911667069768993141755690503699678501556706969038333706820884348966103327055610839866601643946287304616027578119805762657419614301311260475295913959275322143407414164856175659685689950383329726532143293016079388646149133890450876609117685802694390119011977430773980960363012594320286103497962124422366343515925334148652276563032575629227966398429534738060725894209659012369309404150023544664926350594842622867102353032496842926596554776758941912871128174152957667989767263716551106152104866411719625450348473386453549859293758363898518062311859274515100882379206706204268303100083331952922722376975436317099694445531058930538283376454706154684751904677500697265428472166876010061745192411280559749862112175518617074556436128865873979257966034695932458405646680503680708574973776535601074761605331326156396468018029186255351803448380340931924661096714404361501829154533394528753792260230937596490474985668026766644118575664236177839781160014704283905378349731417039225482524513829130757675070392583530880090625262610819610791711717838638541045260505200715812572265483646915678203847124236736994833584732004481921584877307442005465271118130180225660327007795444035488730334263602433286492037948861683942881906383281012084225256163477286605001488038425127455244924665185992124220851884556527391533386982515877882678954084934023217657930881409022071623543377816940680716383021018671360529467062573063069279919834304757520510032226059537184151232905881713156576392396677206393793098138754713639581562458552371798116339842630134892339928974418142683493644014326493908784887633092932968869175278605905026725543327201672017795494547068147429572735523411271299584859900020200242837825735131986227647626802053807176690693676929075584559030474921837805675790816406940696166893938960497577733230595536903566487423173543754393748330841135773403613740456577988387465939178135432304203543195089327319875566737274352972333129269064462881609704736571821777957294066946261730960376794618476653556974442903151609827630395911738856335675507116248358017771743509685179110373072497284201861155139247200252244043624903745312933117011290342798519080420706020851723843836185742610485236216823139651747048032256366956608073412597959792120701464021265776751908001528322582625932586458570088410107607835297414952059789568154828601159614638409568635661648853796793464829542190709035014406834313022603153741986750156854480270063469159174747568725861758664928338977771948588212159617495841193420673092000815467232900343392392244176780254611593441708743182152092029937918496196551201048413926768894427051515416681783398475065454569178452946982061349424543614554799764194426132521217046539555362203026817666703331491549978341556669327222894257232885510860690636896847158865809760287900749135020149760464016920870939786767190288578028898127780433511424845858883776698646615195610387045217525942214678715976915125927045849977709138507767567096128527757129745625690333943114414899123207113915262495251195113912921828460972178054750254403774013267054302696807295845227742279379504991797394045240403926743918889688477522825129081537306646395712408811487375178680594480986491766702595421283345792721368078498766652842917907790727317158283876446614288047702397113827131279389530342491424673334392138214622218318614160768800874103727142634668661754436383649228225446744096317900246037968282030574665056148066342605787127983602603454975811840151474933164963042831248830364369699389807991813699381003358425269687784518175121588726859960758308491548660362105999156957272666327010144416731103235386931511955129956984585292682533472891191884448835624180542494447374895347254251178124158963083706361925331935147864940890648375844315552080441474844202775649716451774229357112183114599188103306891341157203329488091071454387530264741197692183157907005227142453068174347049837530230910439829962159178778804304621245545637132820738435894649874100379752909547512477057103903256816053242391902465214648109769837261011752444878137150814141429979089442804518269165290934590059448587266870570035360300882960333863875253639706711606062634598735266316168541551709151712381290878809621760860679989025977767449392070269676463697259317663009624454760237910144609952116036857090258802250559410955222596348305858642252185532585995139830192321128832458210189580438410284792454252505038710514069171706226261360861121520972148032515533858761480577396704634274870027864602204886471755960405120289237167964301009445305158845999267740944909499347629318863505929746708365946870014928405836528887882477421570681572360689976062357389995065336469851669255914363433865890897894454417905456383706389436696113538891932804803144386296908413580965122938000202563844063715642374972512420953665039288174232951394745913204997884894293508919324439299340357099423786646114796110064275742123283232722234289888327026389772761709398657649397990769115017167935644310202558163496559490660133692249810615800254586140769523419272223946905401920080778444184232213500788517991365785160519368761189190609052672615300594495170162008937758575499543056850474650989191923818664929684464271417242893609368020033342611531041026063963016071180636890582275882407589148088162447341011675651882774724104980847984654757805376218258018482133721149935253819377800039394970641060037010678996234709622004783171868946853717613956331664041059295579453430597816256823554773532257035236438229631498595951813425593813134059005173842694718540241016210563789878832103086254928336478083448718426708419393339576563578572242627300271707321090582353408401832256811110739884449450180117285033664093331235167959798118024761678841078257912108125818252208925694339005665551646787563499394134726397089694852000843658230449049595145837032341664989833249776636024939917334452946978735183988629066142347053706735839300666099532784805070327517879967299229121625621604427914143887246120282518681459404430646898065801396444506520076812828714458498481899211929536323989620158424812850600638576642209325871905428614930446181616283007149585059624032067708395909276679445834351952327908725188265979693477753008985209450824523942697562027731082652571120435690033122083698191874640194193275791106573232880552469972881654519855126593723278153846152196437902697636311593944022269003064789253028163203706075507539611010013925546638938312247434035277206007777962296740336962516444688411221347717977591048972701013080308092484768539247091046507713278978783188555988310786279745906903652110050223866618676663070066312840064619378694577197734912112098061706047843022072656323978082350139207955053227490611535181323545162354962129290991851002256148641257468714764102386598309505687426670803311327114265122747948702236809836500369902638338095226297487577146824545370031631940529517790656174722405222283625135112989867212543712404225149561679885427108406616198838369159232029102654077316659866152544383054746721771240798564189217067708686701514439109332722407793761086532439348546730458803992470207140657410212910311461926883789581425676256628672418173284784601488699839463412952879833172528544638639098629974233036984136012445701205105443655058347626061587546954263112197428386219201548997919444963734017735810305520424079745636701533272599764107152592719307793380502381499240091330219524268718338949749843343099908826393613273309059624805870649806268972301122948032646016742943729283654067157917227235637455086611076931020481605226281201096573870472894569337035574631552407875448286913438304742933623956337185176163178368770766724528644640644362979923685303268253427698593892844528694631067219732469430744266772871302452941665683496138533245401036556251176581059024314220237062183941146567744296406594374675330529684003959972278619787577304126303652153274729619353282519180597866004684948019674827271081231946963156021088230950244181460592823372438103782549040368283575457519445153849715509220851291259059545111164485129319950404098002148020188251843990873328304744103643100082598938664743950481769998803188222797473537229965085501798940023015757663771746711565605500990954124415077175010367249793245478066730750474047806515431092146838407621382653233925556044078087167404406756704752496026015628526197683908275228712216207852224201172341645177618072462969555247223739699431057137759304433066206283599169818720790955736553475098936573912148489334723895523112900280394343223396184865209900015281268706364486355378051006619973701669871968012769357118524007379127772049427899413179642062546234662342669385240835610601118250264616365363072330507323871174174574714939318543712805310552614263099560522748515601843704278588398930907035426383717898612912722968592728809835022592205328875311067108472463004144024461260621106351031909772746744038208042862988255770342605866064289787346089742760657356488645279806172668434619351157461821395370479696104771630356478210760560250030259435122626043548343758705803515659888951189108052727441827765466746540319148639529480333732985979165673185001841452871728697663847353613271146140094186332799796262970882647739049286058868705604750848958755734386992928465780747152593316051164175925764478284592178531252605942375145229113270156348921556831937339069470479942056868874816380786614180978004867643798149336594371979893820994888775487374791262308997955552009342785593017828612770507806893332490440186746653868888825033300601355201111143463045768392169006964309998506355849102653805195755690102965937562058521706352424110963443811582650365871584739657319434854532449361552997930464094797523340405060771737627474037108815584332765823245666094077841981717414228831038786197198435796942243271929027744478794874131890850198575609709379757453903711147645683434210470711676956836699607312999378643037252060195388557429949254765350808064138188277240817259561597167562513820685784966408166391261854673662151342315690106022490292644993125834917960676579059335891447854587325978785448605180926138873436590013064137575220614593384457137155024307495926469199688485286962528540749335775943365916881055346186753564686854295303708209002984317291203816011947523717046287797311257917735706361091813387041270292849823736301729046956398219638009481202531624723428805195736775722204184380381455816349254341215483921824303427272888348907638502971501020272460875307671488201617545662981151947411613024823646464776823078749718140281612086062395582315697315105957577826894763114387640767211934991449759400935019074858878304014519553195748061323895306884324958623387898009738790823931708787584986944105365926365931487781683850422754701309823239305273775924552257036151531756934707400730606800079983672756751787757202322560431862046244987784982501484540741666842401086267234159322416601587635169564830790039675255198412481332914775021594667314627330582589615167975924192905020380351404454767274574260113323293848840367242406412714274802371883587572203961444169065289882004389068358294960392409976938037087700918694433072796491556834032085969381437460417877647630831774956208223756594863494171683652502068933729414540211676134816750678502698742205485934087020630583674028075492236815311037431346510624365495747606541006746099209486265403806371429018851984155658730801255760394977162291822915748850147153751890318454553930339631101699040739806120991531871946784602652126368225354378620566235225862631155642408257234947082393395189229530254081150538876953111837489016612628283088776625279007836446297689225917538342972277971762321226128574220891116440566922008950599002631898882585554920455829078503175361162413854239266307950715248211696099809491886515525642048445353128760204483613352342351143692291305738816860242101244493597676586268246313064181104632938273258978203422740723127141395885269541267501356474625165733747937052330430223695244061922261525474721171661729869051460382935696467311177304313234334508336655202331377545587211743561973301639086959260775309308085302830389845882700361407398749755729780081226988410325004769981152854427047087476681944256341528698224316165723038202897653682518479885600426475368367933242422152518292567415076097726258484850866715557147597847762629344761940755477279619451820898388862995290748962843038287046574811657994025768420973194944625632462147456323259895994412820232277272109294586717585108786937672623592602060603004102495065010424851166021108228549725993109819386239225432490872757876857836192422241788806999876459441153593117895007134563886274882525917599291715913708373469846966335599558161475770375488301920239330133600285051082165962640516958479553121982870608453492746865803800902405029096877945755565953208719872095667307726186503169840870857470305283875063034816296114177136545816062934943426611268691013278158957006464945187655532070362666657171759099077803150086556059358645379162950951740797467060026089269427574102897855083994873832988150088013596447170854375512127217154875107534085615514742489119737800924493013771556943486969836102670733078500125994490661431297319983951442479433121241543223791884731683161655636172612788629606052415143215833211602747507390880004484538906561199283472662836140006947525909476964280264527038559220228225496362535230028790091909382829859041412201703973620287680576843500099848032331053512566584652983939388069089821006094821136750361739546892303880018540230938386802090999679683959702439404554313399616146403924645885601361724395506445278101495365697020508617604172864290139302176089279703826854929235088909539369265715291763296419476440272123424717854292735055977601637918655227925333445920116284448736523977227533258584374553106876348196880735049743195457547373086043317237605590729491250079770069522014372099083522620977477760810211256161265272198941294725103188365006107610054682556708191000507893384476893676244565960962267905920493693162234264155534433647720541479627290319629929314387643339571444028067333032270969111252985385805101140126195243644428707030380967872488752992543444156428120174623492688846060023555094379107920829757056085710654866476683916305617678493866067035312480114510871050159762297775507686058647880053508721952488357824839287026288488347718720020413429490505337945766480547092930103045305407267211218102413040210884988500135034728481666740388592786229458534998571252028271937243002629140058579824950106738188977193589150245874778045041094267263653142746878045965859592286500830456163007964884224593429073124639885446630791861185467993690177839555367359328185137141136048735867814042682501712432042030744668272194716768985455230873455443773734226280664864880070553445645714876523968036686721842128163662983767699148330453041317237708153625798604683147571649906085350655018515220396995918268976558448895358846462244382680429472449514546047587890465609043362015510882076377996269464311083816386989210378598688724031484207021894087871679176912261388058179921647104027985409030370647766967972771126428861766103440537667486425164467503771850141098435313190039414145847941564685674324404992396546849913615682481983541057572146266163041588661188209317355353794647699855272900450909192549358039026940250194361414154048245425181133011990771203117579074332866420249592875599532885455089549523977607646148059443640963099202203490702345795686318820334646739469393556420027871503514326297003200910623223010401330716629689941301098839363617560062195141316467941172770018931529459786501391330313578663024456854640783913848170851797005333240066824860340648667649241561170231315063302410351420474077901976928945464908505839029623929598217287046611691059376579929398653859039475515088012905615978759980165820407805915960297353777502028298564307964376974729799902781017393442390660258326401725072477940607893037434125698677104335294140995902273222742858371160827245278075696320449200537125447417245506670977108676279352847236057618500461571975840519684228304390560919178589203047496915981458413186008557456988879217227881068524767276987938366713927268204798624189025499194745071613768400418595171043146009007543076268382081805802950899300043513906638563877665464763267724508220723832624767055632466874789822731605320595123531782328271044016287974765991204834511610118154848185947500067591848986153024725453863292850083906357409332447469288140835890170285327743365024350669866607939104010671438073733990395418744075629928455166955555469121534923190064613486716443965646045208665646143359981335712345002986859390742090237704964414045110043317795718446699087717670169291602983942918976353585603280738257034164330502409212551613688412550719688127663313409218757920129742997395541561982762234769112726578038646884103973135622513453342661603894955349239540748430990322349405061156150771766288338690707628495412081224736787330924060643445054148711474999091542068122895617847078374009917889084446550443990887100212421744257817555922857907129634268561286746582949613009281534016914496473703569590352146599048668494795311963861314950337977380917790013475120152894212169623220245640187251129870181244537079465444952027411061478256447902138707579145001751630068107077890990313526798752778382231643728254273719654976786176730772755203578133603122223752189968486004599882155207861961713268472317165344768767392442276958487134708629791804152318949326496519629377802754221219973253028425487677329483983781124886437501273495367531943039354337242334122717263074786265052460218559874810600194069135962783797629193190594002363610348630788970063259167865991266997017824537068274581149480446026473914737958220571420611404052606651238795997654009125988313932517844328235476445514434919738513136722033988893458169406631773629113995551678910672845734675546252750706155825599492113027395260950740886007246811010426621677957804567854230942219563528388530740212866459819163995538459488852311871543524348401337467066293379522392476220156812514056554161079557797044400894017550512966318785743283200215630423946915980057914819426966045385632278392367907146692589563525982623786673394270196817463128329154231694853016489306481265715827025919815400388575802808105274786731116227396889213410105527657507138809653131877333673647755632302938953219627421836831252060349602412032396898937581611948733341819904598867524604102973112279119725364473989910909970790810075475528620313205131462157726706017261556149628310398576155343284540434174500209545221101917451565356279230776686374375009402340983948960917740044344442588017361483478221473456090768412432757354686068730810474458941875454386631975038369331287489482830068618189013247008290648704068624672263413048943525652786877795725318072516698042006654556261952636109953798931258393359093092842487951669858382432646312206137002592629970174749517599369564250393188661637957412423887087372348228557976283017829659943140379115547688360655049995149760772081015230864547684824259657855156187863451770426958377871247229699223771520843696654230179352428348523713747755938211347711681844931910753175263552395426332803689358241960084067278908959849073644325170229490650328311113040915738787504451211995956493644895684059264532306762700410634787416304131243104003203628066747608314038817166305323740070142053550052397139833169547756209878879376919797457020431034056333141195754092486264592950190450148845267871262598621852087126995568866645600852853960500311037894513668352526729553578243711214001518246880221447727369631382796333418095286943012010812280001579578371920071681179287067050307217192841973039301043885626240379563146843826338685745929011839277637525254153786247285911623117196063970143270338471972447614906873857304827549824539317899445684068157642449672711019616031699852619558189957129129945502757603355119248736354108278803332395472212307602273772459011630201887096973990734197546649883301948228508777776228274701760135526660458794896332116120099253995287438634684282204174672639966669377644780188201712064819070192127424389948799595083938876438276300534533230376372725644774168311695922548261524493660092199613587375395166100334730056604881944295908591696572207258854650008381881158540039463637159144327408324848993650310027694092584454448068477035695171044658701540767735374085806881586854772006913292736030420958565097608208946019394766325709038435573742696888005982866094709448432049662067855223731892782546363700884765595901621001242148072103405254138809905661755225161804587597676973533241805226608248782771666775579024074384110697986530541799768951133057367377788766310804985375987822595042061972150802974904922077183608350924136941948179054008926497324846657943590551926389821144138452410647544130277081704106506172961741985787035971290277931206848940475127441849800973483591696550838384406481689404495282008868361309864941041598071064752375672904694759406031042875911746583256869096977592205945625550426658430411836987546821009330585770924037484036130064164302412113783162788545613394720772983730583787411416391864266761384730747653017051361055174173369087228974476165184643943956213428019407856419953882748525845855677407320081357193335955358466482225743556963409562808550872169416581603860956430027430584408148623795003953324146494488113527605600069616132518047257221873133784254359168570640533971529010226906184303023714998020610551789692355881987420861179838855470609527439906834274943022787254371587474306645730253174439496386673644532299922500574652114185396725412248010500269286304728273573731248827797773327296767438503266853422942815493068508607728644094066392892942783880831009140990929508402487274874086049050042170152587432182780640334795347670792508834740914740813615496585920376793200181861677572763156570422002124631752058059379109711599469100247004629252489584519818216876565617859710544014505364391054009133246022912197197841963086146987191611099757138361704038860699849726853598126065293184050083965899211878603922594041154609655007588154650292663561464295712830183712506018510588757833888951677744071088050774124804996870442353201486826770474957706698914993309421976738311210547703806623838990728959541684963130799093134029211730501802656733696116877892443813999896043560182920733473758198564695665022450231500933850237223934815266527102492923485781989130546190275589616527409513757276595504336435059297067138791430905952692431834416690686167220391801281041754103599680695276365969882006648226414350704370447407114153967157978430816097796351374363559645664754357934064298574285163501841961077299429024854157069349978697920538303695243873342690025513938856428247630912199040133303540742900261433587662889202047738188893081040982133163327343898888628511528475776568487229502475571355897825982624543274007457055241229082262742598911202137667802241709265341576400597028344612768331610515756095415352013094480023736256308450207740360847634833518255562719204860519702099635085183094798612062896409248995172650874522217907877518835287494326765685477074079050222655865095093965456598834388638510071052079318512109988812934494711330612621418716524945187139940643887136207656492957575682492790841162619756696574936607490492137802759846949123002969592714593705200730951990550683553988762387358690723070845978551364050504773287654046980336459989952212027321046374029430241337616991263470888196978864218974616356863764120002129611279531732841101909535575828497850068095655305969913250118317177791193114784826508843109897029556700840926822001054331526125519080465844845373635673716217304310744445427355452643899270659665132862012586080108747163950331678048830342795214025638117448539649237279632152266591549741393879201199968234806949477573911532606886027836328298973558803042338065824109373599317270723901029924634457937835101980206822424059239751704305004813495123566297766782143633760229098689385014543510211339617752381660649831767319858725643611313162375099985103541128823364811795612073924505906305179942305342699314629002190662153092678091275859632667478632770601785847363544828539048679181544685750989070473038680249817546609066042497696597863322708850143410114801232080126857457886447777250609001431634665696942452097652934937490747183346245551224127732539813128286660100046572160667477569755279493316274383322452044579042243931924399141173975322076520529508227455379764324556770366540965719901084481355483292961535039091965658519224808286159895234973614778433862083782362655366516525397469034219594344580988687453121835074701025867330946321804119912105531305935945247051789752506481994077972813080197736714886138019176874623745297314562450446125383545994061126542432299703955586577066588277269628765070057391925921945286929695984374323074923470257756169092396603467854041656648016629354498695022032437819975576568996429759218096644871545437904318887989353891145233528632669152205940159814245737942878850909137059599363528646348101923350461738238357844964647059126995766433732721237322641854191041466412411880679116748033148141043093102397114531649910135418905935797057246866944546157615968704853549300862736580875186370026366492276433647203070385626951671636403325760961003438696194756123801521055955196396580365600235458345951044745388951340080779150740663485937033209051630266486798006924565760071537823445022019651546421361215875391212281145065502220527150413720878631363940528030476893084198423567824097875692228100763035163039773158200320447218422457323387277305032280827209195981384977978499575258583484817928949693107371423044314276071316218555184155381089826761646892047198139799924205720436703905544278424757401136841026654146434809008517743796503817339039888690650618240747879390684512363761824160376990138882762305495396757873451797689249228952297785543312178052830221457612911626746835649359924578550510187491782033226489657439153488211342079695764738747836684087334986830820318404076730841512236073309103643113061776557849609423641793466741032282430845499034581798906198771233503103944024044339505282848465736978792531247697571085155988678999376428666766821079913579527290233992690056186290124979257613783274895119409536679925803496461067530203840060867335062701255318692013902324258001788443513167042808862214152695143698272143327913944053799038740166191653184713652423520261735042148409295193455360068619432942759921149904340569614411644661893910968423653198930132544597642109718605809097114413652594329571301971384685385841192748981271053051221887377166041492488195910214783643239715572822465985940695326473729245369530562094033000246361355560782410472311830690655172904853290069335041242185000083049894101576678397680220155428030743689038730787987528810261836028998070684163379320959916277769163496080736449385588626008817576605881409527027548227566054718105701083133065713999453085053047325535882627978961066379246092142365288562323111272506470160894028097169174814114474762373943024503356801928711420069337502974175433161144901240643824951730351034922551358956269886340847388483042854075901656118136115921680174619256497972694354648308350242644864033645647060283213513119818929874590161965903317035731227736778614781919062709627349509924261367877670282988389448771313533328318633308560655649760752893464633097563634935389839855921050942583975007421300582622110932350894548566457005382227005721987173138343313267978618467189461893963032873917748361345397339907614145450403682821747305976478230809284529526448854049617355230207268283345530340356144336021530566761012023943072210013699381600996691308900987513620729221771859612625614288687493172867885092105033224853372520158645097619557185170195676621666534523274725617249480402740206596773668667933301956588816728211591826210463688355219788362017324528512888121069440794294175822423195304868559337150368491595721573171233272550213158950980632642821175055463860753104688537165820991920223899173142641214128867521477948830417635083135867299261052352401580767874219184541702799718554913788086916549971789494951111054917139351915964176156992117757484207668565523532672845879925036509356262736380216843412395970338119263704715098218446646946080347384424473343512411920986555832140019603050891320291460640307451384970465316050711814832129476955728738662955759181298254069864450817863263865542275483182012841648750581854287840697752675622970369860433586015530250604141643018317637483671519422220012588716255635568740695301728457054695582025787611431550795536952532960216892974981574482985128302229349944790778553967838163327595680716638095205407957795984638985425853946574452872586901792190191977289690240308933812798791825868996471344680826468497890456687645965578413159203214977469037938178200887113377934195738238080957995518184063505511721819386295781796983455134241507790838642981743407505039693957020809550376842743583591453538932397120581679701840002415075720125340586459440003297882103344042829428870271416991415950721925177166923951470648250222591743212347822943562640859566949989988593603133068734460127613838226972746071310519560983827026555054436586529447296343244464876555907580581871793041789574143609000110968766123872442157824068113799594974038105870730847768902229329732362803646222027250449667583878921044651593004080954240692632778696525139039348073661465822434521375943183837995022034879551484831720024659133415537179690535831860976142113092845551944640515741518589429366414825683890794193415675519148970468001391116818312777404734165670333217738561133165503280849124061920695522789552307849044402601284948912213936644113246542667045901229490839391442696743448857996169141854739729045421374649577268949789537583404803839989161228414975611479533088973015517643638407294275884381316929977317069050503072658554233458115021466343455512839586000937037222074925605710412940200857216158169919949829516795381915456894595294203290224696195951161450331754821671162454659858952182135785552379173468028246696650193117111647984656748188754889529261091704508356093341460763543421847476487849640869474489475896709385526223210343830772873133895635425856304942615073177788924952626470106747911798415819842626459361061100230166516423996057754083769792367699753428401342699020329727062330842680096456178667822333494642124725114854770108084251992477339741690567154785864041788778433712885197902383382393770694412859694274566645924059125056612069538394226380349936054608033307741413290449929340113316888456175639806209336619686232088161304972270705380418512711867578912597148457347747627670115817036249760632598358903018635185738874281164424882919696222150976024513729635344305065777998841431339849103912420475080216966224989591871148952347950126465486700612361915532927878918258874014296831960362139398414702526072667880819516640360240834935348165399292736734750822623958653094583928204347002081856288458227076218921107358366543404817697762155817634837124646760745818200675958546945038363426996639653908127593135712872282063197327970173013484005815378204020804288079416603688548308370397436010051443907715994226451914217307614556686288153608291931030983112469412865923340494802795249774535330588781995408013802418623622268014353352164456258536340379986720669158242954256490898758090921546451691361400159608753224818081676316462464756169425483799679903836902784735263480280780686266662639565595877338250426618695904494759858807863792643207981511430251004785078333597588135358404233906128440217422247670889411036088217035339428034107606028538720654029356571940454529477979107149132865142627945272509882608793001653407830258070852399854887439058194825888966965635226303967777006182393142335778351420138947751089520651374138525056755161310341993285936759340425215864459856774066399669064452750633863646370049302622461633019175435164640471741042009881747039275174772451469797176378089030893010305909175400661800558232594155225160172581656792045640539900951625860098546289811054781668726612972239460327927579667955493551370380133149815615108783982260376689446898540004891790109505978894171650530136616360910189684336624534645431564055808914931207132674308357547001057987424335947237415436827157986923491739463470036282297487665787380092322782746449697532120446389476836678103877573210783814203817361557821383543845936021675621075222823686036874431472003032076079570868705333284568927660119490972460475991175736713340803440963630030078575269852801376002207671812289065740179575994826163505128031067620209111593788374442129029093260415647815053720948116970222950632091275186475608331826257257521912149074758235292990732748969031984151038215227712112843634437161414744989857660487097157857048709498269059476179981341370823711065430653187079906295599454154786632648642426754474287067925296145356104867350168737550440512445114397347660243667543303193153589651205773529089543255482661330519429687750753560151306122446800650953993396361093582849447921887316212997430466970171209544391049441493284864408753847513248608217958801227895883237617511856060547044422215319074221486757873265322608602383009425484283982617071398476904146748342151914313271333398772498937636725820727785163997390343814571117276326919836012642789210632434036902482000117283232372079601557878669622925241159793829080177071575868761070472067293483622379169203623180002621635753453331547765079534050995554580449029911362154950097129553000937504328742111239277713734201325553423856915391700684267428707385646380476605993109585663221692519294943318409740384736290512777993000697152413042826057817369809910575762147341926881158609244583297833148354748300199702619277114156707723251757940180808667054733625915918927917632360942129287794682988939727039872960753997389587793673913592703385695740146775794735351692888632724510317698556421354353419000462985380257377605006831612392962617730779123616249199505802097757426875039302822722046496976536372248955775028540633579782884684088598638659943774527489693222374426500863290884577794479995026276967678921034039497778526230366495675496021770640237416530157766821394101166687686343429240065284598675204738311048170841809164175872815753752671474789100499524148840044688357005566806965663027204935467631219799181611574402552468757807601232540643098042689068577848223973857459563680632481560775887992325000296120013957997095261354881692945004702024483955261258187558810250705226083022984186134568416006594031598893334073183571906918047433301161811054082762933794812092595806944105772557390284117362956888247612112999247732179030734990626057439987735179647408314222452406563869585450148948895341873010531394178275540341856292309358925761376712453594975753920633731249835711853333400061425600780025736898380674980664864648920693064838404706068925089316046548327056861784238742335425828033731138105609110852152190299494098402914250467998422263821449843345470352345213607725933086679902816609419134369799981011696458154950294803404787288156350832168406336970090583006278030144989397865463338350939374058072589415829356617818761991168187535406855489309197152067658031930914821029496105014564660329510477620990613851225055808880841659011936131349855561393930804046728888458383020410930940753408871517232751552028228386035221288632969668892581697147606605188072458626165333536721386994666887947258679838345799095269606162574067071364267000162660556970609139613454009258830368368562697248916754898635765716578303603847162611230955521824910843148829870363559604272714227652490370075531997966582232828202069782426783267005428836089393349138983713995182828537497876643294308286881602735087773054199580838909372266677962596616020811941785323677081339606079474809750764254373981108108614980996830783208348794011784828558954995297007516395757120089509011585731716791284595612398915279653968189819882163574446928880705900839789031345615758095323618151192543961244256629568019098346097581995760331931455110758424621905203657086513702756733397865873450435083444093042591319361935175111984095777555561011382713778908411619647438747346849151320212434629809572496360166307374757256349834245838427775395614426385090702423941290501868274270958177646325327986502251049911438347541922732489828122134642196651286677650070569708433829054307051270069485451841809022320965584047837898899661668213702506910052792262466056139901841531949622118791168776277183675920515677496608566358121934157472304544737839587429908830222030747806421590398223509434558278447478460727104895679646174772433076596153741317753801070552603045692066043806358710591761413987688077517136818499390815106693605194086791833811926738250303475296441114838828737688116896428135047050186451623748941948842325778070768626164201316798192680798171959170650626954522239066633631027616003093364005394697545782964813275029340816099707772514167833992244049696818131965189777021028765198810411844131762734564327975659977866836106298801849057529577303035144183470605102255807601419880862423374876925263752392271193332215147875973413488410058560628549626507781597186041666053101470665272157547958950355589117503158268873852396903465300729726987532641391518862167561646464716243697068747467564642854642318044216469475321720572120475942483902778489391046838689511122968743831761971309599366688035680470541027725938593216524843096713422919632284753548237003383694248682707058642225780738812371215330209430846010307521343572578212954592941308726270949136753613639205992908023286032886149750227701598688259508504468331347348728766136387877755475410010442715293128669933559195766017616642278405840300933731056946206853198634314001354937312185781144826212294943381089229419828212442416947865451913451060762931416492693210118372385680576246464911645939334012986404821893858283164013778264695795389809131523087043192872599609592486334074990535227535697557891537805660828486582831929044994677728904994907391783180533387542029348787379741142795753727547437239986582683066762388229151778518283452772961085064020759483275672240411909268532563972288272183612210627110074970342127795066429422286429304843885138918194003040658775599637168122227159322924172430902010067036054631874998778309001969122073697627772547448014578701611728641058384548512018696099320966331245482345133458547845515149056867205107761881731356123616765271397699957541860785137873452101287416057609187181399128065454890560402779564012052547233514432370477087702029998697669980098407648029990145641466132345613662427661179134081062088246540173239372232800596009862532304167226454823308871064955774353581740384703757145580457452839819101347088394265211100228786375241030874460287866623863369087519515111975760990134522503463402902832670584755861603972196880475082031055722096208611480446786606221045502254294953736431691064843940042938331544859677845840113676244570398125716099186137467715286926999263346238021434161461747271221452860199033017770364404157283252626258712732238342502001893101418414255716993840015863875330054737406387032053938601642875628193634127072152700889629174949485377059569643775134482959773385037339247147363504609495950221284155000396766424592518004303753301574886921827464841098739302954114287158462964914445194508225437135838163648967557823719511572848817425241736006533417325121300389229098866994655607924704018185150957354730048032384810099900987334846197271026325349947492293179504981122350862550478791979369483429469527608250279520506494982871585080051082326066273829895993395238450115315549873890363645106650469699805599518917413072529768667294185107233443431624634088739021482378680137164661708195369252473420952019151825455624511200289222349517277950102618889622221356863375157996601037611539485770275542430104063897573805034257333407634589035563334799394218461880239810609471216230723693839607152904215715371272942212051958093531186710117290762264408478153479987775933722129565472917526772930962685935557512709230204093760394596893783921092779999151569822183686904140225216551899170531407203020511154138762731172189962547040345119919989476445621018698060854071396238823175846769829076628898358500133300801118931632185435388339842571901211972167375999027694681390080847015481147913758925315443109704366848140148588563906448125267612046083637537394363834889314032697734638768997859129470079571785252545751369792515988398462351935845035958676523651934047239011254999518228690895794203836292080370943881744404358694212844078791218263691557479897682631038740424783086351561367977750419101093569057723908314047348760620947703376147761340648693989038765634775006609137442599081417244845720267542594439304418538292218157775924256869114980503590567759063163179868345587255234034620526926408190708372429111496305031895806860750783991395002057899979844061223444322183217601965670538406647221333993293995845528561944792388533120818433978809925976136836489132782488876171015081740531919054556075911176048778712747134551097771243138462206521709845808214301852420889010371120401100433815369875885264221156948954401547770584407457063891974950021462003188445066929775142200375032829127310739304730410133264882337930346950743883369884522568804505741028444041236354068752666238670101696901079087756922326180649789507059849717865414937138916162177286481519996025570103461202262525803798373186724252682828316931615620908008188854979474057918954903246266369796257591941171793230934925545991577027685888127801175626365352625556606905407658043609841559024909325618643655909516864093406288802616959398550255100189647989220677706709526163484345312043113655599898842264741000068553810916570413876279751455820014857664725253808675104604829845413330697896295577826209301539179130117727858509243986751196142255912275882372761520434556611013757176561931668265520054772945767226193671004136974150379273627352481246746718338400043699754195642435658244354545657840071355493611193799724579901868150717578219619335713057087198967635813451010660792858303000724121008606408428647135913194828314735920135154493346795451467633844514606538132026543957293820875476294691173561553896248911696620617885581913924732948382666232671800653318947455301129464658326947537647122833389123652556211849376798767509508321013636047539306615034953875739561857934931408129031201260865233278643815296271673005138247791739963536262293747394085813058146296701656463753466110381085108995088021627847044370943939545328137634874084814246694968756182925716556401767889498951388664020984801043044788863753653440269594802521538707756463792526422853822809345882976025733981407381267684196308910469049322115964359751808351414687688587924897220344018577969245518684130067806377212034962083118632601004876992734426238755735581250291541766077733454112839443195799564406306708015384481654911407254501186399087928279103157816995808508461287326416538304843686915674209639715120070989026116035873973111277392795273093806190761479383400219650810009116680507683284417588706627868351213664146120547313992910481878206210833925997165619933275873746536016084148238220592656142660935010772675560690915853329293733887366055853706680380829177596006381667078711681721798393652635824463596402871961765992656524507688971069520949335385870967344817921795524723921781564888080593423780914293207534792557809896655581849219781162548529777260959725554832410228224313749042313998244516945235478122489888871140883716291143934440445160049292776153993734583917474083406047396149850766797480679983820953644405137818989452005815904760464368229594740596666973093927740125432115480444703183916917380515163550780208677159301320870660996255217124340713680851761211900624377659752317106215259078124391323596286396273953702260987131791606653043799871393549205774270986907435125878264160896514859309700203152815699420159758213462539459628385393076961642264490760143215338943572303600676982979923954297046146033566722748049112682523917821584102561628067146691471197465181247849396238729260170377542114220039819181299826140977020823020056619714202885647627735092366266160424009653464867717313950282441151932370039863843415909525612443008979418858065375576841725244022555700169749725505730430207294351410165112160970152648112172490227857973295019704539533142410729462730614264546192757196827134266274776250146129617171093013275221464547773367363513173301244825245415261913679291144442355100120875613024280088983612125536872496546506697499390511854964774990565817606589535836802346325494114506658260006198952431229040160572189009588489260197563310263152958659451006142139767221148526992232502902353104418731733595083018185664433612238502065307356490750315849279475113053748654996819947473629235452123421185326393007035262257878457544452998280267050607952651738399379721367113335322297214036981625935003380366998099424740211841845392122059006169422698291794455007217096239407957890506040858310700629052586252530193806915808291519880968257726165936210557669273138916795849251511906285401491039219213871284210339663385212330770511730568490833448004030455881260898621168425911945246679607281296807893572794683898455892469804088472510186546631772928474292149785487021047271029471717602027036750304327696462000900417208900840417112249675570186238218666329029489100426546856775635140278727691594876382290972765508067360896449431616380976047055878128782525079272118807840337235820598817361106029683539771025839843791695066726875439915939964394852354309745636451026508965582237330411791719185305015922258530994372860165492477411263640489637182384194040726325329036321165666656281425986488184579207607870755744474160211718557339593971756660469999213417321357535564302867749053501284444663470740858148162699733433494055484247745956813535672493049028033908241406810114480762193962568642149531973290255426716773590905519192860886340680263239791682952687634490132922006176651036547119255200905370732714922177704720698474111183077031566706774655448400575675145655694607603661256272223992421186424583346670082894577704071884694696145355741466998052885286195167758842204623280532379885970728259449148514845345368411357454639362068231866882020929166672057977563119470051555685221590669013869664079148512015260422457284573719317128998027452016935781822401085657290332912698803295577872141440692205783888289267935181430849846733822640477870380278863904542627018835338544777157131567774967973886689561699971652444180550493221118931818102386847105115658314423978256880332502611131402908707895460602533872086363807808546856900848765231244489685129388519848430525706715395046834709919180433165109127658089512295947602617538603561686799675514817022914772132140297586870268065285997375994415496922019630635309466633332466068521650766350567254777893641671421741410807510348790503161053500887189281751318920431787578774989281861614492767212278316265351525595222819144190711700520610435103937195896257992408402936859721029546018984917089019116796622451700319120527767086239612985004968565128358569835952739168090084766312549534178129360966839474163782089474753584937145127942241347494369452173532129484758948434985259570370628889186455573684407660082354853218688245946043391366866603594178531967417456676064309572354442812596098317584858570928662415138491997443208795534217561064085556867032924003659543637019929845273198101178150659801148448878090042511610435503849660474646295677015783141646192603939633954065679656845027314208983605786655404766525204483115356147332313370290938143462588986284095383430967369163267340879600164042932641906657738397622019583478524817421614181758494616921263209594911212723510293316394703817899901090410271680881154705492725078012192192476716460665487489608407639703940089582358547913383208859005040054108448026904928875817852793068637333065890604134060284477542472094949301739224214961850816435194155706344511446657092899820750095854773875485433816735119502736797171812244206762718968099917327156819949529281867661935964966805533944949876326162829449047526702900120076756712813177694130957535172194835859665792827335326702300986896559089836468156619123747979240077611824711936684453965331947213719100625272919898526159564383410469457082983514296132196891445643360894458284434978592503895339850918914579834028722090266326004564464777149148457259056775798489202187000585714940605802579586742054369025455853623770474655220516024893009951726219703057955536683311152952743225665914762553116074573912709045892974373420886105350945631630419398946190264490856164244924068808475161563101167714765012918815723105055401228763868217813098449645904878609592570032620014731784451089034856115495454511497098094482047571877381841020921272267118083635549945522548102367443143221770685453569555437309938356332039940104915659634162996830849344218912847334442853406946550796084873200734817333498167707026415090632302163826191393109298736624019975849114255182358015162211080047424799671545198790883806696828504141478727532309163092477246128540923094348024393045875522152640011117069483114491972340858959087193216864077997032243789949716338816033429875610564250596188418537331855421457942732877650878661498835477585699065083416334036635625962918588826820262396453902983654568979063956769891269898850928730576364193749907530732088194610805647089837071220685376132880433972313771169517047922903122694761114994792137220576512116012295355923341579198926445890100952392762500034705852816384312090643494825518501023057428269222415827147837911555568691392565055255581389725879307861577520428535864608774440914203181336890981550787028286545801851171710438365949145635157004098909071492039206092125888587501068456573029454912097629664956470381608992221368012753191311926860076035191522291399296040862662131154657176013170315208803528403865933950774161854786635761980315213545675475311738270098024033300049433551895984292310477558028494590334987467369102347028746972129745747805389969751627919282801086715604668331974498750964092000482974656954932338787411523384802596373169986095764035923842726596789221399035685341538143806332847345819086619649669275627779054295854675746978383914818693763144490311706131949925830651126647222871569859339949632961204256664237906273445277067391011500827117468735847712525952665732253308123126442569443568507308992018021904271586912243348522304617445593021513847206978451825973239385954957950741780866004636735916620453463429988189778567366167905970438622402100640843996645734003824476999960464543008705385484197090861591642614759207125893297726019852381296248546579426659292329828173066174074990936218455498306504440771439572983219499193914593772396281886821560215736407653997306280644185805466988132777753789665868673308130310942334830959301890923516812124091369622101815860718976442659915112488357784861734902135964397035650316404176606652333116725053380225891980758678985202577219516785092838122677607909027091349066050188394762817252232166765367014556346068486220139880148349872748316659649322827907090842950515481512735380232742510685532012438629371410014732455289701359391211195862806829733086290967422742631017075025140131957186046301160799428128698750696841897326372591219064592434314681854192157409313744634798090830008499440613855749872043060553723839833198128396280717221012443090591472270554195826390044393867443659129316138221215216771573472522907686702150606410233588841516866107735227165902670395221769145237870774159047980562031579667962018044661472960851477143877922090340525785810056888234048060298642651128975349120700377782798323641907284052914150042165126422488079729384868911587640664944180274447403827740376371582536252277064856542086200989520707906279568323516797324882477636152129534213758459836887746258080470752571290280562998719706805140843736298900664984998206904454492714685099102999602517808076459814003297299741521091279682471334905677829359593669366842566024320827598361672512436693511811694801620985581020485974156132120746465478421087467188861509960253995170875763456045773260256261982715330156529375752170429498539991229946879616246230704013352004645963053208295458211198205810518162628712305468654113357647912905890261880445497092571419256389317848962125726639579329189069987302752628568988617840727042204737787282630015470370326112206915800196173730389155053495327609483602378433726473007825846286828491514162970417755443983008861520724572638169195628667325642623834601698897597167991097147274306934017068570024537278401633299004881733671171438469629646277654210691936895303790020118911057970322874184574953685653778665545750653167313461052950433612317960209346728197618689453881595841240259293612471251631638533295441250220297216191806388456207412032687675308605175506282087298949895591609230287288183657742267458264497434674444138225374360011691091767820015298208854845540638952024302116728808773558856066757698443618586756291787291192507985108812277275420549137277020475737917567346539722429388489128548102198197765368915485417472530787136479464753625158363730181661970255070151974182437401353473304655590896900248310295072199092760725661099119649570533095705160561032939341337138143879649200038462936300288868819266775206023468967469194420523489825767730475840795742645112953926679912565731645503173295634452041104251451406046786703369132586806919039695163308760195849866967394852906269837802781140800875157026577484229293857590371538445446690613774249069179941375200180923579734660773323897189815774337916696703423711176453097851117717919413338872512097869201197327211815132649759168891792519896747213451178443877978298712625304857901668821175767428024838994968166832099651740092548025863988791147770273993988311448469791415870448589898127629637604415982582527515560045884793927824938617945874734339239152846855549817829182036981206354189305762088301065876951402419949919162463362802126995240995982405011855084279574058583363254968223257789459991227678255345892866807110856286902298223911232599801632881831868198571691352594234265294067128277327374994604261549644968861385823355708327676850599761836844559560656815108908516201789425505411726043658580587419823114699513246080555228922638346361076872211983474743329528400719489615693737521415501396685116894574619774033379957013934936814133540021347175414463451414439944369409463831824300766258882440218140039733640730577145432650265034601760273773944104822045333155492832547430224916285466627573428056449454037804044268646066531073770809240866251527962321711415431889759685385113462979723563721854383191281897157778530583079440782423188981765674430442322914812888015875469451059096962617848818022239921191875511214416952826786020222828588682419244963948352861639364421936144468151354653502156713943561233252560028425655151648256808536534831895640247420344525460924661513308238852380882206729920524168196693052795655021671576893572377352149386430169908470678945592409906630498231902853598685583165095248848214362906339914440906798152966096740091337067185784854216020646564073696166495472982226488133745243856372691869825622136343866582773925688848770078881370825890476490174504497127390530003423509207225860881578736602779883832177615416432539166176806380124624917150486042248341715776048486257326232483511865464235254652103522771725625767259316275474217317936328827622924183358348069887130307603287584237402008226981757765419885220776119695343527438906705624588549948725725248689655482765277897100942346660360442206601331839418901011382145355885381130179274836188409663701851430473623914425077648319867590205672252029450413665033652382797503923531750350731890887783978823066071141709978109844251546614522080561541234528425854680913703658653397000326242386668177433845846516835953072327072574070843725235543704641766800526712736122501035586008064179064374982973078591482918608107536283993734101595397323194010618165827407436933630493549938846494661776103073965530399411282102669522582032423544133032598311142635746511770263705979719208183346064444587905534495135101306545350122522618284332859645714093117571892625436687225835089700195805934875899664107488580019323159115762198713208265197472878573748442383548654950755586672458807347077384825922111243335613922826992359894179608376499489980002470266087470808639240176005034022593380088318922971633361163312908420933088847014275936480045663233837487607502578132400476055025343474212072770102136599958998551985438980878699917752965073542768921673840230700754774896651957706462145361995326356088588777123920941538381885024108814257634242332986234625941937515112518111940531158890181487407048020689389297253141003313912284723149208779756658461922487798400235526143155477384905821552271892259925947270121544333976614943199926462048743179678852264087057270330621204235029808461025464066991552540124137158823230861492399069775761368925029455341956588963967445273292290411023441196786583873750234974890522273587804653608705100783625443617032790948193656906632370578873737279416134406454259460772517089517164208419823244175717940543472953105718523070904163941773364308062131721901136332164599056162176558370085118848961435802877929738244385244261344818885893050552141679826473222150358247271850421647216384205826240398698649928797144687251710207998804561124033268748729402517602276028154771212704592018061465242750426754042542763271108183708844744669083093235486230215941967178289133419273455515345237355110208650490140435408011732844886406275226521542399867705973810931227847377252642845700242751920361973308343297671727005253706966798303042700066364643071928536498440599382477110780699801642173318253567943453615260462358652465553447940693334963102586442713176609101790494903392574757771436906543183056521010162385949769612209181965759683492903686893023164250541903749151404394427776464427544368523391228907173577601776316524241958594011547283394996824437555613212304338555447185922800977844430157307769886357448127282145526893565268212685905620372395617974130404714650610345723038034621900134822785235223053561702580776740404673681666449393084140977482632146819289429716861822448759095449269371525793375661184009864013546497243066460548878256039322472630874698777675178380523697286916227493420616712739530392878157997788744863379547278620906882661397550589131538744135177132117411366450443278456542251241232784339656018038599101742563394603516319889753511273710747062343089152877130082121203589556065746454011410915535774397167336606657266972030778717028717905115676149614830185553632146968492148414770222964901862032876115942013369190164042773418664694880821824142553673478620334303888225713079604621547979431155702073237136443719416317089200003961804823435470897704677253881689783635558370715421949556092104400019301815545782195171729438416735361982847518234398654866332187400453689558661578116198962809638479036424894071790808826345881472918231127539256686105172883259748653015463881251518046463727259300743779620338103438247623945996679064307256079785690612844479961826053960249175603142495125720890408337101137260122613591278688124916186268714524029719117665149939462685645524474453848166715761513246257893918730425043912568553045617276617188648274579999929947351554395437051841656800652029590233425861959075422122669668571954250349173226967253820705726198342259159942080428853805610136632757738335922722904803036628099060070537662245206080381922709567135188712869508481919202991457407465934818567511495586452253445117890356427922954370838316309119485831193080068116916386279480198962984199513652091025886440788917166068611120862178247732614492849597637183524028621840639019481417576771033983302103125231496043050822951065993870289502233264128606203857105067058436235589157340882856695294346386583583213834303290272821500210598911045922893296818980188172024337780500380735686710673436777083603212433499994362601561627646515413703838575289305819230178237334542577523681044107544409901012736251634839649074587596222442343652375088230129616546345366126455135974557781030302797786229494890378659033724428455273565164895982195725799460999499642321853397702203713538689235016796072106890490869850464859243531034527102909876428554958303536416680383191151007642789896511395797650297117524521152800314089172387792237464563933489720634578930379409229330342080028587803322459748867486259347147253804109124934812326420026419835471482612894599053281459290549999819845005054205090502797133509888028293796716208365184462354822771938002716164803372653222990854199124630442533614489545283034130167201604009214917092170665987149274331616936410837452103563406963172962648945458955053128187018151082955583991948457588942724210667962009377597438719791469602006789469853195777141202647237793701446084380855146973033550645121637814260946898170624811805183937632850520833824415639200287515245202109652640709389890781009651277908345514586512147280183650479491040785062977507996315721026766830990635702338131826382659400931871133089868556394523444582121731747344421879588051427028681978813142913509332620576169259954870922838981249154246906066293772768726724370738190063364984236193527849493869988395094869763830243085434678114659061297606425506192302627638478947551971948123478617541739590883073518743369898704208177882705722518893479266601435737625280846474575670251881335669143125500139700411745827725855121274712316576013256497025724524826494906798666024669248772620443907573063862370383319134216549531412826942304428452228437284454947955293681812660991618111303738124347673879201418950882025671722368768135993045571452253898821213111068569657429284288184373569396576301087638592067160673941093688778800547345182325546483085229463633381226754007283875894759760309129898827175645251078102406035553014186690343705699067057591409145853864375674276160644965604857885609323709209951783007233492509115300248967468225607790304143212814046061219127054116020446419433505961473587534134564498544710390728911317713240535899572592961146909828730673708736423079469111591345687248234475214148085973179961804813957745513031970330332955182982147107747539444742999779986391326195155941625646597436319338492673601785177131052334264077345172760223348380543152385201981264398982254377397022162811017059467350323726027476986206585701390897910086577312940433412215175128060341528894096173939113376754794016799869057917773411667648320732155061973311510817864872545922459609428384550544534341682494534666191524729302704243329311213542001479668408928048901540472255213812047654775776982313360970792058471047022479120231468081107043920836529858254337058339807625310197472058565590726791342855268507045226128124907191183941699482115309665468244145565616235955574308384417724305204177616020482979689705382625465355205248030196520576826635254870985928897919764521178593324450507755005627921002525959618867821450134315352878523804603744692540516322462818913371674500413364657781480449370813539440305063692107975601261106589923485652425807741806588209950532213629135676906947978295014463994473671846496882563341208996207365925307762466838099888618888889649349356018745065310236964823356748200286512980095360576135662624977486925377151686243323942135342368058366275427738236623784654628886149240957711225127682608765570217958092934594326125178582289412915644831022468271033878954877696967689764892337095330511575928630561153286146267381878653122455261455358806792309117427877114903277220148476817908467272338395682366351643417467145131015085053896698730963390329259674698681271044677508381435759537827972171777086617498863879771925966144689006028876715164313311128643472238343716716266122754310210079728681741872502951156833630907674392628461900621222610635450113930365239888371618266082645253527088891204649851210412090290914795187336016120468586229761565088830493650839558482425421728322999256321793840943360445654248193768216401719497320108940167145945568995441924380280392335534498522970783265810564220804670852670341854400728499040400991491278613768842003510005531617609929920339397834416861206047782203619670917916042339615196741853298632345996636938918402444030755079579967285587710339205152165834084508569731436058761839685384700443196683164140424135775198284269660059776542538869915855045038849927729474567871683446239343420000721680157825055729626642862969983668513418275243496764459842122041375414184001768378933870908404678364922762879899746849224205493435859023969779872180056385096695469222034853632870475851331709403098842935665060724918053883970065874853085041058161808666160934206369705397299715332446995190304790498676559491281881085099838720497319613624006748157194164087345435385710693985488231433332519386500450718054134847088076435455667075113132187016833240392115073578468791719220746551479745335255302863875593375541175033536160993995538782101718329159548663062680107981501324014953411799000167263204350651215412257744774678227896392450642693755244846883888788290510574219311017170927002625915584470032056536336438470092272150129354744130543865899152902617297143756192533397853037054639845334028923449946184269175317743003797535800469204649576202508227052245629458596304283766060837631749583474782618490751083191617020462736533633808824256116127084328848567643153109534685844820796233098472706825826501888580434769775807951333208761608141096106245603387937913950922077472500487138280927731795673475037556292105249138528641947060496658053620972557140673495977408041452614117648248519359729610982691208136816188594992140647584597527384353707857069838346322779701675390630652715415585655661480835820031395525922155441118259180554299498927752238783637406985079681704569098918442889616051741798315564321013910444626779643223793005502055156897782629317042844919487246984297348685334114027991230022334473823130937348817506228769719660506929512589858278078547484160554691596248782562737484768235727410529732735479236109032101208030563069128743711578273606129656197642251040454139674217756550268030327907175065415841611082337687897820618154558391649504986334088774414804895866950145308162017159303059067012775764852139820406510579890295464290321268987666969184322262997020950863603610853046363870218871938915727134918960916735383673773653156520218126819119673129251729204596124033243924723877083529019432235156934634757645156964180319537046777646370044263611118099661471497624739360589193082193749942988530216319887453782763828133600888649949497089085494240746262085379135799203713735070973622791763837742516487557272458888787490834892364544209995908006250486146845452130784602191138192980094335549115671272561929526418599378122947040123643384767507856455856391538359456208874986479321820727265102172801026121756454327669301606902163481026902411970749663643872245115057739389024479774038587448942978228996557111515650938681092389628703930239691617482330662521975500109438667466826222573245543289524056740204140129836004069326677804561958536621915525771607605907977377973353580709861129425392598647295744611035702472425900963347616065928882913865804528581367571390602702925553225400117078530678405163617881805449002717997003159183713584219936751471054429022650092221376831396008280470422183084070382990573864903491240177854096179952418346524345944083535423400850089321530175011232209728715341163531769336119698868864639728724942460711836795651000659597241737338107111598490501197945516507713962195221805060774147920782113250469254270588883631980790818101171938616093222224149958373851048329892575423778078280577724258111969849842484256002547883175115324210640893238352416429784291066619171022520032093376366304292977890341916665169582002385436683637939041824442558829276499003197736434644176588749580159740459760531544739860768469118572302633523131068249265417322627656520544602549715582806102703611483392821915887884515208761159246900995033594618097650691817074376732050296489063082198790661856213758736530927450724508932149292078617521965510497288491782533549278382608654083379512493519863673946730124340243400041362492847279770361572468415263130368319131040896824569142004652189314752525110702039413133916349791645961347509635167888733914766360715655153338050712733358512724220626855061096075727917400788056707476054864577269525304008903765456806445947629087801302442032620886152310080074609913618636307469890709992406936816429798122253122015988537236210958865918365669201608512670733041477850542461934581882765454161305573946099525483024242810876175979955359459128374683607465886199659921642550737532991743680627946369622812861840627974639538286530962274034458393142751247625172530052676919208014710586470568755527716603158391941456676295390715834707187752918661458413196425963432819113067474644764251255597044649361010648113341859625958536245914666739195472676518596338015478836048386894180290220241199529857123865443725056012625740007431461691505452953477811739048949152648781788984352098901437070019059633098284606289989987560053494144784241418984517153820348273840678759664949832092008211815165853755629557265164887035872555315616306751848738415049658654491054257641203678484688838641149638148485315993292394035388016773589137187584296432739181403348020894500517049161590247399773503371652422497196515088969185647940922431331780575703619782687722853949748613703273048019098188875691004627985737708509198867248638405083345184212384769066665712023309815463152711225617833638488251729235995322676151403216412731906905795563408577733519471916125623256467370731542748094857822323750646961662413317773191881406618832316332579347807336495984988780335711680565984521269820340015854259001406111116508321882409054723253283787064132440901500366357408911716124473874094529002671825600511090080559949921488588795705699356263466561144441660844648310204261530557302610920129599608320347986673961723249865941710014215295520237074691287189469037158532259456491502351775850839825914325738494279991232354383257914740222522880368186894542795271877212053471840076441890299237140940576768952626575084859796179138947389105853762879690936672344297342960878734416941195207748988280351215495046281576223986389845493761223759277286994551304776553181384223739506994620845262132523042616401592142407539668510775233762656526828084779818964296272045892859583169041579699377939956809047468176176102345941656905686637506563469047614817593390005080822506783201904364097219520050527760770180159400658539180892170567872972155207442739938320089353015485395973174260997520917840974287451430245026070639899570874910122825527688070052581492208572902588992120368611341446128766651778994700291025730666672934761323776098931653502207337456991432279896980484557852450700467557095476756828336884663810226213490834263295081939833674788265317719817761238534195971770232381807921238829473579303628848928601641011475685997186310674697941798420652109217865473276241014038728483553039954459923256668131203394226266980802054844989967218224815475987486141070883749720029019561343927920097266023050393072528822514670631281310585081365744432024599048504894558388147139056479432327045893434207916225609737515313486703127090494125429216645630920338351663410449792643812877713167622334892491218960234266590045907797409590725709141797259124327504101530013792480148210743826124366744519807518599051514195414210055291854812594501140751284346244514576870535593998872512627278117351663829118667569417680973221253803804916052651696870415503752056511047432925345781145687298339502524877760233975492303810262253696120967598411757169291907353279270833692408883266289088760335020625626763840574350383361151417599584321404056797950528121712020252564908475443406632480125019389151970155673648748107613671464581185375785405050672982054903008899940136428812966644067092704260375803211211130811141787319759737775727609757688081373989095073802337657548213859863921639458378828881427832155857120434586381082700019889453464893321106666740978656733912924147982885278771710858618581469499465206271589857577543323599139717793904167105598008251377307851707907469185879298371635045676783178459755827497752551433947920733365082679818429327331565967553975622033102663256202742813579015244186379756481077807661135641376789258365569260551233113352558362191067939020860850102470091885112840112564544928199353313925205320771618162554884444825741173282833998063560183719016763064311906779464514566700830753707811203520477767334866571327636274948648681922193631270564238027033267981930846046558752729763854770452596086509107771051696287348820721397581183357596649224698717701247356305150864249931270799681413628898652759322370439093859265475137139618649377146893789506936433546450024905997998056248932024739239271434548314976489998121532914655547857958052623700758363904398865172779626766809146300370620967040524021760520169362282810874451088288899914331242532439946354854548100984021998433090472432678676190922435620146545289848972778406716479948665958230222555732505671481373945395222971020904298640177477495260119391257063379570944951269225582427227975772292052438036694796601885563714585162225612830206073310880012578734819153546550209540285024868948186776656536059653084673398682598857064824945025311453000653741985660006437244631980126183187870434540995834042120330264712326443171135323960541043547808350748454613694616043085065949532690849441617482208820481695327640045949724148331785285331218165441863969826467659723328787961057087306063981307657399839146849742463583920340294606895176010749981887879857084343653770240509883311330730688619939771096700123082870011804614861885190698406037595818096759005727297616248146300430400300879366308930403911828023790271477694838502351052926065566568338445561577176478656667363213218132338001663948351552325991681535849625326808555210656053939414111245572302113769993368463291528703624018002100066101721280641523783238614598635226732056771502259410247203301215675893963276505520550215784576585614339973329281027616354121815731244667955751443392286505136909896825427196193052364086938922239975684321768212101330009058680163056335071388248751670603787340772428085891958189276106758536483828538851117872706824140334914165735411235723322680233264833263216513915192533837782667186396041728318227177188744701817797905148860175386522943471539229044475663589558126536216484031642482923361273098904487635390316540561944022402820065198855969288640504135399389390990343804806243159338124876637115985637306875758927176860759289072335750238562984731340754779886245134373103186270046754530870532142636723186420857679864097914097233607263751295164177087386618616518258681708247408443120752519164619543807159023157969214821592494943373981374359908757170753477376582377234878072908210940754283857670411777273350705999332929615918781954772539668376544325962016589380592429115265953125887352769914563056402848461224161185474190379852442545464542474020622367454401660749720957109564297015053083888903851551414579394273338425819993767362316592339076350655167849830113163846875234025183131595207441156097498694382512139452955188828704070168529262711700890703951531642221366022938592297756466616702014613427887556693690560948236821191223627184694624494311328257779098596628827215941948020328257796081651439556185622392166015269969836733066171359806659812123026070532725602147188546799631474624815015602822787518463244177637672533699773375569134135898952814971545401109978962760278590122975184370236333645777248339108714149693338540705903398490228471353507803240332079633696988870272430678908868292059924696464922964810682566487507152026035373837524767087464684842806016464139563548279184469578980445718582442903518183203996232000071955340738457391677217994102020222429622799014423721314037410815103285860672234581383835994952691582725551904233328252917396076033019547471832782041124614337691382282568025840916241706173057614179569920270107072601014034374728275997186743995532860641750825701358770957954172690096703950989256196956433900170453990778425435166011264639193698486630466370009876630070580228382121461314949369883660875808268287666105541983569114556143015371546212707952855560834289564105623429668023912300590038481383113714351125661581909428793551325649230791765949649837424502616151692562612462805770169583737139204867891008826035886392789791157328168605698875580467012031975295669652227988140519195865609123632979130768177772161898159964405866281241895129896223061559727139456544441238764744995796402285878464588359745836740353840307191039109168385089074585142550254068230498034950115528287262297398254404470457342259469611181169942265593553388135751304095253842422408675549431950697055557410923905229611072848583823706812475089571154507821222852199926444792309693800386957110379960074177042042973838509073626892216117629326947238146716364269113620256726922760550338472028568099630857362927094715151630194506618532508825990896050475311241830960762105387698650760691221810777455448239764447801766374304757353173937657292833068472430394671949135797156641350076896145725032516183981634401043458835018111121999361959304177647296282170885068172299066088455954259217040831269318259088388755206975363121410620490418069971459594222642264923099038730501717249774070027963970219200176564136513079576757842045372145191733752620293448063364684107789291164843362671727862395873791545918374177754737559081348610651460110557748651567131032582386574791511700932217059398581791354508169987426691991590957712212294208510396332557187961952744667784273694568892800360075340196320083490729546654977131344717813877906809295738404865508155779369710445515860858591614667282560948313082318197393303469243962313112196284153487909895597240948851931311407127271132798815475156492336825317309177100574518503340347219507158345450324164579148788098845536087024547351282471211024184701382728129561689879357118341600147571738359114387820133668861026474114751656179327888602943005626709153450964616456209666565828993874255184090226573545402684135672899283694560435439453777746801019561665656130519798983099262375949364740564124008791808413031194984279361783690541129339265145505694052400209242297077590444323785203593955649585043139806944124691561247147846844809127513443932298814826948497376479146562671429079907398985872322076287917763216704411529550273604358558164276062426230750783929825733211821315589457228477034223144324255755117319661742099687302474060628671032492234051860950455113655927888833930857034260119928657608252530743212720144550530383387484870478969552450666226347461698971139447151734145340231092081570277295227661125536146364404805537580737005037117633656597683085326636002743455069277589200367527139966731755459563432524556618155311423455816735842385100383015239429124146361793636132305454802848165822761317555453549791487811830238102227192005184864708942604049956372851506751271793117267791345254792772108935518278275174497548432625082996688370137162277302565814158421195615039208058435772139845847452010724733779348894421363232794181542830670654799676585938933222517601172896352680988955868832805244925511123836747087652159580766584379767934355496954376649557470173133785256859776570071600097657184904921005765777262259072073573129154638065501810973858470909658883828575538622775047114859227495442332503323453952906285077262954068441272082629860884943985972245092120998405222399654182239508572276931546010546545951425185944003409744251464952567004050842269197754748372897114700995077370314267227733861240039831850120303412354828765749431968404455302788152498644974280679913042102474368001626304960867035731596275289781739011625030792930742840884073714843072536570135806685471386337005572943476868907396937999043130693019280723353586720782709122687919548849464058720145370991269172710726055838140753648118230995532033667039128745984748641895377809630151690637099548521167026562665856047416803939194769845605997433225539838852329389477878007782441945347014993991571226526414035532900937244041715903452613785163083577043991594294038745624258050098227416450844602732973593800244671603420072598969710240583503976406857857835569019270698990013529650272607038945077053806682240962309056895717092430104626279640279979512952430933323660134484094110031166489704521959801717994758995199248925394088919287546968734370822325867866177910298725496304613897648457720607492654556310889071955289797084803355565122901884041866240619322877930263446562484453227036980918238325691511846898724371957551222320890622061430112737953357894788179581293832664323500100492051981259289642628712876121899756777410276833000663314860740424086439190755479885588100901683897512090007872198562793591528964881253946410154531959759625437675474532506694503108026338011512051150992368357513140737771034174846937587945812637221848350267450393734552642424455089395106794798972493797370200010241039998222642385611558550957437099920775745190619540719476748669287456889725375961260336216522818665665896254602782425765117524766446060933183620539916287698550011254413200884464673492074328658459495546422277985357571146565072690699732341989674636220937416460611171574276674124029568380146721873362116236580721234566228236451853808927639416144523399039137162045079302004357285104897301979463806728431716169168990699188261448019336429830818845627720274111506684562545048191649427469692970407547083563866509771200905175982029154843694884994092217409717696626109764913187925014549755605943110174943044294114427650204145735548280900110493239439144541030626881854515632091815842218469648101005199915000586191363526777168169952536886384850148732636528304427484193173103227975346998879206242268299433072878247247866303230723110275122015761397392485581405665993136630435359222199787600893605619042210516534231583282691443341728413527306136385534149337946587097551031422873585828310320727334899195754267738347213546555072846942633375859878169684337828507739511528203042275268241145611236188176877608690902739800786938154383863284022733608663872590295403276395239353408459524865635211006230627086261901270385699182552822070136805011968841629725385397327576088473835710075732021498454514506020703692017935701800552973190337818235409659290298480602801215961398285558717672880216864967220609455836300308505857353083282562084573502541704340072451232164506553326885597267901830669037504135188749948007386223968490849048249041015812218642474546239940789724531964031742146022510753072962555648885409353070776082738902472383129293118937001730590141891509602619326018583831327609734614097139202700600903671805899194564006234758874393700626681152017309250176106111305771247648899332066505917175703465882418924827328676658160163285891117315672680724072897492614722980467400101745353839412370262384037172732492112284784601006328721710566205309609907081684053982755142520240389852786517672626349692629070087457017204977375350238772247840482992533714354248404520853393720631442278404918347663907693517996963107596983822135861835064227752215999101340906871374377245723896137017132830144586098891311857669058963744504173643988945635086595814741462040144545735671885352379364191138831732361065955174477979771816748383022438902228768832236260614956449116735390789190566595138736471142042848946691481241679159026489113303202125235093614380823111252362023735226115556533837438578992612719707852160533850901082091053368642059201274032260631421893795466827779476611685865454193179139043461012042859359271245167735877008305394663904680052537601413069735152117200139224495279284368375138297780167918454874485060760798623300383620205111254000780374724824150180380192681621590028041027008385432470334854223241094679156093580946816511437436407974462688204140761748433390723038133580487443769370152675944956959623810862390610908313816432267561484735985338862557689647733518108161800009838083500965187936595697001731962709280455056794726427062992546800915191275284355724940295275887303766998291472633063522700735301928023222272853426096895123947242759365877722090271341841300645945735074614319563688842799435501249116251147254854097400337516140407199619715973627370932118946762873765761567134631615040368240925404979297085872478176710362200083762682133306750197297428064421949552985698832125544696472183115379090511685887218951353500750298929473696288593713371851170992560501569279053332596593474482813434178152696080251862525860824264212962770242503583727162966098082914467361210417744560396963547434671836059746993558419651015135128914212039178653405133529364628784034869493918710328873314971081664614410526206503236740588966327881281924315808515490496030010640820378891194555033364904932362599917535520677792712310009276355378969218436596562707159252844261865554295574442931644258017259675295210253877645781253852169002900783148459151668757466197593189603815185536948564501872366213410325902858142544715597072360327017156318828629891009120622008289544849188380456003700514004207518618690960129860990810293742096577387962047178991903531784403530940028725353222633700540396840685355998404634341493986106022214489541609115262519710994342496270720244827681218144977291490248351582631684874926611638374583385842419207791300340780005199455138576847637509368422185945057940752654299505745959288243005073886851584062458294310481213326456861731336499443211429187609702723994291127858663685983431926134564996414658152125092731045618538283516121504785448771456528486672420871560371091395464952271447257924935745204121664634876823830819741996761953053538160107210039172073899127155020143131880281593328192309961352406980469249314754886080555520492912400760798187848782439612265014008253055001913327309495052935173290947540862495429428726238461789981674331190373797390624210285374367866242639239307597039250834516886935671682054934721231220795734252382981986455657644691908246170432763653805616668029537031852784563413686882067718140463625975408870095652931982254959575392509748332586800757214429940813953463374258046794905527712036572624894976607703510793442501108077447465662834088287962874755539710506341513438704840860018364917362359686495186900116817764872157104453794972532537966986846279131493960953288689974527116506297475886317538699274635049016136856336850930927477910631195198657767311014571595989052797141583681693598324257392066347798310104864390441340231381887304113506962122109851922443500227584444109857479604745573498739636996832962819476632093648860394998989638916114301726882312180430017731646844845970329547021458419558166747722117812179409837280410286336196435842884151071902813603054964779392371792104729448916362374863136252760685740603175313025789905480390977091232385471010308342677451225616457900551802251707971072789157492340879476871817783437103358981207510547192633882637100745727743732445751555870827982102244335732641612896405627000752970553321142936748076870103464645946536764190113703824250934476159635636314328880592157138442505649159476677590394036817130770666468943593973004614869636894460506060278249140149887490445644135000892298161393028787445854237600393339372603115400525048462660686653092541370306280358752593014574883677977255563107639790104852182986199624912494118279095131123113474595980041080946753426028168303237951751264801615161189472880303218140748883544189097839942816544272067858596379936687680883579664720571279247733612013059404394902702489830699732523178382509644107030810348332963790156547694606277650385966330665359107425710509096523973692871923875396785982197787203587966713138675406275846528765794780257347245089463638715473218389844799800064631189049237759847485122272573217210113502043270540257390059567633587619119369606885473361864506139092810942276481123875832229658924570207458816355422211410380882542161770576086835553834372147947560763399950293813129844715034520725563296454237536791160765813762517760200505513150183429166193498208154361793418379884383844266595313738535931934477697606411903704144195407382653366809360972809333875059458676659517483184953510690984120430477029746422111171702978845631432931497290714188515111251624893604421691646222095476638028847211324712561611578735182792360978145951012577950229689277502858426403094394793919258181873667478029187752314114585983098698678399799188213846076719327138729787168110602626662886555189092455286378846587242816775649180486367358786127193132837570495404472664409075115813165013147722356529291481853429926057011963369824570845123724579862794125405825507688352269842595709355941937944737398738204702538205518034539679938031267467600989000228797902588621715849361117070877390489635134602776900704819041955386218145221743520761312921385675815765378433343878708737700663778577846291510412427869329229820117323788491897053841276156268419264740752417695971098516759767163995875533958947156638125214699785901643923152800395472583377086129189969932314212234475580932304359866210376398097313308751263724260409090473049176088812048528932455792950848217160875531433266386908029954507641474184541482139517374310564301739340354838159920201072533993232341641371923077809782578230849784788159010061774166991098899953893971534583577983955912335796283027539454483107898208875840544389094278479602134049484323556896852224724714600804497901065195794870072577988977791374894275734974087752144425874499799585089597176251567108567772598636607917029143644372815291768675387668790751291177979344633895371062205755196968921416377045132230726651426247701259739766535470123182062651040118428020878613945854114497929955898176703221340106559157089197140376677594271386496751676411355319247895127947843294120793174322008226521547076490200385989376616134644670792731008319324001126295192899033308634154147873906021536812728915179485949781018512681332433433253600206267446732600656624085495852156252776566701495522401192025539590368161399519283555981064907626812521362979665488653568116659086754533064555641830064563301760879845353015016426316382754071891118752410324461011921298704281808941801920063051196624440414747995102074773635644497533262307326707269755392339791643735526356190837823026640523112643852551333714496521761020420192379797537415037394471320449130080959371760661062512105427917890671244127128777737110010723239380774166242425490885104509136737846151276316618685150908188500951249506220109937248382382378004716266813398778473459077045318709297160049771595475325680067404151158635464544019744802050878949559834845378212479737077158892167076385287467853436028448503674937729974905675689937453180627672026587610774688070253357429706372520253147171143233131512592555259221262746482439224513377729197195795755693892796556676403925578234657530808511787786646350767374599963825298093442975844189789845730601210604712967873305839951232469143989363991702660449506571236685810158654483268074339869947245167407145172500808348871493679127957975965180201814462836610589341522222207591718852832274854315619081878357716221701864072186225442980232983382247065362873907505139996710935077730825043974681044958413881813966496317404973056605101648817514406478151222977936878175869053005449918175786629920667008264769915915659187565471453973006039241930016365838998364885305862124241754520950321076003479292899483738446579052120813964580410954998581450355093862343010534025559037505696534462312142447506848821408803996465190471259102077753458332814574950040874670342943771374689833744041894815940222958444592043101133161533882566698745090064347604547607519747231315281283215218587783907588334492045129352036002865340716919996798482790672873972508122828439636367907945865194873809596174904754771470399705082745974250875300332682144468939791044909641655051965141443424690348826378717738641291213706461480490077852844646301068947935053052821365620517568856051863680713195996269588444191086241416681320626363926912941486507705477333183527684691305576951314869240829625395315573312625636292428995843699260628486503318448131056234600414902089074132707545584073858940131195239490332527910645355124613468126081982463453765342012369280957900355406750373262035521917886838962210821488433235971476409917534281440105344288824277523404291421636248375207543161608179346790287545557820872896500552654105127177802378229174706686129271626387023670276320401788815113171648661020462259805245877628820652800229310464156986043461649841845695923463742587953302859813526372408232100241133669886093381354758687107325711754721755773098181543934950477746222779607765181850097196339603877626063250218939525665120567704364223040008952682800785440319866625144690489367147477396492384600082151047155337016276019344395054785471378657079661543168072194097057095749517718434168642256853400242577933411317936625307196476994352930168536274954042605526521909348110456278285979875900260521374108371436180314670253154342205007905020970777978830539048178283858667169750868638664494335045425722029994254127003455302591572519649951631152053416973146137935681415504392038614382312786667639889640211454499471071242254553178943832969546768565047692335891083930705904904730506304312015896656675656697438741103489732845291709588307835151983039128057803695024295184681560419448154392155419288414521549574883704194662526591654983890096577817909719142920528132704256501562165670422024854360408793124521150475387850612803493269438575510780066447101508544655671547057399383808061535771196378272741828138592373953034407397034764745325158521144517114970064183968272375833301217048353977892305046717980250898648277690113557376480067217110700619058533277136783834105043589658931791670413438648537942684335519035811457714550114326175516893107004680845655402798795421734923850918137753647653797519068821943490631158314406553472600267952728487741863617820901864541974009839847470071162596733867079814159214727694030422595958077886195507430146725824402283962072571282532859985960947547060532299165149563857537664175258756092721119281706019596819493140325500156245167822750230544271767213753393553128658285456338944353109426774861897465883856294021356910972307302099857700225660159230864874406513090982101512727530064412117260316137531765744727716804933662364846806783181776920413366911983856488893072840678114853126851435889235420436911559971270907589046427463353303167344959678742577120152792721995098605768536152582469012259824047023967498105481127544366057328765535688604053243345422745733714395310756590772861499160607373487728539819368596940574463271631089222250526691925449695960216882323843523904128322626030490080054577206374467270708140857087344719040986573899331682217323058013029081623271463174910937606163585421174258129343150131907515496094403018328588120951829551811225391047260441506253740186479351101283849965517808392730493465548392877738402679126707176236423240478587947129696065015178010674247655088704048489879724761877909965214856765568850200750101148363029508077845517088296380025782516423124590608414760801557807937518077760730979083239693145498761521784971429043638960591903366773070917320204491044485757427253667195848650129157333300799597113679088517121316692109525671193601928834953937723198458610484625431805802934074357512009946509817683422608134231711465163344287602826200645826381017974588687668690969496959915131232847639422395426270080439488585595569018716307595668507496420593137683442646935224198600256677367582731963525044902194232469403977413183368373681778547264196457263345510464493537690309614024467429645422332707042318218502782007203025907410411345313091986710915261830633575022738500493727271330947877390151198421117165984078828696089177017393482849477054101088534384064200346797583888577285934854591655330133521984953668818676832412150500578793934727340766028555160332778697546806723167746501083071542319761860794744891575830991463450855441578127290531962874528106415136975715477182734171906543530030684075196226853193580745329707011456092029380366966030976935159025457552664294479072401197226415866412829854361644377752325909054037064881922378649557966813645528008500010266041661810478477583598126461982180998872100780390998471322368681301013725420310094840506623984213470190443914113997391473018057699181598325748289378495237485505026031597552022341325164799562105333171122972386456142431242311307680174192622056301771856274882743146135178258117128758475256983139057882571224049130639008940399961017674521923917117430312956073675205255342252716654785950109845307511437092867248375183257615109781892053650179486033364673356061880216459461616201410854118058596975878816712367186855162193362150023425630022431524921412690153555702679686868242360680692410509713286113287409001216485133836519366290243797250283725171535484277142830144479206557253539525707810674033830917648386469796347890445971542254951679114835576114266238905847056701728790315495586267132670262211216171653213717637385289888663326947839179158925338200969177635823725869934475917777202870273973713172334089923285056302685238084942419001140625740365467201855681810801011587145016824307429970673811463990032721179852703755429008803630720545058236106440956151759869578267782761852699469424209880123977662353335949085413549208666899263960079968821581798476477214926788315942753295517108322383465724046267017990043375548235372252515611466982526527629608970196223121698216946071764156409250027087163842974775142401882331101152948080574255666495714832689244181974386354566556910779598211558312339952730794841325018509581316979731592132199733386252946435856624423380767576101700992145135608434791387067898187613225848385722218723174913012899238172636501377816713521246156515494857616558670270129200589509285670316047548268136226413824654983323822444017918596964672840130423088213256093487108209818979857209990426511115953709184516087654019590905351585572551269734568727511772331843501616576881762228738140054948374114575829041546525017411379268470084267330628847441885944597162784544876200986896131113485491692779416668775661713515483978263950139399514769025950338705213459815737176957050741483600493219559741516504894612806712838868179476418422812497077692947045478471986759232261926908058584301510372773033414914209071046798483402901198560509274002811039454216083939777871451455058952412854129417461169707742122814455503423359978309252841268985559972958806165332536429854266730553494258236414301061837084113975994002972735634568547816484217862064901631670726566593241138321909738713527033076824469498341790735556374893058660855612842664180533514961140874050548174524972382450295964499096228697490632949090423387709840319226521842218036652112897660015464107076989433490579449675565335043565417730161998966688902551271021184059744428183917380455938939808495209994134348442101061684498389114801273314045988991663600774173033141685067034490069884032530967842020249887857402198057736851215248346528286404870773938055003453853542873848563716043326263286907769174654469768589342456322601628860879565138736412708436753854235521380701527881633391020694039657786566945807933546723899927183914702402318769820517829607502207942257786743335441774644786529757251655461431848276717743612381457229794256278027297363689412131353685464121123870815111511115647045129196954435623667978676333075650624649291208246027370742309654201402037219118531390602388915410492200651813980926108186359333818202221071897197297659718914720117043375608939000484515420491016611950788578574718108345321480171084407787550039079626001331149212261712340456234210283298967998886615484010797531581560541077563449573259355127370462015215590147134117284823786093027365968061156803577766762124846864008257375791963064593421774049977676403074319803225693984749283345082689884567819036481829352911494677659297362568609529611596376110981761993509149764198122122047499456764745585690487162516018003327651062277111835691968040648150664274163672631617065454974191330294911751024719451706490881064520606573803884809926649041204582831789196580217797191293037245335954666764638539435168257830360118334460101292601253862274261270398187506255299073779856741604127527375123935144959298346015385116530198134728268922291909807530650451007374777068835174893232429223928044222689298128636759088611948308235782241781137986548013792444030592079158553385037616378502014581076924246395935792181580285379492751007488139864822453466298207395170986613024524149670399436760249090064438583288950428412889410051055352405179290423953015739325973370806803343343784238263753830542451026651646689343514093057315101086754045090463938045896246723799719012617708526830052150109726523957150542781892436520109199500594991704469143200420302616672889463146731248881760941215152117450772616974537940401352104801659999415450143535357629605860982554629363416869895291529211227328699102718281808073764920282963761372065003900924301400562955443567595438724376682392561208197018343946549295854089780815347275265134009078976194074938320121002858877332611954919196742623927932284697817482960136954515308401240207950615922183799886483334400780856854316445534525370418736628645171709195655221362230543421472737658127924252861829706162640081786823319557119500269453539636962342767571319290886299469000543432927609830251701561845108195999992960491383152288114860776749420148021830582381541984901206601946007058191307984477301533041555962475972699507828404916785579334731780214559034248712702213687193914511634147489131339082161400342951137991567714546684480406286275743334572005531863191086008747901927233214207914048018676792081783963133170865214401260705572588149595749058165744789733109210755801662432385459240680899244545053733593194034251849906728597762025527929603440623057271832382935920723902842522727954639937326270550345477399495366725543346479826166339147180995688834820371233699948779522912884081744217798493890563475496796988334398728099480220388738466627649432476954303123677713758151928528772967017077145179573448141808962485941480612030322549128011053002444382659541791766097694627001430993259428204475294340330934701467061236874661772609897268940473347002818332038705218610832764657945625662957377872708217830879369269109016596334286070024437965144111636163688838036078744711714563016112645348240171369013997893953913162794831303044182555234768536400886542722216277403549793168782845762266392211372223104684860977325569659809032101066045616502063840733383558328359027362679140550539681055249317905931511429466849899942309026180433921049181982577161344230403116172868005121689541866261642967427491229659918533677854208786804383631010773823746515524554651604996509209078678442068249523441544519339036150339328465092918176007134047101734540446164255236268596717310534324030645792045906465519043853572047899246824397287969748094513378072023507636041620255467267496218182903111970656459730133606135388506445914775679149251117623199483958958406461126594664530224943970021838310901037405314298083324045031786779423151257060657080043128627375467560829552444378401412170992790209534921245993052585967473885384247972497962181881915248424409762057142487199311440514049039852509616729200049408938843626439242065784893054098501853726643170985654625197113766334833593174455123789700921710715396610278899730321136365052400403074086114583598632387561228897862382428984205827315630549430530893512576134881219333165833665512589130345093380090417710117740895186228998823897944398779842583715691368172598144224965684718726753292700021477282908629823989454122786517130008458671794990403671191801382440371191856949601144694497808190671000046952180299138033540803247381788800443247038080067729666139241676830451219953130758040126212383056880219621501911395053008994238132838758150955113445240338742943622341468832325387129732239454835327137539542725708948164068529437204916359657121119927349597453633278983747643273217419529948373246575432554263063274212467763730777055293626959483888314129667684770380238030476325264184874929826393370556291874786006295940060003713035869679845564070450668513513913296923606773304318041486300582085994624054336965016663293099373419263034980166774269121955110079377859823915801652074963233642662484376300367291571510950079361492172006496691263423620065895663237003886971665483997166134792165440454581071730490895649929831039977826128362101525579832367260544230407356688682375083036255705061134636569113227171544739617306386564366962047250952231067535742393522514709577103622923385303239231801827042980757956887580329625963066868732994894045681742608403366183341761321747537395136517071975363884390775738696872587128795688619233375473853179091777885963069831176923293786781141339734024352992095209948528704633194889382062174293047519604104029255132151884329871437987578960869366494382235150612203549325616658113551613633637586116186666399435776095849980546402071911611060171308462717026687121065967932159017011600303859017644738553620501812863853876956803190292115844763656471413776332874652503110747490320679377493115246966713942297233445134646466601138142860083241227346940949814595012697580068589849349218653058877839733163468554485259024674742040327574885140505373278500066029012339450833748779130566337402426905181443186448697458583745861772835917638625155533155751909540786219584539431058588273318341252831883852338562965097281426263690818033897458711100384215880693709533448627971622404884005394029395395990066522207165113295731218880202951497175538558200597217518159537170125604887125918295337716435662586866800518163493800444094391507773892354477888011718848917418548655504018256493420762381697394002710124668956814077785640365775716284836966425490568790600626000892461404979763621462419446876162929112830596724427224156563356613031103349273546801438083197998696352715158044396261841602693010733364431347485717183248027001652350888005178326402624278952337087361814494349599101901979728150952460189669117456169330102967717139732517507855852221805540798096581880599402393505715377998076832600122104998587265114101583933671822535339434963175453201458987237695207029633614494053799779541029729385494640433232621866007435690434338634611306214587299282564623339059352562925538566064720001523788205614769658568928296695610334474315477618353505813068323275141147555749949480852589914011073104510840581263404353985441295785722477989104120059360826694859924728409198933621036766618901715246364035676702944982732316921291147819269662704065684068682940820866125745897699863800261741023002277225707283731487284097284143745658337967431416786093327503941495936476102971857544569301253587288932271018180992766498876338976325096274005997772855617015856067619044727623052726876578361849487771251882246758931008850486224731128177819541062966368137010873830702975738109837417328307903458410239861840667036191930793500807619775221230867557185693195948103960675667843821630811464362873104168957925835284972925382083940100143762247909330722840934204842192101818503986192819009128493959749652440762269339598600621665286081529952586428876920572913457889734310847674675368255988406889576507203860980689844738255736583454848807856189181747559160803494253155634852598769698955519198408543670735656583921374227092193849415034879483823952763598479761054602164041777239036646485760605581676305926916452200708276096190627942078476108696310104210201005459267499890460793034507449313352873168335465157211793778265504360490381258797418175437363246091071704606290684764887315200361050091838073619881081937223946804613751676073152998528835216292546762483530214014049257341188722594963440511010388104879695407596487943424715260996599347587438235066042148697541639922168940532033332020800527464819474151939479186215121194844054222563845749820474233858676700331739828797693509487238200376427679530435549192915202018447988743626587304690489018303713902517275290404100162748786428557706929415832811194268654560065545573383974548246896388925521233154492397593563748560707502358764236011598370572977912652697896899396112119149537410148960917624123727522976273110372563614781174719152839419324100573946190425913150466544177545847179732362281989678135553678413011300027744340233888791007100301300315713666300518168540589455627024756900724796992918247162100170595698592080655054878001943198125882024938704739744211156560523366489763655301513805892268679279861220664894571714259669925698848772207476747499814035120408517641166909151371692048293090155406782674469524624407000818124592273003010761485603464178463329862865386142293140730381486605953728706896386363692530208865697442233242616068237561132494492311933176322056896187705424929440127886075727618104615439382177623085100192719523474396167838486517810755996628588668176635704541139441014245317860959867400869707055416001561868995905212649030638553679163671903902312029208700339481730604202686296494946537035613953824494083857063696850054584323178452006298528866682594869352961963426398103510047964091162025146850189649632279372944948551489083822180711110348579581119922116466391009274262684759720485897369492892850570033310845428646497039296077536695707464552778839153170168502894051911646356952326035884350696463013875663700045334815582475057393740267491515339371439599020582189663486934834604893497431218874918673917354513574527204035616161430212788935617502554380587355340393355330271769858387157726127044792068514812511416247492440999626844080191059187797044956502208261107803746023161724924562795767381970061806932263928674991803439958185591382767507980220400089530676498407919254624999287749636438326901114975377263672302326561358865902332654969350574892664585523256567386502871149666316227363354170591172175918389151356238800129001955687860635205016168322105625068965180283171695254549779521965543137647866669864783574583806822521222732437580733513098342097390355071280168186580107937724239674367960549578855163025502761734878660605000658652849718019524095638978502579315254044134693110717551773570997962940701560584986128583988529706825895719058893938335014870860817726391244357960655631148952870367900997254062990982736341060165878553415739442974335748994335832985911635036243570096078103515095140366025802735039386854763464678095460072331274237118357576341940658656506185032902794136046419328358935117845661488583823963652207937521000760465470249987270295555939990744386662581692846429303539454212574754874508019493203584778071094759261113259951677972054498015709689691684984189198861255598285291880179662515350117407705761335039601201293669702144320610307433396018850542955036742150293803066948193647729699573104671083563011524835226605605236305758555673315813694189089239725679484508825916689333317531889433866654214870579409692178087463244985424736035958774251967129344506682301729006058799043555969932200980402424823964869554011492389834038456319559182891655547049812974840330162925737178141495812677191490378853514448907523286414458029997196571840227335061324622529006003731462452592578425488012911664917304952450437105932465388139992298815448199966101658521193474449572854496835352311602890275473811257955554256406828416619509725260979157571098217062283745043639458380385451627641068787261474633181740983335324337357748962845786726239126269360940374290251114933223604931075030488281095549707776186223651516088801398681930875693633771455818551696447702910571950993796323038604990208150893269122985252055811452693527270997805640180869881981451959926475690966305545426291673929031750459071394332989026044513266864190135742490551285473911900766287033631954710645283924885017392539645704670831456262224645841632273556778585412746971454878089283400558425374134183157028342052894057454857111723972114636841548262816356747653334472483518750821021840268390218742510458343305020264112747228116172231651359171855676230922320704184019054890013577919515960022515358683608138280691642627354725892728508146819986817534734052044504697641793524145364721562894912264915837708458064435519478328409406763087296089062367159490642011995157819835778299365889507222514354230594893028427883743895085870081170392295245391901967488855796264538169337465392286877940608271095219101599300834123616988405496457192388007507994394279537565192736120543411383131883966921998663267252799663746790411331440284335181300455788519548229900654857340892462471706774397853692704512708792245723908534221739512479089503664842793195223718999229407113623288038616186176713446285472118471891832113871717483042624917367515970147158658960293052551072044361690917979070118396060593722584184846085855103472249904050817794365606168016412149996956329357650070552074672190135766573977837147040214430976032622951760019739459525518874848481813291073720979138273255626032748706127181099045527274272946258081673721665785489332705849735795973912296669412968827938159526542469312001903549173824452482907886924171333467913159018934421728508280796168776799414205135538182597592906744164364425944909519541817215140297283963511106225354920671418327732776122268632237868851938372179485595877507630187935023802637064078336138199445529748251197478645978927127356049709327113823395150830145829189723154641556124284781330402001761306570741434532179844405281079611383986831145877173277116963504143725727871211916443170749620412226102007149730016014387814565938826472585777563254303747802435897611449792115211151143760191871932241773210830353441587566506287583418943635738467995211751699613373205861591707517971118822797217486786078595012376331717513392451874197913535422576077551449396002706367282179678264155725742198634117646698587614608883486829302554684908741750483331820009213332379699614471242475142868338445520862681555688892527427914606656019148509409445917580133357203605831434534241208566499274659463078807503059139182621943203422440370176984035394437157501959770168717751458018765633804670461676983288297890469760707084984177290124038685785087298430338051868336844969988197629930851628830876365578104113608656371367165080801841196048984112706171211039828925573531388097443305064472452889076599218137677591401400056587931898536671961806143531933911807984984730141344251713294524310928325505606049979844384838353333360588312223502132070976371374119763066315490408119288345252273688998905450618818430311330477593510556525050424462137994084655123969989688077931686633240167531961966258538593233755730290064433081034112276363771675546069223776375013905291444694263430478888844075071136764743930573999481408381990299758686977443065836860106556621468427479958099814551572666013424375092034632180810962741323784383077068642879743357887609821485197430525637644492886368556221750738401486971258028145785858575796594352984260604505145205158209979804892676965947990730605984743266139808019184351683420183359453651847204445653761743505769036721039099850042507145488894010853241903303598761473454541945492353047736179844688566801634243358842122381122471262632655399913584068878496241120935209831140771209579492035983278837651712809261250723712115412564767295514652845308351261284953738221157163733782487208541420982542018525772010610194296253675441000170405735278902520662025166493623215746704693881599987909604383335374913947696399176568016288362562469113919270231243037432941449644237099001252584698922454714959505192010972906387738940444617969262230966221980521548905986479589639535328166860260589374338303734934744716291312665008148964148487532154425002982237621059351038763653527813344191507113187262837183234465399193513536144618292216105577396074716690501512301380460288904099939642445419957187697999334471544513164163093390404702681225862996742951631052000231532513791238024484689028361502025977196023623212181518687517494187871038627869677852260446897358035606090231829651170139544862713699984774936995219221829582601677720786172721701088076462759771412186117401117285239412387687396282262530322635563562741144218426438804561598715611351665072407160553113984235248661406418624655230094973086011107398383961960334617310155758838938989900867746995583293413436879955578742119717528777531477332277824795698348253565685567449761836453243792231614216843803369893464492390523706539982513446781949888191849733007286746350443889178889611758347795408196480199125646215237874318953971137466436621533813787282659380976659367567241552104381554962461179190456811875108361449505974869840583244959451440593771702398804351534839252785387810402363361135211886908979383422677611510082447902891100638130534904026943477628827471888164954662737899444756182624781363373190987996098020970337942652384971957115830747439736424728465626068593669649712958923560452834041332272997498692571604348007492664951341589119953704202093614146471633230614260584095277621932310089688674015691159748143571170885308987453813403324507512157975435393642935996366226019549528932095013824912236709269137162649728917582028388802247851882232497422828904444868913227690383956167088261541015815277264957676297302443373247897644535144241171407889661577700899645558146604299929740217876148970610648858742548846104994749619482427568897644946889122626950371470946373091862520644585534697380978573736106018053335318914006946523371617929170763981663084354423741754268086560734261298184756044807637420844980665849309777969633054290874038950289526598080212199496910107196183053096114644675788459939847496135814877750553237669965336020801929863015926596671954959994608336905720457375252769973914855903996613397442992709367921652536729586062556442820702058900939221484532374891334663171235111739928772815343302532057943364893279339451006373230059299485529392606475167137266125364713865950949765970904119725206147532975197127915686210463110146784887485956270689405242301029873096012216163056173779623357685534277493699350924536141744401401846063499946126131929813271701273856608155557818882870814361455255732526956490874634744263268017463540226125243266142822999047390177921411381113654589323435005032540302124388430926868786308665297833243837737392388141609163369705073756927842111885538077694572771178117903044692974874714631973431575977551564206155318123611644705616444490821159051570002355178272249422581664003043346371053480264881090379258104483502036186683543698523772858295993626945805850347923324341823522045104890484503557880418672257754412426519430853946003483278447693293079132715622700899320536524464674785433133037142194562464532713898110388054281728306161825809687525034414524278181929103391140493732858432457329778025466371614467148359723837030261025961129020028551805709934668142549226175963313952864099179434387808325851589136623000577088629265070073890738218039226112722059106431222491525077913479811696026596038673286348201185670461118226913699369572284140780644975954026417429013868328622696209479799337932172665146116816271264691689087122813106408271785570267384014131766531312689763876853438644451331760890285894114554639666783910710629192541953029212843629938982657021945693853657192141429569132656985245577154480768713062063907243890702814080596992197253964932034040447407898038223520593376613238494079309898920321582245996164374918162928780988294286924416745273024365842272274957056865624910167442880455750666010193927867472546080142965883505840972900172835032949633535097973740208155952710186293779915692594576026823146026044202862146475067377238925976378957897800879579375696055286166825899369050918585832516600853610238622044265515143983789859956986507739844745727824062262311533717930090141839033834471487487638388079419257318033643410005580791546705269122507972055154359040052154379305382393281831850809332578744534686855251531807414976194789134834091659335451973575094136359687080142515891228583817603787442853369059901761849031320967464127573973757148747312829081022424968428258544484608021170898889942320805246875151138702938821034531136106493451558059578151617079205387507015946313269016597664985197310214621249259418801593965268730613950104438952463780696632671426346139357986702093526283097901119477986806361471029848193790415579113796664862275272092400928267478813239267825255428666516728457711133199863519559906959909050529855360169623661015465134449750013058873312832944028085584906992407629195470353217048851429364418767040299350817117398892556051142844549878588855500285761517974879857633755896403426196639693298538455947410156000362399655430155371479726965938171042515783616025675716951653196046028616039763617446587596462623626695207063304048128608290204900747793238770725268933817575611577815068990092029741839353311779552177925017872709806418353099470552000997775963518190218474835399578369191397338825019883647838129424770360597535124318572807552879058654770875703034767590354439016281459688834694106611747358414468865439706879188913624503746126812726276189241135689408634385589175964183574149494953870891913767270126554385755372153972891136916205081488047611612116941681867827767890612401028696776024802946635210767789217359476807265362233898558759644734698461427360655220586112794230621471624474098437571812681745483371094692388602113141914736852205586871139017915548140848940304404092021369884030528407287111002601003519739869745082125782381551655236018194955588688188443086707405430384971763189383454152439681776575283085765135873247398447933936474706587096124752293352853970954746154556659053539296358098574362912944005160603612503766234972938899840068273065386892034989688817674215038547836593912995145144970518332105219104715984424156818290467169132553437609373470766836387791744119942571164229445950477330450214193747786853955478185133035984770626858618300710568321571137959897472095621810560621836856907786302384193307598990922451903084919301897172850451274333145990905023985660723908246840412409187640285683024834480111158029359759607635731528201777850630063543249264975673640886427671297464636683212026536021770571634629496336903480395018268661704648004667797533405412358995776031696887936377837438801735058679224770823023511048081983405958382215365547550893043172387039991456831368158748297394300439494160657760153589983783498236843858616684880647079184052057134313820777683180507912074775691487944283334633582327072407690754752806861958859260600400381991313680530839070817252297821187665242204955628477691064443521407003659582814800326158794359637064342628879534349194230896710314234118701506274937549584942383287159955697166186985059679818622138330108965055579608787566549820745564913549622295589509264018701774708006468494212529104498896863162869772746418739715082437195415303760936274711130023870942077748570303622412921424872363249653061549989972944943379727225977811336775856932190345286364723899333347825158091634491061900954627932252137040750401197025923527987669878743116928417258800210147095373650442688019575380827925755353887388885895335061135188144726845249047222748680399418508981184052761832527607760433729324834367621220998209128640996588858093661310207780456733569580286320421129494095768042144616002212056814950406843628657822986621951883147334766387969779428089725224774640797919824764921173165945253801029148230603909960491678982676408021702748303564681594128293353800305485810671673911547711398779726061834175963174059539848407966621437487781962332057671861573793375234760429462720615760414808676390245504474068534220481786248101994484273876960403404546821969618344049647234375479709181226488534048600044921112652233861190267636619061277181151415758475115427640534998005023455549849467894375057202506004888608984811040069793126512891447157409319855183385944813096874095177415176162480171464565890604690671783858161162070867616702181284401511348114776774131225565492737026368334963238185946032868998109010652278495204639840407397059207593439646762632666232966815205539425542811071490338782306524497788338092939800462665262799512637471181461409135028027838469121141275107893147806947165586245530168295103151674346928403831892477872698443223780286257679968489690489199612866096854429121591335977170360921577633611671833037722908202308962134927079493958552273159557341578596455187216109696189378748893537973795874700542314104462794912252335549870799769440349069187669861610664688283788099459066390139941352975866919216091639606517389957777046538303187838524275614299000562900948701611643925119229109219785980316276439500660149141520356559012357739259954102474170568711253220130253391820855004552959366620806361729777303503616840127967503700109150322740140089279664876349137357722676303580191754368983234883120625029652881590243150371489575075780906052947475230278128464608087138082827358352800045911853974911498808288651498870960088474004497120305264665122927711826725652734442212866175213142210041498374522766480275016596372840111477222450910578601902997777849218799007621346185584145161347358345090662798854840301918911159267832274470915250094464723962103091701612608875574034211944064131241757867243284343543890535541399605744629775757675512283918775818703407224705639844135555895430407497272345649716446745798431989034279428084863929059921883573180518309876735704407346608691420029819176630623321433855581601733057997102750104691681536920058475978626717657060706758780061332288760817356464128801128441063327044370956185322028710960101046597572225177674251238948626265732300994605124443816864068857402355873158047624334304646465951779942403667887830300584737214505167309744579897730080106041253790544759347168394852430079129813936479879752390969168029402930156032454073178496204797262578420412075495330285934176843602404076102000980211182914337534271018033991355881089829243700115022761541952581034424918497585751471796795519669463311142347500247931748770232624474492901103338195489273223870409692982674553532292838479628811155385040966696714145830237618379254250917916058880256510757051740904024966947506603506453604286095475913796370922006554366303657995217144693814776340438707218615202434034534086557982808417675382648594112579150100119512819993553767490716980407426487399088627938398547519806767770427652803460053154847714957572212575725722971357614430247953916622830978103237444742889529107573218120950273411022646090180457085370483736994732798056252202085514255155468426573972196576403387541028950688075820280598319969814829310337691753883470251890000998202497071064988609851463493053960463446500789697414020624802579577262886060740088687510003601938221411094792089032638575400913356091657784340382223376786642446439398221913120489680061502567525147938966508094187270871156009561757391030120107117421766018689605705001517089144650617471433642813209652555682030692681647069538871011527127539017186613344169811518342015642580899192959345192753167019982904446014039727361717492957326462461396067358719865721294679904899642209968351020025253332157686066328185783051858084286862958123094261961766331495111793886019174632697583505380370844716201569393832276121363289291200702117320013631158834117273698247298137359980548267901107878267643326913093243477947778971007459331638503444745969315352932166756764982899735547637836181786919678176581879138647417060594570589457762825207663085645239835080581638303934976098667001782345840709003925001283265906319856882799315097373974100716211363333085897002496691254202026196067370224233661731538585151230011646950561103066270863698115245193082173085804098676130260695747935593818121129462962630906428220597232441768452110013630254447908739634823253901288414642873731189270879901971208724327690543813561196303989677095979005656287996466315587793725021473332069599085649598708147595356095237556117809679306420666724357942888310745898336452182905714957358885268857038680390514878875240761648943928325930781411945675996001731832741554464142438796168609682970763838370055353576283597530196548288923716771058335944516613424508468623870862753509193561693286618119423618127416747337710843788995292405307183810758060563056375353734597516575191411705612963510536143697825489730981153399903207049535938473712408889042460907870111928448518201465138021391794441072827306382461563000041062761853044674705158560917964732243082037067934086918565319392597878201658669765186490651523038065101173337384291170702135847747004633260152934313568974212529795453704850798087281092995721345454733134052450727496633293691727487987743710777649553820435845365124003829691133145625439383420897992353922903416283458277654761095593662431769744000980974996695776602587111883115627360285387422533142697063621274166466002628505316890810668058393135618167625981617194317576377842298452560534180809395617216389764208275719411819235774716423472918416574816948423198775222098391655015607114280054215538065362403828569998116684492050833573101657857185830342286277739753396904518130240763126971416029815259452379621545458850649867259368925639866726733481201173735919020271875039386434839029096995829926411799053211516930695830009569427808962511498483992811593606213127414105778458190398296344330701576728785450740393052477539454091829367778528900796788485600808616977987209386900806163163118735025309954963999486780846878363897815276110971105828641777513527747243177281871905711681508711947294360264276895999315004561216565638236228940732575710875361864081730677208427622756302061363958043848504821915319772297978762679953625452651518674437115413116938939898727066315846689570244897523004063563378344276989120642686834056973877914695862709019696028995532662806174057630713539011422167902556918137381350965245467783468815957823793995850719111653049839716758030486275856647915907474950061794377243884118590582106298973084140661162970568577708895015670720077114084959143947265676465323808140557125163967537221044353476607298215003797922066786015356582918774398157366419201863008109719430982680354056572377532485560679145914697077110373729355090280027124743852536526320184828157217975082475918479623161910742822753672507649912756739383103592206521783216780982643690060989318619807980341678121541871319405003017494700157844067603547230475981076392801798138886360840007572195969088316906769331723528943573624086659445004089948915859279122473676926848184540880709368240236377567382339866713687699176130196285866725341944766478838620697719542649787214070942839088662701514487711336213119680485352422290929684809382138404557843895010687285971944332574695841813745559639398030836236638219902173976792969156382713326312963763713237289162810449866890145763959933004724753134689697456900509792053925901798920416567975414597190980098289771166915143767549452690080688737352404485449593249440036673686376965614435540232420665283217124329243334192135334354701570083075989883174607621779269297511128522348477595500633223393790442031388031727702555734154040954881890712321925444443262288873342199129885613820416740885897576022189299599614580318668539124793371776606799335781483738670432388177415110559908506266429225495393207412791761413425648952288051935074193792274684696654945535101532535817487838266669594073711788048894135279669774180756626328295289930115763353880316287973882809684209663681193557758099975214766478136824330909289268335247443002899029845673576325878038625106711609044947120032882617110709909299736621828229822753210124880994178214197327613828012797256117856648078467364391214689942973655805700102496239999220760343576996829919724867513431114326643206804849910139671692097137346817213133614638091241051796580093933202489544128012207485192018980399014299766739182322430327488228983791174241386517996408127069929970127926752215799788461479462071483329414443609721353960028870106223209652607328909189855761445373390743958294345656407557543310920730641918077014043857705556928372483335435589044395353317432761328847524650687030575303316128327997942276338399750371855109111867999594123365039213912425636155470295765835311088532914175149587452354388587987990022828475765499881122362029323745749564205823576021995220293696724887451167921130048486788245289574394404453818184085604077674937112034006330039084777673024549025488002008501768413532818612935670345157307998614184626742493535684195133445339666588467379659168987195915315598231056217509229705167674904082718102558212435681798691863108344230928781959710386474268433539997184024478671074775259035382284875496522955978613361975520798542826730850987310697726058766424855395561883643276516481235334181587834794355816613662747713086277076882895730695826051634777306162709040461020158333115019018553658668243267398757269845391739447289161455405408573092586862796706214963690490799651764096283154986742618762793996541083772756048307656406616973707856401382499438586432538832111370078480662692669971459298725829327178437481663672214376306756259877345888281024918245936355790374025138912693453725321960877178607917267240525089269560580950395153229163666962719030492505502930107123451796304648730963586382114786955986795887470874762336993038175736997907061231964009561810301426548438345651781886941943927805541501352936614546670062132294848828629226293265544910968351531615176400626239660098094819122715013176817662276936456757945398350361709398879860142759042621476375709052476863689248288109069297503502564672444440336950395847693249331461346754636285015429279573409738768085133231107241804522437001946509706529634183821849910263137371464132021130916199844978536607444097374373466315898532851370079294248958967525108792700008461886706394881903382529333555419552668239362693892840281117577195806108931318776126928263708318189131989577393804493084786921015755324507052764105673455922264523362577716243855835673286228970434204867806115354809985837636989272768171167331458219419365172796680662142630359438408152138269398608052952140162106233475464882561442067708985487959286192877319429350571794853470460737613554157409854992955120965504723392095391381162043289936791977359366688624072827336578335099329119897410316034301624078879762149345815294524830442843184603665192848040370491174177194915653908000363405220781184490272470787428697136426076487661732162677186627584010363209918273524691484739954824866844747025900834734294060466855324864498428959936429228475478142359954762453011559635621432172568386447288717939792422951469310172885479872487878623716328621728673826110291393945002211852823723613177931308141183682919842341167155316030659561027028667138095745260938288841522532324900240422425492269390360415843856135725936790283779808973625110294605464774629829695963235009890802515956420814975451135404625956277264970573852723434860572504068281609363845494164696581859341777344854608833280086537328614264129346723367577707027005818172765620152163377560290869023162430735728457597116564337000752731878679929537261149919690831978740038415385186473273381856481851652127273330825575511583738889513080706910313921031651159963651811121491199284853959629528838132491489899656560830653669374584213884651597827968515681952292808313335552227338039905224274059095103293346686375858786335098714435433510025707465997944685011654452295331170398258221519495648123473633751643404499127564346870614972965907698305325002537266978648482612162560977070321488586757128406196075899537625377309261918079730189690338093332009894077859055983130183178908733386920272222621374265684303690794299959901964319416899990572141123501748061251524600391643533626854785893101379974223469897669802772125884116149484229140110551389059713159425815655671467071765131262091772295191289675153669574215723078522034389871874813496204833428505127823418472075828922896567857460136097898030472385408432190075074998612737713069714753162795668306069564560065723244936896136505509473553678761702088209956729349763224544902031798041990025258550729294103081363150023372795499335913866342076724890409381072872433274865676030313956970558403700716482282135078732179718738589807406555634609401992694138232136259228139318882163917813867071240249729067820916053774163246489645243381309490898940364557328228539681457741573600918533867034932859476594816262634906062828894880003304406243854230707898655498416372966154178468325995709521816596940786303568421138793467738085734505718898400644811710727613010047349494657474199928332509685174320532136253932689599255015409182054172507569884254553976647993131111402547389989698471258988598273481432373939283556390658328496493875366806968288796603905515783101583458111890361843004375562941527702209730610828655691382299791455349812863147961655038904368963643688962739098369166495712896387387739067314032811155499787965419703731829692499357050878335621185679758389780136219417459937972580493840879614654577041712424528857875174545324809169896756440174653844655070999484292398524393581239665765261840586417046901185530913571289936833686749850108055746157445974544767295852172465060662511607612160259176816939753434437693478305978029891670947476423853359327842283632405087580646293157715953430446346657302327652138890105137341759533844705617912283229530370980946627759615450029590279866954790648862240472693748193058256719661186507626585330079965060611721386258634043848604223548325545996704179806158761505680034827811741089362668438336537552160454933185692823372510950614146295997675421705247187031357692608434627216975352470619236559897383477765911557838561872443141252673874408455483553507579500489998907505050798816748408656486732539808195309709718128974374427138556556412948218123143704433665499730981184070284560895294431996067426750930325795256044921780784348168141414266350614612665904854682217581356182141327442775672347908873631314658528375829923129419077700050058932014654033944085001219748239577123184913967292920661976886675368236299811057197558770954643357551854138572481837362016017357316356647645043546824929995351440073926426656795447373292538364267632893526798889104556451957177241913885515646784675543592894662614624655539788921666932165601646829545930863739678469745184512667414899936212788669669524642642702171764555708366409039440482316929884833511467387653090938405862582155137857729777214918297880005840339794591269428016556429443250575071280452414259538799227718043559644705399267942304070781404220324174217125586484511425209558294252172559552213706542697298746317039599187326002539757005535156920893804168884421797821110907160933195484289268674276411810367731402860606992443339326643446002113661861091313366273072544888109237469498755336010804778688712265273292154502247647196130247457842941265418198143365624548890684750021255208245890384920184798576282170734502226309670613451709098375236927398444947634758278031863293601773813644506101381172080898305231193232660700897322826495329010449274729977711823014800614408958643440305130183431053715677328809907503134318268504218894864014690536156091943085072013790456265114124012179796596597782964620218434740247594874801165467047672280583487412544752409266925065328099923700992237434161615573835279161438373922048692778258237021573653667099392985758798024994301270563045462198815386690351540897942264520693590736019551237375899793198230204012742064484049087915113436726354654032216319927460077382496303613879412534445226322865164560202438468385518990182936111801431352922579111017322890561612323199952288949641852295627545948305384944334636215459626487911588849388100536070293264766591666564394698748742288793813054736114091018321149179615023250699068034922790707544549493383863860831528314665862489437426243010938742030744173631759408984239166824297768752007306530863121032464970703838143455096090983103603200683782931522898905569588771008121868078046155152566227801855379382652142135241585705693571524651391424121460465987215350949899320257595883269680446915879646920757585088573839938550083113365079008242709394303425457881759252089308714135234012170275420826815269252059396201148635266993098482736292624355287324237986869122440665514527057586161134100516174910530322738519575859933120432636729884076319094468724546874490475215750765556883340741609224561150157189970506071587978972838903122444414784176868580811892625590799710505956156805260725242839943914242490780249975809118383277815850461392897462911058379570146761763927144241000005506704215616742252798342581776850967479144572965330198539176343874198307490281149669119315680738045389407097034239233044116012443498640994069661753723780323786729303804049232097055331411567831081615663849403384474591068976853244637474801394286673359809269976972550025847988609962875111740800679287549444437369035930858299682755578265144503884942390026680049178651143361776820331581011848881165371231666629430903166618670897839397240506776064364961243021982228215657526726881727036307351991833899461458528713450063031358497481360467033893531775296972783881582314828672028357491932467804517987844526442845514814031667772624880478757960118214727921036869085840638630242727060918408551727938553743879745810723537098569192454550865912340494603803085982215750533226295773842785372653605736975235388053452601663764627625867196413490621505865206593817864430234725634525989075550833895432833512672580149108615893948708428119408930352699352383487169741735768852682304464199230407489604404408214034031090014148293479026562260800885280097650067735204767559453307325320217101362612148275571319108263004663333202529714230724327882101013693486251402045241483797353316538374017983033411456424857547822521406673793026075091792756506559567725361980955843743307744816418776082494891517417131828276225328963213404940558833693337680769099724937862266942834215594935733686790508858452701212873747726110852170989862487409204663021310311468849682385524619888881239884891977134214342502466506661287395249109379767138470684828690791400706278163652053562644066216094713711876366669909447205070547738606048824628144819357980485899168448430602169529160234963623016499105468247318162219821162564305973917395691292983041623287157292128871291425762591266046367884172260245409487644967323953225606797821440653676809802505746205891138109221094492812388443737770394671447905228150564943091071644287633233544819548779089486452250680237895136949910921408147089430106173740792631275571319375562801282575960587619287008181975472398862348768705640761248452009202282271367288485064205349807272366049618592265078883585384756063049036621433208099315120464950523810353632932181136991853989332561556169642337333202879863458521475550807058806149176045363834939017814624169871047245048575116952228747787594664077254923787634419093643648917238972847045303929814495337507865500215983800475378485230316072599211734284741254183808838129237575414566894570554522634594504985796081260248939493511923002307880263576676446836791616719717152553101396154332774002357311786334140193135010811149845416648444224358156292033104586986726895324779711912938748900110219355772343215563979992789749051627956473423213560736352622530753539900464973913964408315867985291850940464465863316490007569054919910415444281053421452402412544602162528318419490054742891050575950143586181713177736390707576832949740356922457397165889933359467274255397845046529598074508799882796771998133388911440654339496363995621275632383715475190651718019749354607168759284752089559060451609565719938497687455170887817617860377403726891652024607657684631261669575012417877138844243911564575423170526941693304673467531228137265975909526599892038449919038154242326137922707051736676211320234505146589458954573449584889857103963114818989613281612802566998274271567637246583663047341770575239327778980973435778188997374369008085675031499634836185865618256256445448926215735819191466322286269407850892545333507000546818793871544814644510874843211951095338035689365529401188570354822128069220548952706331292936814755926244672518479738645112114943398546052931112728537745175844260022724586429769505403990899796754773960464200209313697772546863369812228968012921531239937838328107951417970911970458189228918370699664211657068318860582729960174287182429497359360587656735204667076898943025420926450321054283398884346801459335239583925380296236096785390784278902813836615928710118758168926926329020989732711404749057429496621196014627575939540888049661124605206122415272800171803925477203514455299093250910091913751198949945906495230362818327588823489427503618596548173510833698665938182073681746905250344118536260555506692206119617672419919279716119067512489765898839122701461873086285548996485541317860431284856927370028276053718641044501620917023278227076753382582152497001543450195826821920777210955131690591529622773242178906431025382136028619634796098449738794310647019083160834001977619720881640403221648006292286780010626508929008592065553884003134215622139099279169211976612738596723924103486788746058316729573931289214824418818394136979908806694264258676136566424421567146329238796456959104183894345150351001413175255964024525234693833254932175245410902901901424225600763695967251496086511219721675401819730152349372070793572969247217488641444261905361934281820733633990004244393490190300675267424956745255755812630954912251550537748963581497265776439953070136329835218629533592835047950672555797253446860501725136324897068441068919110569504849434313499630669068111222066592601478097208703831197355643671419058819181075539028631938518289719749699572633941529752581784971773180717836024555177170919230159501076459454869055309717592607139739677393679451204028335635710825418601485816242300084241674199842866008565484608691778230301712574758159296886348551274943415058667706200172773658697362445920271795286112540044034748790024113371609045439799008518380211497151911337602275085173441303874683475435012277222573559879344551843152549892818463850679900130647770243564481406653155536018701995903588011407883245085778982094100515869105164161443824664568130514064229909986754682404484632777961939862303292564963192394512904354998407679972986857917463289120406601092074726097006936498845824349098880819717223434692473982991223688490094173405864089059062047918240514707309766361846205428222714521971695810305298636604685000425518492635004868594841953252568793727291620948893930400875384773118064557395369717374578483466624480425029780938525794521340299901693838368081018139532314855433580634644734053169840080051802115525601692146962890873732831858674506152033483074149822988903718385647139367684889373617349461911878384454122039511169390963853747043398264076120446884564119787237105450749436987818499960842032959319041265278297851644276964157880325461053562905716570576611706965313930793006556843163736191500962173518128403176992411988356765156546689673227154424789318555215154305019191939523249296182263897728838978859357974452158419310800147451765711361149957018430223697470429600875760850052439342182429095109860496391035916430545623473525329734806707423180549713312764283662393722692047296140539599232542445563887945309450055165729351505477371396808223479863017620199576076769566117013837691278317055349958690532483215317948804394682706390056393308335835410282597039283438454303156264970155452820661712220670794242496002469937102342359726798634457085592344254798722788694498382471403290455345576701888130470320059608298366879610615937838709438473930868775219885358561272450010486629324523806652297736868207450684788663761256753849754673422947630895979625015528834613003035835001021904010262318105239365934513136403229180220384865048335112532064711642120910924401140068219379746329943877250224323665199330018987682609034928244117763711848465886882789654416450839274466536597515000382698304184270687193576078513847404421694600317552849992844031233008973550712229216620612790634314177701499133692533858101449302958843300048224234961774720430539907961835127469996910795506293402093545749753462008317652838235405127472658604806763136376032512145902764436705621093593396654814914271905121784197258974825717293187134975526287479262748194405653535156711926908096098922288439687913882887878080264863131136460103841564017541464992047966625301890300489499146936891164984898182769720820379096176187546869511825333625784131399687188605357419230319812864180628837786668410314922065672022952702609585698162320352333986664033759384314989801357025293337169467491017444227129634995989771548768554278882891387962127066094107108608580442290655260084430575761617046359680403944435529507444477916751830493473958389447370843490133389589388868693479452180777411460825654209727056161547150155125206969767432171827708048173284539832757365798395387109838589995851270033130996877925148405054722956490464869190662382519842428152553707825148531124106924024690673148101265511253989910049019625561939054697930624560326902650664955130991632837844239073093668979442674158174158791017484207927300684868826646648980827494977974674315888283829949396126655930392955990213693820737593161016765340189529684667767836154339716220993392362485930410944370785677404230019108041496118326348843480005923359794214674451239024705629105303813455237985794259203073750253871190446485859240997468842881877955245076979030361162323822798717737127055733413505739642038842406668014374490160795897615760548183215488776014207473608746439319475557766438355206920747420543777286965803907112882406104188748444738701732189857062392553258643542161109359606448550737279776229228923744179803443253469288252774951073741824524884374289664232322855964135283222690488466132374976280844043532039329063857799321544024690634979654085567748409480035604728959682968436897695734408525142586892615242458393032643129904505288881888563664150081544406502240406902228293525134099559129752445819309504779012582311645965519741580187944473852981536469433786884272031022483591914446950050109735053060434941671605380054896291547147993277992505450029881471206685936385718417472589090326264659534296659693306121622869967685103565041181632143863568542935411396027037695096662964766690826651188305413000596132846642741141539918906887949688637059132342677479127365258802751512063330629665774112682862972458736242332236378419977058006014443124078376855645325591292978624656671580351697147683674067772144456806224768707027278421971056289348919561473465834488504807503983039543357071503336819714604906823823056263005339507637036421193674157974860592355347338226180053877476209714399127515457999449347640128710193477021669033123315911055348737905521906470337622694079058652788075189285617076353528011958735413351022850706675410787761539182214992535382625518212916412386922156537771598176683351930116216469031700143446350948156977004718115880407790241774405376179670270998252014130304445318482384752132964465774438428166815922299625378981305967186030853105409500219479217409878687129576982172112817442792057146466959965503384742058724402927602280103506155949997733891823220271390444135258457044081122956258845110002914691341404616552582199864100893715305609918894528384975006465137572681306988889836294174958878011264552528521200695847395974150418744515291004936598217907812027643005971478364399163810770410018825010945527034230495587630096921474436257590568590496199911081829224824725538345681441176427608902013783532333292197263623466424878983698216130886404163826640021522747844382012614975154276293599907547791140423626685440477396844046996295952780021795331411378611570461761413814945762304722185003932828928129224050701861957725553275484977879347576899239577679882842882761192662798963901182863209949283373734404516835870216454458308452237842220395390646066341645875790024816233558070824496389058816312936928847852686609747473201385848930491242204333333486895210075053925066087405470127819251483147845461919898151760769931168855275891753339201548827014616560732796709446987215354259264585630041312776931840855856516656022127257179577036671164272701734436858131897665462735089353142134751531684287485663072563504221441804189921043617375617220945589261492908413941390643034801424294720742256314578029571569927125369633034063593131102447137514009670860051422279590297600449408852380088171572999487164986281450575374982518439854396486068367926159877766921399619792778934491876488828205717933548579655940381468853054469213164486841348617816577906539926051353446843802244023191431014581403735186670353754427170542914300882723803805952932693318900003152553042208050587232257012238401124767693675543090863741029157718828873529584671078320962178730344188561817528699292206338549133547866860055726733518573166939331444208594866478601446219407717574579561509645341682008766998681111627379981730521005486174704268364886222065176995124371755455064676091993565060198337582466187711284300131589639795344535622936973987290116605828468095674927953572570364650100287262582326135979318991805125999146048190375153036650109102406701635291140857832630783682901261462122292441740138140260747998084777197145512890739266427328412285898933441865605227488892994672623585263821640567042661462504587413737167616786035514808125311680794676428504585333996943710500259616157696779737087065554830735710952938268138751610390835159393101156685758697909012001996201068334407238606039868435862128844973531252708961002370111003690817052547939663232532288989222400382644263273912276990120308587313578690043615418964992930874221823976282618019655458632517582807357831423286939634477461116481887270248523387631371023014184338803630652300261885544957526697462960154009583136578641689012471617648607474028469819790423912783514663324172855293613913927241683043834459109375639435510078030239010134466179554087261173389766248087279867880294602913009809501954652997802734967099257664009994603915193927797754231724223583756365434692126457836335390872683707648695886776622825394320440028270372215798759713797325948609769701576932095800812855086222713017780354266519966113688435577372100754269320555347051365379834723096005992354804831344744403653907467911249986528755921711802265263159565407815725616655310155048624948244411196608032894949464626854688791826213411645288317943350316548236774225554322617982857874217691328908120922864575845681870826233779887375660695275025903174742260612990736881336417064616975662344396202544506597258208415551593580504363104457315915897898603028509382898130587501549547403743005109514339655684065145207825566694624464097807526147103332779680089464827308681962195864653710825542305243148393155600241401483126080693446655181650931145675467385015240104897034118039515022577533104986453954351439359523471636701515918703583678040815428630739832187412844915418475257960629088179074631347268416266387060085461057865863378060516307702028416094320837444798215525470795833848084682767014517656378550050190784851566993522621522690752364022364174843821208839910573875572178693275264126866641054387620532929322435342458844206733752898009397326093774020125675019010760473656663409625995575230220306407664274307288884201971683390815783649277107665140968161575804160178235795650894677297643326940175295559495565437324698826376860132241518253229034102591741080030958497727111363451558914617216031768415626372485780733907835639794254413713392732081674752946249957015870683835297691114231853649381472912831235776041196049202959112003694731738030748845089089981977343633094438490082425720615970547636311617246579864171959829688453733021526251831485881768209229428664155278376920106126394202557889681360613425055206921217615116281045962393847011756770799573861008847827500808183538569972324231017616436118984159501290254414620106324513206534850221716644339566595806801846162592822594936213322230904631960594616132431090218238998777829351218946990078680494000708113274407844373732257995298919763993524107804566023238988864003869243982897684148869298886315691849885721717355871198994353217585173514246001955177524433045101527171167204393857145168726176837470330070616744311276729951201125799805231744609042068311326508892355269829524017545758892206474782983079374062347027138891067043477569782490045082159060310815975183781917149643071204097253968576862803635020783529001372655053356552054437043517139384464880484393432873288709822602507835553295731261016429343793514133748989342374039847208243358186168514318344241557894370250745886996964387818064505929343982905070918952691065932404596612307405290775733130576274731355741416568648783606720074433756137107856524355134235164628771213365598555710747471532991581897793427295394263378566922178192240068543488858772543900185139644916197677739135421665644589023170410809432304596526337825936512255909704524400132843114930790318397208031409236884013948337795357621958323276168278577648028290460526970612655643291528359718657796223732830222850385608546469665784497136106246259155325227815783143657275068583187716316542175952813997915555719127366264312390934810598926143462437004008532239088066623554182324339826899221550558798283358142785395053075853334124551143607401397273614222975613707596543029886410119902956836049888283649351226929384782863817197942578240208660561839906023097701392613289385720886110835718053474650746808455117833916979988327091960079057641110413076739588841130408679744771473548008558490743520501125833408639383406749729675638494225416699014605127878672228105804591578920880183329494124360440332165083554746731843586357187152623042890963677349745718080466998147786662167614982345518903227167563286170537447215375899937997918056807737963809046471196835077315202353229068886537224290470572318813635293859932531741793436082268848195149690188390209931382893463777754426811450245839698940953259803553970369777098423547464357006196872344153356153026744905583689949650617091124415427273949761589231017212810231602277170475901926557568030367710699606669366950131607925398537124243379441407263325337384836386396877063933382126064789413477005251040718449073864422833849296697459120384241099327870372924732718355152838659526755685753265722151263907327205299894711625367454488574215744046754358105765499956716835790167743369945186960968428797384045066222077546638822651663308451786458854814630919921561509200511150410858410322360102381051563653325612113028772205659208129259879950200340021881772456692742290551195195240492404011225120958870784497115900932176451682532629063166126271196409164315442363475950233152376028490940008440692598520262876768566944583494708893488179657899604452680602313668602985891966854802147385269574465316601934870068182746696652451525167695796220967615172334460565362783735420420720124957103949534665460897300784728058065178233683285044882095605990644855162680023661911955098139698212393598930393133843916531704382224476802497059127483812202502090186525393922651475162498081259287256758056220357390842391129920865524424636219934762379011272173498430552872643280928496016434559964324631008120898151386268102849179837067496547337266426020547048642859444306794150476399085274882482042128729595425361703576533948445648744555732073057893215487768613725882808648652699302029426054845130571516426542040992520067738624580307223735780676804645359860459080189306649337443900121431522573336096362746406227714308722570660975448452571754414944674658241637241788836082148930724377916432705671278059974319711965419668637626197929259601838347505636298999029418396672508301779671593749316905447712930886586198291620041430374353864459433694622075544848814442861479284832406775506830411747639511344828271878997869338162792881894986508759138656826985894098480813310470413514743857428011140525574219350093085015184268059427881788252095682093461168237671678530003385065684722423641573082946447102922625223338876514777181910783254419544136561869747509077621654250444338991590574322307215145002800924677293812130273125671602433274292950468588834068944329354901795938776534587106866689929026541990908244721316631772109943094458467124956286561162898280614598304099733843888121084556021194017557318549511036710968896610708076239422649707897771962763523465718873216384849566552570219973018586922218722011119366615542798878218732447512810613486692046720476024969129619104076905106117974357807811538432742016745078583178012298950693408167723801872605304450316253533799957055496100229910178197985480486235030209803169086594702069240009255222671995100138544568912006630624770302724698646541173448585359506050916546930321318829826530650689346500616273806276173587880871565350940559480908781438505361627366911511363402162335579113935148857536634884536899792067455584900383254749193365871370692036493645584466929068474410631920393916974663445738255970859366882551693496967642295591589042573332756210475212084568098805629378889525645723409939406818935766057183937935959297805579854293269758027629260963744241747555292935626930838072155421899780247958056736585117648305139026539025517357436041426432423933424438069641134606797926383038020737575536723724492607938670327202261589938600882143214096558704261709226169360759647230541623596791265549748350341197691369905319597160890074094831893924478196369612915256821596871320870076628977078662420913395302481872116593035372207247163006599559240871972462535946450333416025291163320877789754651351079342366677809996073592751904762612439293063821816770638759158068555967973503729384555518869461977047761609355099835858540822012839963050473578152194016642932858697546589832788523845014344833783441713743954145148889519921145560923589132735465339496505698287606109567448736126264580582327191411303250474771051112414972124904446439687034162073353632899721982526311388244735525434652150480646273888332904091636603016298054539855137071523239242330483269661846427131925672097709626110658181762815392271690026619801510510397092144782189276061721278014865712424687059567213479969203450269616912051973059990175832580401753714530570894768406368433397142441450691285694089901715524597265506662111211713050015193219338772965115764816494206377478212092185264927885453738049379979227746995453768356829551576170905792080046555152060421435205599837152738690381596079724378850632809194553920288293140829036341520120443270211711053470515088677620058678456390275309917716864790902782401026618863755172849816662584360633715648999409557708055948679712454251205662386010471242572139500230138837163078426878335336903055802969533335967787199246388770249612724925065509956780442088528973935575386153412237520256632308868680373047219112459091711354813288775144116917448456399326702672132375247732496949043818881765109602991796269510009257449204803637993587932313423512211773413454303867227819391906096497803242616347005649474374051103349605418345730436351871056135939321988256385975366332499372214504441344955290436347779945796749775030573717864943829472059559415897593370018264865776595479636362352361160355455433199333584601388366173285812809648480869623888218841230378079647973609474726313699664265383210506824156114935531995473231964953111674000188198389870574592649457390603375014875959656374789094365039724715022397820939936314344875732023452368262841508535454301924743632708312032359220195710508829482099518092440011091945918043574134997468074982301824367747395109097283554515738781123216169192819192235249364114695785613647955534262709579912898194690245653960488869337827931014310909077542286691527376217162368553552178791440604112293459595068480209996177011591484701588110265827799689531730427884550964881648800190877917525290827476112283564507435588050974622978972871054043495233036521993539088606804040609274143138292252142914728079526435662499149327275635586227365724117174000625779965547168618859724622160237453841002395161613955751010785097686277320208261939513107700986109239812245957332793645349675178443760383217666412403867055496517171025521464739734622321159595411306790015667890703660151986877301226983188891794887669500488275998889208520031265954552501972995925059172559052215536598369763266347271888764234854570266935622924234344959555217108889542203121882716413298489875711595987897948649094729195649431478168825430608264098317932607309539537193590603225153738631477125523726264760717785525594079727304552686268577795692966545617898689319829922795826928176678554533313794366684107497018111684114679695322195736890490113119610604403135247779611032564722360659802460364675157117960662290743225624024264187369202409724223512462775631579795924667021426155528750321836996601829948082112465263852155011265277283978982366916778379798132544029085534253724462042477675157744126910050392006011590203925507888573453157061298575955984540732274639949410196071607352994173220989599351077384293636513239452235724036519720997203096492514421602263278715317523058293295794375733929079075968824992596023764777358127409626985276915714633403117752543505421823633217456361964420075603004816751222692747560246452961512338309222209101359586165430226164018274389980864420714824965633724261620004484464411196895227408661390468172330155461199135478386390180193637731897901822623857556912760601049575370920047407319760383387573170596961777221210539955111887615902962428144236941162356051812571975212935486970073693352617866062165226913479541859781383249442445749040159938265362099952153109760352388048774825365658856051112014641188649980311277807443507952278350649512692035582147267789737981897422035835753099304460384825546980456113554326374557068448931749842181425764776540243458881053930404445862660235690644024089468145951621361677135123387720562030512388527079621376537661127114098634622927518409898801219623946517661565838323998628993520197614752309663024722758024057424734282174919293130188087047917916642246315407219976937897197256988770823850537976841139989275998181363826793263215469914485735417182274225146402568068439118652745751246008788875294294645584803824484120008689311032161556018841455580575859160060592602562779727376477638872909171475443471117344134874424429323741556478842955645667487755160196219941727441955418897781570626410543045719487600214824169481331755873031121404832341373970623619650730660702361131113160134223916943653752843200315717005053825599897609272625391129942487613841374802543104416596828292676592527765589188880168045347047981082386475789620777502495431855563832396697992648818314262768302468946488505589204417397947045300349381284823290027330855091093236950213529582096986928920111783265481656873715194456783617580236217442900245422410757317578587110689813690144101018891575078322249583246469454695153148162220593265808543683699397791939904691357398304389633158447552900394462802619423774640960757898699326617082122325529138159202063347386758394549363097032042028436179371637263545481322524237103679577238426061844822887588661166741723468470316502125409829671396410300829509030318972389275801190823292850670471464389511622814967773443195506095471891051131582487211107596980229584853794087131747752040013643705552889973501143300274095378525087733206207940583775563285262071792530056716668091958626131749279068360535166218649390267870154678915929144816572831234921442575857806895521764209785932408387609750094573493263218156568739072328150216287444313400322389527945011432338801310184642185844440382647062161902679674601758634057054052967205536820971925069423382843183214977701184306104540527696737821700250628700129817766779476342040779223659050972903008879933041334063062967755894767794832266432227919318201850677812961690663792340416828704045711356472507006072722354167085592667213667900541211426578634449938219491858430973878082689472187876922069244401024669823427931711483738327951531516878046358285430371676607627909379339103743839950865203901699658109984486707828442137664931115332310171111740949251653320510463707818281202064601106033820874051765989845144251325794463650023523292902432479692686666239633916411295266140433343286619438824132585102532958411494943956585497825433367229755245782431192798794512302127212942741404536220609193278551379881349320213154656408010833599335633214553506237539923580066712903657057508665813880842818560384765288663034475957463706765642743526749757691702376660161884406319182459326842839686211416175463893155125439393124645669738800666959774494785686940301886329180659100112206670683305882773035408521988671748844447520728006969099518410235511514199781778191724058079222939923660822341244258511563815030561234423450084513444818827363088624099111940293186921193040955836609333164543297764206385650224369020900235166662828470512288770662233525403860163590632704270995136314875448000088221720318899417349537596240997834084206228079320530355787526807473051814952345633070075865101245609151800340732645941053620308071775322329950351420511377452792431113248413165581571676923315756425411988398754608011306623188229614831516327117297345076976603286938638096862886096751080215318414986247481144676074958445518839994054485451054613291265635079637860677760419641541565035266168649704379567959264745901379371049995629649780234255666836549337089103913246815197981491545617044684156034788373440869113271136929708411587969836325690698632332965861008470098540436746322922873581358203158717431037856470667376079605903933947676397719204819215184875984667045240654773121908487101530948995100063599045753022835889018888712139086071827204696084229452939823799970798076824720125036910550014413151664094399277452445460638859800458270661231901963041061173416076107282891326626670144173051861634309119562664157771553046796962014314760102127539509473778284246062856834716018184706356264076624421301869523120171358637212764235101040364730731086983855981185446923779389685251719614468090346413953443767187088105540167809471981360225356379968782110899313614730163840401564452055529240236233925112815681674912540648568998634897979691137792606899071664501882588506842440969804022692216341805864849348981678714839414145687302638594884074165813848515541701158090027861340265574089415257936428815125505328318868914850792541336884180276954394346683157452750800245298740160085115204250653673445347996372422712231022751638929101133623341103026632789790642489825894897313903684750938394197016008875370275768509377553526609245884545996705414797975985089739296268191833218830386012003518388918501711279202081455782301124757992523040871852220198624805466061260451335486584295379975409778334062460188809413577218073100953537741087867091321848120366343761864195544752468862976792396595129326380146856554923843266603832633454147221253026760115234139251301721656301323351805119088912454369518359626640592378246496484940796585977909186778058145541790837858238638367340531452074064167392090892985016540815653729420791912414525843117308814994849150908913203354590506888832449417479843172774523904804373972870308620973235132999802156555028320235525995141758325749277141050416599305248924066851522185453690066192519340422802639576191684424970355662281420180864990250300813799925337158500872375582659479913250436274057533540110020606516314808188481826153062711414390131214659361663432438401215376888488755221231304975369724603193287109629824386939645984677647826318767330865883491980620271052384896343214401685194791573686382676543311513501731380761992461006007092730869580308177118265012099227278237698318047821155408345004692422955108425445565817333139717563064115518344300326071915487868800982872699145850583967433902161585201218751507159950725823093212342967955211278920327367640644496363456740349298440072546859552013683196349585985641022572585571642563812175350264797929526304640467392475867160682836051741555346163924516484268428252941481126306234999335706683980648728474247012027012595534580136619120552315765458521764239646884742584086890736305068989821554520443364387281186298698075279675157174849011915359041831837265661614249653108303085794120321893643330047840138113157156184003508776010282278159226031954846282115484072782479060778381908939925812189064231307754413655592138255945327772983029714142224172825194471245792314097115053487448193547359254606180130863089613969605805992916010364585636322501520587805938125680164076542244524249672005384984729838398921773878952051982852811371364373173671400174365971435399298255949175332693103346368711240161425831713204077236382102155624773703604101753727695510757914252840351649112759012691455005862978797585019212168690025744811024638375486982606655669907840790442180644675153195088273420632382040311676657575329541428714837371472368600301996898197789978796085034620048777310535840283395994152889500220424518923527227528156722139671151722652154377703721313681159374820352345061500550581068157923128927247611996160591465040830918655545833880497506779344314985433019671138367194678187490207298270779871199445961804636462589660952257664145772046653312266015852529868506076098327465605537608806639832661519636220380579262819520573041679633606418658908131618328051472577634832698425467396243120480815084746917502840901340115436955904083606066516184662992717986272559068477411977391767800865310262991032118244201270168628238673543498620825145364645287052293794256584196379792537124909163452252434452845710586992572225740969187514529807770108283340927867074724457993809280463307272553928892739573266816534380898750487574768242939475017404048444522944174262832567257257183810462819439558641300681547009371452197899895255713306024449439420156619959779641833530362095772717596304752334199386211405334892363103526806324740889424659772572847959737479006309042900810495359140514796425440413137098138007969472224223040701193725814712072308832534264993019879576287233559502632975079774655673222056778417274164560312608646004364757331840996797216291077848866805467281967149632954982649560601930721753955941662052602644299079491673259468124745883494128672597653808395682200766543678866612256784073577222416134135924293330789076870056257677440563752776857754948057227900689104815217231051330903394942545272076282612042252580559894105670261220326956229856940437656742248111746811517190689253156730322404032803612253029583226853622276724090867713668007233968399929974681572457649972063094587023147230215672534258502338377585313950522632479250334474187962949710681461570243180122015955237878227921740512244118922152897866258364251224847418376286648176201054665761245934042293997632216253323678179877544276016840955932524840004642989780002267329566720146284211080247173901545707318684534839950933186428675762040222118802221668783425896893596374601755902065001982582079894480241384772171596065169763672169111942871537909478451809471803514560462567285727448832456570544517398018969555456344388450407218470887118444322840331856021501521902218166352973004143524343459372758117990168943873867552519824265039478773207853869117971534514723664744669257675275707543621641091845761765787082706143869208718865762900899345929981208675662703700361527638011720485715213778040909847095534852334279612810299413320806609846830981263729655397408582474755625239923563012335017167678074107549327674884180954601457016397172140073746137578046204560846438824685484293162592067530991545584665065540087277974367693579573709214649907019058506098420914532182903126255338145874631458419112704282645424188307929482922345477916371551628798575362730978207983125864175911399763135472221209101563590153565561815271073924363707662014507092438154918092646031076752675439989953084672372636768532558089988958104188880859048332375131816478386969294914627074944137898690430298806213389528016244292460239349228133354969542834567038856067794403307639502910038748391964786278109678244468674483476750503758150868044633491107003395342407670524174561917986237262171715212544076435245827155752940424583526453278919777105868685965108880656252674994071655220563502018295485715836438852724765095960398312836628476071297042002864530751929394297995752770384731553529467890088657579468182398557299565369379074092500217048580924239774282353224609938035630929450375251391301669725255529274464802740231138445073014172042797639690708840478744210748508833995481059113844461822301042576676135061784919996778524857947917996456329419302773901260409741035634844237695831767261882872615358398493063062489825554658471505044896628598509844130416493266300703778673537007154661841679168348472815047588543918598092426752404834655207186643765347900421548778367829274250479388914909736233956863736072215000580246165862758268674613565754317775812496885419712196571834530406995857473027387606476430281934100193578975559411682924189011426298967455199313246452679563890861183800114718133772564160615142418284052227926675004265515717139242864142888444299768814896735684742529317144141138125537231914102397562941613452632874007199626883598236085575274628657559153152771933190213882795086837702282602204355838702464115049454446958113609660070511329759562187025805820738303214075247090751698047807721930344179410923747965681703689158886745540966719030278928715670279521861829622791745631187613774906851739805640380122248517940342568803269632619908695812849471185707126085798152025813124679440482677174825204477205325258570876145142206780718701557286364980771182943146103582446791780894045987857080385155355526223593578587299861253770523248341490793635493404871612686846021027291302273993523468032958131674602409568702497699771447655284652913442713736169897840182533362612188513357772072454675675612522657741003355988656592717823784155085173173328304933603248171086203307573994032065900986999598115902731917694818166341529792276666326758132079329259601599992145100098686219732446447718513611884026736934839515195200680701939128900754850299857078579746085576873583240791602900444141579117999342046974178216679297396228054224689478027411536440301303780186047949775806692316599109820710137640160226803191970870183842070715416952920148547647499168816457726349546456390715860760788627738670832646153522272842121839642070351669821557889688590866587689424236986650771019428226455046026067681681599656840696919487617003645069398017323513934790815526730491395940322257359133918009233321661659466773433298768907549445829935196345335790018865598626190761706725721394753035403506788223748853835651150563718992443875194897266247165436539732038536078110272957253028523105695814900951156176611380843748802662420005511254319649630929036490727921804548341589690034090131891047949148331818059458051829744571865868919289818214481020856265224640694314572817427265940980916323969894744142481216045314639976717775063636240573446485704486500732249770537410158071229803329005119568882977372398631127596858845019260272990932295631271498965935623415924685165987015834530888206179460929345387927174741806536825776259079387392159760265682092073218700828977236642942738042336597451232262202612645477045981016106307590351688350404025048296766053182669700600212973953838977196248074481370586533016040031879827192670703650984005468909702699482958807256821666445380165459298646410000839005515736634834951761867801516906785826109311724443460768703299552011942407831150269499936195821220754586794961972694477018493119527267353515822692445212144032049941702144384359936573488987246687861746236191834332930399249979514716767026117488779550394634511023788886081628458811205343700400749565672422542312475312539623841498136905917430401501363494664274599997099791528424475643215709208744365651699392908081212730417388770214132064638436918830982240300256079101865828972522221746587193492104646099040962279540828194049422805850646855134811638255297815069192870709382056802503374578227698984487912885421381991962238778725040932000312230620876594855815494856141620618225105663468701344423571678860161937498524454838120949625231760518794074558331213508563120899855153439875072719752395231301219844189386012732734901822303191923045539949295510062876533878522729950419335443446974271904652184688449396950370864288813313089990819357917742621018399105738738665731250446610499936242193569237272421284561738995428980771373886222693893472813030804651153649588915892920017409967208283056975278225622956066399855075751250306962930580226569483840669957176348897872996773444212186767578779994410657037667803407910196265698245362924741896337430799906934777290787982205420469642331378980144186053334465946074299949834916299377120984770691426361917322720873483745392271078146706514058473864232892261655271885293693736511429163701975590825151263468479617246270977199039075761138547842732714484613862334331188980635272926729163963155413841743621115999042275992898744687545950395667855472252342209385065417836471148884459430954249337061346074362411847673318308793003649985950258555973022807006137717341405484433964087260832558001156250478814665248945490800587334392676113617759864428856106765393034589090709244654981152745509040905491662942300683904345294861585104638728505480674112499335980985994734860695362258719077968601810678520494503971950047150462225278579153831062241116219785585397078152025001074102047005291051976701822118571430208157896110150350430531460074526797530537237576112696228040466188077021296129834471020025600239219758836939831652203903390233433677602692188021076363517012863309019396376979444934970147514918072893260734529369638531215829724338533961168041212564687356704869807167685531002339490535346506581832190975867223602827512003671880291896347028590067696605040394330734165117307905997451055273335832798911298489955505167305317671485370949396497322180858013408544584226115469188202627185836780948560763191656114607059643683653908109103060781820408449061318637575371484984111763639002680915212930992131506819988814338370077052445993386657595820116845977821599570899052325567099769382699477250650248974945106320100394664617861712453220652390485765550044987640512647571070295556512730113518529105507975293250410217128679774528720804133523836780893548263083452752469504782950261088283610137790373867295247480369680277588041792870933220322865293414754452638751310676332721718628006208582541236557396668919519492868838006430748382832784073060914219786383193879824575794414942098671377783410726695771017923763242919485918646897311421759011551169467676721863603411013130536225418305210662269581869768188942976427502954149528906418728524638677758191503860114161497500590411234651941920198950204217729692983035759334589819827185733173543132549472788629263089656337552336356337857435992511523234973661714974888345370834702533529962816167174075662970731182525451744918833683097717576803213714526815991365907562164765474686585652309483626063832911667030787393377058575908941394380197072942740199031052056151723883321222039595069305536913230555233832220041329803039844246725876079931741429503374714026088070668185609557842311547894231336849777080295816314891760312707348844938447274466788631125405397631484699761874823957425804111865523546185816610308246941749289319609345452787229392952125938751085627406956322911193811131161463263518744337080601117467843605583918293689396091443994720092568796614129844306985285136874803178278078875701482702441859473376792537906902658160302746793475347698106827093026268248031768747506511208312162579359718345332380944648302107023750625104087609877300711841905094784197279748902281453184927524390888061328456057217669869416895595409529908936813651854490288494425795633752288353764713697475014001085310317613734387300579892079507377656818254469860902625698212958264859575541952147856766062235843135755965866695327501899657368837129378666405840544322015261062329391401521487689088576029584214706026262874080384471608963436838092818090651633730014372387923990302222487102110137161202029099585688701273390306701991505117968577312538190994022200047145374628708719233593962398277209014734051815336209463039709741047322081957856608570279403343819780043392754930104369850040577425668932392471968846677078731219674858499639368690191887902928495867139660894818734707369489423032172499080015908666810441765288338472963765319382847824426528367166027601810961721861817327409402324203885993925301497781992786091692668110408409139939022620741427668767796791486847014751284395134032292688440657040645795694384283387257914312464714904253428139712179765480636915531714421564466942864287115047228154804274799832416642964717987772207958758682261431590007489999812735716924971793319068924876226430227427570459597800078534719212139702304299185455441337975393655891901553637752176423312068536510696193012235541285692267297055111413885674803300781712324385145896738657177375023075777763915999724700643594667465213532699196290901316499256958229505830897808685793647659719334817199071554817150840499945024339252166409235255590430307475775086326000912690070932919527247847736718445498490192068047442898473645176805517985819808668828221270675972148878070985852036897408179448803270649020676446563660944572690468284850319031185095111158123142116668835813369875800155664169354526352031331351487959203823763139194782660357151408568798543456668248202094125978954514687625992638542669357016195025537701894114082991660429513348137463439862660550080274304137717851544170832653818462830747177669439403037364266823074229416214060951847473303967642987930713553697510824857272429196891243670024785113882480742485149778300473686211790839623546517029470962216018391671241096789044469862951298623299020345105293349766637263988837248404933430223434711826718492935087447111903435531768329653534737276331141940670102319814612952409248250446732142844929941843314894395981692877382878664612671719559026532563143236119684269333309412518331256620169167925615089890325812659241111974474867114359638210907941105525781598979380109407346590779234770711302374232520528514075513640060322610794459561075540585397973822722117174609095803377361595171822459403692134206716007916005311853596667514507146706784150394777669857991872498192648721905811491897130333503446670147075858579996016471822054379851840857080403012937244021767605429447695204703545204684748892048052336953157802056805046357165158482700553972733739531530249362030310611738983064655299062318796904277419980399259192998505045818280304384787680654828472527814785801851665369198310681247633761729536188228315680565552997455142311577877100828226302153355562022642575692483265346996491866921071705473056132387992311866547106859678182486880288309717950238610161138798807573913196525852763526218871235240813461178691042867089956945689436661249258026584057352959847416278323443303102744475090368900575786644966981108182987913933870053905151087748354279406837045950760235815536064368043619923734727151508049499224037878703722898116601189122623797884109491021719593202528428046585444683178056340109851339484728980537562609954889737084889607297292662305161842102846824723385629606199380074040937461904739467791755096143648164597498682631400156874331050861269130588376314735199697666914915905359704291618748423335761895772846724089522269310121676499775899659007262914156626600844076890949161087143556926097054526017943760286652981634306197674213431021731770416445246683496335924823993084822026789473345873157938441241143734593921001364888537104246938464811106593202584813288289360025636057411392605613464769423303182385467069592950731533038877766365252926037371419172349898726681983367803576497090055610392526077518116892705334416813076116416719584339891369086073006256693248476008268904785991838225307094302151884103471769335525253274528947719210620412214143362525357619098364770692633749483382148270425770432392395455420050792906674996275660741320636325190503026689521093763132867586106406458508369522063069007726167754538302464980539429080918799535763625242649091744104749503853236526275747240521133496343747608916466308439997014682790435489719258783035252976145750652511066813175490361623715908062958524529869372809020109855084333969530646038755139425704111456095999496317049547919920435402527727571436204333261793815446995575024236117248697347025798461716367374390860677837086314214926367221542749242996050568412925785242803627023129360226224141322939831151757820946919312039402626519696183945757720421176324914849434235951212696891989204015309326376633844267163794654214155194329845975997218873930853446710192600234437877104952231831406610644462408906695907229516615942472371287755700101614412978997577605919026816925926891512102642732402127051135817170110179681259555986887195971023487145441482629344857212760295080782634048283046298640365416544955500830593640922508254390432748319732136740653366342492795448859739023564134365647827383792401595123905424135657411983016774566693136617465680215891825227749461759712112104144991736530608766084512267437509463025582835388330879977065489507641763766965425004785781575861697559649175236970041102349103872077042293727418893168340258934416874469140966664832322337055197077846223916239909617322114805739572564641472709363533269969669745864950242215683294308882700573181356603651294888716571430145389233328778221537895675922629065478710669425673160798530493516394970206165303921961582119512780546150715147329529042621906037764520387256442974480830616930385905421097540326653529238654967866077927313879548999457651927534784824144621555207914250423632819001202898130921229728086327716890542257519883359961286083006313911970721231954509680434410239520202318895356961436714149344395757061495466004294871305104286516689223579460156634811374671881826131164621440057174352192496536986769912849477398037722880254639781877210608401848410256663252518422904858951634411460436643855241194466136203892775574997654804829681837428566855572829201607384140113158453022506309268664939869353086843960412366243647372108316066441809373732199453488757657340681906956405027496708273251976739340419675867000062769789061421900228396980836533036399877926941958914946663544944099223069120660464384205040727747712328538407418494928284582295710148593896183651080574578738669032510475025598380645839562675290926781787009779959628930915093253791945654996406354419344024427951739017262387630576177891325778307322910014167420780162084342748494659914659149764167670816091324159744622515953131243090496786377848697675821968004812252457426262168702094587611290676932668208109230604854485190061331278825969545268120624109863204079603549575756353175983280603548222144557574219521553433007889370421848840602874436203820745052430173056382239844801105524250800237208372972551340986994350275814404991437814662924134016953613067220382001790078841488008623789278739556344025791525385812412912099446198430432597170358234486524696930957556684755162752546580785816960484566799182137143417908211793420879240849674706342412655434148331751389744400285506070568197040270949083409696467492990084675187284531002495081156687095829556317954207884533850737400340000418916882271803107511195358119625242693478774633513648008535805151042809784467605753993862447980744287277937117046945380656682822844983088171753542478168809228286588196828928319247540572193964632764376358297399977943033845931198755314480398311154340115893004308333604604068429042648462426238743356290249927502772596065446046684672034297861845512861872885748488926923767892422849154118442260633664682640969221277336743782324089027690048357990638804368191027099435784815433717039117301258270291824598008737773719443579359404828782241689926989282571842714639586971920391854490056350289072701976937166390248278867036299039708893382292495198007564449403703011813734153472986037557911471353103982029431448505296314228194652723606029381697830887273295787699894387119116122974772886978448804559835277041364562037231059335285856514875660727678614577753715869028029874645968103403409876966826132393228459378275574140037087741936458548503008848843824723582280852196721305173055957989145127829474847736827016789367428691864170153726017083053847775800328533210546116209902369589570725491461901904053064668388945517181759644317203662527546148028857343486521400008228100878368930957091864585651520145893707031853533457572948194150116556969633264344714639996299787620240563471186111765259576201922122922697893793108758332879646050645938841787794838533874168435069403251620409657185490934017979505441139159657290588206186250478692731019888362859852795431748611556640595942527588066074817498655664069628100133435281278842711721354928130528210119116903844018772917536237708159100804669679757408422392374721693370763700774517171442245939825772290431876979889661427404406417776841226246479184279221209129622675719345280671888182264979470769907372745584235061067987632244069097158919783281426966341517144138399085849191639370327977024335218932110121021564829512512342754432604623260254332625575759062772661741112198024360602201737953681939846349167351688220267692677180780973180395032148623144307077737851929266610101791008952838477937605341184868269009677736628423975582452149731151356941661753475431227477285750960209627013799946275670157905208629523668309577487495198161908971224356916650593753403377974020685046964040419256355438638967924535894080856668572590981061367124015113462138200772610910857834425638052890247806491496363440839729653460945198642558976261793649046036212802181570088521366681926353316861225173945314988572568877402650563696355116667545769620604777054435794285604469950272157084864020625883358327902921306170395843401130054747785386226689046583334764757847779480331508810118994842133861668644247472307985122934600166825116631062062936946281061633106052821729053468690194423973436711794303123627133131912161455338111624410645637425270457691511017146000602904640256544117197889931796363880402726248403458654041043137395870023750968297224418795375286894220408737199359391782007373176417024287165060476408795183709822823276013509516239826512946747366853323747910593246810205516081733580979120688972910576608545958893685622370405177858125060995072489220795063737524398921551509305957725449368001804715220962836477100710748089442615223007369080183066872938791452281923555726063378873958305248701647726681713723550146532673600056544807419130821600174825656343597931783476021990556884847533795734328255019750915738507529953636693436360654114436114721615557093391029474846850460438904667650573191591118492765780186245558368922886691635512258892577174736301987747444711670176342708918782391885758683686319757522298521950753819321891808767279634037797623052245214474444260155743290588473148619238110474120440790451174076818656363903127371043124428442049014507252847663172551882194232150046869813011111877016259880500750250330123575609539985555702709049187661158106558173038482139803139309039026992029689374083054969189596453381978359887520955408078250958965679905929914235522874706664499801634857815717129773031301910293636054244993137102764167970087565913720303157622789095611350851007460180859501164009352148224243751147139509152814750450331610216602091920609121675045716403388770072799667432475706378162146895241761349590084747011582771690859314972473107426587673828834109138748587527355096775330279243007361251864315037208740419250555758597894039634664201949499294299215452358084988437920829259178683589083640839802486076814632521318189874516261298081597190680061219942500536830352108343751842381863583553500104260340782613391553326509783386360287231477365684884334358073255851717194607313669956265904277219386507771517524317380620836001521835949550743306090954312312687360522976989312068401505423934209498240206744599163021659499587663144337020267032927275524218580861917609699270082862596256726786836550248545493725461653790331765801254148582389173049919755800306823592326368928972568836448440844101756159826742741280257958672639934635328720754718746274497271196859195038806941988749284863383225043152624726337464679083879123509223481962506359068351515786971596021874772661512262013283301599909271610855057072797735345345811991978311309005668059571223720384277922424804612324096036276186430140707836700975098248102291231180802314493106272514728895731641397329574353067530904431058134031325194045203017304566152434949832967333811324718893558014554237063588670289547259780462190645697356884369042144588810972787565935675721560860427990699328913508250680411618332168848809528591500193783499613254623925992914227062496797553739754126604749687817641840003982460277030884495538512078763663931181091730329967503998767949143827530453865733046156919951048108861451145683509208724135042999755391522949186542023623682091933452719790417774573370075732881395174113325028691173821037153218463701601460053237066271511687735249082693926911527167763274462533404818145119690708047081858714081593528924869158730556585530949121574306062434660660468260768264442598989232207329757209255923380465929060470918041734629701131102581496870896355274528744475276507601780463188177984627589867747654368804156756252468368711032111696939730355421126470896478274613371317032514447959622132865668662592785706867186817359921582378817548524708267219736861495395274272640315588283117112495555810672414102948718507134888337601624743058971004764268255907993400402662713557576049551422550646561513722271925228645322475561753588410813035204227616856707830882261263015185983989619522149048879437914850072130996360822086830428079411137727549513511257671271171454144885498486963310760980253602569670429151606557733994707635516180323071509408373260345469331705719126783671480041751594186994078444973403377328899615271185232270186446419398040123700704410095810101743030145529132250288138596666924885349333740483624787515104681698718167783504097826458249536315508909163485112621427860228672652871560734496998711389432236379222927162960478070127393503829610636488523649903099464899135817340862762248884906193658811061703129519277279867711868692422064485580695083930853387844130713320709801088505302553538361410177060639377655985373580749940192672976261679968323221668566775565347607034650625573005834679309202780543944148753362550064861757766463940072059022114467349400824041919005603482914929074995507486886216945583078124478352020375886630065183101550366258419034658321996065408598419958220704301303972249427810261319399744154018469118997293335877461943278823956889442359753682011609329350014457507014525602229987447692096012007887985259506149046176283037680953380487867830948981033905560422281255285536874001373143210536923216626484054294763621911058940542873656767878063350981635502164457022294352820737077807694986174346720327394405467788409855569926446690688458124625442854072045062234004307556944802655263953501637987108544600728416428057338746490809285552923732261362965141376010713464201249887706609007135528153292799966552979681742744268056796637137322598239782593625449697424495627026517824253489119807584644861894836973093815282340885299420634716069248116397991957684893769751338643635032431718764897730375462697275877272665849324790064845077287776645319886519107848891988052405306415389396925925513304941168268808507662931561227565763550993992366348211338500121084712373220647217815867240524027049338012221261913148811624595070178577107415663981249125106896391858681152188989734416495105149871377987755063807251137947943246527140624605082524588645557712199841739385917508946884918410082075522807939335775564456926525435436558500904819620272328574288733855699078261172857515443454626985735932937285782340521051374621154087045702338121105663651508263621112630232518851849749458539597600904073169604605289762192596871043563649630271463371526551029242594161223448231905825865285770362369188566630648060679109373339937158211686634475497862804808356511378004553787309105261734560405879816804536470564950543216875662615559004990591242186849765071898985371768026345150486204352391472069705992301424098001260232230899142255939561350372233450831377585069682419874608404641551826849173918624548688537542172874631566536187806340569594768482278993283100694079719767706265819356226822009712290605248167236569024328138791048649546243761423823473463638223703302393391657193469202001309023298177293613988559844811351083228174455810770668338944403325474703916626455242666282712450516754238605675857676595736199827614863486698513779107087723292850712557442354780245786647301815240732000174311972449380074020771350191083481200634132585122215205421761240248295535447105009435835693615458340025682223122409556088166452210241907504608896947051483474331215710003834914315990952524659157373813953683496111997278555078125282128948932960290992161451331809020962174143858474800735009400259502898260646952774907385308810182457590512527636866404072039850576590557357135124077748735142439267061940230461870329074875201207862704098630021112418218239347158817377888836503562576667131963678438264394886420061182096973312626170424043132722538185910879024018968221853407303566037271359031183662970948187792903965096929343941272477854891044553108362511784778558312043638071203620017575243764524602843640124065222451078387472435172705672061308168923930349998440813060905348934257811178969279617678130877674921638506054014933379273540121433370738445549936585863473546993404484570798369876818670182781877340710416065338849120198742737824633611608791558519010138940398454779311265250023053206070082739948022446169501693690710025797123512033428969415858686044934538452337030501837741413655025794177585938243871089011320192600022323232100434040414479861677916885608052230768814866937066754292437764764329234631382242858802583421936167148605821835778961177820357690903393471316644408608938207408567894376830064184706383663034515068398269088865472452292242013155472429128245414686543200370189726091697507453688572004850202321896607904069391556483920654352443389564666444111871115799372713724573012814981716549615918167726770630257998677363128147820765713919800968294503072080414588666426183035061913824646187161927697572911626679044513566526489576401367674901621103752900570814556825465675157815895160731668623235733379132253540942358896845359594849585056260705681929222838696929679462288343707690702999692854409795774019933623189811443021322591532316593204975479488765305916712878307072118899501818691702755133378708830478555737575093435871803917450929588483227946945266999212462443396204149881581660421687266648822864755574317171326859104131936791798747474689354355835477982619957497505609449520472599463289920662212480865832762848653073752549398766754588540957980439966016184754552599666303650585280063773411375902970273651858696176234027833172355467280663995522596104903011896356329003356983150719696408985538111474926359058184400466163429694435974131482830961259212741130043464532354946673154606241471931828244418125656426825896520656959216008729365721553938096889639924661071399354843155845533039553090398660790535876666833724709126480751509462105153097597301274426494429022506809500628503429278143967636245028611232027006794808662849737132684114360124267837620348471360738818149834292925823769200090321068408775814007137913602825620951818017270641555234770159721086655732847053897418372889874472594059598098799083745920613432008667351138131360954557922895690909444839456530960720365927201778734485334431672844417549551602780217444495986047749524448747003920358956179829435729177903643859551692530648780452544623536268358518112150884137456954746166013701013928609830566153457709102036363981952340374093769657317029040667862497501285363499270906121060018608441339700035014658827851803644649901774536520822985276179548324668442452627585108318427177229376454981937636744891554311008111414270617940458755604411347473322148588084742962070197312975355255773227802372352708894487961188136510926152005949634548820992193919528791384888049749544986997278878805101603827347321820496596212337468042195400131714705416612595244835689160127350705560944437430280741614953509985054634233974594788148029213736065112830015296737421982936112718906350471276293363980094435758167654753216294089991357556465457541199284037786476803036095028310640368099258142733135797824659017388915064436468793903395245612741904848576814101833483080414325908336784679163411095712460230296967541832196566621195187020033418960358049079751922885337810044077867890082596668327458202627325391167934054924160736360318519362853070633147969690770041126035779303063638372216439612857175622846406317615444710909037409645863696354645878302550608481913634399616739916138647420313223220168781000594967554782134487771388391055016488849280767076517720881635408778001291679192889009259947559959293312491857749293297371165165822155630809469578637218125154186899044720275236789366001161220298292960620147147516387689749492158717325025352985884822636644961112183697578567420934668103890175134475985070305411765530977831604326016730745797564838597301791232772484838061422550231282652685450028014254001679607805138207594266556166249723401853531010866055482171535012192284385210395223519939064119724568399900012385062769496540293416145137317499822529262430729107704982268805470005683925005479561135264132470244353943754055239056230786657925326339579245876639883651375193757808680521168125113115891309921780117269174924681000872680618663548321087210174328457190133249176597917471056259352297493511380274409152442521471597402612499625308869753414444648380325031872840104821026265764122322057795991836135522756931778236565348207708028180733654339791025323451827204818523007939176598584005774511562067617717123223988429391371427877956481832755516606295415466618640032968389718127455532833818495107521456589297229254687069524056843698057773086735765138492369529730865367202082617428718099091213642417334875666119755127809559464315231001911180446802453975857516163111897082177155403142596447392282278326530854571532147120150025996985950392140484177749823288134209327388161522791413356495226552600162900148737593079892077482683117227872285112135287333200095602205403674081676140300687750919768633140336032342953091850461350879229480859657209413445817784877294821740844472112999991858071646206193435783526134249946048267013774288996110016940298251763434011312110504560556955745619693547949210133005723530450728794605135977659926637078280798609389818275972810468237375920380262631921359321185870084014490417524881753556096161217902995111047841278681858637792898871087226838484721414568455569116144660105567793081077389061031984597065343731273704941137825242896675396465178682248338221048469595615317068575625710131724610961727682497579274378880870827979695297830354425753813037992512262830816219081541858399924482503875468851737929334761925029607673321830343409659386926287323916799836121006240167097877294523504224078027049952678371292041377327837084317830123149116842472138923519236040544761940779555236858803443750190057009337809285235745720122191610956175486875024204012160400892563918521019618019884235091796707279769942954082565273186177159423203622209272175437738033637632183902207792465300067511950697997193388783702156636832277455705428278474765035261179660316111744507010269250281430314840097180030110494817605989503145637211478889684374821161531956565511455488342551604376749386447624872164410314887766655992735476690083464373689526677197363187799351533112226086109090762142898562031263056640698072463023663506989189618402339569203341475097328245161234689638110500231484187213206197400828769061110983287336885829694726123522338475912369723780878104642811650469192181145767653535506004373633084966108763721245467528997648230433946570736355137196493742005594650894613135139345101001117172013258133051891714369100668961076614067730726133780493282554126069894954439645251075958019428110603218185650366880508505435339280507000663787455505144473501915870630168670657801883265683310396491560632054015952000955246096788259454921022399108934850092624237619472554322667265179483065669690094867694658377861138111945120046915565273825328067166511782881785615785025440021133577918810198974707503890411188872757551272844031617510073881969641840286301283764937387671012863629503485843910505692805392820486064820311351764512036177866140474946459016386010910811750931285373909110484874260210090345252805068144249244186019011573671263101741003190647256347183432143201850455554279195801260836619565625091972024769573443514108070202748707102334171478666445271149566766648577786094823485037585756849209083931260406293937036000093073183628185635172991388848018899094410002808858438335725905774059683385878670257910804001835564889010533983818724340830842862327342733375320904179594650766812777118842005112527445810496117667110568179631596092023122876960766605297653599141873443027024085285018658569910690562728505179772036842056294306366163579671340891193601317237472973447647619513928393599247131766251682708770732625844450664629768318173392270607016950292259044835818189877150643374716510411771586642634044415572441513708356748841268538071068386948189384259132148539380185756764311736014471473709361185715193790291947093590930164424822051894248925850666905394738493863709713451692358127947138999325388461228207911793762235333505349346706228743858481328355597274765160057575903142059238439882622908230481410445948143322500970670943373098547824825831627890553968391169789893158574688070871536049530985573429452797798191742615458802361211748070602724523346818974105623120457713442851175886502223905285055389098540223099458803616495027204598820678332810798353750959758472414707598549019544399004532989739127382133886585244950888403880152878581656427701580946141108044178824314634132362884253651584125917703768548189325833328425445811006439807494015018699466635302581347977848547303116020976698806273685318152262594640868896863948443868238399721335520662521850146850229692343364892939441172826831690200713925857250232243126097121380906746401795388705808702930196200452267036766361260115376680126119930621828929552911437951638572049076946110806882493591046647204037486130490380630584442724622039737264496510717229555341275927900055916829027934999693899856975629946289397218072287485446652435201411392361424861596429403250106851768689377406917533961863063380878656985260682363337145633295254408072629571131704372231627957381110037533787262147145921260213850110995114771728937958675226758534400707659403332608378037777247278927975572462205158394344896812633996752718824888411391149998809365561173241604122009458463574987425399168165986663963150726230152252808211096109438367906500185097531731411203720411322545209930433091282533814881348773888275750891610069137910438682851706423526844435745059652294780816532213645195262126516030718252932217073515933408898462903716589064189564944879014316834131327607389736922837698584272656199235077954666688477188379927240311723473295818783094476569555968421055800137893539834321299405525648492344778312818350478616849224491721588304105003334186027300040115042418504830716732583994502368948796501489502374109813076011995280506554928098099169359383303736223680204816629124262953048389433969271206533635172692473981855215421469513554222496673956316256818204717128512220301749053821521761113218732559427643676708393658930588524461110590994131671961350480692225888084441014522661887611307645784971517836449716472960352444198415939478946931393504115690178797150184379842022052587116064192532827118777192428542249395549931303789757803142154819829545534370605122850293063822396761923981747809074251982970638254096553295774714848803311092054339830464612142886332101533101750068539700573616634681491541366483858171084985876939734186996769931808387583869577614430685010749755733632463301973156910824487991304336816252218260087712498313014875331988499326784777330678874694253466003238498677022977492127400590176674452310809484867082499395471909502131670185664135879150860606652910050349165252373044645960212751580535275069370775149234002528967773637937124959943914575594148948583481167052375043290436632721873782608612828997453676783843196093964636918047373105904995986346669635476355453756886764584907216284972474386163095149259982780670595411374105115730703988974252406739761943945164462591616235580123333220955100928936444946792339933439934899466904667603978796484220694606887518758566284332277835506207991316993046609931496485315420559543787033337025174617448077459793359312171011020036258178154424686256809205774353741110572297406429587236830857014840164622608078262138928743750250632117496911269895630696225745572970455568635607589038425803768330770472401956171659339082129851601872599033044175180966366600934481246735097684191239447887684057223791390593313820983073533464124716913836618958186029777875834278751508052324226319684236635754059150635816361297504799742568984285173769254449768613305100668339914401417801540604778453273270409473764175613597465489617180552601603872062740417139078084521132335131619272352909083119595240792195725141624363785683532001075644295253769358817944973736630437898126907784785074102234168116660558653278975253774478032567557125022236433100771940431639061274133639848182384544870998813615022744748444821710077789297610595651110603297300902899608161631311666637379786790978439421786880770830963913446252282381477283393100897050897212605645019502338252689184545857218646346296889635097153916542239387216289185196902857653027205013115114843704571748866482439048502074695992432397740960819903532594765607666999975117487757897909429732611484012900284115993125298749071026829661804883982285145237982131624011429083089945369858713462096337910209370572564608144150487848603082315715120355516407277232731508368381387094726979695109598446752829723604411916675034365801547172846542868365775586788681870687191750364769229049078016538968825644912511386811635394382257308998386056893430911381443400727181893324310536161322875337769840575888956231508505819951513934868170773326239160927271192955769793828370998537012763021000462365435647544561719162228877807347607819827813139841320809357823013231993323733813885737047026247477778892436630593128770755001927009734248368569360298217574579264259006395670481357003948117512848122253344738111488297300910951871893702058371769699358831759880906245886491529079243680825914726387775177400887870172328256051720575437500206760247310639724571673051356472588108608161863953376254070427258880876424027537701403031848315608757380416194552073044385131608591278588548234372589943303320820447418506371752882525179713406654617157401080436885977974047372516481668182801760770991038983838976101913811491089984470846558044097647847175095935632134994984195155639587609038536720304254022319599552479572883971853295060371618920183077526450195661892414623816485608108335803426031580755074805215326330266283446387312145505233649622400312563810173640826352221410855465296574166811888976601161874955847766252312937175913365169283031592631731116002228165093153503746384233793611976655785275543119613053738661809873415590993941882645048333845267262022097820527812477985784417346376895903519154128387155117141032338209821807216151433342543405177107778777837466966965539288702427913578351374203097994406373130588158966699988998707479311384170414058263518841664595289390300491816636860535160527419207577578504207384278880588087911911185309039051094815627471771158562556629863880785808068010823098330830973913350468157795713477580622817118199543158456401251805756386814292215127773405300116473525426354037417169381141499740699298285752857922865303119053876832920892131945747817924776375872418912421054721214653468970006021184460502562837450157929051421929089689365878035770999843154001795289576557554938704544322160542774560861169719349224326265812339374367551826741271224306197172341540740820282654628435288443630347217949615673339660103142141313094208129659942678650263474120778919370118203189835968686562320147404753674682899263926025454278169397371878247851827880835841979209857377386221849754415696648044071144700657884956795268523950804332468309436091556567804698367027468578709453922640605245063964275502401519845796608762782444188786154686304288254809621141940862724503134860336298770730965710154299371455898623260922618813263733393517384499857339102988973972197823030691295400027598835287530425113608904170751219888966922853137489560621368470267644106381280863597421282094693467128941440304883041750936357060328455255813967692544576951507277359413998206784635900499889942010945341868204874923084764723873680081461303192410653473486510749544974401716957483461397664567846070206295281286079572995122929831380279589477416122693096546828606712490856747761240139661176765130277940486306939454699135870305160936267613642757814619054614979524133113567961617778575009596732545309592913350031684189508861632509694031885550879060887154436417714641250725132234177136119847926294555246607587122504578225411216173337685867525850397762037116488615685547905159819840473008167580920740222851887061622332678669439716774394798426586915612079126824084854449308280671966402922510795627445930344625643735109745838289361454054502466925387259054833620988127847608131534379720597606484365817005278024084783567674679252329248701783347190195985967473150552269178501616252741903032439131654156775002148002374414203839582070854963643529133698406764380088667136097162285750097179337878887033826781973319536264899169788253074386998065326433671409400344616615464155357611264239809505835151120522153708744466048111445412523222777162629053751155960288954904580345076065761707129450467605766500561428578782121971984434059080588568678394341544368902556830320407396261367692885003897464748718807799845400804287607116136040992021196688377084773333996273364798528412538875744231139506099275610866286473458840922340068053041516789794143340979767656606542947575215649806982850919181972476671880044063181745034930038930700111954254486432215544864173797140749371222683118681520958914089469027665383461064093302217433866871871809116606221984610319252816674811710170739157101538182062289362556225312094951692402091100696337888908289610338378138774845564051930843034342062729386014331442481255182815164302570605811342580978848680698207193659207232682408846291390049183066909545999337838742095239970283373938288710719422643747593398962174142781873873133910430658465841564898413597710052538253876314843088234476773007445751440879650241597428662415000512566730469347695645934685546636906407721920230212913971649452805753607747107456523883434473050713957969720951264039822301838821111298745590912366403297166242835113780649801983098019341381817897181172390684537021438977411099161287327054300607152771934739570431242169959930295683378011332929387890007912598128709443378351215186846158388347429246066572176673947587460581446216947975529844159305185225662026461682536570082992739671836465496848631843614348915416450518079452909931886677464722915716898302551384272487721113633198097224747820335563813499010829998190688971259788489951810276698013152387317277291543574510060030495869725610219163401250339638505206137523584522911548011932714738825211150520665444308075082311127724846216392778454324316891596615593208090451425255969563474062131742191432225703670823298593846959165182861405373180657361455060474876016507241364345946129865787938550266765228746385882772205176028312136459714976958092268411520915683370151066557596005287615175512844488889186786832190167834476875262509880602665136132385915599088459420074987957865241601292107090729059222088416340266399674809218578772616724936376025150879107292779592142860890630927897069411853250137290868036140078735118365336922129010479834552448321192049520809040636196369265502340037206651039322481827501343825013033961782211461618295147822383545662295643356098742665611598804223949085037052943849198130485411333986202810254755580841592005609343398598602362651015665110924412518026765373385250437216991253313238189691718333436022770566095007019610238532994455148631542138462174741848272084694397009393737114954016303235861335881242920478414760713609883132338947732761634262471888082797444599448835739783194841478023831014893168974896897104199194365167721251658132440443147306019728492279220612457411588894232261225764654540139743718857023495288990712348023043250705072839960382208074937263388641509772364782809520291567447251392106799234107126362561814967615260671399484698817542595295642688984294518529387853709674207065805394181291700241866091735667294383893662381840267445283926533764819183493629865270182703680900914957399797916476600588284884010798162666522099992336955114094687146351088956224565068353627711912421843994201447046281811503121254656036373004261711974495545581702436222538474399223434567626885091202410430934477112623152028060946261176358337540567818796035668512110570797868947149665537194572035126576846453386572603009061577225227919122664626265799841981533493006114152092386325159768602614656401709654129484417581487214734422491911162619120671347298752560058266768602442184508933815951742553389016061395301770759535086196629303344122858289851754808026816652017961021230636961825327743161439068657442725822503946822304112499759030036731119175440634975707602995968902067347859474600168868482506321442920753294477576561729719371170117270665490493904911071285539920368872810186285800495524764422598726504767996603974378707116565717436316307989671620822772275852064135596144352367107591879231307009090335419536208953442085064913270822021467848492278788033110598945735942105576014753455448795787696583177231276249192839994596664366477960971736783181583798532801310222548532905355300064149272347128626087526177439896948929501233766782718360070076008474973888566329637163234738785293891366146416876052639722294551447875351945803433970881418582823617342602369622882322413767668888892746570135890884710133376171793579081725415226494435512296503638277340435957199791838418126212733869273126313058279117403728585920716575567579953052031973404234832527541186338145882698936577694098075456566489906273916973512413732439518040290963213519831704667151121628978020034344874185628216628147249300988128821324058648009372122162542844595628986689315339371754934037762125707334846404072448804872281001501243173332289374281546496800934963038472822045667221156246772702845783950388472333566123723092932267144404105594753426252036262287709885236652360145089367069139482331049646196497486949847881405499741211045581305996307100333843212620712996988089462717348238881186539088941640668726947769936697789047477463169984767013731026516579278048032298479651037795611706685727030144253679835291912849028785214049016967996676591559391957438986424162902278942191575305386701750406260825052074272599549196983662309305736606779191807386835776038775091791381684212099431616443857076135821262935584567182808591556519443421823968346426184346613206104980941716584050217938945196770221672117098172318023959189041485070743056268247819079491209129392745136512914415082831882731281571723460156435811985786688708199069560940447151896410433582926198385944188376400462338035559679738344283349396704457838302789960403653127294739741320076794593526869715892580650092509797394230746793363357353437955880274332230411465266765943174856042304144449606452437547346659917421970667642333304789057657366108613973661771615139985076550213243122426990386506298448156843063996616387158159794922455951081228298278270237800630731061862841990160138814051121237092117240610203963669308424674913938736994246450715886445264726527868829886228568807481213561540890027732006165471099988093939672103823789645097969208184899544084471432984740374998086627236274313050412328270166927250729918349781844391822288617690982616784979347685025688195396428784169307828001997151723122671341061084259716865968863010995260971155837804431430461651299626458400297174572831555178641832954438641356046119651399614609274858938274590853040244392235344653148850894374809780355682301194799019410826962729704237813224195756449791665404150292213131084960687864781977209106987341514645301449612464136503934329688169297963496607372335112279176634695221568651192297359021135796278380113636344966183471333584874226602075860113476874187326567775250189648168198522526722925276945361289773801312537161360462770010253862269526498798270211966598008598035479698988662745097141052168502958961831204359385825737839227454083554466261818422874358107107995701815874241360951906094852528003504646382946939174879741914111075866372165613028220951084293817594996670125288286138749557046730668038052176145185462316283645713048238611296347228747536372562654100468208108373909270147982471277857349144016159176663904468913414903636012526126733926920563839928889574430281425804703687000541597296100964022709312326214512725368653866874436547835719502198819782874333820719429711737557561927281121597667015471059470662491979215086245649302227581850307945757674343998530909840796921696742245168410483035877901767370804850094757460086542961063367435674349484512812949914165748525788963999870782312619953811751997368066526708824773712274133623864342004719091335205045762574856221603815570109131715680163983465961305351679751163163495248373820037401789302498069703331974559784224125979611923442703807890358681706518877905222863265444590516106060256886671436601562852615537611660368831948168657223487989846834977533658142415578391414491030201607528879595871884780054588777561613742462471008575112505001267027137537260353012733563735316587969934406443804723061589720164507153173518117656956177130546574219140841506075221145078798057071237057548617347420014426146733015823735600715520253982848337701665844724439110483666687892925747844363695453573309533775582340166060276394666252905643105602802662643628117941909743400371374894460643341557897000410629357067681073070713291665846615303683281775544857549062406067648991600076384368944457416511148101144284511036867064611230962940035815836950342901534837180996014094320546757682170641367579450868139900844808582458673958897552607235232074829348799963217393412139603132138225020729962643955590264109111868713951188819084336460371505821956020995525844568537114226878647799804189822054785464239370595834654645197008633813835885639939755997254177291296086099918834058329302550731374837808668224226478021646946184242891980412164432222355019148562625086854149227777929052263742519702563501076181723522727384955494289949511920237766843984423214089099516230600787873677342492028002844302920702938679044003329595254911679405864742706982748590286007870656828694842760269415864913096694165056410169941144609218871950237568986001801461324748938292417797625706048583094517280790706091600394594054123953879211188098257297224029557787008073783383306882641160844739770223932508256162052304625365571180111485531891848562427770493368372338148995901992229806072101185132064607685543134422016539487986225080995775073084946784022121877644173740197257378548815784310991046504668359759596128665328141620013821747263548394139123121818628203608649550789613049226632528275861561366322088003136184529300494875040171361449092550701850007097609036723035271215305761636408549019034419869849198533118029236626469235724162409609192284248080787214656764423265076903723936292816929426292663721641131685049691465576364208943644323593670208063079812964125964189212197575068386769582394943048070495352800283928540771455664287491231689684041427533707472225428615349648775044155280202948777571863224650505946951619910478402505358580413359771224444465277906228281645269743811486163352839529908444354583017665431310673210732263834479839656260325919792016629486539941393330955273019048629582123143076680776392943888535866579435316353691187565390388418939893766560203527090880416575774418075208958685856062246844096586593529304336805024260697631800290116945133434399314628141405682574010044016348035707670842165856101026322600391197019214415687729060235538489731142752506830796780214923986557868978243880213833204929015165941913741224465799143288979006778825764910898463033649942975154268636395659776152905541740486815153571231117889215111432593280746689641339693263580397895357326885821117184746883649520379222788476007060307143478629016953669213268375301584778868171907510410616814076546583528167673966446652686540516513015375661366322098356772723754930364641959709330935651464648225067256717030778878110666967311286247447107922271701152970932088530266824879313524329390829553376642428513762366314089849613480351554266565215235968820650096687641694512728533049949650337339226851681845462681992187181065408084404157295790194773746995371111845064629881807806134256443217318007064407422499163439703513545842959699631729656847039129145964057588250453641756795277977325690533157472511446878898927951120942083561198950696848066070891022221676650013627446979175475509736087781923587818681652371007557260562246665596461955402491156993206303218727601186055417269887026475975302797358388393463985794911219247896255207527877278036137822998194870185476722663258706918261742855503472288103950858516151217321256877061106831005967679223494611111864450243125201357509606127091279005508055482501591372380696732235921656349054481862206923866251775127454966234363735267036945291568484496616759389011961845541481061385915336581772363050029345940802176820705774478371510117237962452968281986910487026550214885131813431821590938971571356440659537699204950624705046246310718537108311006677883022270971469977250597818465821024383271217026179472835200697682382924488232166198284899080772424302892465877814079611950020226549149229084477477980393126239405192310942646743280051004279296093586540453291368346815728648798170985510643319276102425360533100326076404359195265086385502036986426634545934435954829760416292927553922734053779743580127807135534199806208708875784531187566022737758853128567810570816550583320486199755281951146212423768668850454868943971521924208371603457850426679081506961155477147243956774148419716066612354106063292610623410673797934138795947244839359262291683558765069035508087699513952987096865703108127137281107540589232390754160040505215273088588695093981769886420062583526462248604599153543507548284916421786202453470552482132165017515485039960095910762648747116399590456804212407241014925190502644719971527831753953086307652026741067935354543800116906637476271667320934879139753268386444553442787851049441730545082462812697239676235615981316161788816738877714563836462500407325474983561882609332993076131407216760575466553424382014943412783999364913009118729706766622310170591331750102340826931623863601423190831881001412847965501245236780591115040305459469519910070577055013855635291342775203296266885260748852880368537882822346385865679848624704979125199828501624836665414308978029802099085157323371553632163443134165826642458122804216083594272201692898779282157040251724395999007048873728838088382252314986042877693994047912845680450221046277167934372048146501602594888638364921608984208687733316684721358413353351475958939587059489924597044770154315803234329328515119042825529238765233532411531800788039480226413396356848094436813501695901976344180242777383371895073669448698938659684260075118738191329490561584180089183421540496594319262775248114672119952462194311957208143297723595688725070399596672761415936750208783538505255770508102936884365732169438723526541278502966877854023183445327696368349772637302957882050152191635301560249380263761236553337102395127706041856272963523531362091048859148428970830054226621804167554275531529664664730489718085496689567069436375710539921249472837201066350815146534646474291147693231412912168087467747484443624424061354947256885477559974431862076473927555326859703756326066099350283909941537785593957873293100449433955187259169053844565920027164210725318792334498255769360846510043505682604326048217222049953049580688758187304916958692618660702947801527891452440837970124602337711189672037697156731251006791772369463465187301097702740951214538954250577687377067892245749529001969940969562059304618867865862597166436094759514926863872221175216766866087603963646654395716342322459009057505910760528353294775881773224805420299362210948992573970119048783203944747916854779140688105989732965185006601585573592630861112768378088714981115066213082597616321378626804236606843024107746530957912232001011431606390964250973292790690357540403926994329275153987400730567480266040903314739978213285803235824903853931573524497112334885037288213911837740879976817037140492493446006346286069768887068373240063643736306552150418026664951979961963589386011086732378745401737813349655158354370744136636693427739218213762395984075654819053282331155200921915245665069836791340043078209627008166277384631517261363743610374949800317222453662875594002070198638343356300752055843680817550079732629966814669557656045666165182640136009531199954220380200745035498510136140559179247078259976760991432314026032313607656005066244834116122619591857363372976961102457891383277674531059279212600818331349324731174747606373059324171793025454375125466042252297834940421213324746634976075187814732029794499734506159590082035555196262248789542372344654088330179791319320812156000767426073756870840223531328931014629243239689215471406523815661990724259086235215809534539803278798710228429686038468753637956755133599395456477423236099520132932546168105856709807904690523857944526847747999570447081623723620543992660981869435388322652074878703583238552907522054559858187326859039962046369198768130777767728991863312610946267171422415290735486163714106973991665858518647060323045984665382131288225997149998097082915962493536531877974576977146833203224852993159910834915553940156242536240595781570809071826939736734770700299466100213856788211908957296953254375371163998620741770085139559901617326345564523582030278628794175570507031743509919962735180472982952558817909065083270527969561393994887895042319977957634632882412754153311355659457469394856478573268879510659889858983612041768992001385512629160659643078025678150848134470736334303802980388546521158852297866235255845513999137101418347231669449234621707269583007640710328099802677979733986452232227659219159503080798826535885396563853803320824870749809521967969752329044982113774436615794389717746378280580414058692205630817112041179405646696442665845684792407361558620144640385288921334721531618746569207623891177037734068742422257499731743602117967732976273972117003641611436491656490654817231254439387046205099174360608964543675487183226975959837428597139028342081240542183578789609099489300090814144808479038194455536378455279478864937331270439836309656759778649005210000724578917970129279401708654426434006160319186823166084422030689397210007892459276802738358796860923316930935532612775186773861121124461002372666427651552605847472834960661663432476643848547930082058637829949678161453872742116715154907269140304499585886747655598109250876185947289126646554466719097917194181479852767234452887419197735338393203223182929762744952116986545447092318468288672145827023543960763709948924803224517274631875819957802830618104424001307618850672302171704933051357642950045258782499870027536853717315537699909518940427969447702399674627364427262126434250797277057194686133764099479511134788319902534753993002098318125050351803965755536345814395603016328695426787742764732841659304550711651130933974953550972946703383522685500095678755402689098130239093701001957134208722815461495447796139958461946487227428080153522973617748467795813226176121501862361919523731771584004039080354363309054230719252774474304326912098732336312776881126645199784634507888719680886742410333302432198675497864776825850358734890958274065675889151988355292069834770370458151376719102816368806242730568967466493097229424874576585079454722307345772702240764144362089892929325669564339042618773949343575374775324799406618762961833950499125026672533322551686172458514751987114052103482162215630575879516186085459862908496757829324587990662478867271547764215629565736854879491680178898931339623454064094572603192029112005708368087696946508419908541319112754568959562970364123395827102628845376938435547453917229137023152819718093929638883366836677082633582192805133972049773219060103635084388635632754348509861342030366070805358355591027955634124989146512775182231433362341733072422645528884537878615255032338867069781690297515410029181295851833942151836194373826692871078841754866507981773713280582864176462017468694132940580739890265478090916982827090551288283674978301966128199860150923555043464515519534485227429643395335397838133567441800952816092105671846929379624372817034048870776338049165379607133031995741162965259583243496519014605819757226354176683249411339718026047002068548062751283021183566211906173394904848104015613347091572088671787889207625308110352876650740618783516368731184712573694225230162619351004672372740343947019208888859750661334010048356978274895903770439898972853585838628972321078140262165025234871624434923151252159246933257609751272760465397184254243817314710439966360691531524402812100030316352712969839651549981439735860781635156961775927260684517921449803142184108074641553920661439938790805660404969950044499557150448416759588161852592907167551086675785799122880561567812982317306244367809419753364592345574119145707658043685201049463744864209992283196061962640730582532363634911340060484409018898957465562312927581720442265091739468476043887738253041463891045768648037075268364030389285818575796016047588611146047164283463156882825746882080140912569290679591185692335058683674204993896497701176787094304622636036372279866697633886693454920713741446240875646062414896094897058288431673555814048213599070670778944765023338294629472901088301612266263501629587204078926704526554343026084975281313264488583484219650486764681146831421975278180030255035691544107938168912382739288672313339519241735063470999723072856873328653259863700280415217889614685789215750853172205739938260469127347260639399419344484670105844959590085548672072647007101196084692956863266354306334177976366826675105640619867160199852233339782253248243512817291791357761925523620680648076680558984819180845057456296603495384168350716924905784753556711367274409508498104139528584646968987056190412815260766648882660049406731086609061213257184344715852771166171583913193492982826919486153216253335139081521842722874603737155264697573471439591144775090321071956215324577368394594049982233345788075950916489340638778153546276272123971085222852913238112907455026315084001287730946647245640697473466252874742801611015852903820165114760841074682084476531151908397616604448611039874909913367442334752842674525712659671189983841565217611185237799252757976418107193263543353775568740199388864239115580655531509978390716882661411104458141906877444263397386812730712909464310522786251472468995577097542831490171946108553635591272073090570193191643292560175257431700018998092334447620079200429159235060699958475203302180625277211436836745320546779912445941379218444500747672245489331783295230685447582234242269879723105761816643008115458454426938725453608979744553616443813873106021667346795966565780187962174192975645142015484125610045457066047644823883949017695699636588801135093144237675475458417911949187845921918829157359715101095834846358831828389633972113591602494227291961428122784623419851912462259513652739361193628574615596204809480747702683890187511987630393810794174131883717929757409410467023032972280310913814073320094231119156140345365481609918659046491844262916111007442415572535994721356971277229944041565633327823653943849877522273877771905530557230101108437402399557112927163062041719818753327365248742953816623488661067764706607766048513625678260787970130213852097437230981116615405514106591123588891370168177290567391831250791955688181352424645928944882512064024891918352540129782075435091968511796226089253025764361142720748824681673795728880631451915532884107115580424775446289950674733450685741428665341877571054074921927846806447506224171354293514960698023804624964081354278192700766701013573347046872788836344731068248551898317329868680564706427609298993014297361013579108480152553087842111572740747261673848666728092113794784039254318243101379306913611998192367949009817641098638683921407204708206252168580869783431889967908738642491272303335171206286418469271699157082813859104327356603365669269631711171690283284401732915484195464707338813778593509220269597791472766680332082328875066147391042085469962375084776945173574629333252150056749631297969281613601637578118710285824256418915328585012919571925622950241404319011734526234649922200381659379433690143927113046442628588771105106156298541423929449722492323499868856250259114140687545485022827227735133657087326588816738286935189178477864370886099667578138194182800403837111663491522952168163576645276904962782652226277659491695063222305602833394226074055151729035464651480519904891067387069216000112863168143808489591133869632754789657390198633143296041476442591761111713924284047615478090201553505972019753893777236596313263459874177777691023793790029097162694334002785875551992044684830631774142323903584435677550760633543531278200927112958051404547851120619932529498892467215841974918075419501432717609628872790644794013412895930681297530651067306926757094340826821701545969570979002423543847569914184325540229481837493359532050161144459544785340126636430704389042946899599987608104069573968677662500322325092246560647110112821592689518345458258155284291167284468811183729491375652002367272008027227865904027981382192371139971640524416960770684158038213220718084233124699239023923949047117060315005570719213206792170897499549173723430564234753118870695303950638806298377146566042021893690204282010779159461436745997517782648111706565338871146860549495238390468092848612141686646301829664991732551260233867698148461452611696827114782931566460244840163558954888849067180763657911522284702639281490552692488364578217835203875021407743056937833483328248372316050546217241313108675986039686712510166987351460253824422532568672161340786835357753264407169845350227021812519620776588810544517024643767724621571208330239166334898445608753291519128045189584382195032072243250380317921459490155306185322696963459672620584350610458850752364028395214083375324682987200814553163973557674651269031343686405181433564328170999217623733327748023382877888561708317735391470293050603163486537548886636136711448258979013491599669978187819110018675240037868611884363536112602656779833753746672104536061673433021972117212066089954961114285323291601308550954818536494842096259867023097075272677363279962819849406687155009161909088187140721547438006887289703860395723731530087500851803050443012363534277834439242704135348851956965287538214217140353403203932503952739683164828310627980440476762376877864840083537650201799946380369479317266292054641855266411703579847474065537833490569330379517246775555253866031110912166683481827314210844217116890105820232051810965655356598271061719407857741985958685986772332834881796558995318186897134192753762200804795912974195406284592138355616305537742835885492765570249219347682203372630155608762374943482992704053271186881716935482322091444549682673585381239206654444328286551681312741295628312958320538094100042187043533596253831292809883596518172970177032435944011975043763014258733021337327914479156272525612404849469304793522959537829868015304665097258476346228786950348898329632756978249020419237222359976655710629116385028838356187700196454245599580550740067357769087008964149450199263833670542445814693784855406091671555336929290996154693221181336892835114309988114125142693485377151150992802619944323895495032577837630771480495996675682204367896292239144945369319799239994473000837002445887197333303398281517607761706528393293658519073406632278500805113248397377904956593173523837394576081083045711768408735319642549207249891908410384197267140861180640622470611691680770733163589466510675966633805112035352204688674173127991316668570261717629798601369304078534930413898358011806093693779273868110643628519505314564249417268079523861444651821274127570804181665603612722266940325075617271166497527973779495962616736907819293615320573377709157555049160455143948350400847157376840299629947278756443261335500349254133537393298227786632783773266385873848926207378555349133036788180150919150826447285394854958378903445051746208460443598402623701941871188382663031901569757907136709053624631753196465108337305549874454051931187419300020373943709354557822341847511545590030264527932836740968839102035297878017649519916701379122739619004579505884962202687823705852007149855149161073216978216135752600651744771421329680517200201155017407328763725603339748225777581470507844201228896741743100426704284886199436689423968054378827881512615399410707260886509260452669587294317769764508470037187297985975985349443199380652788048193399011907511644929074319973317954214009425903899074205823802414990505861246858518165629277469363887367977997936979131678636065087489796374223862869419773751678010742742708395905244005079512107475751091836928318932390617762431387423203321740800374763935691831612371681536643594735085076722587079238817710268741418872368406263409473502342733462281087128037892727976711546921756840199376458766260819462351198616045536956868771291820191103204977992220259345253053918679811153101672459819133972853133047955962662338952311312247607864738385440036517730446518114409699826717805759002716301827219195063917213865775321062821295883967605974264762469029231590934777455791159609719637448092562031331415310267277025065454392571930451549617379749727531654769253118871841003796374778185505928361484430061329064342365012966501979134045835762463965376658573856240661544386480460322655766845287571712848015253313542512784639566537737656792648785597779254642440735407673183062559554331951631011031924700735267630120482763100713050974359822447832858938205065322550219387245466059843271811154701217231959516111137207143930813488141768110948540243941717175212327397046289651072473411967595883497217362420959882022070894697243963249087527609194685998045119690471400675903406110154878666098592459475323962217372996046882278767060161972304955853587811504496258634345768657869518941326553354840957059782193469057500374168494134642842861417011990483901051238978294418011063335362611245795511026757831897134044304269207499929528519929458459433428892412699999998922892376273202135603634525735471669506548508862902925713987291749798369563783349044034831085075776298273699370107485550872401881856638814342537752421336940968844267978564604841858246136151839964383551271771918964164243736767100375128834239235652045952100679726699649166369366183262543544751676454187301862686547414058709293285191329419927986768978049225219642978014259516817667363580693060248904550320168567948821414254054483204663871167684762752348956924436646970980388452368795186390319845156063157418256003056043053686197711395329817299345152934417508879336294905756131935611392997001938659892810234596853759550791253157218749491316429664109546524501999011923984984678497528915630783811385458224531251012854475312381210390505544757719432511448912284032112939263706452754499447842374946681275578033390243001080075475009198183274964689696808077682208319495492674096562873767963114197006873559275916362479883261227125863778683056944482241221735765256596932886620096485866494670160306272863888929763523580374593728109963054041838476419524658381520627353124888287715378083493379837028730070755132416649081361997327920340286085564491575507187331298514012992279591796510047187449171360898307517340775928337092348084618926439152266887099096112592095378739825772516957563668267116435368450314766337432222822892452682195340796572281443140153697073396976410528372234829506861688314578032478287772479416747239084288756690132179469839432674752591108453907297116979679412666470809977976003463765541108828001002554687918419714410795009634512492718136531179470227431122584205503277117430492359190089063436601299246492350253026209732591844898737745366311986482695096091016920953668776245982224787915838966233495808803206080708992691530648975614794030534432965862177259034892935339625507977028211715747329844418980961192610940592478985973166862095074732460697668303876328736200993625626402870785223536325616357300716356978573971000638548100085632596137425570749291434426483337025149456259827428434238666259613592050994990346254975579204750416794153072630952221542164231406018142157418022795816515197378616509743175173235836828360053680362554425461504542987436179670729871638437610959100022551364196833753214628196632133194739036498501332670629717103323293281265066778108249494885423329292418642891399843872527007867643247712462255059453746514058291750024710829751329691556364596821762185250509758562447570869681743225297144492404305492237901053753340660735376441289656220498661928746905366097340349816778074732608142109981399583128259790177818552518405932494905814844481437198935032055913582437164055624279713383702198407689482038248155563040436189580475428728888229239684953273856944371588530107657535804146776112668705281164639057622513715001200134550238175545177331685086227184213216150061559126502817468507509199155488746259843116638584257684458612950063246900835841027137835187985244210983871025397173820671532572193040993429261970872968712878999860185211046728903800607821698234551534267299684323759989430401078570980332194836405429080453365457879593387450448321837181769074181297259712164334387688109139512003260557107078246294037509496939353866424280853841683195399539192184688416493581841962206876029108717678706747214619099497029871803792903689138979036213398437097191549014099358147090851336042896803131570518746396143312639750070046160808273754699667125489544283876875116926767919160483853572673775680567756313041827827309914966565178994824892131990703302797656750085647746384813501766477999345724965253734730794350262680192129785840427732359336866545385110190534527775987218969984004375908897740889432052083494191455342545818496108878526229333660497351415621413371386300692678568125456849491406398610098169546904359583450542207625316203594048065974402410741757395162565162962927721508126611488396796508430169278529872011647476670521751670721839235509016324184618926414571613643310471005006652852773345253569688176405478431421625078586297420482026980317074659610977642950131146840218465071866388782921114157619036743889614797469481241453793840012215951561045695954492926150415840700988434632729355954467049050960619262845577537647730252319106747152299364571201236802992448107157220227517264331789886176270716731149713411270919881529936173303577615850124338523613589223613020961871970346092556362278587505807826758938374988460289232180392139608041219910226226542877603340447799836004595137911671665895152328268710435354196710365801646025963500476881778023768105232369607671666153643045750117962369046526001884179928663737492155868527957235963356241207422030989995459083560992671075617933363081024399461838129136965336758046366525258457341878677582688440527250998773256259997560112522960656502546859634185745494182853492418580920698385119639626516342461217722433127162976970364387810415789537384785055226078435199340062164134738303638731226458416680298254014157281573622273162920297810410092634371633040248458939729158914161972264051795261825113815741833316591884645799982935285618674813910649069926621952852460996545827284174362818850229314392414887873346565849589944804367069471116956932217944535013042755921155586675474987204083397901491404047787741719426665719090791563101274326749737021872938073912768486310598329082056240669728837000683958574201881586602336698165934441104328142187486830311885853314479522700064222997398489465848038325789408718504306608606449900222833932574508157034230801760445381316588185566240058355173878143216208367382680184789776467944654538575406450775698655031594024129664983927768109382246807554023013155028133727797243863726716364663495985941672757192611106669507652741621807317911909222160584548325671018713822255750502708400527439478921543704168397660605598147362857920585797687979221084114191678583636406426664843981997261499111121517022212314661687361511206185431104924900543676446845033939282095906867829266933513953928609003355728506387019350003782047818555827053319689022704106073321743614018123551016781932177115131810677780878287488866119396616362047048266002971060373298230767411880928371558865327050619530854543851016470993086642895353517861085826333485123163088498431857780238530619967571078182620008477659119739772760174529398108606283826304993262508331308422362379773731658049261676871042496339290374682467493137591025672896514417252853382311125200596555676033269338508238574047063426826620267041095550226848866706427464341693330955218810254004553785755296044110768414527456767392439238506103325062557933878315807553616097333745022615059587095564359072306960133130907594251385673998029208901387452855087676184533797874456293486314819859917953221873925189601988467476116039585698303214862791372373627399946879860589664401317482750882416558104484382094842263974196673691840533165224387175646519552615646189128162220351503458150189282393172802689320502753802036065164161708376779246153946924600607778011683467352660873219792160697808547209258587508372165274705843036994212957060744199342366794351317402876442501933436216411947847283661959274359788522877929063516401211912256783311232774666528120844892845010834272002222732210334176257260169839282887712044373748579737507573086390283507272806761441596334663790942447718585297239209911199779216139782648874836618460118586078706502635853239541870601686679117654925327022735691645889693940974727367554560326680863442033887633037928185169336399393918041198425901797748188048584666025881693567074112135419653703394028522254972968028557665933937005324509037743243729705629377424655816905099320395445760193657025647258732474320697994583811423887130770884689230682631959868167470874697231183795143236970976306005986722537114324388363985440393957023019316087613585656861437252939348371812127396634148725398973946757768808279732523325938586925827463010430390896415194728530498951466688281415233045121082085104265627754481460939927519734995917964952081376563063841613453792744785945889748492077531999301095833926544623113734812065686895943835073305378715984612999288323585857183972351086143451571809461656211608409161485081116378999449551839375950410722472762789435046850767557609042087590063016963877348398602574133364358535607737946016834167981133944348943001036282761780250473540358978285084341545514943085468461513194176020282150908462758037458358591840170591371541507676178803120712918530875277680746852097405736742402886837292007576902962500704101804701343805402214427339435466419894979958243551087526973346544260066702616477191405538452644425226389887715218942613023629359801909566853574720495781748500848461929339847391613669638004226347375481056166620930379745321390715964316682055474603231028982618507262857462947272190230946096736741434085128947018869250303033047028088068149233671059912386219712603451444041691995687068507188037372935755996630896278579687948407500348057762368171413124611029941076494073879175180326045764533681139853333458703355878056367199764689582548131715009883568263569125278110407158761989146293012871513093038100923384758117251451549028366919881582030000103487443473965765971258763853400633258636611736924516137232038822154664653830127883784399478933317188605138611008845957722153448347060434522483868516369697488488555734139896541415134490824045131023303313416253768088192089892995381997429941240232444718422016675415341366894719098463397671515181640556531411301791018372307421435909643767733330196908990736813178659955770149588707627046857978235725033396972465348352965706710263606616018630175145974258057044631877673654449551500740018651663065812498787020175940825260707009337270322265185663655053372848604141828609008646612578078863930718736188627692430031544941017419072417548044319317800471084688566329958304437072511760527530253064402992114325999675280541382689415741054944928810240854919270508572462682852583378610668806210461029412223074461048381547319681957971817697945112334643503934697798402473397980854240942847663457006490868582021122277334458132707436986542628288356147499184167467310141278243358327950835335161254720691754293516373515007599397952215110088085175561110470329051237048925594316972251241237231388905889283921532423195304030230844679556552973130381349385678086235079202400166116201154089659007642376511885461120406468229450465143353250244027885976326741039263098459028647747097172553484597328546895897288159095455231579485700681211510988552585376565635564517426479079064097592702057519214563724475425130149625747537957782956476854353127839210197400763843520016671677217412675046295331604370072194688230137337372241226384213720290912720184367235750806460966017070405753876337450275120073336956101601842970518057966310792870537678567348077358244436735737496929246806333975104429320449539735950115834311057959702657939468703838595637885722336058841289314707064460428213657594114253090904781739190003193389250301209943163014116833702927414533757482969109703832804905661358097438846401024813066385332945890426478919435662165956730414230964561693813382150680592163078445115733980075213732318787976372307625983664122867382848552341226095178926140634799070682464040691069191478568575333783860618762348340490554731322007953785224856417206904791243648723772164261388999498476107269267124230622178083944223914233274977103737758497127943545512464312200044957614827364234436503796295562985999819382610449356949564285703340621415416936901133407934456306980344009310497028939517243459500475434449195461639485546495096187017558931296157603727235183595155258492056630956915514439878005813776998785024946940710030723618971997174704190853549954821307739244377404501767744782770994916308388791416920996683026570054297121634739944730086146184544266868601918135833734254045988194446497344352514097531939170700230685344966346962195223724382381755595128688430347496468269933245808441284154767282207771079046128833092988477108877360396967967868633457144187543350273214424720993795267535529388589132309281447085646025044918530187326739067279803764236831950283972599056382201593896780794249928947770824671930475356414516537071404977970441178217655978557084890099752235646458086661929427489709500039089851798195949887833221995608116046817361055036314429861708589764519951471955563801811351985485153179359066478384415244613339130203609055331861884948622589573511632134793242695695358207382655422711293960777095334527438976642741777977326369957323815255343729217031225842217265653464345164005032212171972113685376984298929572757796840187439566896257236411810752906019490328094745597509460313586389192037549928509775498560379353099241429272835005455096758041354811896713393908694831629128369099412416985256729083357876686307586080487261708169778679938607429701166651965029367111088779095696945899924054036199096973368263770895098702458906983427881445258451981005723785734090030972938758726439104695196812291520744689227744635368881205307540978655940766592780458525403304286608607578938900084875283905365374842349029727760101702764084483211352626030830638833278142302201593341162492836002052295639323260499333739385360306057800960362457633723655602699363883435619464210013781321392620352339547104725256697551245975086196805016795756185745189280898611866783237482532114166064172928029258539917664142388541805482835031250328613525088666252405085373927719528990077452311018778603031379205477368183714086255901134071279464189292827865625659536309273413676495007268183439189503466284742771235060856913431321998833194291429928979906988583352118269762323481702525491129674682282526133556672950353317754045252444986371187466435119249746931079658384800090924460932974795417191246627745156205745434311027708550218967143503481135369536057783315507508105299095843102697544314798970411243312581614933859791509083582884514688407194174035333993005747839185223690581101273626611478946477362115169826208150837735415358361266058139767783671901442812238826704121405391793012369441369937990785220832742805118403564998507806375625483918194934760133136330016252180424873542646122733893531985248242316486983193146598717698512059373908431541541322387931565664933471052227205693499770275735879057857613388186159060171992563242022007992250594993437762185858074920841093510090579522051423037086067046612358258779803398582871013491659159431815084823854067097039073631276597326593568521839563627419486113719108557722969224706090220627520719007172356434334563342882584361009207255306301719625705834917538997187746829079149049883907441692004132012621999113477086534326949031268721724570872786473288924550068471190065519463517273892663676391279988264187576261472759315078729561672083561653148378370194723066254473660022768256811981478359283439459723277974005568779590128497048773985336217978873534539556414891336938991841217245869945010241104953020708345839790433024742510874334998761737802014229567172089376960708808537428942910837135798300356168225618591117282976285016222553543245758493705467644955948416055460068092736559785412153815922854989527626234045683446985180823333048654833244389904201725513871494359404974206278433447237115307406856645783000591563279335289280273565517750230312155210387047442763883225446428613390269974611066142270114824555094747981713406087378786596961929806176418371947853565977807256223398460731336440364347817392077763826300589909170572062657237467568853119773563401309190897247010867858764906138244940804292993807517584256499322229358780579415770396092601419249130747445746734067047072725307545416163952524128036848940807761629034688527004622346175737669728436602141521146773300085753689654654519463467549276320132909828056184485324622523064804839585343832585619424643111681551131782674730658291258718658213667243503496689274090744905637365511033020252572542468789049463916834151672955972783558790285521659808282844997171456475027152647084608329001282244196789274080278592598044615711541013987344857371005268050077703566555869445206670969244302867523173626744112626254036919764743557366851125876737623331983297095852976811579775230260112762013347154250238664165514682182770028273362494199626874772556119937261159328746332935676270743005378698588891887712838905980479999570122827502679023483136234022521338597972642431370790390927192823964802917150381269857292079174564609050953271624194419022744364796993606826460541013595223868360714695375984729327048832530939619171126405076524443961414287184530193477414574321561285089001688843443196838620338437508330454496250654593128455669558390035217573316868845478943718127202659752391567097995823474614360864951073985586267921671533508583591108323292862727245708087217365604358993958761281699994493795854492975932640171158155146690857895006553015257833310438997418671095008363285326352887834857069330274438422033264852995659715384758070659610888856955782971895682462101327619165958584984227500883395109012290619009345076056326817784260226482258485814009888567908179003329146406067430290813923749683185586341697086852406258151898101726409362742365035968853598691928804853114517830743748630335134122498093092043690427554779434364512386814089044929146812820288167322416724813395530132523441275428811412194447650369334754394265450945616770872056137294722768036797622184974351325968214723498023072028622774114239612755376692452287454757062762039784320716234603915198324855982854929223456268198804167744976224875852175023386627349370455134646906413022526547511378301796125988512200444242402793736211074919053316946434517125935557404115719706941237940607375156733919639586107270122584010819488033533894762725967425383643121775476289038258318578736365222158473526427631462356595817592771320730035852780534107827100616115799512660418086331397603494534167679538232588118681755514020407262921136138221779930678812920329515070464931900947754033844326517084932849149300634743881226531220723077222963100369311120065617036961731673893558773908911671846152971459265995194892797390200036432909384132338611114804690880728965094635092513117769357164928107075575427788550385044068632378839083033065632150238590970018809375760054576313489468931326015823053759486606387285321233684808186303387941559257053406024145557045901627730938010615162324717695385682573771150038453952404957476373589576184978742824618894457174996400352929469038375043400155754287308848474999506610794881723640116072236204462036554583472279825469283077942839160548682706664533917335383243341786151649319321708105909843677196404797478712841325374350106461151626448378328011847739771921087421550542163916623075711057930973707709548116694903685011416411846897050222963114204832494532195827383261613090095497962885258361523396606828663196932978251954846514797587579661926088313808166113493444833943240805456059652447385435306960655384025378244281938911722951665809550566651648161078042221276017760898837945710945301139204012964607980626119497557511002512690066046351181231216675304350701677437607758871239812649705649435721417332871165745231223547817795217628265562490601061863066727870598916713780539132464090480373237053421766981865903192945602709026693682975213173498954398415336358623178599332529938026408020560646160446163566262453866060446754186942471307975469299343316441689745983947589828264389078213120081221925466523161329557660716545146079914207283381271708055741437711326328922326294832507540123085510392063189193331679799261316276372386621209062765006120588594328198232547502382121075379295522362171120997509325630046899635121721641730159193254748871741562194904354424097492140397489004200767659937074258754341028063003725452776470605313070376530900217730491247112378601564907951898688603533300797527418115606176590396782535902145206504599219245611748741540909190573415369524303049644608073747305214956117490236542147715519622408714742557337645849202599615810052721669454849796342400032957002888137337607219049173206351503827949038005539620531070476091776927281242128393664750408247661124334708318838992224836749765444277078989200354692428172682354569026327350758400370903624138338072204398556839006844422743656082006747879753315038854708824768782819674305647121204634314669798336501465507959077523948619567539338721172546846567157621047592732260624111316975304419741410193135866239048986362524174733177773405592784029792246770475376735370604899921907871634410280057613108947387499830806944122566661035880549036654768208779043070451268457135900832115143124325346708046703906079751521022163860507775156322374415442409024821791918685746071474214339280100919294127128290311998977304116520576319945504583902649206961799487390526952531694655395558688350303504597685577050882844180797064472820094503188157235711008767175870198028641404913172132892468156956126652542800535167499565266790945748923756631341131151522510917788931459334776514833256989081555170165966516301042196921668535633197948394926085417526114908656175322485112774441280331315098844719319785725835904509311233613017891208950413790006746351835358415927038280954351277903579706226471005458523917150907721771834966739067995145318838841099958586102845662994418942611324366863883350428984592104637135800926145488069944128246016822090129855110054818451341695048183808584953272064801536350406121225596496529410124030039444975570363753189921749172153475561166736717041038486347196037565202464079064058556962389514942858302298195634522695546753063758603853774010559353867491741458957884548735060625451638212367627439719441594359097903447447046165619603434412193906052267195323169490693405766076845052792310944100889936177447647408540833718627460503525153413889152667985344546422197042186567787384714526324709697949902382752075743214939107525526602250377068594933993826865900341383648723062018294143833421671835917720221806787593548070995093840020785682629397846845534214156534892682141191806590622665872719395080563611530232788490394125102658463583522003759744485662741366303594777440072293382278706628133168303719200520612078729897756868284998373507827204579278353181180520856792179607151647605509773181953255926478617216710955659036709574604434052460005240848227158692581631697094457217196141951309171066518767964255619044194060705738872831956033321841920959115250553154624740860922207365438007996532324623992922097296994155873011118950611527920443457101124547442763223263124503648483703744562898458521111053049183130015567500354548855586566278981352739752283729786227994655944754046393419968469774780101106014521204023288778375819890639980381523496486539365412382274066032009471826902461662212996244880641169047759379080868849554238042706370225627746673723451809416205218936484426989126679969109118202152911724109498109163863688282957327999776329421367823535754815978742265297963620365720760493723840947895571744229898668933275260688749330948754828133470404340796735286640751044737846673987669914847327448230081644626720353955410985758259928874889725002331184345752403297468838847986080592972884419480101164995785619623812407568423986036391308814307733130983655697323019035113348620363188728183127196439715058738869718580202469965305726592835723333291420226509595228220192922837553841769399731866722990131383001706824833478749261641445317821227549070982019168073050160020187595070199138409084650444595071225700026551214814543405783123161046373783709063973827224035803717574086018377426499370882428331518586406560614834832275913556514838954441715592616936914473602124677613488817442817899018456450138562522838906977672149385371676026737420765930072242571097779494786825878864936963014163122228482678261293928203324694348363311874150526276816591763311606382210894602607119204825744349996929953674139908335881065468546697310071885445318453097102181790697122354075768087203788558894083519925862710886402732594357937869999515716439611154036962101789519911876087941711878540247059232739791967473098197324675238027762608184400211346630456621580327916683930696569140201972759935546855398651905046869645074811699693557114125591289361644845854533690524446063512452874901751789078345049410839425403813829585620111845539464094029161213422832912525485105133779044545742727683220058374942772827968654616554118182345203754182997245036171642992523695430742643302362725725045872770713468770878478670022382000543340879620171310015663067769039145503566081848307794947261294489076916914530463583505228544468101056797708997811070748971854480614694404616366299259081093003905570973097568684813924292671463926513799463378556429369793787471105451382817292310211379283791651881820387392039367818776769050710396962858947734880599573203161407602719381697398051418689581821472405404792435822398981563645019607748196779557840365897737882114962460239434632967160223431690767746948688469233243954894068650148368833499482282409172996859293355108083862419083650688267767880052300423766603366871582333652131774669855769360614599167931834180185840261973633622773920649681074936711079297989595403110490153181404986471584712908261903842318406449021663513576120887597742436990903974448743217912803486053112441927055452723671921429996202213033947862574246138746746987751744869902121248796140412060065537682873168211649700203720727836867345713908300468303201552749739653867932920891364625821997218382247108387289063559088898431980694770038922494061774149609737559978374471824107482194442638722868369545303510113826754235132589452789862766571193266037345527474401385095657541222594828825839716104845922516115891946122072013766329052508068850405283065850696961450375417564608594709165225855889499106393854432279110285803776453042027257172063183169048307554279191625619214777127504560837943528449817634977734101222463882293071377757739450921759833036070983365038415307651052467089927067977585759777120544765981026242882361214577188819333297916286524707919400952794411637917610219766610259917585264631015573718298740548376917427628947525790426818093155527984378566323508434713843979371245427867552090767611245789621137872477564798595182069720615984693652092696785188424924343353189998048733861291762422149233111865960888233788127332771872755054998093184441101646324308316501613487109539733379822795885862737133174301273740514258308582997246512841214694816362956191348584846211439837306737432274088796833643318548987848390305126635302614845055026380635797294533309114446366859688796441675680851131848407769944534176721578614737056813268055304993880722251570394292980676068082437367024497043801882162052713721602993033322344202175113901081464124794260241323186457762805640345223958198652495335999527444897521559113735118420737821902994361928019372387999229556986066600483841430851048098215069014286063636920084913688834327451907797084151179693744752559552270910980853820210409120123609299925057435394243425573686983179916316508097165115352897362661977193681031824977155147336135994748352141549516208010928371485440261110825714780230389523954709917735496483943544124689171676784151414835195557851799487517735361210852924773130126531227024803853655540034289132290816561788650018634136271526173913655074072179441431680390276706370513714000171873208461881532136328346489062898932800926450007106693093898409228682060563261090264877086645609872527738323680531764714938914818177875663643640113022341766694698575554848072688788610147658661778689040148952397360980073351322833029139251796996876653576909638411230601201545580836148888573389671315180165053506901759303263424686250759922939264672541620512783270574050593102929036181533043575116771669283862648105743199424977094742814391135242031534483049872243277363854661797612320381817154792658961693086224403400605537754036549440360711667598614890670634973651067769607095756188034329422183876275918836121659362789795449774407793743652757172501349662444064701587479513876872871203798350168025569816641977455809103290534075728710680594025873171206336428603694504120405006573176673610867213284326872353619859496845701028784444733096872133567846824729396611935021194179506611107107551586276725240842369782234576155035804383107938740247223424051315486582740159808774260680003014984577025223708002866351554710152056359172798253064614387917605410660318343758443414595512116842050256777683889162058584817800154564588118839643573789666625834678434067293151873882460697279191547539907346640135894928035722711799082266928838294858101749481342470663585495448147935870656140767274077393593163980513365301481763149348176421463221778160381258986866952782760690978534765770107335038692619453397391492764186905736660863679506165349488269475594805320176579706804031161285319049435218698962170488124207552834390214323350499892374690974314152250187901664480655459178991520843587227719059602995142002885034696877326192256937350780415813068709978442948683647394075279536737110476904219873564984930554690583546759362399545405333995522485267327767695938266201621510132794949094127845622408157957740233185184202569401590244603876581138477163269932637031380139282381824622522590203221825761290380381728655170087916519411136953917822943887583499333241127229043071192867033981147981248273550059452399876979245019712298802936547559511978090922820813275623477406102560965864111659435942137004938794857305016340691337810971396777795147387771614564346074850211080225928076906841764897235536069305548831276060411912839697571481065279162549495971318658635370846898221336217020235191589334702013521599869583722082096263616651500248823037274123228148131815641439259386952055086087003552353797824116557184010501076247743159779066109204393645034325509677528681942449870114314787927592700294245000589018520869781139350501464172989777599003885584257844682497020601185404346160359122240621943117039884598265506438991281624831538793414195016443961038669087837392452479490781244958934294291256802014557231321459917414386232704638992714548490431545828723046784216475927139218332410290146710225852290947425189298349711577463437869770588726914629440267904992292246139058083553184270689080844611168720985416924979069988350788607514011254096343328012850431063581459827210153823447168323100769997479173550870240385620156895211447061423261896093181146680145554336021316255167013521303392632435554731154771526108798855078937626891760293267088219942557520766635521335318792210205295920416209552963156048193529086682345404392547425025623278052339873148055829393164212275666633582127054440148365706992093461745112540367152237800542853167737197559312941691431397875141562074810034940695704554847253806590321838512189104733310918894944783817980543350369082874109890541287591331726714208658919112645751839681293154485200437728899773113445296453863354506190762229750997427547825925865319079151644333048638479087685123999916593337642978325138743183344451463351002329052846378991737938326171655785771267929712422618458372688001829692495298980436664981334439293678009373360325921070100721097993521725957376099696149244430894438345963923454879569647584036904457029568389226660594608911240945220312717322945687359064708085152620144801493955694669441620246719039374237845935818620101338404979076346909374068072497877725646424938292773380538985569941480350947024835639599472564685319148404451080036764072365005053319963985132072406328065843961964856930390122130434196197748774711017727625009815097840619594430013818442538945285302018949342634062293779005512719711375635139502490185187941102426028225028106533720909167209176924709065720310629045479371543877731469791977470911875053693844258771167837466344848530678308133356490373546617059388727755964136787060776602307194284166515970825068824350972294130182194738403457713825823036559291205486539960433351826329524684798766916853678095897224748712151503021411186843421923347774414304502549663165503350396242216852848078677312735814223409386341794305025233874041630979003703053918935955419456466986737062497785460338577357079969161591454928274563415961404060429924081580595454174914338538700285884936563592974062918569195561461407866190995782274898850198572553942580685033947500542299371380052835408528732029168825263001757082002523801652668946870627550125543913506989598019404901102200835215767350415466734633872244334214528605288505506844267509198229571963078065844323911468120395157821223307332426771977888475354370836249062467828868631745619903088973261067009351082138640098361630265281207252458473632577134276483973708955513758847728641549456055885656747904113536736005354023587235289692284574810437091876341949814107068554803049811358550723564640524372340802359993438737884324001645839637153295903009671172850736204906844965041267437272728915414019517779293789600017427242377590639091838217429048806963491190768781131850488032711093381265987812354640606667285163765639674490357576721767593629081192927642203265809522227276254814594563576734506563868921338291248710729038449980375089476978387458111746641125135811937844109362016241630184966047579002359383302644795820647908031524198745338375778207333527280215953826963654540434252889847591214061701339991593227135951229711516652678735537734949549992773641324376093213180278962402970079875652208436977163469044056390940084638997751885073330858776310976693223719438840071984616200986732767784937992354241858510401956918699274911953950954926013505032552660018791196432831731677569718501653707998942018808325479907034151349558865445449558040220919003450965518253989116920587738747328922079818026514766584780665680306270827048904117115258179962417994360450046435000178884697417493285362451153680425790107530250745925010607191648330673132152989644790597353828263166195455937257735908605012052940276026928157091754755183009377087986307103088229319079246375544344790616086597302807405559053737269168743528640461839883661549423090169076655842287961651524210689388168427407459383414961422005045119511220713218502547881729617505225107203338424057373284100052347740359870628508020825642092513190891336147374597040305986044686317359737300688230204555676955000441264605914943310466865509649761457290349569557298623810113035711107808588771292333775614715819235908566768209794940911392356124439983566818059299137279299814070870340172072812205370022816435867038373154727519915161732578939510661586835886024400124368468965642114901712341675788223218579675461611873263492907873065660097625542012889631464452301611123723438403832042060426101608340769082373941963077693801675806322428805933002458006786890142943961219754616027164991744609832085001871803371892949971691393080393541712348968722659428434100926980295919060944073166484736209567107019123449040561931556751198268251633303178736272539533408620410469315860433822517697875209154764422854820378175083268181997451248648563731234995881998596368062688011474847794780092900517263148431091233758470119482821493948903858453773131254506561619193939313856133586128507698507543197156813568789969741048644883076758997895762140116694943590028692083716391316220058343145850569951532356989445012304226906895949534605525786419447666184414211350041403330441162368953748143993370469601150472718253878333477350781505125860804744590497676044957408550883407285173695496166719783385401063967455868472124093676678681909494491452175549699491051603712489554423669798537412069963616751247759007490139328010608885776094708705672722140284782770047679203797327188559427256652476875468807942999693668205547192759264331975144411676397085348676150609956343559853184630182477988470809641588185762820638248706128054578672558264908098663602906118393327288303452630432728980490037538964460173474284535969590165687559041426406956269563399427401659173428009921778231189503578023784429566400660327495295347375519080390144585601061641476637952371910981011348819373351437748269252232923827698705920499667595968300386716525879872274037676943861746832021333786345451641789530786808688293644027700641783930929562071333535783437474354342379955923769220286895888375072584252360496297131291084843369250358949910046941149929084260760780955669640653895469930989763508789337538659007126685178230335655160706364705984636693911855932191330105723623232341933803328613076927145413589490094032133034365433562862085643299267689821657477360093628094454782294648363748537370686372859348530191796085481122575294181923303574078346029537267126393267682477200308553253140076859753879412527830137808393616051351579172215692220133346593766657248394535119847651921901120394913723840504143618696093295031211425943966007528488740166828487582493799597020299730799455664076584243699946580410417020341210164706357629260765350128536226199930914274647570631413339160586923269107577525009622905400678891061396576812105882800978029214293120470668164127385445012333351055967394258322575207767258821945392112209916187770908323497326476106749016108576540524873958006567424977002598923806370974077252848852520462314532571818585415217929197133539820111900635775278566989785048965694491881258002607989571338741819659389812447134984051178359927781682870176153501201728876150266841678502512296775832618345764402122143951379118802605521493412114158787334500228954678292368086090774156924728377675355752109546615720770568027109217617279419501566384760685556257632177562390248248571301307486434664238966940281801753551944007203102614144222651434862123068391753349654985793026074355444751652452395576861921991677875867791843596940803945465357188131491930864405212889782068269524325704534223921852622574726585867442458379534176125776587175294711544169553969905660360844832848224095893930542936751562766207794767265884572250402964950418543366350617153792113194454777273880134988969907138056236800461533035454849593280236297393764679455872376628353432009513802690100946183579778793442275897845348571047610214545718221100591336170042437670766827523623420163899090675817343127530737515177696361635921123962423720044840833446894424704577859151255953110319365303480960398544318073319674738382972362869370593591053523878317798984360754224349132186383547116243392519210942163491491618978347983844116110195773451012035275134486855812195845401408654733836125532431337445051465424242015114614190402178802412862659671386631871692108561228334271626568378741932345080151026235821499773012727787469889525087002098218390183534027816212822582533425867607213008164878949383648143182801620180360348722417861483869438725951253104854966852897645305516734293802768548598738955805071616036211211708113188388986191714457974597613381817470535057343004179652213895860890621727492937274616421467401818073338065807489813126398444112215060486749664578225115811290652830485936095057632909730305573289776324965061809050315954744550563894424624892363040965656081598230496796195622064902781708163633007042906528387460874862207016767095631879958324678327634902851950645852663062550611670971214323587907040515003725667219530599300513571332570359666515773465126608095623301438123672639223649243765044946971236269766908958085834284248176499730064801002406688950317820669462589233671608090717791009563542392789923128112116672944585441505000385194429221075601391050778181326008955484139345132742644626958788990287804626271552834863907591463632515329794982875443844511671924419711011486008902370038951280047681833893804269633719278494009385642771110247506678847737380912660420851363629314333031381550135836516824759065645708902156974929707523995122326987122403568718868738188184303620556756607105304701775171429200755925311304989072766549084375845580033775033200002175525366877492554257671106989359040464699530994802863739887369126384674963491731334874033822868753093877354177778620087037523668202813834667430260109756999418051808654831194579137585871879973803099005034105506653782786707662867802632622715465509145868383930508465106054319564861102831351575965680247529464334405601195767188264956197246142805135648342491620924961291125047906433167115806385553088034665251979216825677640661912121724928685301546665761430345600729396818059260048527784862348370577602487674194597972721222812148702899332644255090163016194512588053979556262992902753483679322914020383851392020662861474004180412304785028669794030705397350974055899820459621947699270665213352309784735985974521471215458325258716820881066071849760747630935939892065934900398084008966100807680940205861123223885580054944169784023289679484464719214731141235985144683642967699409455811275709842715711825105307822572328103901519934061552674583696094789291015378962380173164435659108675581480533046505533867587130212869651658942076520544811653802251275386514498929276843551758335169604270071162596358802013210395286636360942087149432321438470794539971853250957737839602218992893932769492761051264705957291034199732388571132454037453245483055369817960091826230165826996851776543254008742309176169644281907065175536178634632512675414690529626932669441255290254237327455557606362717478863774331299068935569905242860860467917055998268092838164520266602845793218017300563916031042995241010164418405423002772284187744951172886063911251456647121678235750356945177486374325164628216725570607742001997790477040087209048975839805874651774928842338872938289422752001484588389751141876613912975323030532308825771573934023633745184831133125397217250933578883410457588992711213271712466213590773324546290257388705971459285099547405513982451985867886103353825864356519554939720470177197299361231131969200187226034618370271748838022424554914394700037769786260093464643431342055598389482617477540241160791130433737487341662795587468700752813025864380139221741432874025480845840206271135946553919648734624338026768628385400043265496018054815452071889098933884956735012056415720063966500501578799683162099567976313576976169750003862209299210456280293482579150430667893389221006358627677224207555417015393064897229634088951464639792271873683746941840857726304588965768529587450630288055426864135355167709410234851847261486989453878456007984269138155024446811150606329462222900682700977600856302794820880227211067087313565459298514055635754345919302361810221028012141992859977867657640015099854540738666710495165918584101513857972658001365944014188428492940779049108353731649566880698879012070859909481907082522863572306908488983689340263042692528954776977636410894449950645903799821861058956304853552402622867443049378117298336256715781801442725416167629604454580059986358919236000308571745918829078392748463485570621285893656079616214014227114590747417948954896535201959550863485434525125061639624915415642663754337206414848480263202688511076033969642485925886506081396132052631987275065000410731936048761124096602904971709543226739530603250173928416354682258329193744369745407185590874437895434019493294175137395141957791888586300671733044447770201874361725854738065439418721964941429046722816346830852930403330250888009255712805118569617886372740248846225083570432369994528798566448750667641946603448890224005147703627867781101396753925798545120676237385342045897418845661173867210761560558412710916505357450869968822701338712755519329661303153091507982956854312123238802440101899549626371501490215264167206679552944189621149384306262001381491944277694015135539775013513682680700845924374216657611159021460232489031577829620281741781684586284912818345528660501033960947596084225758360874378224909221445815830444858970451101131829898941181818346567741673033542392186568781812430535240910983463498880022749209541846589695970639736520942412015085903925850951895169125074703450511026956295659065886097243453054959449190736863805527451772869120543727795992619837710174727638133342827063500763583709003579821544612765270331447231226098977302787183950038868175144241476538049019927726171942260984706130589302063541741475738079214664486032752743699940257094607940017896528638343262548687990006090629492084904781891725082236341099484621062855737239887953488293629678124968475453347233638380213313634013245553109817953975446874777652117806606822551085489665868705571048249983704708229691231902836273705543551724784537799446125886391513901284261795668198190680773765620835908024227546591130555237507621331621985052786190615512616329340555490820423485449140354878852497938208500881595120864807091620577817521437680677514923934318282746571218979349628010931305648848746245193762559901507029200435889578543964314367046165931764042484947435553266066313228999047809366317556993979366521075063354837121761164096538708568520056601752108113488643022185654989810143471823778406051402598674784978856368545034841917847421925782964692258236618262087954327700701636819072548495277711653474393669488648129337832683889944050837472627018237425379563096295347023082176179342304516900788148445777173236301045776979618519660121835798870349140358433580349480439068809199615773727230154549795424072744739260753726264801271074487255586337432804620177648974179439039833224781138716927995449074510259216490565588256966163019238857179929465438135674130693974971657962809021675896510953975001335125832393299065460375550629099668262808629409736560293678728245029349551935333689314322449030008104421474342597686880573844647455285258732015311286672858596599488803960338108729722674597008638576871474831565356330603717240011172473345004888715480542761883763615609092310353295502408081008476994418123974099060418656378378977123030639449710436595303905671196899437483889052169701901014832964791127254474582655452053435955533865966369734987927948719150005004235641737121565849059466699574879830713729370567057252171389899270443056561995086231801235363225016636494829580819938742212159247574776812676154881317254320799902223758700249990956833877187618911006793934890651304252585488002111678671918576040967849352962102224749456316521218545487633127314205386980862401067903565017422075376140171647781075801413386763699336169167485095923193333289775090471725219459919822901191018817150219672842889317165305506699821333157747517323229368002267215270666541778788168640422809266820882019377387747634435632921064341202633327310358647677995628928635186389294291448198732153339627724769338056825971142913174844090929543503624535408147650666690000426104003809784887723293501123796152333187112842648558446607259513541305439056033990924996562115585581107616020079329939210044358456258650912334035738777826886470565341382180894466837882717387884614072265002085920363289044494251114703959695471924066300014337595349061982091820246527500865023081682181869630397275199663162060900603475960860067433743889639519616937147619179594946130321144350847250790276624416168987467947907802160293895978455729138508125623505140716422130685936003068080616637586819176095507760894560712269077707192703945514205278759150830295045908105388848549272233954179048140908810814718511153959398783427059519774287805663951447218581737547110691587014139893883970631569625164053914634044808090035465023574519860651396703410749164604247437912057242084581087907942752989522552617315240147471561872615387372687062472853363591875350278426944112628884768356607961714902163910395764000885793591829128725304654171019713482253816358335626425027799759780265583777647734046790074638419711640970116358117479656109950106679195958002352168608988433765121455213580851206994741276650575578468849484444980384778165071947933447187277889552542430084315332334598438839365226438467051812225282400709651187819640272296687554901018588248423640756228710862785811316915877235166353748097408684408919182570229580664019230425241201640952467157298102312403671059675889813187352995372290356607775295334486904941139753052715490379792824072975841742073991153183405370529357804370594595322112150897214501973151157008651435053013319872251033548040970167408099758942950729019467826870750423891443200651188220514122917928264644378104501706035086759530710233794722345782734775015487830391402863535479097041424868240432745204054371464874620976604645785451128168573076833325357283505058634423172183877867118996679376550032870470258641855348550997627678565767090932447541009894671163609836433418771070520162857588129103809370459290990516031191282650482940051345238361621228630016700016939666377841997701221610335353694905940327420709108449626625197383005921562061300383592486603611369249777224985598666934326288137576576198278649398451076362803380874244369901378333209345437254062002444180308546302854859941105423344170947866258199888723079885799830992544531695725714451687133465161231286027355862195613259366176535079574115526740234803254955185653469888607742590235868504031968144756016381143456960643829221466510162289502426256700791437382493667082049465161985672121274161251801167784000087605630154620492590755793702497981658683468034139397830300215933830317076657350148086875105315529914423778961969413558016000407856131651519327600174631640140620122626291299496911470692995194428120878478876230459286767053905643852196131824378517008001235294700427931431120252876889670844512154196018412875001891185778471201790906937207395865698567534797871170236632461942241684674355528388868642429525311375929829220519674005314281934119701972527358274412707867354841788834294390804440242589388391957861381310972554337044380139301164885506113266251659868658121283830078502991621959268356732697625563751111668009000823084018682202086680492821928577088950292162190286687991157317019704328904448593741192613822523805708557258219004279728025703193325304832309372191664424771663086897892773573556774220838275322750563083232389028303770513719947177503666608303095356929605734033754663300166775337983025922396691106685916238398894677326594091991265760730745468835223853229929568547928315878846981822517939197612099913030638884329221521641952521808401731298075591197695761911629949348166332369376761371962399257179090337511301230059431780170829895497831730850667710949002581971645546774383947347602105487236057169465156923546637411768582455008233241238541520977568897397507832518346572732891704757238359051506859011016632018019185464214101612224341392230145238434302749516574776051652979156400535477558976102931669959771052549441439360297070690295953703561643719751571000650090508688494502067648929814000831059076373980116064644922330365883489818609525402906030677400972773820505418772962210886164165706003400135164004048002578361739416174460050313020951211529109096207313215189439245078018208531625815433793987983513041489753352601050116247225884327976934921976032449722095695254628722468378325883069955497527060184174574962769266556536644122824300423557550921597627097969699629311178747489147173531910833059072456779610255612385694812172740394333543332108313047031366754894039287636986116012731741589950946502296783128188237955182581713049461373549649983813188418089930924978234597030718178590057220283231266604729014999434028987177208837195562362821855374151757200870459006332408877072169262294556875259573319387539294684371116376504457593796256852851652175367966794650317550783171576069018817835344831526430120731163505106389882388468863984994965175469414766599934645371254303673463306702698025792999529584878617397474851824708847496754912057933656925872379703750273649551971171320470101057297091215855992246349288570133728377053835204675256253709767548398888541128006049678674731862394277735808390918109173757667664874117500210516784492096492900721200269607784954329270742237674877512272208418300567329399022726502628839063369502059869511271633846028498568753568215817030177055138456991588061784327193384549005933573221820489479597356098913026668700906376491239711416856888721707048692848039385158891614188026673994555186364769988598022900084559184927108329942968723791538538063555703886977821221532159484046299995035595123942419368643460596223858208040627548025692183474847472069690768543743548079798059382038886798250342202180580734398678418044836680033185669907245580061018905726798811276439940133072158916191358797262927960275606708529821105664971555127711970378533242103984785097698710593681952685417944955791429496633878631715312808029804084665466860129212002576064741508434707104397626949040474264400406714902073183224715112386925461024427675281137698758595889363299890373997260599556889144952778654197144102618760980711122501783536273454090203887655048339139464809835069321515269018875229092990129525867358118050125650825182972105163430715392011269469581945387526433315266886950769742974405005510205174836540913303314187324256556084150769915825166397330310761071471743543252847464900642997334727669836630329867273417119132175922210596924180644853586652898125214076270257832292082564895837394393152800755352554153386250819214585878557290545121593752763809906363716663566011360493900214489824858548271079282298339803833624295349276625561771003043731294233734879710481802372760101032983298486635807010977403374311521676113590573116087859690487485629370047934011465172414791334461087529479259361733981021790699554464888836792437981616499765459272106142764783147563321616565265485073924736266044563079564900715419493948565118884594366610671496533134518908927177901058177243768789683454566277692854400717440686872546942206434535670868450116340011711747415297227436084203979334983314407145931885570109887232867579843340830577717647764525070819614021731728872534543834928354044990606268220154106157982090088399145042108396376646077350757830922035807794852515782682205036598867537854997177745505881849270469020625809142586585640295355021914736525880938892945782729651311341764741942059118156784281249494519203421254242168084589743200851036467842536718954545763675999544724604750718706881584513868614413602110245288550881591300977458585843167335915282487985917095889135929543454448707579216145522842592948702605010708551579563979751785967346007081257279753997235047084532690507517701102154881514628017575096331555359522167066003779780068269822256160235166424766455863223671932014844198004214115489947219163097453757938002373356843234069071421643619373504826428445382283304936004279040925444530574453381028396614860340642333849163655844119381492532323910825980718208434092241825729474607441722352516818049990593277980865924504184130763064117330001649094888188657591711873444407415446098598291379784005198993376322138984047506058553716005184427494347308895676460209898844524792542893921025772160189388358820871031218052796037726562767742121873815820802453606968988447347689310932640034853913503503134832078572013085315399855675831140831852802961604035993766754329441012482366925500864469337957242675459696579538327852699528809573766360243549774729954439662566776051983041799356407232015084613116260447126993057859178110729232511147018955865483261201182514197458559918185520251679658002673313634879290603390254839812270898227692099207089943549500937726684406717666148382265291031450894505718167650743086156155435206152676250801335457616317505835297284845655223381103757544824383507466127096783792886299864504526026124487414054804191180455403135324305881745735720221985580678099789767896957192860527490974619869738248308741265620934231411697024336210338580951557097260970535836455774216164119763924752598064957835362968977230759718090223174441113500375899926025972647100357636604835451473944061412928424234107239180501790804325186727018342853394584694223302715720264819815165701551284504953872967771589302222441477953019505759658820968841314327661552199648839849737225588036387613220436375099312419921127233243367682020736917654674236873954215680235120986673001261877700226888092131791223667145735157048571517193984726064935164279943416643494192348114178383128293380589265853935453511410482285128477011360370633314940754403267573770060257341000348821677324439854254278955782152710667075304069529443574521763981377079389153205738235673301136448152713669412812369227290559674446187499416356506395091496842147772567235341036856075522886045174958039436856399008874064362770170079305790003160867101979927615328564396114659235698682982040015881824811392195626210096906220369055706750366459881257550355099879224014313719538914807654337666978658352339234459916941285761081485114140209774076528225292027692601942351876575488484650715762062480979635502032782940268063333545774911317667078675507751881416958425188308061990054092044585096308199905741730734618598931420467152055417740588439952229925992186507025852978592255830338560005596821671666323739317662348115369005952159855559601364628651274823483317933971862383281577914659907553459663354323672055613802448006476490589934001487393198884903005690009902225129851027128328699480145043240504007028477311416807266267362107827893230339887706949611771217514046250145711361267216899675086004842913298201234394976633488079786787647368371950801801977456590022463862693656279890040176186936882387242788669676245065959751595020237546993392362565978843852469059081595339784346692697442936822732137347871872119544652906662633549082086638405072384837491953706364369892060757838306807638471039282161245462160683481281417252827134441728631757838853383733227972353456675849011478211251937887717509934973406589803232446515157624699418641282509711883403846863823968627102433301209442776538162895989157328226589302509141444516862233032553153351069130252410617790531785458550100192280433010252114762124524615492683819874825471746695575943849828719840684698809132431724615862783034871016662645082080309921508665967936207367927992779982575726111429046335496198081602006926934704280535908119695281770817536507982125142398255186204561895005096626090024746265796682536811910661847896956217663024477938209632731532368347848298278230410046548599366380913009646869383810816648852654916218574838237610773955647698619742527713633508992792143789819284087110003269416513941471326661837174837112823805540549276411937027838769980150582446694824713273178494388556014685796422671750180510735060947265122399305052633454498974032353426361584626890095927471290068518461637010766046046601121721116993517399127240493761799275659910220408926890409190331662441848255817359407103513968139805540536260178675203558547656945821112857436096516813163247228735249748577742288082695855641316205412139436715778797386169200390533712529166438973024561075750872163157360058991733529782084507115360119125875360177216229358411584659391185986396673501145009188072886676216941865260772853645630210953439866383110051049110435278286040411853398085119250681558574459260604019352078912454760696463394632815213243382775938497765745665257087750279406164855362179773718650355535964911666743468290105531718191200589733279902074387646125751950354342236654322101988615492538989377474978043356089343639973295846691427289567382364773480458903266086100901235435644452945793948581359016989197847030235497183142558447672415177108428634845505145976847569769486894416828285610568943679491117281662862027845519612842657510200205052134719980347677043373608859388027952086084097728599876828101385787286264509562769221182119099904304744178729433630822928359765059926626596526514474055617989164151834223510666921273334773054534153074205753253180372594962176653795397581697352619647383021619679531356470054691692035608611734874359209345868487494949518755316788054560696500298695572028573276875116833690958079550389349087436411984615225768982369696727308430402295672650944571971481789509717625128235585757718314771501359945442635657711062964318260143221738362636135058446354053295928805701330981971224210132777429675061028915151079313424438077879977742962950514253151226634706826508430865300014530663141887140135551716560492009224402116643454993562645588265962304048909590221710850727434724897141938680811270471297928555385246959057793142196188602824009253695534810701542618528940037170964865652829164737517893458081898492853216659817898785032567809753581891156139972318673749702319258505273718595997127655654245386723408288511868701407562705320060047188256143079470965893421370672193573770148900659861552268031762363031636681271676547742370913758277692664538706179434719325107027240081402282046652291295642940911283583714790698025190698751566535667798297304252500229690519210516913371477262802355836409282567177081199369280474224125023569092092278849871699118432944028013148626878302057347559449276253133206953720037406657050849135643249199771791905999489012292088563319941372260107943877517473012447664368679361111363254454661407689158034301812358181246510862002186985990692679258549507103010430019239380961151546478413591971285553850052806471638276116583827165148292047344704842938705887961927240705570441687433179255065645287794862522339650654398877266618482842508852360589796422352551501672429927295740949999469055847474552019430813852507327308959786030702271236165469648047166962729565400185407667991723704597685686821353142365896088672629382615092026176074268496552116934519612406995716814155464299550152267318329654244352693391055499034307347791699191768985028132886808889397709374815717527508502652322278665497203737070345119452579384954514320706083508234541154759518241890605013089683976709849869420342157746686530377773750205199684639053085729947322184551640338631167073099844538258771707294327326231292295051655713516995413245495387903466915537294581479240232329154438222722998392644478611584441490148882724782988288624425821099108723925524200143563407799627733197352832460332144567592225764717126485245703613366825656900774639294255076954502641701110876722148518792631751999081261685206460973763737872194564089359255885376895287982936276380762794584774925575951659980632903265595861895192611460170918869335580521387186438241183321892916016617904511319302500143073966952039552530629370344244958870186827853874703528721786582710648879114820012104134371146396710630433598498740591664312001092050058342410300018095494077420258016757532766269001772833227465642902043772682248696949571031883995011352197330990505991038710759032836558329649773735871337555261413997960091029286670907546793598423632088336734339438727850907572939472916109122808481785700354332331656851668559660176357578714129578075001885197365349143549249601180804400735065364057529959795444360056613646803729362391823284529200538927161253062071897596400649276651245999267453766525740923653550639242443142851290250166147038342013730316540441259962764357386293603788756416020366196291143307990939693083353969074051774134145854191313996263270934318428305594526041282032671847575735364285883080111192348098006070887695053224918929269285109605425139517414256215755807682733134135129950416602459254919018185724744439895415076918951438508539450941339170225425732390151606888472670134083655789635472119854682185492842516390001111224525091329887857437451975573499656362288202324787909188934510079319027267536122381055207756857647952185227971757424782899463711933505588079807173246937192738410943674560613845717846684360887498299191913349402781042579779600148505912649173845557907476587833374475791434810187372550480702712638346300773957068212841293468835630790238364365293082898486620811735996146382228064665802119739086485238654906039342233500122904643091109499546963323187233706155793228202237404965191625010436199602687112292974660528285577186223083059127457120074123803369766459507330149348855134323829296741733714752984819318460346684981503747974486114915586348462362753094906023604302153235294755596112894179849445543508639854075428275947304785183162414555134899803090179257361264677160135753965285195211114927919994025746387721053179831362866123819771207367553877759395261367007159534259121936512559602783275731855013632219412874292061520738494253142024716406937897951131327375893810037408341562781005598398268870228014454578597806349981049861403688367641810040978872400321120747234463285885583399764922772212591693607289038702175952952791617775345585019819364311560827182161712548697196558489007467989311676474440389011679587514659329653686292608587994358700652256271013911972173773445712905385657428787862333800535796130844748225650369893536881703161252213741195297687078179331086107817671023886959133733718015946440027444988618141477575985798409570976513889601235686846513412847847037715018252327785186196850410295998781241816350650696563947777809743416867619288160595224671241626639371597826574318694788305501628117952754086366614344898503832166048084028417920084955637846190693620799068072743251866161442330214288163113505220775681487809568292166507022160511032197392750732331856659699741357682227903006881696304036713446777440493173129840358075409503953220205423473891726339743413009158876611660315584654916502078796647067172477615365542573743400133147122244776750768645549694289545130005437845294102327486699550028696534253524276061930603513808272614189160392731221569488513561381940385313092403740339344586773303947142519073244721754525591656893709829147859769251622826769215122682669262095355791169012320343593552767928945722043250481689573746852441863377569996348036904677698275520679209098263033744152227484615919439196528105521018259832609188843448942730998145993794792951002685601101648144173295256928348825116652560144133983354830966301752531677927244102662334626076074151230731316565118345285715815004772493276194815475564951072525064596154771412258843535371331480664057726632530563452996664903517371018605216304962835360436404621866140905548505574798403837981348038227290911098327214086099695561715870958282653033727784012412688656499700302204157836507836627390876034572328309519907577579802076349725761043258279912532575775319070088783084851512637022163764129265671064257447614413814302892055875867686428503352866780998712898806530378669793799100225780881490510523464782574119235312903484156147874904097245670033348672789586418887973808558859020493520625592155854093228138972087218666643789065492726665540656885130676952067912914525594729591920448333352050994576146258360491958551095722002300700441529670687905330736151886212070209386333100741090398066578370892933569957594004253230223929660451107939096821701733511196113927249681703287750948685477431379272789418089787145239497889621062630020108826632171609723992234099466550010538329304582267106738362262721795836181379702749326552426824592195761263412849250536027293486915192757052894533256049675600948452988036622379288029931933180254633857820577397532890087768799319186567776366347555257660419883691115780308955507219933879900069241004473810570626059679395996024334231453000197180178709326887232940129198838217045009009930184177937184442378524868653616183052012886765385447301761561242396871199004016145127083517927194026572453365358795613700895466022717968572758654698879340241687365960077724442203349848819242678369352645673028238903099805934953103710548125820860928404827948905262964702008900535462798032925884919274358346025174605795068698757362001191782708047199014525081796655654464469643749578586201354110628979573860214197899963315223547008359831902285483228798426767688741154425286927842429716434592718207081542067678838913138582963989633367009672696759964187936891251556713971068938766730903451056814615456115750333611691992714284817808273957080575866616282343820020107513853169846787529852858693762575762012063277752659676378719600123318885518899612840259131315383509786328313871226630419180412546522019816503562881354400916149321956517008231577631794206589897437429787895544932796875057706830788258565080269944705924810624635197748948490984961201266005556837941792455813189285597967092022698607669421819009872967140600451593339199969699261152139001092577554025299491094950211251630722387272953134381241280542660881737950764496886888774217413834782112367341147049978709666445977545780318500548595289993644908858040943436707232505724407293829485346584274127251479145738313311756318353703160040923735561930068186986080934186599387433970777787153744864560347336184849047584921169741684814471564626075350276371261095822770325763653818149547922463898806785952724854827950611553604433274906963289858240668799569052437913678524851433179221798698568507344757729276109877318467037573376599609003436879593471215634467327185407205416152464385504656622624672835162276609228978139786942155163322271104793795679281451933311800637678120327135587471235245580862897447602081579713189883938597553852524688464572331655307774974350558310133934986194229928157970415549076212072310416519203418115046232442209366377297249359822042998857677937159738938585513410226195899542105424200128151082102441616256363902354250356425927695304348506626741987160259742318864027290448379033591293906568486018820749665227882284961217596386811006796176064861087193717273459360189228520196440563093352271126317490556687443629141103661142346180550754536142702574331682690547905315527434380028107016006443891352956428926427424684010253159251321341356840149153745022972250083767383603154035133445898537460833310240981757751388836730582029387660352938153957205888167879146537428818489014776932245956782450466528175448154177770987850837869718272908238626006280386963917620076419791166177064502367528576528675579066442394168962420414941348055950836939303068680452523011009865762797721048215409875796460514398450930150659153435599217889305910993016563358999361338395683080508067171586835055531809585564089994568865096959145033727144628344591752288950082371535164822640408090765486986036993081212425880691955449202007063545678548593870657048477539124868226866200520992366777658305690086300551601958923861880044824088740437191540326693274222354718451114933944969258538947934695965944689449661592777340747571554873845653954448063674699214467892547892715930065036498854555235750420700095038670394207870804307247008457543395487330750443587567709602549900853168742338305049395151869668919867611330527682835238262499925514619466388148130821756845884809259346482357265440599551107430761351906997131895124476845764702454635096039655321542608260017417855026347190351902531630114988648380144167798380552530608942959306182500905296923157703273792052778869690411559523349639274683196847524253594559299993223042853494178764942847336944741479922690930559025675202833730580038836704359242416706708472549390694988902190329988799645036901421438662887602245732077613322946917446045449154246670007613018604780750925668355814620485963446392003993427172039850135881931456010452311096964534910945253341331476184935710115028234681958389270759608206008172856707889200252903011028757657754422356648019097677464346744103187668331835946396763216678195068790499154515477990880741180269096414371687186850419372833521199560973500660824139978796001701965790828515462833839972052835969218763985653160817059942151567797137571481114766191800513498226498513439054026419911170446054508240017038757897531872471260020215967235865867700787581264595924323803750124630236149217739713190841490057848534934823033385078573731248462842040462280335751896130172086902114000855521354581753490663427342391128122550832577166724817127596471199508662953375299454011381652506847738475652002998567501922641760995215196383462414646317642218881072432106106864854377561191003606095245795527542069412858886468926190672182225550329789360377698918920657667438613491022258859052206801068443654740455027329716140570305991317573594204831107773025792671053640765796475200292901993692127385771161114723319128005970034576231573880508058824911407433394745665201104245555178695690355943864341251523214466553702835572865215008597683065643266214981266748569037725830151939912417055273355087850901510065091841178870469827630490803662596189263797049004664935867935702981247912532028421188168720375458160386288756328686330510169925577489168430376373437980533448956723903392261917755176964940504234065905878435356603967881318340345566494788914161679863380131112873026719160861522354483798408381007482549124396826687125662120435877620420165810873233024193323553329990605972991943553658974997765192184202365784084309651662538284335463709092451111175908633273603294715989765515320317076019480868824638113110941268612941664972359752234188111049312270572944431775020768910284696379845197425126927504951495485792934145667839745058100096555942747507455318907428599929392227688677713521570210032787772286230132627110287907130959638742089876739948181249986589251274214276375719524183137512701489846406801948818596969871437908759258210091681279968240470177252055518374664138969318931384666832560489435553846480611590445918242645525361460658336486420764177580542949200631666392172336737874307804516612018289277709667860738931689677186602858090373235208985794127277377990372835977321233802613243061079823694717552515163133389594450823391695743557851705596522960131956111128819885161524625351933782301012327074601085042891839569760224452961975696690328918270659316550593442634108263191513920161187739952255306925430871093914379185643493216285726250777354926352539331029543490466399125720072362880198763539338770379032283545317877857851553813701251752989857867794383362579341318203190538087013754192676712139716090595827942166114861443228133183025085340772595784581648628666399053793784707235949149304095310234952902727783042389675064935929607208622072704106625201522821515352898157546060593322700126707098629550845926575345240121680090279333768851136650875398767668320515103433308607487628626259381079063466813876839405442240320265647782476187456031559456895579806706289087941719057407195491376113907346627071981179216507620075363882500691684093681549765184014537810221907350232994519594312221919149787966297679238603819810098754326914802593064637899990159389015452784331803393969866399182032870682464817836515898994721328619005808892616074388262968190290460018573863313391116087354626407329389635918120011322722513012789406426399505403456144763925815312374911473552533119084271791328195963812555336206414104968320190054001968883275703422090144246201067379638974328483908360836119294075491029230843017210753077910059577455568063757297105514476450827528067912623645994069549805684113559024642462987824075749972137561412904525368874373247334802248099980809289467860000903620648595632919216339829271254046376574071371431666078075509493447778335017262780579327689149267546202969447998215417765968459630644649611475796457598053987479449830433673192979520551528286785552082010241244797702048654922751838220370823825751574177013180516213449854837976482739726987011092491728979300107501395159491927980841026256316608919057224443282133423607067030000603008978456005982856178317617721698784458342684991561175393431019283170174478576626486109204403475688271597799717807128487142134732876433780622321019007379791876743982512888965520671872896196566810162814091510095000020324816764452881929058382142404974413555340819628651765623470171760971316109470515182108351081739860643322196708999450345234439494934879762333488584765219053594739427033001957383664008986728392444369324669569016759622269904014602274103102650913376064203369866419721503570417522876276720368502576148909704275505184040642831635553715382571110609442061114732591324633362599868169751563523809189429424825708026051594050916685278972049708492484607634629142019064413422842429517604748692476504923760580875231944579308436076509320551730716765698957319599465822862882356495693347917157519919025520588913179002009346816328431764525216836023035943716327664406891824384483092653996598564837036500867538011803788427786327662446067407026998266737187130772357996065584931799460262914827292646172053891702775455727154101667284232239718174333836137524935698630423560596911676586815207250484700772579706690957812888610444484136423367409791417072367252607161062906102925848357325361067784394999844063488082887501425875308619221555279289450744138270466292686887244045810881349926145716182006209361053765108246428240412443878828625664090579087572659290555156943403635169956451305148835407031219499845324369438636181417416348156377149985293405406081328750827675540752694039423155662099091243117117194791072687840465288165357646878309474541307689160183230396671575171696632505817106562604348071109140065958059590035063251302552446292818758824404674347528808865787149358393426942002093938305242827054122983439224704675076913831582424548805545521924218497742872148654030110499827501412011060877165216356026911599993012417655319719816472886333619959807572091582299214497723359573011952888491164847350423925068494989863892160564521305826153600857282559348641032145916340424755235963182774880078226764180767950050572440540596677953148489019856407260835894228816780172590554940558612885880137388343289953160765739139008067442284671247461984094772615556827969823682499320903357456235191733788250461341474900525196334026229824618341579209278804824672904552363928021354645879516300900050317061652707657482354715507436752216746457391420298729044946299457404549004995956598035481106245106719054704346633587877842867557343872329450512661922881305784940180328538663923177147101728995001696409016170927184098761288861286453587131549896684186873239281144867888157362863022415915588000617535041608908019661017948008648854691912448029588656744516149621372259266713308061503687096913363682551114255457948128632895942589001476644166692593271827007481294409564189339012228018701434150947814865706636574484671779680899327899687959183433008318902936379608443113131927109114771706780699664605074308569315366179811632954173426176335912646715003745460402849407649810434080568665599628007463560333645620931188042907944021645565826211889554110418634228987558805448285063671735437181744745588323506670542371522557831533855511433833384873213367979212089750146565393721928686582806179503935320105288019549496629265821234560144695686563371694415054276416203037162706615867102659055914528532103793556802602603701190208309648691387161396673024639024587337667191553826209813304947812319353145137895140259085717743032221086540514370735470134533616841073096915256975255579317924499308524906714617120208788061096071073738215151002437458188668237320070851881507570353112231555570611832141266796864027894144886651767399078634638164783790921267394370215764997533889397122382175458523719538635213470076341619109841411410427484136050418762656750184924448314698769136574191413064756649125801609843793728519815461490274115444618802203411938615098524581864757540648126883288085723348854480066890077285499859171949100494313154508504781084617114438841331052388677763183483401390444370519461244678934257334052858742323227485721014195785292314743554610138024403656164226572662344700934452631499599366422585458552161740483765189542883091014278076874784971356989300667344034812025068525386964086056488463675935939484961252260314950633951222367014500968048690930945181565927244047230327305632242933746711557562831071720742794468118499220533251921203859906313928791045736251086758108577592473062621855664046703687968910214178986969832399410735057229271716845453487863813691619482343682686081395865593305725733905967680002523517768045230312623513318859500184458993667114228541911318966909871796637470062494260035274497630453197130045933221203588466964698821553086522168810845334851819639290947466124857908730986938491424476468889074715629429804569429740066044438952849621448811758596283122120572814873394675409472576541372870102149888165885522199817660623809359693793341101765467301614691722082132314576239233921120418388154616972414030155314244665693048083772471025948407441138603645953980207074698215927619057882692451790963687362896971361226074959903473351136300769700732724064809847317173232787498200605156921708896334376045795349793417661185144658902753328163647126171276292451048075384038045923187075799696326003253888804864167503865824215346808057062948462246648902677096422495866287657535610431114851248217052370760397278293131953848325936790869463045160097859462527535042693365623048023333808118392955817536713987896656163688341664503016625237855716333636359041759165065823652183379361648050622392054764429422263293740110246358934152791440302241141465224390271812240522242865145188349589604449285600063827885980087820546268337905681434502070410415978457186720553940334981624895282171589006494914726412687068398325403766974708390167111990887735412642076470669219622825820070268255755474341736008762745591772117624590676984619308471732994095769906925093640239880869475889216688710959431867611681873964511816242098658238749620329749079322361959350672262402382519479983780790188635730772230346712092144749781747926236474790137098012093597268910744141048903479791131453908740120331858337510700356182262577055308046602573348822295385620763048071432246761555068304197957769807968737608012701776575962469301795166198713348543833349994769624739999941945277171239279446775764907715917742300974166420898298362801245189138196648596594720618824007371541292431594215233441740863948633607338547069209925276144207363972603049893191390980521188220939660827922079439319388792233077643232920980140285289320769158782993468225571395006067077757920875757888073773327843462981270628182361058418231332251090355773898917947753418361827717875277201063156937086118735412755486436289358122208074020811910618509312040566575343069444660914373245246854447660266561341752437986785550456515637359070458767261512189375914123430677694563447490978658735122263440659241278846954832571654860134060552526374211083632953047129514113817136244058927545391858510787406495835578071090089217286900626653022733190961768948992210283411000678723261404550545252316296874385563316872870734209123686827144470519849868086586764544965934211725657755349912886518037306804198500135354932476531274799634427481418258826091388334569058561184033921011195144301893885847421456304626644099416900702420667429888339810336862848594506422385016918130413069238845265839033877184673244190021296262266365843725782848863557945498192748753407127183939221040120322277412828209662653397969820329573843019797427471117383716247890777958383689136438729796505770704980647233509939318224910511081437584324121790241055856316942424501247518055643962184690648368101874049487963039152932117245868611557254314479778753653093799686969320786867423158434154637144876720338196628893128044713893637563412823511673245539473442977822819282471191065959236184752111119428739363635019641076095241831990691422379927288899776685744438858599517797429507833813504490922974195089912177172834408298656147907309147645603059161582013285881057499840673002539687405337404094221483585087161099355858694377745300641639084573418963133672208967715896662491471472068746873559149048574671329379303996813471363863921931166172572648435305786945991928309531948656680371104235575328809765679471980330697807743799622512020584200050441667835750801845067610865453344796944047349706774510561769546048884968712702997706294315587020707743841236269909424080317888041279167425816233734339351566746266305467131424212733873072704442134440027665837958325231382741203349748657021229538174444902225776310179209273555764580109757184192465323736699127370685974541725260437980416772831922471133433201241499222945014319607657262000956815221345454184797392318797660148087940265591448112083358571914115183202313822193194589572602530354461369690410126139422266485237795262805948601215814873707494155958276015709005883569179057900432743624234083417174335177209769874069370910538247768628841689745428033990635606847187250278211022392763823528505505538798195205588352463401876465487650587239659483718392502869302651079024411144342587953244390288161893486104030000565156180075756153255734292866325705414749316851553955653486512030965128922132755619549278577736293235165054868200829620279281422312464828884528865083818018343189681474765304094982836593923228101109976547405647649248439739652093065028918122788613189145681725626796765855667593632819010554055711725574439059469724461391586009123006676309765574023506416350139912711046461455165842517749277599175481600744907857530233263599240157022550204856921693498795911631745169406056966369345695801956877064830284533801406335422070755202535245771083026398439540744429452368926561405961615660237803503348711623915284127479265471376568957887197589994421718168477472691968642868467416215074119319196843210583682876795057907455154437845239417111768791633031228425867728676392247466712133122324208130776123200191536965550880309376730673911134625602696283748023046824034781892315149586414617043157872093989154830881389678205879762530937863546853064001531441727629384741106885128113582335842493581035455115695234456563653361647530538476965296588858945315319468109884979468939527385250882377181121458111662337912482829958456324336998826558628275425855478696456991232698409133893455433853537159048995503383576556295698038970398767164744874385008276881489085714561601216808823652730963754683217065749067448576940412370198634089432667236793738107903654652191082080776500920260233064069427694342069012894751342197807192331170288062688476076604100481544717152532757048674022500904649720218540267597031479743102788787437450754292629350904722939867454538183295351965456975790139090515167528938723208656263181775717806810031130340479648239684390999849261032624502313775245382413774028715940539952056280237726523461138793207005587529965112005492905989848081872816057902198357697085091819009169785739189609101484274822039713392554945632367546874724319380500720284160638625128932711334058977861448130663693002757618991640776682196610545084568923155109507704115512262834287746767047374993122215912633397772376656556980636267538754724050677608663595343478038725880093462104437900779277251839822392687236831454177287195183878467400148327922950744990811210252497266679112306947807948575365579560882532543428446450938467314209937504007047062197888404406937369076717635318566415529028748763911486097547689353723678344353491961238901546551704541968350293369406103705027647575138849817300433185200318407476154953550401597388036279144500109944411937286525746362010199811108010334467370339369127699498720635485109237131728190838593078657112322410732468748136116948375012856690585097757322208009139629480268894484411655899290201956155854449299840270079743721392328498519375360293633680803160661085286436811467101161681183132412874147783752340599044800919981978190606265738393607913485212776486664974895585812632483110749526389049876120969888505573961009948310981346679877426615360372048072018881115450180379709206019169876394294758732140851772037605320127393880967950527341015623427496406797480100896591690442254536814833967678610369505464541032932694874610366522836982942754541736698739815844628657113287466270639184739274743849270616958645231016867588878320727826650249733766367117431442554844255079046072369398020859292082639433520961339081319509965895988844149814487212232939518148824295243284339842786846470564435176188361294245287686970661840683678173176431110069220397756149177730348070225644218072429252166547780941197275198123820071431951814686202177379166301986708308457362887058486650111331136909112353443928582710409733999376813400194733486050648833834153693418967641448165219097990057504787042955541868470428757996071642494904676670561341305053267718751320695495349886337666854748815474610993474360694773346677824940837787040549607858598215561874037991171471826613495982867150175908146858412455921073344484888704941340015337711509336441939209019665695315324747659107895905247770974770524072698640450885705501723175751366380801622152897734099960994708015392531457167885103675939717488901154478074725653365309457269127639044867492009862765557482551316233837440408194101204251939465656842734929201397825030125984914047647505927379761892858282881689380142336672835666650383933344982653936507822031633081647870568295702886374665127747784453325666385223345166824325454570360900598992428526980199961391992269714218058352606165000114004021510790605995348171646875222648629993361535945293033024091814755029904464613204802301104556174036792291482479619077324586064019076512521864884571549942447936881689232557550485082775864373579700817838903205095801149298286317933717584664058950201484285996998849663716830633776377946534119128701562000358508250204168272244527307405883406051499973009408498116057354441939769308322132169900699006861710100135669286831912469813063870143398716056997051702718074752589555886002427726384071977504171159336796391449802210627782453174174152771415763950627586045951662861079425676383056887402840413819867938814804962715394063614629378986174601068243183833812500898288889371643874150182881058474377204345055942433701940625351194361608199746453884977016416774054085904636058786328138002334932751370774394049185942377558199074110921567591709569553913923657001766831320264471080874657055615559439801385926549451419001576547686908483998097059437128182675810279003257893897609040920302649188082663519754312486729592230184889107317929961949204136621853846046591767451005004579019950517684827177853339686341400381803281259844045278960469885730408389077709610720996611271995690754060940256804997464408707349175531727946663064554675191017308784257672088139996526261630364004664793732946464066496126658655407695968218689227727758307901686604768509402358952100488542466689640333302288496137637836237939313439863218402757947368119276257015824501364753776046885433770090782689153839625475087735562679848485496892148879786948640971740250387203232474579211975328541280436368573641767302789613931001255326521697218101888961419718166001575700033373612672753571728255899383594983583263804672741379449633222865749497594597362070700023387794523389938697726428378806264266270794562424822214706664590526212110064387507548958160602914803134547103462821022430281825923136505602419407156105898259180930943275883167829360326103524920117942164509252784808084478902332611674709135783764861962996619130009241933214052774889975249424839341974136293462052311095901108260213868819688860458559431571615178120642107196893091727414198580446411980463255926196375442485569708858386946279275576207658041442608824009824750541820027632340141055626021220239388863871345976652833383171852849515303659292061356681893399225674337122701564517514396002465967056414152804989714968133959493048045357562545815161664101289215099670802422379410648051210162251699612266857719140722874811135145511763729364906941223531446852799488850715952683993320208138086673650199014461691686651792455713152469611062995487706578053787079777536843217020082082936451345954357503112841981234620424122116311710450151069235377106094067369603177905771874734502308826514601155119443671330000328866377420592981149959870697671870331030197228575973073594114238195528749362679811141679626564434939882835899680463823446093067671114095369086875926129620245910382267641948917624446439420270097924430853767333621591656503544607552487114824896188572013145570667505574078508253306442662246712334435280879972763055596363792565541473174277723535210682066818421881889119270505022313121139756701685626320009248097156905184494249631203972590748719622616373597375985031925346238909989807504243889800471062924582462023139574028196614729646892654973789759666149674226117555013193881187571091277479700662492142710825763001430066693053206546211507883904272383179676447554431412406637453683082257796947157443198640674321225294427581920732310587089542340584844133763964229491821103029766308158164644373402027401252732543697721745238835992456514125016393764782300643217397199118410726991113306549247788170479013004486313221043495535257792587398647099318474747555549410548649721084358549748206280891822628549091524046314083822266474682264026742461310865244742888801495301328980574172109760669716630915770735878831984097108280843809537171043722442737776555602600114211084898980602739988761109966482423933510633356006957485425262782018829443586066184785681261474591574910295474682024782246849522455582977881217375003371329788827462947036399298498073802649332586875126479676511672834351105727031222591717150667608831741835985669686050728329492886992839171601178312913217811414670329104239777854039795460489115781743303138253818675008887947082884512768560504823207113605294944465041736632877163429250432927556874182797376416051271650019756732530922707099399017315569480386797942540741595401691801171997181059009926660993833554216060174413398868498250881586995052508617740184347502973726171907270181053521039884803805464395804089818822721988425977191087887376107179568576280356782565988033674498108627936703452693320936882808140628361041935212801003118214052768387015096196126935282471586074641216614387193100699244755283652301337120074163601343838999568611816519092822320686876147275631784078371790197886964478409551154824072251738126550505975253956765233825873546190996396038368764069938618165220880638863923973211390750828335159764913812128210284599831190255707163180448315541430301115252548956498328847218116535559538519288434822414802869911375672655971035333799260284711146250121190377424115878661294524921425564002382846721119451042538000534043613453362697417373572945713126376102496634124865929072095333396673575839909004094821981246125819126850208035433098269803820101689884602371760614382252898500312439452771687723285553605581749083998166818697396843845180606909589786240573660632711050590943766571124429283412528679494776068421920442406195225348732230100843279196730363593635613923738356896817192806245451371043374879777208452987958270330329194470566040301859346868511115234556285315653001503766426665289039798457364714248810456758787511152070048829686736289252934074806727221606147221272891239571349424002853726162813715303782528670289140331617016918711120043820182375296064581348147686322190135052650852922651664119209648556845915528860775399893224658762101982378410845960814124311818996612939505260863917983118142379679820112145147512030257189861098097274684047310932121574816868589294013590284926215020715383152168053726300838686792693532831215066710103225817181355556443659690885710615648344490378091637086669580391152422877682704847343961312982898284974033428257455664275232627401954788219907581425907561694015680281690088817026021448285125128104800452631343765264250908353398708311877278898620155637478391873324852400174424378128071726234482295448654141849927490108917100106928021274463963170633297978495181790981800511754226511131630474549157707830718077448738778004407018042711457365975824639147905726673774952742962483026540480793299443376390348302470909005502259730301990019732318216313954122428893218330036011222333030758443487844487703602635573977494106826091518111647672765911469958677890442681631409806109514464780232520861807162999370714926695627750308576971547272138806003974767994635636467301609053421871322839011807740611570168547640137066845779428071604684042889936234397932185030832440883444126263056177628413336933053599396399855018755914192082515336127319846439398176560273043443208468946296483292278714896540307803149398163351782528700479610235373119541615644256735900658817624707203071744362487758781998835180356132697608251973136776442234693617876445730685390066368475505002405298384862865386713805450253132923280805930402156934010365914060156826638825325127882504320548770428725534931164090245144375092355726040487016310165352281919831869439887778598816158031910766663072483217733133361811338706332843981696097257022756733966019899581718342616341637165752818046789146146487767878918302976270185772712138369413544969270519240279860335087336844578074984359162577334291165222562215843292513184328348704816738840386625502551959319408461483743682835692215137222247553995867768081054232470595740827256673503974518455586805227597642951021050174553722314261477888192932110944174096286394920773525120920624109600787129541508948990243961450127926724325446928401768468947371560937132053468742299689523388004662212252583430417013291477903584014643235441645214930852137016014128875817260421576896478170331286948180051602284771120053263322146478580476619408427043932966537572451797056097713622751084979650769280316257635202782062776201023559449508373686402659232299363488119814351242222598106139151353819178753647729022686103417114868349161995199928508359008794723406551114198956295207423686371008989470864989561860514905679582683557425372815802380584165199537558793246319011818719066850154838339230224562937198735148327427623499610588586341644132348916210053120444419255015583737346320868451583488491327495756572859845604339895231400545787693428890627757933521195649319148616832333338449224083644233684930500364154538063457422614157881931382509467179540559320646668338088180772247401123570645898998348416920401127262235936770207786512467869710441334150377241174058316706179969111143084381261739521758996399500545600987932646715194486513705200619660399631887391277538381549561041269739989599514757131325584770866653117124366047837151859289135775603255893822550206875367306054147206100176136777022332373590510582158575010657964368482724786509426268770490410753427625545205429707003524589954565464925194529752032095364263244806953530367532893918992194109140819973810022186269639460496984283473253543073468955826244366290396884001096912190876438381701248734167911591248213255807738928296315103982284408730705477375398082943212662865072209879290734502537310482199297560758368804587139712257977596707713736933866962937194204758090216249229973706884454654845493536715072445026556146210660087721580931562245886194692120095241370013106312067104516472271954052363073590757865656895046854066067944290870214585647057268457956995595414418543653475147720875875341871552956412979065622711323828463741865110319700540853568956817325720735752764159790149348734935778167071180336537527743970068841331826220179364036118918046949789241848327329718791500348446939546317788180176232797697390489640113538807972367050207832494678784551706326231757410419027554730722229756985722025420341431540690673767508640519611844486707702752975161526699595276513550297580690444808218213570219329592992008306618269932324660187837926446835479701483764109992898631750465533291036323347860631849919460522781773098070259649127872593689865502555077923617926387506202025649442928867835711056217592451440659614542686506948933548973809956303362140617272708555749946214305557687513344951679034164705485354591632638402631031111965169631547109353026534467269650955838430390646808838641629337238184976091289573125016106244516300823764558430293584032420595943190665242621525826442443030867429196745801793911986149609798345210368143005986145655583808178001490265038532667715584690601284258373636704608975553666805144335060025627502261910688516366244983611097436068251082029973828079272987122512665242698987566463519449385589781136255220483528723897337311663846139208776014057466482097009764923590083977424120909912309787883034868104704982478400930489098020127267359104933570282446092817420564271458503208347298939115065876436617076060725191076960678729967615722823215373662883371579256276478845842795498950111826055526798902562388880495406329103859577218530405683985104706348443062058173187879869361514833319635701516111613387223501407115490390440361646468506971179276600236654500570265116931849712625709099529855668825003352740604365333302239741556213136335823076141088482968040902303171393002336254819504505418263216954088410241449957361571481010326836418901214049298757677275273673527651703548674758765935360613031369197540586933612980400087243985635039472808626173675019780511992232606936836563774850994085429028471509174187627571019716370144111167245488016566438579044307031453567238696060807999316064776001226691411041961284791035156612927493168279252316704274748004495534740122820912898905432784234327326191302542767138994607925743879218202217174949443088412869461247748147342459859297386489165933904561457690592900802666229957634341594750169725123537625315059639263376194445665599437116606575662832999939956056664444889963302579542453855751374376155069700073866801212888460976167414910801080999083844461880372352697660876413327458782551556643361898184120145934676416168080862601799002916875014230944951114814134885078569043709752086479487017046231409153223627731917036818965814423090285406023810589366456679974124641486077293970309966404349272656118953112148472446330837828416580870595768860522111578741309970350172422413504529817599755242983032042748349419675088176847313757831703599606628941012014019640880567150173474554236302198825037872029637089347429946717452171730773863448334856523745220022309212159493768937446044565726186178922467894707004661653601880286555862551924229014040850278266211004332873845443055872271389988843957774674310738766714696703403625953506019443283548832846448551692978496024997932924350965670011632367750727953738961505654273913830955394723408848206238728801695421900729065745682095295956599774325199689644971480927821400214373610894791375513617286630153245980090485167771378560893884206792490432329846647463872709460331296970533182974893082772170460565950377409357609139227200151722710928730235670051265002400933024061513573772254942010476540403321990120907693377960846777302400496723321711457480190506886186217710582573611266880004207043234629945176959608199139147371843540803988426110347921378254534477869571135277756397040698673352669564942135173467132865461333844304402726802073967366070014859557714447622653459874188260524115727063065093464706195715446308055366557320037071444017627732341864537104568074103650308671311053118594070346953383425262582228421928791786218992119298003521372136089088106174423620826356287260127330927050732151832766899070153353659414110592932695905854615533156095016589851062387880444053160425401182470777160663314678191120117845979822492722161046283232661661071914201818548990456108695264796985544573975592160015229354419593445813745448067203808855440177376027211218271052253456314837758377915809212077503565355138642165843893707954207734421845938199774146798013394558191582573619816768029098531324457837452511672849648165532530720813145941136761134493777823448293332618659544888441723669041271229973269367194565549052984571175083155147127228326947581213481855347737276220138572816207157132694043615344624149568212120215814687254878355681458716765569340681858892643602764518191485732950056243822321915511633461432186845817783831073754857772453761629601866584374784932797694466118622169322493199659824584465583175249065673839529939303524690760897766552548070669527565037619668641666464472843459980469037986014509590085508882643146421213935149762643760649398749842722125445278554684588176789529261626416984052867763143685599812257380531897004556619127776651522620980532070658819088792117177384181291647924766549029750517803975804025688918346150030046890465585846588423243717041548057588109818048707701416384942232704371661224360376035276469261154787110401403417065734632390985117476129335644535217006407451842539603094623060225097373030615953139630651214452721294235250281895322166599859852556660839116197133511302783621244072826704346363053430567344247595901944814265578484115963928116309839393467422791768984344258140352409404764312117481522074422730279972433669976002913013796179681656930947872153950840545801032817743382947915255723589910948937042895181750708307305439164902201593678937502014486959660283451895145906533183919049294722418431305008563712728641368136235372681823172539328009721020190196954614968761591948287226814453093879360757708295210357975147066032950876185709333327515587638498821197066962349048782933849354895009513989136362970644541722790460032007043743058940391987104273147895516854513311063951928908006060540572948405353779636448064045395748679979118206776869129945700632514834050751531144490913118831194282771994316842577567375747747902275633219230535643294079088883651155820841179996171171873248706842264872223588063349744087858730982198436575952355651653740340773321643662084578354460211017981716932338601698729997270032250023487312660529537858181947370921017553128086451090351569130820418779178058956235646794851139791648708906594944294574850957598426576074608870513017325504179020477934210148487069910246138493126715461455959779647249387557272165673851662748257922267710006487518051395661769509465923401198824813740944123959340427961383923903520177252651060355246248447163584633285935492570385044636155584795700015771092252688993105449194931669059235757711806931317373804167574280082404412098051887450393901498254039208193245351985312156982935618092392555745228805284771995345353822568484067913685636372228156106918646472744864840719435195588163504406345416714567199967032413775762602247894049143314320924985641645977493967456562445061337958816217098316047384995838090569039221341191376447999760425017588330845122585025671441473763579646555807721473528961638849547775020724831323276447074323736250531221308128744699864234775399949624514757626063108209675906320919779376352332341992204396070763483740207656833942610569727988559133528161380317533632215874655473758393015838024765571891357938420225025859449641634017533349081833973206253943608569684957631483031094782657045853214771741768812192150576493822917586072456807050970944053212577518300533672085337218633244929363522197660229895407481330650447131585881470060468649897077638540859494171867316007175327568840988431431101585679439086624592558306648290124317130356684003560112135031044910562832759791533715811279006687077772319475495554975498223504301305641560108271791140117247371617624940228275103758441771159863155357542173102284228493376806753675449857289708554537633589598005696329931227743295276049226259410419024473828534281148177984193856057592616905843605472932325390839219437734054128309717838903898731241962894435321216035866745987970407043110690251217853893887935651308920534456021637100902166867184441472407922634499095093493151019577957477463734395329785701148184319820119256536739981504614350505018718932535526927825122941741247971230115022885001010703836699234758734845288534253056336735511313433218292056653395520933994785938633622867490880284997303222271913561319089084964293561897573721368621082956969613401829645124358175790196793589880994944382873576391034263758787379734105600597198224477252763021504557097603093121247004892387283277459062309702730387404823329064617923779984494514966102310753930567567589895382038986180568727262510239242784939311627681000204113001899015698163383695222516094201715936929213169437215370296129712735602358181671402864919784703944934543495726974973165099107471966120854006793104595047407693963700592826802541993727143690022014467133153360164513798873016975644632863211352586637058834121097461617000197696174640598704981586207891794713325809179923674069373300310570442417171158311238787667997767482897317973263075064533670293897409145736141421729524703905493967692391520407730767702952769628444203984055875566851245504820075190239410493746596229201658041927981498727865193784271694917932262164389846856224772844508825817070495431381580863934845715378589043991213108578099726363762899212905518094060416827289839760070217381410908450830160385526556048037865966307952710289365237608975341176697293146506153341723020175752509293525026662686312174122819421559944397175907556542693508840909832248622408909264764656012843448740674920135660733138956270559608822123699692414360685855973551255805176045925665846355613555048785068608426838834153698228408849153969347546135500852205693736144324452022074470121937508331089999527896947982801088323939420499418278797674664342823744375979489300290334915234044896365213294954424340385884818266985487771850715573807395403048101603056058510295651306887342699382344674710456231636041664491737337684537039010585309805135939566496870014610731184923435315173227679873147302051668358677557360621476465822376138409973012584780033386387012781779012484655478896894339369458406880389883279461094283716090055730816822678789250042172320326013440000733257287905307828775383270589733385779300561493160498989617944882421960435639137568225220533761544269385539367615467938854616928845992586492992671197953432271690647883069120617606109777925061506135181564287195354824644773470761700333599703097977390035764045115217406002961694862615620951696451154512484240768269558856368239151140793801330599508776741259720972765399345513271863794872819098995267778251393618007329269023909364357569944045570348930059033228638336735026049823319752432108611224599963788183478331868226616138195464569542969127474877486642021822349298686051223273898517333196236570540088445935990759267332579360823722365996512735742868399067402875173109436081571139711885941969303245485728407976250820833026070197381657946401749138565190829502680231504109514768945263954383594222979384133542532027725759225580848199500478489317364176120890207521932292566221380097133531285967644640287839943372373653665135489810069920010214235296306172107559242258257407263165796782665128585887494195631560753183852451236155653489132337585419586669562531032259122658275505993552432395162892455583816587939526542495039694559142997146264769412581502621240163832562966882198039244822122981132133770025540043275215463174291701044851442598324847479728132004676993547470053099692128030824521849469515205939278189015110731057580716669796038892202143288618142867258352579703106467309861722435007820823759562618060878112977035716049082812726058734610089814327726642122893671971077168444352543041133008518584062528178349189972653968471753451758820987706849855046682814890177331822142638468855519966154707474528698178607670436653441600529749679134315832260111335385279496449012940167877817481529769613171280106650673508554096988603864041701851380773571969351528495881010840031959166999195556329999990038020396080067063697666609730688896031657216040684621396945347797779549691761336591290642299029470862134017318005298368333547771669603171659093795940822068978930388803589469303899461869435673260943166851752213520815285315939025625187080982106346353169453365139084927563360929515303278348122156094178375181355584433656301140978252975444158424425166210304754213374768448660094307380340090627585927723956905977175588103379828894433480345209243318826621876774266288031951490745035758264694509765390811424084775195411695771643317996583131182622630839928694681238900047786925534154707449650538683723038258479722447349130098651031450094098226709776448897990506124386004962870789278489671672712601488561076353036046194929179579291833762464405177184961860204683259794353681936560315111122827088343168860807801250985712939752986609178013931437663153475872737365225284406800347150017500849657580542121017857390918735367805052968695361994049486269901808846371738844300679755635416876354494851480433296351071191607589215361954663693462413290449578285436531380701594377999954043745886656141973401921415073036762161980951237101454206830334894314415460674980382428881619317616383824666912085205329272461991686366431033889043673817294055289172434687022655677104032081838592892872963251761925279886496485757204583350184605554568712294824302834890128083423638305282812318552089485264252836063497248435870139268776300206084227580976702514100867350687039719359601700802473597171802001745914108322728354498005807996312533522299285530807364794635571941577098072798336026081494071478279284051120433153607996254929401922221447995049649061410877863353903263198816372923201499300180348394468245237985110043143559953968122666580893235759829237740078511942806434649577239430622987395553204716670616286257964071977936056941212382129129069979744009280120153172892598477809838937792087427056279362877991532338309825752870096917959293330297675926048863541795915897264871662382226218995569993939023573844203590359062847523462559910098270348721366719413900447622109705525487367666826373105967724223223539999816379370642385480932761770751036375089805367538997124230696548711161682641688570008413587784565541318620666774663962656620462285155522089314230384279573705625077320232964354637084745208622364807066411220591336962290830286320679006346973784141860937425012110448377886215192249761241639730924856719363845737490698434594369493998595589371044628879042060148986261361516483077668484324400196585899598969874218200192013373963985612221818152423285736371050740381426601728196933836520114250308956153637915244271078420213631217500214380973712710074813187574941139466229260053504160420367698867026860027836106036818172085263218525416993080716166152034806470741837712519302379982871686384099104369338373298697201887848107687708036719205658291351537960248845841649364671149125419111064545661897213687345456210505666187526435394612779320050876727414831922782196359082929361908716238959280408341532100546379127424419189365355198425134864929019147598881053631263837083268922139415923983880043635724546883096948128266727987010290557218023790766641578438747580433709769927468385662726998171056493633756290393283336995383281354116271204835618801954002378619367996077960111842370687472449026019173859804839475149117877423595283239036105313737421765802121318261665124274788830717658076488520707051657155518827725633031535630529098091461471234495692238816689022327405010101252115323856492388636704049424678192414088687122531184249788762631170152266190954797277540581072424567196648556547877302706844876615629806995429843204931248265392515779115203374716657590812231309096389161523835990122698531680925045906090599088593940258040166738058629484342288869471717029098825225256760127337229375225598972224440657927748094256990679495446390223096654784331528074346021934578344405163321205738126642263752185274782205507604548482765979471614666017846739496905328486560711101052773010164913714259242465617513819039672714664145167111772656877363382017846854636244284207255601632600519795126485310978205000065454995572973203469084593580390595255433522575778951423590678184838030272082120421123194738516859860901868198621269039699209721763664638930325238941945194783032741035431580384421508188339649494586403569183909499648538065072907124397333223698006995828097900639812484021038035690746447385474093527688598935176844032397896111626327254155433221923993346372200752719458227900850278400723435601090980609162242250348222154116163016334631264092552107086703681308680489980961778424411459836446326922423239342065949562192488860901977545471816943391669248617692306143689041614574010165236041956246897803228162614478077883453982336731747124473163680556302640872494751118269267892051390507810962616480118478858200239219855364263234360945384729463623923978716770221785472276018751712670572635157290672922019108094308701445698671370270088080365583917267001441173238224045127363160704599559839807033933934484789581134530548042042122775219983767641278117317264560001235944192165610405582524353841625068509046807256144404735810400967893239086822772598306933927333678893285645238955338714440427792400265385784797788309757090729322477641595792254502849436399978979455062149340918670487286520355601022214479512180314105328648043208726768705599146968984994797465347212827560632733778901809452846089492779217921809296179414272813036920943268240509913046240505894581225344429333783554611896302951088087378006550457711105771037119176564607545483266012104426024299442257679714214675394560195710257438611674156500644703997497755005977408883147242331184773671152314711782736663324058045358015334835704639172827270277542122515043127424618441027469008073310133017208901180774756565878284820529113822839919161510097396154358261396902928718457818876991877536157283832119621641727691743938383056962341906422711495722972839689892191770699650880321485947186919951261918411226163403037353247013914104863109886918258889984352263980411114166074038794471971094332109268200276800472589590806342823147019298358254385484277374118562407350447145912066988570327064388667274290462098611755024379659862782864505613832050101342399624224722374524979743773261399715117996164494538673490915596094301767881737887008394236378428846202768486125394674087635417127089573032003712581668234977512377773543183756395250499191993092150323168110541087547519186369419919967156263539269785286525426354814358994258122944543530372046545608017301460398302821888085235773929553257721876559850535475257486031765570260247896512340796326367897978613548608879617551344907555234475346897018140354203914708966497548078599298608578219409811450287454852021617455969859327306133000643898853395725767179032904144995127677049237969740800102779051368426460889289741684506498836643391179978361107430845966622846747601019842169552960313265621792485790778250652983973962128620323464655040138055748947640656713937550819538569007544439641420510256655022690867782082948619253671493033636330810067993516507935567076849681235266634492863034266527646486788697462089282400837450792897069386773357198832073804286371059744591700620711995226891459085803889360611912932264211143489660191714100311772664341301370578688574019197323894191668625014005950790394539674297031509802655111364922970060089766297201251832899023063231544619906815136120891033668926610150240031286527426391776983459933174102215601493583846746342434928122773639001355752593269079154024907584325794209757181419353307332685809076011675961984878058442153973594187528760958140323842458507333519952068246061745533965615271689418909752415756381096941400712061086760912221593555172331457966840145863746420329816134908131387233368135228833942089715601387585009970728117390180435429628229813661136630888010383937914976552206796365818915089613988717789632003992242382129765561946837917705878229466330544595376890465555668346540443311436547827862040537205620407084690397138652634318895354015917732116579225203974240806637194758153813435630003573473957376966165311084841185996887007626714933992954863925631428187143208960700174940621612217570259477967300284003828925562923451701035688582507846992001520940212037390861035332306711193583493215124209299646252275854492820660147523694790938409434077605487568857527432218680817580764853502361938656709646531464522466228423522654232265487641269869732142858019183463109501994356177893777765075747251319868797062172472888212912424639890837632887433958467801955864252313330366735798739474780199871315072652353583808195125188405753388832894557942789724787275352084352738437870845224296204831402774724364776661647591169870608718470796058275301317436875171564418695357126661977333225762919262710638151835373757617166893470333042819276770732610254370677241321516669907321258958866770973660397167664114651294146994171405130739299090656919397339845739057372931370291121761015226028630706445725029475553296245586037552999373468551026645382135828815935826027144435276258157215155381508476706820813843060983060616182856816307321741870963102602560560911478221946356802534759711081665748521443830249242677312982776723352138423795768378114524097663676729958270593254629934782122090736404112392209156710450892587826285397031299499044199671794306663771028562662941015928053379302624554122057929693150658508684362593201538256636605565897813187242132200691462733590507859833653974483454313910075745744239565254287899769688960929034257683307291725905859022350879268982929108196415716059189602109480075022089839504715293107800478137479418551208438392143019381874478028161437871351013878658444462206097004275020180399681079541318764996612783787129452318997845837659664108013356482299597336026993762421943607809586219175920999776979609438001276703974254773526082145738061049090725302647744640825117271073045809925902795376043204238264633844867252809399489260736010940063928755435657399786366595052714684210763246792348087116106329618357333780076813645258683969479835919889094787778287218030452892937549050141667944951405024083517502551173854615633780779382138051867610951622842281392431736615552409331342872763388634799565309806366312551797351966651575573679682857479325823504939428582227766786698602437434603322941196457647430455318257609148995859986337370692470685509622263690843852457623728089045140589827495726660861540650863231934981602809890166309515530856404046018748576812057155003537432211591291769703357394535729546330091806884948956355856794446552955771251828042793849295947811484064051341467957642338632439191377850062417981039048697742451031986286977127184994953671672465105111048690295119114745726680019853055627423298760450006096563732721817929032189432364018702368112776694531679877781632785444525150177007440205089360905975246720705017509480626367666935384802982582299708487049482911709801369928657319779935727055667949102876995816092460876387434077067773435285112738331195205766580459602658446451217078508946559988993519704004838902041239458070359093649004340738251820831469024483720463683596403078324641874536291010969475578786211836240619362943397829909251560956626231986632074417490360864039557544378194077866815414827661597822261327396608100556484090592990293231151444292370556381301518690409983962244454728469277956624001633011035204924911181188458024966256177898372402522035870378213891355488126493565560386319598963703242142200021652171138590909279292807167566450573003674749487855951353851147633112277215508670564293740697567845321174578579141812512899341714028373872519380708334395726101359187660213082900351036838019593360167454569333506580854515828921193377821698535689102683671050868105365273710003333308574668454781518864740835446616755547645438412751722694646273942764141067547492316861459069816160775013457362630133106034340582387940985421929606140110019463320256302194818903089396362154092749133422012982196358962556890954681756015247109353463911433626747191331960875596110388468798996191451470243176989560411600757546909966417202877402238814407082050673347947603499472536907490983837298868196061033947759552409551685889541196666286913265877252150683632635173234266574560763723827572912832181632668965230038523736800486070931328091852515435823406012082452465784806224980610762056130094875701053969482113611165722347388189356895293066230095553601351130427383902029776358890977612695349782338039912159930716417180760405172537495581579987373339609047535125676413557508997483721606373646061220357597319808284930457212963454779482511775619046648392975954550588949359711820161684640033251265384944172564516575563482220763582536692277084665189981145240000330654779449564536059514501630553685759146319726470661247291189738906506010435305380475767107534093787908806923701547133061281254771396255659292035109789202795404083414776755205371924591967092909059909087321893589517144737694760138839732119826577497182747689973450480931132249624150426288294324608739299254499249551169999033245005096061118765343089278982114399030071289434764766647151860460078910435599743210271291878822538664395992956859664881969328701927734254634842115675694019136745795990919422148353772581885149378153169701570403725510446830104687649965831519369619421189936665284699049724411194217400846117822841769855236963624385329658719670332290593264032022517363405750873360090962512476234065400185244433789530967574004060638270849097434438896935930042712175546507202557711854457245403952927027533729171267683397596830942234097796254718478025165190680910425719019345110537395558314012282248813599775390072062461687573767796630567947145947883189919578031770553331169278561586553061197005800026216473629736524392620007868480074523692465286129126199390665708144598314172890381777288470512260657482039972429070511408505775606801201096875063226963032477757841374949216089656544837356317859936653304171257977001890218046826544501436288556688595028924820966559730945160094352793121796878362211131206929712127044038147896230404307161377799601858776496768535074347352760890628125319302319008391604434301003705137709396753207432916171983886341859246026027872524701749204463684675610645774298079560297007760499992908272705726925028273437319273599809091439307327736698643932995288924564873180047694719099643202503739897396200791945915911637641087053183491446487924927879994651609702708547012126614019007494025270996078538996280528062007382770237805636288343681182386425310707387984315447534759166784466182367757201348987964414044348216769902823278383693016681028489270851386069020372224569940788880027857032817902045137443338870642987575282001968710106724830253221218134105340469496559924010266719835921887081317172046297734851320897106087473572570037099639757366613009051238977784958473892752109635334414907959042097302458393467905518404838393355523378361765522594601631776667412524445950160507578679998281866795429680205804448728829787251776875847879385346920793353209136365627125803294608002914059925760455025113264126627948679299536677898058475350441660562357282663548071169253001410294338850708526867505025703946400059791420287124836184252393906327125422749735259878803068774828836847619598739623790320473860259789390987047330073297539959142043742180396408770589444189474387871651503959316788294416650883166005630889389378143663698156242526999265363166951452910043593692603326538242964604199933522580907385135356911305037380773111359638734885278475611630832284643671079428333433647272779603575731194123896257090207002161606656560591062479731743240344176572320076540276652669819818931410500462000959005468458605488061595545219740880961478786250051241329664555936066586919189853185994408596421240719977625953114499760322707893698408587791674260292483977065118851766075720293256812281461894627110969992915651276033953020999263544899396916190058953883601750895171798454298757371538942765522395083468994963226300285648918372788897082365229813540401222942920586610510983048302963321451642522441391748496820799227039592966731335543884887362264012350906593303058491898688941053139380951272219986377823572010938481043045435317068674530590201082480178331358014389476778200750932738985820434204770671804591155383719088573075916487757686325185990526051838555949023243502335709813981148746000390845634617887092099864495258586403247947288064329426452496706890296251996371861163037745149306019438560481476780533391809609176178660348033799563201297283980884235526817995565180734991942478119967495686038605528105148363118558653593100601684455953414521476491278381858435704875989366546181825846643686604785520982165076542498209871336375863832273643141196822601710787164432465250119784864587145409620949207017866958377182291662751379812202794424367491910942862097182746758060295064133933073840753843999257950406138473367976081307532358534781368545202994802450024526657469295294532961946155602693883117539233800175609403577038025462854933504665256871455521590268982758438731798689244524966707678398835316068226456635762417157183053049786246234789225721633705623507104669142145458401597855568964022538818435130322448087369563754273510513065572538158196489130537538675995828648236214104707439457533770188279797733751426521251942464021331890528561561929481656054146831158726152635593256160793134876433048418232385551994259028855016745672588073087390828776529653948064816522650393000755871155476921430874671732405181676061350388790138461406179163624295235062589586049566805503224433232557155385193562979926849694634733518425922446886519531133904749144736225907656682379130244275314370833329655375371879771735049265918338210925973573742547073880287111968300666585709007175378974429186658147055707503040822904153196994251074319398709665108970337016046862535612919031685512200613374962898019843997213791133547548186656789371952217228950391361171556530585442070294705739050486277432035982759658355262227781934511602405914384503427169617782740839101932298142070378416430051803907604239420528328092868453723986064235711237887631891015700130997848281723036263403949688794873565412039836477118029109965029088855304222403876108283220130129455112021003429596179745150261461423062729183998795966818778743346271921107498189860105467716552921995444720848701254815928263717696387067555136303454442291645510181336312690514289726547465970506381873058373958689791911082318281746830883656569254289917932331652430783160005452991856591647956159001494765904877180855780243470458488534170817397484912030856628297476256573306456528645704967050516414402439902112386554540738300885757324076672414234517464892922845506258879059492115467022927938689162012139387401255637875573002011394073307898628646084825732681718179304376392007459331534596194915940750942525933048550367465696792798941996759540544294527871902581106383955728300679710954783301351945748649140573420744624812424233889545577900014273822212619842415559332344016761902309957148001905116586350849559925589739605017428869352391028135458825136983073077057405273470423112468613425798327116713123274198220506197842491178240018035135466756861693435424048109921754291762067962107541138070048525618830653300602531559016269322209709094386490169931760912486026865329505981120941446585154653021376933275633211097683188666809851528311030320860651874280253636842979750121408767221217764733011508127609107447848715170138698091529314936796659397512304394435363915179151367643568548329827484404572252465236010927350310969730293316011680925286436260562988682474281661087536311457139322158687081031292966230703005331411634501617881020117195943810414929337068435838451079984563158132339400638633810846364800026886430843889320176914372023644066087067672739097418257872934426927810834980932441856869670759070696997642896520734547345509187092053400419939527586424489729277390772489528951510950594613825292953736206438725264485628697770850638979085242872358918353597795469289947230591669201200195640935312476191625926219899443906446621915241038346865388402160923095735957254162544169224394406421653284752279731735478141488566724828864178869264677557222798126573131688769347536198853724686083644764752351546177254852579717023856216342883100152796098449452189039728581016422053394296993187855916761995360656914987855452436797325222671541013422904604357458577019669347165183599027560372535283076739019143692518710528711935285518273557345499470737803782613688029056279493858385528560405493830054276374116118275746453563341766460308717836138968596472284730170080735358232818788588149567641451019462345192463640661954374588088879323153180181307165413867053971014655095415164377129870567642704405758103170229360125838644343425129492410807846697898766472481117523570385862248866747972948289356983961939698755352722950762474649066989131823335558401570788618094975366472113529137043785778863004238380117545301204284726899239107386713382204693983647302618243688592094623078283815259350727987077998408969984014945028184136874320460502707576467493000007639454558678759362325591928386637649225085476778450898917134715119043491081207809541441433035093961545963001085877912776173126137451352218571254991186673405366875727949479315602935850080335252140635299628667398104036373697731016515184711203150483260898584160064407650856245488284931210662152443800750026025193716736636023496538774849085301393384582045861172104865629035905337868275667571470767307419917687347953194799373525287680730824005677274633940772282649732319251004053892613926576652013517611652807975094729701882116959980598366026211498626504021021558854941027024780558832986437286855381183055604593542868009540423109918308090163690943437965443914413137207832589135689817281372142003353833503708633420924313347600517673086291956004056616490895843686090856508329458956845108042631675971972104923417744036950083628013033766043071514311875104009966328668185559239356563319237890575919341542677638336654195726882131923158927471841385512283999517021259328608228580476605060870241515054428311681399395211150261653895030455154973867789487816120249188268538349923642703355396044355012667897307399636087782433039759587819565564970033563555764849831775804344248467520840495321986540064131688392937030924415809063514018284758893495870619083592339902635823951346127946580968779013646947023057745670087148909335678403840333408237301414643440652796720491854730698469268495457514571496205219299880554569098806165384506148042862227139377163451495637543185421397906910676130333494151580670207404766640295314322365741168255348096828327071695413167705955843703775226769041937774932372709737104440413471738189972717213142794636406191713581985434544606647907351910975431551908180863399238352677448428114420229554037602870512407654017381147329999360715598718589018280060659734257151817544174004134865223426766898208236095483041987749259984753770915851498397003681702998328352554569374763018183812072336005321852477498080250405339958152790597167627534113324886598339999506256529157583719001771623118597442572762963722036943258910374910061289954152487446788760430500185357349528461272566804839176414419945016348077579819498278663964041070708379559546495190261965387829329272116891079639355391744696679807637187831419819974419107627323766180985501238376081429315809714942589944795565379829693542631978875729281969297034288363722082639805085586378688307232923634663209281388057076985177554049811142114029035812440203029347918032067946417516756763602323692280387152488720830063143386120696284904591360532596650934397038785214953540658354507472986651244982614285584645475996498711532819527833596723168780487659749719422514932210689312064498023848170816867595793905700436224474599886011167113599263483018059198708692766852414650627696689852180646828880356094149693389771393153772143886144165949718175956108790022648818693101869730932494873172038139884513254402799692352021737026725271329081492238992597390268212875017803950888127348180306848575729537459494474423091403635199611959681080825187164460385213173026932305578675008741184829785708788812028636960505359027461089531151176360617040483412171031809833781255134451242371501047646489147986362439322622045508133894013101727414333416739816747479882614531079927110798439208951410849189125228025050941201850602585431857237075360709301647110720719980123425210295966388855000955719716343101874045299316219732400801730187832232491485743775565434501040690828106144799942708426618651899250888259708924618430509199114726613558507270146341882304158884710029140739898614456456978882923342004706709921828685477382203667386978515652408195273835052509427173832855534071435675571958152848005613234092555750257270118339853116440134676097480358314364690681340417604928327095485965215756860202194058611944125809752501059781384580947212831950150588477428170353571684217506977670264432086681532001092168652196376239219429648973934280690305930445595216740798592151624118842663065679971775109400993936883574957854471363890575751833924496041961442848544456061991200857058407197693677331693836419933310819282442642909516280750390961675099843397493931336481553733985799100170435119579513496782686176399063154311317845426423483707363937065188782437814062083616761471898068693394607047891953614858563343079189218244395728407071813912796496623310148371738327067916988661429550021784813270762101506627707187332080123349812773298394539951423081237067911085363383127639514995237698949889716106519894860022133579710788951893050810488162587418456321168484916124649538589358440103332738264043295692588089546548093314902953308086712614223002567550392946944342656414459327606038548499700892595236753363112611553565052828297248160630510378326479469069240845737341757169462700648899903500464814558523312248455870236354600485160433901476252664969680051096155165903768869636431728177914825675046058165775124784361538794551078266600321885497144207234674929531011869155611616824071313614745476889574596215113899633917802057567424012343722980457141272896755185887597117752408239704449839399708206608401784365181135487436645246416556283226194843519311117029273529239660048607606817583754046821939640215079485922246242527512958631877306394516912481208369343088747636829303652315780646636186069055795214684037076680618410031923391611960916344762580353024453090645748854917005985776409908717039692953497132030648988782809513974170312405932219893568500045431533356365439662803702758208641207657460062695293366410363437878041401057144871395025315380674506030703058154053340500728370151791769270756617711374859418132042558199204288404772093197469152781265024062028103553647063713522154613752875253325734542646291410441975227017371652366321866943538698450156259729984873050028491711130642609272329924804538256669182850760053978364028522345323626366968935120777964037450863758467716154661313476259563252734531019727897418132426146142030846088553566107245889476842595838745665030641977524908204858776326108200790496833515882049712328335141231838766965353271408378121300623917144056405500970141717877583832724814496691165641456316433351325462509508598189702503524397329951601142145778818889269484071742105617656423008161260971655125053684139306648120791051553114807466011128642550213806020449364162200630610702522433032292502681923180450173970136059200881211286512232491217263060633853266065566374498825055289731298185028649364623164900248439886032334316279013111483283565000579223311704850405329779059224529238141832518482817022265279554733043477112901610857267000497879256296001314058821193804413909157912695855306299328505850148248765326890996226811541291601527908191425022455844866600718322793088102674619803944046667382999686543581340820729232319575197503625899882362252308152709820300843432753166714818714152213133055744804544875538926754072453506622570080761079097739568593722162121445147915906540635644416573836659465729553420689889653048353459715031310448691199240302869690541056531802165151609596909724669748374205256452075677961225087793204182977963047427092835662983647050909885384031054655828310406165415116113582466774555129669411878304453584856850942946695814672198265839186877043256071345681209558796537324779518882420153358072610010254901642874223080126382519614389253808962945826062896675718478708798474745185670315958236733610618073906660729781181133873153775747512344679302104856035009521964169712828207435084751031701417909509793189638017452144938399411715254794456058765401881109678300489736963520031245420667749172698161059210645495928420652764485760806145106143544941749411922280408338347019252753318467710039176029212895093205263185948477992220176804329511928245975494717982215460743907919990993059013168509082952012391034695195372490526878867160466011584554637115768373753997234863940866623131069880356320164331117450519203617933397922863280483026373467321910865910834166987821858012426090583987318677877970694225739815476250903339883522039043357111198045656964183115473961981336399302064855173146541173935289442747945960067091504982269154610580740027944534677326538971373864584758660632206252992416448864396502596236878956386131593677927363031208508836398371352406740266705215549586886192583795115609095555057212092407187681035064850034623964394111440116174082169403161319805598983727359828676048473309218422632911591102062447083632463586441461055250864848620237543023827474372357177516220124275716314167053567488827038147926845149405698702241978988862340291692107375476637142093266060295404199465163679520080755557341614140670563645361501655155592774722653839356541132739176385796053605122836083459208167163008310532744402589657392505431825300966331644135546487133241701140135341349390741653946748780495913075148832977021700623427040549380339174442881942615134111566969755879299196731839698625945492259892965547861484262908254895613847883984785030331566742918645126498013720782233051073048419330189047801769341679568717188310751003068856478180515765381364701229226678989523110040740586706384459092710999720353669768989557087320514233585383614913150677186467301964747056948268945731500242766307919252498322990618321521592690405768429869263075612831967252235526968986775317858400368899061901220206854509250542225009147446461440175622931911833352651483648371872162968005342494259296692607900468982777459656358332698164680198702453636585465654029318335229477513219381485941070443211801671124085870141662819864907245902195390577236478725788448012064827754586419804344489545904705858378810109086618085865401481022238507290435311001391874853206800155610609116098522816908006188396501736977085019375586093364670046322631230104159621962934582571315734231696028359529497682021080493957600315403713090587637576588230534891186995382306138645159685026893239277579606778700906569618202148864511805511910018321081101791251019074016839596091431501458762495411910585995554046320206010162956030672123743234403407937850337365164330753575943250983590360369301447980717849740764848567769639958184524555131484670259978827229010833577141226295160734048112505573735020608202435405592495576148749704993775102954788287322011834766868716434969548850334426888977807534932580590831158547930219229016682298913608946050329910128851112559101384784438054156277018649581222908242771501530489755525114008894063732625814811296485012356829967438416969269849769244080307747744554300638398429859814051529934269950086624950000432906623718405190943057240288362036032346712734900852050756639715361428341180916778933937030814506362393540564261360716095298035780013634336166827950200972122728910113728686443011261903440682586736518670814439206617688980218406233229536229966821318795739466285513071476813485306424229203668398381748920362387581643389550603642511058899729290461801829692515258878523257468684646076956125299442894132887991049083820441299076083884698435028843430439718774864430399129706201228155812982960339625020935079668020921612545368656486551903462642654340900829067547435083770533663557928445831296898873808070219368091747615837505814918586099671423232306330366381180658908718691509393111406385598473025451523760314697697800748560360132511264218743950445870833533085145170989475814308586484050907983459943023932991436438059376932711649043995007364997617070527347444949308024174720836328234523240744954785343331343918998523462198631768607818684191261741450429179640754518826590605424527283356399204640761475277462662844693264486049847709907675084436795145819721368520038513713947546832072398249633772729506085856100490851661751703546374901997999320258556823346385951601690480603589362076569711538609561963417917980553290496808635556467915187528511084186470455583729447525447297714769267398954387453574018975656239860538430707155218441625403031597456486553366623974899857768953175090983983355098773985708056470010143364766443178741878389208720442291580389086298824895185679588172622976979055087138002647621029124209227384129058250613300492585876910304428949062589350389818325684583986438059547396464696261075037415462373957178736696949653196903208252641621915096174987580428062095020263349187981427646407733458514943105663928972623789866681838108510653881188215517454639289760876285822903548776183058861302411457298113343224026090100066727460574834693144811624214640163582475549026663194947976843207815093236307848916647557292964676859310290789012273019295188360662189514527899361178549273125907288714493575720982294468391272404569639805579880764639744039965699158329168917912553230882251559928267986346311033845203720256067237825427919196770362052543794441730474702976329168970707170681921124505350932924074580119751742918768366667957102433128185029915442041676596818311896979007945451441110451297860735926035144814214043911208945063725403439938490349258488006325867271818458667193914107721038362776821160466602935664702031913052355990225333848185553965991287503617735529594820385144513992172469394251226512944234781657254720785439328530993106787457849537209570297952625310569637083915069830202394294201666828062088159382634502704968066809766535184697383320707714300354331859720672333157295273683230312813384879306568098648838090064158574291373777596480684994988285954969413758861449397255988049144050059086817695150115986292135314677704935532262998490119924694691321681040346136263480779191436785710903116709254330406997001382195178191034644027523149803781207154686700579910705108517584888046197584523703863983162959762820832541167384968873550053206131758265613041727012544346138647710833708486593046915887425741151153481882418728321717970185612420097394335705742003828116661498600200201179503232377659554144005531911774030009323708418381320472972585042791200045677109428388040504772815882753090076577554373126500998763116574984430970961089751945893472382570151547272196639672346149960265748931914324239318572660342404568128322034846799647507768070664105889718602811963955777822749010945646372596791168606879546439190055742841050173216162243552992611604880093950955607393023867224630299836244145727753976144531161920795862178206294492699494973204977433920125258468152393329173939407369807403606830622278343302021515721876858753055179847307815362898542877469242176999653154754662015588030463073358587214577878748024270099635851233761779518678017990645571090955283619607748662698529881270757710733103257476788813931452398464270945553362405674089086980088367980306381428566030845869612827343788391833650119790478752877133253240508148686894274640787393166339191598621918681806946866335160033284893012001071018179971933420329685576796666038521409190757536616125121487240003446497604785920791428315990444476255261358520424734896727150209074363360508138697033978123935620041419739051964370672065690733306566915203174822136902399583254318068922089605333376184688870206429981206348390404504891386623022337825153142713131224131278601009616168546841324322056706131958134179186445029998609554145729826149304550352622721897756718727211274141083405800629017982645058025578078321028845922298465236739194899318928505944157678615875056152659572640182804949904081729160191780499311564024837718194750558014184292960851896503479280248867230139795387700385124942392618203640710199455010923587639188983894254808409782524980671031645621117515163882301570658590434339555423545711468960793115735374390452550989741135103950498471446865879268231356631616018055171782833050513325523542901688270721518865233411991605035065010824093145522928967342996286464304723757199049813691902597580906714956337363861517955289252742101945242708953831753273053881306891597346132440470443472658484202751220937874833329317551541712884588644223912584469970909467271061727065584411014457757404545962001192880260107719644034022116341747330792832532689058098883035339121979475568729818786065042850687917642716304687402492595073547301048206498747827451102312122318415728041776399859459097982198587293790819992576702878263458141623300011068855397808923405738509028839524946107839477131324384991087535976735416318038414650847139270554859426644986717366525424479899706189818001368221389468086844898014430814682142303129090197177671674908395165587948798010727866241337849393912533025799679431928273209523962825612265992509872077176774706916021609331436538117565190750419060370300733233080369260128884294306036151083804020729021515242170547271449889432270456885675916148998070308782258933479078182422418296970642661194439033570242462977070413372551804630856472448584654458149919689515768609850208667636345215349172260574024358227088764219668277269869180794391123420991741907929037872309541289805286482682158598470646298979515934456878440576432404797895932089136843583607543494072042163918910585513418637102915519039226132544845008888636470137408295915866633607147372327419107808093946864672576517317954379179713267951362827466688090682382781399499932299827340294950845704781878827275581291759720136460869546658339002101480711363028518706896167145586398901211408480496003257609303948770785178497223094872994236464206993493989587722214730645530456757144565155065882800441193344458944909050523186273623543296080577407167364701072765753951587314341247645929488718519042881470704716660800704565910415175293647312968917346196721840225857495039971429485832460300050209625739047906688124566371488153911207571816778903619666271353408299390274533998812982295613551898826645891698079540093856264362361032388606514188177629973883528325106089547156908232862383930736991257767302282392257042026122081231252613043026979713483946207970030074980086157031556839992950481558756480083400344244482414526628622878733032441858871378935452782436288300604164830594290264487371489844530494690344492114988680997798670031445517241126733467666232502994952588315758110150901564819282154033686038588325619169219065499859513152519617000190288984845354281001094094353081869757453326877068640562596414486148152334356675175683402058939671336052002712693905555765602663940507582956105333552637463389613995636210050102736404067405628329866572598347140417286423314616703962116795997974333498138222223805901183279838068166874821752449098856059396442189019324424946691109523310626820803282794080058463375335142496651800898524964132648733079449396975263403330932338150119925057654413211991477518684901483020274848364995928999827025411326303547384956016523493946750738418365599550583304136900807307465342300791204181153257073492257680743702154525203756273288423195911009500888070453982403309664577710809443654100916512833070109899956755286394536224608497569312318889763094117823192954363905561125179879639654055832009752361488824002053547409026472881227593326825714134988295041694660151508941103724958061379523926726365875586778839584542752788733852977011102346410045865065767577784523590776244427121779798964083287964773255103125981775364642619393928573472221110813935090983318692975003827847227926330409986302429697256052407726273573446050651636404372840326798439854557205107770759987134798596397867665313395357641465334030322058733271402662633611165969323832341488517644628167932622949245482045830098092430192450848005939623795148093599981512226696148019651963725777032701254936990219714198050330744134292188665101862870735705856826914535597447106931659224931117466381210197813868777454213546549581498792449647509062779348143673425724646601734243833370262197074087796522759758993209457270532608778883975718483629512841861135461486005180570078825902939021102440992024786693457439569491358780521227711785498523521722227799999370922485097537330391139131926400911818028334010025534812790694222091465661577426408387025013600401042476852749137077162623723237214320243093969615238927396309434229673730757795723636122275300250971752426535277516192186425426151321148935741199649274420111285609794740005945482199659482377116157155890789953285819348579466034994586760324120640938170012581042651172255479155230434931165358110121042383238116516100945339539338577920309930495227340771012484682421461057360837571425178911985330112502929488770248061180783612209491404767838631630919910423520262594660784178998548799589279731481251169166435821219452703339307804551412675185784474106607083027359745537404340644209787741168381142672417308008906258531966083901346613149456719424518595898015673176259694354623468475312353748191724968310267343808837166089792411587716329893585787709505161444320281604256239510051788435762651312481555719917020727306185090343708062872635987980160900657026598333909771712025712384038404636541240031214851452033254573205299891415456380407695876223639126919800018210984997445350309448114970333423160575608318327080299989718034527351621827300772141563289714793384653249623091112776769751113924209888761697848805147939915622784670489103818003899920944410303681540800659925008871710061358506869621727701227133687296445116155459079620682384912286204818038777859050072451988275878716348623189346069523655110746472457445499891075840656359605572114445222282504319898036528395359973804575489602581218082033124245007840274273881303919092167053464589158805035499331566034162637947183042868500385885075146695595045735296479596620689485297253324824121876415363049477069746390620913015899128606412380148693936521077887789696176581746946849723435306721272996192564846039603527973634107731471526538673695360574955169635484888954146140301306530900045708469282063949018877926958913593682621089217087956020772130907141700655841942071112083578182121191453995710608098803346352580868090563041505047031771382773130627229124262993145127761225935035832373601189567487537072453203179066210550724321508190924773557455855364654880929761569987603761311529957270425014439951940591077574343935593106172949815479776390867750839092144664774620484110319978186573641005208248099112308710601565703955386568379897843340969878585346604188707936233188537539680637926067441702051442414116521891166322493323622071953007164992828544503546445550650312010099033612458992335984505488766073985679562756989413256239392185514981461199017042145027314607396928779055098131085762398630046081295536912945120717459293289784730134945411184739228225630725786672707642642154279635424602990951893423343225678281802975751768357116364236724367007650256542767907625967739337119083100982999775534239494317353425036361285348091703965349106691717306914440193147776557282223574007454382617873948871988978659765019776800441833811146818869006620983743209321445641790689087670750427406114362583659045808355314769134683156417573321099463232894365730182627833799451516855157047408991092289583401594555042988251989736765832226402456127522582228752742548181750080558514470634337847977781079713921777793346853493086986621908628609359456330998862830310200927675726638971404075323389233579199027705811572479174612669725156431718108304688699307525042860278135506743711643361541321260518708686478892809174809578958522263051874404524298114765917974186960616495410902002507586240280715768450018107093335990378077719322689538780599534554565732180132570816297235331355520839238558556677512037131618214189397310716169542367660407868634375321092160224216899605970719219329219955915979407147967763430140464199112686212545837503285356159524237080415259931823343648263488450283828703051920897446184339692675579150495579949154013569848876071753337808548344985972399564268813828036022136689271698182093664968219621061847670074483565933867368968160326988267242978479853320142874602616273891494779515754836305558774388346522447763658183552825601508456538454331807189746415560652849888630933205374629080102306778267270865841261044306088956713771619731267926745008857719210989004914215712660351201746764501159983767050647234687281704339349999210600101154045722144022249142604315488574030879690326040017310672801894638545788610998671597445525962510265321165981390739510468208831982825806373673496792912233220388640965868197168017241081775019628595630525891368807829789072743702845529405795973264343103216327265640240090531179787045794605730570806619464090744237640190691267471935146483878386547771547907295106161086335629542190278046131132646939497808092670304173651048507946454064532707064702678868610807122132125265144474138943205380763903640600446994841991684847545106106627280789337850069864443948874573896019335160088679362694385998920923581754736495379444054997287025053678715906761934442934352383641729964643204476221922826269416872699641902275745914310818857420561051628000883189138540756161054428466966265414833582803918275898597992757507044663057648886573505509518536234131791673629864915668174207895012760686156818470229907678650978793880179588248452957373628558508081027914494025886526086409383283702094782540640622942182598069876151280353662496812472525701489573655795894896572924910169222429781231707672563011104079916934531255746180112065175224366857779561370861764918232083762721861436463501206780736280873969942027322874680609156467249359474980232464274854618379887647865725421921915794682299737957313952963494563214304907333038126749079433698512962647268643313590571706868614882789729608180416935402695477520668568324923994003154557840224542247437455780729689125947211126210690555651892246889191502342472726512610439751016124693692963267818731529929054423889092874304690075831616286360896020254631659788082795683368612893152588956136229216300629655249228924028837484700945438822543718264990647435550408254281200272323204473665032226119324603925927287104773147275356229509673312162990992303511221109739821095962071470872352329861004388576202729085332814318385582625228133706523594894886015703957430500850852262817460800382059826407530885407816485128014943060429104165813159503737037265310021638823979891563857430770540987502513620397071632511026774141388598398510646499802271291423031829645459590446070150385787246898688437159721992953769024146547520766200389110908073261939361937441198889935054281659074217051168214263358090709108356024664886728840440697156840721271847145136953542651311857453481001237122474401081927831203259537846772619457999499828232389120569096480039503639421719422818795947205539754820745126634003968118017645280434638889604945299125017803986341197397599220788125063170994967073844003940624166182361044409425962615698084189640555918677076180653840238312790417347302981565501763521774388624741316329660022066136082768645607657818714020227410748596918804962628419298055373985180013803665099403845410056083865652271507642300447868100883715303570312871166070618563982381131649924037965401567435072085568663895936143450409079231002246328906204611107399775230469214992845973950603745962859683936861485901588401492548207979927895945188691760072482811977337355582799434161433019099858791981005805621050381208527595921952419173732575665370580341078459372781770048464441806007357807794874480436094230375304680582536570476415582299344927376609922993678067737333040564693784778176114035379601726728295852608267102454967429289993284410576897668458839381657637696803308409358693744696435823349702184316387345491180480723085032531989244980749783713889704501038901261951714548883973346087237916166754962340278901423726473813808144511008244684521089378926886157216939574417840664458509855354782263912127210205913941355372707011733672254509435726941570892861685734422418058711748106630059576891597260146944773669114188855914280355633147855542849596458914228773524354194284004287366048072306500734864606241414952825596250184334548293921154603591694639906004162434028180038458476168563321150946117715842992227145457233016685727002187912927995422999179999876015090843043629504113967820219383781883855245620344619050969154199199093184789433524005467695778251588242159346817762045081655397640567159693236023215466123949028269811659497381577618157639239392608569546210012604084761405299072417102595058364858984320847501914571836622646087945005881093670214570727878605511708953888176028156050936488080071287444592574773817710672177495784430639430115369485115602333699821063808920529538547150205060524746337574407734222594227158626628545679147647794124477484771309260765996293716838188794152451189624298410580118077827070850419330110112763031500142421786185907900325294334005285428190528055878170569106408305598162662198053475163890250942907684848745909091124760253302670190885270739029384417649612312492694460619604625986008322486880895968985216473283356423300162214091725374785324211683986268022762072613687903052606120945653272230124899572354430234673564920706815323374698779788090340819497972078628138492215340502596826208889828590540937638077166971651149909038896405871726052229927425669071077773022870641122283512155597954982173106674003417986958054503484027937549739189247255989394463495328738270656069071711566077878336308004148136990672730967245329898697164369591342419089197434302333931335701599426759548639240304308945247835153946770474251247045417951088320602449212375799956465854392912709537200154570446716653691002030475133824692565137875462690807298934825790429201861930716915373629955934888960979703603171091931886934375007419852207751956657038436659436962952112331958993992971734475695814524810066094354270441548031785742684167856811357220841535864321252494226637147832340492311238195058221675582194556407423880584407051469794227509531766319122283306501088100938557442200046267154810132013749019454482235761341103992909469483963545101085019213847872828745732304259538606624855317158299079382925321378397071746154742893994198337659192977230650548577619052655743736100057167810439374965137592766125983175379156512262434579306367576590396296686419466998327412972012838218642371693691334466027667980130066717891119600851261378311250207881177547296715897658510973709057009034068846411720612216339750346162025465698966972419547466907434895526407061503398422846308110100165172094168111787542446683769136286853763624771282448544988217933818326231527442878999343307633669752599379185163402154120412760793958205985385712930608888349355680870195670709302793415755733304129330962683249908675832308188156291200071677757642712278894222458240738820394981848566847961756736296529053139665208616328037222713509945881831732193459654123396276809361430796883570621692749448538007399937195799484846601390295826738376393713518303735532910202690833680893756175191222314820054533089272707179700404753696421768037028995183739949332424162296543867222573132241835963218481976492532555458952979793782586075529585292246404656585318691489585280263908374861456400613734958487774153495497609691986370418195204076938492454905965269235838484226574466152694859753390681952860849539429912848891227769286483907454333981052201533961824065953415486249170193139120573303480550174232203143631519104336235945924029641244910496850816407738066917963008938874997734069526444515817600884025039515193090541948639717901279271629127354604896086144192716006559695107036779467554214581211881937573640129732244502270163218998828515955879144724635960967291274163679965291043934751459798494756283596180064770300141350415695858264811464411788337917355594330189767158357662305465849147208635471183288393643669073442036799453006385772989924366553344654747972935353837689773003789323988640926449426737846178487407202335216902950865185407759598344879388552247737044850508232753314126543961496384457031219115102838341551279715888813901572937879404283080972495986173697254148946447827193158856864965889550630725795031448584559154081433081363053689712113546970108358260887052192141977837552777259514571931923541216131248352104198880314132088267957050778258612999519924928545059826968156211796217731431329848567516057875250222287450455827811641376924661041598800601671759933156608262623181433555114495360069571725935500706135313480942298066308976106860536508597194400407687364671129250552219958140997011290148003562699604644776735294325977846779749064464086980448977789823602960964705300476248484762390917758525412606553741850457270099666775293704819203815169779129052376598659527976928531871044605593948028701173444096566826391848417836338497710694692931943294786341793252764755604402657804797053240467112352170067160602732444353168282152080385151093668591334563324362550615910861413478192169964049987487065801953185692080143854224953875703217837668998554397111024512344309685940539288897467995015516607744378483578007108884579778939560160359961377536211475641713239181347323208572416920689764831528743047537207634921733824824495640825148084345139315629246384200127297329403561728062521754886664353357421724819903988612070923427561760824352328509395858371351706946062084137361488552045075333546156360733205539858129746600424020451113507724223367375082534062536669495951126952267833057105747205051400872713683754273666767641505799058246890534474346739348444921264839528243537235811371244132950429468476219882579284192281842225981843570184277382862066435656826018860275125897442053070952006860571087375853974090029920569517799909010135175909973153520978886991923438502158467712612551445193417669628019547456918526794679288987534431617079525098683206651567336933063272726716952907882508303830480605006539071491432941543922132844122053673761836494920947474197828641698769972180684639691782164395361038290744504070098767279583595916370309839071592585645178149616421534033622327193606474261121758413471765161006938066375553296492822439547017827920280491754755635124363845997879343576192550823008521838184484551750912762307010721010214165418458623924783817356035962208895848900034264213562186801906502421132570343395908677806141551480309239779817416380983739206399761375710316623932767873124991413843515677991893677745423705759786810193472638577539493608671890224862516855789141040219251798620597744813677817198434284468545846242540815844951931646121768793011300439074646516556088370456820486878575092336100468080017793641765477175965500469472137866152259189144095690613543418999544281114979417272063457003802764993842791268269955297886301273970351935471892390488622131044683437010149740266829446648648263755833126165170990332811122453063871892419098323463850087422117591229111893070931858227558450662040698530192330976214667771093348527582749602684612368210123085269155481748772628803399937976361851581189245385591262131936286871019816847118702412583082765464397575454751258177043208789264565005781488069588978005323373352500095954642945124746697593485648496541529069327109295617919174818070004271104444196247568690619558599481669653140194615330301275792823254080252144716975351501494623599424974920929964865817234426369956096984667080844049158890213049825870068327029582024070408182385292821508136234375107014020602129964064114069948683875538257763076251166225769465325888111314822047965437170435268978165149588528559320820236037060719451962875501572425450450606164758956858331867803058251576467395682398717751270241164345893495462468913038986231928523822394638757335546770550023051458103772754561333811822561683300656460807516874591802026682673299378138205776556806474174322921093846660600128939340616663496305252900621647103590578941434264181382334909827272146111417616961623582128796556567400402262784266812786006730575513510391180789664000956718218599768509230116104394960913356113822854097885044632920508214765590256358780072984457764674858877890029341722262566948992118616162067820609055083843802798296700959316615797845478162801082031847178669240531761771471022876936296823213879027085103161060081909412774320381279563169284938463953218723440515853414958452517518342114971296717139192565535823800602881202468886014492331412446082732650402958453070413865743006250195453232049815965973007683248190885408069501735986980130821995146166169942394212735521537162843121701312353025847854323541571337239449768897472691562974197611279031633295569180269086588715277703989033711356656583286528535332900044651889446523570818177104665999337832370740975488967176242544009553023917440217461925272496381297602632947412532796154569330109947105020973463115137900711240679854878396883141161264687839926285492394398866700034497594033631185944600304654441976155371093312388608174237511708489631077260967591877593421169760450724213127222834607060657814559297936582311487842613191516034528231190060317463388989684323591072301997990774669813567107064925665362228622449282497773189356908226523468650918217802037050052054208445953080061833219053239102793423175916575890084786593872930648120421516795290040100286917063695482731845810803160506524158221342083972743941593712868692484241365423601362457175553214752501928007746448753948804867482491246501981760643610119180466565187078220049085383835839554922630812179736612532999277174137286837558169304337605551108214877947029105841547071751924267964696671609159069945864406004246495056085178362379186348540521842344923697219236063166392015041940563157457940949864693923176416725022469435170759778493357959102649164505724352285190283359984744182830623250707348819734955968590434866284771100024307475497040464888646199406210333571637283797492141175119283796575482830510162979747720815402868824086164320459496112221026533921988526628004039127964557843850825644583170011061345805089163951578280814537565812491712917976819661182554122229208748704763588356738420580498013251869807676776135353958656793445438217856828290384615817917730797013766327349626018826888016670909660905834332501682458217668666330641818116284872065957913592914446435286306037520985112075429635037765231707734110948232265552615222901921522435534555635954738671119980363602809930402449455769702480408506419398626160414681575516497067006843512788741413739733610284084381225885692235044492197850385712916836127372072259918627954396426160185195803126822199579197787901407954861371292688072419957080729314305823203827028652615292179008777040431672327320990855194256801602177341642858344297039629606427279658923967346694333662337695063460969280415132419096415221801730748573696363104083377583130278991400772431326850154896413781126959792961797033292875604019866649272831102698410282721307804708440276159616936286357489098268583434305040904021201521204587562331649831945667835299924086331043930871697482739529221401671236382275132581910612070480698579018324479194891245133768620033642649214384994427904824737605607599191839477093914595672059809340735898561893485657404880707474801305925635019396717599813801240068549924370505717447896752470417786193751616128816100315189003031480451537074826141207938835603685695457704334578708797730248395130881161604896314872386683838299102163605529351608681360773316842878389876474395726213828774685725662317087115005666550832515628643250059291644075564551996293225265388536719251109196107608006370156053418391914570149623805124315905909705542831641217242522592670606068801297564518874487522844752864372307666439855465358337174546819534383427517138033028887228711801410691495953057278522229154671758020233824408121565264522552435246215498132714872117188208275513830181534409064761784240749956920456721750953428640378844196842271365754166186848181796407859277717643093300342598103309461634825615193567041970601957091165568591574191262077676924242005091275448562836282876861817854873390690706324309986585960242427147611734570000062424739864276468744402482201590666663601603547563436979756200990775152035502735635558845972294049535680364859169428480454177988202608817810949071471781814244743074376457251992568923154604752263653653867983342430274411967596271801928356656095331031382303586521527311372282979531001532289695469854084505798944527847713614569544725454699694589128309106535197330558846517103547608336107532733673150030040015641444252105722644155281257304850688210597019840746028560240014680284413215911643921658104345566174318920557216126393597046150046619021984211258741219383526126418557844284673915374650175949797007416657535382054524327604911625610709479050228960078107331758419356365047522147084078371749642418736392698815358128188475997367646438361135457505853429451766959765462233668572779675686156358404140997299645804903337264922389774698945736521120208542555988402888345599142993230074569029952783202522856737835240413440846108526160066215765210216777327803282364551820679222367416456381365834667678107281893902470421192950195390380752606560822727488359562719313880317532144508610774726032045381852406426389000649021804181266541999496045637313983085708469800953523962586269419147346316984195936034803869462490430228451502733110595536037949391585681021555507702713542258202624209865689915993921023970141303379777743208638079575594447057157860690998214281942544698702680815456375177380807032952174784971481705333451754189714710415114127713763627673819689900150892418151557174734649875473251933331245814247106567090828546143169928959151104532694849380512808080570224467465855107562357271179573067287651385740443403307878800473491871887308279973383055462042209629997671216895949349355613850428584738654926618327895574874686122811036168822724106030370647731928791411152895671064595261915832827205128524233411562941579702605660237308495779773724952471204123089095374184167339241622179464995846663874984457517876493557563033446335629658937387624718298788080676861985891367849391004711043879143693640170261052916477916576180313930924052522974780322511701542128590297221185553087731407621598099859938728873857791282185013267638397496506013421781333452040738704190853553206376653202415655725443140213122286256451476014456612056295148167884913015992976867162334230257196553738869772114439021642309928053512872758079279491356403556958955215106330540795931112834799074392211249643051630467094558076866965009952472183986029441861341401409538640696623736267561088406297647444321104832421631555470061969196321829014996659746627114721512320421939893431594989020022892904763056856424945066159748059693522784945563241296835506905528937388273555032077592413999230265802033970636867610162102598486889502321438330248019709880384363216675719061225110424802061979115411117131821454989732093932203769011003476443841946503479299374682660915039990457498053416886454646307146664629658836869552367228357870924609444731676630389330050032799607964380548204361849886286287425992081495744000021734510080205566621981804671614230565898941116767592468779639008428493470585177847323575892153766236341512720878919158121185666070118668469297496945269690017097596694562806717247859767335784028498853409398356233994658514927765691413947378894129295821494309117501496765656190226762086344885959982153069136908898581246444512097644654945874561952773298612886819005271356517731206190690828225044304488628504692926219958428822248999896535684688663713278334162488025227411873796273975325422382657432639492185607593238100145803016583898232992892724148932654161730406635163361874012074848811055665837600034652416078270682317096658376103683938995712584505267092472450194124015861761952960592939235167436927004050928549272213678344356711967041306814170641696895418829997185828232528717850366125690867819837544935001511748652494255414078376425358068624639199142249083487517565507196319184112078240054172947932073530143942234326430061740860095989294567929981442596185437721939825004928940445606971608243740490958060533524505515673441487880068367558463073257524829509884613796328914434277088357046476006104014013015816938376594379413016191292952819677713840355874809849834563761431302971581550729717022747069182289841937552243695636722567480691235575498965281008501612264765628854004457367383345737808959917386098767251360578564564727732620022474808282475071427695179985102971779942490282568756183711473606445890551162088998692802858861241176757020913652628468622054920652679083468677504756419743909944656122871028361122134676516107727654344930200359276767428462952891676704149064896226838569425116240467477286295102833849061500400991995788221408519592090679123487775861894474438464585254587540621586103448503069424724899011133901565422651526079113498144061881674136831579085753110537194401536882957504108826180710011728198143047194609596769311896777560840993686894212811759823083685499927337584956966321553812404082347827366045859704630816180523687274182289393144053676108565590807857439180062558424257775648827737895297155310987755320699585717558589777553155574815764220452277057927552563132449594007401369592029504811800757601518053371726668098023415023122604532486669045860517614421808610498254452878121701629245803207926572795667436003990323067502840030868738670460870579817806802803561307370567183134869157319516555013916015059924326715542836434637006023529777619952018296317121846007863464601831591527430544324012314186706793177010258861301695246632138691023712709933509913910486705942033525593428585305816478682747399112920009844627896318126298441016327354156368352158239172207444509175005094299834634403517955242843344615738198404666518567900208367483743117040805299838765050312302865248959403267675030319040120586047799644252348530143708156408468580036865839417322878472685028972406949307923645363024070301374709051782066865983738281958093276339726176000305901560198748280070205575522672978555190665124843203655302097409087240332252256718415998005700035546592117962003096915636921218144999755981110445595631785646879412602602004193698143607377279159162067088280023189124138129929200080787528458733255582794877744853740830418203294450475117324185134171243517714558934378025812459552230895456279123431756552435723490316296055750307793287599394893341476384249670101125312534878427290408756780478377202557777933201524776896591470019762689774367816994225632864147825598613157461939331153723293372274341064912749832136931297900875618473672218675015745223155525709111862826631796069608385839376119769269562336671384179345159563967570002414884689693951292185493307895078164660956073808585142779205699862917809026960543398538558795104954937471560140394662261137131711786000186294916456779395465424713983895060058264598788323464191078966277230824263186235492802527781482151227313005160697119905966812294630073208905584174252361214780309622378870351042033509933274118817637899302581980035865434350599361247730106212709426100050810263328644718546970616534033118867982621707179515268495390756884029896558613101168768526704088805017457551670193790718870070608174023888268416802085521205269784580516726935523902547307200075626044580109908526962501223945612946944452681359089031013926724403746224215610503773665937127400121439371929580247552983635094893603427463205344777604319502340782581638081900735961073304263268095627319017498757959035473481090350888071115794648062023763826297694362542129565886095888744965047491860080120472515057677155816445830574682170044705055546851751204339611140025172073045403156126685439431295377616451522151418788373616124592220696355146268416966636146874545130349002431204134693214850917938261574988936797411071919349029869078967391484183847843194149433771535121990839710776468278088857639259915290141238923620002461703540738603733253889280255658970991453242389043859232585160139677194961726530301326355482451855540253347748989501865349899744343948428269787907018702258953070019875691152154794388307604323132743528534280753018653036382859435702549453258195262686963314776892931490810617497634033508263537184064225894862843785954435882819634119212924976571204020305885116457006092184399323659573072024950493812669640982436588154158278292493702818193661477441191378729554753255834470549630160431407167423024362797220140230416614640472299762523519663070895720563813103130773067778272119785333441493982819990066249864485687649593978963471708219248142495828054512453051911277387562177897271185072985365553141695034476893608839237230309576447472367119610866369357697096719614579295392795845424927362373358527095897987139593455949584793990404830051943393662491119888544449047395681262732023431836948065307056885034029037896180855326772036338353908400966357992957832048164929308129883175608974413539643097665702574667833073516949099445857384905383095482415345675197460277046141111315445619402227735023565854808569333388268875271048798268928476524881200472995022081618445057590738679412973939101123982654426441157897721040935525572258852879623351102588485442530091439965308044456668921537782971564692302454227958270920911916467733679123420758467186486480530740432521143629001985736829229498694378306747822548507555587217770748254495464413448735434640261484151980423404160650613812072357167845546481533637819207503820617091881339155214256625595196115045458608112740214633531860906741329322358226389087909831693419023204513064684271539528886995126847969270972194633388840647955953804200809852770575875272435739601002856417141044772409522381242359874619690578789660859068546383769194197799825790955151905719171324872508685361726669313952532663256956045668306813349283876373575905375455217523543099949321629156527175876981530735623720523437587031100605880047220756512359114584027485914886324552132186486953282763954009139468139578095086579695783305173824845469555344901424035793791056492988201781520364223154900393618242168238574268868055400627858195993980114152398435622276690510857686565869469761852417500748204981066578595705720695719890648033863171643660397987081497522998173337598026923405114295360350324257877817881164797806873031762681463930366198225205520881990737813238736806710262761603449496176643179041311604899519180904467351325410527795241836423983567051329889978461320556498332664106948658381091786202843431534466426160259732479879776384872605181431771472523378498347676987623389574660882396858790262382140566353728004707029459729474869184442977360621165578782034381679213054230683357462570398796348038044342231143564486832277981279979403402033492457067256820377250296173243049942337788335931098615611653765596764082961921186380931222347896735483000493195268800352831274316963456770444474117116713907172305328207999132401937827407286075008823272386897127866624396990213958675479140971042800835440396895859645112164337500000265438983763347442758786554322674307295423916741105534922139112105923653340403945356335190864553155910610247879490954305907726911315434687129260487933190181433623786227862138671846564917268559554730280414926457009116197255540543073396238064419474606930818118503330311147547640227933082671768161872870870786530193202641444504590815278105766659165189005611427467295880865326885873741062859574026270189971802383175703511867502327551720095860553638812764646526392876486909145096770770730698110473046164048324459484485962431132361377143313004820561481434058237124642588997446928041190728769424976745076900118093147144022903552802704597172493892052045162095152687812018167263782654337700230134331056569143878017633565727929080598637351274076039381363080824565754671270082988937822178248289121256857365131032039159993553287511585656869898754631851364260090331088984687590704702013675013031801436452959377768925204442973070652715344174741245571722875020080411900269953342363724769191699135927442312142663140798710057196615397016640231951752319069905202669373346624755072083460095482571386476958149706537605384888281221679140973353333825600517749063115416877772490662915188281167878105000776545506973671415104726264296485132881220141183344053976432765680980027019191443836623450330886556481530972326538425055488355228322122506582929699089802568575767227707692843652944135803349876252413047734551440135058941441116553716456274077848024421694281016442867167914649044491467756334771420765273568704038672625661350182060583079086298714345736944654766596965359499571043436551078708288141004871646967779244970212564078881954665979979979421364622309830711738697563496779555150522512363800935820450632689324973539477739713238917960214950760267916234216979766817244836237244944792904281848566661832351319696135558785850465371928472472321960130101965419719255170034580639488557630353135924776358952816781601864568995810529299928935339766180613439050716515114536358050252178125794178176336991264288978895846879220533571125735768184685083027019365226808454796542751489349165366649586986758702794655844428765994648215574250728107569311136723900287397404573777328603258920595440716379556919383180580833952272108050387731111323330798525243936873026217980640748861934860273732402775761968749606771875591718729192324556093001927123237360767203605945299029534739049782078263800512547567412870226862364771800608571056091490104450540295824040978160761514327309891003112683062338156649101752398732486664131798712756097448109142973411895311186421166366919326304081167454016142529503523405481505040933975826290810004370015386615172090371422895344751542957653412172762729022415638974073202075834724414439373207287144976810317600010363581914498086518048699936123203692087119790826872697481839705525691440845934818158821076509131850236462137736053049849146514348458709235189495981548915214015845797897543754129006607670113499270607231987356797744251248736380934800719386832946933524936255730652952543298402896452676835282285135614237299992183125607456947137501385698871554341122866839876199370804052881317110540141188369756375352781436255889903601328092511902069717979296374273593587897483043047414661704140667435311254885784826333405682386882239011807731352667685610563785194005801501320032446426771141579934946946428033218704724482089086620235285890985544582369200330760971322756599694482581189926329868383584147855660901489521270059414504147845484504191553974525831760583457236167969830900984300212195157717702660072953824140338169362394842239808021633861267904115103874623223773149071042083684938302241328503586133974746359758503924333067211295477063393175961994553386539763749778785384400544289782973657784952570257600630832171727069780462969474910106703609230846851166616325701910165996313234853230804894269882714564577768646023470343971857648715580346590797484505784842747039974041499576450112608397766303598852856593251150708055651811385350273741487285726220330028452212691380620811870568446010641759576980009096189880417158838042489752517948435825605084060467418045694340540560507016838087120672320951723267928476659144015601385437416122768889080087082424967982366104379699311418469420365996544209917653117172788430575983805656234850020455638756556639528416974475248643398652032382510060059101464425714119353485330169696695649771317634224338139865239845868694102488375337418924584897132496436746417298741588758321293460445992329843329876869764397080085870350773325121623072885374676393874139696478281153784784537717461653861779914639847271853701983921789425230305135964590338419350355334305640714243823738202903062162524407455900962786810359864693526529925994214773265453813434018017998157662639183592082022156855573926596204169861520354728263050789135066050923239927824855907900018142565135749834949982424830660515857297333261194262403408484787652477447225153598506563244604865197487296403294754302249048758077345156312913381486940820148672352181263476851088423301913554578792779310934456251969092207946569537901297278863350984602746782537982902139953418841890917348272352650379306066008712919325326605544950032717037330717853487462439691538701765890079857069507628713223953412306108384097773848013450131110700178783856855635868164742387105510644057058659834759794107880221291696538376085848816908148239297805843614566717623382338674667346685806944898381091304656522337921479501895181002227806337516018385770669666269369546193486738567536272693655547519001893080489055842020690087509028601723945445405953712698497212468548930840363598675607299530496444573339376738253503671086645935161967548006096511057751393787149982052292382860964291825912534968650701051249174617471586539722813114938151893493052874159799054992576106241559395117217992183775575804758545505163529584623497445983649048872957555626016622071717660507420540079204418267262553814480411831700700769396604503559025742905379437998443854896592921092183016317321813490718483348144186601708487570271327526712533618806073993506452704270862558359943231690676341277647352004950490568539924288178749085545879218991225378524505368102571420576720079592883575400484312838595875485633392591843911524304971200196531855362840859926622650034119016747226879309244023778516712229518037904675563881081094909409636508829481433347282785163787472595785258478326080315020261775566254319888234772019107556176880718684313146083273221107825033344276936358230242644568551866030434048691940364196239956032122511015397839903497898851299542545905702794522275602036337011425559143305267567296422168425640021893932169114558157012173970943882508438826646574826328512021177411452185306848756386607662456562710463111060171643983383264290032207252576605888123221653790100964705632910836924242181269587037966124167296875302740381732884033908162373705893684807724511747812897052907916473703401374232801489506165490486197954801771095405959888700636322884924150997649345928768521187089656566902081353856082094889104757751429176347269089799179100845658443331827075484110076016254114540638046365123551117140147585162934761816685861177035015968127884408010723773977009908090678860834492636464797088072191343383702456192333347369953895398651261693353226981192681215195037485674550695852700200600965970405634990168090962972098308285010082145681785983622462926514596776745048902750222897051037269626494214205101092598029229863200656522883827023085791568528570522863706432803141608708018250410820429850212093561819936910360154046751308584244863694932564160259085000198164869834681180889053386884943382673131521432156679355452870144169280660124013359171033771087670315056915211501159337536957321130706867482068427603525897612004123365645831835263257457483906391868939143449631935063647032146295646404503010769636346849201780169398841629045572577585141395625692047717100357846563569020146002672332768556207059523129990738569776497863263696249799670988947874466197260104353097876423699609899559495155619907751132864083935161402587606985344842349687291463119293309242025269262408916639175471432693072437847671883253325251030245633191187978266475019271551252636938008503813582926592188531710638369041624598703997304592499794738011897990014678567703695442848762584728349123921317359434084201521495379145250356599534424913358829670465391141744031497745347288486669969270389804679170863837773476510106915954907340657528788078206897744096495217240056199649701025101825928946431544980231936825381094080969856283495245122793072814328711669083525331993100981465907294483415705570997441882871134756921234318150658249239066335552360292169882274894202851773219661250669932914961917907271033403004582616533230883213989696015647913658399715388741314853467298870509646568892382341775266574386883435361560646488054878651946857517320911089629929349202033809056138528615366529892012454933738866139476292903736952307529001140218524354357859037675061418512591929645566536042605702446038932046028522915207964442088718451475537160724093037123676070487077818048003542269076496792875862065431946742638329177206986623350313408820701786378721989915521056851417424273588344493402883023154648847599226376602728004373586722082132660721283100742157390010164534134012141790038054069311427894574797943298212045228936636432563996795922275524956837190712665893349031291017599717358482911265472892950545143723197644662759517435612495503956310017129075955524826262264398670209262221430186782152333964639421099463757988412444977561040965573794102398595003132408835330338582288416726387193975285857664980221081230464688644016070548364222771002490103500713539307662340546454856348212756337236446069079599440719694625918526407703923363677133757420044119395360962380989618122874621748293397343044639656081404480192228054614237620710524998133532305621874287190085358494238206630132326356230310716293232646102913161861322002201304823870375131290434304220553776970054353591587588138253125835228426795365396365058885367877270856224112225984233377286784325157332577198194788301800582593341561416090607032954597953991971078845819328001782123952037384869740602172863290037972774522251914918496483396821893033258446357685286677799443801542863354128104639239316884565574791140659790660594241756982289378250027725933624881983809832515579518013836027790417376827700921562561734499612909114442987688971793055661882310200865297824149676975554719318986642021019332331089966812181256354773909102057379813359832358761985820678346885790365685087687863830064478089323510777041489131426716129213284924144941879400546367404666245797939126684211735530957559448177150045739345073946807798093334824146249292586543864975435180935859483432415269347571213344650811057867900018604871201812512838837396809650766651158599582567790330291794485771659574227235095588913659295759976123088646222007444790468003927470865385112479028214723533087712132736269162003079939347289626320055930095823733860257631826767891432268917426988395875337703940217973822398433153166515038235088467680305821917431677038203627710125379726657677282379710553377580617758257476814545104388384565356966574565146637089386709320674142297561214764434785809972466121834631349331936429812669438314254052208243224182638606733774382108340095481936046945978252627943395393673894850748567911058815601202566152802553170932011481982702061713460253449090987195406648645099525076611477752885899135417552106728056227484069070973496105873479625872967015534687384160578437464767375674028657422298985461609228804366917927212089062831025734441078262500622720400248997309925894911449959048584913210002025693387229154672141134325363253220485973079899734480043171557024318458068612879719812367305153363391564512322837802375421574393975463994287230928419731557322315993449136096296952486629416138376364059052517831012403162325780992391722048229375807126891953239667376680895658964165150617288212961779028787551385019393516188361932823416994314164309279250619618454967732551346082827346472856017562609892675740021557062547011206572905630617845548027993428583455462261598754719568199231761767900670558254770308363154673233025536386956412656766141839531084984905605440528759499026054427374322947866898827890563791561772558348480903075184356732132127654792199859934026387939850977525646541571252702993529475507400472719269872566171126584686402987053427392787420485035809659056370655194502146545400364415114728919741293170535857569461258132922678348008750213571472039299555463299668293108628324170911697481148395960028154912663189933748233917229152075141282242943649571755086524187171763323272370644539725153568764462092256513563190299043428470434612997039879111375227977915942421400912201610218392507904243049029265826059665897531742991526629207957177271263507186440741970316653118666105032868326731635535176645771340875236957551330248872030385815534493243999927324940896688205361455985506611041796135611561824997342694497654896951551156775702999304587796798408580035243495260473406070300251967493668088757995426663595287388345064981901992599299182086401565570193885005398996394313781982444377614353631167972029814603869845447555497489224509916288269522219662421465309902361268141198641376775081321901837734477596784803499747456705538632667515351536954898312295046619827067943852822767660045543804504977279386127655170332918877799215638467476132492461820667837717513054855352132556051985272172854029375989498949946210003462757275687423056137461071547033422041906634554214551380946870039901104303941411944233663705678092666941030976023273987188888818056818524875111863657251806874396271796921639523774471341026524035738265937314764380829308800792242493359083806475062418125169156551065622766821467120273530934777107667681848275703886660565528220271336183261246629357514075300254149248059418142799244323825686508976176113574839059424439934124227879499191792956605902916365648350859144848384445571268362786807403716489164602762549897609146270061176948666687812446442474542418285098623600344820532877713751601903137270940109587396003079178181928421026013654454974630334220979498056061430217858150790274502187027989025126353278677047633873345813306300521291765981334175328785898670789892558380598473643925022282301883516426155923041389339803285262281152723098431430913170591366670852874135170076013269752094673554326354950070966356927296349317633957193933482955476174316415789703158221652430641351903914092901656545311645967611504307894047063842866066917679314849134725251995846476075914763502411402625807256060575537799400930308273547966123182764304263299011549380998038911573097067669696978645454823146378866093831785535892889269711796224348515736832984866978059805080932049728398087191662109312689018665994289501081773572277188906541438453329715845894328850874559674503153295173820541061747051782097293413698469363737917426066416726111054654391524571238664561009112610170178960965122195269362792608790386041986769538333468907354758563972546903905230393068386540999844944546019605782510374495708769244463243416063376237937118928256389921602880023582963267716547099477114807090137302437563346823047226655004176957981679027445959547310046190489266725817725250136134677125181363522585126378459064312942198549835623264039401883381007212977140630628406857991950864633392413381305327863349705352240448963591032795225208443872146681676003980532542359790261742618465903345483752067902229370368441510604223244357143455533772336638420928395220616595060197818555720124536566450267237413909940215157436401709281482878504320893419071206251487337976114176906501945531354748044712456098854889727298753752071792325157355868595599341846702013165282092250673675767773376921354347466019016991398526411099348522733230587013460702350726128345238544874826566019400727962018213824790663112322247533901988195992699451956273676714324233495183688231891686261752755495519336537492957173927593493116125220833711257330025202754584570787543941256423124744129861878682409862944675111614341019172087065835207430287578605294440581708304646146254128754115699415841464634658997350172621800941113143171820855585184095916766594195755471226104279419793292751770417251933492590848190969829686600464847345708458739219285653364605459333563395196783353290812779547634499573700494765097036138657674245235278677489000316199124662361042399781129415601689228909914419222060359935074278506117960361543098151880819408140248267907892534300049900258779635894444242151470807941111418688229463561440100644555847318597134717363484012213216437069376961448265557636764586400758025758448273297809157174197168631439835946230389328552963478078493739984855758289133718651381343415520430531765590791658148089301609923493652742874500682509743147553105692565754336028049261235473970548501337984307865999612378472364671942613365722567738829233667853056724513058723312101084945003210227288075967186755308017557973718309628512260063178032365189211788843689424824873776091632021443586739492839442372967487615204923397879715591253367425965045661561274556941491761540587233331100954067266386011953988918587295469785157297626084021185891667828175674755653490256787522048497087889958553265086938132265885592987855502636436861470098481125499548325622905047778152301275850903135051598939652039898212255208601794460067263768690986105886867144977111080416523174875744529473017255479174075849873361649591333246077100792414475052628656621634619583159358765618884023195868832315227620807730793582586117294750528279055970915121631946996694374644046051345251652639863859335450012635772782844054870503992079660351520224647039026462444492870929396092121795885572785664545351277865068924163999053685333414324300065215128416450223568116680691338040306931011820742229079967127612441919453760861457062777947066555550447700020440429887530781246242408910122742373246571596316034223494529956841762061699418389606089410353211482518037276835842675949412661980125283823646495172506811217973612660653564434496983398150217049538930659249525270926981154692901764598667457515277072854471554539058993499617671479641143955682457807299487892581931957578322303672945759437043791879253798243548070269429715937694525525120201705019665449073354494809195587545322709440382014348302760857968719185133634118505049262852937353182416864737496218166199929462997753390151159277637907843601943003964661688663515793470249720393647977552619206513561238966065681061188696895149625791457374708886725507494021181104975497995920712352595573670764334681241229542848232520813295281489532058686915897891615337650730233744626283037584854597382060794217634453990374916503744786730592927482266344479212513756067941521614590780021293809870703013018058260887528951290558695481946008643798905441776645711840850335555824517832855457946923113425732880367113756774553125566108725490432776680951329207364454754088872280572640259193696471276424159637501218388210788284860006328982407470564553912631756979392170190575414286420799740232490651036569895004309698628203136807076119794162625441311481425561655539969068886597162518170708125943257794067698266650262811361567001207299309732672137016986629734617156614348669760457447563526324394199456379556295947807175672133823091147642227954936847882507387306465733497858052821650144664307215360543197743767490155400182251906535449217999008350463141178834704090609838355261596655176729177316109930786816151063664495427127075187876548459977794909285571355920254161951813317607973981598437188098415741095844403301556669234032626901950031754074852872581820195364788665412085215981025643000550074979790468431230923263880277478132730228551849391151874472389166310470924933947186686852503928247090825861062216428552771842160147761564109666232777584559304653269039946516939582215695224965985353158516777494077528023933487780273625327499495992223809553202060362213575344521402738349628139975065596493912366546054442214052057794479839703289320388802542041831390064468474532950480220376893078736533911764456283425503343415106072607545581180740582263202805895540105027170907247989461985340119669062245061505397768475493503296705771817839833018614846047570300756502437848740039205185097760427804038157613678166373803582988444476027461037593850473776545905902147156554333188245341024221749409414563104800409077639080794879097612099343659835080807214406589583814744139790879675668282574228591571503943196605491079625649809628801198773465343546667664469750732151102110419646330408295882498396427937004605555960019317868321169377553668098832790240072872443009422738676403686363493268785712655233820876366766672259389860594547069787751610146574007400465696168931916330143861935089611296592584407031642310643277495830049015480959198590745344028088393896634916287577169965753031846393263374508922331762019025861056008980719925207012469921564471020051834463464765098988626208740742461433501409178987874265537592454783921271306545252130359859169553150991950340876966965445573904901628591954974478385805782010235524586398258261218997663287221279351688949617047151130721100411666206837401627545858743412221328924080776348490201089813455722808124654309105982239784072211871511337024454475062970585188580243178271639289981647441505217493366902639450494616260476083126179931207898037948085051681073574400310525315625274258354155285629369384936391731286954876579560281679108930936256182166239628965783049700372664709559131934261431072286366080950208728070861167154197013055997527164872445410142792447894470503944447526526994876681489058212633679935163672387038448200557507982291907440359023818210091500061633397405253522345425383670142324445931020327179292919859462414446997068174183207685958054955401033322264997729640901699691829310203309710337862301635464426966717082470609786912610916526755845956507788646675562799757965404637144421150923958974976764038105292426130797629537786203446714977837233913998572315731414356823873830342869543444823325349110516473900985292792699925204713000975619890420801901762025076870434732878566534849878358950508504747023481379219641685245023754326564311725645005920743201250561012603605734028447604409976704426957260099730561657991571999232534668565716560012647364399214547051242004358633289926592603324356743952158436407527331214658956329766107906278135425190929429621766315517963201455727387710898282296523872253553647586701886771904998087587628980451638275139687854885492115594826844208822719928285038205609587975652962170807805491025228683279263613605034957808681659731391719667747698293232722846862130699781252452896982647154989785904642130457529064518303278425189138184225556779049279881703627355009122928928867249035908230717594783013474240650011879176367885447755471406840028704079123165129031197463800056904744190341464941572062681455055149738961631856285298991802497943967546771101391284482058515273631417478236710386635974066513902342996758007840212408733181887350184640123945467844849932424663274686885347066273456387728979644507487780015030686769032959683020725250598389603611759219247831065418591829833885134752799650777087269483453277116498072303691569181306589729334985250069399589196428545130589744484032244951620538312089538712518484706010365573419318341111546301807113302645887379456643280178798223064465155508721198276805616853293036290831170192342857370670104754262940051997652274422098225761277652931589584829671284419508213268839239267395882465747031906431788446388716575222919043216603383526776286659769138747106207637515639186731921608158983712334912078503934682179190881465110215445600425175455472245285031045149616526519325376705745427584621900128980060697663500441347408008201435793307850328213048939497393547169067173785974302537569138426286733699457202720904869650539388378831219983110500461189204645162425104510856438462354663803250057386892062751606560794630910530120896002775797139794045342544688544387679458700253446843182233507267123637515879082420440258694971085370281448593436837475025839132106498382221379130406202205161279386033327397911686612625159414528812497018115545300683312523556669155783352885571007984440297403221517442296491607671625968498511284929942902221140746903389388602584627771505005206591571859887002939728284528349911113964915733618157681372945516040007505061470946334825427915617373665861045044290669095755162933626009312374541635140747196247336626235533690633155715377684369265608842176343302990588823734568787859217442618083040900271827364635297286520208085173705900314219994472454534257961663913083773982730126709701674278527945478638411403624297135835708913893253098800682818786334697827053328859703056448268940627956471850837243805938620736109295720080634334461454881458912692610356587217097084821483301743486516013732996855253627495051473794463042989236463972937831707866059096002791920711484819137537222658496678265604881079625780533280573367179069846756788159359349375473401338393935373389831585763965641365312214478601820224336574893895273046268190462280776599160892867244709254292861320994789825363764532368926017069317527611008063582864938055184130465756404192042546486985131313621113583458770333593409539673715325679406514215593910715479123218306181902274346881170674389070911629841441671309524856016442532877473964115749975249473200047752866764393923610447875582266200332574291810942497658514063908383555500804758281038021596576909931526131691306400387368587118173070599902830416743679301676383507390256991795325121313845419712185115745297757548147320415618169102817774074610891442117298671253458877283043085994094593486295317365722106714516883615146117827569446664189923418993709402039997069205925298498698233042593392839484725631289131028202275308895558081917642664164764856802696571646452001495207792139766463958031042168730480242583991184364783672610263745430670215242125012039568337351603997529979558218790088096716923707479240666103068690154366440271355386451492511347493600691542431437927483336296048245790699174883415994434100436949484810133062794878313444983020509541853405031200121846529393790991475928339419129380222011843393300232101665106697848782179795732142902384141109848837343130331523182660922662498725746836628861394691003503237370576926429379739413795827816086961861221244308454588976132674209686877293663209083609605103181248771967523940201534042946434994083337102009915550231329958565944381634909719733447773631688296178644797027230699753018693198601456299073952675593048360095147999855250265520394919153871876408826789223063936245873101247433039753696800840137708704001738109784716589568991204152161923289637552521656751240767975921015907835466351179991986524193786115576980925007191766447576701670397993667683810337287504376158524426092994377616519477358222411808239993458616597196705596932827079364598646773268178916920254202717138326008017445225481616389191911567787132747217072157351031054357326966043630304859392171988824711162487638093129305365668431427988461004648228503552829283919810262753633709104504434634048695805201446743975554052999822321355796137918628371302368162848180347224489549364297163739680531916872638464307343334305133607100856322620950747274877232695236445736368575905623083744913199901254540479123484253980239692221757149090164775035554140217560928932552940717309763308759228970629222839695212374701228981396739595397966165943648537501162524053726550675415897094030760055505764866059793675978475167861452953936537147482627331408174627301617747684280331635690372640128704929386000154586898372053645024005773711858057396963962470728788085120916627772889730949137215036181832330453795694175237481629914449242209959284260743742910489027932717464221874818008623903863549039760874398009500626615508335800139390411730635765213529948013540298546578310243160336003237921697503236938662048692482023022401844308281666363955736706900093089997539702167732282171458959366460048398960359545070693887996469562845864775075607024081167193449330698941020886346535090609682975979849801474169408877723891220839658645033424150877207492510567087176671002658578785760140798254776487547584632020766451576614155485575735379472486967172005762634399127374187927560008637575807495369277531736652320865858137143963791849890978744764404876774995282965161592918333635087223377678464820954136687933251400559903481208454237848311416642734656442658629190114169028963718178215092779039808851224644750574876114680024334147534435065777302987335904289268561997350142604923226792495261889208198195965369121748435631750605321893835657612316266673316350817273355464991552373347503228599107498458104780869912317457148737330633278986464315584533598783748546365422065390428139257845339194105592338911499660978614460170327138575629323669515456007263947491180263234953225830615772432837225575256776459765334093160246991784137499874149050818612397129583430923730632580742087240005049207758904259266389963924690037515654008103396498940800129624196670598033086392425031936613115862919028829491892061251779197413004050293671706328935648650312336866431721510149428841016731297426912689192518775353479978119453189991738457311736619288746688836756298239078120164230645856870590328221104600453623296148951420529811398823784188409884692659665065306187412503926067677466563157634058165882559500401031538629674793074171633642220397307518800364744947095258847866849914691231588572460897471652407675642674716429007045041440811484138752164572590577136178503287459565336550331437025290064804212027065035110891031791618663709480571498143332726370303580538915530238898229580213673240610305886778511028601151328921401149982634537089551412678813867478841722784420224046212203412126665464436204480625583071076248379351781398686304904290514114540311141054385300148320137459292798572259017780268093052705760071741160935987989468345987930683755321455148581637175565741661441057317943343079734476122915340160811724532163688828030779867787708638931488763679676598316729832223452513586352557753215611770746400082780492912032307351536773037667717162276603721402304012154260609497346997588203593812275415100616641664714333889058507870177307788169341026196020966247632890058153352826968920860718026442509745052880916348055140351814703281548869959712231164833867800524149054932467027245505110775683238874618417558455455332465508761246065489228807502427075605788608324858000255193987771771132645041150924402714241355512561667571151495034146093946767545254099471545873466588722816451512941963191698037802341809288484036152916753052035135129952173405388713917441940678297593729681864119244211298645839183067171970639302796253826694129448093229845368488553709515117536589069050015604061705676456523154035845127300528375459524963515853253472493026722209930578242892805933607825606802978630841173194301081313211366966110659073020908275404750955673491979397422747313137360929725004370641365980917302352163431777361611794152752074133350110860715229716667749678395007226434984599862592889718421481212905291770821552617907966777858033700722348108780835797083470460894021359981667108970485291169082198085626374535868962543775436152677826785381002992090722817427125147391335473277519317468697347467517409794191484364681497112809528440197140062105811089916335617965329344404351443524648786542303969809518654761982878140579922655976853632460292181193729298922430478346695320125147264387355363597360680187984243197072618744354323788464676434233657282812175086388590115671715232125331462255594599944078601424829338541629384095110026905582636044086123019227984226727419518146159206882927361641053362068005130803267939400063987769370366019480202266422302041080974892081041209774494004614153690188547126903586899406619639052481982477233780601897573733036375141008939250893700791880390298800458721963965545001204705338041193694035932167454707214587879922973142769524936058162005769813299461847836064964735850276759578731425417834300198291553876990179397764006519961179872944316117961357033161486966598846487467606085894327276746243726995727685053334452010482780024417663322021976372788922537459259481074260581874113320003161613745847320842551355075452969373294156344132238456770592562437810232711782290817471880842526542209615682332017028287059868222393152590751911175031754897776286141831957146925969638670792111176057708357429367352035843252508345194588981000650406606092981085520557258003987001854572005846910401205667323747488942512727364594370033938711693989060338883548475965203345531843452662858438019434856348079743021451220684951754622071297647594570182909844947648915135269744456051103179932034308532094650481682130632306879789696946974133379186758176992749974243934226296386240058325036963248806416084795379557966088399792106051150959317843051383675300050035287465647308813458596408313227255843741716190296790315931723774258369877959305471626265031702018019698104541413366112744414998641560388171264767515703990735997056761479178179815808231115079204399635147404951321626609835996983806620241752086163151840296740001393162225910474365203161847489679811051898605076158064146895637317265273177991319603426036553919199431088977002837503535167412481141543400848313349039120593784960236265047627489620388868969042754474305027687860723909227045509477468170898710098988357405710409098783126902542404514836236060359185587096758009591544969918124894250502568437200893502899469368069814088838617948493877468679252207967757852910487974845948353351948900891482434427262037005021753308191475875278787646941667587697161450822866289812971994272782843998122028732954592530210464007515778472313639488614954429138601369619183370694839377946369591731415426065155079127072316768196130053233011909278306960872393651965687253812344146484995247000085063190139541956483975082765609566625056639870396500172717952106806436348780302381658147339897520270456802638306094664224886734857518872436646741676058077145937559818344190295820676256954983286588232658161617719832979626024020689028931488507980096698165673165687843683339576717001756870537442842985126609494299746865380594283832052021724102970167581803512279656886871071209046217580014021188142734415237248329807740841236167411803723940075482140797612568310728990669363474712554165100320286967908314504041891680258001870726475210313499232031132784176693589859435090640758907884154566639009177517531471277286268705861969018437879675908182290528581894396355868393943693574450489351926533848551915267663605396795166622234683461343565345669319837102282828557122044690600645543086314439279880795394940534398619336858588539107802520093419762481201585870598664405654933841960514447901164041399581948918552850441204416950593068059717145020229166781576381785142987901844772453872700994036983031372574605964949750397394774260795733013863626689146374557268072088090057210043919873216684966334537203871109983677103372556651049735949852649917092857225553133077608059643501929843503487718318246587410952590097051696129914877640198970616193840784914850867232843439153136375312432344685055845174912815210332235908850864854115106020501759302996563455008746573593870251645426346158703272765487754193118299943318796801091697181325160562863483919934721141455984931141649904567569196633452778672292038584821019495558862007135446225801283293171237072779560843479850152310667323869432123940536618561162478896913656232015175979755650544807040519382110414860345792901212779813818356623282770136396454983981460162192060865953821617930768514212273759011783423721591259315315529065844129819811168353422992204113957743450711671735901846364987908055838453152448046288756043419757399112330854690066065865666470966131885689700011332976812857839078322939033862164268228733004803568728207119568613837268842656398204754347299039630406170170245968581301262380065434769897602629797133791661545160024384101214653102150058413224449664313362593120599723096900335051454608904181410207307745012283499531074064849363827450006883409072432238036202096123974043592088454781490137498148478415003610547938408324259299307590216053017497624760956316715049352184264415342272989761688934557272641795553374544619833239971931352488545184445327446189017637899201254338540667224954401368205309198967038440493135162125712657111256180207412409031122503392297682114335218463787224661381388956994068632073284602006058159765400979259400715912489032747681565060408363122325429153237235152972998534216777690781951921862006785770357763716928764343516699433254477119326949119276771394648565188477793499719870404024093752376457441283704671358188161545047640891145125714233063223630187983244651949667432079737253494604786779054156623295909991174711230368013831649704697837836526827226125792660807314443597313264263097610611139212795868373733056935047837276244891304188769297369683204692847782442032700018100823082886176966945200020738994013955521757712646193387301414842365491965501560304757914552920258565754577186141366913923778211350228010843163419642270762544519981040363170157720385592700380821241169414231285805302149091541169593138772410358932414586763006196768344725662633739774588230284898525641618813763296091547032481336263669760194616340910712296526809021696286161135513738350008480034709683436075805940014293560603339028179869431435380919672381371320057745484314514718637719733524134878511802033863331233213997525098402070182402066049654086677410421862559163246060719993521050859088491852556497967142958728617295017624432846747612898210944280423366112255680262360376135173731105287417764020099861318639759993651492381066635864911335878802511223553718290276492173116364240181412274280827642164821169268666384840379730964427646326679881852497902588313843443351473143403277432488440435569730549757794454216139503831485539172843844857952170134765979685643909445613692703862458215080179451470852141203483150411784147071976854652032987519015065410478045566730875044918049566913109124959697205207488154437079631558890425233943822653031377344090565438577371370296415194600703601773713619588904109885855198117425438687620242721716599476142476631323796096619192888152130810472817731577510428061057142297614317956767854547771525139806605909927643199250346974167336747576255106705810116270769436861524968583175730433971719707880493154597555397543814801548898829314612446605367480076757907182187041783730781807370267465815399894861902612500402350705831781075020202806850257001099449954282284081226780159149923293489402063677034834265685239727737796304465625407264496156607991972621382596811158342029612305375658797163401154377943955456047243940121076219388529601054923500095775866417269692143136903069673809241713782695306984463356749866387942663901677229205984918015193676967469100590802880022385102792302978459972007854981002256270133764020141298974771217902675033532497374281046463529113440896160839515216641221576250687380135639042026093612592010351922314744359255965650775589305153448700698532304017193326648658715149636254462317417784921164568687935031643533618902605992261209492520934945507470522581728901017540479879730314307291919181981549047448311165558441747699837933798899422201810458240971446261983870800544146400266061004482483220473496132027954856657065864219135074402919224039394113121655264605959989493875518887985971390115384048524094748733903937986697602326961461037662476559215406827514783002379160142818418263997727493220688589940540857980883164933100364287752141886001276880790263900524120597086092967077628536241135630341307217849295818870783384859860488228045617363326395615063523668504272126332547419340615028094368259019928320510272264994184922109404622695884552226370816894352105634863156680642203615974037962473856452613878397665605566658132394242146453402386347902256929222283967068540027067068045761766485080449306523135260771404223054182256651383103279466418889137557134216696181259638120000690715690550012217063193854895469872137564794686503894896988457244965491399912305354171152163026138861679787320810900140085985373754349288615641750987767977552074065046708713230712482577073554862076327643426893353061949730617101373425473593066529787658868455943380850776253406678333866399600824374857493324341751246311592317205922770949324920311765171984649431112754296780179911883114117677645733607762446089544817411439076811877449755497664421235912299209442470785406170185482816960498097718163874517100171610491260458469518334392161307926853126041139713217526781904100635154812552343689272561538211318576054588638281318344460724515800191359412521480161859530001632354743337294327846186475404220336142628599299209630676934953205358577213603954731576340350557445677830233481249908565609863867818748461165700626576212057135349820469219251014187904801894542064842635871014911782993740562712409757482084621375308473608497514706613065972470776842726384656676795555023453908023647709982863510925204069298230431488116514780528554473923025928818459338004997673889419228168455376217052387857968686418889748213870006701357023896646780555838625493795853846225517580131263172569137958294798132720477944986951918127231092168275895104198887600389198786569563995828837820339288241172059096565459443101553951591821234540060424164769334029427434709118792112096432074143218931525619081403165753717199641924885711960526785938871621120155365157865841203371646893049561088662196224215098626820057716005276335230519864578556310140434968533282269883228712695227272915363412815070472993270616933977155068796110744632742114898437956575497606636363128754515961882816029307581605186449229191728894131330452102182706940512255971665759843891169874177599216236228931118840480398240541135585495137807154353185343781488135642016436015528872826523366365923988560617625436130344797794342049265413468019754419984924745185774991724949636703767073079599191431114275412163742168346728498200556970809735360373914088673935143211852808011608251927721139542771436265576569162397182181005394891492112830222836347020045019076005511917422587736461778056778581091188298895647660613748636192241850563731460641227811141961117694483893441069755557403939338378714171217572201179555063068430861945400826360595362409157494559092885075649349926510095515255332437975125297453838842451543604457006506062669295216293579376108825023243708467576599489553529255318631014314291549124124930600562766034194875513285802942966244356315387942887187018224417239435644367304251733096349882068711025518167150904956144656263462218658347327161404414915709186600506851431309213862520543021045980578495917012596511262001351248676184728901669744867122803275287510488878299405143739813275052706112053149501211595480389712479765818929422316789980609110150597543846931917709908402004813816873328602233917751498306593703342743954824949742851217487384130471595185079585444676795875756228521243143545755866670172476845601782234639441439398558330822412191700862166935004836411938173475092502161609688280503941627532597921397447735108535512151752555717671859894673783347728093693022517881517436538839954462624482694659669621032103858190347485600846384207202416471545196593491205190781586637997435658838056056702465316833607850687006154436904901863342325178232934670571585135002606398119081883339527053155100328017691889649102403731105311394640387242662568349687116250847377835495625785553172611648735053831824778867029922524614584039968469099707896758579360004596167656552567234153969492989838922812489259130191122308544541664696520108148717505026553221584965217050145319012388290191389401873494261397126513626044744634945728866528690183788012931106790566994528643418024134178696575386637564425571078914929287208740029397910772993571610430208772018488404477959585038254777558163148318154114062274863085204966386977054628978824086725239514421658381397891241202500842282842586209592427079417586477302653364972921760919793745984383694170981475867171668895443109969025231482179700726804699963136505594135457743461465796191494618271617129308265541041499652358760380879332244154165643878241846103991607223051490924210691883992395459447490604247429981820162491928027014899164718831565869365647410249299654038450061851067536007974958211112439567039377387200941107581366012841022596235172685446083696822849192553456334637715406515171018262515097162247658697364086487510019239104929407553960584225373605089865418111119845694452826880610009772683852339061526193662414666526678855770673531372029148407404278717259842821956759381284301052556051980313927328511118724442682461824080865264680064654041612625436012293805781481588128736297872099526742282594116222035122973803821589392662243976109805540742484162326150082921652179213554265581573946616334772868234476499599864856587830125412971163955961815499857370001090556049805204303957597825925152505783585260682181241161483115687378867941591404153567138454622254667915255978542414223771759705078266399749011623374235216671421742768500097182196582298369808403702924464878283349839556267585228061691712826329852184712909481796397867493754877191469770759884398528943831251171917190790874186110974731919640889291007033199997355758345792877499847930116196549246505272895484894998687159510061675356179596614932946937312836170926336165383086519517619216706057302948571020532272538146099799744081887241690459339421276412629650548141521408317352061918871818504837186769123635114925402881392628421697625940165221391678206597309382603542474023726323733797307657388068024917224730112432688650610600043303002173423885631733793025348660163900328547150465821278056508921674056053464815411053836702381023732783187937065097533464485120097674245384564462200429384724593377188214360007176871324421555941365831541259854151856209187917738436472691942641422970533971298178251130758249662260091087620903770756173928644037547477460148367733871572043543627897767639902699703227369066386372079001027195264925360394808356308488803701336744053238418392446486013890502001942541796154906910360820611700077996003973419539164860568633942437724792631907586159288428104029917462415646868032262339889841783591914257560560086322943776645949385610443904664894983418688331651028106337665279924911402680076131988001156276223089351837651362045256543990229351858133720433363000585684507403135734882422727546811574250926035968363415705896874114847093975483735172345513757879735277855601848221604738003838078563056178496144823942374555305780359437074851001694597247463927067013720411569930338750495932277223299244844455812014748196153131881167035998284164650596316252538059560590216176744875832101292115605672011652717289756683891378703224698418465231387498360661980202854216357650153691089550186470886082534749685530111240104519415197330973084998506108623642803004371546201079854825913479688011962070878352543338175170725809168314829659997817834435539887255730688062262900271017180398871522628302160419459564352840041043696828393435641517943030799214274364614921854912708482032334516424059755422371658868164669839258106679831524419023238941187943831557174407929414116720753921213115063658136106640389445982389303159080660720134177130285023322229468837741726002084762902735953374368141779398858917236981320476319098586814204768834615578262152420665446125692038034827582105119235684989246549088889353449815173031512019222224408416932030994686586613996980940904913389073263478951843166336670808560870665326338653931537057875026532556547674882658667308623656613336196146012305683294085996701269003197367088836773822163325676393925618343225861543085955454910544623068033154187352753046704845554547056302680178242313178494274346224585757089811994029878354246600892709236892847039271947155136966853190676818543406408551758702255844303955899959876512128543721494089885766881736096252492966818020225321145699862628536722416774995564742791067867675467905935829294172840409382738954341049171321065396852762222337147332197029411572619925188335644437102926220487722526039411664699116996543659679510165022566056193795367788717901986157057169858902177773874043079701183256410904996268592665341449326242385438423945364107154778581846829711914653546842574280862883629855545984393370120276464893518152382051560946976143326610676679193751292264303039900604582313241490434821809052084535792237417272221475459509900748880317239626628748621407412998682166512035466579412116728662689511919528819755425917595406727549174708850865700618928394726743680262630198416161325803485127115794165443217405109433754547765252252718331515735244934630438591709549003880032497983005401264565990668624981880156552060346706135926699759489539864689884098009644727870826623163822111899173081081471924601995819913529456080460965901122006513395675430958493333514219379998514413284293141635192475706158497731418572320188489502338831538501865471836690863963912383945802030577357470159355174927112699990974240772043742796616229070672599254230192297379011051888448832550251275012081594216716550789339583228409392377265101423217772686053522489262228755289319513948179505487596760313063183459101543256385119685979582156497385311963858329295347835640526063955554815589790434669331745872133715226924389623650487148138927921165339177255717033258867931974149934836996427743169621645944466288204656347200803306462389039081657122633584407583078309423459958879802536959182300885367766684141884533930687179047208170848597737748377219457988835029315767458814150178857445786538798420956787849365659820390786091519003801002802606891388803018163451183396061013409749225344175849838090673204432528279283786202017269203919924916769531933457306709564371828997801947607838073667337014688577287285619666361688017618182153430615430948859889165537671048588340253195396320931148055195092143212986710399243466437726524013691690602065248999568527193960861766216107908236615563317177102487872769444089174267570293859772216050534653132022647341221014418612521953240379414933506365061664921997087419620929430814436654774867142750534216793822309066670300849899081256067978840180221810331691809804974932829336424106568254126212937532740212591152702416933785086595206621869894914556730436679752501874083379996225031906578635876782822893289487504225622756651751621166275293403492870346696501585423761133990041210004054005165125564810421865703304461087017021607541516836277624076617780099694657343850808155679129367454227916970662051310234417383241694887131217414455133901836309013626395261624076509180061442269352351376272595763520042740468795839737608943259691507620810095952960993139889155308603369931752591128010124820637285635471729299901155130284213222242642026525114557297163663623266058143139394826830179706006640016431427221267164363699617059982972306158543707450815638229087169635109081969204166220028330372744823744778910751584313278924056768211426549291880233902316293658359800945168070517848756096597963679385014821583288660044411985529252544065060934910706517463297229540968355612986282133352169040638312793233730445507772451470898639368206620300869800244364568028393402231986734730804686924273889809623670614838397660708618662810275403795185408291526402245362192562310813343637875698384754370304482600315280198167089495967594396393292385814997682623031194017286011426988052628650043580985316499755304742222050119516769484763572229823639954600561043829442077165486003273202940407182058821865300643710369007973063139927016960858085481223719805813094183953831545868426510696387041691251096007754431905265757142041976203206173672596355807175652488650087226659280200122307811914033909158555427266946469677964789371927942451361815383468360792533416483311902046865224105065049275983847104120305024564472967487062768073222181275272180742780932167744251809650096051394838612321462795025834859147769409458432255943088286985550549748503485275214163840196303019145203763215363694757259052668460183041594186595204156983526336100749299462876077925720815804628480222399048828387164759535813529166546901100617921661243064468873205968402030766226999609574288497202875884384558043964721058987607781893327218968561307014430940814921470201476967075424262713644696431238156816096375822704086461569280201713606402032835085216558941761142067061148996278735798428558796622715644672728591010249617641542780717676081869393111105733902818163613611781703492174040891432147738687349911111472660842438293932453932960663911861557658202440986134187309666371969279225639838506313706448697137234897318706600135439091864041466271613404689008617257011954035270586958225503219558502860161093120985892001145828416158257827498941449650965278470272202800826950064420099978575891866161992690041545204539603503772232851794139522590685465311670483882735889084153670934238097636790472749783584760804788697281473766771432993280733455773572211404342748321493354218215813327465790122022606697495303929231907872230508734622886154692083322266211976700129688035870467934551771754953910735387707117880364572837112965450426892652798603891197232266787457130966905174826694442884952749306858606598034053634693399424641457148802890494196508211781508656888348818407445987750743904367276080759214532731237170651398786587438811484376140890735867919278542253590716058595969859303511867164766687610574114129877043905667488491614425640571191090205458138761328707796598426682385728797025745944723137455576429642110686344242147129031414805376588286436897001272794535714227831187077362784525886657841420696327454002817337612561347411169031588207113002196298340326815720365632828215160360281156327221619146624461403837983723203907320723098302028410772527507754265020247339134068774662530582931085925484443219605391584808085501462434249768363864484110520445719375366058154742465340601040843231570824686657998057908024643254786420902321075044207014489728901027373690765734495693908382632456614952836935691369011979254952696330866017933807432116806811311676592219567111127449399311656501248986260121316930144724252921401642575800817444024257096594962838037095454905623025421081593814453752159689112817386341137634479780903654309634628779965511259984384389782084851605873231725928647052882145635676382543049632956408874136113405224022163900300286590497081505996512835768432912044711048618761328826112930939113443592782378161245993957249401013320219598991691508378533790091166642255493890796928592446707383992474369009973386775382935506058562150379756953220388496114543083690226140219871277732722457795521635277496855336406814947622711697017148140222426034918676911546080884055247966239535063921233460041318638116549226874878535840102669766963979495928030401421742561677978648468841238468081498970888981367933770216259892941057017987338185263318935895237803601683446070022524997544015814967240851294025159013361208197512253890789271426428097593923673209201117273365654612334677821284235622451045233194781392114348626951372165615822704180430989303750469981904403947271274270139088678914794934276049679691240014639094259867512921760846898677997202551472264542104233117892802057692122414657798446879424343041900896612021998787848729788826600269499486922279556122876997909759607690371926548301314583164035554848418191127481993093444119353967450525601567635136132121739861229584499234738400924463867719618871612545894980135260215414768298734062590895007614198252565453307002078762943320702074885242737876367817735636705970376945895548206162595689249527046638575602990483191061973803751483933989736179909122913528833599406393902110677449471090146448924520033446549206704289628183202059284985815664198982713883450432335004481702617509827924037350365540217732537507057574977420400781212079786015897429499585659179977792933703942733711996296329704170875468935894003890349782643367395234396563605968952465943178350877835692981725709891046657602067898533050798129261755223095014571584548046068916539782209724980568127240604003016715997526526111643233264197603990336255748313958154613904240450883243726731126245800393090810055915856389956988451514889202849110617822263659773746382933372068975868852519503765786450385909101379577147895374408145315154330337288125069999096905448939125254481709001494039290566892156522834395661137496729837789450895758265051561831024567111160590240650174184575471040940531698944123582506364645258473796286251429239429898626489306156937772643390768991033410967235350742289187948608706033746629171462698616272864417242308937154985406885133486387744714170203121409658748521755893607042968883818496739478809182989113261283900699828604485388503529633081617387504061695595334610165868598630151802923287931197451045534646248973145195563240462967678915647897362386814964290520804030016624026884562767398537757302948336160950746952667987147349606926378169196136665072245202241538898326053365109133057191763088924195864468103415878450140222438293443169853134774924138587213365189061849400121606264062168072659371562417339125342327384661990714637217696042078150345332097280316751527398155746601871341898314280535808792781161629729727460204709166724671587027326993634405222629820530120056773511262645388361728617917491932175319017314889218698223252068426102579319863554557652540155578534892205000813284001642433933227142899243046471685644557129207631805591302751891928507066509075665093986453508738265180100139356675047918858616524949822370542939512885550301622700046384361277264333162583034628152640258505320572884073403882634304963131997378456984334810581123996146691814238799861270147386808968307687860578234770311058782326890492589180414095749694853110058465409083200689853829617373306911396115761082294077084648572538098817085558630006444558450760256752442193025910676828318642637932052712900861143670038285699789962768762424105385344623457712793105351581728075273449389452623683015577188711711809038776927060061533406172422986965365708697761660297353615010007413756228205728184795902899883050808436137270683050972553167442137477906105423881955572390703987077528769095512699834642108267525329451674355251812228828868669539129411448450096474549000182741365409297755688515459304383826099171068217073795612117543382811789946455994528876151407954376800083666640633695486611786456375020810460535233604023436308727483043556709378639818847788182778975783687685520755296897477993672976997891535156533078406647149454711635131922911850713873021291268627345686684685038889747803135994131164371272817960675523565173205956070743676689043083165418492691571588831837441539935932645701414621151296002039305977863299147045814732477289793841892414182524103986978695841072180562176312874355422003048584701132898403495356503745924866052446508947230715085862202128790190039202119659155497661719747623955770507510915325274362446908957419190105873927184498134807516308827731458801517798293973250252286761946826381794363999435667133030071872132221138261499039571609260233264163614029633799631866669212550708753318357869552481446794383637101021975122211092907098583567869892387460189425382511980229128478827697017596647046489995174415793236667998997267914294167371616397704783110816359782984574126206758134336326010857226659683502205676486223815372245953269184076181726777817737998758611121954344829702002550155629325975822345667575184068255378385204487394920924927683392681111812891109014581069602376048566973246015287322465212554879840210135856035593489200844661630649189140188524136034122654158618353522649490797545150839844182188002936213180748595591394381086679238031573326551456352954962838324274652096734085883653262243152407134929170534569214691078179543417400502680295892310950729408637594029632344796704729865858625347254261449727306737544635469111809820562066844759137217541781204827037906805120087419069434604051807208420763244346893863472966103992240162376185858735018509688109582669428964720058695413623615181972960372789686478893974268142126982835960080618852068239268690699523089124069441158738844448689849277926005896339008216310262770615148060328881510471618710215423434791224468954359966813483137714132412273290353987995166123821451825173402800668960933841063017262977127685083003948306606429934461098617113328470380093348658024732798161688701386919366646475863160422286466751974352229764897762238933642933742355731794367653622952318774653386988314816056702944774706241105134309561974967980659372834931003567195877546347803787800643063457048079499915548854280345345591438188316532986379063148329922480759099710589636396965793051605383616251095103413824921181240499941469254164132813979644988621092777554060535294423237789308698474334256466898204699485370821782093445298568017887294152936314493535178287772660649673472778439238748107345260036393867653160711553758063057604276448693341285724443640412479158461734949031847654878555668120239603934357506393422180871089733385055492638627628687276702859862378092786306579018001739158991661966221707325218336877001278877019757532666325612101149703410441649785958993842757871512296031017092747928718535375230779465089686972217937741492430392297680337474706245491235747802538186107491842398670468485617493297168737915182437698700330932069055811796879809887978880860423869469173562281419758080193382800915712790127761461501481942841850951608525233888555150268642613861711742915050859291426238832167762807422096964284385688537792237861329533590585750383621762767721314132948248398636048667927462367316640538435855589577931860985874767259827981638553701528361122033292803864156349613691968697976298596924816826563433868690155308840521462932054718798046962279436444717345104292464815891529579316932907430476888535623500663390173653244161375745655885309809129399473424657463954107625383199657353484851840286919484022830740750882036841140742452391018274631516753280959796514699243297025848477450743341111723237048942928268996962071668621686064611167571539169082985338205211935553964833578106609956739982790512561763543864891487085858211022703484442870922787075743129897895932693636115296112209252207334269908463417283137623955138662720785690161803906248810826645087131690552245378900885422882531497877780329618242999933704645229082354291455945937385578515885000136975792521133048487350525576246805768034551759653371358759595311902652438365724467779026801791649228982365839704692421561236416755550526573977190804244166010715949596587843626038941394370766167778380319338102231618404500518020229552832319529616610360962064018314269492491852830299204084265624475102726103854680272963051827504905728347060562381743379125384810253796081878044773662929313315960815350050585952862531895077359107979746310398317828602181476580147920452981040965178547096955346606806603775637779946526565464139589422321096105330650499329539664031998517007050262110494323739639293028342563581882827558844935199928411433586384635256065560486730135971821006768012172807657059934612042742081804798748486623762852319443521795414462402508578127881329941521078189269181306313718586230347914374490832480023320820705779013986254561981094487873934220550776788718610910219159853407961628940496518766070014342693964146272797426356870586023005912003510919117586327298705558859578620584699862289934254871243541845941629072255897149236557595702509374924840446405361939197096055566747795209972196410356876256562837891808970048876467415439452319943740747432705580936129740960377232374368318858113396560119498774346404005555223899587782304428940829400862816181969509229772020814127915095922020031216096754360837437158077355577348322291385982123607486873813589663694785423444794278319515552372487588758131373878941868048744969439320204106380461537508305529413214869692123752729422017518045062566845652496903038894893325099744667908259547620319331133005654669762440467510990699259790173622456518521481106297207286531042154281061679676565058702368973369783575453436866909866444025896553821173254634367572863449428438534803167325969483865727358562949671830326218077687437788722281173886647493175252487989489914462455289631481828319624323012195667472130602618355221338163011949615712071758773640999283373720114877671066205946343159189970494926290407375254244924788099354820964633890599590780124595417868378037243225539006870567466020502935711775519476611349897397423300812461359604390327111814700520113429232996436760367468852560734252785178943873517497332494293809922781628295427763735577902480147657435665816156618038099279814312949327040742709988101776018512667744483189254039850346115504648447275886723316916736027810021223701097997255626205985842768691737822321946291982931703261413297851453029517300940700350671725534349823911013059085764620312888640688572995745418383042324228835237844743549840277411692876941144065619441561707347255747950651153798556053035490219356747374987491404051710016735765303160673662067639157691223016774757785958193147706425905193423953419516034887111043348166977439223786697806323891782630111486119838555614807181365615214367059761292174086777261147330558598930959372117219373485276504979170515810903234555547547811664806073610415886291265721681659341893434005772350439310629458123991949155994965782377242095722947810696057762962752734094142106637598570778263513424164218832083262389772160293855674905606316469846401801200301085235024815344394775371053476794501207973023194701611781615595055589956533222152202926481782910672932015924802245216945382220767771519645068263871755516021071895394607460467111651236378522813141759797538391160573183929099642922370209447373346308851732169727818216269592225730305084160699912453552706776843029723846721556119307827385860014853428277392065119731462929827407737914881840017930762584886119699118868074665825161698065555510976893001892481155428173694470668334561778277038976657126164867937940231390055955180105325821419204942439033075680527806776776521186050767214141584267105668061679645828137890701143909159729910121004217381755919265108889415388612758544734469717456220915616783636893429063136010910513093966922438329991254916609190766735239593087136750484612753494435969458672631473420239287678517483587735800829481302532343707797145644125563665191570436816562666543909437866749919633711798376162031110904691075670507778842994869660548667602172616781816205372833681613481456398319694206485735659809611577144161032349180690689076189502613185674024028942132875108418880673896430567638757845462184193498567420440610234726650148151581078474822640761958813602752209614771188878939226731606510585344931153546804779862112446960729021668155069843519341452541260594544508777557373058784940516556633601161953516844316368782783965638340325055453407689033307751269402277778853447813934122751002352770877925130355635914904132249922010813104640319249931417840210892089315760366425389870509484780414069267105414330290833207064733158852334498266877239153672938161734880101260654068530336782122634852206031740901687255559966204409191388371846504553377601942195754464134218859856652418855033357824950851026251868479049590358745719053426135026404003994755387086502715586311542284326619167107101520517526969756852201167614731978098199669074858886676322353075975959653148158997429135685320163346040780816226593260221453293371915189910846300061709693570489030660382617664556825937963086072175841395770033351827867918531422801974184085395124114093200660987271766716656584797226327051105699289870624863325599752911237068262813150164579127123344221672316695654590169001743396712935806550019169252756787985310491060014853606023158639523056005924998803674921199535183940069057531233497436012878184609724106616221461050713216533485356484275636866693831354253561617436653143128610018246009565126426737626313882042000185002939073659823138808318225812041436609855028500464500676039368920550829848795994484636265262755545923755733187550828774093871736417076409613774519394740444364065854791967282847813145787649326723364655240587297014983489500553819304915631269957377791697312604697641539759491859161398779051286684880787583082620426263169201371374717088948035862596656839149991409324825085684368566189589858328084291149954087182207000728274951487386763050132876925367760251170891781230385330797030560748774452413028980772737085465550758657711946546780698504769913407327843040860719619422125101799204827386391826068456269785209681728923921002243621325734417990410288081093166019053445984938908761093557229469046547385570950354443256243887384374748902079541890066885636946312261331703325410343666758446298578942673820381520797967894276553922544681995444197298788031453864027380410220823771460912169227452154748615384185180029238903508554773829199439482948232791938471879072867112121074858395355133873494335528325932137487055273942130628352195826423941405021395680137328826648308568161272172185443926559839510822576091921719515444087156361120703330984720136556209263535678809063519050312637489619199023826758366330174556273637977032957587630165816062109184224132767801527878248252174026380324248588093748412718566392997903815358081369169864963264759916122386177316193583521070101135756776592830000868063826653457147626521002350993881287219457993597992045983095125778065627684683657454228702708743154119062148375150502499285865938640737703247382770934789298268575461242138650831174661990079907971467168328054478256498395576499463920852853455994972010569707859197297159232863193699075588726046956118595050882721441611749393400968358775794232294045601038160815737903435814006093273231579684950919041651914424578283998531069421188831015023774367337147841016130755178190945053868510080679028857320122538626410515423667308409737399482382236898993104175526333709526130680093050446949378379752587806173112526062040915780170053226544791671735140749386310530437317814709577634570596873661831850389556903679475785056104641703187658939847120782686422720261014982433055056962722886884434140031630591458313054392762447142307710628678370138733357073559255962075841135815689585451519019497267392362270625383300503456160924757340283061756245642483531770557665093218431498555240234516215327247045237674860641609615742301551547166068788028702550723912316337169888731102379123023565653249687884061883118971970282656058705164493799897200803901773414793256753802630254217734122195036269319238410482966213998512984662474029137855558899097190056793866447746906780145220438071173084673106985814434422660223092685587900825150857125374138017798394168421813091661599737277845177141208581772683000116855587187625920661450664153841048568061184597586827963076844241897332469550752284667639734418304471282029377270264364671662568984988363869302318771924496843526723979182964641323962610608068940883219084059719461074745784620990637612900099153774445240052321715963523284988915390492516741036045513145531002711313272769318729142384085441493168469190068075124134249099484051925468330096955187672888695033993184235479838414285429797476189720838490516726993819515624898805696697716577215459196845003860995209790114206093899144993337646304681982761272658270364970219941499803543700880051358496555071424011811348645098641477896526367536206782054190315665477521144131817133046953841547843804800300896331942246825371157987008418277250055480526229154515803977431849516285095688598913400734807436231889632737752641479752857411333080004310649109710516599830048792368317655155603084387648294535101376305611324872268332419078486687650526800666281244845078403732662480961139897373950597778475491098335525142231241367041051844471562192342645035667654257053624761226752419219699155698846862396449043889473154172705182538069656069523668903013900860941156919185084234382339190167002098652962119508037944997647093322652699118328024831115259792708590919078671672124206528710213463656479846727511679068522933910210428312738499643864581619528287937603287710433489619086482742822991011226216982678103589515021869562975090679473089464790574662142819039468761147702319200217405536369040534832245702307858649810713406075518951557792638461465880187107589043667850916115072497945108115692614809754140302883667932930532533413651381702343652734602564745212831206740105583896794147129653981422025531861168931457393899635210793051782561223508992229881196547797986142445368886079893209567715173767649302669240804238896016701423038820393572797120393737377999520634773846828025900082376599343749843613661845990281838786580892530971030401522059715076823969270506740088772771397949440068850716250190486040944073999182646496254910748402634848070302006295905907263622566072551001483524775879569983140075632126269835991471797965013761542084085396206330484483705513546400708566085976848672036449378436670615884103173854561472902072301571532111298321320550411459139087199439695965823070986092478523372843599214285326269301085183498057277133149577869126227530144219882567222580787374051350835413571783199156154867957448234766435725977788293681094325595324000424225199607279050256744424844161378364332641901114990675325470662140057359840719651644609048042870459829740780338606724722327816614620328462338870352866132333732349486888181114973145377914733165091555116700930663217881888154987360407973356110904565274256132862527821473457769158917592137021527839636938746531469112082265465609699125510101991402973829656811725444062858959233939423912884372789748461638331991901540729450692560927899050596080533055624910691983522818396656618010643396882512950046989424983397048788779824013407097393205738380055547132450577103329402337974803276122358753252722144147483905157647207976308434171227837831660777310532413971960571860697693914518535268555835167340315123879598014043190063978435637872579477228159321104814103911685008550050380920319160754545193681929372844919615019592357734479345082734272322273023416872125251656497862996998167023641976800987976971205335884793501567152561288707036058874076649289667711700509557435971901185599451564981446988011923143844560832496693361821971816308733389357230160949249922922561990244398697579505280366271340194865916915639668113584102501445436600291111764090421904247902446484304416983210842151505488048487188718209172587955454210748808005089141375057172539625977633738695780826083195085505675854302233111024515583022301001855088179748335604239832706479394121822258781838131069480585942480538932081325165199416459436751652479397668765819956322073427137354620028715721065721543044650483037813545945131936628667208497185498792993195104138478446830766718843951829299150236235573985974322694817830649173085783009018406001117525065559653263005581721230172313810708298161651043048400963259830827041156402924873232819569685984623559211821244793147421985988369753207151503249432588224862851715251383792544430039885512914204269255463842726768653700320539862859282437788437468793684201268847359839766659802061020275381435523693203186983801066301398042806354991854937213109224193512671970044155510413817145137058941129680561499754224960539975161348888187774245750212645216005025469711549791998577300580799093062124865624708944357687242279170476353595328936745545742689494567925991272524692050086465427825597679217699504060484082551776568741048718368367997210338086675358227087967655345920971746943092940529800002583589374481548573711168628909974784785887371560976923728281513039322280078248611984133223148635993812357200154761615497286894106260516518515939787853377194580028874286095638181725615746681582161019783423165609886038127761689335056948911546325761652334007347249920697523466184505984701652172596124037468621313191609951349990337705031773411365435000571496509050496774326042583333251494727727567464657218307765535886944497878799922465950552044974203293606786849756454841034753161812843605308310909894316174081527016623216444121514166287992382009280419107275423672575057864221623525266079249182122081016671806097824313590958320165486886726415906229213414745585889983549556304439110713005353999053198307812421628168089217745489698344935047272014024557232625454949745568326292839759968343949373525847983502591985722367306573895003240408445036180604420434774918234154693175896907751660793362338258473034004880818836019805900431888534456018506678678948826145789124238323788283355916537519641450067644738213807750692583234645966075163611083698222863026419462427658563792753087944089641673873190241003873990023434545288755956546408862174111777831301970654665112042849352199213062342165026964117444313280878247222738273935785588404903116279244927989239271347930915903914498471124533080414257783062211722908521370959048010238707651856196413754062890107572619151036385940992198692309290789766798949184675278397511650200066605636143184029418636888736547913798975057252867732564462632346613101491541438398427171812408043982547498279033954368594729647076391588401451157295419635560149135076143279495040502967625142258332097706606180513244770051718519997623180809051150333524664060648899756379502897914322590379203884434357070807473816731815310375909530447334784925478931921328392757949306008899994988794004494570542697217506879678260318284840563123523731149945883043526264573342869663575387155369841875122333368173550571568940609599526023064336189970434200072479585790176225724199420861283990634716362407222227405643736155589671421742026168051280433833953623192700963527771979666902871994109591416554498341733852862682808269364128728751524559834209383292834860755784000927347940587997507524077111851466069197187572436664576164548433306077964772382234042102145759311288997255658499924113774264819612327152896450660555818885574697838188569804243879700699295720897447539255604898555919787713392653691040792730724070305545534480459844560308193882324201388332393430395124797905098791255064703291578514324528458851198474660556428457195145727793876493703750461078101179677863246070831326198389107664106395384604931738996890259186521400242432607879310375756074455471635721327521767516054849447897012818421600348952374869713302215344211300377133245584203450881958016612927801930471932496992161400263056719441313554644768668305779088562246403371702496372475061390538441200167528668977874606361251600007058111117656156102979773487132648850325900677460316148537188573127293138718334945106872620704991853599797688481764418822583961613857351620895293051235541036628260344962770516493617609373470911168311954218261800304661278403683251419160558708388026450979675646096280513515492459945348812074006192002935057661363658365470382297490110054119769647020144124588249626291800498050718140941588958716991507915913976036231758803830287624504422214306912489962591890286974657039542693431646316248541893843942298059554711096304978211351825639197308256103151514409674394663984552692080855649813376465058502591892311539498272470071325631893895244061943451182162062617552563124047672866974203449097943527097236749212528907907279673656066481621637604750036650077955453342723687052611810419533906482457680853935447806958845730585165417247608219841716385730809009668651765092357199531840212074789774060521251839463155661466065396791033313135916715183286707762775862214815685968182830351293841997259577515572414882073917978391004651599060472876990900611574374892999575814882825400045913594357045536021070317369783688576184367389122502042808166813286126773289272522837279425731523765243983862180923572728436978821825326692869970692020195811539394591034006846051403879088734061852890150479342275393432788823277444979304997543246966054948781789627254693807599728329622621625582177955298268681092625306003609006256759689099364113306887517951770910735902495045704354162116061132440761300611054710290617931931193751250478723842125286076247555422761480618196632659521274498081139951645595133271024177564738691624545318552869447449331937752009770418970444702526109679510020062550946917090188427537868739479547360865374575414899682618030466589154012108011938952594516599733437190619876933760152026111581237469242155813031844998661049421921723460001009890056544207697572496024413540347626956372544529292172573278031961779621395837684264867630782232372269030648956770712015689241766340124562802497583305030485182537493663655258394149739731627036270533858163754619951526633000280199859744377137123015619422741669018130332621342830544819302642326562444437291771248940410256995724893026398670415308952618763496147634706322764218173314880510553750697402477258284133116364946712377318852511006714163872923089062199895317904791589759824788355113080632454823346880946412798802960134722279603046220652514437100557869886749139446507419043659717451868957660839606389589743134043774532016813969545625101538155023020743267587280561965645223982507340596066482810464272223424848950947704351456506568172186698762524697335272077456728661240459049925332718386943326607337234120977359969419366761692005447413924639711599505635619289863058656785998747277376552469698304012061932940920781098148535556356885457659255738299521094107391899630008443370377983032940036129553522619165813405454383608906987110236089236327156544358863949291741235003564716903075146235561259102896062247486507952026105223185619351603317306829181487598296036762381026274472856027939520975526915646166929035457039034261234068708304725969144118704683937621196052574417971796381028912280063424088938388351417857985782513464915785930184436662327594162060384570743810465350389487239221429200795930166601405091232521776965261207656371734906598062127449023474413452450949920087210792495634600019251688045107032491381655694018084476259350270498903106779174476388845226995935997546065215354796793599356046253647404344964791193490343358935979931058834078607797643876986578702131412110301025022674065038014138722338785319828935066724034096789130977981912993231636881324935690470518901893539512340645233130528180442008533751689501363894893511973928243346191873022913735588327418564310773409561272215747398250799543557979317310737719691861200058195074549669008250133255492786442764112381765602810398327789396542540291263340571330178260272653743521976949764240453832295782980927364171916869406107100994397320925113081091748340201784932798631126486848097621996596162442743940390771034423191107495591129341334961750251339152033424246205351678466342887976101519091232459235700774056953028137543193281677441975735091924507752245291475789745045975030232841365535756168352307464251184101909794902281026429279638315661808741195468302214154426873534267586139857149037899278442570213327165918521283447530511966287763580095566373749891070951074269620749630849305311437285114873184992684864886515740912131145276962007608516075499624038125785239988837702896306900176028514309649507743749741483123876631184125959335530798724405786521118997370149440654089229789220958626984664487876774610227965878005421531747072419807134737174621438139769204540821886087084357028087770974661636908182080906714145889519048784560703142113842759084674926869776471539591586581512688744567000270359169280440568094342908919983247602002011376801963662853713151732540129169788656703364168684250891862714868005792135374421896414751823927742066512922469341988747126099776124714064424148657972303311667635006739619409828444017288082212541661969415663099308711543163451786718290948016596537275127158073789080378198548871540520965185921726063935772738905444637024918857682493801820929203595802390314965764924379391424610384702250658770788725330960543223773116720091393961775597289473937209841194972810944211561277846887627309526802287997484332151943442055474224286463421142094203401502373079685481190688615320663301866864431566827230185964853467410572316729501298130022279863617568667461958359901449739685355317370579461367528564282916126580027411630295167705627864547229326894783841563766660986999583590695602310298922398926292585724617995072528429120473053520082546854186824520896853547095484287306966998878921913281347694910991084849009533829323754440921630030757068302286487930997896026295744399025702199371513132919942545922326815375838083602485765969829714001527650132627035215745505094662856153070626357271154677951812792228997297868131547372159302042661164121963982468937231512106115892309244707300158910917639974796241367597764250573500120941642543755590955052463284122157169779901188503747463807705938005102808028357103118567773333062574230377130052905462490671223844789987891306995236497466475246273398100988346858429216516956973961734837161845869585828416720106384910516115404009291728001273046984371256260145349583607863015480556317773353810348831317118909447666679821931322280556418357888130101434957720703849756479858604222226829216755717900024292407839824446101304553359910617300965843464551462925677971148706977413770500528305653925345279211048118263518105696796215682118105907727934561734774857257572926125626028663611689748291320145533230632219818953231902339403777829711283835980950193454365758714263137676187319325313590214191959475978062929955859302403749790575193290969764921059339932575589453285935854539480776814987662182254942499379078210670510444643282335555131395388335914824308062311623416994279182332677094335559135869325146148750434942643184997883304471442510393755325215536290927158132447704090279609960344431942059046082830247820058630662941783252813077122482883499235279022666194707303936065195663007817431203137202532647280040721959496512629342656008351974405154946711645843477029893623595745746384444835406067403243895583959775948279134626227433944864705726071387149763633478290225223253465852282656087263193614838544044566629314799490879169781036852805173811610183843785351486054087357086758050985860509693898295041708568377972594597566641125805221450295465001704477483863686819547946260155101059568140441358718399471931788462826307996516229609410442710413082912226893547272122713907285988332776144003266235018967489016892095903137205097687228224796072332892908646824834914049329781086402097590011861562993267446115573900662209744884023082399876439755016375126158321647262612093646177509992708444984364632563133542534317561026190295573469397354233577853849697975571432349484051169542007010473568055260121055509002777360388802783214471579217921096179991151836220187215907720023854341008936115198246716809688900353998830599250306047770670254466143457338646678850236769238628622131980947310979325795068431409896271941992137407548336838773262016551299660104876979267122272790216899003800449481677713415923147466538881253703296963350536247598839088336359434150649517089650887097553800476883678469663689991520275609657667188827634783137006210522156302162374112917058012312984091752478310706890648758471922458972453913113906403747904386429926183343364676520084740193228987193626342061785519384948026131158983032602332791304288892487874111137521559364942542959396307237420101543671887209989986190277946323513904142587111971496136762687537684395564404995947896043793752320712033077700660653309373965942511064085312034416453899112960189900468413236245325314523502867587377583379097058574677974927483969263375030269110506001486140858656871824413814954622423588259830137124848080118266663822834813117378483646039561894604384718692395986554668616575224130221041988673601463447427452557925577764753737035697153617191489068867845855004820688147840421545351530428235126916660810087300294517782587506041328449403885723149925278736815955011062767942293516031183133906393708550697757481552138053024232345399625505491198965264210689383706362218690002569082053056533809775115486776194559979922882481868761518587630454139482577682370930714549859624431403934777274934178559349223079803811197709183728142463314786813438822662198958666341378955215340130953006614508901078680305074716526713452621850608260790208575139153164816876061896374205606502216112896103740636521567898093436806178880403132540576946227362970298179159519303991762619345986563039306936533616483686210478315033722464853522505002514919348462462910811770513799617564230381389588408547497564019851087368587842486813298224838237604612355194006343697819977780428683867787510965711679337545004477228561252238851323182749032778013367982228292517041755950643434487397011425934648278522400707083373041556056216588659878308912878619828445830447413307151835407394910179090766071111104150010196285393319644743142427668983500042605106048577473413492085975579697346254649051246411688517905225491400341562524780654590518002078872648148252919017522212172147482890558464439241530469623864253330066782083140123568213327760178941882596944590696179974353090274491113032550266528960359249373051282605221067218031177998215398295753328903187916784564857790365936717758970997530866317365605240625228873186347458026334415308287097494262265523403064722937815079114422950797393170654442572176484894984661572895384567521994342750491084080314232999263843260267849766375999500903368307024900833225346641212350882834414422821795673427652412906561308980621923749236319064302344967070034025393566560180012997712025991775205490708582808230443143904441935722183480454155184870406256157537351852402640419356854127768273826206798081215132198330065213699212353908237581413701257560182387269579372625392629869743572866818409248204894673604790786961856671298236837088358646685271887025728009669043093679690561931926535651545107910107092576374588207899857998694412524926509629586113543816577676518893676270171867778554753522080727525350576830288078926715852633521166474151485249106412043616861115504399531794683977039503726868037181563694218675589210564029926182373020217463012127568756598547226752565660923154218728388180084398147950775610600548244675332564663901357875353216805563035019255429635472373013242844827072211700709885795705479241451718210541852469104587976816922637612795830108166966175574695667471965920514253003808158694224292956905038759375000102930705289230777790628854124470275685247710371451654892528033302020636091022109812557688577347628477419063964633945543909581522493550643118609618722085379713475973109549632707554114254076765002550786439439227863911406985757094880382868247195465288670746346362473264903609277039543103893986589869867868442309779661288690856946339366568713712220708350793014184019978370765631278413901958154258573564203808029437731466925827539151696498652575819831940793237913673204799227271923304851732316331180451714991273943893660478129701596647808142547319984767643635263430968412845128469966542272306858990044976709810629209968320097134000982240306645115194586328102828931758321257283463249501668661521387965165162467113126422501745429481954632893878993734910587016107813396166459292091443202424376570024747154685129995525125809531618066985616601671862331473254579487322053208563679342886116883593709229657393380860506054502596897773571781806041158683282513679002156716179486712660862058151103170777257891909457053713028077760861182518229525505290608474272598932233496046328182473250727249104792005761749406727336987338015496216976175066313341766589598453477394847515199402325769269038235314127722846774235526921882250423538035140715911023595090022254925180534408335148125560968079206599335149615493513924927916005178131273238366073649581372621245940044811660757090148360663270145336443194143387121596853342216293036828196666119404923128165024922855517164553092058445440390123461925551091177815571025207169226539392789392002154274606884430295780791286915561392151510834968668495929160363050636294331468357609499877546688685709098634046790614201890789562839467523912545768992288939194305401048892050273135062534198805186695650914211359586372006578373489976966723453067936881319885205114540640844228132414991858771382227899850383681527940954685988357518412148270746675546335244967097153988893320100952954699525631430260894486659847796891022717952775817465696044446171465665755246084214192506549973035269103642297702752861005451894194699409626442849020209839900648340198404666042155741379177530465776649437928429219763825819590659134503254547837616113412097653435302563898722403382226076702862847207847032882624355004052321839136749098065082608637801044106390066781476777176671173096612667198465572735647395978337080439263744083009893019863826648657598930965081020278150902757351292013973153214732260141186667189983300805237587434683259383827257232030829678103235957417261209673660748775715759471602684488167491478024747359629373345477840919298603165225248339742850855057478910094659096055731181298143376930722197680410303061430479043252203914684778827178737680283177876977821175155350895165914422361133548091678145567227255991081503901662509177153023554986215902699130902950218653839725357262883512263138555795269026285045858636706291875008036968423012148831869863595697351528847965884470461520311587712184978336607641834441850262410597686237977112977212033695849527188267958286617065074369802154541804937711919344495403014906473017379207249735844205621583780558775974544829670945399528031999361722082058184995992775904374066743534758281637260851972099446783104536301409441083797240974979728789039197800618437141361067504698973349178482615611554143108507671385567671793588423671606401725142097520419887958290797579840652070259006881834409260936151133164852384815438200126485624425676503730414793486008067461518660042238889650268868296062020391839926114234777750827768521959419884319981731422160806513820254497398862800271020084761825554350083452652118256203334320695718728204378052614313431408272851079152828395250200627876710003152906035118363813743846738166657536980498636398901701739476388227765844367587053367997473124674344761621013952947610773724648467302267090360443118794961607367701094993145575697171084907949317312542154692117357846184622565004013506925994747872535496062443125806548307268662510072510745041446717863797931780697400350655060654855629973512785458767338447565391503622519438097285116937037217511915668201464387112965833626932323401824120133351725741413776612353916139920457768254714263658446586723086746814441465112817557380245300259664989829637530972761382301509473834907035969324458806223070222811697789836604459621624550305391027288482247116409167752081174932591793632386860200423396168743341062602719216289936706709776200979902738471668098750079062799591112210755449043125329276468424360646435033713341672479559011780795429174186245241497407359765217627898846776747829601248092823660309232354011509923588038593123067599460419014996600382356509034422238893517308766771369611846476729834921357531679600109306002203848808409075748497906961442658060269532307810649074961971913785714053984568587040795654382057681515982428024344491907842476365906143758273949487953133983625014546436162631691703664459216147430921682729104392445517049896353550609302750071653012036109662008003623215115709981603392082453092835658658431773639767254444319285827348351709192502960924482787278352565118918946063044645914738474106267265504822590437482190072433175458735560311014343930648241962147780103237291803594297556001429845298737916702412896397437082341406924729600070002669457747451000164488430327019410085267017638687118704380069963606609605119593983090620009851651350878247721939079130320131874804407555413494200569613897242746644171391684706742918536346887266812310867833079462547762133972366739480617545623909819750361648033137195395330824087308885925423844733028495761624257883920038118376682794030025207152900292706067916688792619979008236461093989863370900439342324392346109656795588213418567751821891433545089195335100055873790934495334509532703552674372888723020735311407842923365243488220353313633425108365200163932514702025689919096842531159691192223252482295272544402723306085497838845691630422646305805192172170122007336718582716144949095158953573436564188666230168824418728503403545851041821093400235579181954839679524565912837725619230756055561058313134867665899147091452305431535046942991257627508797717462352185478633977477788987792128554883118865961805496123750981386678645976631124576075663025461108886831435161934689278569127733980920331611473999007028485322051502492350895155605055716841006911790798453159286702668354857580048270607869176182186098013735679207189284779071046787875741055254318410417786770910802212622054559576815192912390596632195721486255017560943438957417617944239165553038325259667167219594382155369304441697766003191675127965427583329734708784744555113956335909388013918806540747555092491361891656082744156975871396627167999788194074251370835876281662074843336303570398599168153542543739491539312316913044757213962434813824527649779528324246264941673831310337962608649855559147905301391107065360587703125537415864881915212755965978599876486113938443707700179016771784199315449005818481463243061167562575661155191808805244433276348826665877848743366309692279053002166828765347477077555841440927284242424926401954231701783003164530512563932798543748931222875598329004883234109284575157836025202468291716788429928838736726732884545984409851578627384187910992732351918907127466159181047900170164749004133414043296444100058071004912669983505539843378596862294914984023104735431623511121860266065428620004629450169797805759741380736777050587810676620366827620038084712602108434043087632856837728723454145495939294643584018171161927631029761195018617664325373833995869101838264475994426237161648318334702535304162172279251923297120370274006257878033250067956758377274232588331630995976370937648391263915723527835730592214148836995945209030936961723561779824356370380337352018578832592673192343737562246365086994201283134819582957885721856775133929045007891933856383160071837843146686441174571315331323088784336845889595451370127634843030031310128186891344105370915338814621022538954686901143185937086763837387148999567710367242041391062202542585766595196661671721141139901389077120975460196978866278430858087410466142570945297183352068703507336258387051412054039408593833244969025240042669408530641190359930244208953406934025068426998918257632796443717826703056832153628391788325295298983935493524716658456084642203732261971629488577704194575891310456855789575663248196124739273131136132462789258355595504927993767298603892030760465764230093253930598711654340436548246071131795494060299366031239267339849976829453437811687047047743200076685142007073298826894610969751114880422282114727645771435264021784157792385443801077126344200245382192750124866885930768393483801989560381200729826327543910355473711339510684887934100595868280807026682307974828814272904241436328571663742080644869750424245100796877479027649643440628921180107722499561735710095232700545512387886395111691786171152938304059829564745798587283738371623411951963162295389508097532220735738257963243075692301542990568786444680253182613893285580178830532637694299695191299691625294135106206444458767631986855449125006171542150201373676128916953161620281513386353381316754801213715996413539957851988447746942462800881801867652768457861318731425508579392800700207799776948593478928544705000746178717456180146519666788105763978353208432720067410428289306692095017011519554179376647040952148700286369115067710921125743638048906936349869673056232135255085724987062917885271407901480615866472002133926008179133127023419131313883283653953429330483004891543428613840031904430700235651443814712345145442320991962395405808025882737037190793502328799532515990868740510726662253398723969788290944076698009527031818064921967866958864983409513173666029642877063531645647394840839181060061761315346771399187391839897012424799477269580672663568857841393097914216076649412266317821995339228051800550959052831835005901273970976049840428601233462906165589264668778468679535244502233321561623010380778789572162972166123221605117637641397153946058104701832723443159224615286604711216758845061367142657783001672249734598171299006892688929699970333594214993495082363637328148404580919470503666023760770338533366052587767296583223601333888927716114649922413576506382455624306683007184139047405549834713135400274625737762461274597954717444512508079949877782393756054358834403765688755497644930192478165148198439906671138003490913569825851145251873313770308811917772699882921609074026237373737166343465924879812529200634990178890670248709013594297172152606079729603842653035091818408243647897990770498802344395465490152274903920551979453651966528326877241211779361783255860303308488869208804535447941770422042373082101505099087387958308249110190325290439900523739592528952017405497698404548815032666039642118425458779537409489346975170796896748258043213801185820415144827356042202580565418926875991808862331242815888630481084021248677300882757010388184265211151387158946910889588925649766232936673074204812464556613887416491972249541042227204088500784368280140557108612292277701526947255462891691154220546051697441145056755370658451767549903246245722588052633324764813418803030139238615369438518483960615965161304960542640139923446425895392222765645353120971057279710169942783446224903539229359537083338242953713315801131783186576154429265013602552697264689524483151902808245341058280825867555560734300215871081862544665524644066866966863377813815128219836487336492673165378622225834625792563691123457187037593695852211690393529470887150203332521734993952414026939421425196882333650018451115200079650006754575146696729711260962092061223034342097472587823881378660650556329691943842947346434940699047714583508286754166833758808498762002522831327051489725619459357211618309191766362647814716406346022849533662533937334737766334107562915582737575750579237186264506251126565197008487665246545072478013864024819369217457466840423865132586700733641654194872082076056577317928022374919754938602434908765638068085158786373836465645531150555073890769486700617517432335434755810916342917900225825457623628402196848040972853211005197166153067618520153831031805528168978617291589242317522181258876694828531698669225200248922932099693648991593426581994364342823120112560562592321137394361560913603646183104674291919106427925362476054601072383599028732975279275681543561992612312168972195984011743458635891254073978428422015327112144583153542387804090151633582595160284687407201251483732911153735246340502073517308764166907821790236211600130579637082043565531108345491538470140252309094341378996680917227730087507107361243279921335031417330098099917907614161868288874432094567850609473803149295074461755930630803962758983616895893605208375723375054851105895437199852054832833757453204316268357672740814660342050858712604316489287329742396747049507248367927788297967051202244721449503504411288953591575943559121325515648632478947640458191742429231618751418769082011788854063777661463154583683771197920711322375057577857504593777556500199150635366816285305699414395180476320488626985200098975567778194952192655204071772229458124284328798647234048171856867995683492888982144469963498099420615290471726690926897297380727333500183377647365463511005874418190694690019042840547735117287861083812244062873497382350061592729659980586309337403812700989965757986969117499946189719407775847347894811789995835531252526898380153722576140538869434747668393609496756170982182155415439160054578589750512996717424292184378496174404842037954274683469611493726869446371009826267926240370680025832668629272053399153470589087585544279502021210298109884408038531661415501389315979862190454302535265682403668963799130213906412989894972946851390323471807095474901188270515206140105323631292708135908400412597178129151111936698128098674405987570053180265195513819383066691591111204464984955141425456146230301645859337964043948142137312122740742335268276293015777695256779266320616679185297945391192186821571324641926769765154075118574549479694292904626467604135899025496934356041452767072553734817221300740334761623188367148554245211510686976456624262949914459848197887159073993005886634110192337042620659757269050978130332205172486209882481162932092953968740320274311796351270029020899165865354250409351149363302214158333051468614107942313275706053423692276535666830442386937986709758157643964318747429810132843729842671969655714382960680252817684136954180934025026343736992087463424258482868760399309801795003036615846527044837155560140083766104185959526700610591936710322678132184174459772209817128657625871671469662357163925053695443052009535608154595967365833491161391229423796706411848570085342442578162021598388806395580010461366636106125774927035763703788193227819966999667516295548102313873859316668961617392332919809737992613719168604833756209177473944168835553023883452207854522487106697288646815165725019244978213387807945136362304858957394668343294765480013029195442017347222168517956007568021434380214792880364506982239857489919520652240991202452100406290718495274625639847318572780356202611051319999059318878363715639023497690602725407284096202379010685183044903322396836510583332637358455330832214771081558283847742223085381824380389990039647142363991661879764661583438218553424099520640250120217654977304601492921389388958026796393737179143279538730957307345043183165310391567538429004707594025246967440129224900601728646311767519318393011106571876865790513235729569850509449938098161656886828862614712903983769517492380029284247215162919292310959726377369475577488210435823330344715646944113439869695731281924765438778031656644905661342720992561405038126035515307159477724444799697133649004549993570707072491772712382242169456681163603882556028663022926147513528944988294697743217273726964676184484575302917663995360226710600653919787774286338202857888315667346334582095884484237848284436745990436337911148914844889896557683334158279781739199490729082876859688408626995069017567745503863266525289469813197350741822508082433205104961721182346498525007881913785161520473511331902179135437538990093494558467801264108182525114476804685567904001933828063787763858177726155415474072984455223139128707423060900429037265207807301352943292206130351417079268685006006036330726874057272705288818950186266278398978458985895797140528851520848841471565090023581805486442960300764894906412162392566850977784959325872138576907019182152916986123359143382928378418680376943926185005966327178095146228673883540990919646779475083966535302778938835800139685936843185145556723663815283025914101220363998588646511525119638562967615140365119567575291166118740561745505059580718162551849674654388322892039023236416238787398226717845754647191214657115590785522197210182294073799524258375819151178417484427808023819323741229076050161992894612030164711787442042094164655076596569306728545862176804524493096148510401145380210561659686839582206612574949099689205916971434656881514795418624861986306943938236954168822713379137314568706393329193882345060614229241459884177754301038977720015265852103979786781420226575395555222290855211566433572204586736873334647738475918597890669335029295542383599105307276087105654234373521351891331388230425399582729501692527751488565035190133365804963014728386259610347899971489077291045849091724537608976729947146506479058787805429528817094616305897572635917843073502372451367897635282060284430493423314744827323640603928678641810785493196123969577683748501483092661404348016224139950175584412031721156232509094642240525259509991748699851698071442517897207855176025252947684368429143162217829393060098837681402288672799185428394549527434497729849187368589286044821168708963650857186338447302115499294560632802990024015550545445629639241412821798769793529347517543975241570036619456627952038299830998940200197291037640877282317180842885688727872513981148649515714943619522026205201855729163812340569329825442966674307484252336416490447195355288674635778684031769961132792575751801923540041518669370855785410050092272409512230618414494318861430581169573891633654984565449808718447787036097036578349927908298845737234202880758968954511923822537234965494370501526068798505394666607519456062568402321845505469914943474155273652819297643223101761440207040147537951502747236013416604884715703922439825590868763149466119019711312669725709291403901920323302631303105880915797152437850770317023209694937459746818488510982776231767497845505177268935182629425850802221176878214448631710965904739518053590139798073856458974929885117815095724881365771426270769107284211717606989723989687994518726844831209924254740786243330319800338253461344649513482865486337771379177401588887372411248126732811912954133331896498868130440041041802477177260110885614230643683575498392476623207590068944759065040249420853124638043643173017614817655510278049463824327494036369282860134102387644944547930488658725754860981048109220643780024179816959203080862982164315953579827050827721108858125495053349147040425902517938250646892848632094648579310118559481593125889201502648747720264747300967603634949668175724017929631045825717084370469425779118475424916872706677870413422846901806953528220283282130348753655649485229928850570524764684863804975620589749171998726595869406738513836303475796922732883659369954918810920634675273956597453872746444930949283694537154497804139344017848371628310830511430225259559165233312763301956215825355278965572136003460745181691712304146058027115971628669491725542554934731861449643733417042590948648201248775620617287496161209957860786730953001426462662680470421108719594895710901786894101542190899309460169635508364836677995617207331648426197832370525831712819898437283630742003982003747739671259867806346875238765439783736501149914316715888598182242986184189872519985190483637260420133957985217199208563724239629300420540531901239134573528689208138513665016791016152364500360215509734411614536828993530685261412877275519957181774899293067229950933162585924369797851877535158372785444168016758732165522220325843007925677815031776677478636994918253451114553488601228807433760306943349898621137166727545903787599829947329303465947781534609972038287097021046823098854902115283141838348788775831797345118692008711240574080425613111205885294137039953287105215309607701066969251031176818367004930749187907087668621987004882991007279706788829055052207867054115601524178240108794218511953247602334075235011122533767237459111039591530919537345371285804091059061584547270798667747801371004821819701812502485160687398793213507215357905240203727975682166097055756600391437508983336055218343416778088075883731539019419152924886924523437771319495318939966763191017769344765460963584599816621001526894210911081343949870789840973333043771117405794595416161919573550655322858983043033591099034647255613187791053427549466726126728784977921223261059575703126915059729313143899591311487567038856103310543216911235035930679549290721885599641824411027984977453501622793282385719817811187024278492315917210711236880738469999663195863143985698124846750263521087837379324756843233280768827332096502757556835890288761117204453393669579658699432854432517658470632205168860306113478133758944885718118583445687285100150392326770568601586280440813192444200122665133943837266730853524072229821127867133252052816033610599754624751403977198211654012698468063081682015667348236463441416926366122475154886595416590133243927700603069767884358537695091908889028451441050828339408917169397105295662652790860443218751195622625402469721622748794006777590570991349863912354966550107319371063693458109720665661246987932341482810801500962641764176781552965370927227521745873053261743635091743458021857958244752334869662315978959901699694467418423501884429831609765127509664820727947193783981520636388613489501901472923668458155506153075396475781720881884067352816830859112331869186572246385218920759255334693015408554865829516707653634737996160621640476951319797056568902562141780824674261526991187934824656772313660711447429219406535535620750499126353342783603686068142532559098651903176262623956027614370357226578308045946082442266700863554330769367702866217195147386207450088089810155537508709025119317663659156540354307202874227026493555091436006446868850036512962057176873926428677186986469637634828361547908012697290672733105977354913122698552700238281885626593192633796186900043486695712258703314313742398089414762525939459141811347645262243877893585374152912812972511161080871403039036092399889293944876702723150786594051320517918751090200091406714545051982780377715762298319674635904692440017651221131863849558707910713522170899239774545190079242159847783661134768066131882819120216665304576487643892304420984325181305832963929179618330347862436177517240314709330500415395088003596568314509723278771044372584277283321279742165231778898794135699077444608813357801776747335266218289490270146014073041629663613907913866923413307993396848678670024788137565934725540711804754447311431051627969292085325924426185575885660483346868719997520437035967134005086778308387262917850968052368483419847293886037081541788080944857931575766977475215749984560410871464266193897487664974809003665365347902015244896452223790392419212965078628934008217253458393050872443190817858699510442620601966519680225891862559717492729267776378224368466828827648515087153724740800377415034464402181112892949231675643892670382645569611988938091033274348250645454148691330048694229280266313290894332198577630863572361112477110656451517484785596140961039542763907166297284532516932934946185778882564484866706024370493203002165324237852047952405021027606036863923265768635408196401099880258048850226399849039344208326548942466258465619987637798153146777905009153717492258035694609436722530103538134020598416698507325926445396286461617504247533486960765918086338054690327784698641239124696585534744893710310180957443934949642748072130853691808478997982917838323875318307616717578174642982472451103585085585780012692111120366044205787584897540941044378682954542899515852723756054200073814767640800454568578084914130009851080710159899324320601291739129184508812773585915153783641998214213428010531024175350561580866048453238335119655553958008894580557612388569654922194167036299261802801328818634076203076757745077916953219072020855256876037902614949388578690662785747231073829988042575809276301991467663846379235759091661426093298801584439365480388917241090365335552903165750578523970483600353340475360929763537920764245090813385486540022997375542345449367083634422920143772406073515820575694788545992605456338461847711802473763883708951096168959752086361519124047561206765760228949266971075214514702153569202792116258097493148546293636854299586430192498234912133719279817474069248659183392308351518033090717295049223068937570289824106336931651770795335510133122039230514115761016745289543074457500274253189953336452027796566908306788745257137612990211762414013281241986727676478837713151279570852729389242565677078971690244852615762551809094520241533933714310886321960817180011065435098411386423934125417938368187675487939910529501315241673011122941364991776053044998889255329702880040954544932381473471322910243054599599999870071246615634800473066335749860184434364748482115754244900533867805761223927654633037760881335195160380927504229473409863405422572898821358543124302102952087235380431514963663674603959523603698292785213645443218482185483411905937605828044592063114812504570118773692431430612945818167510163481354615362702420168134035739277124830331315975580445584859248070679652490625744068208365551243668251380162131546119868701602331864026474477157128378866254517778089379307994991339757533081561097372959175768425891445759797182747426476935726525158585669651657494946444649541464893335744052859122850453413789512242255156163467736715145284063650841063176731102036325639678974378915717897572897499795870770813660189427988396731795588664409943182396781706787711037860173890428082763711567987821426893023382643472324663030941500745045457228768885379648278969310533556822032834316242744402528617931864423752300882153987846486117834885920057392318897558317527623498528867466388898974219246595348274704811912917867913563194110589897267553464113538866588197905578129342245483809306256572941305925956564827918112645589958172081488186557213187708202963662865534811876889010735711478415689104025134727694389689137457257956472742182722689955877973491393302773391103838400818233556289632224883643193110408191686244459415453285945225930348980117745666915769629030723339408099490724576118801654103201279219979516918766848163582420411844238906827982929081639936691093523886364942019034018230346736227289093669800384694937210785059511870478232121409465734612689105361101546912136254805852959236891054659695052601501342681063428483603429856385083202896764626966315969674997315348211854865847747146058452713698184046858752779941354540807956103319392038835343778553115457530049453739928021816425466562020001103473344109393591873510272687477004775180058931312765618800696297138833267288173742679636296988161258477055310718877983744666617555582639153902492506843264376454253538883124133010278626694159438039867866449021185380852462131522769092545608313360092055286373431237744754282318605021573336057141441286448008551456521324745378782178960679057876022419757171620351074908715279972760514300751816260045291482208597673680788287584269607808615004578760519406410673558986607386798551791032485054740006026878028995837956557320622855750375484356468193423932897022191305957952989551101188063214750611201752180184490025676847095322615226855897458739806644942884425753771014405899844974083657140196997976549888801461198532871839303876001395987302952020280972833227253107086361546968783751846572642670325427974837813694483259663768534163373508481433614232260590465236707304542805159239827980630367266975035182793683832733961237464078860597484920490607564928895092409020179732835379954919442992601900798005871995236474338168330624180027851082028696913503379984710587108350862072712758555593565644856143406570003530513832078452015025788180615879775581160136188852230242842692923181301848015791193864096405382928409946947211419232325556472689859385162860680730681205035619090669339043217468983121604816354269567120449143968086259221441619162353710850614278240474232044257734716925380990796844051631191856634773643235841583417682618537060743374204039002188251120843188259694267117990167361919668758830745303155199067430409225222224804482007026067854437876573742482436934410501875976335162765548735422129830898997975063045414317005382209898530000330409664036750478900602527076771081811794229441734641655750857715315700747691372097234494430220928426791076080183864615552653308358926462591955348854372835902168234801694680502813087943509153903339791346971301928162901371201056557606573225639359034648279141239592373978083330416338872649863321306714823509662393327416626933611847316152981302355496722438698086956437765649117114716833470476419663715725454764170656281108754323694692537846446090082980197678555483279899602520413865388608176241961346807525768132803389962155179182747366054447719875020603342984652728595198155041186309114492620809105582441719992362654902941049429854229962760069245952395655365536139649614230317658864973721704748079570768679454562241203930602285597059851695375661464743231972556657028499079235277048314430659856439296823109760517477440394318518918963750995429752537526739555793787615140871743920594044041032166538086534112430718031337508135015869584440652957631869677423641440109133969883363220765275805924091411041531894089058001345040740487652183661659782238956026188998990678410012711062550793149206511062092272875529156004921034657195861536415308642573565805392820208190478315137067276207873808008041142591371122417971783214172168666097939327645231399833326583473890321903277806583714898118396661291506519062702400753602709709603917286282386886097457596247629074166284523347782120046743344551722694419030370897160711934316111158096346392223208952146811063808093814025803122427432289268300689690715526297904416095571503453833353928973651337416911827693748615664747635757087471074127047450433081798596089557491607948548554772913494027997515279299200777922211590339943870736251987316367255572256970144299693400421061850049685278366843070155322909313270732923588287357055194739630264677678632556245765834607014120200766307699539014628067432007092608898739921709452282993389959172271312942029251485743579567856574578843527574523646406992098414897294641388552893446964396012104175937325841308452201855402104120754549633358165772986481452301450819321919920888983564405256533809201955922590371616315442769144160552117697453318715229870326696906615827155393148159440595565961687049544603947104050319556984368730987575963288975386906330710067530424665146320018432355957824413620392135572428703373107719084938137171188481994051285610428136594030184429430458278823563461197793695998957086795784441910677875802852892925290858707971655082686140829007755127246971939186879116898440597902821086343614119560215736724566864082301399135612227646791536957077621193990493050636241534096259725400199322219046590457289598560440316961160443754568136536353329721734028887131979122645114962117649654447872088554237765274711582751204379383973810754899976024360675364702957877326817983837019165992443868845491475485713039715974371660052625482149514999854091964537382005596970086053580046454697357689696024861876697451515589323665889427108126628598256352970384634912383190772774599114762261666393526578025988404133502468391808032297238833764697471850661872164232760598298958461625974017026150612621313206989175994001038465861785596323295308893643310200589473466659467639619366556852695520532381892100178466185251941721456749015129825791485165317329143156506266757018506457057171278040897708828668830784653602006577220850063550507591518859639854301237515817690530750827765412699443668354226637832872601219993994900476604714867202295225640620600913239492109286202882089932873407510952094324583196804747154462316012633788998290799649554027548259632257458871062604937778391164922657801089769908597403764818810874771021758320956673702164709205038082801433550869541368678806757135708730811303342801515652781283341359963459875282248482275890130625550293777852816159573645210049790300683015139507105519575136575397773987123173214741365024110362980418160415702553322001575848221877718741554145499365900701656831164160833992563161620070501889855456890966047203343413206020335419020405160836289130802461109834673505730634846659514502215729419340183273888669614719112471426834774919736100551774629914208568658142294573610792282455832164793635402299511540424649708022007306523361089159023643042172497705980893454093780491434302935820952126414954213997891677171930026952310855120857410801372623197142518153480720189262782299509104899795208325902496155480726000103045744093982054050315984903742263116999719240566493601863817254422897934279450375793337622599784103859738075466672999868530554461075276024491306048600045280097664071692302623300942092685815664747193104776055326013372582404102630164402090946770147122905205565523230573050592629812930630380395495796687726532735407263893090327341506966932262660050022418660361340503870724821324827787304083121553349156156513635320167315342956461578660444280823262761505840773523399643705565461187557120989493252845472876126947059442655687833936400448269039731429399097560574202465004955449283571389922692956047085998276678845549382995767626439719245067181616070464185370630398556141725632580612909032817228181734917573014743787616486339095819908205527434268786507497194209902529954738763385925919977203373819262707207450730760571137319060334223096696760636489449061422697902330879294678061034952447132821202725292978019154763178106286641391324695084041466727294950596607790655800022844000369502667087909347547454002743645653905633065370021099838501723220376594173885002471720507050522425703361522242025530257912678809592857046464124808056910563875995420801108427404129858739307039855470264386250880107101223388684952394599021221869270502190610984065388276898435545607610527471362383011854488094148290720830854085512062349777319622770033220456418388640632351857978732940199988228402016045921925919319728094617267101694810541769317995300722337655832635523567850108403073083898106553126569030698380652864604953826221067730894514761274431807458187446173827544689898311960713174578673050171017613494209895066546716890161868871767511710352587799072076368213873842427196137339733766049728691382295174046383115695744643491128529401846512682929051020811797302783336177066091157072051303567989438000271287411809041758034697073990656990313212565442217746183491968590165505587874844293452902504765627873207134542674882544978958167045718331794858865418227520130146917923817042790601451825387599912944078974518107908155783456547052856995951113721545805275620588389394957838298292672961064841371544300938224455905303127505991149013412864602510233491951204983139626637557032155270543828150045908754905332797757652426570853409150606784914470209513127205608744851621998333734377109107357385488082138220660086036553473380703954198910806879408327699245673359870638609747493534586970698879481609923875002939764483952518384401251150492724042382130825268428424513592666040378525278260922913435546365239006343489406562200765917141866527301081029271127900738098381952947463412285135806703963411607222883099919864773742921041549914313063264227196346494754505372278547626733417612482551768463969301205654519581301905370784749241313341953157863036765850444696440619280577510011549487438870860116659255197608884935672444740104030083232125450432090553454542818725438087020442257684445791365432472790120396266066086864758026389518303281564873870372372402903866594777236259776488337235305502693297236102803506906271949187619650264321648236803014451656893251745529911142317451807298397366175278066576965461502789376454400455969661483754628039456147951974835646921580915805507245872163515359701137233637916429313971561006508448581615281807038428808209773242130975124983113928079631112811909860250008806590599718527657670520916242348711488674087266221011696942445240853008112363366098509721659331168689532551983687990892310378145966294946213192595729259587083685086045772216887769809925278698922495387242897438227143752608542124239459191873541369456207912137141246318486538432357310183975272336547731704214037032118981770007411056268102281656087986230480302089715702889309612990795107223992739560950744536415701935435968584622118879658539371237634982272066366157430738092545327382223278339148403119358153533049385104684582020231847601592344530834424667852662989397925487885255205851904612562628014713673831295717855450773330537260292471215168830086191820520813402241005836821831393435956164915545873454602852321485898789136828777245242718033678256646312052853920870115894225255405000182685229042075006424244231112780045818704045505070905143687064319268650031821548306716463052184941583676025006034977029664101794850333794788754866901722932745090321728011488308772336033679807285099528161844323397771429981968539865924104210866983135353329143201188157516965046930491249782885599363034135980810209516661803695287506408158049436553955246258361639371562975126209835007152849928267374800653737358471032393310284860718574508098418171651160322419333156482833609701012709213850436299456822245231182453928138215501397710850689795141287897879218503088571683346626470966770694155826003299340939498124672712993283022528709439063152481233068998522356242572303615373937468879869581392787754283341778648459285476379574688574618150534999874969349938318822070884818207356851520222453848118969779928808560622754721007840684445142641437918525050970905678230312595174839324754865422142638253564847635284341437711946319572741623373674255380191421667502579858679328992549565500370387356303297933682320751621940712115580639759245848466939067556559726866058737088627781469770787870927106524125861193209417006485487600817103377215895993902143894146261464926960025865688655138788759955506005488020698153092996095791181324954076481685497240250508671842731153059535736298187693684936604670973875787727771440260023933418896289379748252688728533536766605615678686070939322275073928973716611158499028281154790544788618739678545410296937921403537433821219354692642673119605227611619700011605511670901675111301823396277021580411886250463025670651381775758222611216886025452556162882074037674324960387046032090468641543668448984887975126678279851408400222393690602684228781470738394919050663149003049008915600568102098062551542158804763330039695567132086772168793094187154171002544421739551990148573100017128748706080959269803795994422449537974745496130913353345138293267952097717224771285761111260959858085682204501262937113769198748231976384688128023090347155556254497944437401713664802798790400318244689561053571667709292995702971526347263307115325527168759139988089515357764317571214684148741829501870834413188265434685202716808325138771279537286802330273581219102231020991336531464970462974867981943012570496699063141775192914625589189085011392976796259731754166085654102256504404510426212406376328504986960310931845027318438922099228789502926632242937288733331289819516430469354400070108856262967154803884990689132356717130304957770754755917093950118261583451700393076493594214986842258962434092869453981156281500353959713920664966236150853230867453246264614055843112112200089537413557353064070454434595593691043390053028276823561339278327257314651135810694166169487495694183490149662432075107963341780674570787711081999945314369163930620496098747826389346474899584118380377114149857664169116927989235743535873041606585336811621550790660516879259780792321691862551214632368679337685916385948314658478448450409894001125729804869261318512540151827868713223888596012029305627127927131017039994040132926570904566533943141530644825833339164887408325389977344265488730011457146699738209210791512409873149860161793144150113609866234825586504584620870081361192966829506200883154903927232881857165472808303061119457239333223529563205887906797482643440511578448507556708937931424231864157159798377051377463440449419578783148208260279126872350962834223238491488259630338548752275767488914311538465798401383330814579569807907695298026390793686009133788047992601973590018007316833618016340064786630289669199012991739335265722969207631928940074693490172663874593417153712391083211366260039948680749538906976553997848646056184369034623036496532840686949750282718243925074876310587389122089360329743511846200503121348435722240760381772982427457589158355210147711840482673428632709188686591472037659168721401636112290019497603160240322386180365685791283876037640499833082875201969711237582089152287402679674235694866277628512871541054444366398703258429912016801083220127731632898705376925109364656362019428850243361717054209476987495542680286189736437135154770674958725199026074379322268000958754331471772319938489022652978234586419045249372148427480593356666408533886989276400239699646524457748475449183736664241587529117154050453813275156527342134889044768029631453827350788125491631609012148451007112203050075382441716828524563068181850887681577827274682912942690703020515880590071777166367439252672672210729670853220993869137367638059451452912041233791038831157399702417925912544235931113984848865929874636730451008617899846914208695853023909016174884236736266643494073752071556156134481918900195838717409649055983870471646265633080708750822787898255257524266622283717846779011627402241142779544398199576998651776081979570422410448514329460711907606535136444092910354137043527588084988214990208298306759205001079132721007962040405772304072133424680177100782934993249321816459020573741936073031557842285858233664703259644201003784361672094243588612377779296146659484967972984761108524464037731864878966438332794404748897351448653800271448239166856916846601195367376399518410303433073835627085159237449892466305091719271979490083853538822507790690500881942416129442291677783893028625951593782170245426822931756076905415533265740078873847978047286431310751730678035379782735902758464001110244831552657767538872237836284094511155431531103151391825476958634512762526686289018453509804452813732866242094276417341348447646348220885910673766791470876567919848492887896931097968965274438942364268268377928813771678283566897582409062806645884227305381754165757066165822257550263581649734723500373315273814788163158445430720839221136072787021691600230001609786889155835587896049191033410151240801037899091450936582190510748772660512053819164065912240547296495980356302170491096724993210108614684239982254105655493747553772903564487880888152497382588381220817467523523556372605318282628183277359955496873665812970905852259844975793830691005490491698682480617711254615593665908521292885954356923474289780539962991425385963338120027033022106022037141184399209845084584810713043956471786179507770232054897172986651605032821437394260288982981886222252960976127086068852675477109560010250669380171373145531570901440929871946524078890042370535525536899839586926890073073493168573277686837850378139120825294816023108965035520880498929404571694590895788345552994121359114077997932556869996434480157311213696627410131896935957641871205065549339942384828740019384274457318122956207448898121580459688295593840599178062612995922362152598793136585493973425815049814375327665266571533427929221519237525154536743203992733634156459611612876329685182013659236879768831287944608093028310339784238101427355607748154464315397943718589713618110951107252967705490411401092238860578455961101187139852995268071719823508492870070283169843473603849208584118012632800785237540272967457514021737220469630768735081408982869777408095390628328945623681118555585039658680184038049545239787102596053849461490658499769154695821823556044248228004539248654703161388245570834528086256238139835531855415170221303414509300904399551486452728581598461563323291809556622271228682705001804772575276552227014264312858571816768507034366536804268062056018175967802574463876167880269225057808463821829599810266113378886178060149599471676563105437618359871206930005418720949919848428464568732004047857284334536486091852604561509912087959322203565102297265428818133642943042326087324518143092654131097899840524822050127599716304622818478630644898781797179617981220301834706420773782233484478813540777860505385656157074013150954668001801631058064155589169441463069996482132690294207972466203700675072223654929476282761483869192600503242629729240025583902574380342464477856083694479528003426997933732420348017359176536544949854445141614110134730323929942355001761151687083399204785906103143587664663846509170201123797910667621298260318727223512350739483397694150843290704973051268482750540027559121667878599023741694983655800331849367339178994957690413551432043024073440706528238473116749779641242401288258650209850202712246454024682523312988606380335762138048179345209136886482525450362086662480688937727742866806416908491328543704818314892323420664669362103487855510958658566278261052204913402927891513188045333456065627599790703822608504970655460762695190787945941670842721458624789431659172264259053724385663065577505305044732359914375539092017988721030802039686573506075924993369110419531912497817842403827541624276574263108739793568505404542920099068346600216775577305987112248462533362949652943023621498588999398180057744572603017552469156146635078572793364670481217033071359922143039067780800619466977836155461065400992559690767902155215111612423536439806966133774184510350383874915281992122307479566097562866219920250769925220251293397874479976988219468271794552414547141346900817629088542253009060914801722010269112129936402647020948431305405726174686907312993145201968976333209006697113049593344728463205806183892191264075864634311452823908612983627583184963184222770801720732694659209853867111951357099174412280908197081655917404468850779808577012337680982771040326457858250496366957999173069385422174002238930269452731461807561663022241147860811039699263688670682393065568432038090725818434075117131828648091196769823061451864361419228823093054423921881558688297919635458670185980918346561161519503099713922365636435966168005179360972306287879761063711078305665792066201686013367160429318690239547016001743388639563381126541947035739442082235368131507408130320396130355598330279149458562454452189862181105665419935971383400798047170275510239369603813784777561373286103051033285968455264722983999887661765845715939973378854291409618779825947592821333714078121923788018051005838125123085920094151021251400069481945466680858320543834974596572755443655466541443848933564801340488044773492431330472468930116804748016548501239555639471350569999309496100425033059501338329598081973497182345005991378845541736813770420307325754204683563134854535783571691635894009158655055646129645890665622900135297519415142686030151514843959808400262190172549448934536054534275754283253996706065803908267087047154974560234097323986332017065175384407317342063946182924001710371463104264335072913524036300364858330821923823880248488868067474894614914661239752678565531811381181532483480250161222542745461387368356048061788948079387318296616828764620375105064143054543347142010623724316761363872403476402433726288990734473982977584552611307131718425224887156873848773666037175975209675863245410746251939379330568906236208318166827209050840484235668388024028626171714275906579463931259225466639941019297311793016424952763045616206382228540894666940357469775650996299131582254711768456369442632516050324411572822569339069105460311109206871714808119942444445904060445830175787092143043521896035476369842427927480901575290989646786885519450646482298655058643909168047616031109317003507949120638360282899215712896077808824448806804028631533736845785633131096579920734118479630097188595615426302173257448333733050176974183051366965560223611470550340099493193744868406933452785920296309085407880162036190685549737877707132881555900587606693541111689909878374867060782336207296610489212727151986411719317156096068052862055826594352907078132729930302209264964439637338285505405551256481271032051415135310206577696835096351179706058711441554724008160258985628220286725195133414140036831317003915847007313980406701861658950326865825677469294153283305781064648590299088888132835369468532068333512391636497244063468217434571692691127504532781031506817016361285652266407160305132888897686374553630896941156228903401314977412307766687982992692530269507592793698906663754221197179192444131428347181885593632049937789493827110789635387099430856147532440685027200980054715426457895789665863992786802472983686802527333967812336713620909693940055886246508608010379946967682207117808907576454117001572361431199565792030236142328371113611598773306441721693759751153747967307291389551082887248667744499247949709794831268704276215093949896572132609146270373482267671791448178070172044752337030969108312626689336516513423967486356221106878962303735158935845503932387817302888246941890599686226282217716040419550603454347721522207454718984096877127164408898962483597404246106109699026068266460572875036879734725998432791861135023701762856677889855892942280774123338798759302556563111259651090524486840376237117404845411490900012269871261682308309617422295902368625617543814330975143022366573675281026010844976978328773109573186491839164633231078373421577406981299531372739246919971979486769944508464484051744006844419852374011443228504954795010955509999544113589496517233615458590978630359812970112921550156336235194172053033680927123713690874671165610548659860790276658817657442692716273236317903810871825137959142160846271873542417015756586437258973123361623917869055532085631441720634044346671993162620469946789322652673613342946431566814556609649060868249912332062331002557033242548795906564575423676118467716895716223318575057397998166480065108524767544926659617524600448313458989240771575374551906847268258396366459734639943903986915337506922024977446935936699437102286548313853748311910109823897080385448496134549990101584244534979991148097885826805939096292929270860616953082474981131756057868150482111487133750770761789763710535246485103597699066905277309757383138089625043212441203687908793594397746239353430822022126197341849376281843773697102654874497175654534378558961104263779766374754232944000313395055320873003107519456178664622561703837191930909713137110169138281883453147799638698451711517060365586811082527536467159492721607013492990680203288777215058224149183117429925216709483335069673623316502774935181098622120054694394213650701486303713280599293917219048890931932766736968823119881733867465342578396591767078039762293432786805270902740243712391714308843095245069625233346214808701590534035836780129558188087281622352856077763314441451839315874091457641785667633233042669634553704368841350358367792478791102317677805004720060641303206640775103382498965800054468656155723976558616066900938760283184818343752786705995163586067324916535217585100414305405746230809140918428216879500993137408946509155015804172815659102461424581284897946282598058667709744985176987478094839434771803444148279630224934389511951661636680587977787336048816218556369611136042667345302257784967882328130841387122010890205540604252275560820515178422736881067096622547369355982200315147791878816530841341203835800572443194734652465152406584912596161137418721257086742635692644145665929013133146648455274639665037056509963645389389580002843054601097958529188059033012161627441727187837949582835087837574395549649872119455774599354613725113058343010000445765224288021364914888358341664497729566131290474222341603685778129581853354787960386914029502347982803750302761106507679149065153351260357816763602450963780549546236031245882110828739314756720048693815741759249274442476980461152437960376475994421566367152552454062898947371944882229935140376424075190230951054693290296043086305605786756281846806576585534024931390307013506935207049692780664311806309990741710133567086662003637403292923242980939612397748894982537308927971395780402172697738507889310124531236877535465700628619594464025775845211588535498430527593730366884358415939000476664280457821678285606818337083181721501089033923894370359536282435305187823085277727908573237058096370254077380153720776782415832538773706125508079522643491235078577948803634440513017709871897339612684656064158927057375746929181631926471782009671039833191361909963336204062767125316461617096768819297380648050392191085896994134531269023119902717538123989590531950914678733779473281440404431319321039159618195396341737982244288550459662659583506980475253673712036588143665843447977311453250077263802253926199223794577113511693091825043483119856605817104263849349800351437745848400597166277813976745123803325909728232823640944572516322077304999430085011259611567452865177324648795805361154291821522106466204037582661627296332754877528787942045859822725048949647336093530042241169071312309575231353103104791644706389535787185870195578660745256261027956361526189770961865687435558155636577587609108285323205896555589261409529424064341731197722871918408573300040751328661713203582294089770025165119817039421327703340113844675023942201123569500293736543427637263310093797031652207619402041462383620468125948812067660917677629862110980031711198518766836267392255426859041917824261672181375764191530108109619590279729040122151042802410821765789577869933909179430390748745259560077188805450720301617933989926681571368727817288195100963077722309853839171043343397739025307058449001705181603365024064971072503431998751289279818633099777783886797665740869984213260943174283480702816775217561343499325877450855872364756985376343527779274797963784730468011414779748330952677101244204952741876341467521727002093672788964269588023695793620649319916181889611022492915568469864561576247406190187047837531710245923001893060911461398634318817586581892521123289790080469986285434607107407663515582007138441013901483168700585381559936327937403122142239831622433398721150824638847537370235011258989444157012728697161554690908390109101539945021429905228592473963364202651170291464837841016505221922652313390292410353566931282847205468526391406051345211121389344345647487037951636744252907328697788012494871451702494201044390017432703484760113583175451547716511579502747155613834711181138957983320654715870970694437408144853833375452271299868637871505931481476230856383060505199579276733039691160013575240939492619277973112468789701972272227066992781421443596678448907642981980090982276837120423435927819282399522780320410228794355654495556925924755238804132708892253156549279496220617997459926875757657258943494338771490235577139114203758403609727457494594975481226922989253743291952202883102765118656429937422642515597101780191771477603710206031273145679903403986452955289815507466253804052967196880399417838925502444699213701342758307714736823839851420769686581663807469968840149316282513607788777403137378504066817106724043708109787207848126492511850086157806713652060986101715634457479989482868352544560479417672465717072634580555722731836325244627616876106917951495163189218229269517957390762380587919848859665030634088898812552263532495876204022566640199916415808209978543415988479295268373020996215930624543128684382521642556358094998319101071173114928361492350045974886965834525831804427169250225579087905400791576610658294533672432581543392592130631475096585658210457804585577992274429350350827310533767785410302430351246512376994142553403057683361104179290758041336182455699921639202136711283140164712459994264773624757229882525457548875088578277121298571763065455989910596610256778637478082893377678795577165285214537833405026278996242870865946073594074190969183858321796424665275395140178737150612066460477106155753035062591412594196093923174114720558808642435248329984383725021163461651353001741549748036173461090491401308702091112483382182816620720459102900197417039005058729344964225454374511007676573841333237628617770287876000431221880194536401131525063805463479089070815380055483038434352666242689127560030567892468170800963316796389813265195837303070545750288347552934670984705921183374381207654636921090419035016777139791937096063339601328257094457804318370315160752387024844516917525793400295560504882018619016559445299503711551837445677746658588996965471829047826032447908804134434598440511692816026236564301712470375628813330262709151045985172431402317825104418307918559158034532543708478114829921340824468398290763587561524153416147744893956928932332586276601665832058966449677456971822713011307205500792084237224783686814877752564452970928251359747608289030881237422121068919937342711840462597919116381712821092630273140403382814684582994657861157931882590689866855296278236778261915150548850664736291260871982030177631366040402454236083344810675819857392390791260423240766288945289221597781646409890146120447049208971844241500673113376880898773864950213792148389252946874465324763805019821387011042812198711582409908498240639056303875246621184415848642694238283624204610544705224891977616055185591554363058099190364678939863856635113849416900783322476580607671191912230397757149017249836139954782348714514182742299165537256460213037452164467036439962975402963181738099736527248550934507624349620340855014409000283087791139161426741883061162127482510633839187038259891362880303083030824108992302165618603954639856987429433650992967557913360316400153973712480469621185793479336063949448998204513057116173232998007381074871730470958414333565942318583847502698839429103972776252249280432888604321440199984269178671958845100152729621574936990178837336442155391455338035134372160228050867553176401154087076153310100331471194414909227201230446922989096036880289350198042708514810519873464963617185021532212957303247785786177232845837800038007911752048137460387410691313274307625907281630927748304367457909582533546348444643582405233517609331974768245433312725226812988363552256011660814919561258148905407335774438198210711937908343453958766995353895956692805211151461626652116421840270309149988140860073522843451077778254778397326893457610449447996077828531283954338426817061881103234269658538832123399031138291325862482867033782004471632308549149208182880306349464368387589700128772856512035448995934152066532711925686458760319491943108433604720949624411245331167133257519771002426173703377861295760086549729120982954983759240816951216166807902791602936097514957348996744022630367998253956311303971850140816176240698216426678611542223112861510684366052803501151554824699928786571635353181711916754469992267613822675469374226413545620334230239669342967531338628691973263448335795216320109631848623588119230838895152767330508085070771816490620551391055360673997446107395836795155833446387510656914602465582436944973136248714299040426740070962036356462842790235965539738164170871439185058537422501948554933039332575469171295434827540324683965455944207569034321041323185520872226414307921797055662702945307726848340083949928217435671773191625077075121856455698447040054533773962464842396560476219294638040259555469513973081367534894633783114168535707739370740119111744295282813655849261472320939817617888786184256444972300944599796111317526546959652010938711203437707921207384720799247558485081953758401936287424787680672230960063441362221657017652184045329163252012282296577373534995081479012947556044213303974559583170076156009659501726768255731988863766493110780441873529666877338151485655626446839438651427878323757293544202514296527286114805968684892547210570665388218018212704786686384927700669759928470779776625018344538094990412311817113218098533039517250671541283507911117018416695585074024541369393897642909158441871428261950095635658262750934910219306160146774447169722875312461674459929232149861650856722272806343730401065731149668375732863996521033095624306326656619998882792733676808933748257929080369833192881999474465305092957530574338797384732578968556292154972721588324469982217999556451125331473752283502648604319609460015792210826896298172590363067712897967546981102392453400581970891812114072165587610881790403257335046859327206913179597203772864963898945709008752047119040944245350767781518185457108645544634592908255309057164652423515816867225947572531293735867962725687700968507188004869644876172842413453578281523150618605740945317479501931843579253646498992400539996575107767863109589398598910850767147290682370640976196614383349776188078078066041411186157625825271936122689004823813945192205182930022654034621206963226682214546212973309084227320008870518767677632249702535745445858506547903096885908083180614756834534246363108688959121393661250445244686979724457758040599098127879507403819272268042190148950840948433458137865464519690246102270768141732674404369686692749186257666472056671005971358952648568092089225126976106314999139718926823091123347620132031331354864122957985265471624106340228666209426580655836449784585312741640679313544422268288089656989067809280305183320614785973999070244123621548360071865123656456422968111420862747618753837805695740139668853141951071350671828601503309521334338392423574151415657260133782767881418906605988701065910029609368184348946138208791077942380033951945217719037375920118175833663967135029584019082755143835118012553329610563530993722704858541884778361689647072526111661222359589802885771115303911683629283923681280213910537408036495375785231858458300739213199844774452997626817201748907848688238638946168683946096632136219683457402797677276525627059246394966741059341450785493166973487066938121825086730555114505796471613784800291589825277661762682450297915704232245548341892413018493062680016096288614202817194773490935048924137574827252586816452166361064554455746570524672066914774467851226566622717163701373277121053739894849790097022036824662085230312249719355074581939448492539539215985308661444302276106186114664539701116499900565002320061280762701837302858214320592356024123929029409171539946457357870236484220210177897205381843233040720906853769864752694313160067432644153154807698594547962144016803733201917388096923512310729865691624870212351144218924518510504274994901427465440525236994737046639925530000582680942934334552903862652586090434786164315414188010916770016652640574563401095483696011829957122692383776368956425019091489320757571735099781452424860530782531767583994639161585558985913970586429632116587009304205990699238219021349605837472655559856499746700220694296398474259146293821857910442175385150359212523619269624174391330451507826114005515231848880881441481429755345230478126200488145318417658069467982976746767922582697929356679809988607807311182824198252698660474285531849445359119148721157177517799664597470725698107489286754582993204847136684615255123399607587231114816115652553856725420297101157549634944832317549031215629578530467368027837562672602251843819129719051008698151857298462598794038218550345184242161922984174975666865101073225698193486753807177029473585899933250926915067019276065838459369998025373369241410230759341387766529568304588138489322377990450846302105783861118766528101862285429211956656920394824310959507420713516522843754559314351082857289468561366821787176560362293570874306270947415947066663944242866476056780145281713771565621917166508576509066830325851725945351083931756523659905747599994146550620898805018021926029949129997744280729197642760174009030780512298254571428766558774565443222507019460827992655058638346970069221203163837192166407103758919497926479889247268806972837698747960981243786594541307476216461158695023123908459668179505540137396088085001644644637869562701983190235355302691802732695116600229209202274535792124999000700434497049967162318848816756025099219898904963726309264363319142112549436774517862367095196080646218628690615345808488405386310036058652384134338072333949347290399452092793217490395406285764316389210233052925033940694647696489129518405173916970483612036774273721295090543661490863360294625478805474681923410671624462062534434383114937368026011947874788127024527089091147860252502350582947419028167442532356429328298589140961745999048193505534097053785603000295646416524771468477962030078907412723358553038501505798259278685817389486667015563725690233769230487524730629075971242911774463937255220862919865658301951919082035163170817628480686910337494284732842544544691384729166200490760798602673490814562290925875356670166737390404975333624368413830194123167585692747285287465086516703856097343128570997915691858561008084471932268580783010492054838725805518306689913068020646049472493218290300416494668467086815533641866066214147328919688809332013613596927557948238383688387323970706323672870992008493184987874969644184606747429184621551288112407747713674695629533103944827969044453194079266501135420191826657224672777957038444281123211224574085515462143345477024640713821271841909055280622336371254176119947563309084285886966860271473740452610141959211113589039849297084063058537343236903627094736605142350982646502596360222087823636870401706595370201308782339865714551172937779064170900538597352946285314331394827136308750403835645448520225857409966106839730533331083643901068644469649578069010238100376900042872689266756719070550539120907608818320966888517439619420274528467542026275818676963381595402033181858688552348980258368089536114372828061601191816386344830879484938101967786592298028153355612484798053926856378791471479471198436987365740488822828753835881767908833116963286188607905997578320999216325227184457146968419459256570985577260479268077128998320088025792813394457157323843722823355527406738140485586329500860941214144659660204923085717904051828588528723859595665988782934470849299204362811418561249692293281443349102307096157495645110497991083040811598320493347792107257989911404155835443953755422278430329956103076717824056148100160888216065860364947929934643765097937067981073250346697589247584484655844673672125056339649144825371754905170749267140853565590526204297143405513916759161027730766364254223124638065090205485727892264303109474362899083475436473095009647521847673641854704980005889841058472032083233578309924067008139545335585653084886224737640586946398432641635759586972909742426015729700510386741361187798280954749162129410506441494205087909420080662665439279200023307419374200226013520934637003364688003551585712572587388697504480961792596073569794817153889863810569420599882077502343031608415768749709640823230597120624884659523717135958792877542872747597157042459873144276969376774125293912737954300793739904996508195429862175469929672093199412135377697478364063875635198074884991965466752704754658531466744737950646251848529296635106775312925186605930803580181954750057593107718807948450706649453968834906788772889492512090227300244097308013105669436047196943875278369730002862366406796561811026937048579802895243373506481349073427440834630293323610489061255407144822089142251437964478332176949483096873231066324886633920457782716934964776263338257244464374624976057185120239606915148600023480530611635918260631948959024032720931363022863962189266048554783495204360704963364015933390811947674869251802588525971477794515832758788009346558730192512917823392789842039191504560521759896969003085571617217128294015064126117808908649926949177699150374564575930243278543376212537731718641516496549649421361642972992397437895694139775742942354754986443193753801969943680647654009331501699770801380856401122922156429601865320687992978288537094771683852345313645194104097612384182651695105605528727738848444666148596819176952022857413250143108135014623973087766249293018243411655185429364996681209510045110533709659184143629213269452690954974040598600561671037647074879304025748326934586426158944419678953866294401600724458558201945299055995881626424628955397210631647474031312916059228841772530765087748813538493455030787620892711562387165019497765053751436122591430123368073435822304949717760064123499954824832745763386388216657836149991761382218945089643682022776015718532441884604603254509678306713451482070149385414217297213581925567305993123735078159840220204657730193859365772572264081088157458724346987965102380958700807094918876283626454192923875442671634381702029472649502430603408964882172619580730539093744405081751933271793547263698327442924308841928918684023071135674540167146336030369520482645140849959851631056346825602473927894898426894615033442791196325383379312862513196302820391539869100739377032626654360779612124176868913071217795076901461445336118876741168204778847854760813353914787637140468106932669088927205434988204214727579498168078884832920258987884356070893730327844747013741566464515058173188865911989894572195175248620668971556665877435697840390699049377641841539298996072869025924120647559593084559927140793556810219301290240943799884450487423233878731899217938762974220807078966337948664773389375695791880769451232853444946823140369808221334441223276182080850246334856763336816934651197506303077452634318393930227174404396859090074398253416965110312894962678023957802552096396394472367998768507418435811733829828126331623922620921997329426022566558497847951674566616589357422387429032866369452493504603546876608049191906210704417759763942627269539594826944106835691314441255096528327604392266603909882816175583127642427840667711534029238048970893799487634852464854603922599809868190859212799482524795687436513799025682635892279123320289403401273472846365551973279593738592387363934338635037814526172249382460184967355575914041402607465497571077375870286154103109000659919050615104736752368456129842103994339153264250515108510008403054515690699873547298793619732168015389189945135798710730377324108815447367685375447551847277885458297014770266516385933602173531318258881112503804194103258807699496193403957296246831710620465081636504059858432662460325256792931187167812695872246070231117196312264249914725444102564059284296764667890397090896949391408929215217657395040090783121118890552762186608414927762336065567854269009565327063772059264912774740312402019695309150837590627560726285175702332633077477713152532003095348904994939437106363490925273450998962318950595768921461350497208415564141271778564350214430454064651952350187700898362402185275427143960646424324904238419458267911784293857186628058071098585963870830801866837635513298525917417905865075298389998375773868463895023752914372603744468548691040019351439409358130506088830358498450779807156969713237257831400224207514434098335587806623915702553512627109112202820206109999534626018858739933925581056102190805036570159786015250045236772734456491234538454945026144134004530430249174020125097626425950784511600588198612881076478460744377143315508592005823544861571484646912201479539625007865579385964837917497573623061017941339583231267654774215314156090131597958434500625295301917966405668264598257722936680998205087362820918151674257431536463329848008635818297027385353256026474799138076151895158095245127435832583820561974221382493471799595164753337477141306656126345052230631950059349562998368050382922115987265858823064682080567447057098570968340844255513237523240043427738840787173234341499703220553726301292300156859933637852972841160070546202408752938040957496097898829990330079641411269338857443822584267367469931474274739681225265013929322059550406895435496287509590121661805849659900387076233649710066738521519591036258303721706916338855241639910898296307457458843016341392547435769971259145036223900586755191856963869704088211696083707932298616981566163384451407856218562251375146356472209200211762568238582860851268372251749803374304713706926786806496111582666882882023677059262647239690569464077985850606895928701832679885912034896890035774162300808363652559180715165784382893311465872515578652628651870410147407944498051961448064699698357230802522576355633924448610416360258519093745722282620508396069856972701998392043688655980070797989647390107677486763931261723323025460838827464162216358924773492076002822662164713681630719959015414895067487895515111174493504090299263113601331123707969382257890398614361301342818426468631128936262683164630614931543230567025198022095364341789747601980823816332022529806163836859776689721377783939537172617883387280946014704355493899471430494593068944339679753237365889003262125045248911452784185621925945543195269704393330358186021890279513873611969338318690260782687423746393602029022547367059975498641238767856047778680338407347727311152338446009508560852117710469575463365745340719149192152179224400755889585162290565690513879925351044038205266769658712655186279908823052134741787328118934995178805945631378333486983442631419623281436118353792653618015454135836038879404123941506900669882790924922591533193342755263122373995502782385832350790106528830476172579255523264409954737235040606945652185208813470620616616042216512040229304408562249417538285914496747570040969165655869255812712701453877645660063935214000806563880280389666075270240741859436885670245490952849998078857538122816811051670897503186882854548267785020988214697519188438619700124653970292694328142424843764915317013887520809178447636971306831714828923341905710596400159083110859755216898615625989763451868584738968175744224189834055664815389364413980132991307427900789901900890355886582381238036977657857465549342362280906991321986786628230327674709896139586397377062820592413478981317036979368121083058489176377911265009768009865036974026949279857159849921332908060524556608963867912125503118690696609647514932976536272947166998763422292092918977716349999196067544641732875542873430151964476301982496428734586409233551027980244318413708679322709589404721417828091441882324193925441071590783652604034666220493050879739852833189498980873273206908344261504135160800155256618800060671978773709064874249464650407257998963730180041036326990534591242473897752296403955835906646472552400092357274776008116878852850818521587327059391973735654553122122345225376907436544231643241147848130633004302616299867704535009999926519548249571399390104613495947681062179573448061642835412720782856986847156531730756547996560641836137974238159123892663936339192383462809552855220487728252634778190136705420236503769697394152261264141204059762245855097241283394887958471061117462450107280902116301688615396223070702841039216596720106708885199191190657224871592620798637032788508098326205146503569053255106699976209172723933640199709246101866135898080432684207630797324195174454960944883562025586237638178826094299766124575553563684628933641576999423252414435170664370307215025225690645126290717862163804640552616366687968995752366609155972356360323734271522621970056061598063431037110940013315644191513218604137683919493191724367107515115515672814498967835645640432635822827959149807280334876054533133314439967753563037176695672611335898053601328776218524885473758524250207421317512963682578245154237739241128505798386381826684586921027580910117701861167105758893212552052318373448628902155220815799324073291576122731220858155656263225442344386400914585240210546618583459635380912884955645344012214293734644109265484272871486884705556130315634728004344182631141318520380888174911308804494373677900189399911331927090807929936799858593125490731534171891416504901604961807990004103248939143930811387864605609740806941979384954786550604547487082228206308554172276218526879213188975795679253641670633552776296433809812986667769014948377544663333829035549859839985301600736128774492644635130335084191997098474519099043978440786881928684183136277361546959965872436955156345497253263383001012154450995827298168522782903874260897694797944664026273623591671303521249835974591595289401823097207946489302633669649216963862906744531665580094075910305220152252745693544409809322591658059721995840387524633781946516639936363504147029716303228126359561717611793014392574921299059668220081565984082390611193822954639062491096890775795584189328865792324823341646730521843783402184263683517299700583721420575425067992777214688971356717849962099124570873439906067805379612426469221408991267311684454578517574924605059587105611373654646190701993703230131848043048614508065853454313139399916288836259184954409363966084046550675465401680836290006911648595931854614784441636291356020629736011655058734939641973057630814994794067613950498024976698933757768241556430367882795661822999984936865968096636328403696966251053650536211966984718249991004412370568774986804337189071146067326890150621020116813607992612805627182831300627417869256373015612540730059715267903159360351263417984139773578505377558360475779150055933832589139430030559306114663504094879679969445501792767943566576979087778556648991069814673850261646048299063083355647089881372982139188330135749703457496597219982231185970604079535754254401249513062846510679372145856432005709492133794843703229056082279853873997021475047523544733969211232261340665189121411281470992684863035655922792599863736035541856207141697923478905466195962651461810157228360186075087898985465872343594363125913358492286465243016944195153965905436486124008075649171006631495096082486758206762008993665823573885919354577665313419492666882575104081404670154446357247918427120550129379060357505018686733864229480055514344711642512027597907271110372853103277646189146630837177512500026806192827144321677122415999231221894642685953286175860064685283725748038279679808447614692593942842916190145209154209478528294526122379750396134056427848396618325711902905205537453055370890634283413712996709318337453640829307213665790953997636628191933686146458894904957031213189266552319706803904961740803593482218569124744837428052125457001720857857558745057243572836068301303325407558278741788463299793232766757006284556024886701823282036308387082877752869797910166158277501715725905366319326655580906950521556817207121435535905398590230925144847758411458188363934513352084998536201640984927964111367697418183891712858814073220502650664523690104081662701315298853587606065244839869110829519643520218999307647412881727626939974664393076680819345168330031449620595053621704934740081477038678576901864282590352867597475541955833873363263040518304732046644906898211032211228195255390278240961582818184150271360288321202012512010024648560306486398875017482269662608162194514549173059176458535089160766643989578540888284276555856263557982105931505627289770991948461385915652441232525845483006994234541515408564678999369349048393439545502336192700161034409807683858945410032969158580500202433657353772268254697507660398481873607591474421461890444218779776709579644870363206138693346466879200864511292673253050147930146925803836009433895690773475462198129674883810409237935950432495202276092853814224918821757044027837092741623067924524266974765193343572836221290346317006947669669364870231203813131068419407211114274088391553305942943167033493177473962779975087074495522512955624546779330521935465609630623062693468541854777903551758307688719452194434310483724970030915567642011709615891665251663992057535950115029385278529356203479563710158964993119242174025903219303089670916650187521965853297966348117106613786460812192138002116246124234728781469286467041283835510373280374465500058576274562744400426193165182812542412915954442838873197969936563197491102265790408136575913212921440991568843913814915375030199778767473044231031560253455924497045406187898546635307171394837159218004978736399525492719432623962973525868662490605659972090018193657324743063294884447332656638378637955322824919377038904709036712951948969639676865588962454656775865745405456780351331664223865509504600516942867586557808801381249968209336443888184198704583324411065361580244891319322435052123388439079059311580531420789164943133063359328297559851738857318675814855759021329132469317308877593371078152970581556869734564991891510168527201604586570689908497752596010693617217457726391374032118326678411136160567232429807153503720942140411620535267733795016018248635551948096338041291372896108682817871835831132125605902642369113413551014676638185077276780606622246442075271259432096296276629985300883549214442222775761311900317302187200095727525994503174365928792678312637295896027102266002304263450851530979599779945094771600782526758185482710257647068871961943098214953435136063699322190510701071886469644995253002199302574531372784194472176881784743752248485421142698245807938492225341057558994552927456652307293501667731455218106751943108734394546092019475868349792207837569397104118935820748999215148429213934011026979882472547308914258649869834299826894346770641399213031110167593140288848623885984599076573694931816232538497602531175035031384184170846844824101942458628044163617275080135968266824433072097528508261882361598674658750601844295173392787283734058740671226213101323419716986339188240925316886579069757978484182321712632574140172582279556762449975421118894367422211862067655169381132128455509675257750959948869294574170016579910206332006152462125762823258203783516429791031908787396321184857397334175733415579124193735494411696171419232231401862741377365754729668736663398908085537484996105819253826248222622586818404815973999499435237233156289428313974956378504917504432694805729220217336516134379899965052872538941718185841496005021523614960739900293358640569352905084145234593297597719569829159921793595797196083403480728441306299755746213654034785221344287606830122217903454915080920062870073741038705928622584687336020006217683548065899416943531220262250452826726294273226139091584927979099034635850680815193061953026550203881401846278352869990617443485553847750244939159664171856203869163829915077545783317809735155841506440119695593185101350786789306955707448882419853188098773605216022310977963804856871243404850381141510696353232174549241511580581536607115449395612963551382282287748886209918747578492003179230389011900504844862616284477608643560156858282536030835197684524805996352853550681038892206530626448084738039901766725403342873123625021139588074704903179041354061692317687003796807104430345827266241610447737338832755178394917344230589443281662775688942647924181853527745607503994084106684072457355397945422350374787516816612904778462571562564337146557850795494291731965989113712207165846713347643454628743199738600495712137539099457219963353512219014621166108184099532266272812046505137661236144928268462268981362632870302947567042338193857763241074377118334925031134383745203158907722331582834362636144209071336727280021600768250057762882029236711191581248692839257651524906705247012779571940216959318267242940804216002026574075386699308085243459894094115559052194918917395302405013519541062491126985113031154592728201917596536917960111470318820813754317600985079366144557694922635663395890498881432537922098809560294756824069777016554926000784456369088472964223464894423533932409702911210898203402866259516498995915410227403565353987870629766474442760119309768632860036275781179646789540875530004462195095780298027408693930301352353039094004960253349722211879675556221016196374093867149532604827387003083581499739249301692831183648384109485361314587053135160074438099444907491340850619703378401034940536229035104144820178353787146117665628650196938105906860131771211838517928743636355321165965457584000532830167763932071257600651393063909613893398166147587321074338480576695311959705949315773611942957365621288007539297014524409032426800997342855510156049773500700852336441476301506099476596688791985974079283368485353193847558745817413656187836534253093535928427598927807492024297432029831494685087353732642974881320779022770821477890878080844685080627571821019183956441876115253616677929988779234270058700340835619600499917806799819041438186487756711906078308494284335296667224984647405762970373018530434666192133672612012471239985105964478203410723944966819385997080951050121734106188005950940924511865803167212708473668453132977309213562256957466342464748081113921553593592701795773903347072002884594298360634095347199021904116381896093813536721414249726041761119631712942238767286809126961014960940338782388868824187575580407055147660695318987069846048879465031152910430103075199827718206176242460733305482487450691544073089012316198591494513481710563329191973638668498011909137590762724595709932953287873966140195780957204085472463326893041402773446005498450399048896613979936709708679317642553934967095922882235987766857022206615972228697911151592092218830126017435108186905050643766712161970965070833975128501270003496784979457538708933322441956986597303353231460389558839762749975127536505203897161962450585635952729776031569174984319366116379225469981476255009346861412273662254343574377254585133888285188152903563515979093328843514561009110850149995712134142151177599533047147711577144587278076566359758414375283423679451740482001460746760467192356606755303572156138716354419034587493250208526426891840834346584513099547401039767150437840163039326952354816338688161414402810466270025315169214194565985190417384019998028924793724030767142001857474367105469022417906654611654658273330190114734746243037669069547440694549250166543908669015911792954410601491073545881186543396904701587875718076753164928593658204073888164677920355081882177084887330523320761812186131857630774010268629289270995633976167546826983031905746359767315338412250415535767116741205617233326368557888151352509693346913005541959075321209894840044639711435704632592368628692964995491570275088190391833555356277267728141412726871205900655927765398492807593210478639488964147712584810440672364922651419949212608525451831312698287339049891859966427264738158966537063431863883719326335074531910868820864405281744963310246470033504014508167226560471244605208678296103398900964580028579341115097691146071450606012929420562626135346459259750292658096999634037160696773543158893291444851581730430251063655678495675988178835427064228174336359500675389322844871685719843664246103543982733689228256629155863708322684960644823464290636931331734156960744831098058377747192451198535225645745818603231722199498359396221871222065270932681910372067138248806120157683306655082256117243216402822125204624072264885141501758601178852223010521206941621308594614591423122464393890818889246789372412852685328100903518257273675851847692499453325146668333737572626495252268635298009686684024787951617265216341941694089756688037041994636456883462083680262539625885801527926277356788165204300801336823210842946735220413378694400320288465802212912845503159537664283585455127484218282608369423982170774818042943640878681424454366109892487427469024930118526243874804589846025415787672524172056259493030058560354889246661229106437998276845142944935254694006403917726026928135108081413217835460345125581821341648013179135701853094648803214666693744316124825245160639732845142010891487071645714471894329067130449395289456149625218109116472056787989954299679458211077529799485418204192131812360207293458449927644854860888128435477609720546392208171269081687219076577083547150772591669999926020477581871009652311372349110574933235535377478676507750239814533442244643337276202769841548931621396771871541142436156422798900667147687867263278919019501619330301819262573518415988059992880797310160619131354821556754316336760515812666842023879444132372679481532828217465761291344071615259863069206789474977593843682448988504960990618242087858064297897281827290151654187324185293796836520396660884225978050077947928634417054069481467768747331040748639993333070815565391436343777990059434718238306143510400589675045495560314718764807278706934921331158208867410824212708608281294188200892105044766673020948511820030835719803035329680746534840554110463712464099974992462322469320367069974376591174934384099592792523935553587944442269654609933267776407002252527854604247914952530886615224423130863090860624690395926842824664555143704383702513255063154576107799839147864881430578656438843979825693940203703113887160700473565582149854416122458612678490180571332310322578572890297917400193576769525346810896133676424481347354955473581059842666327377637938721267790914083395732476745456172975175323660355298626716190782372083855513117964008170639623190555489774525801089516118748905518795185625965882533913533892013209052561890829176673763681030842486587907776257863156947569050871448208392290270616670662945350518420671884324724782134631785509018686028261264599106435173404418596015387665785166247090660609601863842086323657833503661098188410024195976654252696659213666913076792725871390247349977944100763562518962785178594246150076290881500134117432089922569420041031364514579690600308454377364784725045055679165306553490973489452848590002429459085094581867061585728501686039487165485430368057914941034557434741120656109386547040185545935666831110316445821050854500765041957071444284809975713906978221120173518013361100061292893910817766996882835646592118445907233195382525802394389676659277001535853131306038762036228938109733822783865973976193248380671105177997554497572451483919949229443450174736066868011022264898505909635635847960993586678015387094285778249324603517123697374803162728881307142534064345289370197157881387020237211927706215058079700108407280675426686742147843429824779773826392903981736518853534628387776788595582922545717522788349919297281595427776876312418656245627081538272204242757918255646165652561199951852451696624899848757016747435299967837441058456661325089910974947604409843023601422620409974730049393973288932314077437928036784578537823930408408801803953732777694574499437006799822389050944460044830321398562354281752430078635762911562158611311289416379720029577143381777693004299713885160684208613025006202126437341918375644045889487928946258056217688144193431036931470431583402873256042447196815663559834110159500308689614993493040467162842081072472684069424132857396569193479085860938197067994981798308824091232999228740887031847321923419169696229591873365256908126284570664226602020818800355909847897542110980271727908447318505750555060279525459331019937820545947954687367210632617320212660689059562206446410061185210171068234787092771321982907950766200641878353380153664605439072036309028552127213716086965136589500435413340857633145815731408958770337254863154709331291224932359127890490901909300720888406195498034014436497770274711636467487172277531095520143161033131844549655022974483847758164013418967149040189512133662480021415640054288728917776090213400759726725058263321105864011052407271837339166460812729963637204919632169814558208334378849480463500283232562693846400879136971133158359974467816762630845684897676462385085315784902707105898298596223670092441738358693158993031507067781606050171819297231565521945036785307220826890408322165693727067066512847478395546863907507284123380197860812280241775969253386336069858757213407775729329139292096897397277042651456167291582770018593246932907981312124418177733650742307502778416728551281060214584906996280992199096568779369213061098861486064716933293460903097290678991310242418240161336458292070078571421382034564538465727717125857430053031123859376973584719918127577749335930822899125671060942998213959973308629817179616711264921980762864274955880353876144609754805860422836390448661684027272524264801842307720250669865952578548789591787468928073494804248063885775479301786756506321192862515879712412390480222213801920493422422853844055842535262449464049735923867706502958505179084100630856184753529227718917552841994949890223765801009254579195006490436035224346483114477582928236237334285038040605699825227082314215797581255500525635843673568536195886792695842408417289030834404092175360059772834393594083650105420674584058670327656961823549917723249270807880880022122027066945101962730801205690614509700287682238346792134096761325812251017509763661824614739167426512976258187243006812936257792911940487178632724798583511535525542729053911932906836602236334035519390199043025223017923774654121326780816455950319421318726166324145912042438898689011880798510139539725911231952701615851601925139472842661591170127051268651334678938760608373287845420913767562579058948223258235272048727489496450567528672255310881881357297520997822855698732082491517454105126194920856708412453423293916207073827040343439603029625530562321502759781348561478073907725898979135937622923322593907392850319068084308792302003265789228570789145245854776918651548231182822224368375673061235167040284430397978370723775317677220632079525278111977620058609296295781131987268778549986372903555937988161127880543350386576982456713435657258737141090732711648720951884745257799385192902904505136657166976507290159772811790176038574139388091550696402840465500982604808912055576331867783924309168353309203645940392941542069150168852510465383410682782921051872784762181935890110316454616311814126658089040017866836255715329663125460419851394222213064574039408839837427128605638926626926022521569903981438672453649374609681454140992549155476235150982316201994267809176313448464043772331823920914497636033487165307970106904911027381935075167554583752259962807949527663960704013337002516569713327736779605086454992039987060676701636973944346929784218558321536352364643895223714860095163402884991294931371775277994758893884467132891709006364981781165746189618724572845904963492177173950399058106175999594979051671666732562596917813887370696272957115810835685431964297164716468771939681221987604412064396239826846399390671563414035774956515397346668368254382955016613337704374557655464970913161907874462290265855464927026890585432102559366743516088795029383307295636466597879280817687464579643525662596585829370753508448484878807005397463578270032989370837669483550991598014613174667573730806483431150048082609209294157294184159159038162316102401315743174006887622150789146102065214509835071794986210334810086339933493839450660894180125860501202792658346015095341056305051860512127885381604325585396373379085979998501961420978169901487914374407536771784170682758985295913676351389974506842609022159455291447136270995195294349478133497651954928956567010156306795253857469060841482793717653510880693931842472897427556515402130397227390131853074146522631764562128190618187861291020498041807375415807064193638543298059317094464579890281260455823700292174537855649106142400735111895177096844991000774958732955389052443581560006247665656649223110124405320328717128093756363276209926021574605348728432305747128236075732504403425202402941609627280562125699288813707139019983332632432147594662250432256480937847244078245185575846995685495976073501173316736298806166550634144889379433700235053409609110541026419395386413780331154182389811869625411425103724360623713852797426791145825942560648390251615463616238100436750142604361202810741303098305693546699045775447258789205141833596712038288829697082279231716242521017995538264546604170241226549855653843792357392994610659884011108753684933647810034315781193642388165750901513099266829288101785762969624917507854370362428770970831532843711535088483723064376815719439847551694670103147852287280343194568202264616186741511492664012967356911217054984989654380220915970194420380199458576535795330894529158577540355725783255532336675920074359106888494069214770945773407773102120875883405978722375529806261169056608389844949470939714526591881622493397475221069370030745402711085595893713616010562396545992818538883693152870891252462037638537549297924339600568643976522387127073142997313127411200213182547612583969146030764662023460823568331457614950143435049105893628232233989517190113080218406580037924413110646673315834696015680946572682301328143611166554321524335998462216879503223872977494463620763829745136204450904222132283795798278563564453474626634150020099093772899532140322708307238080742246977618441956526931649764305398028315961606276908828340835141125346676423014601816960801490715664338109634237914269621618269972232560669457564652610376213328830331646589109091093743625840772227090822371215166603494953034302494086354775263902410351204868062980040926800975375951374622005002225031821515065596242814756803730147718032693024458224374150791059924847460278436797540217609282666085107420585238792784971568062104595799020590962974161783880119802982234698005968735588975565816233153660955660752772834617595842639739651367700779317963558149692467993796940652168619830788385439091887518108316558816430693390703373005879256851071967822707156306515235838007371025445754799303941892405789082402264344633286887908263616499795465772430773227886697975817634671257771495319214224069430492899312298104752047758212552915014239796680073706556984114795582751254537629725965091898851980301731247650541947153544367885984153569318867339593941227216649354849675128051492898094422570151748770081120989523117396538406450028198528546523289367089222555953231509862608905744723493710678549853279350985648717968159190590287243434705768819581268406952791663336358055550368164818066254321031649790562944308925164285811778895513710146064614279616269009216141028502676719414740255686531172449288335378421074004729545216229670696613260715002712954600759439322522451164196173054786814729956504759711805983391743022631034059243848780010034381221534774037948184376542561519356775418667759557379284282761173707474359352865628808039176314537075540409427695336024043962323561691646195035237689920162822708257896247889491392380711285444223887642933952339347040645658804512723927704417147197185628028235857219356325766634660681863131751848454668393694147159936948222709371893760457316116671651168564172442157268820985046436443490126709743236209470279289558911282771207956742960093851697652903041716738525270549758941488676566418402984057500846786156961084792254155111263987315998215394388132770650788108631803502074713774341499968955397044312431403339600265264616664080206384748869962183662875827002795044527742145295329138167079816509456523540039481353594847668068472671184160841735493135628938285971149177573108821861346216328467613628173460640325291495939348534932970121507219371620670973544114958873322196559229159518926794329628260549788156685201921102174977230916801910331074036252735788494081483596950669957695723955694903854732794060053327171319854959378311100215200076352705591784000772873002664011281759403555441891178475208209051011319345692762555500637562149012547250451182955192805191791010000077395406123703641401355093360907366707159264404270301523257165413988720637423610023667193321247014318219475535887935584291713642920284692037788380540494773232342332878006808086419407538830090579721652114191478827544645559678215109011662731724478825872859089093655132044663813314185085919517779002842809494567996456569423276710343329005759777015510053333540377738147261186705328330041940563564590038617575261688038343351780655821955725485133715604354004443947024625169583229453720397627314052791333938672845106398279709953875716997709132443412127183838855683798399248637401469788137536802243971259553859060040593127885065841037962337501008950926555481164046781945409609704240114674821381439700837459686888195965637752352133545345548952447532069240396644810918945657906101283726216651012686537527854081335902593873861901818752479841830473225002039744896331484620944175858293893624176283829531440584557534717317148885417583107048332604636428636876792175724872342200736769312842504854798109059422231342517420255190627094050294460283612961918545888866664391229198435427256698685081346086788105609490455420159762589482548919072774459068814173322265317734284611331046620958390244963243975795141221512120940780006699823804389075899481143878838735603038652866763434990543532967132116797706205938541077651738488509432801775721522333286657555766011554967879231657595113544463089546605642605685491423408393420081269063384321130991012661566928956629396811260969124571526067421461129999527175874672224537193954013004325446550495044564253728542494611390847684919028757689122151568235652404680286399750592052822297741498006298040741169894388141814842965569628950705002535126345439753487604486617978634330705915372030359429072497246314158671365439668114227226574826979032596744762264817254321875056594470639229783047463507926480391088440021173372200528836739220563971269153557040685932363725175977270613807519225322011232071843466346700023475332981214315586369969209422528343587243922493701028532654469656746840113280301209024825927581149566443486998745452054380234219471446775708657954742572496606235752870294497856590325306376179781066831534667786131511909593262709086943686227690574276161713178621551540085143690275714877535974397724520947845987739346509297679094871090745748692316428132956687474600113506002901274368536332586521611730457156757106262019992205221401365383845847069074033716226784787980654912489792293767682121137266581771512049636123588414104333028070087605889190088044341762490966303483078839238302963354523664165058800691420221122986577532395265202258274724587510768756645857809950361821908160040856321910308635364715792163156702791052368901928808235010863866026245952045696449947565750389397265447701067338446631649706437183730971851488860152524399030470835116611875693464783126456297758893937474310380354231937862169968725744819222640460918837772574991366796336640875752262261388459287724956738435179277012159763726513357562467554081945389521624885622311482703786213381704392590791071133868378705609399560495601862359959824565752685153834018638032784834682583769893697962741751448422414571188883813420089089451576364855586300573560102998258107012969500449282788620032522025263745453710435144734041667795043798123472541497099232210639909066416884788086197195500184042183175970830245526877639653106745806576650399627962629055385787740781393696452191368781297847187314788028047458031343758042387305330772146993050066945932741729810192713636138383415974250834549937608069959209433566379362656235942054504926869225793718791177818755482301529928085355545549381073046336860953875032403801809974023103373443864877347488852539199711801675565875422052663183429214100909164576555665814300986388770025721584815392617084224757553248685556011919624409193186624987151228752623766720005564422040744244470098707792971776296992436689149653642313611603406827429897209179674163052826210380060913702334352514608758213355022041109725395271238738573620033131670043383735365728264156116327771148892160362899863855187609483706467118287258710818943752463756999875659068201348879465585337111346079346389833669484739709138146918382644999766838355688836993013134342548389670109589667644624251206002714702271514684333303704337984847538994014889786471332492283548111773305808129871460085376034446885749190948226675824148906686251903519753177343347346532714030413789638650285730370181156559832135523845167303390224033522656064049146337756259105413776571402808656016688075149644220345378960602973357040655787607895213181356732926353069294312901283711516789682880576600089964106642311483934021015644674685621270080754958488622982959327761237593690261801152917518318608331388349354177987138123778758964170411666966918785496672000986451443556513965966358972492664654713715416927708306130580822822916819766875696882690783981219873617127397332130417090054869196667657164143034745322549137737660340375225473130135438141071224398348841729195106345556175094242136585193772870735944164156859842496074433415160618996510227141096679631881794740647612862499266573574542362877669322308027817049078141132228431682674426695089270344085339284035382495707686560395200753597557826633092535690503623188910020236469119164717910661549221144923181988591018134395675389847783033037022641140184164683304963494749685051470750176212479603277037431408783438706501897886301885267940950114517566200010750278484159644228178611609880236093038055990364979407410389385155370164514738818073298779436976296169841755022568171658535779247058088538814742091696500637553708607563104076318232627499005546925425130807463029445551886396274097247239416517518099853652886875187355532393246397302038531333466269651804674165686300791820871636029616992860923092626964104514582783490183451923826053976198180903170278669852157761447227473195104873204691749427555088669778690995890627357849360299613389868315459467574314472425955944564005812000434732872380928142595962374800690038923401206974785395695558874613522101264456305463986959191679075140743460372741010918763801350038082807086193109922221600635418340640952760545895702433588848640437806106288188709609091524011250957174361028884248739751637621785058644005608410469884700620628576904067705883631889303025961896183110016049371847310132516692770660722253299294490844377138087104232483155633290527347074196474972747468842613379361854593504577758229690767259331411789077620761488801366040595861598427208322884417063180524943281857286380325863565026766681081686924852677014485477976420071168410266181622914970246176611142273537116963035958540043600155994048791585561830247172230004986713989649568913440714573869703496778741448810084650474766000963326016982352907576661869112204335016948148198482340685585669177412659451463703913461036482221274196396572928783594009624577882483714586978702186537906697208202042714916007592880279036451099309370575206787624168626357660078774690034255317337046900152823534708629407113795903235379734808671528184245946206385613210664184742979904502594541449761427749142332954329586714451122759164774550655383006045267285707015137922930861988161214765163204390585395152148003204457016393912339249129449616581789252661163225646465158219372991929024849472429828546769977940719695557368005673121123364448637700552429610753953000547278802030805752246687362239709024425451884158166061945531707491836130412448056213102282728744635340337520066913470800783315681147756418651589094209347897900857380645973314770885854929806625529313176854186135700861602994294738114712017729091941400201046862193690264204232898294665292786730948465264880349218238530024246801477659333958504659404234429642472108016709914916227260409574290389459403311135847128680344793337257784795350232772762224588482644521122828778569693722152431306268162927973432685160450154360509009321350259678652283843762808593296289027711529125706920616827376485240472629138794766756831342965472941573613822116522794436966895667025139859967293788078551707392844996586986642633235104290593686725204457643535617084485471249018261423618435248861445766991863828411525618203473681506791703262869869328880232774543404197836501007325670858591971993204834175299196792830377245145278399232546785034755144036135610122015598795869135362056075976718795687414635198103458960408945075995759803740138447788613340714295895132356659537667693782873605475612124626234059087972680355578936094865978049653746457986906285439375237433175525071260269162817005713089678004482607297941183878133516652334455698404579298319355623405121156699895238940269772255246867511761308464744609214073059298598655589914904661712085660459891048352247422002485791454815167543469735869058387910657437204177832865080495464103753042034001683834434959902452156959559629735052223671786589427711474990418988134723652659060140528678595412866490410096821970366135599508408050006962661622514899821836604613603832745564004134851809570471810044006113756714130724342505233141629335647165760189647745351272698784347234695285008611006062223037396747829381108688183810666119671832416688615684330080406909272884310698849026957303346652450382290428119158376382253333077952121583964864212100990642373028132424092782280612555317065066735535568523158762047751082128794695013648997210940670038913193458922829898262949691680437897582111695743672048712365626420539542576318246712421550895051184228323504328590780073497854167550353259812789998631580272567200934926137051421194094124890176170818421849422178392672198961802011150712973261908882420191128401433225204317024116062368455628295845184182530328346696121526081243222664714967397947048880952619080655813861288431667561363499739543705099588089784646691571535114018370116908999923759088307401722174268492092864051961057327059434946247711856217697706105397605287372440790931509723455772507383067010532111132019265829803404770873613202700699392746110529852472166395944739099048336190468149474639803738235557419269018714364176032748514926919512106649170653486596780122855954032922990100798267365734774808391345190481552088776875077669750605621189211332346834212098433729871115666490464983570568043043600445373495830256466588037637272119160151779818079344580745998328378917952183620213311956995110329248466338028177105363707938712020678641562446960925724206640856617862781256461679258189432056185002824440477167589487657241882970315748400833391744890454967987202778654938935318144527331718201552610162310640307361756384548690580034369709750957125515530010830497685780506145969665711550749043625935341487693591559267902997789504612289802667170335090620730097009289515515565077901688638383529290484712527563330053586419293143683968900387627015472510203760338683806436591658489817205334943405072510265285933468411469813238039949002232966125531687081303062256107425380126691721401272560034106612865954921424303533576088019273146265731437882084254098052139988932650831192431089261379732990641004075895183558530272438705656130969755969600217413415908101332859621574085332270591192045186236542629333627462285527250323787146208977318631918326226575162168702056132869063307679911088686055255594084987909741500330474708936405954812619165283592241002959726788293309492011414601444748614892364923666486795570743362516969896031332200644069042738427058312185246212709298919815349751546939239384577942431023857249956239870863306523589909730954689507404739023780501467492761364775846636314348248096348002246141919614290725363041483794533055827189133073732891714836279792953920548646530137887182425266282120752143684529586648185435416784131770962990745106749276174019184202965577374405127286362324362740154147293423113312087388981864009331242149153578978825567429014297846802747434467673992381946015177947285736092422764837305957282569832800906917148253304670534965197158120876777644631363373766712299727983799671560502403034974711089404287463860743406797300876519907180586338569019663488178226196111104240714643020526552989754259286041342681546426448376138027332162191260916138803668396881594868429923805384517501653698617046670197975868401178877955498881757636160551205807444183420471609434261303224837224617099714799176469885172886954220605819268860403544714278636240736424591519328971713336949390635254294337930778880959900441518156904917854427788456755732831553254615567479469601326584743622669862913689245694481108113296597524229133696670270664752289533243354343950827045861469919684560130378782569912278042239582663609251704543746384973772832880247591939463404388360972682017314081380268626453501038863460652145820226579001329704213432942564889656544584514588815414782632817496570890416497105459184591907026806747058065721945431887061065638925217030192077181156118302616992792277705219624116068533524942409363042237015946475797060196977402426696276338709410041608505938743312716064262073574347366835825422192545580349802235878522939519035705943722067222334684120395564935716513059479145895932918407150663453002847479815249714687344355541430257829203759407819723768441237334576196194449158593769516398247529502604572080954797067362982113128831739078567337668531145047812682743299103638670315971417043825391940380204792499098306464905597711940560538445443406390074329169182834337955457272173871991820985253479663992026983698320211398760195280639952690383282308913586789341621830723152198019754746121960346197323153006423190862819563964633499290615820213187242727191230792287186871072503733115497022382025397921965623488406631432456064636082904283644569482178367413102857326673385650612055248117439604074691089728398179020515837662079743026149146527388506974478992428747595671144518974435029922543813718068786467432900032313722139279782353370287058222883260589904344445402032710420159511874348483014621566839704250909387115020294425154805309419619244148395705182486140140418096464959762013624506965180716166465806340067360533523886662519766072371304815632313834723301686907152078737935810628057864566376428780038895339001711319250149442101655521512349502659883562306731282585067883051382198054474026708171923298600104143132736443556127979238413097329920863680967441538392436392695786826339834559406718893433170679515532755821398542321679423213007544941134159626355412592020614341365991751829679698215285467690859235900872005286309996497973555132846787604989666990112903629099590753916440145766679879540920560147696273601193358957139880459547744681184058153973726069477778939291319825287821234197888968076102479860621188806378913777682782406144727965796577161067207694252034624575225718475526430364894312037709666314967294669054767813149446915252418740570282801938941087247662231742462993611045250033293342639611871464564216403462761988028783674682996260389141633606821492057173461302520348553688219612600377726314365882645738161806337699660045468586125694887561318855615124259417885715353626397165977364293598623209390593358283052535723737125039625275271949296719441875660053135290931345257822230418273439072060728404120587587669770855192187649203439587863146889381105343050317950162438649802820246324099360427244228060128728259786886917063259898422356201712357842336010394777848133049440342586052759937014365211057321452630833577579509108833114144494467493173135838359432384695265352690501870040563396041709752329263867673954335287193123315705194291623484198029257274900920858302278154244254847651969834907605496917214607501212070729497232815886908525101405211583471445015750142113837134060073716896109060990966936569967103713107744152704881143003649190551267552616514352049519341095503383940922755345425295132972358475674141788544944064324370362774154234372336148728839735877965080473502185298643956225034698602405814384085490381695512321077997551316803680307277259545667048089353373375863963054310250362423765195900882010810572156013930269441048906354456284630243467789624562547063112174536421453285538117114999920156549418149855203555189229609892360365897252271237407162343063121200142662928991657676768789988612126936845283478138553533508679915025874842249879930790665694811782709400881736125295455158563435213363922207218217270855327006733342300601083610897418926382052191428482883777354631182637712071624982257010936176822743191085382215829589245381237252645146206972130276454989112443107537023555812060405202872523074714549241762742454415183041052715007025204607289631508720181126699494878392413294167364347628797701013579609738937274677621737538648360616831497117409236582483541462288088276130640888660769689711375013030385333053801408480612508856385526178261705799979034760597461420106993237539976694031553348817410540047273901235908527541704428977321932233087766825692998445888093869728835868683630999188963541855599236244262026391529545284273174866449122139710923334384500007444270992834358351308329619145190385981434009709866549957926774697838086155347915803100924021812284146827485342257548124575619753305189999944773430256075448435071355394682152857452466448658972458232250905143372306815827238731510915977626571676071458875224018054461862660348370618018547930313855220781097988526368370632017050009669473150351227788479729799045282358365994807235265567999523935502667743505559321151967075708104169863292300025121510735166521584198364257605307523417471131058962849808237839034221692221461222563459294593908817533310173820006399851017462276516797556766550501256425815559423829790186132984847087484772422246748382408814074229162827396038261645807892998865621766035121794953989988318839820668329195568159351888753577642863541917834695685126163720157236831137892143944878746575579029095142980685183973900774563221429797836427213612442928963379165057375153471408637999288762316176779206955989995863159901888342516982053129285429951614717745259385943688682340273058626674520195087189684562491681150479248301654301837520749854982189968754819663979458045796928117752760171413219114502026079053683192448652297804549821052785732484022816227715380366182559145000745977794660859626455110806176942552714481394810162081340267144895790661740989472388256889361754642444896253763603278434370911326023380957182426044844005698361589971475006037060048476194326014598964859833894689919648250591414371040231423713016514565768848242463295435382197669958012966523559427163207376154823767019363691982014492363041120922527214879233613054103288796255842201936418603428675343773203868887922595553978695032639047341308698857128596929913016058665767870799229896969772819348271363075917589058956432462761950234592690513855784862702725903824905960572113412256472637024361530698355667291244151948450670978146607514826917675345122058044680151515059145953065892007997233979402604522394607610363557131324930570475825090159651353201648583475380695401941813902286499237908250687407884082075107554809935958765178572920438855091263688094875095178327585675224699680452620966356094832083386412367919311896204240842388766973863758360339532726989018329282646289750782428239676051026054420441669185709742005994853820742449710229577460555022783747595450136424650650731805521362258171201124214258718922744071476377229410365437269062878582574042665876217627597607390601376465053257941069190127425966214527786286444832544438030153704165205677599879427448463742998101953698523164852097906076120657828455441684600242955016154341916037859078959207222652370380008489227247577600226705959581934763807378562762015181072439071093353952299108927224904266276716794036042094393119465856198438338609279368543025983732304236357270728655595750649079604965815053438498910442431737772141991896753672077354588838492103281607769945413044523820280448149552135419760472388418691939475979011677888828171654991548408493758598528488025746424949673254328309326575369214818783911420280758501608947123041775141218156280251781766285405274988531382623942607171168652807623482767200549039443665217419748803951126550000313549461699290204335727431957478092464539597705433117032325170052908547083023782348232182507170398198180643986596321142664690867666706169132989512400253311038747949980511307823419801889652603212938641258723970904692113933574396614947694686598161372716010224457403503423781784860527114348533502125886591728933694581797030718972253405751844532962903769243408489564621519729949932004141275155715817647982318711701664017309615473882923672060382306235314308392319201744744693142163343927809057785522200406270831755271965378983388005067197928051015037784150041550742111360846268125500834325420666490784952191373987216045386877011891108351067900590298527936450726909997874736167067029527217394335836486050330094114276809510671100633893782180783287841984501772832301744830988401874111882492436759777732338192752988614158784951588230858565580426779910714023140962411721267517447938908608194660799287787315804460957827489004884609885174543843017649234527190287536685154201241539980670728094659557577926479078299071241952383756066987529176851705160803127482590342516427245136931078130829126454416179596500540762388529178975344765383182994730149170925537262903589993875208808815451466387442738587373277725608761236189782786645903268140691466641527200344400085667867768362924231041837425407773613343306368845436840114809827666697516875691568857863821048669956312916371879234064905812039677282456473527784262494751493594900819155392034290189581090863706084782292614661565671930182789664820179066318285567848759878396256386989347434420334019616221852037005211931815577313624839381485000122548916463681430940276423442763620295860183933062210688370526365202749169107208126174987023763953504155581434955137489310202568930679872990995718420542270632951696748976240967743687218121504579300642116811354240352880715589664194104171025099393483617176981037984642056753789058053194687505950434506317116253910252563125430281540484316441509063662712712190105136009359766787254107787802266309018518348392389438493439506581503814197816144584342834317218639292062905905590449488139921523554083000313738813702297079098953367638623298326811047417288945453430678382635688403244007629035892156632071386624609501243417601261783709413592095603414940052793825563760642624164402831555618316543657063990354665248994383895531285171539565705587870773607271242842164790629845429631797113994665240126428927554788456984975351736258992121741821881938755036116073533885854643699414301871496997315805035243522691335963942607753053014487163872808111067511425988069191398933972299601181155631807763024595886571658340164889180854911621672406369323843399780638614760894926142082224995209558713318493043325731431099174986365667159892769278655652528747420896046197834731011099717356511929658959535884943871370692909124077530918797992797110187976678703777485105357698292040706506351084006226599707109751382227540977436780345433203845743108174627356045692834720831026180149488737920564287192229674104186794065345247896703150561620391663357969096392299651704727452993189379554054897532002133448475993260414007775950532901427529370359352000833203335539499977899334188470194594657212942669044448009639237737748374314502596781755004680320448727204816082352293393605965409713153880696764086246432044171084636102449329858628687948592983433572424606003784536879034690823350703187420244160345980669853526737047118740825384921916681781955860360823167493075420697268816664484037139748537037349555763751868609833348466318914484272270829378790454292970162252884076508845230152507732210021669377226184596023907854802332563270318564320610707019617673945888602776194206961458053900153633029788910342768124645988265239733776317232589395425428547320038071033471121342681590063851721221386207022953028389889223228595901064241932838927978511218495751152948252221468188818456027379939319457155322878358890282901304965099472891316001931771580686068800212531463335955210552026854742817012562820644772409767252932801998060150630535554746616565066836732306074868441603739796867547261217413740348660593689883552705959768670121682131848780989713200005173823148370040195806149534516593574331683446335917754865300541831156369566704549980273832709258225908752747154544498818930926759466051997916696548918532001933551506713958943395524175721841076487485840291977532365044881944593994465813887094591866499772780434664944961969919260141897707102932281009930402507011434333333881577978498707000877872297000759954605827330465763179900888898635990950164639474753479068250460389147674030818752966316176071847560083783166117612992504887990164711631789543714877903765685191437163626993770279242606004889274870572564359471757395808590601916247366202485831102733881174488527774477286401352953750841223619142416504098221484360597070820557100554760350445494495175630964645656368594278149513014836896918814856699796046126739303706712197667935087031465128781949220990944991511172722036692030359559390309608475207348791156775441023548059689717859354838056652838834813108558717484651885376472270162843659283782468867113467499946144412593861336194050689877960840680314439847144112430417648636953801902059640101169259913119125094965141085089767433909901087393070717154590502679884561789988867539838629490457076322148693037609251966058260954386700695046767722003099866811967410112384650242609466781606915435591407858379895382224324658684106059507005080018023900821299836809765980560484374401060546843909130592988692128518273686022895573428028525623764109216975404423107078067270283090668233385889383308740035583872779839504328317934291654434101567144481464556733704556944933906741280628053864053534904356807216066917423190713717563413806276911539323458687486604406357467503987843017880929865414645699823903076353535068195204952194839215398450849719033258908610756776608605153327810300638142145151377249238927609783430660732043849596168865525361594330158178841356928796301292087487275108080928332380908720078973371122657150903108928683179551729687646153165553167148191496800916855434951426283210229544444597214613585900625108671580734829490789959618721973709331620070714596509010863683391349307470155793423066513503528945948314088510282560902226131756001123588294966839427275252135903608927008549426750843015231526939168231674377937331925022157494544810085819502054415839764857618304779030590956384243110899717132761841882809141677189694745496502536425910888598905674994564131034821144143316078509857273019587292256307800636012835367375356654668735541510337140333132716326729406347733324191223488716636400430431421036159446579240902256539485749533176457791016310377695654450884803038045668551410956827049494109758398127641054533627458320059064804119420840778625785207371474669891595106754613180134454300120247941052425465616538062706286743719694655794231454681342929984207501272119861715773692684134828461021627491744286776679432075331966118800920214348871663246980845607163538776668222519665235646055199281824594436538862617815387309004147470378550659490967216398002384714275786476578460106135755209958863322724429442000835848666520835163140020529489206553678178226430827270437845130765134235371803785008849688074157942195714828411975958817106192903703431825158669748851341614348712278511651880118514527603856586460094194437402211783438516155178188831760843733942327786931468622945699521314052297034493448700075798492928244535322787015696312831367355128390161816901635177962376972978121059786630541481336815721871134346549343912045047280435126569141589500651984906991999872181262684019965818280860240191301389453942809216948538906446651316876730456921478607149874952355963711509072012639916558221261557828294055899527910067033895532915355541008553434623627447575803246230440235633810507788836996875200645991363286392087809833990152778252853396470675778365508433499968464085531688154233509420092213946738525045229690464275886957919130392305059214556133758493778880854961214875744982494629719281792570704129719610941661900253548641413749742538862034026109766688121513587185819933647399604299317958958487237177588732969420254892841272302178861315249384721267856589949798475907035349391561337314411965925956479983150204540065333544057099778505826847935646409350921926218501459955895463899146008057927442353632935064673465600240828769807348833100094417777677195727986303201429308017370292822942251352570053198413231156554488893884824822432845938275544468028801808758564861420751715583779714101713149014429249985223735833758938785016098846782846346691567145925465622722743938077693249054112098645357673744368638657385850780633656765063997191360099485411664996068390097652704810604979737915585865076745102593102687059745570967203859460824708136014345794339823873931030701201050479585088406289416972642279078417899908065520584414328004692597716409093405203280206887429540739317326482928873281386181715547766119599166101253386149660107719968799436268376068201170702437071988382317239319840272695662711190715493164424336141914912172506119694776855326516077071411993058303847039699145922997187580625150556250882603668644793819475690474252350250337480691293013149886515722419611390753718485863859826334080046337847417228777461324075251968174515940844643458636900212667483596591298218092685982724725485152013119365212077387682461470205731387024197117520425478894994069235178084247997176465131025799552796724661518831137760995935734912999269498391206237137022277612198004143010117229269088504584011591680827788061296560080604742969365761554819401839580270570941427044522105312025971485750432338172117509878631640051531009047428942828407600552013670954214998731350788853755585286079845344169602108007292863636218820730408055960745479760946721039129406164176537913516346924747284049498543987410359874291331986429153428872848684991361037848126533017867647890634292995608879214498927667390378331812107341287465757799813124762769915249969080464847000945427192513056931371858338932910117675674679274245731218486097003486665032861472286632750626914876918303612300482415952509373039308073782051467528402596389758473955650186450141781551650935700021228772849730999337670066291184070057993214111293605727048046972163224346189902850738393264165108043372337881112443775635629036911406519199056817627804489548627943493320138042943654470968599211099775358379100779241131291979558446103086712908941325233676340096864083531458970299442956248936715538825406049492109568223625756485189013427571915578037842125673692849038561693220624743077202262727792954816001678347594114741619922727498473218814145640100735443459457546803981922291926417455127808040458808755112845342203597352983670847973493000218779923476134093922590302848832744285107453348286252055094099803880540667257124567285915550094871894023489766658296062959878186974783712871491622028127535478988780865651688463817997090277453468713740055346198071190420726844720444579720360671547872652103599818992329671347892825661690648700807162910899944559054950426908765823387589398593606323136320090948664331361062013284270579373389148876015020604617453450745748362395203019313721405244759507539266331572557822281576728965514874273793977175685684026320048979831099969673851548484829805749239161507408850494385265189113088068078753764906972909856002765956249895794606941251923878778449036603112278624839950675684239333583078677155891718918656570692844028412552486553261643076019469539252833909335584631776456581407907390823893559440917154938990708693436673628882766785638682130310820188624342521665429135739981818698116923577529791280013026426383539550790063354152082356360743758331426422514324029321416661002804427911961691669792360697428510813134310203575486927316011137597909296591096723188487377028096544667299667011222492645263399543396328665994052492021891865711327632044575622992300853664116507016671238578562436384237263664231308051418811601861441340984585703232432920700721326802926178283068665496867095788214737359480259616694257658770235772498562051090401145584626247537991698094201684240839067310919343963944104497845469922047475665800492501835271518350427348508450497440940497343589971798017597157439245852046275486322008678823202148610589009588642047766498676381393292616829994007295012363053561358445913731334827450229883585719462145135944142103058730975603113337302040977506343516985286180994273492416990373144907059047669014301285387154180576739074391043899586204226602155361731209567213625777693452521818282471914890850091401674559936627771688614284754316081316142227650307622274776714377570439883701304952562716914966483618524433092382523577064156399023790544159760196303852934360925525214626733568356672152256966159932729521990689158340378907766865335523032617435498604832592116707168158053005053015266678237488090209622493019277688359306707471422197492002326925595364823222698479142125975408514543762550001467477539398188839170550459347752386790743335929570884086387840158154724491442207757947358470803610568964381650631039129159837983532779488061783401179397502972363750326470657701232459459622873421690741141388805522629194203520505773724777261772770632669006115494262212094531384306127424525581106401609132343247328617185165683202317825400196622637368191209369112969744254166818141389403440623538035656058054904621328955427542727658828114993692484133367932064946975793807448424042905506490512920548287256891108359403041986909906524912037829517434488422521810149598418276074912704552215893197645631001660621702861633916896215041522956988711876257005239525673087029444788375790107613633114089829276173563283586312138480730540416053229059850325813810299485298731002407828151070173841991949484835217764888539840178612695634903800463388834239410390069320527690804365866222500675718297308956387631819017454447459004537180479852584998274426895058161491733426606141322795520026759681007321335774668201212885644009270843401259010157721336494526471477131155381366599655779959310793145593168882515973667024050843362938669425131011027313986843197238986705717044407036199673298064811186923478676211726635508527459691164982893534580306364342618384791070718812101518577454710528697080716355539320427794166477033467388705308815993526275813308803911635337486166524746584204912078526164104036389342232716589281548251800251869491146691299267900531114618433377205888058167587636505726663181368328162625906094585824103191480127547933336324918433301025500822771075973059640236397279397496078328426761153302726283328560455534821925304188656371340035693146837819362955466243663600111544369308846088297126279336108806217711274387089738979546896977618366171714397445644732769866466716065406197781429411750607667327415819239619020956241270773734472066756576694103691592190099801662257166457629866325116263650423802436327179154480360710666804321424865953812875037916706554704413784677357632688553908516589245947477039203597855234524074218965088459291028405015831034395832792896370993693780597028282972321318345738653751187731052354005023775572505574305824522888804238661841432295554582106395476802264948074804996683503593761949905552748819817295926872855399575324850769647988393985945473178444300032215152072820093781502835365344943331298812848663384729657850587176847458051518111474510576069800526375433392423226079651835676549839748637309888688833948841651583147016878101492314063134063934509531064044347106047269637803413868275972029653709192854598104272198832358340515958453768081981685002002058962531968194106700904997687064809450256170371644407341065236076375199638299136518303749931815193368873937427664642336196651875867253330678416852548501824555901539449218762826684838543142004881206652856830521378788334411286320761791787708107152620391507409490211499030057746366805373138751247269296411952894993734819219734152400528700438139920265615663882184124348462746371870674400317590119899285444782685356392182197021402440825745626822897201550605663523246039776809310104012351632039077184775302361089510853944499316455256526268636962252592978726556540403263429857874187796035062057094053956392225704493339073609292270611022494795603633984810899197621578523529726501654248642735621642177693073075611578114575770644466746694499942004869194878201984198933614679918590428205768672147865846286553319581305728215003395342753406739214805018195529863692820369693451861978915315445609467777291963098609694132727046063191399624853540093156410959899116810402311037205925392306047988068199241051915208478939798319261398883154420034123864248604658945843233089002154289902690411226828387543497560263712795682245018208243159460276615639347898307934254010518005136615217059162514094268233855987597055894759517310068924049784218902513191495558230157948432628936650841221585101476160620512374076655848728890597460639154375432122114981762370039754083389498094779270917137845787245654998404066482192974465472282542283540189674614151982546389261248556953504842948123714997758413897804533414646283234546360743332839890870784027374635347590753410453196590969060008758885188453120771353452909570842893504047611581458754206928119904273396173600646092096226923557980033870385438875481216243426797090819670723611245732256111303408969298658609349382497759040723178214706417687961064496569244023420634454857323945400006422204178916875844961575211510816618762239059500095147002671715903117579230302770403043363106129551207759191120798508174907273634683952539037666978747826435349373840193328273137559554210469683914967419310836401929260650044568294067142156413087660429757614522167472833280392797318774548598559957435807772308603831660516917030785902571346821290789609419934141602355704969544451161877354083489879011321596044900355437846083967296170252191282846196023569969246905877092432841726453109162237211828193462434852044751450514670632856919476862580078097134577210999794203612224003725683722883345273202937525017136864188296519488030461450166663907159824808416980270668740019315680983247054014980723653893166910836248712204523668877439646981906888299418101997672485872060142391646485263766255572544669150606449313754019476789724880574851177151936672861125648643766383041775877626010067397857591874723123893648738809479576332225927307454889824174082418500750788295929031839075545209532271636030441131756583566288531375019483347531182355186021243620209071222657391758620386235735825417501776031977708519069596738916122670339439197484466090127065568056175814803412952457377693562409119745473086480431575071013209685061016101454494619480128110213458807677735488285805629594107167742523529169618353277970270952726411623563232219888811329156083388034969717689804239628748311638122517295989217667819575913356482950459395220791174251768120609681413287412896061213402907363861630083011227887625943085508265559202947603632390964310066481555476270464892060321463668707483516052348107998085133966433779833645265497202096356984305698969889773173223285652709392245591484910047250144427286241332892543012961129555464926247897955126645224948752151241622692941639875259933323498612604843145030975837348558024351884915327721017470997992731183525212233611749659892755005730365907099844989672449143848418347099669194924782945657882494811059985395686633702387388402695161633166149414555478957194362607949580331556263501227221573288994212445010711619539244757676801256515613141403320214693877197124320614143529247944306659887673304673370924081738739832436317748344399363608112173073844417931391843638728087950318133932760426684313209418137804342253101081232989856575847646372360666276048320733388410698149210774421544077580814820195571117007587358293200479019190809297897579425469415925357350728513713108296892068406601538514623548336655150617445262866730935420612445192063573940190578092880610103074482738753254514009244633994670372118510774779008787273534919019041875602821213295988545336675805541083631365748029552583588105383293978671407860722231299265243152443804808686062728016458251048518832433641847445206405561865815797992958455489208142069234866749248363376082820843241828871635607192096783580825825381422678782204211700326423170176999375789393050266195519580539430390972877036622832764336257245801523857902829604398445781325855856104797426954739887691029509725193911712876929417213433579987901887148019772660902743937309179455573228222820582155790634698355420537652133840385805995727947697152452244354663133582994226899518788504619584476037862805253236513528975128943110341454376327413558910173511090323166807286160439962526271597872567624678444125129667375486113884386253286484351613067745508219116515637379487314996341636717222356205475216553638560192833708691508400838142303254513755908541208703381663509762653333196095264969937234895685303776345172868656328784287262399178158585882817789366094509266408778894449058973862796263571887702025595692320839762810326404861700666141440523791157349795186643842728721964819581648605937733640100721032142801389333770683746723903759214540336891984589113602398162753818333043860252511508629845034242401251318917713820678202152606519952989203912116705778531808956512818290193967282988822034798364341878645826179845573571424648152412332394835207395110668934607855515310329773501271949641020757470929922537260819683595237620713435497658377511292266156785991525052354252444891557620260439293493102661192865418579482591155589149776737931687182678465482721596496456392835174684169957011453175024757472233557208125524097641330783362438394841288202669144959924760837089603755762638125391985924778866037375197493350406770062560148016081113171179158433475728689519901071456510456078050350016887595523209472913414886056570437249223465755471832813343045358153975280549560658819239113381757583240315903713864131351599756782188208749629220772826561797835169063816541637393743229627298059460083301418769992437325586977295098060407505256050120616242567207811080151022493485130861618092995193400265530853397646851840238203871442565072632734982935871170988004365868804726780606105052618524738457437247473929922452469241011867005734492056384270569725510582126885864937552189249585182806527706321227392120852441762131722607764039072827810283023570374556536333048408869622099371809902063368171884981088073504334255800355440804159234521463775821203369370481248847506673669836769109059879938918640775068376557825635480354930127167702078637360045114890304954953995591191891715944295467708938717145957600177679033130746171332114628304107899681867467700139182049887692534954173587908165680878903467025756382919633411579115715442790446438100180010153496978617220693933871711994529774915013874295380416559996328194792747843839675331316932594175204596560858437190176568851314067292421935931948955101201913678258071946077402787461113782004196917723964358816343348884058944646375493391768332674301978182935773731081077640048888522920710734259181663891993955708700455324149258718638064642334256481683585569028496478319928770492027765868514813670251572791450433783897668754796056125710744480010776319682565930912044137782748203895248341823647620698076405929117329602345584105340472365944726759459353060647737874303291809058315978469120313963266694319166425317909360324227949434306204524279346247578600472637716387377519873759497653575146615682622932576551725632468621395872853498316374203800700348544284944489401203992585980380168761651016273024763023667940129528038062754750742580607890889778140170592066900612914385940653765532828942654004719432824515939234590303088546826849354457773482148661709940430138472847925964321216497198918764931978704748197919360780045852246223289625350835395074932088850215584558631320608085618447220830890404497983957247530594674488680582791525018395848724573049358737392763709894785178764742584898104339394681240327663013351954262861897560722254128823955732048316718983658767132367762272414701458017932000694736396057107394314259930957444222251840156445429938565956911293767933479310615491301129813586872502769202609094039891302514928772196311262334774180812941571477346677244118933530859151228750856029734852178152415788298530396599331331897340287120828878532729354983393692941467789135050335603196421618647313948892390072730995797021575607803109401412267944875291743423354759506918549504410771989679054910859678664233399709984274664254742689564342896191192140488331411945898452084234183302159688060167894002264295412933175225508066054075491600551223035564418984455576170959768101683751017991583928828288240503334004768743512729292812056130268791116171668876473622679638828644965506791386212733479646998133704740764014255251843243117400857984528572764800513744836958074973033112620123378629583256782041770068503107667549483706788901230408239221446303660691863013878240140466137762981379254594569840150428401832351339236633042400292704567809714354134557008153309455369622212831686485999725568044820899725633857896385758692182512737534066349706833251825171064971721470376595509104230163242083901924467138683356144650848919038680144563302392083044257120662779232214572735628982989875363976512337572444784454707283894225681931919119165295063826821472603478222009899034906304648032710867539574943375923921942461803777372234946411040445681663157478873955397929317743747535168808327208115401362687283361130541594870540990946284303081591323530205890047810704674086827589769540847008029917213199675734802804359453302077144261794854208978745573524044943017821860744866249425997035910495702810642224279185263099525364150290834809501652881655234079174944986312248616843989372340421958701678548031248225847398949671517370053196338429281803562154224333833191657538015981801468117587090710262526389717834620387835357746432807437743362881040516181966232088289468258560586714056498724218408594606056241760981053446051726677797488886531257983240678535481069600975876186836865800247350724516929159418049108177502416473029669059439765427927692172768961455289617870992862317792044980245552923888281206335955042033042448824846921967884307121097071678346407660578607250134267181475280079368878567398699267145840918029405135296389919418274568054120370321061413381451435741143920856100946189229926348150582642011364258466126197573745972180266347489251059978358922420558347099235055046996304003050955120923627483742959620945277815712483802692423949951986240508989073729628561864032633437897882577693938789530565594429936291134461979691077039295109309209098167875758941438762033470861470826330360480184995104605006988433179309218756099997264428085930226407892083335705023806929043736405788920390076666961075994176489159190260447149797962679936526936756049044712371276895038556894952529990556109182419491145571609605496346509789954964343106659114866919865763877494613272978269877595075993118231863167309788063799005111769788323245190993564379972620308581974457260465730427767668861348700929383537656730065917901629109889076185840388387510675025393389030716096179629455992531380565544376870426996023681777258602694261168371848527484035347503329613445382326223809478589821169702952447660434760058612800602399706771629470101094359224697850768443431411716769581950291669166561511008525682254556545540792060392080739718411009368573452413181564191844646378353835425393958888026434664373079437267709620705766523789636350749429788214486027241199031925368151048277243796620273783063005600409291683469268769490093176163894674602136849774903900713721613199742677946437781884181166915076524425912437870350478294029125092030201390776672507355268312453595688679119036149093566534021511565492799494046871600108036578842543805277115276015136125513563125796824019797401183793341040060854730785897548704965955281656484647712782120434020215964037882907117098112075246972198844250401884638535036787673103663176576210230975359270618975496508980522241826987668539972661880898264625549321398310041162601184515776450968328077724327272873052068204945155872509178007444019197641735207638253076366650899872979103784334412281077601147533962808550758754881341333547229125753647185973786465574034214943475900840058318686935109549633514451124562650893201732582267974942825941268884199693951357035140606649133136265695709335699953391565321214444778426262215095113324391229162094888325552995355649353753543131621629575201644982584712808125659664002566380664613685213790557430136884269595922397480693341132107017118049511616696021441336641021824444742248607284544974542344352246719004021588979449216637979120071236733660967120363141503419189931233577943508517866268171417412762519325828365516355603318655045356307593602386035238066272251002139815519751768568790127976432031604033415833096540328414561962609792591985245652564297328699465090314623040111054635354727237203865546577889368716493049987011492726443690625005975819194456480980856813773370951125372221419353689190489934844682937679518321980630116843293933731695993684060879975189105275941608233785661200583667696016582655818431907576195350996303787129787261094797008268676499006597684929632013507426502845088884962699516474413659784228559410050200947385056911214748942837279929566754240474712517712325564413526709979347895956037195408839800521092299664733757582440790882457581954525976094688009974134810601085080572621561619776363600014305543217640900945312991242302112302181157923496238481734628217790210628092714938671959401945671470929036059113044835057399540796748085216532815240327654870487698462590989645401955267548386956722240682239598915085695209659238489849326334287252180011850248574762161364385337719147808840615533845147388654014811176408048763112319191802231328325397093488009768137860804045464199215869381751839568818628076148549185771166766241208128025699045051823141684482218873795271251245889319938868794410282913453907408909705551073475079191543959186026301415798064763347250634546635451807055703743906573212091328970256215630093934727341781654991769881889297716056690795997025484779644911038006794109740153625175093716755069659355348543603975478018734567554628254163304979214730110921825932004650634366922789926562741449235504880133278382321437718783702091803523121085031295754837932978868823936262376139258069958360414773291924411498550995925361544936960681419154429455817360065199944588768765975548013158738334333668109451544319098003921466145104994073592184139275813302352763798164036234008058873665981078933674362067413600965427127630914306393129232353453213131858831197451553146804654185821121550877710750650998732914298543545847654253056891480790398253347436046874684040092627478122075616728545646950334062110123993821145121145355877617444588075778849547622002391077856188243869237420589438650326945767322040684775203760040269220658638274070383102277552735133222721259517656943707384931955975766487020449910485549235677196265296381795316970600430970740433025924222340161723625663193456544459743087107137607279966734240932764837912937247268712363353503423016079959759362472457137345958476179096894109516551853575925690802400638315078176685524733156293964920729209366238136635375239724758118041933750209368090042948015633959630406962428383308019496760590086101117153116369724194763302829463421426661317458092798220170481744515970605385775614501741169153815798641722226917740466197018101237420490023519185048553313202929778314419001186014336763211322275968445119456148856688846359156904522381818176463095528152549031112243957834413466291622117537589242715277670295416004725262467588509467081525588311695235379946590624527825844736104989771115477988839138772193866895608223741818592266537793031858722744662033590706209751255720380953167966596209843636450131254584928736850696192502808923926620051838023541257001123992013706338361524041487690137908024861657207730811583209700209865795466181575954401753905881299139038279853103496334762479469868089689857062475718433679537437206075629368209263983205868890603649431425208183081841683255106810194884696904677027870348252049747168981353407897834727271763921533070538050989138526477610334683186724401816817284780675936486606386048751639247618471943211263078705143247588430285177099861273295097466105506555365725772554658671087411583896651248643343394398607834735836206620827396250193165075023995113834423209715422065325032642011171937630391332368495586064202806774002511733199097898752540710752061250931883267987145100905760571751407168490702064295597446030551422206940452992522464135506020754408975679373790528277032893919476326895651796586212118710395494284862089795729351262993329668928476850132864494196557833071275338641183105748974748426465449237119606037896911863917589301625553967549423443657950682412083304394055549847662329849754739607731706239245774255480883908713993607734238384079551451492084627255816712992194335406977055364382555045914731386840174822514969239617816085233089203282349461119489936307664413862477461652217104400138411781230466962687385440425360176055044781111676127321443426829069611924124427580673118632755962578664854954509900334288951030547631342508301688398754328482061360122516567182102173840558999907587672584377808943934903387448927938633235767234602909655520026736717964188391520528934210990145182624872182294364832123630161090948666925110356893863538168223331231237992903561264847478767243856443524030587031284431461035183371585231365717523631904127754618826363747542686614785826498487528929198494080282281539389418812998353892191127494265124382007432174086546017844181257572093501592011803184465342579302422453876727233834788650750840276132901767522319396340030981428476504128553402642330758835006057867794688346129929383686017794487233283529504767090867289729809827708743363085944345626340378002422427193675429600563225933476913684989276810887721980903652323067502744738506458249743995888912082366510903593168915944787441634491719150224230403736578103856565786107084319272786347652157149421710095915752274491005267835334244371009974831822636113760521631853945641804356132367058279752198195200609752722317018369193492906398110397819687517965041385934089194364343604319011608066289848673754057901199657305965193845022748418677392162545262069147584653015305879427353644302390666687293218128703648219709079237182204707006454124041919879103033498956638351545540896972552521538656733165528575577210026730735482199988362960859075700620469493186366280570537947490889197753155664796917796226958331019689141692030621264393737722316643149347526646488574255923459491331183460402272627058114404489636001203545720982101251933751599206866718604613476766247670506216488475351342769940809501577615208309392963362494087463905544909811241721752091276334054069470177086426369420921761397518384474663851338578678375993012378919546525324418450545319443898531600244704858422606883526146719154448365218820480401836236514258551673369738774077497663212679451197881821315250271478646815993782038929464957450458222641087800126308519469161703137307871992434032950776973332230077107546220055393988818695604798340753145084269212276509676312283309756175378132244441694682992789850832529304888764510713938115194890087586984246497848891377338757916644213414027346628356325388849466333001033537391683144305324290050760226755596388322909721453563535212287512371215759225162294576098665336229034946804150393730108335805530255895347543741039367362317747878541007373855405187405482545043069096957171174862630934076114872303228035347181681547066307353926833738576882153625941453389552251958148703917762786155590632516663847503067118500385377199368605613832887147333500267312310134433322614915489861805897878915439510265676757765178632590637141605329952891214648285894654341429107770686699241759363154620724902628398168743281945458758531791676009176819627820998009011997130182942679815217211061899748720333259727541748868241151153417366358576024999880823715379963591608815115272528468441092688738033896382131143461960932333411483833872640637112556089202863192033072431098602879668953478356624531503246063119587549962103809243832059783154724145751731855506962006173730266395043301432908944785182539469745127819093325994781256122822447256053065768765234384404920876412932544528640199894445785043820028147595837092018485009357342192185961402336272171036070271964149543764251715044348087611221133346392974393134499972669944896171975569628283085287160213158395783928460612719341640252125565117618730282255702863854536195682236619907871675223363192984919295928694853186416162408901971894026383355698117186525668957509857190647256130722765000388274222966694113620761951744398790856883438749416394561071111769111071831697837554882989091379270653080385967946487488574200729810627637042400357100039788789079391332574107624028915958503146105348504933061748946420306894254553704436135527898095673468029967405694029648945051851423073188713212297830726188616285872788909268693522959732938180419051104948462914106741681695351852933519057983275588148476217465059406183846452861955304152065761449953107194436231972744734554106070818760658299174877668798299328202099319153752299451342009579076489240059794770881566977497111621902528911346246390352761559110012892707139886844110903465831424973585434936082882419838701735399761589990112216305692549467759809513120006733068012617737707343279282707533068057010531712476017342180823976073469335272072293198232632339825903381854268980288836003902763841176064127960732485794590957803254934439990970371728408043332843450892448639545380185383095316024929372547936059051458584394907569143989713236672797400449756963281970690682353462624094293025124541141999286980350359653601230685216162395446340809224861689789077522032087732089487834143558465370075523988767806586804098582979694213683095472454875624259073237638003619844606358293494035454441883525099735135284425316085396626420519536630948978203238637405635340352877823736045847097572614301506345573793774933928626222108530010979863301217967748560590722557142959849941239427658726493370693804814910419023351461067454359249480987357029076365463496424460017397551389937420392382830794609619993715027842034443989641083762701797759004821965322547759976744242491946973033166674478145162401623523498460278380086052305164600138930856606290060631105445809795783813659932742747926653317655960258660520349343403762111400633855123335923935240118162752522345707309542341704339561970923597645605075016093285660308741775018795940806505539386701692529367112030018366032504128304803430535836254303375852232111484513044484233730540779696333216109956341725145757606053799907171944427013569719200579791249634799048307756318463988206815879222773617698371989454451229915949326002443093195229616241152213116520637837908109466651138633959322736252695119026614593234143417597575654342496743802515740380940014582631078388429202451755530877281362691526451277247728002960987875782333856679430527902624108494455703794896396355181899515743267368311637172381511907810084970409157571206208902221000517974717764628083226205996276221480198844589349378763032695508408266900982146922778172646013966659908946875301628937600964053161387785237594785004117334655603903400768370284626544685156281901801686694762829851240563277409070038333331131237458159770901533862131486798164437211696625231333412086582977712121023347839414689835417027395820120925878518620393366730711080510876822526016361168833710812790543520590686368092458323220407504241039850621451027762722465481079017480299706521814887469018492806549961300431128728639483328192757232117749766243730917887170812211997539402973366247024708334087963482386633636410507206831112472140452658903126749022861156187752429021278296926704558577362292568812992800087660487104457813792965047481665477369958644515897480898126636278281770051332976675027232900387893726734239312146365952592013972866152876399861593884945606342645682898435132192311257486137345962535457250976433550204158967370448704923566234551198495913091987726407134382565532235819898477931932662576374237789046328296301854846328796293888226273823313392179997358301504981872483120120879470973976942761122014289788308722740581166968187585394006197716418711974452252080756597549070563540486384016518987213935795958275168521351366570750037964017293124377030380625731354947808185231776735026769304041395918036788850234718909934830978341103974132487537587536948299324585081068037917770601315639777318869976074431044878121830809377334776949196382832344778087253564056992672241448556192635002713947513796850247493192393706175384324471864920282442581273134238136398341992788249309015296734710473377465384519450425916608094186808787173310298317658035709637985168317968205991140665383179996911304355732437456258688036129863178983207387001400041341468361924876339087886965660373125561349123632446872779412927858151933524281601125739735305420130865035846237944467663643355886718863228893996503144541030846860020833540832987157356320175930456569482690443535998895347453127823999331443259121277832908328015958833242283056896079688054430308432013638908244390989131949573380478661660533088011153343476275523574272759667393365398239390622611216051896464303155833818576791477833777087400090331493750693310057417665714444854737294426841903130543127873887392070505905118148624545924633164642874278113716831877536603516668925774141901160708002419822147903237031395547314907973954451427238550767036166189769930468098361687920957037160060862995502243205806832487751451445334120766737574627407982405148259975705535434546646255860258977026035984494510383188374062152761978158525078361471129077200527634214791329831974622430282185616319643952758890699153259647915157704274420125017969881501209716910287339157730119027039353382009287516360761281679211584061084968794444198306815028918512869304206294966892400173003331545593599888649116211199615820214792416777669714718921681965556960044714110475638042265342363631505257048579446095355717503545857013625814741834444615659458864514364235351743399909850588114785758686243053901115784183730728656845453734552681550543132381558140335304893650824882750658689873670000442806536485364588337150135745310512644892805516546474874003360009861449446420697076697448792886402312319230049271797143413359335370734602460907060729966790144540034159137315171286273113231035913893015028714457105924595418191878098659662059814568743543617312483138014811840327051020350487230547332167084255723220197563280373163140495921119201773119366244705722148525441997739660435775999854553711207927089642023937988143203701209442713259608937108078214483598159619741663309424549837743890803791900947196833535095526334626925039177293225654879680181815273692204885446054981133262425130832053882404187083939083287488447452900274775128236849497404413315953013361754381352198727146036614521280396672562077977631535040285118334790028340684382092370708142016549120371009265118200812533943484745702088675757959700621045667587044201259121568110285326746463794749847234778714790032351104971169960522104118903249396129387292824045381188292306483177432000763516141134461531708156274649628762004109806035557074507964242532630784393592311349042096259919373357858902055033659125727290671642142652949068493482705066822346430463177005043426458271930571534423945436166492860961776433040677652365545642826231054342189792948701194994498123754021553687305918166908334510630535282387121594144186055682295319470674604046194365456268170380062002722404275495125537467225486001388897838939876677058783607148756222040204814237666519116952771432215980860751337325816397813600371550803287603849691338487426399987670987246743670381869875764967185312926275966983495173205061591761658158901283843963412434068475958685358864837983705472929129390319690068629924377339319293608887848758692192926155731481227894234912886451116245224575461288472329671626894916354633212475567855634093163417338579149401786447497682746744898360504168980245175925549478395899092276833621297902153484560108646150874296019544767128004092085996251818303114896036123055908706375629113371399035294425428791933122538693842522304774292839985463596795313506137345037640934865438555915105054695176587411300462088035238541447079685635516176960574636792235817933906277997415115562006413393661291283062076004409249150168783251849080436336909427658530791411097410906225014386401840443325063149592585905269686550448738965708647057765432056149742403838319927915319729572012580307583228093934496651923146428505807400485503165739855749053993317607040348792051852886025327650427648888311493016343414005730515990357688931002002017687694681998761243607920656136031186492560594631364424700902873485364771548412169842410318517524858213652285652825771788067981501765337358642239077743017885821538539893729226571795075865171535353645862626485049145549713534340161650961881323037275231510967730403256991277938234705416856048571720042568567201206494839329989765873385667312988961768725605083027308963148453586516449351113899327123415881869321068534759327679034924628179235991718131607343107002206422338477647447624220510958541385653286446018732063108648862168243245765286945083557401387054851200501562759282647279734614808347875091763918164906498469484404745408287608631554070792917040035752133410486328580855706249674865564650115992988966305640680941666964368815904331913891407543935724446825602889763947777922554522506656823785773955943998125784710858878052464517520870033821771013617210879551279067937048148684798765010202729332588824427156323813107087981947766253411940892509309124455607859902729568901299790173817513140291335028609021436939865813270714562386494279338536843591353848294024554107627085400745958279616255036400309535751780093481552573063912666282083917107744400347847049541302065488208728840518254019409436822740538118443646082797302051656937786174716846701934775218239957745782959409334029573620039318941232211079825421602721514368919320907116182640975504779430958437556972362009484226025619673593699724694445601396906077529643269464616882406083673040924515641209719050787447963535587169781122857943966171762236095257128301523104906755598263174202175268526062306928518726303293422919511457241598772587601670887565967801418950081687380604723132682811652586864291057492833399087058855658586661280689461468255323403668737107510275998630151329956702690105216995824875472896760956195379952280020336729067329793876827850945833937809990139410104294321089256306274042093844439430718085747075973510873033685483393388303963741952552368949691930864366049443093757183283527626546644986054888579358817325079505717518320966430391892304318954334056498743828422236596686951775031011107887958474807037400356251037762684764121255908014451268132065871769429654543212752922294136594065737876448393142725992272599064027113606689371658248922022404360887034288956499344590224034747578238495594559258671770501336076458069885036752869173113116827018018084631592177710300382775944080702800077784529574693401572894110077750354537526331074646065277165319846874761901582773077235134713825649761027879369122956927149063077182866483211720397342289108903421865573693321334807175998943223770015278147173189286976430106788265663114225743853147586855798287062226849957798020936361583284009899753951182906147584244421162588406975499506955889785895882153520397050142704929643295380983771588925797274777561532808098805816708910710208383739446324262566574529901392501667210061732818713435069060294448503229287980982132712745984706978374918932252174538443314908706942720793281496449736847139942627155410084370105903130034012055488834992274937599348811905156866381793852547768752441198978531820182210506891784019201404074213500944490996816297666490242073425356831377995402888176593592907933242281154279752358525505440041570083517467834674909826289229172765306665189098697213470494546710479156200125465851774877877711215806259169837333295004874702482686380160174186981827579555398926321581593603533091431508382794453658100915159069049204239099885353738841282527239293801019946180123426536084130678108928892599523026674356563694264737794905070274928734241236021898726533512903716044099323325736683673065701509583549848142523800304228588576511772550591191861565550122100257357129024317482641660446194343239524455788443195304958032812607136095140987890113899780716916130663065712168969901840877807119818838797852001618310395390251575072089684839770593544090466066460815029118559944736338006352765701796374166370615212811755403919260332182678797641357705486451484758172833131616986233363046943745155007262251485029109410583560575605745804187047664598292505091202282010650548368457204936614893310675127495360353024004239143846535158236392810285199550993549572849095378218563012195531231043460695691804871728526660576079152295980015046382127160690727947408526811142838884125955823148621316120277452271576566339729919022889862228115914478075998879770448086204325631247623828631189352732530301211641320710146794074788059457948987925743058589266722577738854184537095233729382689844324048230171097444999002688273110458925015824303848730092818790340994370702407327004656016382500268406557320248065399409955391002017337086870083407644684571696345101619559196887801879873015542387619564741919663821571927508346345292152974950886154468151489537193091027737373933036516776536563658427424427984100366045091988376393530365117775996702655632778823595549042571177171349723273275752591845858411486514283354849225308453453330536296630172917499724841465290534131896511041723248742478523026660528544802401667946025532162323824054063312029246335108357886144603435822732802033434746890364733217745184615902893580193925661381639042754735280693993074504032116459681221397446768444224908146530817251754318652339526639706567615412905187418628254062512378361548412715015750637696021736535091223134998465854071257939146259740975441626569170778732880235604616270902074481774946909147222967510664958931392173344459802075344204202251946649904151828345276043361266701328963304737396762528207384543528417206316475769488493794662487446019922698624978707041592362400720242801664512980957521722064612106350771952613163687923280178842036590895290848181778768589389559986502928392713054727330062578840311708107283004291694839038783774208384367126650470439029152271444365394459769111219743787143356084801195494634226135707997124901829011486046931279828571688247276458174997551393141512312564022106941758473176541058591051310738334642599520115517481208076652282983370684754707962514230804155565554915595114117646663176787226212989697481768883118334360638653191863555790769525895723339852918585379861553205046203582219950425217735524824135613832518747635939200329938085111509806817253997032521889836748689123229885229602174808969182896832120915341739140113185604256378240778768077521413945640025429909564836551662856946019700156621690168902794597427152124418983719075314834592953857903233264291853755249324375204105659517064322116177524164869517288171218650191584916461289824339783915250989706618790647983322702413774547521017175416144835439656788820723296707041502451125572331529022842600743623427209079947610914723570199217925744088811734933169950981513577616268365938616941502593495242275453362641282131644276806609625986921529510048831146314174304271650659816562719594072598405330886445085598601501984775518268378964669772022235276253726130963802271127493863029625098610455798985532957201531829756637550148386423463950402342224359693888702120999469007778087640776077120123793630577695708896590677633711790956918107609113733999852836434114511869609360038952765706331830621347648307983947329241244389498862295427414103306312625679597781439342796281515019950261729249748811161540912710071186283609547175902775132190851082278284982500557993581230689322780316890600792487609001803108253673656972991961033570201514034779832002972025265061019452577954190526988573824812158660786945261547568722497897156245409767587407138139580549112204926389869056995175177305323463016932247383215279579988791935276090892003769152778382537043619827189985211946983061496406714867664955388866032502240305716557481012663169194732575272954097046972087901170191006890269222389655073357456995561936718643006477960314331012557871635862558252037721562091053082005440944433456461964637445788652394459961149276665256983581111101440587386444246563197396233733657515338965040887661629965907798316482439019598521543076644662911810614572824750641091434504309537918728703071749553515327368809301612027348160051543318686968410025854726503927181344002791555349752317247571514942904893232210019685077175699749001492111906972489846462107614663596028330966606145007198479883292487407026450513489166163922573851705999268795591535437381992744176844899610314808937027368089597761781032363570933202523093009388018131101797258182902340758357751080490031425862789349294214130165965666357426718383271056965502291246145864200223609932650345099288291537398075302053160448046728829200738988322710128087970506556215587690170598812965389331677819188505904336516476739509439814734186323732159730266621964566755653694791385460590861926384870715517344221831655639171499235867174206388237227892095668563342253224406892847798381782265599667677969478158761973319680304267516553568744812495934174733167115772638815663494159205427782508798593584268279089041764539981518197925800009990406773134996738942457547347561484064562076131622424096319464883232529217859581693058521215750236000515715871128848017369626161115640502707837669770837097100660083010878327901438369476954693693646141527202171355831401852705164583459793495638456885513973871408862918656692178292663624780231203409564951673145497760068698691074910074375686981302076998511550883767177777928555171481365900601178749626598998638817576428673707283727277941258507223379567030626451506930028612891771679399414903095308939102713525658219837435296127906116460077512197613426829431107499179432982868779981361549061342756821973228173752199374810929136499166265196038465867874830765894402117555068678561039625222338694490970323224769450596519499906836059766148349426652615344910930610008513226359636613122164133217610935944990138042302493185432059436378354705197026821980934871044889894246255357545434105251696637746134363019360737030840936505849469158239966427285363579110410023287760655259176719878754985574015771155274682795832290923663211678690761603422782135382263327339905770405561041325946635614970639267158324199626368996021289415400833500576571285497646112247346338736425262154037143381415904458663040938998107167932667550051499254343565275105396075795854843402500091308782999502110639715176060123689376786574745925365133932988476175410724520668364983401868837009157348581665695733430986749161089798457281754392654495210140708192393875538603989977897112654360128205019085286298096953501153061973021967981162987599040730297625541057074841658714912285391557511534678108108354985742456239481115805735000520655314281436085248596351971437606400056504742073985718999182663025565687313753071281020248898137926678422523555595081345595577995855578431767410937747930732690307260561696562599355412946715089012243530709763085610665448412085128120697974375527227925011151385500249307418428195645452893227572073759763850113263728379805796353179342806104601172978790063131465878658790818116063383612655897709617396175858159665509767089274821599362790163138861430654179338125768441389739869227761893910560108417577387056022938128735279755884747098117368606902609710764133001733761612595399149893438538936131239661012363723963092460253016925712192457092156316967248594755378560590398402469054318892875232662253177545724070568170813759618729372676308307303828551277657542698419555912403580075374279096001962027950124651922738383384693138508661062827651032024753388058016184010112306312161021314055875867744338175354095251460555887160560145977116793787103257427936398503828973505312835975832517179545476513947719986245179074901960649687021943926286064704160008300597475459432362918881324721556589523876371319885984254629939107411010167573180332807523169804770033984566936679457708679819089287997886247259345553036676229120156507681828539689065866389848802322829121643463249319449794889165517798345562164802122302181409386014104571516695737487104445867016587144963342156247998034150726342267830350462004169453661861688423786091922961984373907799396364483497881725323952971719281331653171355880439744912360072857982941323021767166363301472922167600327596941597673736350331588674498636234345385564858300034549015063381082396042397404531451448416774110920558007648305001177690719190255743865940030287045772348925206785174261916764282587111239386565871388355106579999832517904914940940630729282785521339886114492155377816011324154346744001856900961040888376448292761824812664469358897723356158595991802790443673684127066338650509216911344840351321450328806815416780316424570101819423342917843077716014585697559380403546314919267351180299701601205645563798170426939967448536121304599325172892245049774600966433433489815060701496241885318818735438407851139071042646599562857508179362160321986389597605457717378608291924921905448836427009621267102527863495975731906420066075214543459609572775674639610757836603949187176355713656276961758888749098627838802407225751489591688269236760470671807027526694967746107863359748667013315590475044040867055602856801379605437393091734266444962889681513929559700992350394342544429954426507033660818253426644241486303304984045467011243779108932458223184907579348435076704532138384587181083691806017378762236052019543738045355615979696394920723794957481608678820962554653115303627397759417324471077790152077811838779843124165818419947964961973073803724218659165705513893640397411688461684239428882587919378746642339816022144281200630937903000967641771296640315666466640064225004176037691992507112082860395770353203809135113781613301927660617491315534450274743001609339228598681389032664274975856706693331731869480479168577540175584383448547238337203416542521549940894743485403206074110071484875770489522565983928873490036973331299194576210796546192218108211345713356335795446998476584889940968324684763765133417823172671679676274479087639747911712540372135712647649085302827376062693916151346388576613114766693934818658486034106064706597223597524366882944813078203725291846411978656963104945481674276370449432058552321897953292248413317776199704503051451794294195196044198509985018370771433519344501459732700812653908958752518347779533156544466006347747053572452941975484473864649135054752068861296615114590683414172705930152894641197735295982185019715095125696733509528574198989279050710645624453184340835105358598146337487806282842827797189226382474336079254557246848044221759600795455593525293203037775613684825785429385860273972945372795976750460464811846947428004001176835073570787514368863670776143993669573396300137737197412018007099177009625731840300409171850699887979163136658111039384425932353570680127969023118841345333716815401236023220014711261044742559431573534225672023977955069713030353494742864570525408493809241644659608270088539573446505299437276343582612473859741189998961784975374527983037081643468673784855441517496546589714464323293447779171472801204600264052215390480258394924153871693493779271432089528450223440270196825025638137408530481497835858730972376413086017743900040189077547098453866780996727642223902732054866544246675309723657834035896939856909504218419777690886067625721342273182462866264419868395859904689357657007355410137227604230566408970698395993480677865078064376285399236176173185051085402234058683460050494988512169771255635499016966794569531128965111323156911016808337465594017958727909869097865609610958111669466016279967326793158794292824560552643524557113793925910164774176876270495265682531866060771712508244108020486104890139467016268690420962776886302701499922141688899056951612651533946163190008051318652896177893984357645337458721232668167025749828453185628628759401065884043062894686920126993512552145145764201248071933041315225269457803278219810529871954656451244622307610198846637602439176685771190880501150506177328235541340838610986351448231764774212012552917537307869689186953283257019209566388493863298167388733090346227194116646196307988040654239260056012933423317920862977071100540329347365262688837607685965040148612019378793288164267826089678542273292009966878494924146663810208538674046361710547999050818219470562949496041195023860924784333830035413966479553143325733027141179042346390698705107170957484808515802995050120406117626941193645994920483028983195556106224874277510433862041592099833771041107877825109039149967075285728969990138983057508489144504144531571412787284081179240900779848853597322642171983766859332299629775171361682678492537089828338143982171958788998594215308121846678519507470743568881435396729066467821529044903095430668980484939631517281625480730594972100194201985195926742503437798878279388384321866684885720793881186648980357180237968868697707538993764895528559478645782078566718205042100658251075987024762678678622602702864400413138059919129406307921241128358965608300472640522611214439408729409381538412856933579716888114069183632637062288187736890951654084178510151818745710372845915642496726468402123406484875293376206693161554829535429826746934569882453264419111821873885634539685994217978007780381070229140581280075619912592377183048063827739858178241805409784608431466224093759291229760051657788101825141881832832577577476434206185301259745409344753447543902455548249377702151891345102448253239256238318823583879323619599402500750245396233330701884934336180058121570447566905031023934402039060429920086487517115094145907553878264122754145486749428963715485962375059951071220747070272596311397386391474211532543746567410083211705203446959928331305638851093743241846100663280568092186953499848473572615053381680486607411827787669137016392005601185741475113106848172942852474092319167997251966347505342303007548989548842608737418211028087533131615457303620470283249297521311882748512694749907409836711114947861995833545621184071954205649247997996216047119843082287077599426849605508258255867128366269550676008123315206971769392272894230170212417880538060664448710882371556547969724917533084948067273905333609641546395867717524963992951639887434613976300388676595487112220802561594583987149074072525061546050162263446817841807111348596614249314000210190769282258007059118181380722653501297721251058223805876416075629177203866615378301509148239303016792676481054879141743737000099830351288283445089819656820410074712352085650744186239269848061362381342850574141067099235440545832441599243181356509455422859405270104839735991816748984658959002786558680459444290043422999211017568511308694366688824196566804551082064380707371201398681881236515728646039207174368223209554258941096540493782334710260020423178488491340300429930197089619941412691784152791726421686929469880930603513489439875049681020020519749921471498875732925311750792270504997113008679461122909508196526037894020290945369576444428903130802196005445970266311709668250688256526717206729595099759696207387541488442755338076208004353539209405126639861692789917024900952119932185002742747160367275752526037815081274411363121478831170319127978598907923079715244612179674635375474958629068043802514301703944411771775020869519174987436688595001265198917546527289669652533629523622591884400347776136285358601669344400196728816261156295530950053782646441870725448009550328130516621703032137081798660656456237945780226002806069854946938847259662202372793821873622981876105454148179759698701545861796611552851795397551532573912197402427862604132286696096520788199352055496631209407124006188364201170051419287567883003655601134931528373671099508593651697366238270632841478598450024241946879549702237856730092547175699325408795615534578089022633502386005025278606047982482068844464244793726074435689576821785780476446833102326188284448473992341712965465722878665119827178032262684343667816826045258995444066637204620153970880991278155885640810866581910073410087993839132350920636786470004790538355559215716236845010729994633195571094185563816081291002155179371183561878658042220328988356216057159822695110436016677720534661871970058172785687300534081895283177459069613024364747322303520591586461322116068022374235413003445448655212622380391129470006966372418672338760497559876995390255498511109009291213805719092951276117354558884043480999610672782093600718919121088588959220887118908433577345054425341251522784793911754690627232334223372227939329666762025103622435474767838760933492447026457979913220690242758136419994822694691449256331019004358557569759306511332623278188052046844418118894802152818360272035822834435704695744537685118065668015235636803290495132782743835330827086976151375064817846572439600012588629818711647022549775451920907019084598765820188348312154728427742209582581247522637718055898875116398307911955405393053871292157582102373723100999836388607441081916746873668386749399722339599880095178231246725786761908798023956775880040983610866282951270166869998865707179876296749019269736474330525766836874751695123559772240553732245643812727036975132814815945469354632139287429318214600024751849009210348090736091185440703210701057507476146019855214615915875375618422833477735525420977314967266737393260231192086404083410296981769610071162772156962705037260726343728868116531510602359115099480665481566264347091189152120581237311373496375387470091019741193857594686885872663262597918421077836246351081903279257807800199814735862269829582607773864580234952339800799499938688696568421177561617051323705724143847241349655275004267097191605200879215096159917404428998560124016039199327935293023907702875235602990196051679588625664848036802908994492930504045656888423612416250369357482481611154242800990514625025875375069864620042333306799016729203837528980421677533913140355566211361745214891411252432469897439122811941526657377097886947240443771586309084321172208513170071817978340546286947262605094944477006279666334050859668038347464339371006324063349967181092708232400955872297330924211391514015559724562558926266923042677490358090216892330845427242487646134875432606809021953971989552134750810061434126031634663921107957876675431868836641627221027701609467236908606740269749632073512838541346158937454874304927351685923843785123912754310930951892243141726417336921054841119854228631491256714091151047655935162003485564262071103011395297902006567059935043207956156042887246229013112120051246385276374241090600132307391086022736586365869077243031683090925507954706047088829082260530340039459260085803468431284262160748955536968845398036663861374429926448531975502158089862024161957405799943395220502154474962538600288362551957931916609888411288707412156747955646849334379333524152367261985517628625168492548129216611312559250484375601194123961067128051339047256296600625767133401722887662220720407981263395625051847334392539167641772684605890743398513365586908149537366523537929386975037772124535086798122180955085068006681498728969484885972781795299742006742542617472677874464390998649408866099168542839880624249368271431422220296015335979744647095069697655003074146944228139840059960067192743997700635694820076955886411788530747428898353855521309470762502854550996529896922840975887582724085531768957555256516753580854253958989334744031657105462200048334966290505064914930555884584771976064479347366796999012161066578993602959624990841588306479813132169031875943568397623542481446527410981736541844990273223143592373335135703403670526650888182793494896359641523361315073953058999296630869368063197291621695195954710353851003183411264624933029660936316414084200622438900686581927013391714586446840626386742641091812988759404527800370422935363868201181296143476230635160144130705397963432775821451568624840580050509280526647172558132770158778468387101988865041380844940860359505242301559890939362678640813323673427271344209229331340214955767858915526012651283354591652815833041203901973252562084692482540607279647696667523360127502008756063509583086187131799708584724491188139268471108015709327591805153835616122651807473224683358762447158097016745342232263751892305841351405108610165857904505803613762833686232781510426171980303742413374720874756182166094637526180945739275829249932268632821560529849422407408638284984580750437263803478346851731884457000449604185144065927517155084098706994103755705748491780567951685780759741309953150464262874383991207328897907958367167344652589488846629905751935920616030952358421741003267172598301767679960719069871308991989272383808452517673801672709527932504982480695099967629265608750107114929693790713069534811957906470361403093205967301007823985739571878976803147663849418299803325118516635378136603280498789556851073768193026243095272753909849924028109940455784227021483735335913720596569117807079410171213323590889434174740964839196176751679118331023723645957888655222693048402779974616956747763934881596282058073650859319596839632662094713123193256922487093135760577259187698619987500783894486059220737005157641520715524315367638983978532825526206381699851031799776676695127811431457326073745630362797010222237181823998570277242060813187546013947812584138069903113143759965142059114181746615946658053734294617472223789673424810765491000743792499521920483842844611463242656345226004599779751184997519482641997781859313849007914769856781187195886688401329043156220905790780913614304957194861332331284863065547802965690441758673001706932109855995641714706474092860817509396736529302842956952234344779194750152726982829229009294880429590657053658085465128509432086835915513173856652814598639998942370483773653641333681554246314497046995007648978941309548023400212041433314938012326681949320158469218223856518454744308214151303888456224276722618104383387456528981902738995468194073736356475828849242093765036465408071127285472257719341908281459290903958541916275059321522660193256611136193710896343543832256992512422960213898443822952437119839719570076444832595061349360488370315629221575509425667943160088175852388026708348965638236365444308766575284981433348838749960770029563210160825011707058899774096709936966498710045679803420655660618881618938305244388038235940720166054033784569010000148215073271670303653215624898105316072190919987360777588473196274616666371134148045653696273550563494402580762606600847378441337715782810908311315812380297278535415657497011013023413693260992702393021161350142800544731920133575065455311818958601282143250093122701268766959346197157520858874592414897811634067378960547535040326514962127396479743674503894501705426782967183980059257239176777233000450758569365778420342388044960092470848835450827475108964192761581068677879458274966466533986507098592038702974414006132951309302327961305007400897063438155780156520100493680105897586380617328400288257305438018136129745469170872428621742528399458978664014558565223472942891412793203696595118744374200680590223630942058558570183471398870741148345101429959983402018558429890198498528590340421467780176253291318904102865100390893489440753017896115100328982925948469653491496992551533182179202630381678673090640087631073373450734039038593520179136897951202669767553363957152162407290280146198774412076557925459267085904146346819975842010866456370429504969973559256142566835556616573100167173730623905982344806834714380128993088088347832835318216751681523123723280519382307014313832941846182688562765347659181640047488991406998685534758977682832686690017611293331270829615954862136903342429347528721072966972220531973557573792616297529851853032839506787532415114869739446361842444362298293577245750426068180176590891445825269727311446246721992782789515893087974559223356131730303439212927703261017269453727248097214048963140563759918278596213449745560202193841146049820529316092569052308492969003971256332212191572240334639768420051388720005638987047630995354875822456482884841600822064454482385418638871507942005043381111384542764355181921826944163190768366308312752112861758043264014311016709304338702425719135998981502841139643495291040232590884646297759170485773910329421007602001045365765571153769921935004868046046617680570667905540590329753123892095072096602670738651882883717719736439654966567135194795042107537403209994509256776565074718840550823567076794182971526031056292622032714131211486492572243071809534300950145789030050769108682208684538682375469271563291012886640748285480273378016566989511368116282620615439640216388004671125014828482404177169125736262586422689020530355532639503277601781816728773345947712332830170541775553746104516388703351283679692753023369776535436984272859777337956242367725036013223460785370218078437313498222450764922148586680821982906247250365600366208273037299635659954785186968074564910166750083672732519231581596640597607770841892964917595049152735745498886352769527435030347955942110456898909860988601767853851983739167066192132782097927350118080576857246926137345411189148200821415022175117366013999509507757661142810375580275925037839653389639520544975438297911605768280835553823208550622227414297695970320681254628927652916062654471520208664235831674003252373735009303276124285651552298879401464104608864545411175119093055572891722159035676157080970145803776442734281181637943192059910839219044207398432413598636556078153807849827322814876171163750276509371106543211246875774726263399227456648922190668252005397309559703986067229385226213811357456161846515548228287542222769351334222984911624022531806608832055018345522715673325855818536768326637176519653633868334256188267553722525217558176962449800866007679889325822915925072162694963185587626081829783267330351053567632727153974789153697063453031812100617973796426386833710671122327399321796955045744754013990486946651823984121907218076348268647778118857378478866124498444296771098301960915549653339943390873011946664054238925599828030246381788499741459439753146470212801386052600083675184189553094552421785953782235618719893256981591578258803449555879181612312847860902083230172304824260219513241217395322310928392014351860159442442987683500619952425684578543198363932408948489793810468053945560005605147504837292257407227851119682183902914888767573243592768545910585593781486835801003077902325201044791909170336169929435383613335541516081390929553872339728925483329400941605271142011995310855387615904072491771885461246395564162315751651666060281539357879929622903604862930762315054163827168547309970412401676466550152183908851222437523967625470041444598100956015293471661698380636176035980293568426782420440130306803260572199522276854442754650561113842956530697989755634014938416199399848184538519514670302803579364531946303067375875870667576069467131184264810097695712173712900453620628297856216762023234850840065829020174897905989161705512425701803714288161315431349411834538615204538778518650143428291739299749904489450445847424579011934513201490184366583993855232049338010695940633316734426099847739555669323145256902285665643327621209432381210489337267579594458660202695732370972623534757299675591689962284248922931742413367040939512095312357799171824585538610696688124014162410244832753546172649104831895877849262743578154550967487339746200368994130909790189052316809222493837762382249065720626152097863617637905570350254681885068257976956707776725982305909116907442273334106078505932323710282614432589066136153369818843791429463068370933036317020802565124807324496139177208667618283730030427226989687686999925774992100247987096505901305927060764570388656154927445351252727502882360302259514163345558453810650948265358837630080632346698976976392901119550942936693544672136391069999938552592026306571783482733428538065876383061378179397109744303606843212795570270633996685376053383789382153383964501821092182422873148214186232839764304288114183520338917510358648781680352681423868247512904535169495448787922575034122324381203935055446873788040734611905229975225032050429928487968327148315278675893163865922575865169963243665536275873131569942747117847507960911032828406822900206119648850502243311657462203141785265868239354584944644322258508814780075776470447911025094579586834902446987048509022790764306009956289724094448496432378060724017298050083638983738424386438990772275862019792331022066446757896424640906372349627361571994363854009506875849228836355920504374813017680577490222047044130595208169326982340137303239869814069915433777556919969036801664192648889400317873755603255846689433914795210646688716954136845132096785171185496293052907743737388792865217121489843903901373033938653428699545382687601657397727388618366710914610130154414760617291095975248186747106042129511327415478287742408910526088866413323024153659738256526962362714055566338118998893517154121056911306374400170390738678128278391623437949770417303305737462461250337233407552427401604816985416953010187759974978575353476078332077741335671753790743856304598406772290552214009303492976028132244565248056486516693206007575206344245191816269888147993778294858434362169385469371058823652883123049882793412109831359306377016085103717133275059616711742183785969042981608706108154346434653470604191710239929110665472019952172740826389121716225718967573732865782041458764653240277617435352804624924654725246017550705213506310838438763226051583531136772447046709654157971750994188519774583018013912431200626762909061004853951201037434516603093788338147525162487630366293404854370230657515908657602115486793556875851428150952904889936916421961166501918375508631476582722127840599593846413343178660976202382476764956911560513846063999285070496580789055761362765402347021386848354001088031864210751595573932023623243981715254320941067559852659594053865803688900200695635527857131417618018054699318666063068270412646379047959888041817846630284421089178668206718251331183102550603235486072604082299439171872667392943237182528227267168767197897709354196516005047302514381501885308680835955600993168104994416819347317345630277477272445973850715072663058841604067883697194401569442559003229892150259131261814047005304665568224938689970097981613557424809931341471359076074791897711608510997253477240332299187067608385612552175426510249196100338618669989981268825046526748947629801369979117370467966998594895897074803659091134319554805635885566211586926341304499101156911348538313124614259471427383639811876265707676638683261892203056091890008473521775740514122313264844444935181808217816487114085261461043529631625893306666843413926592194706914214375234259984895741310329906284580179784605150767967824429869709399271326874825840061622138972534634818156070805858118375006942405752111610186837348219407914371193352414295702135710023111883573631594674310257874386307633554348736942849904079595964689937277462580725108682273475011327981415436357039367769885285462125438595899894863617771973927748090647075930354737686460089216254955711330052754079815714230435142718229484000894100916692132378382539467418170938596746321240322177119895283364525756074329163939830121216393136881994877229170235300288718129523831320968103031920802675646807889813660335899295163342124110274791152843498540638365097736881610969382012177262990657473804688827534131342334721017399454470084373089096565046022739304323370194513615296214822604163423585786860589787437977873010340833145003881084109185113531562000202655106066894251384801195476264321688806936912695443865146843794281841330066967305811094645649318571050997096344916545059575572842953701632885220345949341239801724065964110656279538808708523108407920640404843311710770062165193960634933504015063850960805312744368166321675958266435610028520398066325563996807274747345047396115916960082498221211652299900832712459710205562275317010198877210553542424354245483008169717571120668935976202763308206926935810809643296930085933886270349066223535729585525772581475921950460453296277217244883173964808525723843013942034652587700336283185508764860032643054688872348650293123757173725270130969122832574126767594397028534811674998422507306275883094580151207127031842588888221514869226078525439664003797158964086377830454181371885252520675983786728754839587457241331737879183788182329361605052178382091437439767824890011186743585186542179425295310497440651200919429618170094001002591014154852626362112755830763777461238410150684374698987892626380396396916849845083616846567154619191023762435613237099959237168556419236853912880646997184311846094674002569628366692243489313892824357358654814576140697324437965253240225509354735892638834312809542873802743723968914723203178000893935678923729981669573335648969550229056113212609564344867097467542447933582990264009376486016012455883964816285071764010018932899942522894376758389773127973717559882464109853650894975451180967652628662314505953463951864035295087163610306125263897856340707598442762020768247691378021594941147704155005708873209513681051927475421165369950465360498238666767933343581080461529263511006446410969220698944061081596366812501676011612740095193044949014982657580229935737292428169788691698375849658231756535225350914634344231519453238693002999163544745549736681382136217789815329298081396866637664292751719099524336705374786878466582633299209886271204114588322198944661579235026671550319387824979111970430052112215957971292047715073149431418568601723294399736572737266863560105217191576549979874720018172464315744111178440582195882135274144764366257873951547991437578102364386509668586874946921189133271828237655077514403007766747758188458252355235549512801929159617210556220111859029646779346008547863693918155056739572102893348335844101669434665976936367241201967626461175691154330107450392130984611756254478118331941709456376364142625804287343146579543095205014205536033678868248144682417555636790066328745981049685518425162762668795386289878367167138867435649590718239957102861475396865540360218679864151391089157283560878943848779443163447887923481217597034076350633032871121263630018640632374103608042470885970269445404964602474455576328591132905495539276125421950208666339506985661825432249853397067647817370429357940116106016395900686260216420606619970245203592672118315694704047703356067747242762082779292980669774714864142075419090855787953433361204354476270621776227287751468950384426663894702621920090573869977100077904168020536724386302978897739911343786763459170833332813555121522633275934892950674572589425149399978858454433963346755616845653345050049229070400078559629497887056488957194664607731294698210048017743396688233272774691158720789270029644269260956841478118941009464954653768947112478948276001887904384734914289426640688839245801805609666400980793407830181620372082690946239341918779576408256791388180115094286749992508001875612173992273896306772435456596301705434528366435252276861218192989427823355369693661220153370969247774001198644002689170982122712386873602145011730313925692463141753199896942051231323513205471666312564863183225059851952927532970806803353490787368092212844183958971483128369944076350027652368864356386088610713166596932532323577265308094459218091469993641269251199744456414742903373950594658444192475550824588241305252052429077665636557156628811814360735205528846327453409018976782314994689082897117757548410065530910689689542715156023693367092091472565450833792151547644720960890982843153474441598269457276138957924484099966745853205753471770002168854357747021762804680975147177924870213918108639649670130635436085640058346077340804841969148630530659165295712439917143486632019914136620127777925854085860681221271942651384846900060233433315627375880826446241821228739384580750490895109197745148907304373539900231328375152465156762410922470040822188774366020099104011003390699035145815001096154895655436553161134634825717775089199744370322272786777048388379328300949456374777194772131044289443937756855567665041569986032406747341670167233260731483969304704929609354326657102959215808011401270242597792639947104484718837587196133301662702658329761909063473981852359128093617063681786584251615634695554277665408642722985342112707783210392447988084621841642135911521316838730870456936391332992590669795538981614033514901840359857179840275233017978558557114583967213785850571442469710825141823138987034734888432916210884841549763014210230795313311528579603523576169949652764127595336765732269865637985237295253440969367503265392740079881331769868021620431063070013879728965111169447819127671846540480751696654043755989183432014143423335576173645260518266919052567090489327028039722337970560200094435143301195197456456320955163201726096203356246702008858474172240783855098787844557079502165668187205344422898309740619662994650906361615107581689755239091194276393838423892601498053675982648327340993692611321870861032034214432769227632684888891808140781051086630532260138992515242948308193386616030322249405486108425194558551382873120543704532734467919227838546848675267684025143461234070012834976267458078128480401081741865289223666273901877320108954470704711727065299545920287120531485134488595164194325583048185349126841666207177063994182166707563841441623759093499782225844892141939648503155771526038400498004544259608128119679432231721976619319536960045603486758649851734450532354469291490174866663724719721126865678615229143549193526364312193749725262935204850769347912365972300434138759008605010240955730693455864325815410922914317231770971608211073627357000816953497791221154402937273422839738572733388360460578022993086121387893972498724823026947288402869749728953968403599075135338985710515763508280959293222317276704864336238885093355370037435459321149547911600401799664893905558958768231201860058002538766915287548072042904571944457310294588002800147247682252380316678347307098183358043750033749851666329431287352186712294728124894513549024902585886324340364887119314128837073905037964862061741082923132308316446035851259176389490471659182512376589731591283984451700391568629860017740175509938186974250680308886398739072324525346161551204504235151073439837668013816496280286650410152934531255639904363782707104455093767177373843697693132147598542481688961412963313158189589548157681350868454434667634608464839560594785646579674646444048472246839116514441948082329214916892596666981587708539208377336261267528217051302626130105655881629841646161147139587118788364012585285999485931878707165112091898904376962504059958298194113937825090268193985474232110040343552915023413206930301942689250325502938585458680661320330721501510674866873753863948637294410035014154707181125522697886942791984663024246243174072576701081638080978270614109770232497121580096099791858175307719163956204888700971513392754066623492374869211679631382224063618306350728459534373153450130916306308861797727185241342054216476232327404870407910587235364323210387112832422359639940999722139122354121173800957369810981661776378086107648149444995395202474654187917648452855690133577609408891249116747920733667942016894321079159525575845126901725827255678520221229023949990909566550409476188648875430474148853605463288720754174747104080972055628712690749192378355675305881021237233133368979433808807880021495210481059517927085778313251450244101156989800278179942320529591647618271896298437519353662754132721533286820200256663686458545802890651849033031124765335856289466603319547601015267786734891302615297457020338346033118576070271663564947569036536143673709884305989893721489247043559065398167000035413290576800524989245540920179550045269595266486446513128066524235142649366930662315462971538552213496987938061642154389146114404260710064070546760805074650760052024970398377173013065765124590782763088952692270338019201573587934359854933415361582994486755052647297977263415555600092550560841230599228286218307292742221525556244905136476459691755167443422676080543482357681199169458811734315285123409573035526829905552525656608202844034814288021712307875733610442332739603140418827444388221959353329030821894725788086272267397909905546068014905675205865182261197521048751588616392808350400355184069249109962464871035481180236860007736746373773280778430068491348560770713836471613092523832742300432759520200478770787573281458010386818288865559142804724432749560290577428429299576475077849601081423057053087403563031978216898859164093530597104783433076958845313384815652069691631315222061310144430355570382252664983616681179503042944688365692504023295365460816500228858822056795928639570768791819957194417553630275386385703404002972981097138883631641816332417251342557708110514550948568619723166551838418333594151277125734634218011553815446143959439274205539586020253335801062734122935672717927887293404458367212014298321290186662727253660695654717191186286800764189013427347019182173820513636562436489914619094917853971515463055297174838499720508764682832791936391708931928484548325429546232180583106030606805837256320740710501395654941697874174745060872263600785362955200880389313640330319881431055606270965263118688373761299364170005441507529535906334562738307988560043950129300126953801706445871463887702606957678578143135739627541164015134527930031696964288075405828141452872913970514048417171050190678655089194429807498971102238031653464576336781268196360596899006228148923665270196793519845192090162339850636274352345339634296593555263442581240751298002373027153182159900455700292177295554842203385442278870250115943930658564185992885414628133166599751619381922315770991328200052368198824874935654805928098864375489413446328329544253672359850711005942532683180608652579598148651912712761490395789701250285148101477354227666583780743496655722874179168108011238575869762591806161910369816070657028003999595383700672141810758187201436832042079859625199706429579656075187108277802005104154832225109196172676502909753605110054814971585887682451676299711184145452337906733165879566794797666524276956279951602222746074239472238022149170110172985114595394554771964321340757592448101487550727883127941164174901772592143750293194782517248894567604395598551861518442142353696070408408466984770596538722317444188872541894182583046226283847341295232560186899586784450351710905257528805928478361269345767836180811418392083695587961552486303617332296745949178267990102964082975494118750410087175634165930150761517744501543452066337935912218228468168835197244550179335105760887458470251510755108150458977020116498904570423897418764056092491827021343880381486068751384137679454684514826653969096416085299633980167259586263012666573198347151665907238135721287546039259986707455037832124563843846625819683608363008096483317564049463136102822647283911611741615679153031951978191878045317476117144216308237919869021779922444915693620956099038769319166437779655120461103445679571908957847114348065465562832342482868749335236981212108434772697953799047803519592589261764761666247632385356669837988945916150766585503758735545294107370342616132969546344691600165141408633362361713118379300821512133859243630068726109527422918830687628761202002553361673724620478777392411724060309512912021965841558628676203374358615037406836941919770732058489864629796826359903990839551980824055533777345780866801707889579734122922280338797775693513058865161997913173029504262941169280006709512080367456725266187715345732637842341356402945199963729501881676060017259398601339920558148182779693809874324114113502122878137290724104195827627798317509510616463524866815626481083518078228381231422187754711227378676283272462668052495444073428591930121960433377933023016210597164505926556774654874326418874223856190346722701606228097738452001028463500754411960768939734591709213085878286208564120229522093597001282235132215493930186604979493230041524762214889246903286619214782297239972274861305140456799370387520311177022301674952538394761731433635428911879969446682706199386135396188146079235581221878928628171129929808432384389795599600444252287224357059689596713921283907813459557415804455153573705444280884872055423851345325360875274075623680263817795949318072817070985090538149632577055956474484154789424995272123239783853692076962903655285859626433459751831710009888380463733646120162685504986295246310890812591248181919924195651743886203720705509625262399999747615187809145391200443927242307170915600637503670214204539553169137843337184524028682782958518815359571419717114540902046122228788476073120694486046752437546361583392504756914587389221272888667980340992796248820445268597991193244282245010548488312483047050608919820932382081474625866842009988721011221065049038006567425280500372455655893644701975088615388959176115054718547494487516346370476822428487321815466393194447648397584249312126985923507206620764762530325578202260948777624553401503629175869080474942316864545697736521106350307791442862723449994498105270349745473851779666361131276912537437604466688625364904579618031611503482448176202233985750511993157673965456302170719634101112315089108623363409866998228074835590520372228743384057758455032992103984329950761306318802229913350853678838234274565478726222907250031551245063300062409092014998422188209466671556585328672343308361938034394847809951419094009912195858780127534489767791170883035801119814015370295907475489485110992732107867821093433798022214724426048568636859635993337087572278617679097293588348347036674389000473608409725696650936166114625857898360066406686058231036197913778656027144342686471289331217080495589863463178489362769098973403090257153184324415290171026902183193452659986041875717259907289799252844113218892294173119147805342131971437518790086092178319889108281956802066361248286519791991095619561356275267883350538040424631289857424459455848748083949701108174350322520157477415599517635129330249866035517299940907886853506545065263164171696461626886533676777495512610451052357135851192129162245598910385404926701511881003496924711565486837459759299604637790171568538051099695831198434190905444916793100346645894057306818532779339587321000706309381011900025611972134658425342296005290858305757335890163947933842199576954546013741891625006108543853322981362145902183075532863030920550122059463251982917050355548970833262463287787681622313124491761506633200345953877440461592966151112854367976845610882110350448645949652141495063533040639780278476356190099113295603234325683161798282920765438791343871212701556085328676543212865012254150585279460472231954526117856741625798820378171525576239883962649796916918722783543533360890551453579600469353144232107790200008325260226460910412402334189184121617778445086605268186393107173114429127762798850818455666590184494064995095801271347145030727549963841508016642849282674282833732808055894393240991276199447225921779462459667785485228519902616224081600611057570117007363563724152886432570520779431560709748839968872549577722553122104337812624278418043428142452107976537250614006621836428567504656518254214400337814879723157429336864688713615631053066237679105118033804714797140223137052197139598390118386801197531829142210743473536766246156007662428984645284015163487261076432365914242802434741631481205008610112923379288434644976299803889402497967429084348907228241046864610349012219371716446161368232017957463421579650992585215595176141444733056079701907650556037631654640537795503907677492402648720502229993181194636897453807506268854351170337750640768661275047750569404375895053509729725278623970904355963167119062879853121113797268799642852831370951097242826156969638056174537354340160172976051357517527644120884538458308307221082977358339902253756293196141792756756173311290567139311166431966909414872696005890724826267445125699354958208856657093284696392991028568852693190133095575910810574017435724241514479021516442358548499612786596031025511017262162353712713288773089355543260748859099616250417244119046654812664029444630444033130023595859890720512788926318028786673731736801126538177548154334548454837231121502539171496474855553070632680133342246054680440513770573985051208540568009525435246867492678355853351290034690573371679870080491311316008972706495050480639217638827046158685953798124752452370152585313524174600422963077161743371946914219658921579863294923680963529099394283020162194018782981489122849561663501610443232339629465028391074827619605408600851311016259546012853722907001079845973316797743965400937784285123547366610174297690799922800941410442982019641892495118805567953482595253467675754578653291011383496361337943498140714730608608674124889217247408727479952502158104508183670650994528148072443605001945220789187801227357655041700575464881382927164377608910703493535591705810137350119082186527119222248997929190430508174036044094024843694310468303824827413894583029297580765399339358480987552430116693217710314442161102547414503110993195637870670521925121915913133030514920271267473984101486044782397677435505397834535610885275145084118802339309504489651616953089282128332835223732688027447549281651591224624254623929827699105995234182522937278900508666911016768993809025872468990409257901941801266147392832596598824118503294680608073211768654383289797547836990748594253827984497565787692162488754831649140061987026780172505644732245200098853795717594639584369863373628003730810884813850143836617861114183832660714968290947336575343233236344846790571242751660888828791859979000613590247027745107360972872737099817412218161829615764685400809871837565880781892887520739812799785450111539679338733607465437832894280174244932967590634336571026597553732352244541934040810978057911802944857778598281365649568125782346682135373195137060926548512584946581506648421180141088418475605815311114491480311135649028681013498183995942379068349664883330928414921183703889842213520701332664281718060289707112128190632675791873320173524580446418752661958562335046131673669669887589292892001043512011579365777766509776067642216274790857958375205308971288987625176181145015310736961485369371362159259135474779351648150484394891652552660146774687534054349569318290204214831649826739084935465803403139238025887289476096134406821874370478631695102831623670261550378896071683715724652370164552352569200158850577641163709940609229542930932357628735809176382708250045589263102468905484896009141226103265927513912548670099429408814356809500726108105527379042715397840325829349394559656935509425767758969520348231546439939399252358023647420178682245667759417330403156183503397643881988508212382587841246989309905344250550436296832761170771079860550105805188125608336802233387200274787420467476290262644728464725521351308664903601477184545612644354324082967341446469456889683284876225071099789603367335406086343133278559915021188101545384935421188349735348144481491903917739225977509393516044065516055703482646979013511050462223194755618707624533678601940623115894188062470654379894962448355543902493103506978303306714028289421184563704910122001563316605452275167404971859320255432298741114409691036383087880176300838558750470126791173226396961396161561284631576669588674349834613239416115723649503050198550683801018400322421685305402737293350920357354494512754626041524498503611640379085769295740732532734741925489126938002157568356705853517427787892492820634617770775711253652520452255550179939362518424290639236198857145010768736967100231322051086111048364975272519746077575849374865783772614221861465250145397706332272138317228869258624392345639215669065122032599790100916524224434120834251441388977171931831614456560132686492557612340419496593043151704863640264010099102643413260781656911955394472053319192258558188479328941691856486363730630207204356582764484183626140560183909581266168758744005945148780279881277266207291826829518361864941891176827011680432770730059096784385236423222127203195783211515011299380111781242885917215587260622148660194688604947505744658285714624184950572613029768173016363005713302912461489182557889514015338380182881839717626679026026393073422412785407576271707833491842607255510970999022737948090121611692317422176712594310154143520840587686820448828012629740903534864417807194635882822859749628766357605620627844720150916181901777099420973513862635178033997959900579521477581862663990169946137793199344610996893417775548051954868288270167927091774834706583902406779887341239314254945862950996048051936605745924730826564790917764695525455735182618625818888458636320666149789341306277538104206144809751776796994039502716751165329822688141148342668574958159451913540325796962807546312779715121624354470359241070903743867379416861157606281280072284307550362783240258912186784200005785407500999114242735991353960163960623763667130819338956711801958653914191223718669027488607315657681018572101009108901526533908745948737004292264263077545481035628581360938746538087001420317435093186008366750930086454067657204246483015646330310105351130811441641272057083444918195531149099163095354045058863119998120936812179717316843373345223414640740917280557484653311597952358790810564920002230126134925026254961418365617163964605095512701095302046982958042802482202994997147985536601039798151993003984988922339843149464966247167632623505911030738507058614672582818054607689930042581254581278248363959664047033960551815949313449655778497015404748624824714894105534929539984263304342787738582189973144285129013161629429220154218587228629305666320304952170318812765419972041396510278314278763726177210745940550132792146919583866700441051255828689599308977378025477058937252350694239589469390188964716774451839195663457358990123916923584014081390892052711800982100684589353786667783570894639078419729856285030111147498938615806258537703723667283701549177351349689477237595193218451819440752261034351314988266723268812508936809154842305701393916265922207759082006964500880279958284782963422025719293166236192746338477959710947332873245505239420508875630578756625326485062309065029183436839433552694793209360786084503243620767712806459863827416942910603168370985693503888667453229951417484644640205719975819227665318032468682345451566193292212137272942009181230235209317258999431797947356580944761153130860429812497691797400021135240370341475124700796106022559525860724697880663928979371898529056397383364704727770662096028733676870720125556400723619902732837488878590822831313642917082189552070212689359671777134979115026163775371986140933827647577318552872313643940628249628530807438425805615966614632420626328894733058344050277287289989774659929186859129062212684784702932162530803329288955707611631787510322004073948883576722234258789016106377243676315626489978180067149839700742427955115606638171055561282586907856957630255885129343647908903864842074218461699158131764533774946481688470595498828170136076459191774205471769696821347100562784536904196621530533572188685850105754681596068529321407905917732361301545045375952744022483943282357788730702389094059512665980532137338212809976670772559850050888547949002978051520207660409733453289325590202280915494728617031246203341085916714717231037915296392493998005671957396172497152149989110366517265096191290982117361518848002980059669410659176252556556163806669491823680520914950334538256437650861035054088615651791363135936690511121700631973440650995117821259539569997716409474487922809010964684161855532931205352241347650006626600535264335079682776113251111841322763767348259240876494973749017835242473110792847596567813639501772045453395548146223572888165956442966648564842100359439931347481933825613551152209744471214194227410879177767178864524953203978676667562491267585757949837796540956403130987487012938273973646437219583751030053702320233861383234286276119277087151438017101927533188498388710971758648580080213983292272923401711024919996916644470591282385631741408602027062324007668075740232725988627642488570236980464532865083453980961282660546581597281974907271319194780567795942294753796729185565387500566474970119985263262999816319295582373125968179403973247230418274848320849888515403708838553434936360376723324456444772822176636353027669040392810125663083232289083518480393229293994331047552655447427438483602766749894156173142439948299883779178479998443838902562003054273892381613362716841950593699568752560419469330679939787855900145638806408257469876086557460542560732314683210945956216687351692220894870717707839349903923610384731116861633849727723356652335582347453583876275235980822925247630828626195897357137243447536487201818335239065660026663157199388139281591061712478631526371680233868431457408322592752797690617013367840206059696115206091187752029677097579554676003442287348615756014979190526641123501102235826765505160954811683549397734179126605459769677393190858306807156899589905351208573951541453865140831621227785350121234781130526392976646326452410873068892930922435056918417856917100280418348316005622980974251446892345860788641913028323378515892086139538522486190373866077089965644236877854300234919875373949493317204940785749599690877337152833665058061403328026215911488185713644072802999028403843513881584183571275110044139815100701326772447539580993038990212107101273002233335642292712786044517866795318504310524933617939581002003956219227180583018221841438725498056568042508390264946369500981451619626016869451721092295024543081986038578853381282569984155298374336962130858114193969010638222967836713834696100065000584834637214441235877806532129282617252493656832326726738416093634502611152953335264693522489506963569389202457224696626071825985196783546746198589658015729828665835255935638654429271980494372417512528435646682344157837858782920526208208808924752076680273789767215494503334832508177419578704529052249848881870906955508430652751874670325878208631951658814549146592923454743164385449513749006261771801821061520724438686856652563695732284985478524105756384836905263081795927010492567217584673241535361348613451372226017978082130801533195284426587712876172066184842536073842452235832577499092263267248684036319304220292727102038355188889580335338091631402360514918511454426137966218231778944057551974797620800930846453557048608581790587018101927073461472069206059017179609678534746035515917680989931291412280025568773880908718540705762643415218293585873313575889038475171262131436207534344555209517174785244452329642953488773118787910231664360026630644981363099435021137715015910340067305579241522063754568585294606504595431007309545958010598922754488133925654917017345116504859830308489315070782911777379766787015598909934492607492059431420146541278235650250573932171892911159090078464357999581392885831645084933421991417645903985471944573543453882573327502756002081196186740200201418600349414088350161701579244103883560297161312227923500512958136906776278152836702623217640262168351282544635608128168134986729036595474562022607200267476791873519836196585344355995658576628297202673264211021621721370185186283009207752159729610163238728857454391807720536629777186603716916522389620287995727760452101743065963125563526701054947578616832183512838743339111185263905929605017124850729690154533762871215950918087986898301726388953224147166019726743368513445630190308859036506932409850745057153325040771658060840007716769800052068163754314790362802628280166915681509503041143117241319834740956955802953569200234833207426682030562200726516138081311243439000663122838139442262126266354220939937897276204116101641002661644475660571624852648444985932170069761211142581689975880426152697184257254053968395124762166145020577749436302203433051672949932271340519856496877929858099765399505959933744309912460235475019172221985339727702583429645804425955017938809319246682748646997606382226227990995804657271321625778871246947292076899061139829285100847972291807035673814460647494603604297944623492827543300352115512180812262902433628879322680599100370562924287207333312187867368712378047044385930979781099812719469887890613786829422616343735746152893429542539918448750150165046746239796070736027930085784759600863464542443432207626406650849074655210322659433883449160918036467084649539948531264008123871668503478679956482560199142077030284031987419324487892943298128978248938096425640006227444872419103008168390569836637664582291831011405788518541404121362138497901872001747213989472521651952636877620147585744764382739188144796167442961984291336309421263295781904550164907116511592800190883079067265660825224222004800919690509553844701140308459064873973699480624794750393271999378021663091302394553345682428361339844110166453626168198080650391154532433351514782326548010902832972908258533308132380863614483078727704335180363092192796442464011302559397449107563332181943388105420714765671016954223870907382983985759822189557770830372870897194517826974337349204133818140273819074442237202045358678518482513649379550112646268309499600756753880118015054877453159014372449151934926111389161581433361604223336217063534192073440374195742330799160402817532763078167542233248949146672228910289080667462435303883382476842471623541546334979871908253092792454403331201159758149922251164640010254518509803016197050844282770100558607827516737290346322350703295704004874069405963914471842066215901333441528930915553438993424499950428495746299040641257804762678830568187326393546999994042508254236998531635877631819712179421004130911102566719633250123300946266811411263930423789087709017738475689969117499535867516806554463222977592133400461114360974229490604076934418141228122775340504258594977809883565946128490726211108157755939062606045704479976572181498965932733328407870287416245672822404336938416366578508556109208098718519146100116931851502453433158819106357938857556003945645695892573226891118733775421026873613304342430800274968736231648513266234224264137179554101972096762580712004270876372201682283781801686400475360463646494992118507981471210203090010470048316550138608882959731566818307772925027574858830169991939996298597995770036209324937371655933655598206753876610206147497237376723242112398601912563137541825377320917155461027345566013548448387832247711528788375405952403737684892544467545915077852395216412811331107506659583551274553811377695593445069091345262833854060820153350872787554144427115633127430778785810675014024420127057726498979971231956126545125622540175792618305362072105351269309025675121241668060188386623383880902993508893468977959505203265435910112960895493072109238873513931399139696079522037179525184748332161955975887039332261460453209506861070826155819226674810287327126127752612289259466778075566390607560099627455208585966400375715093961559537634524712260730202776470278041773594489357870557413830981787148551673150791049097691891411228463027669364972446426879715385603473762491009979255124651209734929227122206998539907157304132414114852586348481103049267562536708471875701260292118146782541470891203639113870454027910599896937872932950665444286144095967038962396644570205763279808808937237766476343345370005507830451193786347113031560130333609503561859679580484795018605714927297112004850796164763150793502136460893590931813850463935183906846058219653496732541270950504573037348980424578040349214458763686506074008416681226927084348255734374081013101828369838014605004517770174219721727016177178008735138912050712610181433846691898929330563808335076985564387354424929933078362157141497473479542614477024898913321789725001430969739877825743332551027645339628829692162497820241506937713951459321048596868548202455721226600832845842039349066494985388946808891348275844599672845176774954821108708845499862763965723576534014690824814723313167729279784377414760101877271591027818070229186752698386915653319043312858497148851014341615184247718954720064574346068007932293309138271215418266678523192587697490276141412442470298289734865660336209084457315056412986785816857209453640479047300017142224974689738968770432893566883225288101755317318635970847702442194741464323444277374869663479343187103580857695265310874434083676783394473261285786735155625409588211905603977730247808953134776591503017728158922570767860080833656176416713542496751788675580448435848969808802495958483196161134849098037499435647051474193967230402770399349915635278381840542244879254044448645049145936892226165774019674676396034966736654862057694430749439005322285205586672547055100529908537274578708154215529235009374719566484513286203255435597367943955107699560249170231537142173640725134243952361791572594577247370761818237923078260857898655146298452301865705749783623128674069305246937880323217852400574667410904578807163609626260484547125832856273871908295256568942368154726161824659692803659518655202152045279066978667424827680052256232827453115072809030289322014348585175683851912656872429562464411331660731217646057661431841664781085343082762488837484871605728263174481332186451929474720077912149238496820400068142958477448873730247185184559234694777260242467282297612237565526599025966302973864196963367403415505866222386898472462325806936723399211333566518372613468166753387003108310698590599742559547140983846719871439551023913263472568321310507248317522789353159256870799469150675177487548867295600890481244886299028946786321664026096673118143044832790112681932028910791492219937097157034670838864902209737093015633073290886525735687371208117939280584416746191203221355797559074633204708755544318053768458228751424317189286203617826080025463546759089589285492971968308471824538843697796853368810619937427660919521973683207828469859251463512216795543010630650331746618241424011575970243252681225976850292696819094772282666750867658420074550377484573807368012597044900503407017986851560670714885725398448655152114021721617229020330522431567397961058843912670466792824412493011071364851138867093299859914437963648143559916617078481906669115066435233009859260423428552323586501749102517058091237703382856265994624431190480940302036978940944714954202450588786725941163162603411929314208733944518510917146517521582417940417737563692064006635340829864940432677154549720792168672001597503462133068590645276259825631989475422240775318285227093137868571820600318393603853013454020417402325085232660958030097887165240493961055400044320382642051113378562418647574490733676950781948840809327855626784294425609624764498670018973835941692251290618594111479329073871556495314918146875826593403227539712059586536608698723477110903848881145800526885048058522309381924438558331866336544786730037424713042712806161099687660726375988789984646246278762984277503548073449021666540846191042693360247623247511758162117284639463507636042801914555609238737136839702655395899568774948808951672852676890736016968947352126573697143956724233011815725286845643902982081406711298895847665876649999519988454205120892155186680164355335592521566290137895091754179944864975389270233718409968343900093545153815766136970277160680220120739298180679833991099597470098916478001041907875813596840417457543671221165224610292186542636571463074624864373015306444100303749796841903957479683819819328107802606287414807549445076725138544759931452646566410511291923005992758925302257604177195140926319049252648098984921848778819468416246558481407374973868272416617532844474792498594472117329753861135539437799967878854492566645629088249428557135466720580579543026805335136847155435631835905114903898823239823658223977495304944097677823891965761220258384239167653857661325096321326871288130585338292835880361095185334743740678690181826655937188337888940826167087723872438141397676020120689215542705916253962129107392576987302895375405174130101867456343600284024650800770774989513121061085244512406556721887705437938812833488105848375120819423470301704513072423683224014862489279050416077858030041301952691964535499140852963318697299048400001513366909590433624671409940556431006914467578789295637083978237674043650310117778108351706116779984916305586421775495987378975508956048791140431255024283359347785733737789195126504018588382015292552288802497195341293061695097745746579718707146245727029462470267475917405335801508792182871314467292041530224269782549860078424171429701562215666944130459135972197898336103372231348944940011469233882503148944878036736934650550349472725561845661780670867417133912075445371514946199226431659087710517065551836921093811467345473473463720640386936509857265062291513548115951603550265428624870615137222848007291031197854832041539351933442845556395917810696811759099301920610562833324334392092302135345122201547014867636843488260697370709783633686164787330681388603816047611287145502844209241199413205056466824141060783136236605498610564091482220381884514029613985566460126719464959511600145741949589806252564666438984515288424983094208666799178017915139378569034658392521845832796081665898685897581630826214558680640650882693333102370734801878953383393221641507676182942210529988788192971116086042047588767051578121042334906480980957856614923798256450037118973870122334343740382774406353767452301050246920885294518394332141370747828868280434244513335358394016742516339736149304074089465369492649202098720078838586190936598267025922120997697545684805842694815865000177568921728240213145482262923964070019696150727700906102889055043574911533957207346344324930140252618753177036953252688276150072747687707249501261616831152448400059483689587002329794440677434068466258791029564479291115199197883745590629742887468072178850124801649685945402454471290066813168553769201340985085213495070801731124696974751200829297791500655523383091011915664777175510829217268638247617980478054420113066438062684234027031597247323980081370888378369016227561249940876726067669429466693296659823116529833924802158290898438693353770899627980433814184237969296091490757201229264871526513504146873204774232514433511838350433797348467068285339968736194960235843929335185281740676091304612493594453643385211527343483050909001039268547629153148982473165362083461273045545496058073071044163859814558788576782255498412287974284725288063667424922601092546832545363785815132443974748359606999693180023727381879963403600697393617897019962620397792930860240584011580630346602727773744139315052024785539308738546920455705734651068023520269143347399191587266306511254022765778884981602116921607394412260935266758544100586221648725006449813034673757206194820789917904359510858739510237256697797867641526593076059813550555327465602889469066425503709311717086744853885430106853281645610772749204087114795582624723406680012506692178234833932423786373196392337131199088808842204420537435239548605415320093647059142423376972814458131509999264913619522560664697405030656973377142469107323507440610661898250169890307573672577721346915506846536878564071853402146050164850400867488725714005343417645709822753752936576841141173423699471644295811578560272464118244995155503905495071116131745118090588545754271267155696251720058143502435992608749069276387849127730853512193199071352117186523637090897197856100754912852619047756498511500413683023505218913967195842543072493367700799054080891645310457325590386076525182601238428370597813085742822576652661467423661319130062545970227700965287552538979634788331893025122264735262988806946396674422995807062059165927008840716539767987967184777107355405908089798849307689345820878062546789214064971088882922749931100803486793821974553185028610339880435788229814574095958884886466712587695142423932433815450323588203837921223009186514766129193412944431199583036435111754491729354753901277144782049647041919213520782625207219163373405085187827129285349111568774990416828764505660062099603260341350518463333285971374221990781237842664064284421755456913429158994120442974346803552956859403574243055114377933088103951590277389880222982561603233590460994113875113343811953231593952818981354240766158476437734251346355340502483088427577565578261158756960188429204478228230824917606704267849731096936562426040427359910971865990363166522977627568953274160351192222737981183863132370870103656398562478954695467176253550107551586699862105129459850375684474096705627433061719024656201380662919333875235367179690554614465484270654329399353400932187081506791284191298302055996260051131420770338674443031646987072527929342578058148441981279707409502241769271614834436183685549345035687859033050503834333100120284437368624729091284755266668902051178979129291605911738844115258406036971082288818716495599961877660080111879670442426673462849177103843573780873975258197504906576536180052640858890700128429068149858968356272481741903655738116610039309503401596193617260687439325499293261093497700431376590012698133878262629268083100885436470762253963003831430685566473230165848776817543781391619568595674523983740296120130995571124276610314793056743565826728727348223513896907611244953883438686669547806762068958058547875038530946600535886968879391150759841635476568464782563516933653731380444617621571054249795662689336051722919528640141132320923617401305495676872220024293607091578693393687767252131887794862603751053888409959649549048388780480149970317204289234233612001685165390918639682323192352016971491124650109892062526806260058923300993624511542416026145288365747324493359654816723845447066274911901606480929999321336082002734456663115279437290123875048386831079315568135818914125559796726628753693546618255769501802580196798614870177286727712512454831407083669697000949765404421904614359201020926622638438202800822720512562071287541908240938934936198073593176089498859245806247065764646495707169080285686482663100079471005630744536075027169146013163538093714679370585142914253928908646733629344507115143233721665888369935035102094322209211418126580651164188059361966619759807645908442688704685201915808925716464232425194454600586519924563013700699881719223425826035487819855341697523537181245749598975976072507561548225461023366359237950559851149287626157121341906352365717508953303945269002732924545682761764243992237609033400477655490831799802050711794868772687353502183512501874802292556452376445629177909539873534675088034870726102375024734630938885521013233208740045600032051488795619763485947561984096236138680380657130339554480668089733200381480623105308325641344291970894390108608198271091866222928592050907372148006984269438701581793880738884235691113191257556080730005667263504559027470139355284519458585804710865781104891712901544492767053864209353248046505504469779156869516413986696195057145374909562089610453488621134971254832916384567684977214725014317229786256205793554395537000912856516233109900721717573923483526276374397951567259629052359711791914624630854189849249284819156131808456932659146866985018451762994966643101392391504711049900047158256781811134387271201573876441483605982795911969210003190586731488340449272439140346877655452899087851893249489484194398131711243493928043369154088944380280663039851884850492490028795037755777647498578940861593181510904602709337997353381602987101754061041386445317998555328293560804921500062657638212129917496054377195363251155532639169438334678777930716796289363510593472923785015246938992034846744564715645803774159388838833668428953571887946927509218145163023943406272150903018326122681546311436992277454091523917054459772730117402970404087912195171723965221670138098509994537925601278850907176064750530837808698384466319756992321039421157670531132380195893227873057306862231384604071036518323756238362853770916609399540901261926159750538543902646864185232695889199850593148065240871934493916065343189411470549957719456320086039143627707778988372451155309555853438084644452837575043601162637624689019984313332588938440281244122756914592490483237394782204934641398456443897292388065942775252579912436387618433987245361260135822906120265273940709069957743490068093680692310155555437220877419247221509853517367969216426085366804297149101320741441056109440036118136882175816286035019542795350169716787647581561568964198143739920829246489934534989406957573872935817611623671045652528644972870316765224786198560090055967262325742963981503661857238433301939153111921471651501853840685845538168687096075599126864661797884555226244741787766549638619071490556687748332593284211209822270043770185481315404682966364409702667422562942320944360789438777156395698717510692024935956094017774333933616212081964611557917551897431992956834395407159497706387384751307592215940948749570837070020812929011813201854796292497799593034468782647227462080529115346233384703561299447003885442147919185344191186841305660854231446645789186848785119809735933982318353465053009366004599362146891978474714336961314221247593292488826623468014462383607833155533462690464712753397427035200950595742581313434293998470890156552914864161785329749356861254892847597276896359921415477345024170158153294727127625673120531705556911990338505073391901353309498986214324969428906361872950510407793033413887572705986362989358893840782700386249913662642575754403015540897068100246745254674954419106878804783690883967591935549773127105997633303144359234094074432789818370116890604361857742126375935729414536535551540029412324859544966906182718164960073593143751420340954356403970368350894805460337862634919447779005275128164977928379240337050901287937536404265687079782027334759400050924206734823591937082507264183644247017587845199940152209616027937389926286525828872139246164021149115090013692648343951982180254904304774278125590838233084583061897690468337693447153660848825521756090949802976422052176462182324679581267077906521553856737884854245732051646771952683506808551884041890859357310105939220884041492139838854629182386664954571127559828950645077699524061478227517039488091582539196022978488172901916528076751195945841616916942310324045081186665702852222446818266197712098609309061556949806821738176291611484847445490392693368439039185299149131048592855772800254379014435743091447516318068720839125685333522677872613993854045500523937319510885083683095372109103813589447759865042662375047051686931163695245754095794152138145390714098991260969232140687838037016210184167226601630016668152297749540122722939581600310990738291317510094271182649243352967000825272764569213746669534292932500044478657887796018012110532890672869009947628041266506128841009259129679871332246152942498348300096772780218161516463355956636496047199133120282563445899509631436446247786091446005586075501515002273984151899134026286020598791187329896138302874898007161152507454011701728284307859102248069359971239969985975192696278170958780202914121189295627107522495979509831343328920881469332301815721864817548069496631627133167787234899249726449967379159317861496483156119597158585053926648608558207937051074498377270060027995799653618077091981502267009697291577767853521251402653952294575416585521042613068035224473326881986313891521330437371436848881494206062373877634842457244818914519690447491271559882574157184723415293641078773316256460980718175481313949381466101491069178804200835391700291571815964747766374252837852846383329004436224944461867906335888788464051489079964347331349742472728626595938693676933375712445573820717514947270371253935031621790371136257650459628749554456082775755488717897031610296135944034263798517148145790292075972149258789428678152650476422583329316100394579317516161136110221100675979199369282198165566270191217869956454547640206876007968054819158696767753616730730100210757743945789251789201373225211543907673818890217086105813375018534762257434157347477814756213595658573958082891327131987349330111356544481618552461097870780215334003783148189393338320150400808356185337577504193695651810139218879364979665363439079325152655067772416821376543628577018785110724799027863690126799624751421832785686962018774505421578387858179081109505653510775676954000854645420195638878873928715954543334292282602425812201718265062464767803873638545809184173848217228628786006851671598554052118269485920477326510261286119643199256372262321919111619309961530555002335396626429062834544109892756643719982199869200516461396213987904565268235462769422797814999797072592252931011719584707442470156391896027535049782332750945845226455762586511916004342455232528217257091631592211987807528710534218533827489458003249851267455798625052154379960018655257592064223594031723322592812172465572079039156999901873513564604210859379110283753839818304848679781379151109020101174704814331086799826625244743055644038649786585691903745852228570965010539372592693648991046453770686295244813606772538522577766588302602477043625784956003358976028658172105624010002385737991325675052506198453626463509988977223425438124075563093742718444274426320686539439781146748767027724633253615492809304815845261634613663484957766581254932831745045776002324379706755212366951554321916520799576164972166263974541068832891638513255923736184407338257945381039102356958712438172912776960624808565938632989530116001243600134127487259434735254040973044090777587290738748236288401713085801933897201397268307157798293870651651709287337403704763060186665107594200268570141324550904358665427320399685577844825925455496096103950403788089251136962741580983719419695760911099914865181959308360938645158340037677911618409895544278206825291167058047345476047785844905033259311116454376608587098945432791163199765985915596177575701903043247027782281836022390197964900868874495728624554046454286077899846992061141372962577494906521808715135454993217667120531796372170149661865663123142777873730917889518312381631989767435788839210357722425196619136569041015156520261373656947599755389425071437495200148543164073407468847138363357297297639557285445535891787646149746709043309019560357552010871788246707808005357496386602645669872347080481762541788753802676526263644313230472559217133152223226756171834627292252986727931881767110469414117131990368367365038903253485837984086900010927378757679674436777853561844169906577936638770517118337713701224454520208362904103873274400166896786714405908407881361146675022362697937679385986073690336963221725679224680026024083970952643383959834585764943023744288367469586070531001971968391636146365926450879860821171750618678386525758669072759726996935069625403587358193088711284979767030843491071938460748471084748739352158178733347449799628949922515399485487793300576096330687276124209842878796542647381669700330116675411439643840578399004961311102435465966234492569041396170928671289181527895239935326914728719538768779594837714291241260869773411262049513248783181015333820647263729109271655260363256477200373635581145688277908752919239648810219130050909519397835258772706312251343342081234783415788329920070318794291076887555256743909413969783036897565811878711753672346268024671998221332447023152227809009737187276373680302938596315272252679709584973747055467960214838706183840312925502056559018496217138458400224894104201467316296656348039981784592545822187481967142009074063593672193341648569937434029884232185413704585158309212520543105816801635799125610595369116335527346558618029447633008210818645083877337671657564715662035064486566090281368192702952091171763673157984629132380064596085420810157937468365015484006137270163749832708638237881330663624194557236880356278233482272972244640453950954552190498403642966021886626370934273628641933088860025266846619938997538462537305923420316836918181719528478563976120920990495063167618602166518264141608525714380174260207255302305625009401825629782530380637315313150420351514128124704710615841479289229463696111000590802897727539713713507460435897993266805176127276276108448721123318599069479449871133116704005911340545734197715147158175419056056705653841915297923002097244202594506936674950574037681282438023459475304151478705095923219986299231395383941914586391400502013942442324836092391560008282359742171637685507793594487464998918405331749879159185504471470690135244081364407711426329344299052980125399650853570593510390320566668620166011194668897163623132902597950925682766711211655295770518729117549076670964143858129661221168435058553903358543008350977280809458347818282397658447776809821599113432558234402005855338814522837386522266790264390334245376732811113109820990283632780442443439179298666346310199558041820201022072837699666348209911780784621148964838253160288715563704987805781872085160414865043317653166741588850690885772205677979074720114634749741565586747301579599322532954305171622033722223526193737292581183344229985098589740370683312489559605274746577565061845329053852148947370646038243017808022247205540392267526276679053863017993279812573899674899665404447039895051697848956926770312818425147618125731039437596705355909348289987101669236989287000856753120586494221993924269390832292759907967687375565573652971777562746496013807320413332823893359138968159293813897613294011499169866270218026389655013682976859365723982030082002418609243926611523366249073473214612299062001436791942094512429245662115169493980820240653308624749666644132488823592867028086568734557213166015501887379346864786585115826732590570195989951737099952395672862042238813246778750155861873669441376417139187012321703953248155451021030503153611590532827063660260003462196955317022178024753632113713586262592172031315162752518889501973389800496739225130962981317049867581529033911299722407896073033394639782180271053539818527266023042905598083227521791694111249679193736237897297261063795963787309817264410581905057782793075193611018712715712466231407591218537459662557053287562180451498220311764217894013602713614721725233935132934018966084170973367521649325187027882996574669471202645856514382862351737580308671966112899370198456584988529123737249972000241219571236178824135185274624891522294100538802438473800716359447763980337482304380651493479852579480552678194888270709687345410146948047906278586045510758711052708383765618575158697757444838842715616221200099133036211594236736996873650170305640487925266840520534693047744607948771536624464134858111757923574196630468759995592900804560299669821858483555845170627909794460828599701942481969782766696886005413189260268641119069590065044174913557841820894578975794093707573280693323748904185831664155568354738813009581278766324903647715361551064522863783626044170210410404099309263467762505560365368063717035192519176935271627917564999475946081433236897253746609054450062719745139146161286249464548995789488757826478988807611965911992807457377239241349021845246547292453650101621172356056786856702633460761798902866763746103268961023751872668495832889630322809559064925717316540447474543629929449621190997297203298287446595432557563626009906759967477524289337654164154165401018323070655373647059107161420414481484991550541991690681091385633867275627343675269105711922075574768442075727147516180306036953825147849157534270986991986958128634173612946881660712050195481356896447662615853431628515861597976621105855247644695413542818073205407134007228105169851147697365016265908321881245070064851284632780430000210764631763653640364046273590395482794619452935362888508032934112160893195168546495425993783639200124229522982921206401653992026260512100725850654774652685124325558145257878824247471488543174580412240917697083200782705012981499178735230338698915181750601059082864075698604900868672779028997668432849143706452535334133056392342620298285884691991615234251531804195734545700991354708150653541550543670853780447625300933447682674835394658593698184503771418445657884952371090799850765675553975638127136312570673758040326894560612586943919970871525434376848486391328003056231394094806792015007763989451462916941975745096142670755838485935282771659992112944647210665719604573634691499520817871295065729955458773051811534248465809863140176187646243794224394354045847085400539369657222136167859912642259280167225426864496180525461147685638654780608361162960179589766263730460935845310106841506045171635900495699602644293699736821396363225806203751808577686034068213416367737999718296238769638661493702986720382859682793721622827852738678894139879868443866739624667620079406357580323559324193455054970353700318914710952205325181133971330496261676500371564264784045927045853338443272326731592285134391926621426809436558535446044870641393192469293606282210282956242125704049638257121163851076453403371746285448143437231123888581041202502616429261857576143669492236825427787813561317305512295215981962582503592849751875913930808353732664943314670326780901367868097046148437401503018217861829552144975370412298385283724844263510069859026030870394941518560574100325185554692130965214516695178315224416514972110122557043405046562521326113971801307655455601297841002079364334183911722369912072605403353716445067813872052834987266068972061129366141881746777220253947581291006673394166841243935749667799621675398123404919774859135332776438642174156074235406391313795296462534973768518662808092939794765232508593408771865850692950129066538893913106426396115926602310370953069541348154959348294818916079978556017076298797138824282355948593700166629919726342678196943923231205991038725952161709615118729877332250771099759147849258582170182222127415608511572954860956402522038699831481877420626915550207030457750651512741177460924166991911520709966656162578807704457399386465318693994875669145862938597486449064075825184122897364048574290239752603220486600080918585960193422114404634834754902355872722788990329793389514611035758958832281543788172439039751384527587639307404123828206884423505977048688242261971214553421817498447288441560610444535623402383444845183669545001486515639764977521632586889939780481920215485820332133720465616500936178216674371413395412793918621780584934906399791887980358693617471732759967487480757356148113977404793075179234109479852086125398743632123297614575642959984504539309787014169052994208088625621711318974211783870467619994043478827224989910871946680927782529921638246745031483488670351690928842339958617262096011237414988374287418445295127523332875975177107857796651336332331480359414970784433387704742350744098557335687797379812164836188180368719806421864287134041849726158137901003723853859338798510414871256259634886583128332601681910099514542784819247623089568500291158936894071769025514000138170565114009829986893493864022439529208216332200754427842317897792015963067810633167477772864099200439397687046677136002341339720677911885976505665447681569759058807401621028540600385740593583279256007853729080140070458265352402412696806032003410451317005768402619548603923879820904158587720671830393262170360531006465925338658792560588200635490544911436722049946011773039738207947368771073991976567972754169386560031294800934231947047700489926615956518741085438400996772054565769469098329107532015866389388482566746330082210374937744475518053175872657339797630169428814427624250675355317460528405346569339694644720385160171955426567139226326076557690612072750523658812085204644790260480978345025944522696540154225062729519144945196065944780020412095024110314106764909585347730484733929411449839064906788067895926108490982904446728907479341921198266340966288445760009476381882239039810152823949288298310781902317623698298061162387668973696707151834793836306206309999889520835627561614649829966927519613924757579007658171394123849848231949998601868463154407626702412554487146894888037388813013463548250369194847762424585596719644490749044549389174711789109338245669457489703164511505670681807819678146872541532574830176708802153464451855892557203770515188044507650892211992393257119728430301779117056713024648476371014726603260751705736698280448496098571682089601001132936870669829941076353465775880082838877567157110654360482003066729521478923947213123376114279118450237329185515502634772780882996794726149426801428666817585560597397183063015772126279571078917796250930031515951444852267666815006282174152333391320750504072214543773511620182443866639749007725974729156407084481829324261880024904939486522491164913174464416152780347143990665330363588115812931214465636756500524451573717871782463467810371826640085741713350977946011059642059939878900266059367153983888348464090074235742855384029396654354504908780983154480059182608247152991574548765746904300462628088027620983542101360385748563138102028819462117952226675111761934570779595993989304577523764106484165287671749905244696732365131773060775326918483158303652543160521316743467200760101613205135845862683777878674703941524995846120894309086527301884314144168852718164848305743533246698884700559819155887180041841334450296239409126078934530673636273150177928617846134594380354227094880698581572737836988712532022095113008872250797933073105139823366016439901243467966170843853994292929296223873930307229435560012148756738077529185485651609297685066873055012570929672975439995346072703179457264468725165581339421109852081661243408594824598136527001460605484628220691276134862731119345957644948840100475026406245323828170312087006911235714314091793470193213882955080748777310371598696844401132380288652835712075678450550122290743008981106611457308942290389479660580727777924548978378343719655776470061464327366033843710292328304217353761858680705503735864261791811193023704784111760128199375994820735283253248428359448525304258212506281528400945931145285294169355286092294667467080570677598963043868320594320125872074927449005434232723075512030492455497234671614086250789369453822724276937129678904572138195032503565110141093164358000987130878972832238566663928605865178236169816088572990749403607694084201449773692304974313623090523160358654713376690453400958617545967481776699764761174384140867516563285296744990442798784023744233789690887583114259818608413706784767060461575498816423814905198417179674138511252148053111939853412761629209202506890138976199538302825294802087084972060661438840765574008722515260295583124926779819858471417002108963971310346847414783138905968240078182989592631493647720504800875891803822039296447015616888267324754302141754490925441840252230850083805104274262548761662025438132844617345351237275415094006072661144041237044367177258247370031586692182416459604787811656601468469873516464491973772314137390275863001775648473282746401940760578778227184141025997529259869173810894176373153043167116879464737751274767887627470930632914482362224393413381161288158863728467683267372268267212250447474269896318150599323454540470586231461205900679245152181666205457118260158147238567351931252827887670828388156272837185170625268334115995435819144815660614844575049007956421852150249211191685213936330423919683850251818134385324892774096894449709731283964955011383536116497771071902190619470109435032599574546672239738402838475393069148851247329562071855337239030204596319016625951664869994456858518883800325760957766336911496850803679407285344784489843817495391129602176602544991623281126748718312049634505513252563853060670035432727437912744430793545303039373306612961145608541792862572865362005114900563028548343622236815295732604840565018488219922019614845059077010435976492811551058202087316147017837654675358452821190191165439608247645429655076991823442446603205989233371585432805509798676323218465755225675973316363847244148522486700972911139876292677876660126363422774517282909807132880706100418392961775886115733251145155450166861723885891711776996076888832136104471635823093272407804361045863602922528387528913651844308527454605245155615632084932714168133491510713361525905858039526571272081880336433234295860873937993267269242623677965639262217326842073017364251154073562608940862679412778895250873558060790492671937787373398848139356190411951403302682172882294660542248396143743434873428094275510638895870944148081696992893812088041912210116434594089889838620276794925341303927649318517516557036965284350038556442524991328174190130555763062208572561391290784562186378643241761919741883555452702733885410503151848706005845167583960064591907928144372794878449798009347400171482495359577588031988300718119627637620681554924911657345871656931611735015074985463208075984192525265794492867939628862635484554146372059994512449658646730448739933018092333472771959949773084133475594985794774593757881894823048184966170583458369184293011978561390683467835678193024892378602097716775940823151300253972295525169700243519214494500551297422053509802704417885240909828470328154123764033783833250093751960118384985977328295671020087546909559229858108227340537984681494932848090351943720790124395554281550287274278044338985298198839284000100277140330061004407757773580587169031550325232410761192851844084961535376897380274635232776333779688350196141729985576621822679448910274481455768201714694223771772173351017829210290300268724815581639829910819663210725882193144389265184445315772962157874968230501552627808290976593864688493269739084136199943781490013875283209107650545019539337368418408975368607967360476386232957391686291345309069029141746857126793404995472052391517193408745372281267029701063534100370475445612548470908758030721120185935275406779544705137574121432495685162526156027336876786272855877641264568981808116797651944737432083222551163296287347818360957299343784298873357716867358914559213681974203127037833109042689787895631071521534471217962476981461865991967701841719769245705794126612120526776893171041382509406768733159716819783718711686660250838362511738743361933456636837900898967074644019635270046696979028441899845467175356695928927839253910085380563206533898698053683633821026979194775838886029123283299587328260460931389594688465789944710354561901565337434600794870190761251382422340474427289949601760660241070242968539953493393827493824326798601986564588956584041294531892599555460730641939263288082763071890813009071247029674415324277871938904313311731604143379284163872184631772404707634580805486190026779314832874417757357781798337746761349394553879909152840067050322057797850765179453520371325966331281793703547371607228308343303669027493470286102537358878002837581631047972978257393902032508695034849327696435881892832287699437493416195317055870804703036285470734846050071183935557028128828801100355829976808303667677399969145946525043668713215541699865754878986752769030683885379411135122112280521792748213526922686043187427440458393661600716011331865552267907181593565276805183287680085466765126823049435870786884210550714858566717756809457095335132537463534184682505613322092590814614863423848765990162117784236082142680299514628454402712740704453117769704024789051153140456665316901379915452287811929257041001089460354983826124534587829869630386893876653318684550693648071464081088022476727200057314809584605754064729380458731003945706591167223536272232202538769582691157078620445252744784176366646391818999553003141903260164652751130597195624297738930228585809639339557792452161803641332975133264703693651633136407063694339560189329906643663660257532648718274833249013334653271535477757922581965206589412191814111717596056693318412904787060228390721661667725867786120887126571016742675471458190164986146453177125518484997447732475051785102088985538037210548288913616299160659165070754883124775051478090330609733871875403512209807563204295071785326969226268701699553815087202821746205408947005429415905712386883107705425062951808894872508679898850166755032788648513012449642682485768305035349923554965183628045822961842318107855110020339861917343380841108452278763635993917186215312604358274983792999370784850554848080033179434559818221936629906862137671957060852551881947051358407921035196634264140827809994352292757430088504564548574578799327946955850624181005889660639556529352517183325972360490487202043785719431587286963978832424372997983869951420300368807582653005278961505957686716239103119586097415054027379633159101843010364798095932860771557806219415879180964349974709448665370948576638702155562416436228398194209583065106006662227073491762038574020692947175479439741403948319126654189049613631012474590372047338549588793623617955012130709306692030835264472804071649745435292853889143096955398985054963578508279922536509477768441594668780869198202536328446335331446342983551854192982141653812122549641548795093834768917161733592199705967177392524269652652942051554272041856237635058074877877897317050456583466682944857466624801181516649473158527532744954026093093981929669646365414916420074503694909462522832417383861553655817793037095721418447133647256421725762720645955171730608699140662182814893341378174829332063851214605793954786306769404276314236198739435066230458444251745570922624435775980660199487444658347450150412033070269268272305040082362185162445188445013988023706789531470001610171537334548279684567460481895798255388476294670447594570189747219597542945999647099249380588054831482568972798045434678857800124181201232054129707037738624179415492316645912791396684599266601453128454652849161342006295316566577417705173970317518288742175088777883651756179898549530270982028616386108382281158465289944733252640337855068757341514796558594915416394965076146886630967750512235572527536634136102213202991747429440856319053668875244904372978747200079148085126182977357359907972220820128136086291025813676442242817546564697817914756245059216452041593675107059908304963335179608965287012561967255947002144172688965681968711256231966653419210379804053029029401769084226954399587619435965298140546056587154552691535494900574171966854899076729128563928205780264768408530502915590190036734732079526934315686614886724290508972325956204753456622514291181742861683251488247417623984143976182874443770470507701343525090600622841319879992520918224052572046800066333186467296473075864232295042175279476167077524161780921567895704113911107964985787168549379339689722340798006587123918102519329662104779518202766964876619829034455332259490577404958848637274325325598161803362943059534430350087033991290112802824012469884797803847875665412440677546075519032139161113200530031904929439869347397138445838733189684784019675115917589686974279828711571704158007303711699698111728543078409596433626799915260682068177485286501001623992022378631040982187864944263878375753609272631999400827350547118718790112519227235567665683793196061578495238573147341865568985419652146553986894979678125674072564900081365739343947503554196313205580580792549462320394778373221556127311237862752231089781909341081869199463053365942629959096122379246159697527416356003133610002800461335620604394576483724988489029492459658787742818614843366061048139439150652278404052726436489545543339209625569853728893756147063487895335182581803955497968393438475514060453439816516922872530901158928599132806739168819124690190917062938330097380099899290103576629819983941315555945742204167752137006228119151192835364859631842124797746626695297802936589799922930695284944118940860049241522380762653300813854678283544116425190922930241008277509973639726566195367038217280204045918841750068923911013468409346297930984860886626826713327981774897838628026582436458217419109332123337981276258048337258642589297715514963496233317752900643390669098392432491470443404660480934009880603579205900231017171947552901359003659531227046248281673960926687125480875362445836807580437397363002330655422698146752003810252561592448236716814336715571718421607085089468768650948305050448428913837266826240846796690883643119947480887922134735457746107974614982242126968109106492845031471926117901610355428776653790525427822270865500687742650572082006552812521623220770473671007428299200958870825246802319970179989964007504789872313746297960073040373331572081117820413265692130002659662063251080240489865768820280846022956500012080401715267308099476304114419683381101138885972771968379614972179158312370847420981651768873744388488418860364007436273586213867174962585515720732886136237621446250037838310787395206864109846699283915271841384057854718235208177924616981812689939828735794524057927710346879482985227527489369674385902673423227679351446457942549427846461893453610861782673444574713195660295875957978139882617550927377331321323872535503085638584571801277880592526630563570589340130455980055127778093928402025583209605368314707503443855988544766148569968515879805612367808573073163883467672370422740782501550905146159574060627436664494096435525766598278199079209051405077344827315234799733836176567310535961546106076803853853956105233285134482857600851731792779672273778167067708959266850089860666794850668095363500856145218277029241105893662084538949703844936111925436933599801117096266758113069390751646951454873820599300008001293519528223545491197609835174844026117497899726232270677711928046960416271640589546341184125542955623874492559533238732642098545030559514641663618859041468066595568485508948632525039874668196426511394178781292076705045962267944412262407446554049745836830320758385808943129815977219566538830543173717997621316379112292577960487069862581202030137787971696738073159843833758042640721718735022985219928316604905048438072659845829571555848780294288503800058309054113577747168719169895075383867845482147825034066335557357639545436014636642171600648626493207229333515536875115822672551593185528464346821111136274499347019618253687030771834157582281017610212266044251688266864329812773588647648684928597715882973458572272648449602558256803973800191527720136439538018970072230476455547774259690886870713242703276070255902143883005410746091193439541192092223127251348361253797841409447591083137956311265942114245766261821873295425707057991182621856127173079701533062482861294873337119868878763300392850296835421865241560955693132575869199037128109113199075333631337453548978215834617250573986868934378439942451774604201998300267414672748142754394745399443946148319352038932649173584827433026609436878735819846263387309749193762426142833349858661626896885245018931785706756132302127417651399653385270542203281674186997960488856543157527500199046280502538944629025698774331951742488331924083283491739791208369069705814201307607559953310131606974819809928529929634768633927875564166603044349292378372293178205630485884361534775894807970580102500500598873020635010800586294729942813135702189373638722168158636915140753292362959517652214532664742890387289670126896004677001134564990982691867104972998968761235763154903049286659159904641700764617898455236354044806017397155