3970426769855728620726950043298585638204189752624707492507826785348168587552725195834185977545179986844590862382876384881636243142837386373601898437925189704128411140878148238171874492373796637851939743666474662001338617271056140024481039596706830701429634349352800003963533227297440313848783063064461824247976611742027805201618165247762469131206518299720981807322109345368489040969842931011854164099525474378374369552664849265665627165593430866722088473499965527244894147124806015962201108750584964388001582194780910121997055542070981139359728719831031736381698787891826708680574787860599668536325408089948095473159219186940672113021026836473799710729323480602905118791339618599662504842912213824694837798657514865250552773155625008787643404981516661849165627128006871112511663329504410083706607384406757823155116668666047608437887453135551072738594208979812590345669115222595355875773654914948515527059209845332909274766160021574270201295739020957434041153300738869998571474470223638843173257134023980028566588952736054470184597885997844403398572277615734183872372156507837784012783356765153390516276050739230418844511126466527244950934957909893245368014666391887880275076955370817618175814093781719326911549631492210891291670741673375430403543874854984141125393720274324689066542940355578017480418940318325079273309867778517558453594427924941382278045996652497856399082477505832646236892142927656555702463947211934523748030796352822179574395489942326120199734927244101631179164406119129002505239749803020047497109111022372805870861164269018828730942170460058144361787699571345430657694700514041129999846081625690460931992407510519404102275845881985075315177128169580807481970179686218735558365213293032230347216938801456292724054458781715536230010156876158564900778859413147148263941557413803881777629033758684979125876157545612485398774532039942429045890362600140017570773667910815405431602726728475553820611703353897967139812660216608679750185475261985977233365926784769888325952041648372708391970356334277862177332169449379467402146673459767500727661699545396501178513580231213079149104733384501352701825957254279289652991341577858030526351879797663952097255030833995521708788544840150885388372761324405273028512527515044981158381831359662513766517022511636465548784641802279821533885958604169037502682819892956235721681007910760929110100495128601869960661737830842962901423394470467434608381476662853005444891938681041880027693989290834223417285380579681341730769743175417145784832790935018085969277828543121504874868370279875703486340652713200787624651539119468002168440770859512977131042998809015950038013064262975070379259161767860672079495792200237263279355131209406455925255389005433378981102052698280716244155799036824035230509428409124549129022615118642603645495408863875888059660435795059608249125413092807764817387993853787790241651831617008847636922300170204460554625336210984577817924945482437809443164262620302194699148392182137443969232272482952966795904217951348372590849044230910510942648873710060055959483485436530794582963960975471410858302055035593889286373920061147088284797357635654391683790905703532911746410086415683062053634087289463115123774333639945218617436372783205582016480385816787421069238668227539178106697265008114048804727470397107877603104025520310893640689300188948268760313355444709877817825619546322454890335806783464157729774316662141184765343790215988965396062277395862307776898497293823529856595172312199789628347730083968617225467677555417352125233530491214851528374826661874497850890011597659487979535623163848937939189844893580533106512807690483402397876235398718360550229368618948636360899661597643675601473368231867846812972737094555702049863049724415702985785140611925901215298639110419988502564666257388907761772824713563829296811650440226394676058315797717309565519531270638244185654426156112663617744808732140706148864485651013887268141366436051938476941152531368172318961577760507102317571608426758544701478429249571339409351027871252499242267214458308333435223348598512839561906836660914536871730582876722822505162163516293377335512185377627144360721341778511072381829681306842814958036987185424517475616290471976789478297739181838400130177375953991810593412606556569577304800209481531982143898454401142632653601855944269549394735950123499759935530057901931314900912262148141695700490684725226218544868683743313362421893415047802288146521853199331421863477157486200953139448481633720067883622252348661506455518991007786148374509475536271833632832500215142503441005633716089362523645150410865966429701409436698053579510607293846826077011670585833885955675060652259951129177760049634192699664980985098915681796659179339205704793303194763933508416450480951430761180657940301252898836932085162271337032162287567351944243759086110813139368115850954479755653374366670616428003108545521097324851429480132942253117760879512097140099003307623944711798640859664773684014887171642712687672649016485887365082246518886543717719357946673181315077855410891663699393051360492909685236215382642581986122262462431954676215589748837459775012365461939550108083967612589091327873966822933831128889148047280067363055359733955744758563382488125531176040336900486342770929832495512216250941999523801993887027578800525520710772053243631333191981934596568535841265528662071279363822579333927044607463771998835217474408701506076723190280073595242783663824421193402530537997421700076358791900251404568357000271288913893984919160517353153271309191571970361377439164480808938858906193130268001928466446340125026635058075885978824469103226729493998896384972764101122554226165565444083570847367570735158775332976474732816542290364989767390597235709980535864801299275005055888458347300897387516534144740238073908639728566227981395870893601001875848604327025265842822292392580064824367070596070363592732080086579005802862570607056330548557214225816003350321027750805661492915496106442474686362443919069350800411155303762498633935941876966007223853139389252646140238934635467743057995820185899923716280826690905605297206795788060688660230230891420140710388294253120253286366408422504533462888190115543170721574834388634913732854408826898056449977741233517792133025615511166054838952203982206608279721947642035821052350671331259232336190393986191336394438654677801411550959668891531984859217008150215301278158312400996918618424455086213039960111200891763506051560282695582694815805071432037294222582140300892383881934238958480739943084163391780883307102041014909307724164232310640360665776267108870286619941916053119696313023801830492496588293514574215517998171221470029858209767188640439257370517520515436402120085029054782843596557191732054163675570059233583139958022238644911569664688046360355168481256757914881340154891827433282407173975353598503082274918346597305692138597358756984475300059790359573422167933621079609605684610677910236030403610581552010572540342365079120481539684896944298232479086998936180159548232652486633531230034743868712536892141704067281394769045927281961185256762480619186191793521618836452038286348357967146598750543289482310954880587201951827881109158380485964013743939012890911926765803490991276679680860851944620211551641879446304480476671034165221385563407037586623380484990422560117457261019672000159649791958079825541752720921046901971176983865420595877969074774961079667953595544032729726103699896753458717272775958830551810899565811682419797383177232313303350831000351320059467180312752188171372307440555592211343628937754982113967922572703938291184950458760067859106386770509628114159026032717638376044004076988304306910292065892507907414103943374075094300890140841683093397725133733173252377351529829268030553927234660897533685678594398443845669026115969337904753293138422088091602208132922498727131983191900071291115407747529233321741931948177399839504367381623807991096803633626587013742815295095294884258511279081456747377986416895321282310228474058786574115805348567709831678073952609021602246193873756923820126486398569894403891166758141254803542499388839118325901825041531895035073856877600191283898942021534032427004874894023402296599752266409110597087489739068717683909649661620429178051957839607998962829981034951856952646506306192484483597982168864038799329949297736185884191977480259282286106979688176585683321456475604315913972799348916258493141601143645933112156958573423837908012487981292417103961303686377189437125255506327623753011749467301123659209932604979271456392133246611542535796283111356986290525187331594164793004240839559511139863912428897208722716761623736722014266146976849020797969243915117643258955639542611307331623245009335120794748909130864036360861894316495860761675752165892988068400159646712889365572161350266007023097668957883441657893810510323622499284972327493272564526658921260199597829568886142505160063199209268940807796300560177184503524450245325094635781899517077420965099532132605184364216023866863462416639900428954486099475162408740303303356241780399247853093977908338773398577507531227537824514458225655502253917130883576038473305960411747148951040307000858288775827002726522726866667652571458941742924686858444101976124360165340542000686520040137850387404938992192260823928041837865606090890009336328710515708494055755734745788310292354824673188653137612190932951196579047355121545306516519705924682586212834999529171822803395864012644828327379297480760090676088342835678406336174141150228836761054512452195713228344466359026121682838048620052896233879872485553837742515510800524911899037593977741903564644607098278182941248912112468923393103030849043177068280536429869179473568462889586415468110197014062318265443402153690411521232748980806341792907267308461595869668748483552742578209155315991868632571836011268198103744234320194441535236362182093467881214333788941465001329528964653884218596480536047279231128693972303263801864578296220332292680820246527713170000622766085254246360023794112112284550159784118845957226737959187633758636157032627350024820848502988841567371533369472864848709997872939766829266104390874754753431734601283219830279257632107441614185204525518545561234454208360778309762213177624748193613550538468434666973736211030492848991747580046644027748852901185975159818913688080854740930058556161152944312120106680774789644350465760191403524192260648502038084660689820282702929093854158967433492485513883086985371797583226576824376654063661299468117430198770218884390656886832643497407285306295624790479062226665416144674394967336374380503260801425893323819553291629789106187230819251533588917070058068687410492327571930721539634431309050100342190283266320394737978884994938247276693336365749536424814207021858518942589163016758230660373558410205564470781467381358495841792713369707786922761996745220399661907978757349526615289801840707807695570305367928456447622702593363820850386179925669321502851288560655693300302869702952148366123189759090120406486672997733446865840750762713451129329002447134618793770052398500543443798401973742120225465226380635904755942227549662119642380344944320915248902969271245473518902445436961751057075190747199099334877474650765462082066876785718196843309375822120336014692164073667097925418620764466935241648914713506057829906342945560625426897258854636637271575122184737327142938391055882939541760243075880083823039517811876043077384963962354668629301588183490238725011357713685515674583832855728230465147405067634082366652224058095510360867520938275930153669468020056133896899716200325781638530536240639219290821854432695549503228281213132214400853012667627959778800123445896971283559212007985866888133712310448704725925723310999812184426460340713316999320310391610162709843825266856788720850921047318293586102887465248224326420252172530151330176790523955607732940194219352369049002308869632937956377313559554564705691555849544282913368323770250719974459403821122459381769784756643199049322534780729995963349004413317250504983065954441785786138560395446844240736280459938641497437071666080154782828721695735589286452061177555748510789353912841486793801566140902070006397681730300691758472562779870410278441582652738575731018996047065919178333607465948149049643450942959892253999494308203278513617813792918208257787618935797058839119410241066845607491070776660671522547654348908757854932508566719063739173074849635128378235906813297215512997950472310233734416745466027227012060391325798140714361963695397603633875345169241777864234873533907294829345369447234757144408899628111055582537260736440991871844655850318662398461015114392476841327468335564311523034573811405648384217764205357761118590640215053475151672117983105055010131636084509767988687097592194118282980431407106974773432742264082380324475285882250603978294603831974421940538864824212032502896084526621774560943474688839118726179841919476461718276150061843560545746783330411348954961156502656121799132173307203609814475631344424337655085816176158595168293646080746255836453169929435355719327402027511156472464317852424366007309151277824060492287529966676307312430112628678997649646203943685929941103970860534598129414882475379580888964927477380231620967404453542349831688317340513500350896250484368526368102253514549629254393739682328138454805260223248687061929151075810391827849164932738831847054545575657441368861145028213918362919585220466353467979891182928220279801848573829527506625917849866856941899182144805577069843830516210390308522003560376251634785317346387239530896823559613082623358096720674763446891762061233669468040018584829509685982015472328232343292674535593082294842084917241570838391841150480864072563288445429358533659797784181437766600152098942317397166575729595166271481386528357163721203163779397546674236062779042272599966896641209632338616521848107094783348569432676537290384295094472807653507764428148286616126663943619069746289004922594116872167538535409128038420779190788095748691242154067800977987065865340219334650056836834623429005540561505960976569253615967868413470620117115761797058655341283530592614425002281997852396425779839000443944173362048377029607580590535930457784988816519580238387441044189867266148800758782621476570089975702426306382250423660227326214894036777305530683940962794326816219997627281349633630800342924556555227045270134507697622925380946478272800814274033895097626720377295485567994307687296059622759479027674373703572201806878044991904662099470827148238916721221311887087934927732565457039252393471270974477250406952765780919367485583930655796491668146238264913462765831400040216030754570072428695288328423455168134692709951821349181024469976899269530525617841760972329317906932986939500285462459792634334028326920871990546782762925368861603396483573527206572775301188248688226674937767415792223441376235067735228005847326649994131855361045568468943785340340753848475689145982786154699633609093930408412901289895364337608508992942884184203292839362132992882176365873203633816752065264442650396874105569851536732358803179208996317974859913586822612920940730471268654555914597868161155129176393159614105664340256371884802541867729249716151277904093574728914797611693218335135545892275077546208467798532045609189416023777408245024987192652671522234602352287789178997163421583717178313631300328127833186235606323164528769701513307726459910653979432308278430860633278170235533486716634587563637955772796349797468022471238691396864143787666403215562685445574261685054820461892348606151618135203809382338518742503229390203723114142385237001362784624644027449863001625336572751214688191836722132305838496771993362271465048251581075925502601037265301915741899007690150420524341972063648738738408423565627061159356710593367208050417979775991827509558994725520571268246835928779635424997459506733667251853720683136636371332006362197282655624037600238371671218438266522084488258372119376597440276829037476301138350287847682709482395043773887722851645303683522851366733122805080144784042305680727491703093592516984498729297369119280699949200809358231150897808837896791612702738661776866657430219999060330514370458134890543675664570504665003158961451416873340898958325935240137382434122556646432374877402516244597900165820464701189939180704263054071653600070299182190171597993491556927934053071281309558357707863555258654061290420386122992678923559325721940983011634823091994349281753858847148312794104203738657832117002727668847258788151027700912723095752546371240055257028120302702288442179393309925738541582753971725033962303296869623871056354427021328658988675547825020765218911153929817685239921424400021822948230122990413315558909901094388112235424476817463363254463992713036589037619365691027563953134548296199951897467669326712036480300929915095831598520291504252283285276875469518471401551076304632250848484346284424589797337800126111950494023466915984628418520142348387890146738326799530482407631470259264848770350313352603376524559486871649774816142413750403858706493557435916531873158199584364003359103794458636941861710156656991911281736590285471543569224824015244317077096533798054077450951585017814523187456261768514500668260042494812558185361213664730557561801282538457983104470844900666846075329174862273620714105271865562095912409726098160680108294841140642992865474381349460280774889944133429966405549595624691079074498730637388833892454924132139578442516254148427773265778981949784046671086939616933511309594573977544753346308902353493443800298952437771402302538887122512532337681368519749092971793945208442200447298172181479548843463317547691311238447684549434771002867536778892736495940983360461747500187076240990594583810966031882800617342432491959331338931120401573317551790985829053857069110267609354434523015020305002923950710646190643955467597008300706787852461426721378027738668739317192338581163390193976843627658377501450676006126413198460126953713959926627239870280036149745016402404067780678796809514488099630981497166133912692644092891865954003719333735094269769958144730141422466839339865831737541025139281528211145031615898553765279207369280305819070550415781309229966984024515423589520108238161058746149601253501464575308215320295919870905366512960490311854973465452453989540836886927113501958493739038982076664257068429524363747750559756322848555497359896171946091977619993859398024013620724424522293293678507410811184267600162392611079820671753971398168175404675873766823009396536342259790268846123716116055708343579559685560173454076771252187545490458005123479986554789007752201357258761118007662041041817047182908884995706562776970052756574875654144624270558245341627284762337741113541696420055117946422656330452806976618624246930673939563618899596158020444048105598455716606556162064018523333883738310970625342549950812146535819740748701345590595676891544036900074855089548597155844999403093001596094958817523117506556856267326926321202055376037782478195827529151381687124837506853662255907923161320132615476051428743244037443685699950598203446210644158993251811716866686021653627133022357539601388956659715087891104439293154292088753724333123243787706022451750535818341654988357037630985050114605540706104930633407495901012583137108728212286537377877989238542263135957286949677355153086931167571177805499456182608016700826674782572022067786056867438410188657914116423102808584337189107063754176818239429378702510430136412820412335288215085237381395036329370503132063562196934064668200138198512718175385088484851672795515477749666105703542037204484045683368224834404769963693132546105431263657197564550829233497117651788153862629075167081431142908186992279542549056865008123323232832160014278274860361274516930123430441878796182228456807590612065000287066775008843433293255451051080896564064859103522847393509617796342859334254507781521882743423058333267792153822085263437889285029446216431824032558802690619121176798332524927173964123285107314094837080572290686008427947789289663471429658717328261965733762728075217182064896623729393770943840462281597977649921961348343628764993043830505507694838662034801301705099059600469853620823304544615214129180137112484476817262633155677696609321569917698325599915472232802834081082742685144135683906197470979078352611135649117417126874962860605967080645666307120817304591561158867831498138841932763122288394271965104917802096273585803743170376887388179489006464045420737774463192010958969505000542626394840150361366252113613778030770154170207343979280542920823900916433554299686514669961944234336970235755613274631527712245779377400075537864327580352586154091732839383079412260396544169568741925963260212448477032449405280483979306428672410223578419047185483424066924276208666507411220779111527210638259125776528640728639791512686402424992644418590354333584852403645045300742591636060319804144408012543627887950657799689093534436791053742547513382240150503957527733017362023351676781732138990663974700902348415184368571370437834205306630481090426284421465258778219882920030172890233480915883704682985998906286310669660148419988176765665284926982848963704792519296763392884472767653933403765784460799087435702477770111597076512592590343914161838950100917568718077002493909093998009090746628425135485775785084985984969622465088527104672281679278764637983481344054421740817834601175863201435841283467448222792919496817951545674020764697877168117799495659117529596055842559460239289744766428387983577733679793611596063615453252509382650529891051757019554979139068323385374579654456301799712719552880418966831376907187158330395583625412005242843651377201240798161702913537821187324145269349155235537881673782524938564499314838481279336615968362118658599083822049983654241077299165014922315510518883308515345261763165497059100099430281816332408725374179080199032050232865015998425932841850864079193379981570323816191387473880799037025173205596216345092370450364166784105664386011520858903949356035446012540152204390180474410123777479623738069498516664116138505343215689586436397953464088938573894353302955585380636145938896175511852048606135208923426306913575660975745468989871213953545893460457921578376263485770125714051006899046883419858425447018524634314228907359244087631332284657089401302137062470133267586051750690831044840087100537286981166136210324718717528571300998105828440473944826579337577577488960814952357739487321078835673570561057282965904746844737305752718814543849340714409973603278459331795170104186636624985203058081161788799217880543931462778677884952731753531686980026303271959345528703157215903916657074160195657528943664265656212019535645111964758024540006738930993457079166532344808919692486485721538445108343823625584823461044297042563497870242700183530634054869025474152176357476729783298675587025540758493140822701120098547359804889739054136316529528473119090588451457860501253116053364274322177323010161286608204641078501729552963970109769690055162013295241438835845822791896312624943577711505190773952132874036531898670820349417712035312726370459226209344385067270802174711857789410454883480117298505987163941883928316755776406257855662956045438269934412152887572139425139772509593044260559307621574087055215275679006151182845002401207738365823833448567851351592613497223815198543409184329579840189912203723688929947370337222341233554836294197091839862695929052408891521931630713700069552468609599641835009081451557503759629579443636137145280346196461333381235598211026554688298844078416539099921124789248168952459200854864866979447371288073219139215702189886821668786683905928850420749637210476355914314807692735710673405443179771112693362636118185525170598466577836263537248066529136285031699372009452177074736640368872041989299235552250633398325213427525555478923259212642585107440202857305197512544819167678422443729469088730095586493261013358621577575459569017766183294620592759417052008900786495724297257423474189480280259999462982707459897315253281317306243541712468448179605033275915540894065312156974835449867358813892309931146834228872858584475765095989003787200097273131578145654243153531352362189492650565020555861214450686805855110176679734221343888857547033644652320393815950239014779582847302545675966551585486964922206947202760256911169618315717038622442628644245452424365837630402647919774208754007433027781731096797775296072572325628306579689369136765373620863425265913981927831407044317493746273875163366149390195626376740478755272608223252261824461146183068586757679994121314751976695991840425182182695726202309068567642794213521780263884125021877542711232584763899187690192370134316430799265545463222242570584025779748664219765087312669628131608573440862838347178335307221482340684770964898505449980702941175144512619008959403401482777894419971232142038989320478756436987984008322626514447495360014613301801634996557092742379470841182262426816561370555883721715923159402093740887942421793875467783724933308387181423502999436214696080420368087120480780724356715424466403301023072150123658229872219969200403810035058313246123455342272223604607212144478190536161388511871341172487834743706413542403591626844082876340720462716957316579153562849483555691863559290847853119494342797267443899728703599910950394664490145525597378738629614753129669783235885623596369230606028085953287876448798425358428120928424853531285164917553395108200152638991110627128883212733554669923723935908611409820194459916909272676166037187060189535526217245402029723432248266229772403128778971943297422348061049289602479377462891643978885999828788935973629818072470259748720508392999252243140487502487259209149348374598812951712050775705710754591041832128309505572053625690159254347569490340808113475945050976310177117141132943390895400408139156967672885080310400940990804729415283462061002143138137218691632261507803913228531455276046109425586367758181934070507202822875433060736644738246206037319507140557530295679503134747479439144299953082550401814298035989993323329627982933024553357945845278500563352555967312748543037654415562807053659480765519922688130686876682948997963425417776690659346014319108804156798475135290125726158078958363043880404923036619235042937774178467518901315076900514808585092949790691722320020072552311820125194164246579571679835076159271881207621388236494387884500438617747510659582222661450800954826591353418376699965000091187669229354706533203199600709917674606542912566996305376356248016476121422689378919546171896607355968110489317208262889069730465061873911852583309697694677613129306698783931271231001568230642582242020414541775985032855810178303605657011289777381666158266006367922633852730568625340276886513206469855128174047572699287939260807892305123627475735764567593584374604126598236810387734583942389740262911745426565349797182321306332624708341907532402210553694227589069994094848089201366725158906813802201796605536672244869750342622953132792345903137623699733906192415695929510824696056929310029271840332393386846541143185188005299223453891586130245653261072591524970350418122157722049247507769166292243156372045359374125992918648863288925230775713126716917872758087880403571142465037638415681599388328785890046540313164633792730563442921035690622039402882165222566869962532504808759047254776032619516869020511486380106583287559410097009051299837958517936682533632342358478362157008801560723087312647484221446247027274356754495650499921075600403130575241680156295188386856997211378992051176796314143839429241378168474582162893317700642677704621469918134314646426581848528080227128932464839481039114976884907629512759233181285107604282783455407782706015234754424843122567118896167879392768200795017374086865571368298574395465077704212809357593413260609245843523044324260019351777747771356608913445972073919187852539765426217561159456757766542805881323955711936872457233988168647889175756840527772595884701676354372847521583361610209670837472909293946105531602722799773420720749134754208478641810898140112197100586016953817909088893905224944093604290671472370250551173567077337857824061209234390407854551394170853359470303832872658014253760855181039079453641916818244610695214317224260535636318242604774395737560096040614256180441828368932698697302464899407542735671565724693424760159100965139606852325794137604629639626249119795037617030891253227199814725705208069772851987309029000483953584380368644732563575475514819168506633407871138485032583965981732406846534757506000268655253337688263926392142842878744260603471298590229543728006871308368705935794717761143043721861697568152631112889903207670756826673588752863142142462239205997565914899085300514751084005504361952332230870831217315716276713808132366443427648389861588160550364600244687351180176225141197233694728187812031048671286406120590962780562775870747975516229278264442599876454439136797310237164518877854490944957526367391108559447222772776262925662401611477411144412790417619275415577625466570022391332004021663221993430198200439573883296452875974317336156200168546875411708295737461187807823678365917097927590247465145838206042634443236086110856461055885499753107531149751846583788277716782002866980966040708077994675244555741439536131111028718185619165649893846450571773545354925832307396670226383450814459842425666405062195723079160505599732309949456765338746653614273157488483338015649513179540968283022860203004679520948892989717110307327738196058142931229100822952694468288993707901123044126312681127956745016816929333846588746958754328830521124157442190975560446878762714936352106316403960014602589751255880000732382689791252410486511090100174303671640766917056607717727834374631706882483288849620302186523087257836184502497359499608350668494288896247586221160130966033882300190825574106223337433137515856965948596916648071725138890475061656406107761669841355144181697853404014891057932167681199269044485897386482286492161370306211750240078617945584800938078790875899807779463911401595393263250840830507454755996155695012347331315365111596186791361862197830061508120279988567794881190984980141063180079936605194203392791805912220338322992501022361530611202434577400609959052398451523654907464205275161077207152305671061807328845461569399004335802008199922717253400339340774264565484376657383734767702879206752291739394133516993673951882458787951891315666355722118206542320115204335902547119430260915248359889323913168889823859940475201290232524941739711006001149679808831094589662544755455560537418301510969925170645181647601443283434431423941006525689459594923266710852157357919478423483976293964950276902703741594932339959246741868559739104363757090986911585771627501421857233942041632781268421271324410234638832995264390232360592044067420214513030579503849908202609452574925239286247531421251512557715207731660384038181316477623305825699865804318136268805677008590160047627159972698488955766516532646308124011281129925591243806060701513015144257259819933214920090252654178504329200104536938038153319736697029950071424127031847289252912614610727860372175260988914106467829991688616924550659440950597389289457218911376431386471521250289124956747984528766303556781800722118793581044810451816485675657968748006200692748829578035590387252063694753027810767560120258084381650036439110296952065091909338504517251273292987294794884828678039865982212501230609198570348141137735957207330301311169103918131804400121954095226433353655469659100112218728340083319784230205115227559331265264606574908028549162928862989506966614115918873780082968166116713475886487265643651848664376947395874522359813279453220758353192679121467348765711044119945264432445691336113684888209294821264509068201812280679490419991028488395215307626793732784774877625564186726589168432711288666339895303985634640594775993850594483914313876331491868467843893231623165442086225312258943322656729135679987600141467361694950532455913901772796933779948434487732324615792071665042936870228092324886365673839343637325347257480969605262546581945687222947796793654270525274369837659854533203678006168786123017772758111542800710326195818219997263085139420491524143725556545362660184136176328742125680344971138256760487020805128696720217331166833872574665277046619731465681265643801377995690361235482940067631911058848417444577115319426189381587471213058415127668610229257316053275571412035702663796712443158485043185488068225604275520836784388606244040973434961514507175614474099504691044431682042860321879289240609714258327621908041129157071032013539371143234139351267974188490744681796129633578794492900859824292471083947394174613814999972301548747141871388850241630628858013987602899038913937001164059961250910109102994397107314729715830932953963263602322154526407081184479776193463796011464114823031489457166413893494630042534948196032759490880129593608852356165869044993071084043303299424140627632021429638032472801754268231094297439393207445725900326259359878512551882626109690622348383261123378566729439408461706534861073311277950894844791861515901109531768554533928497573625226347300576422885287027774147760305045193846024653466143558324464979588973576031387991357180636033082889237831979778813532695209608896819593691668450713073503564353935895264321276248655915362897181771297720847572337938574754472649778541525283427211168634081256233188231869211933049903302537160589302499310503818809130483100258189428360321702692516554964990808751687729800169310075462962943828997769649755797794341647842225014780755631201070515679463686197666642205335433584152199567187854518748282836195600810867586371723507426609328888960957705442615965718379211199986081762307668165736674505714713411697928694411085652013685066308578361120671780245556915421161928755978936014149604396848955147023510314926430301731425320835538899921323966096170313845839493282275318604314032063448932971200427059829251754960304298486616668464346271356842872302141703369205630268403188376606921191438469023150901310257928510739983729722138138370395187949913901284266570494331360989774765066295621378318741988076954320937656118246187062161069664097190955577392011717033230106616435421078718019190904327347919652194301283084004194527362163028248789807215715125688315521924858626617338909522080921474676051924585318119161479571719187882974433965786703841898060088766964407894373043338417314322198894244024551855298030871204523302837349795981500314491611063304697332211800951992431692799120680423644734829929162221500523581634999372854847754986147190459612001948133618394793407216361233433638551923752131581213840063317771626718094318466687072088429197250932832263119888686894646666492585769996317396255834209975524772359259880629245829350257710197423448337409324917843868639658401846689420462854548934798763614799467300347633097980350127599968904645780453762450596609368265156621190135512868917588514440956618837851402698480249090435530102986761802171010134043087640660959535716033135149543952616782888741313916330854719105476045324208439831565540021942489194736157900983139694797881139158522247938937341300779468582597440664468251095126294141009359103260606532631254873397408433353770841594768983370709559393738106180230716515842923979909282192801834906657142434822712741950231324824489294447820001375461595628010569589923615626863410569132943099948830202865441782749762956265260054174350895974259225411138754769176602691299714747388492278754661322591721603187915765092868334467717890960279060546145432265711583272368496393357072515741212461798925865405830537899473695941011813300851334498278215574069260352782877910459387108666163090135314691393448477197053760070083624084224578416135930317315423785294616073925548032173915457725344816424816460374681972517290835316969340096124582789031860843475171015015727185454357533628965473674185767475011457200563360917275694260917519765485542889870608278694696447324862416704692752689449918553395781933603072358516551452208637106299650967193954610765995859569299255251061367838804303989845865781216423550233024564962847433002123866121245558914400795438739052439051275731632073142786660565719614731315578885100379035092674535919151618497007044048557814268860786957806506211715671462988775853448128889510682250396685462057302225103054123458488047594809649861482797210555494209068448413409548817548694144574470325266506561443107067481839386428945605362406727523261455384026821492038278951613930185614017700859052970866937221240801313084179084372459042875009089221530047045583728633920420339351514518323972245118401453587422573035867264499901841997345088345648235062401401596786420039864429352959100240499068711714790243178463373308447444315496876891108045383713567302734384062751872777216687944774048487983159337604436094899266761619317723666427860470959876453614555328695338025162267145890152617249019642444961187902482507769484495359694081209999248408274123572107176575706696621561489801269470187845415085657804942833059997916791243742217098482776072072873543667042274073822199707915102556823627955353635945925717237492175447232767131635237709523272580024848125839902525306268586744756241054648548891422058917592967691707161925805058253044804001760931657850340945761176656056133137292078012107784991557253977290920228039350038428683409706525528540354390393245013464334097649494539068008333935371714124898838292298009942236764846368847631451671581585719496880426301064210388547695276226804956586793115254008878306028609194852521843469879657597100071981366619803140038004854674672761807569540855968878354721288565655411465451057935771253372138694135371827932725303428856079948352990172876158788020805412307243442469756361130032013665895520965101086712936939231697187749836347555237530134058228037812896431196610463476982715619390570124233904941398087368820760828830363664168297106832715791873667694060476206016609871450538994664070018748350010008143207097463970082957792894894619939739485772880176855135515986989852890368656764359972423921510505784811786453899786038320582542120512680336725604307140298553765726085028790260690315345290567149748251020147216357891320487191165091293217939664354586524343460079199421224281727175738163519627546598621149311029503419771733497046919023954157117459437500940754445348643169870626569319314389823458212639527689245177118656539884716079931690514132853719462351822439422591643167352723660906189322264524788005730012489480098021258710189099573574813861870673808670688698645903495772969037317274243103968568808485682685326154688099396142033882450619151867325125164879073452607769684771504027543020038473643310379756906319063375488226690021069935635366273601149072631634840734207834551921036033307460854928358141507690803517847684679162008823073842822273068726294210511303611095288505912794414835987027498698126977578747289663252064714674496184931716534401737034415973322931324506159600783586927525857151293743359329397655358100696401530904330262292968503414583134287377811937157454214656005318847585366450276921452918618150035883420066184787822123085900013592934041759128811133531022123582886280455378269372626839052400688317453990816854017700605846914856591991973658169839900585187662221410517882699673663622130896129260221909279136593865089179881708720921948862412808406324302573355447532419661851792434874122467902756098065140210454841353699490675385182696718754248384743783750388897066737613137975450829194223113819493265578276811993803335646928978294741678360459830163638321218047412689515561544661034867998893545803765312476933136613312291556037413055202995218970212432697301052357977177799687718962131861076212009817696555227013237423621252562544203959481293626368721856102357877273122341603340212308019355033850172406577801923263075000503889806047704494687904311811862251241956626075533224755846033269483578241949402835201795499825763121955140080374894073623505082494599113212350739147500850469608167188500845819833594579626596402221181166748731091459411070721044152378953726935080932140212317832060966348032640743957079310094391397921825099163469266198297627766569652251167513440150989752429185041276493145599615614689922830445572211636196157728187089273218875006260889495268087785702134921521248236275892600388869183585738853686314894155193080098446010805174805294600129527637581183273791271700270292245019767985202681709879996025340941827515136404574562451164798783965726330970338885031247616595891364098195229018611736408157637873283093626637498662212127991678007317679342081857189392181259159891569493692887695535744869885864921871140429189742316703781278760947061004023907139819188215182187984195597988601582501432041269957376836625585644994137341567563200993656115779179583327483230560659025636204121170413151585541507419983604016224375681849493554205293563965587014583777617072492912369665123925484751523320670961298165687070628004257699756743973789358055028938354123099773161449474370882776512924334211627771628156244511162365798119272059111037651102319645125046964169181385050171403368980484081508416645141269309636525563072222074748353470310384037593991124421805731189120269662421711934387567141350272399265408680884212978692828845175092642401589911108077350134742342516757906807017814650673148373534200901581283075440517932760123644634893912310864816609986998253627116418640726118889878478394666487129993965687565553390120597245058947244812669214554677626451966751486977143165621088750496592268317904729035697796572612371597438139601514184854511883010170914838798850368754205394795713805298068953999875296825394975266795502407706783213895335823440119670910790468799189712205659761639620690736516524596827392368431394464437199852202994634860603843390734554439760950413899860255684757113657633728769049036161629005826182845218094009003619872872464073368990709209110482469657994401738637617638550608845810619050234097858622577548423004065071194503289151419263016317823430540090429334575592904645328771835835877711179729029483926794977450937718825708600649041620018763857538311991752816811983094970256009841030216498179278688075100811895909020660487415274171692783863463365422471212749157326595971227554197444566731656489048636768524934688135819984623538492068910314882606287175537990730946838870259529147855419218392396070867983845750546097019848187784870569954429584184985870689467944001996449307816205892961808693094294939879660291780076257017427856240138095114292200926727460156870993893315834065167730577692270279659080574080596260318077205222298297254652701438460268098621950770596961132386123259069822917094144730954293815131137110312011536900096425807320534346387689832433532184765407551996524393277510864182659109955044707236563315492800166086971486956670336677216497513111819057652310444011732482143565646652317658793104288526841107771336568224194414932795470590267400156089499830324604141100237977083791630624766127642762885583382651724787163886540816004662991266339818534922676658268725024140884866629021389045971744357772860346909811059954441626151939125150841732938823278431056240152777762845139911349183398912038205072366889771916825154955269189797924512489680263789185711620690482843092050177556564046218387326500919115232087634149760608330091182104637936609114091051994004112423986770340362762877977477898131530108133269445622429177966770933954878194049502854861657235339734111920424485670057223047680563975077020569026132864169828974362869672639632245531948930737164341309672535760313408292375181525766624877444475825755983401554130892279024462954520119469615038117335347884080532644590552066977711355034542506860310465671269040276770234485071103140717944848965543666014621742066137821316113677934546008282498102885016638005798253863791930840139641315115794510907276479564578542773294863325315043680636194958136466942275717311680654363859762318903230811543602777113409475617517930012276547815527977814485146940042269923605167865646095500204208435427888304091555264815945376229761540370880935561953548185807783938975054048694890254072553232626523039444204793719217462896068611025979300879250172828108714686888385225303229347520431212770459288810440873717560504635812958987769714891272929979333924229017784665054272574471415708120121900476982400667004245826648661851808597748814624059632396162248338288063844216721685825531756699528325700131803072564017193863816659120143223620877278998384765330242267699951039767667595962405530867526422636602478128715965529505268910183844092804676273725786203104123508007298766383766334065376888248049768535173559183689226815630534411375893148166425447138691745196324803127043696231944814089608331721044748117831036418927887711884088563385168361013816505376565974821259775502704195755383049537029145012663944354939468862825528442943210604040434481268441004858143474535049193531768603713108913261714229238592768629900310212638710242166925202064965006127391262386603206826033529039652491618956516947529122475488454693854640301906758671829467302772057512543743318285378214045313529371526801233061698520034666918846009699713029199042045402103098699658520923942847142693903213172037990993287572396566856277595899589689917775905661256974733313372231132910510076101899272604031265389670631639359549576837231467095953026280126080038721445592391987299818921539633405650119348537366357249393266607162184029983629354078018334905712031444332604630038949773273845048192626896350463257125452836341160422012757794019831387661295301353655920799101094233999028559794160653623633733257546558314384800975237500984219074620561090480477001851950381288751707807856903604880075013241116297088763364735214211723147358987785662009482903325597811547445213879179028218650200981145880311799707719540306436425630218250439309170025155798441905937852805746753856371951896097580276556131716002749945034733492519275989051662936931434818267419446935931008392985129510436188122826310520360658161023166884697989621674600666583795002780250958910178549616374643254522548633535643408369007472897249503377720284534471372129309033084311184113676114251564404307706147356777035756181338778118989604330017811397905138906727625686129131912151852365266849611270893806908213408645261855816944023304004825166030556642224828230671071454071684630305628000833800008254661829393333995796880160271197563756686029319999677694712831688953622224266255112981453646805600062285711336948146382646327897994222794837522436074339972751551973243636388522139663560836991188402765494257461338794778367576326603143678415558327804741499122782007374216762695386850009012281591239750437797235820920822141200334309353022755348330423638758891222258560846470204356619595374506832689773310431866438487925486079338215556690777320279972511128052983448008076719836833185207013201645555363934828511820341152483647193739023515366558593608956211020304206568194849708169964685788828259915724219299106092561039921746647220742671681391557660652837502324499666825965020896951244905137686543226722234313909123623147915660983566799121521434707112803460459815485307559693173985176512568450998539285254672061588130497332331285113748106402561385424168392520042416237978234373915332262424528760493181904441732375592744297064103422513058131469918292711428939381543949752999890720992144038967121515491781661743732957460367079221870049106270654950606732449472559654674292367753713487622669924990357777013788060418171348331720855533234613420461389413347429405069392853106152390242677320361977807183504129459483750493539626417136486908844893178227570533274998547137022402719631398442760259113836539889060924063908184110121504258137043136542932751272284335861675479782346540825042261795381458996965109864856450687867395530330927447424919554623319049692736739483226628573046387382252525299137560122080394032861096248868782538550759798201588787312209087231187163142063121090831051960793801627931238550669642848045014304567260484230396360644449940471828554602125165791755209104242435290650973580050136766687101355874940047395491415081659460595183578672312951193691866813872480838605936232441711908589866114298068662286421602893651647359888785541879422683872237301137025993458536588847134358198302004593948802451246069405214145345805190070226450056096628132667157767775807442447157819622989604481168648482637443124087275146684701575313686421733142860485143624772214672325499813009158663025493724182314963845156161927329879151669801297672287894996739627642709789918686904684084757729483764632624492093551060435217266632006369719028383580534055871535736372344246075423486992470624108745079404111754003792030093413298796746167333743012316316668087867431148971255667899521297096882535659447672238928971000800488642207252929242044932042023062936266982184108313706900112529723349048366777608989670791943925350264190778548336304374479861497524934011965709439976323300450202605017203784728625367698644674945556277655128990526296160537021576104979482281334963679722425683303891830058282788056028261730070459642748577846751353270454461417371646504398963198416551908149987042703132029338280836026841839544814127420363282375978662746700182604347384703041539405780360478649173912493797851702370316354228136538778147833013241272918430354907884699472784108236537471506906784254192470890623276024175775444969389526605677005707125602246743671633204861672243065536750324792856186673840065471024690633102497116773057164701804364437758908719387792519089170517951727627408447117479378385347143225998748682394141178907542267589188052810150575782673438654313331137319435582061328661537979202415257100669965008875029816747099514325391388988775388270844654515948587615504482010837822387748233192863414853155139921250034968277453895380706220112338341837754500990429599211233567301594269720819861821743966212952001538400592488661845132864059360513364413761627702225501917953905241693069222093225786978663064689758165187387610298986853269628604510029868639768567142469431202653766653427393250964111155286441818574826556971978490605124878960818300966664761500660283661467559380386943329480547565922079825764792497830788733480083381374840220579362330214663671900137522545503539862994351628728732485749290553430729255317189063311885805850104176191623342348679858439014135552162325669804761757591403916561888010687677044229989039431187265077145802507029028931974083810327031621882684687480687096477410224496575844303041000819457209222661329813343647857839885515538705848739163428103997976437081852447220137479390790487130939125460182196844873943992715809721268286506180578972362543124196322151711439497284521785008517140465547680629458910089699441265202856624687523314422392247363993189842200063305748078392039339748732963060300984881621825868733616802209249347726988170657431792483613548572254943750816569649988259514461696181456448094069057973834380450168214968778284180978262790845862683189966795213301138307382978147556452131652083207048886174998743398601877186507211099717106080429390577286947668878749460079111041098827511288175040996004925129239111863092809304404114516029052974061460651691032443994607603890306443508668871026316786546835865500960727605717448027671264840401497579330811556469127253748788938695629700866512425151525304298167739600796447790215368909339146829889868403282203840741774699281160147098326657031115283753681808813523365930634856474740019299171433760363337812450935936865873926393320763445780773277864441843473816882227796874292088432617064345034367046724143342295556253698202638342014439864183648364624454628562763216203612976812375821393149326758478739037728065648777182124790537311325098804469247056268748791433666266046492317112749513493647903520225874115827192053492856557810933410832414134340790075721513506848931173697031100117680831192876670887247950161272941025144322089077802597613731025138642184393201081241002475578091966174614944143277388526074883079687158542057385113065673061469338143907213052573870447744881824649940761176324611656420919092466351428535277739804457549548894530673436953727618164828773652115173426111594366172554422898009617969571730166883049582861672643330398461587265679538815983147581621468526343801864745333658417679716579203693779154798153005762744401321780168084553369679256421971014283399107653990857872525623824253583594250659635323675138420945304654180145009641908522364469099464873887498352443305632078978824301690430275520850314621519301842011155172624700741204366396581782997505777248323554980520278356546397874509432887276328346171835565242702756934761494338956130796211592868462839088412317021090721981267013307206057398091191173362488190520341957786685705812259497316479403608487045625217432382123861712172020725397918762990113599671889181264793495261461572932899988997014484733359406563857146145934736184567893834490876590204798261880336125518968946605635115942120163776227123028689143764259461488856488291603561486852377224472258806736896142291976104927364690471044624249579666387770407967904009572906854720458236386173873374222422108680736669298805192520053395516475449105034915435797802132794332977888391883436916796010399832029808648837171873453164193077289260125008726904249555075472191117130631513103538593001658867989703766827148592352762828605403473750332156006332508890651191549815959174875518769658624734998970465382770332218174036400909797734362640673894712225876966846619056311389678150373960656341903908539678645560508894969694795085849817671127277067553513992490075056723935663470126578867106114719391685252699611278155866587969998066681941812930855332981687577383041236327611606230529697444182487601343005265998941900654173312183217528045634438529694101433642074726531195548301360870024489696069722832396237363341353892751368230524854487114549684963249375109261747195916361330737151099500436611331822569603776482591452506267390483739609077616975021371997636784058028926797485097135225998666062965767337186686499911410377083279756590208976526428679707405833708467498286938580447328068652923779518337931889824666473338521808859793496575468925572906869959835815254801457340907108884780664255770161317141132852730108275790278394525239443639802923750320447286649162107561451744029151296015789696916673818982495300520221790760351928300209548089032065235211347449380300254153067373807438563307245275301816122860140883749079803431061143856042167156421339319752869073459064370185727961892768054952307314741860343139219596491997137969344430564887819778428517321118053406453941623601443304137249044484030324596957002332845570485923326369728413213457732380338820263990872623054490273402435328454843831004309859876226470003858232616716157132020642390390776509860432057761074038378317385036912066261048245659486317156759341557174288103668516248963539563619427855775032994618414778724095938624291805094556307884756166760633052243853209849638003719385349654988364794678631441713752396262760696065433397431613998127853029199896349778522783082905680093002081626503455623022312880990201400672232678140542784963063083134101435792507562830336632941364885028507858505799722496790827305808768543404973856105775858598189955700050548933643111797556464350931946090893258679749494131677660864474563988755730689192250926903450806105070543611521847849530985965686283248609851046720684672279847465890660646841414582959277161807486452517292344703009026743833672327689308643113423326090384751984642583447859201634234372748936400669003889719973497834109902543619519998979976216009410411675947898898795783415015066108275879559449218896138640246867784271127172094883506360485071840278491108407886146873922429604732571691431220844522814067038401759828962195189531713210923764840822719928447490572904996373857840011914868508666956456093479253254455832792658253999598845761097532125394660495884734629206315069381811387426014598051981522139067159397030641190096294356679676491420234208428428147583250217857090013543485238043802137159945745757101550173988368572397292767332043108116514340208538267543276571892703364809839783519264581239428609035416309387638664023157009970873425066994668524026342152149137570076676142995397032257562575333331008612912442256481237495028362563325626861086634858507110046303635208884993667043903724739469733353142631098703093466849896869105519783983864164511195085661681133111500986303854964572049207421743993992633918315862176096839003303792056357298775992591284195525805101747566434923283302821474065675750516150653071402695842349807482433159124421672941435760651309553969882235392596739306362592557954832066506865438478115365510306790006767343897744656182644775454465132866256930495004378755391847351548273966915526964840370554390445272569260813519093031186515660187443360451812712125234995451570224651606887169371894283839087119575645323139077167586970888599557022555969976682441039027987933735980577474033377481484282075349847895632146474223471890197721606495068373921453791980999672833472079806209354724823812880073421629610330276749121412791709151224286219336911833975254435350582001622656357430838364807443501801974139765519593439810655915096283606673135194438329485976585104474132555064508330378876525135582906251767217041179066629133781082607883515320438334006910299407668457808340383227727329448398155090771515654076749481336265071681759810476984658597730457065123298180238826281141925060767279509428541334063287470986052780731683447681087305143141847115199358602460578219824248423145764699450797744675668092935259725195140210995362929738922558530150665797786223516489382548391406473042711433785434362616556796343748029263632175511883549118843228030056310628180368712633518831734739470433351398260433884778841315263306632871797741129506491522159589253440519393406467006169485333359793755784135871581208256799124004489958472950018248064743756166604600457743754579486860236852413874829693968426365952075650992289762622028960607203400966056284251524726513683404744741447075591643126878146587951435570287837002424002926684379523070109893693836346538196624686984005994353647271925844507975664174674109574291494979320127794211689199056576715213156269949460638548453101773394619336230276249193939359427757229162796814438457841786728504227144413004448383078146819779192916368768212141458373955922842033679456378583738675970462747951229264802751035892399445710405537454944120223703942987468409062718103615648018413702458309205586406768332134086357592423354802542129062376784420170412748138483706602930618150168100485208147417188371333248355275214844658400218055299513459977598972348299311116735697032029779677812741672783357926620832800768459633890079414207970953244311166030419517468989676662096428634247288230086875842409718360124658387211319006580731703549662027966687729729477540711075031243030708481353300055127224838963367447396432762767389012596492739473202945111398127138387037200157588773295424337040889682313338187055384836360065154113344687505301849232969975580992336805555186371294580487036136369049505114841970338486180893429323383895270368401249968948391233662051679616556781787582312445801117275246892561640499731985475686414948627984159198172261718387029413276074589499306623705633435387614211770629660223603177411059720252420492458581841259000106088103446485730689763999990001619539874522096164041440430431592456444896196712126270214357417762306785495067379907038464206982212991530147875875578424845443665965019123900498045888372917384880491313604753558147084376005494533674035410875690498926537186530907301853930500549432095703466556297482776836880824033504951506236075253836515697001352847907630238853146798268068103388188841975850165845671477298636444339536012129703271419248012766290153864087957384436351262439168274561969664403956691818061988805362459325876171740922739937728354500443021648712815088081753689139183585649521712221129205663577495744308351532864977907463811560135576411665842340040787178334448906547703398532536515233166601501166937366129473134767074645795911505242954902325891509073552044204838124525867347597494750054484967870233719553203043428534972479257270652507938233685539937274199827983144937761029673676393712794593817300086299157514153435704264555386394013039781296649120656002640289680094972092757779734445609727696795292492777545428972542514384063682832109954406203567719257653011204415401842572828600525390791821363913098245538408461091170362599880290015679419366566673709959948067069636588514161738109005990796503476134986303586396397996976626964587085626074704344143730392099458156728425896330745028158468303228891643123767832344250196937369149203626002896030556576270006010941314025304007063711348348040145287789229720536808942787681695224993825898851532436714472642264654937526311465618389737091227683187839560717288117191991013882200983839911639550379469570969189178562553627572510556414510528546302558810668829985627088031996626881673730522411974772686785447036203677629961068446705373828621351718471378475329099537929792927199037174921464464317109188381190004812214461807248959968807927037418630176266080986983763556259900873891427126115803180536152052130519661474196677096049765970284235101359868426135739716303421845465600587429043627608238570665102762820563578831591414262339959136318475832626785827343687572586228066649811589071716184831190812629284175324332503121615835917189108526168592843165337920512230240003619578753070603305366680614614986933718115186517153812873345843437718630258910626007295620105549221094110911973684313976096541574673185186284642183481081745892350779287916480699047246320919145212131933671741655370012003028649963066424699754392493604006871867174716286162692832202713300487294776394010270463794966396445174642282783711768137634264918426990218487869045868622059450203902924872668562058911117152182573775153419276571472693309617975242768100037695742001441303190615891602716486950261305536845917497667839587183109249893488079828585379227935256180179418225207156683506390915534641693425045851429880420411075440609952557133285273216267465919080085230044373890211838684186185183617711249538550743502020738257528290415378223297658850834759511431483920742172938714707182133287426729703020314186566285599927769342222635766175732460910802689514846119696203887033035026384346721332391922301004418910558082655798928110440550091883848747002581483295249394304583877752453711969289813843284733020806052323519448429804232616919099604837289233086067481752444354214708427341759355104280525950382852705430506542163681644130278464734378339083209568623147165011484922756655085031994218924425674166442008616119309730633085643059793904865487427491454862326632612013490048790530686162305079331542992996776820998505845343377431720910697280270120704349677320493595554382419431402936894527676936491930172115365558248601369062612805912134660226141011158054325516108321797810534635751666199751362104274066019572158224933809035246774170782639945767160541454079746153121395390967683748893390264880293433972969627902781020147635655099386582445245524636741404079678517265410944597950635786183151912739281276735421584063782197298562580718381934193609977187816772021093932025435895792500391968261471764976520000589739878065892040127614376376434318395292882096108870207935679010940560749058669546676460027938933080064060837892459106109993796195101608691470616626246236616325846007876914076739363096657280864564352053461035071371046774761228753958205418915143248825302424290696516067858473797589110462892951503219995843122981993930229424585906806491703001201595517460928518209848929229449509061817819660580475267190144195091282964930988036563382397816326544841234323236892131461152795449833956499713492706842967246781674060719780020390975271095664831238319387490430538055254821204338160109848982935841366849979413330340234122326900047722620671904948971484726317421293456413614009806045417159801920376027488999880484936742633835973576314204182230633308671954551809530961480604677017875061426616560666804965332033820327479040796862452949572786078101959963043620975279227405103924129116410883880408320070681984306317069057445486219327495694024766562478212760491324073632045521278525347523562705112576781343461313947600966237758005784818264396691451457170856767335727553093652708953671766333166639395704160340146503689312639393332812229364388039307239592422755046369395733647577300260412688292929869442806564295311362531450653549484764411940482519772818983337386762214309347699576868656990729305626156091860718394250859831762334049659745817657073058042229462867823807398153861177071294140326119490129945322530237457861904515564577571103357380126902093555011568325436862500612203512868379426258801488648609830181468395347973853902767637621649895625150957333633910674436501480053569664398761152110653314452557914870310196302523589911366622414892933042683835294296332095336726929324692986516945588888312094687519979277829413071860701901469121118045838779087263244434571493505419092860878695919453810969220761770967045804406342633730762749816912717297748472646029095269151852033853537375640342341978894070283669022860434468693881770187206573485762705252022401578597318075323990170795907148206156898695227627634604204019949665254023546309062433963475370336852264628359256500997334971905680817289114140700890533021221780872590412827807987940342474543520770811004795584278203541905268345327538017566093814279370996731363127928685284676193130130804940353045913531008618022145126521656961562816016988881096618370446143290481183882661861433360415029449497606084251338581818959461415355126824350494242424210167308944456049574513047380711837568452908502569921326155136219076811101962228210353068572103110702913110332254399696554774186266467878812148578547193570088605251039820135992747567814822783318412404518017382048720112491723665815367268997291063085334506873364990616515235342751384745332668168139881414959134363737270447354177156298783607133417234388124541356985764135849190914353265619845444020533118037139664990562557092504567879783406373873920185995145692489358709436813116224724248808047082962816598819532015439310125834120412161943906207741783795389701843059254544264949117497026906181496412877393898809649351041660710452649378768648503438643800981937101139015870630984848128117310030244246834897895270093905746749874299972351041669778079553238215644632878072149117925980203034609163340248462474176765786099569575810835781928445112691200266114705898366469314926195226342064434913740496427810539151796992435827202251804695749654833433676259070296486855429395788131508123131161800485928858336259309122545661842880373259092618659661825491675853991217216588354211493043200796185317038787622043193498718898417048752620382687007457228118950665530792831100800645368279175131695664948058049003640467375999158624119925829730094031879478384147659541024008007511709646575999754619822222133995065020777277152613605938141530046659627455170432703396110363478033005840367401772011632768005919229803930780957159222598309990922802206274260086008257197097189470700327854962563388108908727664734777562958205544464365137803277744400795526181527963477267694369809879431149302098445172931367258246190305235545390917100247062996505636160715254345066190897196847401027199624159755365355074758499502321283708674201747254730670530863992262120550725451834992955032321558871836909444637027212815048203081164854708261064795986581312720847223604520727197695344575758833665936388450160939473821496380646240888624741734681064214942907632610583958131500707238622913686858906302115375346069832123582277177707019546170887860082441669476157958813531529306415759826864589275167510672613254729712398746774280942000361697060042272146724143247557684843550664892007789203538283051536892959448659328259602531836089779975919884817642513866950569537434925903485250512898584541504248640241680205256446394859909424299223491412948692232727617660080912351493797557880053724581699690826075345090878984266715884744836534068678656544060642221705188832248106971636133107439609128012347157855018622043796766778689814539325927880085364931618477459813845347026125661155226174819801296730542255711927449156548529659332386602183376110036790643618541880541769196708712391456727582760725891811581363602748320178355437027109357494854039961079914457259070905755231744630748739274900917007682106370744818691519010011711570790428492974833995996997079226206348198485869168668357054086606241150999586403379104910318089703829919867518845765257398206187570561558309194670296926747465222279425256175532652355939776208535578094711264530865368236867620288087569686149126752686373145263072828787301324990268805110746043236105845077477594384996960675008619104702459109547037734791301163183554709729684488151531661888297553033905973312128381448636556211514915402843066994049912568190352853394589995584989970237057193378708266155713212100223939648985865682207779190310333726691499975533864531551582625907567616614178554918163212474974731502163680435836643064212719293343669927071654329626057329348682949941648704236109814547582340645539794574008729700164912147111664634091502474344360761076797964328728988126651088164362942738171054842764439637554981275459376472867043487450206604721377204951137942291936056626109337067462586370500603309972692525222068326063123183524512781943566772514110532941204755023127574142404926079364594979471893641165406808406432882270127316771898439029879412791028040771459639473485363214584686590678723787734073619941499868428585367736419917279173213290142990436200841832550477808138142341385905999073328376156979784018157648247254597425041738716118033708623359808641245319180802606086949284175049164696614695965574268297714218235694356726223880217147818340273743279942574863994708490234362636963858016592892363112136672836432828639389678805126430007291844126999828885776288922922752936349048031810487016809001387570215119013204343144735635874521652264276506930245728292879232407634152712315440912841029043284957463635876410412606819714132538275649126868810171862743157400238802714491382300587751166807830610992332560800969634741422115287377510767858954818292445656274902663740525420802732986542260661938202265807998262460114431507690421747238027844190202656807577519694417219004423544819490247909978329141152594959430480405196093925840056316811755893833453052345930045687268443923216652057292896801469196030433764420625455745425662582296239515058021676241793250519738361323929731998613782018179043889021314297486348616928735630929931063592231965737429293867859843959209523610293936955342027002307338381653672075671205418219459283112287655853421541193914969998200438293889121286405797294283104158087465388516166736565984394710519355994745462136792381711292353289888253899013782921003133478897785601991902371674884108545424202873973164302569958378123666197474771188528775760597410887496134611730582469035195947925765389751924983139133742337039606145120213601925939204538241102726338359620822316236690414635817541387340422763397067018572064818057891834001430236948806002594309188261772815839524404015265605513440617898482335875287803374825279230910858092570108888215608226149241326136494404293115785608222157389003642183512924402063885101849840104312774977317613902513797672792134402899531203603964334102371684135314368499869156699109336405918450987836723739308218242993484330329002784158089811736025374818840751039544443334517110758239024090104158593836398109274008000419530945805199828638566066867818871865445064947711677374061753530727271877362143200048444519873946673760597801232337171623511905563949908799912255963026487578135420321291282507004417055813726278300530668819629160866457729346187231297188150077153798561506124948177886791808524904850901523027835624204484247747133234387699472935355794229004817240679349386680125795128139511335402436375933945525148051013146697931668161556018632548649054613316472398444156919274148043415756494633577083684612026930281866506979337136405967179763791977537225168871511008715782061159912735241038199399271749056171163336861964883823741915821538745088664761259631015107790843618117084561686650751361131115587409107654722487463599713825484134145910383521367627698081520933448939077320467239099897059053398182189822978691691581286291531359568550747617876025154873027162128974958710407100615103405222435322728600640360432942283805159682964725789726879063392673298157343815394377954861190368787592227608247774460956176212180839162832757524071066684205413507424617982735142349017447988349181552350634148373274928727551460626862925430378696198960625862935511804358385144854650622219502153234779517032518974946177127343777145096899151049443050863508975689198888893998832248325685572041961849639029903137060538186480577751724637628941747700618256314080262725598383557238309125867376392575124062318132972995571219849196619015357261468757215436320330991903438254300176807351994927917117551386816924504349539931733454200338019601162506550443516962392325137098115475021075437124353586199909810357960068601313859208827818890925622729580722107027819601480473045327276248459161953913062119414046874498344251456847154475417821519958892318463048864201743435686572462693530944721241326779348006242411875869341466609276201001636988075562496643203131852963136825732288538192522936021228631324897126970790042336948171934167656468056135140374069986080507262908714427031079576474173123850041912365169376224871389601996990092329935862585073101172261961070212105782040648968176392499596628848427621786572499029278238991775617370549106446348376299088166727565510430174709646266265081664410072025133614588214831430606058155357961223681503996130190805610256043176544795084697617797358373078395940419917387148828654481899729324376268006811703568916106178111548175985567637994885406124935180007595052726525004654267660178188938534816479970435862628646564467211603341349383979132096642189911181525650598885808008673991893001153719779568048949717017296506712184051917722616597309039689360579975176958110770510413482329386284791487208386338489828061099627096245965893537376259165265127837551158638081719444450987400293049154927825907851397496146165560486889662263958188837441168715853442408625920839622477583455941385536499991084946283942398892921584124023121626345749979758050109512024347509244718715681496506468760104955879351122691730390037803823319807832954123397336440121504845726400705117557381035057208682265916986508363001205710530409736227926576303613833305369409482015807454185556830261707658696998488134643198882809980755524214052976340760549830738704266788294592136202266240223193520299128578781302638353376685048078080847725966129054481050565472271365037623236241689885841388615742355118542166234213708947708383518120985191814346616401181020381294382801083517189830959151199328857038246698406490485301511453339043977536486025174614766812245150447101749452060431908690815420465176251297493447647507598030177685300429179523387138887690707575006059077939268072851620600457068764761455482299475548619654461337704950598727675230191067503647418813863746513136155251912376028800297661222536241777968206908899928785818161885062769699390170172041532449528135401471400428435730993137190903454691732874628202291515324315760130313591064884014275707249816829860210317806207624204938910593589611642332953726146640531591949800975218504887502167221380475466563185046534384501323452409046602011525178507067199545795790361663725333194891601555034604630897179602921410571637130600074154861721024275322485109279286692188251464881313662283100128898006832078456698054272692705695496089287132791697024393564123773471300114393553366895252665042380520532071437763442077334848077039183390534210655863697071989792701040103534690286546253351321591606616979438466111746182315464635297894748694306580209430977440960640124993324983003046134888975040052442885283593897501099897392308653831460729018879079058898038904298335407319206103009999792682111945495227147768179168048316627812362984699476393200004846508390626824394231860290291786337176238821350784870999029297831559172055280259646735747667440605523838357473337901585341096156709082927664998799847472681207978876069835325104199936195325013801507481014534043947556199790081141990092455850244900619589698702992991147732856357318367226106396586700484769494136062795406045704375423800849352969238878482052490943323317353649573451209505745849182524359623671017147197772267275427853825293395019729507723550003889272891121722705655338783893182119398511684954420064933212631942981833901497940957441772036131429613913152947042786863167881934995296502806500889465882660863253872533713474552409997264240675953216597835380530439255670647243664213006545698732657225399013370802113867436300576208737749077167378665309039086606480254162878606462003906904575214339745032992549840140741298829263148741930295289294278408281217531406690629247177694544463584347488148110135852622076512871305154069881894480642950502899930545942931010568532828978157150105700093105152015397184900715826406406816431633162871372353836486137719462626942220358693987635348029966228822045171941339092527330326959831145753857981991243987920625618832307793582681706105808860332215445225574742912532022919952273718341808272574728030321327554936871951889146529423566798454957534630719623385228585155090486249603784657085618466981481539153124493968667228075773922075091313863150026849757234627835434676952378380065031764227910463920526854692699203389802504650943006781141411441789660921486581892460685727961049016108347996185331499972669773784305230030648181221219586463832272805809863771903135083639013340520111097475666970589852754099152273383020687284333218594903828145473776844573006328278679061875412890484942242984702679576663205485533027252440921289146703124672226528343598680809723404817284507169994353112202185525917635086792791136558778996549030703311981260384039906706450364444785974100239642533214850886331709307727841705059470856845578659589262956136641689764359806662521558753367931199065590471148390556321767460570586136274388128273816982728886844457185524346264555154427306990446254707241967323948381012611755380851585672405809637749000176614690858425666256110994894912573043028960437152874864254745092307700696640466744220655139639979640600375411195518583196169056021191138670880332191501217123836946169037016150379420542365658353969863575280227169224550025950247233591010132858871236338924958672031242256441229452096988383251454678804448671516816414342777823381271625483544236977312680372700828080638993416104845104241422515314487386628339724345769912273715153981554487460894371373500871496785940389135115652880140138377046540679582004679958962085813618272339298509066951858056647909736960999859756351537342907708782488478463439074228952253923891039987723167174596382617910299403392174491108668397568350380320760977426637503333199035073016083180832596247681990994491802511820803162797555654644194374525717798115394140605170589017470041821642171695655272321332079174357421649808474901244377574592028861935926764165289726484934146023217819586902531403141635059761083864713413666716131294700676874251632973340922635765235302990416579877202304568144678109408459017095825055512326884605646491402212794200851093772142707357407729908428414613991206486212053736726569410971271491049771977340922579420418645784989956053788770027070111985563961957562840627620437549637284680776522717779542595249113932390378021392070025374809811214444582385425722735263753645766211769998540013286713188452039660736736680682011792000856159125109872431509801980181276891804424302655716797885903021610891233773939500179867457860922012145413806756874761507383386597701353644320007473624363692251032178542974975723186522981117211538392580087659968510719920752806635993901767763515696589654844418008308575251603162821787161612513353211837007314606774491552814149570764465206667334783949220645693779216736402136514908821995455822753327967270831322115304859432617050756573566799910440936979140956921678934603505559642230255350953011814385736291266580515141136448530068542272498057108723837571334331296423663578289151434192226769899431808155084999133542875442431485565381989388392757035589823961528067266294134309003562545942095901637357761201202669824418628129393128904024255412305747600522551864654167682223563048818861116393769275944267623938719605717446813740335751414817698668149984665949973559791183853619523412989473471826896904389650603955243190547620219809338203363768283602656419440331365195421807726086352004048181227847390570352961697997302111234028757715741047216906736957181583469140715820541242816512220489726740712304359583864526748886769433415655091959246798373252938872224789289484318998825151345233455923952890322221004629854377723215501890923146257719694131903225885964057371906778647051241664153740246983183750515310545702127491526114522807968400554025248098140862214495192042198601135034859835056506126320630490513117602586191852564106260200261673333692201497643063780800837094338797928167932249617697780580923893595412205430301171859908990370639271491044085292487487287225288216366561079509748497215947476397933690798748623572294898636265069328407272145592822201165792399331172909213862144375591060209232350640571858163600159266387210545510668753660920035961690321476937094879235238231837097039277960770168082605438611411124051748815932740900454315567670185269151744918919064406052820838365370444936738634185780073056882310364858521395813392499794473614650145998138610959298177615977442466066979841846766673444932777924620228202396073631975478746548911933864193890164252709674239020124500920209315741022990413325348799881811853438630939971313957737615707982235099182180211607370142612410633243151460481652380304566717880205620867816971100140697278066197650736418115336340410148044754519593244055588123265289093569911970294600258171597026925382274371391861896704864666368807024461601787876557933400037927630177347416194849543993997699453471105946666040905294684353399646766261927522612241700136576440027753845598760984154178825460472247621271057046461988760307354578330458663468014213189220055413347493369606518049358380386937362102438408160064000838977570306627871622438544944038926683624386163325579424828322215883255683309732299232624567898377702260691665894828090557236174844071130207797280089134868575959357560591360188197101687434030075722881018037956766924678181288860058250163868535138695514643529634469575961815338108750124477330887844331513156966742854201035024708242493719405089265795899401882606946227168776703373863803081252947679496273953381677058356582877545585112418856914729555213591346895316658443145517573194553688368809575319733295052362817185012992850381355684180426608426028218503542778236755897468310012834794158326259935415262093194488857362205821814466992201511059844681912504686032632852003109093561753903462175438623834245155511796087333540094957340765371823902601334799808293027104641834125395429998878608001811286479982421063963740610421503732379377520626012397359491641915153180932904606945680529694896412720714005566150728771740239870043124525181707779557622755733848150613131302079035808073657031857819222452660573053961237930016807729965122289595982105808900590362268871199158657867458258218244570358578484349035871606528352819945702640085999586757310245436421001276375974822597238253807550651888525013595755579405885630606784646248598073630581069622792371735450200018381449546519788026209845876978716860825476455357988962450147919505587135770316104900245250051001660373951982503093128754769870036073468657917217630505072069062679016981673405178129736033949217119707974315832745629222616537359230937469042216879701063727552486489225120352049910127490146494042065588624838820942682606246750957515378761644638907167792477473124762548703176966673353590337650136391261578264832277537661436440189215462289773900753420563218237168605934901201377729775197010736506090491621859521509029820894454154203365541504654666549638084409920257812062428894549412311761763899570776029818363314656733819298156124736727554995451034416345251973357029785274810923465009634721157869848365747740197608561043269945839666241025035895652756172167750627351453067547102387904211987059785931347092703041731263351167046639773473754068132368794810624287254502978374298434204695667186901462750598017951382842318136727963139198900795934119451264846633047967868847431853798815309972377064850635488674954736276264501218793867305163668032669396746877747024855472738542708647212909773585961409673527708562394584562810406656524876547403743192658839980545297774439189453863038821819873403270714622577854258030221109559976058410768553079883905126071979674415592348746634924436034232109651200444329082475928632155376231452406938947295787551876403037172322016900639108963040781185803045247938901921717121290409989283817501302404676498627668567486777528769919377917879646492141828570457458395097775739388503685543698333162771559022961811180644003836253421677589886978197161661045760113281939928615434150226421908929347441443205848264386029110912947691846166751587015628630632926696870497062121922494368331524283971911727040132482918851003432820021103908921160461247448891184187207698480607644879613403611020850519467537302799651001462575550612559313143313389599635993558610865807111553981831704303658520517197818963252446516047303265316026707604030274835530271607138831411182585603096659687747560344585703962423822488446120877911370940336688961219054677765467604698732391298319325793569016776246019359478210242721078080668282894829876708722095203112188917206699577247029329850261480371092761618332145078963980128256366532603537841358144542565381927581751105889015830385631260362121296316804806399327880007043365485027707197736679468469174510058661331051824591538384292653769526669875058518661590929294661523199186782533309559552582049192411430109363794740705953258167409553663500979344314919334151992857114574561506937428452967056242064421878038632474310517313047244686874787550898229381012316141500297666321301123162263505219379399155787927040466683043565492422338817509304340019313669118451694576236177501602544800721667736284808425186347691081053210993512992745363998667765971393492844043327853253019896493533972157562995780115417407046400897013869169638749291041745495474286672589542417347451536175723251818176031373108853006724396612793500203440751546857529969620800260381625701956541304390263253270308571151247802032472598924241381139354579269573720980872207435659584032969917399497474605348903961465752654483322160631176966353509174349788110437591618215940291218642620542685345516347832962083858020175334878439063857044253638441559093571314320705410845109054200119467609031102654748369374795707753414328539804278104131611192967309741595485902823337598617803634618868316817099423273035825289740527469040859892119523015643618771417421516596718661072547908776828660821571142019116460150038620487569716831032054601727720693642408370064178473934016899858213453290396714551945456035920742087417456137593688224838320405614455101814673942865248080121693038659731198593779204013126395698463447566316783614125438067637583927673315984355767211128881539931799120629154620451564442606509789791764779131187343788049609687557733100014233977246140011079734508818929442739564179281389362712504496341624671189107245171353613053797869327545456171798933295500880576519263808526695589909469548505166093473236995554445381336197704413751185775320874302536255036587862081568191188518872408002661357655711621739591478729620896931797278441515574622504467456049219947791953501973233670425039051946726821272379792160102616611816489071298426306612723985646838476384513456096657929328893576314052414859468024827750649996538943285670616429902688742642296190529096057700690869733997227837889788494264234220293683316190878857707123647079199558999518506482262984348056065921710661421160386585019915522114286352505711740408900902554775294829189650825876776777922409939412430395478065632319002352345297530670118014588819820155480919772739851653011893885891349431418782777832233423702392436470511480757440764007488717950608650708774528595006754526321382247218196558408019694156788926141973883448398290169574253145850957235580329249355213748052638634467016058082928450724530804777114916521320612567540004184551372764317559511868622732141597724001532287249336298561785945717128371599324267987734913507089801639889821257046829211572370260433312294429124806738995133150103535764206229600284173697002023486953484106067195503972683996234830278689295005656954212601325718836794624224880485817077200781675244617149528676257964785864921546018722685452177874353839232487088951120775982760105489412761470365588556044311331980831008255291849604209741875963056267082502696656187061249746041768576827096752471177301376981168915597397963210328068296994000992451291998319342158988577088177313442642473308624512370188995727172436674914877228566584474056763006774175653386232990438833410811498905461799423712756639081062111002658738770041326980998004315526781654532636878577577377819461040215679833510468225953634571786708365258510557479975238796864434261887738794532439052821517961498576340220674827723016168964103961605727885267049440167953464861921593372809503558564369606182285434762942903259016442413131450993470675966391203857199412658648085153649279409794503454719574382997262290131010461816397345783073809028032143289371000735314711092004808122441488589662194566766066557369614752611587806263830447193829891366628776566282576620339622611748401289935553811473507579730904755873866322603850101858831832317905282914285560681767540634975765293485903460528694359423810486915364855201254014559591883922523159544165290792158107396688841256110627156235441262091760654779381454169782337464774840906373312467874853186932309794884422854100998374682276517587975417703213302140509836598246943585366688019333393277926751345794331099891734163581273958093673116215205388795143271566475842154785305934813328746802540125440819459043424856621211566689123214150054496872544666722481394625130146686263428985567805935307921045603230672471937718312852645749310743801158251023854040314899821805186292127320606100142621614794313933155987948669773946107586018311636224029885753157768516228069122855357336811227903755477273196382817641233456146422079797106844036701924279884537744713434119613393486813892355129501955467338668017608988123736797992449172049850610409222695375065219127432427588629651811458954485398141393041814779851096892340880794824228319886872972661995973943435957798777455752929018616011364850639507253829111023884486522007070021756138040242530079631832649742827541445460724821795979243218401265300946029401670178193424365481022017729669727845754007543092294496178035017702277778422831060500127031533313530218151334441591614417571802256387193237772831093534391482707336155588266450669913442590761505121779695341317208642801988148660738708332464194059240438352219292162996233652058083037862183012329618232597803701005791910211554416349509380650861430521553719151785745774740836970032298669585664248816291284982985214171139605139011631869257556077595609560183184258434360115723572132189197506931885221333915272585793713564258346968102494921279759120586902846533453693195212298101269950144898133503912444763684700695610199013374666910397655026096667777779016583174213088581290866634301213971299610028977007193757298420717846718710618318027403232175147831402384355187090741074381995688739068593012712897904343432091974970720131413692382826179379576964047050202661800183890837885481886692622888079197486470258707985545817006914823562219235115814479950751342735181313347859340787683758893166685816140926861830608984873280958430155248824918989877264693789533658173966457255143960439708762027844240886612236623666647513716401925904665998550827582243615265458959326815760852501835296723368163195786263348509682201984210036446025641075836704925113545648393995560668241821324846190765594994540506421514646120740716276775129189822984458061136207935502015034917215650566670300094645956550951683258204972902012576072728723991217047544835146394991274046435657361025509014743143370775418974601813374376741166593670112010480672919447112238888146268460418575877711523756635459176922973831418190343628282737745337635028160080015377205488152696450952879977078516236874690950605601999886694546169857316412473943142131700255872857698330678972297500780806393589258181158946275025193174814163198907022916544146656074455972281082894086740165821538974572891909188597272288871924822389569769787547364693470663056384241118186841687047394351756395819931840434692307136571747486968952047080550781404151236074660556760469514693743259482080556502289325387747122547486795740400738661299974687832680369834884958824044031500294463509583971477259753157308337874124172470617332208624355198986309817164125869180052498007905535517233646232241256505306096659201035399922147262912442052628658851391393517244435780986258024919148278639463806384473099901392307235008044325063501811811941282915415319852458818000181376494795247889865011892792810958508077601389376877967147429424274072732971918606493118950802320728001209300260900222118208530513314534474500591624836666510561902356704264314587961537288245346672352778210769455519338253797365591879790866711373206122501338897985964941512759089792952186966764250755807082091060266484171758283359840558858955071620038213032367342307193098596769773594997133968199918228077754621981370194580300392214011897250448586695044184113335747926651796555214829237749183667350925195750282764787562470836662665275741879055524270427500267433950535613529172699642403520263669722383745663823887137480416873755984368834217505318157108885151740176069491142783699310198714989997693543767945305246265147535525285649916610241876402016879322840404406067192389939231819852047188628335044373276290381377582290063896401939266886825052700920036326966050976664346841021124228951557163161837261846058270792598644461788861588772378195175424399836914791950727055875492045574458059538624606402999539743390746541405368738479678632506845919574724361134972840703964548040008480916020528812983270735649649487589281244135423841824388243292050979103627169544726264099418624621542904621675058675074926888241405606178236831798206798376201342903520454138217148818746466590891143298602433257138903559109198203532493647972786677922833752673936276641338616373066359625993386014688712683220637262235734163765233115373606769595729202719196619921469839406456038968239148700702858731682328922728541556437408683567735068851033998144797537306652336932828032321236615378108874118711994897030254815453363241652423623012816831323978205529695938201512894588611008828370340934764825114662423534316254398382759241862229562925367082422360636561747070937139666375617853917574748456449262139776348033425282657502157074287265809702054673838688803600039856346227532999283142932393306282927549292592420834038367708326628473403752905988492238008841514452792168368857707021831716977313693800746622402105399470178919278659633296536857487334341142160026999318972658497120665889006109708630537803642365421000910620591454418298553799332432434597556792144063919298222465719269924694818224615545367513195022015575967899251815452104524036337985472161197288724034487890423211769076285913885298736426568890076074693194573002986628285174171888358677125535823486305812330528454222944498070429150642875938874296491940748890706771069652439868508602777566637214411377520416367137305061725457999126879920557370001617799235034946624516572309310472151184688172735297955186118166381400968876150689474083694411059299296174880858805304664115220250280897386372152692059571093119247227065692908177483430540952876609305874164082820173228223511171001599915413706713146978329437647897798240610292606294036070734514293117179108368088591109283735164576284204040959809029947321937384913434848943824726721463556395897131515410892275858995350099578291353994984202897697123222189008244643041562751410233565783784619074488635800052186432010499950868216170661777985528730879765852783391367535223786669647623118386716852605138506262226989300148810406667280040666989678509523315455022750755721420388239181523068571747813395547585309228471778625809591831485243883706653720593074033217466980268649204587637945358780427015142916937495269953499377419120635936630370906892242179811834998481155183183862097204296489879628833342661947257977407145123185978303679764599287037842365774271111578555915933647421668135563684832787388872237989145969425793287455293171394093007694547126544290810227367876176946491113878307499411157945663367917028416346195037252047514840531244196721330843569864615099053277797369593587944830392892807135904640690059844237376556746460951425595600585919746492066712718851400071029620504243450031312107348445558421581906341355486706431376921874922112856081530100754991594671174395671270433544620019268636853282840978921376848840867721316735019017810948522406592365496070571573364358111362021357997505662719145581493530842077766527083364279837077331315623399051760196523516324158290852192007274284947209941457287263472682410949334164068104832658906165416400434850356267650915816422973624768153288815671672253896194566933758077968426594829219938385088363271067900660042974867706204140577674474431435733129800530955003871228762816499702792745841341739861638829469449618983567602876752826719755600561460817688866531724495371931998134226984760314597047574677876680102700187219679373031598285944955235353075042980293443271865261795320627232420450894121208735914456419242485530510022143027529964616530888342494406711124886882244808897731971321003216604282507097877540747889090411072401661360148803887676675616714065121368373264552319977538210716229455293520075216113867788759482328958310318839551937616482430773568490431325370464125874017084440280334466994030453930332140585613747193892296332635679983032503978687076396920193760659052312700579376005608627003178074315686743671282842715425832740281750324782810094366918402786805070012581772781228810761949629137238487564733965847923017980903627576232716012697389691490580943690223595106465104173222371366625758118628265886393625952199762237149911848427056329925234101334149041225177873515417031451584009014147664342693244048193352863765279945370540974479398624800186604698236390388735764527917936606076899428557330907460161965525122812764520264355101127323876399671847300336872382595237614354222307137171758996246770531077499630343150236035759437481688337301345651784497063917655714658488512088267716413814589160526464216525442113864146504510672218640302846068444969510972939251026057341958893389330337531556759364198293173411345479232397063909419349757008242880714953659959901935801602426704786171447432432536126287429190678296340184327680393921673683741570215224666425554857924283658815836458824567013599281719075856440096978324135594422594402097732741339272686135677927378587351535778795954678135938666514240403980869465922736329196847372313712708754247510243263848686918289560435969621746172457316918737693737224296361078324055646410280553386706442540472887452103122288516297832197135323169370793011873502386505319851277204284585772022261821453338465186605063631844170352508831778396057564927012539565825618886625231088480291444391883444223985518717556575719159247582014303864736582140712737751519711242538012671995967140815067038153317219486575172886878375178094336157006664271559236074582481925531341917444599513211679918001665799891635094055477544536347503073062136635140698442906541391799096219873498557302692256386565565187175414270000260595134790347965673225642653679729343823967654222544119374641614649031328183506761172010584756121124256075426102310522671147769972308015657277509662829044711719959751227044795761954958430501596562694399768245430935778838088734993433300234778771358231040913403756187110588365490214428429860146854566615451091123676418404518103659211766976199456008958300220586518694382992848558344185107166818687015315509354299707228044725584296828388324853724556350722370709482221053538811276902984112292240462578922814941631839251471705841109991273678732815840088268743953853070438201492086185902886182477884927758807106815415694302559238720496386107799231800241596520392442081791560594675609859412542897095274420570937507583435789968678195538685689430298632100107065884438207876820849702923033830318862782470052047917219622006037923192439445759451282244554158950260514568034079107422977383279305357713626124044887184913340281826598860473987476184586811939021771558506994641350808590684696763929780370844079050919078438114506474412596993809800808751562012660111361950340321311186342644810931167263397429561680324589960063180907246989946005037595592598917007722420414025539399849099990691464606758250714743637647536606752223898724806271544208962623298511900882262