24158811942088739361845063538186823839160867773641139200371062647879275478972974654934551018063314803359044204180824076544094480268735941586045922307047938936641850960338116604543790334720476726022367949547554571170087341471790039422726101384930007858566575795511916599045524118717224899489501861354485660845379150428212918811641376384095466044390969305844371335205260156761320670961256434802118574655351385369265754336860676706391340712768223688240291871170902851497457089306840149076796004615719082089900785183067261351789274017517374058515183314792533591192525994925392655047993360836044439289892647977369192120445867408032410016818712024123845554249685183584940744064502958278637848567226358108372848402718520565906048746719621746503760171160451223044977656216889230896236123103768566418002688912415475888984387713697454505693658739725594074250410433428405914080475913588401555640951998217366371722797963918261905033376972636152796684597744603253721373599724180641019837709617883930297679106898496115964162485728327192232270707579503387896537063223978734767733491820774165883130710008827779636442869895514038269458363490204103346480890183699058770484280244978027958745033703902420532186738927547041697510134327387569656873028568291609447598764195853890286142345947331766421139741946161438356587072285881456088923863030319628871750711610933249943749009310702058069041762167065315058480806906538855480135279866901420332028589142361347045678154909166960024147495532110678616369619328140324962752832820842950231650612194038962369374150990152358240847603448345293708844138600412271130203514249905363809941446177684421856159179451154550692099502926599005701637497084421866178852734495401128985362530460392706668206760001879236433947642239113945293047774957980779552510439996733527458774842355731410537841939461225361946278460481359415094052927062921318068911154279373699240715370453526618047894866172205377619136918593290756129643889780760672374652033627716803108032357969490628849080717553095538910891353734148950208293449211856957244404850446240261239902001429581691047226584614463096784460543386397650239131114178188471407644135989000612754579530900815202047596711392393794214177866327864813604854395954592338295387092377783520501173695716697719403066691248379540150723672799158461983898278676423145657862077353146053462154905106077847276732946732983867481213809714897783993681572619670914592772738745695038207005752142576300072232823881409463092859815922796191455321691398069359373510867625840882797413071080900206598387321199022067514250060391036665553012008890418274538442612366230873741500862124939756267828167807968650633267708703021449375394609066772320458983728122729888001096975252519314011453023599410293058127555501401888569269591750996625081652946062602138419258800499561530161025763780565295433318748512803665449483473676589003857169589481843171851120266097038121461270217197939271881769158223598727428597901008214226006111011622084734608010675932334261874052065098678322728074501381656727705994302265476565656212718039562486680884459123358768577069174680800751449462134318990746253577552235092077651673514453120373775802004503833751713675024929782146800002166616697510356422223914126337024744488762569653218499752100668465869963691111536197263665068680283909809545197949037659154971565716751289087247868639289336163357159663134927934689779549579796245672572474254368161942163902760185076516398593565972550847538996201360711638452915795559452711193361357398224427810671269591090334463395195980090564745202115870457110727190970883231558913446785781996384391285741000700392026808565746781712849619611939013869350486500292466582276884827477195490342149235072021123478279280521768752744511832047784045362330103426877099338027472911778896936611369708580438591758751647674591919333282323333622865706937826730989305325107008100218404600938578382931679854071404698522560793836776879971944830889765147713862133802650096346484876033181425908035161481289345464748371877840904363119860267096283248797698702057442454767304835533193957453921062079252989786879875799567090225404993445741718426555341766586376423187536426469424550288885112594756995267504117056766097266050737397891977885961647714790864834771904241252954546106064691914454847137679823885499752995513513473151037658581510570054214753064121257673922570269862190195208113398798492673339987034350054586027226987894555040036997239095425108698365000715443567160057846414253478525575706627704708954010453915694948974330997540459123396639458024443929484066106747775588781985118028511159329434833860049092737218442678969351582551983917524159191211336907624517088288272412530833383697760211056620065324620973918160416020631648595684109206489460489859347956772808845711313173430765445847515484344353381998366680960353286243601925438315130753686511106104721575702988821626979226236876882219890234458252141331678815107524088776541174852409224036187503024155911493077061637694070079151335340554032820319846321756968553337058063934700713927024371514706092767994109262697264369102690313598452573660575010230689461128311718602405360327656229428013346556864686618363570978034373446822688537960953252066876824733107837806471774175291172448446880071249678116554408637184609697183276746437305545890673481215352063552509479435714979479216373954638958128073107865670329014819395865324245346448098477828528425386139903526594836803363563119962205899038320245931795638880845499307663840401730540582125858916099492634782263587948073229987470748755157086472037847890614167097576391029883474251016397124480102828599595519111473713561773666804805824154340542845192158610809550565016878961224897531365308457260866953277911691419338719316795796393955609845735889198618436754530962762698603212223357744015206383772016656483042687921991192737586405010022908736117688869815220405392215460362160973018759276230554757363048543180624165535269799133564772234483412663792980220181543799641708133305269714780438888641157911809005923261188238716885372405051464194682615103033005108076690267588643253122225085843711802515612647968094662034299719733639145502856786064822226751744553640000695856228972750853633642748643728745277661024818019927072216619738535431997948283294698751325958646555894750020205087414075167971951501296247501649069901434508753982064190161271302508928273846706851317672511552699390991865009392060676939538664086784876987112959832998081023039183908241898697101306324180863810296774770403854917790897713620127641109062844915042712256704731488881932583971297064471834642715825832297236863888302344964521674836842760366385844739889667976677250344406480606944800481109642417881564008778327009568716674276278772996936282229752471053954322263568849134498665290279777238994695606802381095910035233387861908903321327069880071135818419601894825155040636349852865224076625975380835001260102324334847801527906120091096206811153626217710829739247838168240712708732444077998535277319705071816477461230392561697837414734980281848030080451739571398589054674562351046664042865879721399109293960975055395211960259707154627318417441460746663608810662496086746491998108754803542503977794540708897739362591238431861889942997002796373554596550954512290316995615283537993818224970689742034858721724263904796448891637876606809499836921092393208594056203802783956756586796888982979952487332259588146965592807582609375116538916015405614799777087785030774126924469923872618478573264971044125677306559610937788235110751439914570504527381614314299616890598431315449843866959445562853546962234756913183306485080812767534463433852728295804031964334520003921771296268277953053319170102324935088925875089449629209422319503682159731388742024831156407827597864926671000357224480375103614994057356118001557351342033134184039930685333318552047875623131036531680763382819496586229305009929826064455768365234038924552968648231578799605034587264487936560675572421846672332885145351371111851780471779583283523346292146628572613522627790679285478653712744092861078952430248716491267144877461968583609009123960802798339336738004785496691670505034355710715671038109102560009887523955793831783967109066574079206623231737396990123562472962794263206668842522655034992774287702939732349522046841396891315092946163155494801368128089865407914549030773291127875588308653568742197482716022658625167941834272191163498162115661934315392641349769862228831881336604557237833392192658781194490004452334272604589853899603168519654365466924284415692000286874260667971810918624283106425584773301292329136539588990366261994114760303308356505311058236304569183271943778606821597458256328072229099932375539451825443616825469701515036544299499526840874168804946893561397566280741974361145311471641011969268286738916756112747554726926057513862019348839631206698820489334799189130281731706468975430450519521091116532175703093912275280408683894898620487817989706668731847218750596493163338794333756448904605853914324696342021112320128195548544402923218512005595678918851481230060816040769610055921712965021288172558340238310786497485461864656800632751118277661062822605893324332979318938957279349346399878799434463150644384206790760571237166798543151631451612735991551585242395352852480631499155293085976508719029586033972397071008579491347359708170209687866639564381417315252186229862100191404978314871791048141832710552396352476251007331826837854875709049114767513830418544422439415580770529130159824554828990110096348457967098807497732452053713051385558697420060500586885744793193317430429345962147383032295092077614874683630117576399103084070667970624812099078234404579037626561480057859695193407076793810703632597162451946369094861272218136844739725123401737849364374324554773884033721795748250653637486444239791853272384973561524990846757570610432842949604157255521177673855004774999898901498420126989523675369214079046017885291346769957082369758093125755086735522191165791768620258454655742407037059913988341907483649792762212788867394852877058717844005357473849698087182006535211005237865559809173207123013727495677125711477994140023810712630137883474131669609796881397005114327033017598530565113271632375292316050052229718252988498574950254329281786234180073299546524777763248268634019819467709479998314572297452141095362379974189871723374339744958850438185998329638306942097444250846248345415608430048818409223841356583231985246266792925698483249668173766693453014498435873716267346253247101813684957041386459294650662006711902419754158388845364608008690547636491506184202422092384125468419316400424805004640037374186815466776544241856104301383263952307213483959179901301368501594198011135781661792419215589450478301853146793466012121788695608321060315134256899602774976867568896001255212414281407186617372737485677529236157766950140930682647473540415579207321622662007409917142500002385642508954814149329252833661795669784910476522024669131129301289493318896916687836761944636214489134916040275440985343675212427142852897489278100685424230752438702172935910624687796831005772818549102660611152327777308766714565152252811188017185006638944648957539712308119008398713244315741736870871459983517245263037007756366800098766634854324604745221676350708932811361188955467110561473891291846059870630358879286203994671592738706364572665373377044783706311255258607182508438175313751645653857819612626069825857939843246343613437818706946858105544646701617910487575365633803742591529298370939369523379914056999731525239581910602647053930798722292278064942865334269584596476741363329569645559420597990134248923210324891528403859374766884400566507217450585142881238687151972195167620626795908770227709092781998951605590517446883253830634636700279654534760448686290736500740689431268213500865454061320425796164695802109360286119216685624316654372915129288465961228826294881596933655423268655745073074237187251209162368619484680977847195836463126634523787745932956855800341632150874781232615123159340059123946938286622964584609347850269540605678948749560688240705432961267563983298308587240064995814651595780227855378868495691533213917971225939170504796090682429084728422618489206502307423921811379304402295352703095183563143410312634743105969199315318844554521017946155918505711504650493470486606582060191690275509203069782727077440843802100670240653240125142017784011143859687621869775386902696676731593212678092086957793954638658405631172981922930407776819633276749005500545012607003811939507136166371086907364567605533594729369035751810361573501054351800049757659577851048748243414910286421094196567230934773891898265079306504258375800838933763700325076971952529657524085636323455080403236728669394387969672949531985164027536272270595395267390988034089953135971385299249339130580302443283131719529259468346999481945811518109105044393501183853930852823545434192082942905168171663103392454761665180648531742646918357263497467134047852685745368509428858328344567667685360430235029437641917940231872935951089725849725633379499819711888654800756016900143945086147645566240260747982958174660280176592610293554765061307316777304841689852931328354071204048461335336853361078978959062615814628000268845768418378065408099798080217490576315295037401721344071045430809289472993110136983136493863357065305513187203937542139621676844835316656548513280532173074701901025574179728194095859031331442965703344712528964561281476893008481701345373540422644607864411132889118635972065658191198663525504224679330547424280771447005688546048123006443597918097543585715487497119987306350914650690715601699255147536885691655089439536974719869655410427668062995324274536748281898274043795476798111641429456665038133374661212279995905289316243359281536461590311030802219145587930656813647866030297478617967743530628425467070875382911691410707947768238580784634554626610718727848446015781399125276069493161885310788703323645537247679584584464029076444548874336786141633492575096468394350208347463515960863159205304098036962349900535323507853493501014863745535122616619807251492912270521223888403931148325500377489159472371996660089291873924366501626621947201986553165931937761968682724487496798127340527941073313407059976829065214559376286682712465536201739157951333312759878684135689340569465045682407037501458402182477354095782414923915607177790785369929266843869789888777025749772997970584348600576831984329987688079037740148674659427564985676056932958688525271031224098515358363268882755930380852933357842307251079096971335523970767573031476617465565873261757488175302293495829954214808954417564078726269610703992596830102151820229311713290118421743768434047538792496105363235150459061866014821254070618161458835357511398586418526140810757527331042339085057723196186436107895827296753230885837326001087777080756206543867493785565370824547309258800906378255362859465761564759033023042946046655246922436444800013946535395391413423874506962877900297454254124245133325373283451163659686989998997339298501314603784121133484424895234593575909466484740574162127340850860057685319558936473501952205011586607051928787825557936707049728966958792969626699972949443933094468740931005758850909574336463541433663982803016256769237783666830098048531351197270908707837196062381168080698893189155579235865862469325764169622197603375040775909552429881234998984040986802738229542431068011725664754871788867389752151153413632490674392881227437877890658428141248613940153170767812323860945443419551046250410819981165751601265740829193759170302339024320522128611416870195546251905912042368184514343887650235332445066548413785769631424063722271652988138629478548891237804932227576134955472677460048728992199329315238318075981836564072227150487224097119154949779567533605179629125090426812817867028627790944761620857929534737030189669524355446233125777657412927697986045967790964786095420229247054489789609806096461950043841585802713803541012922032121974421522238296583865716286934301266247484968014660344377030508986338069194203300166627088019940803068680258875626222177579863060593931431882519050301722214009964449248239148651692604460939008212103669681711679336260722386058582666039451228816660755134693910256721785118755694259557826296854738348115618387892528539771191188381008466005380437329226064103238210066101665918690087344886189907671563038814222351639454596528978670917228880596086050978594208561055999263781338531318417718336279562962476940721492106422790907932467497813603947048290475986130992258295189383836679565007186983109791375214343592936877841207561447933623550541644607691135249860885504706484040724110181279451106482052998850817237564551186147532775049051830018558225267544498420421646277288247528538585492933688111661170929149142114540937305932285983222815269020611723029972029029944103874058535658321442486678991857933114485546253422408859453507682064315208202241290497857673487487956394956758509086598817969280597909118434168949286616755452032401788343985216313364117253609072365160342088277888930694910124377309470749405525992219080968399721493578383371344759410302408932431405426309979149303644244328359721264229789704819310620592370073905483027037302981200676514745050030141534593065220165709602569896422830603304666074036225981057963186034365688333871610642927337631191554069259984837832948057178419650861249748099484149225990358534309522965920313699700115799788435130186351358145903579437277557211401393225543643903858231749606618912281420895001220273493686254418715817744753335323339424344235259870666564457765018174575586143111356510306345573223506078353857948993198402283172424840965797786073036808240481000542967469896398314782789691175368514225522713299096313623864470879628026638115793317565092464613335938179545431895659276714877190950784488227231846705628953516308416304548981978236207100711962165927687588309364336650734534785710088041460763543814385518858826730206817516047546607708710603779068759977339604477881922329406883863931741126981407322284666287853773362434743215495636156505223564201413024312374216086308273571140082123889441121573107896107442551555425766050735478839784192842941780048861408954288708254010268848271173498015072746867558350143162771694870262100812213380054303371165495851200913973272875132836050715283316218894376054476699946146294170142775984945171008216257834499793281509154168347046552156502828277444904247868538504628903481503653704739634235623414249763557477537093775247094308898526420975417066817074928201958462066561493736629382502835921733152927428807272081373513995037398824472908819565257756876095482664038457310099337489704258131043200343679785488687487461673091612554674316588409843982549624094854985862756484451961960431091262975433042854896037781947517594037666215860024912501980341655067204262291068192349589231718987161805434017645600172750831599154967477589174047810456139473832016776751226138480596683836950038342444082424697561276158383235976967682787650677060589101379140497972549515519478090429607121691982694026272826044495030747827234843967352796317443957543492252577855094244809246247412140364518964647870074212046255306808927162966825920602323562151402181897076290453869831036975120875690920246131606269006922396336604271125970937892270471369696098239579065311709871633943336628043188929183557124923460623062104989666022201705424427195647050710585110561532017564882390771677426269037228726382282461470373270859219884107185672087586196368370037144854426495108577769358009768437620582292629394038191296675401701935997794050751072943251267950673314409633125624833889961516337981300258189565839465814565433698524709182584352634941598722659931672645705503179079974454899343572192433900312039559688232820939572638044609357950081678656551707878077487763803497798241996757623453192022426696458208786500016256277730682081809970660723616371014238621365477788418236750701189893542807969667653742759539492230171792164694511508801817139164921304364633475762889773009411335215380059135273024008001363107484137568712236110793288164817960837159383338095837509947067247239801891482964776132476519458541139596700338464024568260931119136195536698482573595889426429869328945497284058241152083875544574987171515632928395346136700052134428809345231767580881783034227717196192852442348277790928068290442851778616999778863019988444048082465594598519900138136730247434229967669228797367156109734252887352860445282734417161362637506350452159684637009783492921106985164126672510494833011261113398803368676170635939102992531909573783979120864230888826557655902856020637985797574565368829839954929691628999531170510829322229373147701465609669062468357546076446670676352468685830779242698447819358054762951381151867446784868792165918456816547196964917527079381528693420617983739984714163776917508580327767219480345196458205806051509560868431023120399002630206725052547929670739197052387968497692176729132277487059556078905822055046309210221504473763897356103645599162980790417904681783941827718103360785580416174953961916583288715803108458583158436302727722726486872030499645970153515354843901018641089022501618968273883532444528306562575839421168822639715269482934881902326443198016096221265657822871580727374695740443868168991374069385275483570342358226443007024615855889179672297376275432374503657922714426744453295225829945266912830013877804874233365070162896991989988918277923823121115671338909265583998911991848641045086534937432676056058977065135805298756317760204190479711953891916326731958376051067191742133037346292526493941433738345313430706165592491303405080365401750973881661366772785537292615797118602220948268751500793127545025973637199421423314289872219670950323211298016443305627704660723705909596292422922117206013840373619894204513320749527326253575895211101806509645833161773544678376738623446237745466353725630897149606451171056586447425458527203356493640966326106687848189376330430963646823998379677954117770073245013412284630854595727290281371417512344101536925208336929286799082984924012041020612013771606821843002746203073818699422262338545475812229561368781021763850156204919887438122814090937412421895421992303688274123250503561266327601937945093038958263074418070312158686172654202401918495058078034361509168219321360198138742630612103811754319541637796982934853280036420096797168917359676907866549841196780554409356431425427045916414694326790649272844234480388620902409401072435528702907466441629943463271178746176003239206985606087738910306606470320344506135598644354689277838620338552248401466404643176609688252985386008104875200025649613242784139377073160273653534152295389440506665842764750660646042418160011484609424389518510236062300810832903036511405192737784062202788452990319748231066869798360937468436760742298233064835062036534368337097243272922324960339296032567763189276140071362177292300728518908962405047136231997242871007565059789981075676674577838048594297551189280220579651974243392034302515941268155784636085459338581992602404992537961683949091877850503667378565949961494170913144728362103688054975868079132405347044468914361472549987846556314949786776619061635126842674790777782487069263554894899977157965042952380585371352306314616906034136018318951166952834420150312663658883305314927863406315390012164363740750321152065888449363208823228106018855308454821237067371411508184979364163705644350809772391082971726413531677177969850002281748283003418946702955786238407264384575826262541920073543472282212219991377879901157169299058629665994048284061429738295983348697793405326127969346809576896475609278594043430700803216149014425593133936759026848037807819187595706974728830336338255704186862431847562447303624636346029991994603472603329323751387797364795722121937883231945361877593431972621800957667363146039733137075182455200912861253950899633070548564385073102830528922604013214323673608702595485195419483741379503760047579702837304034504587191696521625162796303758556330383543292207653704538520104521017009583032751065949008352801374002669953103310129690885074675727653337132417187896873736310450001049151304496212571349853643745761976523957199742801101769419615246899847844174591178930278931731124403013649851869822580958858945506647328773490435350546924195944332509158314485783114780079080089783913514562209800726399683168247885190184875786886476858878234413518944023436560868454646313491397487952002916365991877203223741728547092480125198694235734058516061832013401348305591772633025033526863940884430406320003732429598938784548424463733847997627475712167054348687506929222738236834455794631312958541075724830084074860179986717283258833578036000959434222852001240301916649962956742262523205116574932446486579196012704808386944010384402085493238923342418908084190098955493113187372107790258260940994828173042280917255011310193802307693007165307235579039502333400691103481059861161646458029006387285289303320973278803519873908397491465585721393453243364767403297249550794279049930393533316261077730856561507387037404228585285791843412299486028041123908410799909703945522245397498621136749490877741454901572249677209752129000471436290541015959393233372962148232188915555020445327944376833726055258393594780711825055285728552070122616878285084870828607611527059308675705893868388636606864815282641760427994587988449289948764598494343353107862788528419034076094308260050284239417234741499535857782244606384766638915543569380515081692429029633987421274263487406879581435392414696684272629274866095910454546459308264012277585874512960923369529544128046018873956104957662819284446252975041535176844287365075291723151634918359815592688205039975190583115318409908980861707426228202872948153607975810558553547638903625248510583638329649132954443507377008094254280523836817912711755201831762531385211701866466403315420117862681479093370062037455683270833286484712715342388797389203298637796159186555350479937482019784502353366253881509934139286287121584130508978604744114450222417253129557055852328533835049789135237843390134217503833777764036216181298321043068958991037416350087061714483701625657170934644415009066245480451842392786165038694066198304145698139815317588442982194442077056457703536512126345189415463081814652484741271036731315221062879896382972437393991078725785136515669265192841958345490393569316729276408707587150515720637505583193471886521657318986162474774322246474024599010087434833255127400916984681241703828150256385735469529550894511061806923563862839186967130985325543777207845969239345892226876517705236085339270036129091456703873801527153507425635039908270613306350891041902281030648291352716202008593469873122687784494529109728675699728210152891299830478923446978316347428700953865515182356874246220156692072344074593222063182550476642180473721756412920212404664015909835294518875357480022469763978432529672448630173062866021744570253974341594036413177264152040383022577687030477365364474282103794342222201167681662289563427871823645403637224899262794550670766613021709192655927645225694367734213810306567909591409190078709129361175278783259398533898798742794361290417256411775923273165943357487731253537153698206827057908225019348019429139191383949419106094500284123706191357784832977716621150701556304180748177846278401338797645125389863788727716595583097128342698484184755519871310090740413764708168462890805201687531616886833671627933391098762847889894133007420209667744725567381800943351867265651280496913356238204382665135346924579350490849483609273897681487076460991312421071276712355356241421000143109865887411717358994371863970147099295754315232346783829851649669318788556907002095412732036342865230917044462853645981374601143566463146287577335252386609688891194185161943222988621903127218892067816055845210496370836505247937238996771948555739099923980637190611806100003921461516595729050969979578514246247927060679986317933686892534883043479509152075762581906656282175757347043725792411889771037966146441963113968738786434105450804500164450164809456315374505429104668581564735031331480430009598634930365658408656576932941483395373888092565762478256044674381627077785335001120661053241615512263400943005515469106843283761023110318281888225752551187345250913372108153337439309733980825523700549662735139059501701909914321880193979183218095750479098034702355033397511411184032255169368463596002698875947457203061012915815784445024463088420494059346151411165877641147603967810673542160974302563933037104305790301071849663628245030510891881993294485598105544549926852543118973007535826087294800661175064670919302330565705726818844891834654838910323154543073612342797053558421687133117295718582709643386705284916224133634101202943472621818446337180396899766760953463275743192237536316750419677136275533559919969623869943249201788242304293006649987575275963691559353403480132456954617485951458022224536977169612253766099126858085835927237877280881179260872303889763467446604856640095583058149759326364423876081076335230559284792986776149781074002175992280729017539974376077985481656726149733018367152297110228650833070516896912147899423927854305227105106042644482448671160722171622892466456826716581987502507889574216913775116881726834565733594366153651208069666147851755023254806332332132811135054679724322191506650127293314562702040781006701975594147447639408113451304732031164624880265880690041168552752800381155817531388187874497519150990456149202080510938864721853532573718980504797688806226739047979257591582730229968745832553500064445892887427736283693393579668722173629804665669820485701745655087110847958585897024428131029940400403005057262652392625044900072334278953622206356231493405291921749508790168458421494818175397747971620550195246416548493485987905216771126550028573711239324327025242020990032399576903231490906030602998282270234204096752133796128207687129573075727528768119314071058231944982523168509348879673846385926698622269505141566838142615926838152203542358008903881912017867385150288957468899483659107710282198869840623512895526634509834993795709446166728662949136361984803799949798322515351075466205480834805449507370330528430346408990946612918488265469273033902861518019100089109264808917964716371232671218291785842065899634031805168655084883208346318408407307925468277513041194655119732627006801598922447163100049897280735418438745758402050829789311864141285604702600420822080122112466444214891778094729959465094885418962432615503463619677377137198330925749438855852197817156152137707521856450636416658595139554222401289558576357359189334117410565411449577061300079903872346076149392189957097446276621300125604805826789971277774273595385693987035504049836845831512066184482997491821525997496269708785735174171925153328696963112545847782207924218274098677898896491332842238848077191652444744418796088939869960913785669685930256197808770852167308980462222799361082079155951832507296524588215868810788927780584093636218736580313782647534527153184872287416589037569749472484267889886324855995967107291221693519717127938922651264052550727425188746211476600515636493099415146702249381296334028667192345715214183905030868098094109807957482829815225301380217888509908674623668646818332666857949641780899685952987396767629730382836640695357926013913808504820968091494095001463217938241766479301638373173783880982283941666081519199566724096226985553537396951906734471823220597873321584114582600164474909140462849313556947305420324384788933229813976265843821782290152568217067312079572284692619602994721754927212587359755093342013822284645648126408885914613301037152982606447978836141954557965606709108052082818492415901918475479636191670456096043846704063105460862890777972135944943122745203660541350809643857899732023060125819695796174221494881769698691086349885668008645992412398474436966940612088789035492932228263899756902169052610386710015614699845289601166597832162508736241611443502243285616586470566414214050453285206851770322768800628393229126942786871676057997329426677241058219332734691742049919661308503181647366735304089965323767704294049653240831769378457174937892969463261278023370092477237283819144218561658529189437238666113097693942062954948857076029571365190273369657025476136032932961319327635878248937409287105660115732926621349238496442517569643894000067272174192667013158096089929686941636334827465742849867125164802366161599574643618479422385304119456023324376734831147033533682509758617577941739399354182328630302334580590141328188362715245001833738882079491549060005874806602322289296244145909799748445887888941205541025431610687782443156224973395981666269249531223458152288329913442755157954515728585711855765075449686751991151111914404019431234746584723720300052278963967758927282421787366295499026743601395408506278560152845542889296019350401390088146899631683712789437239704032555232682009082627198094703601784476180892779105239434627726234008060636372777225078447306534534446792782009429644466208784626542584237896042609430178500328834341416638470089138575901216861151258521866060092989257123797070113011356654901589485381453844676682268719778463276569468104202400345669250573270703334710498130177750161203022685406850217406792149752929311703647810424104780343338602172453289142968819264829873975580333517348279012244217299648961699143858449073997617968682400456007310027221219601753524988738339811410424369201015185696728705312294321232377311854373443713731668215094109088927956407353728838865625087961381762438990566918926488258239717051400369034409383306957841368917474741327301804320738626265289570960707227224339400247273035576901193019700033780435094890359825963922471503544822958290273373989807439232904041853412524776183823573565979260555736940714986054575403342392902659324207937809976325702605853034044789102168881731781506120194096151159253412147098056597109368090481588223587365503001778062010432935358135273539136766367703291760907975388225099822229555919168797441632305286611574794361007776284933725050463753581160759587852987302323000843938674190727831653567374485534486521526545940194971372686633647234750348960304741004307407173000727278120587424144318048671191769492897572432235863850679756231486717476009219420149930592100574176939659364508175784004644448831454729802096008711057936134776172380095840584524042466327110940660810288283960106932320393883854012073652980075485515047978102164737813592831062553528775515617199034043118480102047730490617513805135354659567502110500954059453842699785108027787991194052156827281039118170541053375415233793865775405977711055746988319190409502692633167082766788914286182149818396478342296080447922652980000938194420431112138894847688187707669692638670507012637483353822486565965791649986160265096387162830426388955370548806308737504771226547922930686334119228474794085453647625374302000184406640503643514577788723081903042657221428617092257463599353035504861765152962774745691796832342722117435971799386666317894062920449317672779019260391944954706245029807093498081276683121189904312485452694917792859575580490845710217204721450730890691805981282747437853731952557183407874492083050606099673331505435514969477281862227264878980500328207846881915008174461255083849445520629414486661203411634059160965595898420949102600224955549468121463554128002005603166248220655224835301777128490120874619203066292070861573432114870502823599653484196602039146786175585230329170012642339302804506171437975179663439019426260686877897176562166227110140533517504955641676764451366738601338002977045610797539935812314692287705137816316992338631307946559308376716055447790633217993104041637616754677031758125563431645181200315962511702762008064354531382281097597603176967978816919547091010442966687228528532258129998611913882952332174433790581323112419884073268950619344683474309179532364299328541373221215563463450106970429716149057794544802294647107517832294961100922611758964363743068069223424603589392739432839735717702689799759203172601822511173145590364392265352605526354838504138630245775318563011211593057888092002990264876322413146456820186232313598633985080048048878900793156583799686513238669096984728108254106890717775733719937596357806296476928062211483463562749002832078052731477759728370609199224898187556511354976504713203156845304921653741906774136641013122904689821089583430224882050764131140613568212138546870236637964863233271413267835662571361426300014199542585055373377398127860576361348746470051751710830559550995582980151268236728665761616827476336213445743941182967241138192905073865150995310641556804500954547452484919091687736944769839087280038079777246624454585495947027991097076423817303660713359047827319529175528503216357641493597109327515462555943837680161388234315198973022587115048157906946325238316699633545634734700724021808305094096645180033428528493842364810295439461430418103953275969429227706667736724102946819105002030931626018520860989541844549863581518763870997756513839976267184619603262959621888980818643903206729875749365467360592803356117727986054982250417930331769542198149094286143740510378884317205804965615727946653468811592492581595843925613488354402606044275276956098807579148749778492937228088195098191832634047110113061986131904468046084253161138995901249599309604861227157809423701987608951998376934001261342508968110197192424045494351433746394985038921859506986629676327430454189369013109544394522765430953060311887002889897965579992194779690834080233711600636471315435859765308197908244892361590344254050778710033842744292729529340542904569778418257553746601455040215749003377447278463536398824262590911351540114301983558592066181778714779911195174705609579635395635681284554386771826733913859212406450609483472674427965780850570506134420980585849642472731425033234141394043331592259299384127598747947714227953212899720638292021438428254027775578770740331531799958222795312877201290668044990351500542725569896912437559759036521760804180488656237656181408576593409868954387325750920405043915519591255612889468077175360200388731558193942908254318079875546709229618177999678905554466970531731841966986351872815890495314093049465037762434604396753743345924304934799921065721998601594555440228360710241434709610926418092223155630961535733400305515642116210942225679599240018010388241380322363906758358089555377695337544134924582950833745609913553598196669460428926155728995830387875994459799897676205346811646613740277477736140061435944556008101937223396110246604339926165211937845949151506327958362240689905525871582391033022075912955304578272278186467620266299215090123908010529341171745869804280310739989084375634330300917864533566315080216835656848556105049100390810901201811538786432820548355534220896150956773749675177833214183232854636850752848560054684755287811224633197706120011219212979973140422328599973123573107482479885795906359264741923493888897529218527248267057789521144213287078444106549063558136234012866976232826885988600249111836148618779879369955484265282913622322631919897214283925806064746189482598523671286152194240764655439377806188774060620333420593132778055270185276139499294433034541191673415181780232454791551698302385626628701100250968789392155101551122413312309429151941258835598422396358918996391127177531283055095777855240657643697872539120682885916497875705802740341785959180392204520651277059734592904351874690055077728806453257801044894224005746447182685559021463580964326203414851549522633067901961974857116808112238424336160785354706741690908809043917495855187486884575331549048953293417502318993850226038243551539533327281591210884784956224138056325877591248941456454996556595504971736691495821348153504776329279645862202116281856820244404976614539896351481187384610829013318354746752054449421953915440848845547335971456854962980277968234252804903157942102777186491029622011793289900569967276635998616128469346059047305445514460399743026449125375884773048929780068486162895678159925345323262610596396692714281677249259138226066038061731540202504283861623844723980702554897169907087989292649720539971010928108217579661583812939578218990529101146376480074197513540551405398745682078570404187986570411293265063547281908238635593224476648455993619415281034856638912596952961309667850331853454177814140623232965788783500843891270409238931053488208361872044683194710482751958340542072374723399351974144464537409991729227395597316284234632380739684906568251726456617951663622620608247887024530241847587292733634299172422894014205821084116587842185649152582240329348989160275686178892301128637057507896604217346500213296103781615962689522813530504936590767880501646433822774513883582411135650557498118103247382197950508040184532586171182799357524826009680446039402509240852023442647783046117764957977307826178013974285225295323103161796885054600722901875086870886466395670489058586269473512791411492496378517211697377161389856142697859692193986439670189126068586712051483005027359569386244568842186106716030283468418277551576886039618959019690034856876345572527686468892526514871814455316313449715682514757611388800497713496566117520654770455384063242738399410437806529923006025189032156329446559441129966230961256637641795680344527046035162980294323627520204748803385049833175711535988454323528763217204714350905454114274301904492250653022924217548135612896760375760466268293801573946916273273271668449808647580335861685354083832338500774317648289369641211400935233730089282917759219803635716004833249702027026254053869029087451286368804667292895773921492367484400884117797482378347610891474049428768537528147881503211688076847642684000730689259716968145164445067164365130772888627315344634387166139547217581940928338221060242076841397933646011107077452819128157412694549149744839875518442197692605907111648820072922922684638588452612581415866614668275315518754858043158921233505482884343264532575679631820747553662349608126505890125536250231037320274379894313773479414434006410206433245961246768096354541832401348164911803508243975472296901667112080691846141870253095272161878203245427118064322527230596450353830441607648219202212208329769394658337576150725813249141120674865431850445666208691235968102316210149291556806108269184591032748912080537235879306854636153124442977734839587332232784609292132158356945226841101370084503877550006814025612059543722600508661564537556825825353288472859840815206066023402082058979496676053840290385560391032513242665843630378944507525753539864997095028181931756359700246150002362072649095938774918759936423014600636776241582119727960090794001076160516506370385642870424584193868647514056940756584141422947391995689798208250803736763359244518583132968250812199594041377232410092235315212000102244554705889322650511369496763100683990862993776050742664884683729883589615359104009107277395145038750826118682027703458124291074838497686591278916992661818974414907632049314474997948538715440734306865909683686646834688672539575029563920048242140496408236215822548571084280190056858499623854857118998568692669801347408294893683600132991579272496425208198801344182939878265903536512292232418932897762765468107286169825309270084183936861148584649089671634732714829027974534586028266833825624006513515476013341115833728352594474400933347122526123099272816924757224859703047304202384494584535365134307941037828452230170731553179256860163157574051594901069718893991142704818003130120021756955527780996936873490243778084889183557646811632822162694284850224922007574871906611041190927812780838311914633180533343793696323382474359547783805929004948146172602753947432138620006725436917644817627443523395038062629481958758673403583000456943867082255865586989238221423509978294568653261070621112012132274827206907564092415863442313266030298767233821983297346317371885034268541883106202630299582502449501639160329607990468078204763543974462227111770085305846006392471262983281326257443333776239727469480824605949041488818930238060347788121294280062754411415430022777643659994372705020477870604936104434221235328135665297209232128298305326657463194510809524829681299731966183891274222561086778836466012358685305902108941489273661130380663063767218573456064336765987858148474740445813471273228220993667177323831680216864060891724744758369571065992198587117048087595953985430586563086636024323760499540510621540235998123495872869841784212616850920229836399539051121575108939095052114494177944988375953389322448421353093330184510745287965239906472160200584227751075082505529764974835226477776695881814058115705152397465255434157001342548574699644526147679454435276817419447954585029349087912276178322442282748829329798579441953980634956432646939045128106274482613960318872095284241373366253589275543408811164861753437602339860676740039572415176617837739866559437330126560890255657621467251211492982316738309579828123905898404443727388703432074460790318746060035091403187702044565161320924508796814420724545677856691279456590392685924283878291156152275195111918447019044648013899361966827588504012995167642425934718826352659787157492476223669522648693795062975600799317441789644265768090927038377117599947245769966612503444866941406958008770589223021980497332539959179861511996622254533826841756641387813894505404828440560084867040906981806050227872958119579411269524402980642960006197066432187526319476493588103415397723696532582264708468483470632102746794994524873451413464442004717921027421957204240188088805899404451046961296428738792021059899580004303319081994501749961318246005063428116950183924671321411391495928211821091645856388404213615539754760933320615364383341752968981501135423245936461236558278850677665835861079563659643938951683682637580464673525868917844939675166497974550259172385203486465014849891497402118119090229169753180359495627304672019624186952283008398937622520621917151086934515619893346314658647647904832048384483445786498226529642186029812304180047930250338013408412416235566705678543692993818284107630575789194010023545383167192971765820858114536453053469916067877725989226616121616976272951708533516205870662505782064427306700701963094642245770679037507114397838856127662423103512871014700624129327870658565492344233337534621829018463233992093542764585876543278772588115087357358940449919679582039909909829593118606739223327493747930339586602410243428171493254751873562802406194765362357235290382085775298519193538953947026314466625750592383229987424702098241938629828714512338345633693318040238794574137380600161375003913015429454045848480874381352227201019434421432467668487629875135778051165250130379386868151268543153799987975161915739440732353908417139580827221666663037723449391196186926431266221548202375351349732469351552907624949364861574232396543088530328803568935876689836363943920234278236418591250499272106981838070590491924597995495944928111281457946157347410783000546365277761882230808335881491593897065593086573923165643961903282878159618528774527980360324287923719132157789912504503535716285240446371939040975813192042079401329918651111180909499088623242837748417033570947885913940773980210110319746116980450481833551975820382698811102422044285400503221248369736010048970501301388098411870720603122127439719732701071497382112740652306781576506332089163343898719017699507121401627527473990646829140374752206629535502249089307338108406814325451216554998212873063118210380369419266450159673874670411990902149982187807285238528927803657563025000196884304139433988549300983507680391831806126430196733637738354246110021315358949603792932529592135406953789738896368604913288098149084631805934227026859981166205076984741672529708583181012068744753631150827104245172164369878923513284252965324893635846288566410381310998654385922392873798517923113177434718448488710150049673035407463125212064997954525122249753927880685787916188870957897824017829848350776058808409880406797361949996479507715346637961747790642729592861997875217172441604180948291713641183985029223573005996777537956435505218537984943908873856974764540641099300397110965295364088322211551943368853509419106378531737978240810385964509762523356952428552732824721783292634881856612454835056799593600464407238945309575008408420869962412777507172973677266794221549336631470890643885473211297963486970086066364592188914038924080526827579281097109376326013606744137263201230052350981914601834209851929000565747313043921624569842141082937107784361416092215947394708485239228114681454240582688868052438408039798026113369629892912275199048374895723279818563854484743669079213102257125693496510964996514977065953275805630486395696051887359896465080246080592045506813255075777611386717255087602596325679591426877011827774965993658782597032485676971545327411787718160471733208519372509197338370962524668163568683970187827132341020648974857513658387652942816460108562461321978824552513163326612228716409144520091266898151864849206354496391289982925538028830406170444248919705611571679811008711569676838293347615288742408569542656810043977714558765202147022937351228147893402693074514930384349302255118862524608688161888409142777176256505782469757621427410006851906097098560083847875930105121224463815188138166052736731277423426367610119229615875950205643241652242135731104589789697520713923298379862789209691847320238328523337344538268610719824615560748107181529936827333167291319431381289634646456609913465556703722315390209754668038129495756977406985428756099634949811374436533048107553276127068084673635753374582599141256019645443661458335581492122742672061423109255132901291507798718137353720003544685127426264670547842078194641296595951456562946453670927158794337188360109083144635279790933065068818674682008772656300369605000098190058880167899986191231620869994219071349414124123134773089013488662087424091763325346990529956440399838276023487764069873596716019888915156388930126682590822096817163070507134012732755939657042948359945001402037910401514171174884028046692919054374829557539483396266184615215111824674975886095658388126388556919169051600894451070183512776223612433821816072196691389312267227840435324267622696787388512263880540000048404148164023949133090090209647234593010027573423438849770220984530555711713065584792422187466755067555147841646515940016574133258977019231948952271686538202585694111358372092314401100351584818025048784171777286535300149630685225853894309021704497476300693838686455690011908524873896010084231861532341936665224725167081124226876773650393249988635331439613163118938338585629995321241581002249289673049097099972774635913524834241138728035849092860320722778068858170927348645661367922570481088392473714014280786152369249487860586523829032495697698556509624251509035920041842043444424543451015122236877506406240665569893697266099542034173422425680376195029309933787501931052159622147984398657763100000904469554727295345280570196062306929528358901228452726247233477892087215942858714524262171682101999713703562001920539949184905569683493597718647983264402048633629747872533271221042569039937026717135825844968050323941044075496929186506666398560672977035547338669221634362656464673422828626409690701395724439903971607827780616836526047160271617409942830554478333917869369373868593389186206197987831909427553111466517149183733724577794670203067770380434511804210240769292030785133434509013460413485167590233310294081802965170550967863886954611678363881302948497516124856118457894717308268715103650111203639978559644172950657731711536120947343422908926562945994444609511228907864385114863398951300625593069503277463831211337507450992524921544690568504923816766620015680608584023431434430668313293912253291658207883326597202550720275605029367287929894324976543542863464277443707200104246955323688386222552641712531977035001086839698651687886364982957366449171953257555812757344361289062892340423817715391506850231713547223365039811613753620736149843735737348514615939553702109553787479296715142579187108912455152420650672028068429377572867139155239970150983819427809665375979508056100167516927177199455474224983664487311034757100904133010384507707596703271852652145643531498406867548350363676210287584911610121966091813741934583912269041638899339961913235588466998422707459292427685728206959097817134398714674949204820458913174269063470798306377809325116888393894573201488284206784706020400616881640494516432137504599888494954179076110942360594736901368629885328161378063457801734820308736630364160362136479695767511105010578930771254529038337743885945968675638623662648401694665149542254460283958689082143411465947164953766394007271530362785310251377790833926293139206817985548474936741118432773245240381184122549025010486581803891908585735256828854359121189433055578910932492827643896338688192614993646080885217838706459522102792113448451150768112867032929642493750451310914050230884227402800078053138144092834131143880796984134049175705998948457387630154185084348811995284265170958515694853637806901826998223832140727748479513098407168285736683883474726280261548077295605117638349998526755988155541823730740778629155274449612119306196148477474372160884530450119810089761366001117197465999103947643834019031886500850570311322827789937858150290998378488508375961765945175635063114360377672991921497978266051576361796871981537798373728238569802444479743031952284894545701301256587285426902111779980189945848842355394252741978781245680227363625416721858048606092671268614741179953757471669201348195061477937352055132846780195256258041864180226320522741826243359235710653197784006301476880957852054760352320072481551808983969434047334541895827904218180499243151213981998709099165859121383138680144554656310144774005662765768200408553684302761334072641296030089031962236827400018526055240527616647596737120563341420762513067350669661711990512240479076968951309435829494869719540056167670511947377298440939490869811647151028263711688118217699986317445954710354686240968628488013697243911911209936664286900255998519944269366728034517833814820368674510981704050563316810193744998997316589904392230395108072253841744102418915054218026142005827411285893840525581902017200592909695239725398765927007551723933919491366308614901777299609400351672415169102606187431714953223225769749339992010648608360834672100220810445189381120790427181065659883578777628663607312063475212809515635347506317923719702517560316645441890652023563363419545143626496422533355616512203653929844281028718413023251504605419582520098559151585608588375844477158481879384851466291599566275967658972442969954375385310962267315378967675719942415215341198929389041573227266874068100831619046830101453913647909818190373111121673546733013865376756926685684450850614679616007403252449975162633935394171813259873019714821104945791680751114820600104527117487696011830214067004100317190437524613869425828410535925264928609302870120104325158453133152869667084803645775037686169288790706995537727613629069317871078988219244408507696695396335082427002348892383177741988607722571754147816140646178200167776333916568217540350268312979207451972142759763491378108264078177168246809511690091958730466980728731686667217446887684479759626467254218352020764984299969191763939478731170772039200868036013312468233518755270673910873584336863037381587787434734379694449792366455600743997763620328106705988240537073979661629764555474675864533674706893651004673300592567093262973685826936608734441846254932190812657916476869285371068350106684740062912494862577263679591110625695926476120665042136323057658024313963735569724299435508086348279876023463949847745727911070010209523099349874184387833420270007314798251423832549521526729120459425306783711476764144310150813489659827720455048488614404256288308361780533632905669026879446532942279777670963312057401433293547221129274353743286799967821751036889390023221605476141930691281165458039435136562646392625184421268836332868907342380118523014538709546252929765215517418349560159369934431121217384760641266463713908312146763469034016676614586103623477002779844033074066448839243987434614879701141577418133832130704239045149296624348797242320375235695545401342756321635649046798705109838081513360418057353257184246822071045852138972624692475233188893791031148622098746568610591370681406384961565139371147127642956540629960776345981406277377439237285727258241806296180290504925385709355247922075006386570847081995767085715783068276462663286997493337927896781076929915165363171942713946867852189881266003503538814090944223878759566151887916642658316065131520872762451730079360738133105758414061619447489063408470989613327911332554245549279900424953078593338985305083438389119954152783648670825341142872205877581465441497944337674879720672394526477287700532535335374568988367241858377586069950785123224706274124095935657984377067736051319599990746205799869848808880013687878264816207827989193532570038719803447969908364059576120813214970684859328331819503124614858438498468631718216886007287125047805465294347262689920577692561928911222251468653818528564480684681336557347601882813050577233841637109012860359098176634738528065195266059682625329993892349734894723438249095033158018386548012492075428849332887279450123065346757052987523635911567743344524656262881124651148023100888938714856111122616576665819371551950378076247727114431772811053487657505908197662929686254167171698310575014723768890155852027589511718250498525089261107447125524590759713527094974514224802686889190592107228618937273926914081810003261703172032415541105266308354008263092507915163315239070001891978954907887360880314017981249836990904028529840049209129973683637282589186330538006477474794907324600046881733710332165032756530706807753654221871503623173072816005613804857251021816727227840020184413913378669077291627058350198614212405623831586761229522633037262445272796543383104506285648421393133625552830435919299885849021640313276612589942622055680499428765563199577553139573801847558077663142716122113867158524345526386245129284040967950415054171001768724965963450334839000921179111190408203539842597062076735810192674123490911901384039002850767027660369811273750559465504267152726265554404144395540093267164108445043577182031638516396929688508877545910560469941453170027729630774021396232430908746861345156067154628038424377094858035010426923509193095020082828048541754148471086345396267372720340222615396001914239794309378424021104384541225450724736978464882211485675290700727856648009361106667530737447820189793351523805603615721218990475301270992004936015690456867167628979243415790603558299064073657533647059201634253274966637673528767162592509529616402123947941583840363893706494448800484911255799168428941048922670255700245657372130241729791623144315863502796755949545913809533801873641413739705304329530327201963869472376158771414464332251341806841169324666085483538638277148920826878920753453391010122648868525314727127956922622825063956281902940874764689866215491164273734504905987088642992687735313520824516739052502727754418333520853260690628268677413277857365019127998029696030737684186341645858216961056568343237556101988004688732452500682031800113921096546090139390541880954185594909184515898313030446871172309762134310522562162412969275001290486636090635775136304304624192288030524746087772112651919360414056706051230348098724529653834862636984636634271144398018600618603440107131551640483244797302613395620786941040248997597131575321623317189485546813995086307291527597196043345013734275315440989497023525489750426148291046898341328634967989408554881423196341489781259095919337008099805433907461056639247118715155411186535642143310897517140255532806512689632717873425076083100064093605432199547651799120801983819512702719457495564045775579288480221612417748727972971565492749817242306516450613705104349002693520487822397297904489448563282021640933105333020073008226862205170826040539105191672239130940849791101197352838474221060839376926525264105201997504686817451685617386653358553476413154154386565383459490322903788323791498005634892544961727525165140809130208458533807850764953387493091133592960626371771843920431784203884236546748304519009085229088186343749417118315859924245228653775757277107517812263889338434172450000321961649115341689296792906748795048341410083161384744769821931444639523002244392178934435427339775246078721095960473997394269003254790364531612161465835523639987947932095652962768269132849690521546568265502548984275390913211132192646656680963994345530595771948982554491303627677518864364789879047251262275479573139961472040022338778732150102032037466028191655896473468098230703330937603084160120647820151335653529951000588736155428676015535318061176175498860112664585507224142615739495626788529592237794757526280199474454324364448671784399541484786693164662316695565677807109288420839621056785725756445775032517856768496806747626539668462500870018048829753342326599564248210470269419855998198893045667207025270314001906762703473966379898017024671001085639658646586220647927901934821530539392495011442080255959219604990325053451407151012121968989316194930845820221768822050625567654120646660315726740075274281830553135690120160813700668510977618374830400435896660583745867463028963080677256665454363698779906415115812750050622749324935578764396522637095498215390215963726415505510173609340645632577952603511530004565330257836688320803005941660086322729683500915787172469159632166599656846316944414859532896666487466661844905251166090412301211587229409619327116226542805410655219863762118576711345257825314958614405995881452060702333747039194171434893460948220781973969467281559741903452747149845415552967775146544131429636705984600948779700994194444318315401508076228868709242920407360289847808153045601481698641671054221019288045722665761286685014007629382662302551250012418482597511971457595464672505016523396509189258624963695413168014985649750940755499826476825128635030536102266027498507228153136230787846714089005639034394814886155095125222565903652677157169480744604632554418410752945997962871776571429447198518618929703696158595168259827562917136405210197587815783969034673372847845376811524168881028798559840525535746751729278150051275176911894317465818111620875564325350054706988302056010571863857997798450864702804427688716327249758314844332098043618998502972833686733384082307214385335329017931156453874451662587853209179232375397787780316978149859495621385865323675559537171142876374105714417242154177892775884222271940367094164296511657370301286601016354248848712901148885583781177259717047388110591054851280969292922818720852931962725835388673650240283190686887335721608469935012786613878551792955999864481977752511560748775177141402027302386270563708892572368351891602865081800803692865557522842033540735779526330480227322933412302694632190969840716604153243928121477242749665473407876826975001680389959804887120030445822062952480793237140340026695713962204342584494641279906829573356757946311264529142010257849823060923709271020076013347799325911244443230233698460867885993666477726101334045882372118551512240776194837394612254468233762477373338780914282794431049529846347801812676219485293967710272523626485588096154660986048350353942060087927162942857948202812673825059915691399505806064674081280956124417449020844222505301926708760835643178560987482728783569734044595657029369291416592860661506682172368767674961152330384948429524472212305953201506126439405850181555926832719130488762687012388901045707398537052209288562271474934054444943157067716231189045626726177587096252426941648468979808946639051583760335571609783087588528570038909682798054965905856796397557036691863843441709786709373311960309642907255420415099899412646544803362357586798093768922088170146621979214048991778900094932787719766613986971866418638418621506154868200480237844964746910255136388908297302175326794153875712062410554545567042466477014034517109912551321205931375694362542839086633248387894595974919271167585294972703523177158396785824802227847496938735401114781433389068352711230914172566325315600959041973734735090296857441901106788757613491302568665075454864426084206882912004885343207942008218913431828661307719343906385221017306800109959278713530580336817518711393385012554616084179132335745079599361091275905551770715392070900928584487512938892403062762929495926769643002968264440677934971298234594453858106144877814713506651623491260700174316703146483337736617890869582334538090930753641723751398632026349527430115178534827632828739729713685609041886560364026937028156928389695174651533216854037141290131756039310457839594868912269755010336352679092990569164632361784161619963207170855927500735353816617035454368813243466122973815351010740661141858028042876826880437113901397801765830088037675588035318802806724368242888012902401323046998145775151549197277916597964394718290953207626769358231767929341599832539499263292821807640234152185832165066794676568256889110885264118922037260028137647290008938926231303833383265184989938606332995988858699269669493909351245899887820185326099555342255319454487714621939553695319067393258501360150065526551995827797447734780952585526315759151361729292935959841304021600440010390326327645424502172703700764487689649214125006498904635005057274706484258812580007127356458860653181030394010099444422158363781341989048591193227227110340654270181535361277012004908469580592323402002458638495647971681026740782298433903178563072331942667067783181813053231711406022131866109610650891017483339222543997505817403436998391835211318689923642608483831534889272172228384568334312603496382358537626755383489611517412298002902411993981566754430468077950193571617110970638849936874555933759319932337639619346051961740703396113411320783087574910676003211645081078250214628894743787026745501754634661573112466118343828877187266198202334672411298291950387985580133251793843464494889860624326400655838250275685950079353072408804468992464673134289804159677394937128165574629455312885822004177087291883997176957449087650715760405816911500060021453888509135958588333207547618374662595579388302900619352371997372178228379221840170481535062875829605338238549738994946350660426170378239354398231046424741776530342404867387132264571604268382528365331138838165819129733555737981300604906265015297422009196568406223051290442882888151351969421496547673648888861863914563428085748576099838392512393563548964371825124575719458025009425725265629090862457727150225359050191115392776067023611961496430446801005186379009187410293892848488935307228269558043580009152132638419059995999660381529467577474757442589297888318457987578941015245603913444788568272799127022892421915960219214860193934622055230866480581179949561957222556819538513484794607405299427264806799640961537940363860109576032615695090630935941161391355248311982671454216466316596635692764014396645221444763915416469001942070530672979495839475436227710823044514092734739891368188069038886958349943015435076447564284116528983152866710169281391479206981740880774611883070720719210754420292318143059679236570623677657654817796107859990166080891466602554644522935250392958602770615459683810026506835711524623658465944199305949527264894973677140624000076416606847342400505512747749811476161922881169110769594490503164052282676208827400687171025924672250207511282777157647256262047605972580363098228256754215445279115084457319262643687999237535625180768142295361980372849193090841761480427654299391665633444535042139742336150365602309491999476144653426011227510953116786727174090975257429763744786497983884136029702382489120564808619192780103454085940226042285329948133381204757709202614303076615544693147619710712808559578330559542558476827867634366911479809606043193676467561968738357023595395139806008698621044304773511566623335110849070969136684587791851310720097805315568052805032004686731215109047195221150880358629371219855079786197075146286405989045959510770787716239199392444361106055819459512753087876520862891142057873563591662596303930940706996097180606704973292881573092802098252201039141382587426974256271228455376071917436055193150823958758562793352828171715247597757334700276809757241941056313934352739785404100469157901171504534857671741187203214873864957438751540106701893003650578178751589011061197072863170037546226441963694045874694263067837700079767343248203414453148812442411061862607022795807069025885895036074337569838647804965569735561334218550110926734942310107507804310353516315757525373118533032666292333682421522046833345694703103517131969993612456032157337913430086529089050437647886637599017207095572559008501859995929494279254647976205836145463181261891357436457216981122083303983010696394039998438339290601244477056422760281906835999887061648262592065345935240711431088520065131452386641237213979249325421897730126325289427954688830270232609364123800786312989848210289863506115638615031594342123840017024131239771888965296800537830440031453785971310369452482552919655681104865522380851983135095947890924394467567479990437262799813734509325070671662778376747792939744996688688560881184347172685040403846617677789135340025858325059997226024521290360371979262801171288231401014902272996191017269760163711558046152299605659391912231091728079474551500023987849982947480698674373660447350314903846392640905682233178247057162364727040929519812825938089433607879405166882989490921282544489776515244258768006233043097063146465327723270882687452652389770411110688311445274743451056981042913678671044581297794086770991596698371902537146892173473831410499646442643428780073097862296488864758930566570094346312411750600204296093877752418587213753898566332340066823346829480740340741265438855952399171198510755128368168226179822440187730833669587823585840944525079212950284821523142860709332798963614650310594463533324658063543310623966208842600087751868026126828615303909172862326163186018357699387757040263721793542998513301493166888830615039574675878171986426550281782446121500355472156103842569650305668292252824830481120536971841373177506295876967198153361048409345079080591634032781754038650088245156484143771738410226002479043979485921069449934085127619722927955020977175690562466461919939107251624616286825963358129924822753281396229248299583977617608885807962993453657895222226256946927977567929723488269211993011738493859880829198085252824537740240072864802447103959445037692296180056622063506118061130542671850146450657078248400786678914137621595242967259214023070848639907958421667734438752496526387938574717555718980466679922882958732572467846982098175272301881322746009924288555740411017723819117644828091836700207644188941534774175914147165469026145309106879060158367649332342690951102191728340380223998998584979924192558354477266529311447940444559816226023171125711925523761906363180279356441223004995055732354418104099086356158423446226312331938624464443519521720801237274509617316724468638314681868551449797737936357365045686505762770776358642737971513589275403675771131293639967251956637545101914403748024177979318339028384743168270714649126311983254031575963221351361071182674750717867517136328593859652521612687498670993293800664392391781900430572057276692797031438754753698303735475651317514061516310055429894421724534599968165875612057429802371261708155828647577690959155838263312047298138787155754172446571217593317725538639316726412748018460191097705291824401898769010315693581443100066958003806696272671367383964680617756729836815280685304755328987439012174362297517487957373373253811271968259752462139119031404391377380026637509304068526852324765062139239241101087025045645912337038953321872564891043577206111002418578743629024825240383836351983541115589094741079238361661670016961492218634647836106855650387837134512051388406063184307318128052019060852322690593058180899742681712566773426280140833628567673315350274705122271951243298737245684276954713159027249974102510864644072788723884077392113813269637382702243827526029721519392275954681370761104432786259822280316804906012176628765923443213611151125962892551776456016843819087371178667699127819448858229759929410848064842839993872960311449877548280015917581056608138929025037902505008175050913609400911371617210694580824903974839244872921984132386065245585516748736031025282268991925235272350520416632271563488413276742077713993048093655278046270031189065054845248957438188933037955643475777010096147337552876239343388889370191835956762019468824974030676781291296301001521982164216479191356825675350313667107414051705728918311167843951131226494767735797316712527513208217017912469910347275928520150239504874438190373508765607229797374638969106137516348450718355213800393429957301890461666944927817779053360014048566625541567311572651289941802211981132635066935310444246465155393640429818561058298023613095975186490307825370805014231432831428639745461521933096333844271468029158259749031344820657023822903095500813596589987229832287030868673151620015493011764054847084315832769078269535549689981683776290339687552264232143045155485795021758449402544009195832800181915796542041799306462832679757069089520788374634119735055010917005376136985966751262112542605888121492727171707919993751535614217246775772512654004910608101038756763210246908639265476869687678505316162404289845142844953254635982227544155641264009259797278696825241868577958275218435217816368001252188108863556827684525313160299830741611610575219118941152134816941644326243717939521568786224499812942480532155747406257892786436711721976386603867821348167860660438435574223664766677440000864997421402621198671038562851461978796167346769675212478650503042096239677092958421465855890398949474774214030830463436117875754095501514279761167026316175233390240920675110219315109474079399937413564896375638244891239621685814804990583680627482803048323374606990784056203832250921294367299875627771068966101128476381848115797078997864968438606318028726733158558208488205127195011796986726999478947395818311249837414911880633355051979358438560548778776161320990747424234464174084613137822811482180552369654057858363116845528820943352110731007442964824275721831099407193048066022606635598530086638731445338906258127742013333471868219850685980444667517958562060119182886566491185714947364367959956296998086291505440361988782425410622984325197962380168471870803935848889800860097056766734020211123478237521158132713786331822397228389924061714718349530348717073095421715206053471003511704070410651166917138115274569955377456677907642737064537327073919347089975297422259721247577984097371761144042592528300135888633347149771875061379530174688940047053981156475379841438652524307599902057486308925268083812659863813010408626574550693895692736598753063820901446481322467573405552371681775372212374365013798973684334160876572126793569079440579968116731846969370590401011602002991081001001710009436901538405259607449691705799022674199743619687398423812500286537784784924656468976642314848961322140737156996864985292148867944580508252681292924895941686991801053753285113580205929187786224197249208926446425765596150077808537263078552768802752985011478275929846398640211008922537377598511021988724549087789029710146141368910094346012833281709394889476820281363372591995825035814855379899004895505625983741559942304869154672939052146420600197914493098026329138147662400358576091448657342039069311575269013381922253572615342034440035452055268648102594900632308102636727215615771596932021830962529563890667343608413977579304652662237683219229677536545509673238200530859238354443304734022243367871570006689321187657658891963146166690835226250186614033176784527604807969749307629319205614659679170829065126539180427056151881560676172742968611060726697646629656149625248974420844499137298032904485030514647405929214352099073758191552980390581433137406320334342542611029692679918292349475042873366611127883885634539116862420461354721460520665725512298376096213990388607596466298171405686125733545984962053991614179916421246727319853632285197680807809542727677931778246432281960945054643392643998173558762083224570587852105030063692318585536359274935935646019282886037317888889397530061956275961893459477971763388060551214323050883408092748020069643030682629175824666132228882787965007003332128804175850578918758939497201931235313660535737697050561971625724929695744963284674012120265090954273175290167860005946894860319600568334539774979159723299312918081563648271841071538669920226318512025267162966606533397825485453176808209260626652207900105474174797783851603884252398389229487367244163693200966893760548361175599529741251715629029555698086660731846899694321448635359653514447123778111688570414560731884000189499938189782048658934719778896140907521730029563584450826772642462436671244936393025545854581491610636694021262150306228530885119690969673617537612349613156305086877381079323507729289975835434821803830646395178551337409830551771092327192590158084152408742022228674573504656628597131348848322621411998856253190938508040558371710425840704392608412806333029655518577557315796037455820374394161889377889455799510657702522644126449953114888877605410026439611360450241096805876873659922397824584558793217717651193761227464539906074801108323857315264397928530449859133540998850414958239862454533799685015242402211256106510440437480880955270708181936904491176655059885887658104446667454761441796123964140691771803088536673778345025435616424829406827112823066529596822510046152334585984716544067924791020431626827073547119184052769360989801898440491298184177717277326809253906987181329802529687734859716312984396866964215327448999778588548385370460238278578552883842247159391131097387735286958289912264688983081903969701624693565717901855200123376593871367421444963999277969070379874001855632941816202653843180824032462933932771332075027619533476581585491033301798050621927784535511552353760179485699576148559412936719886832059785366339548031292014700324433939491596280886495387357159822606044865647864974149407031128063454634617650462347817305327973063510833984472581120393050499175002976517351415659735142633093176128970475332195177355958199781970975064089352386177171865759297249724994115440970963134915376156157064859774371309192884429430225156426941192218138553982784806496893666698469451076153555610706282215130476155992641739281663650409629357193962599963562336904056463608132973333043075321202992249856345024440153832577737724652323244773369051788307347779169166158196477914020672499745507173964432651756810660854142462947563946380063023208410378708662570501314205463190368771761322693666002024458778529365781318141367645069436390287957521342028960832706978762012926377259751584456076552642401637046054596963203849292779469038910370025290783410646720467718673452853918001021379971447525441359661027995923480948733999224587984056804387406802380247286866638633989429700446079953861871856227122616900996563559453063889443090084058586719051415971597526236957601096139837126279384715324408122294093007820539487576300291878923763922662419907043568513468178814361795622351180262263979081185002941962937508228139134304242827995322886512047970774047579222726275144179246743788736186793342530041259044021845901762825853461670016874834197627299786195514677758219491489390305839195236332907729530671403215015449986202867447173823604745589559164246350580601768424657988972805739112093478919689868871845161994665939397427986923109110868587592593076922084608910842863709576724536005451236325102382244663843412726250248006106919396127512414318022439144241867205881861483632658801302828977432902544139547324371769353304529981734036965734816407990484272671644664790187105264447530389161328196528671966422222853195287855218054758766865144296935003926882281591737822068887555423755646982668962010035840200870346393082736564583932846208164755400045655612177169547367817420643106290921641953824209601167938820096106074084529743467713704759474665376036091216504114764640759207404421423278527938896744180054477115070453295355890282921735681056855753337757002989427730496462946665927725359156908881436604373623061562037562674767274137223251098555466866921902896893845726409338382650707414273381596856655959779580744533567399545243951450845532784469825164931136317368126225271883166219422431109796457263326396607313979006668810966200741062007332445366964121648424946875664788329729325906091271491961702387516368209619054458257974537220670399111566294922034047572533508339657113215155340147275619401165362569199545553205449348788983130195242997919128680639351985419025139022867888438325319306249446062415392034648512571179962047978878430048595799070263119528215598015669768198830073248787712207194933336134967034178354438866437327011158157931827150543942950804209048465423371676532864589376429569887284184029811448926426283795850761993698973431049219100551987517794455076371893118675885715037612738943966839242015700690807898734904876281380383861777008720841131171270587494579233684668589561521532050958119732398334352055212968059331232829039582759411692474333818601234327471655822013177141846473312008642585070770738078020196247253892978187558613525745030339303861527578326645705079041970099378959785840365899940280717368245330773657376493793516438580141492349094662761293685660845030888277313290840038173138408126859715453017006168972033908289167346415442245155024135029148818225634120325754279835260756989797632327704155486101255505889006105805862205610307548431077485255354709639829518672962382184682385149509321157286438029104482588277370229346768904942637624166070779383565563306589998078329707367737514674603198662590734601855100841767939701744836185177616863590887218104340920594235795429649938057358253441127604645114090109531381131663913251945909386856114718042138894297767682657276723775738962349989896585562314918686794556435040511961208266618103726231322576446081403966194916498948276996738219483717437403683621477879455932044331201033865841690552327419412452595911511410386840922283555568359036139078350911673552193914999259694830098813336505103008914634022070320831039946188418324780435949893619846889236116460807189348630121903292085399262872443918770721932536775986488453140989596854855554410259972236720755449678237995609942902933621977995823776621411673031084476147456087440470338166296610637680085829344362569017571234083427751726070875069578908951056964542379031521184068278937764952320378252608742425343600850260661586904850215986093624903276013300711501383705282581014371137062309635385389598403687413126491744950344394830582279808761547435698450821723143678045970305796395886131711733582797401939965634984555264358951421740796361529350372672203561957405605335248340341483443180992081761419922807201659685639137116685310527642384697786030226315514508336819977868225636652143816284784637003587514048419058461106025340005523030235958564462057378393661479984572014246790450461315515243329992373061104930161516637275824009186653981213897972199352846334568504812144339658240082499845410206937776673218247241560152528125710632171805147196947207736064028205706513197515629604172836550042805596264594619067205611389049604780885009889509972947394751605319420434941865268096585269200892461647808304765921658708202007679852914479856833508772412659102192915492071292365162293354949852971503812361573134352829498887027586588098529311077006319684656415203937911285788838281660625697345507234885975814418214406768583741505515689125909097852748198129610234889578013346041877988229684192218819029552133888655728353268055463123777032673220579018869876232531269312137380637388451761533994068088078953221532999385711393046245861781350886300999143676689193062386113719535853734455454430340697876888092155486295507958153583736710236825410384436383961930816929354201228327552527414116729692911725618808994337561301423621584670577163879624017965368241749739712582147121030651509664341244793672380969390827867732755386334454282624667732944768013430436707544361499862777138168657225206050771275960080399938460154246733712575650462531015027316944740164671544258724102147178782554370292724782928831121928480835365534728532345799953920411231110094702387700775454584224676488441253044749827610219905968944675309207344737940255543746283122157915938101101124583251503186416298613223221823343977594110179692321653623101598209156305566872481620203916707549248193765692247029916098870523935493041890264021604325498821134499003556414442646340630638203910969023014316961901602485163419309710771277943607342239463669105898598424608018577694233423305368891548821554264960366098882331252131529595055117825077017505164693644529102616840042264203025597677587362414637920357886609693360591763734859300059002761936251660682373750592106297577805571057701282083409294928167408270717786698555506768168239851140037196540309366269476989376752077070870468618474033702174754890566646695172862615540180492015951847326514711996341570205086944414350074171584916819280900929773701910115826928090633691605881296145896741776706391311875646259434099961785399648765970008027713700168700323137827939753137457231561045684993622265473614706856108852094254810575111743698112548310662953043252189214404600523254935648072918206394783331389709373333789318523119595349960507114001746787169055728796023616493543674378575608452799504064716988400294539604749766688382916716157745059877775396084272407657672272965370924840680455208713626871400632183265828415308385698886294133447962161051226429991814397995881151139937346304201693499021540268951462084775971498129339161943879114621986722028575168101620482156692337493936378123654329260094306272238409025808569300196722007625793641006016425668648083075630122083283436541120659098969742890346734305777930864603475121308614797804900767886410227363381587475019686023961044857866037984726713122996818905152056223292374635469330199859809838937079540089758530523172861875049255895818619001395121513291603278867894573059261984944318924280488185923668817073129211693415934493096505904428083804904278525964617778029752634297847057956955681816837540256911748571415973362772217326213636041437699601704520161195564706834323599629248641548843168998002472594969048036574995551198780369787946141805979833163984123717864404162719046511090105016007256166723119832022092421494816703933656324955413375457448862422655058914585478881402446660902055654609169758817902265844406355537482637713413191985343854891098234807578581489267557337799883610437655650292611700056782902161651056437284101915687545115305100863695020850835060110168459460721669923896022263117150558849886293382013006732302376131539819204219518075424530341066882565236541615443169091352688071453323673396323876988883004047154900329646545797000438481283739417725075829465862292258415084356151979417340816610587018973339151834482090993818979626213128559994855658651189475302655906822100078901367630926589082421075804730988430677669389687383241483772475880007612153401630292081096909776209623794307374701912067665456961493685856858833926268577258982597182830540421860177591544013235534012940074762636140077904576020171645857013140413722527779659517497822921052440615480612901367230896928296113582288430227109601297055696208973263450015526462129400606877979083499710809950106829607238826189172667911241184774434041893852236714745127764814277108356814437919148965402944986700504909547783763597575048322353257134452983080756464795097718433628832992667050626112460770942029203699673463645989302256754813910699121886058458757134982633024597563706011154770384858103857905314639491371903611117185397019779171270764968899294840294684557614754431339716081444375453606798285746453464539033110772604853444121144279038561204247234401765158384060225198149757785655751687635076933784401939172001042843875781674940760065354393678898356723514542678666731975810497156340395906973000724971840816182416959976987689398676736068651427942754503182458745644890108973800596551197195378413212477803091607887438831372100117208735944597853145287197342795076539305074933930924164695583429176062134512434131315999654444094043430125896199364525187499961319889597128054893468406051958232351439516117510192975892890276334899483602538775627102157684977940365442571922746528080075706975271078047950508734058103084993274060351229328661071675940431317909327065959968866968569812192593290814933913825471594780439746767398454146826354890957004512087627429605029678412516699118698231321784416706988260248396165447367788441410272899890764737667577922766884833338194994753161695911825009361206272529924313142821832865991133061509864815349770283999708804605522492083962030030222582011520041963277113996997625137077100686675215754815031113267753824599290145625110535950788019054913524043833960043900014982633382336516539704348780283338637019696741500504587539494588592075357761911309964407987015438444115834522264393328991122773393511682011784993155523828963427564254500158047991330154430318572616778701812780513633182358147099359514337412470120522828018228700095946447730297994325196546900114204428934415304846428682853866004721586973270572787277822098338190171937122544751333841457942400559205963759728399589129388146065720103975257371894662327758703805304193037624281258213997915381952856430894614551712545122884331582636024533204156720554400795079587868447868011532525460226728424274982342519884357951316190391939003479669791150085913070830987395478957310168276128351123717281592345778468103919065624484131163468409384347619215016667535978628414641193808717484576470390114340235951027749057510134325538822417229831571025513624580185747320625120928652789205519831028049795969324440419415205599341464929093310785446235881230459809042086233408499488204594539305450768583166685291964314319575213517026039614845547188669201199364894462034896130295656203585455506533445671486548027552239840318630532032266776408257630785179022535173934786999230533097375000239425589015390210043931559287161542047119970116670713226740434707851940890824909096248800745416388132307306064646275808944787997162649926406002148564471037719994868511936542906682804195959710914033284311614008203952778741880011192639263324075042979423480849754504480852819158335559159037945609207025821702014708167759785198549786542762835314734203000037040197374167233301776661003030731350942554187867284683898967742487837723726786385196540670730705606988565587650654661034753046409468537482748109322903342810382174624845717550226483953742243383445159119359131666658832310165580712758491481678209948663386623731167218647718013182079931334009190797967624102997606316866213543375746613959532087898836870913479868568878571686147353494207888019315211509903674720560214486802451263334592563984938915231251482801034611792658998950295645299904888155826439774551812110740242998201734457699615520643357819798698535316853692871527771900367837411140993853977460318432611430421671566668200333051407362202173461933821885039027626411427817173955452679811360598029281341523986269889270836976098126605624262220039704066112569438424688179724700034868320506475403091138974805089139567385954505814231979785736085324036916284643502923625030764639117428658642625468771499482804150920902142818059166075229385323293355595941679993445872577230916405328039290348395605695196725277920586843837085769288044094067313966344078165249787849176837268100654471213144332015094080120953982561153956924066761916954530075165559292719966082351865578085505821871383090162273235784630052502632734110295702844644498794142223760140233427521870222905641733022146980028104419976772683781682588945735371034021357385664493880361389686165908031591617987173171212384658044759281786656330874529372365948218384043804337053156751592129615593243547184101431598590638308997234575466159310155366439013612617301203200903721316120713331351724317826475278934682406977087471476082768822221057173445170432345963972875037441869028674960805998879651219497871044406495231722241003615059863237555193868857391253900913257166124320329370728814758371152889016885793469197659951057493012741557252292796055743642149747289984273853755594380423398932064820823208335433256249457646076251409358667284396637608461001704150072788479004050701396004243270239757749308873957619837971974875678535305988261885393307056893489495897687807662437154180351057292796729128933634356557586194506328374339109943852585129195527237750594826530409332221889428771313138951283058807827451593517440908596998315798248430392604501611229365171041306338435687599255188925608465037057233305217319756939437864750345179806411738652801625347340401749828821452645554578311511454891132646594080905050439948417719101450998159971803477331987447653057179702257030936363195781914550250011347965360254590510582768591097227465874980747932999928092425946798654792947968598206730790622195691159502946529780705205799799172639315531074680257819674608952445273624299367061149813602361130520931713037014815453303062605742860807000054036782804540905968177698771689410537930110094796183892514539480955460649858282267016849767741652969545903546894736267395772085568459311070931738720203719393388344304598290859600500076653248688306322444371698299401186417749795577034982875769579393571303313573262640523417606265114678720484367480796983099547720732916522803671214418476612225678417711346394208688818661287850583429948882349498414757910424921305483016693578592382255444840466875831066220715802832456969671408139846775179608205554917357804556578493757528142316801254387798184520883274654645562370424599700813620311749438663525485124895644974811034571846487753621106450020776631521309555653524741617251302707385374298689933502637980205870913194779929806882665437872954479441930617529426130773310469407526342861601071211403018734305310567605767449660441487044412521589775566513769967995197868550677737614878318549622655313320403092806062316007878302282812001166326459572590709769301162752840382522968658731026191735153530561386344065784699466899012424239879036575280904683468266710265656170306699139292653118369025049086512080448958634958536766839696451295156444466320420290733709336672945873821684135737489791042176415684532947919836094715286754840563408471924676841702278012922290676094368532845553644944944632534848517612116967760931843308292658278825138315030912603896372235978440165060869277876630284024867964464074746882601459975643815630700067781092016981603832272366527293421602110886053821146849822566683279509938300852871806964229092437958180875148607902360529839621450606756984580184061063821841110548947176302250337519534980608497001778703373558302074897471237571054994621145428222672204886603371818295687501165946820273338918202069448732093472370514100640468365132149786847372961634930480961321341793156887097965574090990924582895507900054707769357576083173137728762443208787707998899948547441758415572407153255423739127389750327259949830669572495856404828600928879334087580744895846929192826363714779411106276213021085193092195800442674081624322636939692155652257690857057949541534391695084476080714639883103778686835964042019622643804412420069388973556421755083650685373778595108807403324485808799072792323793093546601989527253820094136178633310698773429234146261639141058732171631380704724209180510998636529996346233201212270913184632586687546668157164097938399523938266149535002191969734798368793495369724506255377353001950828317581896771109774504836747608437198699901317971173923816525782198333790174618330763481743851411477346818217733481577476991329724468745806621931692675907560805273612130022628275767006247270885311464970455100270176410461262053959064179742185552951088748385457210897191226690704068409994132284946010064776847942976722672354948286792481731842198560921308199637485892681353250250861342684680025818156639290594360666368238365006649699372624377897630882487010213345508486512144617461777670491110628186110648027363887354720607029262959528548569929864130230324635761185164610991163077724600415071441788501478030577606678389013454600432426874574589613478230530483270164908448464633064285516082011884998195485093110984443231955542558221538434278324997841737814128381616654836524989973616413308272861224583376872552683479698959290708976299903158579404007727067843398927195604954280298087063380525048034720101869388259207422014062706723628864316381931984913785592020332814307538391841562284955996994884612218486100250828634320515423698940287014289370360074341725557038323128667466464695695734120141542744238076768610285169762944156585285427346400732456195101077365884394734802683151122259421950329633163899578590525792722495707873567989782860904182550799717001159647770194399881437408880761812178416804679568825969110462109718624354150619213126000638134807246261190710965979104965209458978925036597201359054308113414603556546208367657496457621530718405457305956715162216811050179186179235381643855122887520069451094528607972965033338344768476833436938868151589084086206655415889710931516757584970118662807537093003770513482503040012036187616462445995300000706169624089992467470557620328519118189301325248156662683997005699372875629023420453060179611972350718884605207064144828107069380171175611406300935671898589728703136672865906323830041593524033562570224254482809517431581785414265332633721658533645720197690540428060604486653528189096750180664100861219017734331161008795593317779524155736257768354447676782333840597494817207024398831355976907769243416911396622476827278701972272148935472210216565261209830020428367104426494905072493262655309992355003509230303378119012163466892837820177659118073370903815673161712283367438912271986218180879969232393428782723371693595102389435472012962508034695843376003098676564528543497398394232862560416213785753776608549316992911544955565555296182407461304132267355540884582877105237589339228180257217231000878927367956478901851746492413575992904548037704551724239826878528357821235686625379245166526434848058578529361357716127196826210814813858891455595007994131548589886596021405273005777029117769436122788846123616723589266526521706945601494642446613446927969945115922823402987737426664984008390162641458215638963592680234230313974901417341867706243671808119373083028323877471676578028436319006565419444806404742313870594994715944572750446561523530661710666165117906161260676204809934160444541606397315422495597317778219226658976339961255374339067189107216014762306427127805301705243607036379898504912249943244190544365504493749490749057564672724451668894874258029616197781189357310277960416056836586418484759670802593639425435887793442440216336410271146689840358809258092572674230292275591919305432549713743977146856479715677743298851192381390674336890520007898082255856192265693004421723448493032855554085244731265377062395166606692712333251482376479389291568568596536898234867033914626185628968706963094348514748898315863729339199859053157334620932826000248202874983803782049474600818951442745394383875364635675033997190968637815860148828284336073946897632470635512759033426004088643425893583320377888502417074350451714197739779134344957105119999983226123922016050056210337216320072682132605726464604166937433380862908802194870359772170621432299431691391466686311691423732443089028723267984859923469277033191640173960505881257241655534245617062195060216221633996662833734440377429916601676537015640664431280173177816857945504597634206022195013860759918633044728927197320333252087209900239279859456829379344230313095007738206920639870736164164966695320594158721446207540249898369434224559758306317983573226239855195238012479596841448309320097491027833431324869326805008668912444858834353308853164425291753366795890657023375545444145126352980780313797168325988493869921065540013010996960743944964861900826255406653556094680646206879394524865294915879697758055793287246245455052516422036716599936221779405377762924271961031041239158118583770756276098385098421472510208682846095579408726479455906944690913992885007869368617093796551611751843534426469700700519314379589933499306759707453869474529091465644141457997289226438338567524255992929320432882756841452546356245966014414526602966969513476711886443791189629793696632711294800985340470170865195274046223165408230926248961890793449626872754954969729441502374118150072673614008617635958485480441774681836706266010435433111398880182666506168766424116469489166129849013161266754509208753882689897977723641982562353339178063986097121588990234243383402407184263222509495900113957796485023490793049181332865441683744902306161530384144345548615579133281183001771916510486720576175553447579891119085855556196466789553696010629241834510257251253659992765285188530370383443473090404683647786510221052143498191136942423991405158672677961721928592369322297003776468679593178289970771961569859549160703997304609409597548219005286641121902363817335111233937928270095400098809321405198728397572421735504422189637949375958362244093720673286549955449200673411905522261590091951171108734747702151851664622297436499024361339558232161109511622881357631395249232214888212246962951443389984401736437541734055246724399703079237369945076651133897158306807157066683733791379327052325575127990536803101755741710079807136887491268362782394288618843334118427430154417658419975066810870329072744826658554867301899226242836664202687526626959599677054611720021251952884182260375940924307686113640825458275553429072867806902624166203524853693628485573855697064517936943374962803542876142403532523238120640624939258346294952025920779025577548563556726778216692352199139018255049057547525692383809386994434621680384253786267576821168981446381488953981987134621970725504707041539358304044279052060971346041737300473576169670986749666105861475744191983121321234530387615870370826874222576541342699660499193275098473304545831699445615795361960778275273654130629785434217321907593257384020039265110706385302444809606458575520310999143766372671622567478675660907795169425852284756806115948721286008165949635418923111092570016045046626266600495799204172592281311460872476203186380300080063895763156984034474922788890225954821320688338483504827817739308314268745393045909395998219840983046838041160456803584559907613540029322072373980957977230088207797546773540534229034147991562270283013787170065174732736535353682216832513818875976639349962414076630323558965219091219687266938398468179743534248306247222354597726431660813721621483501216681545550513746270232030702387520462190134324399607212594416923533186377678192974506333514444846172531817393329360832227548715833900583312022576089719459595891341523396888874639920313442915277343421719060413642702742611148468358894058933394286979489944683070516410534850744463879433441372835400043836219009257557607757295038140803386283014434001627079540357541347595569417422608365874294297979898217546610705288894572593008641204674462744783572996124022150071129916072600961411478311777627139994455288264226074168720050264286718458691600276012665650824083801475369771507222796064762715925590076475819895090504258494418981549232569918403922741743997350968485352636101988677567661620098691980028440983896910444520483834824849795467560107604174538147597499362142303689656021881516512853617413960720049418814382343968890224252663920328141755094834439925365275801741355505558930110763925330806521565964662743759724903224208584639385114266341191520155048609100822292153127119463959538028498678105778660872623629745112595389437873014300086201763632462281621749894568006596690490049420614711434036362933931953999396034618325054749403320718322863249406988567313311372606135495223873868300142135351611891524584322833980289335259980585767178861011194977876252357735102722303963267981281535507933619340073127033359421434735868881850109945642012445194836201927192372544982859250511946316281690860690937562930964248772563617157512348004182920922571953622654775610441247348938232936946578412529676541488590264929230701362165183874323333599055715768371126288582252946815491809277971278802682980466569966411541223953541883007774372058047275179939172373262674891938093268454657042826526518538958599330573862818170978357703116355510597017556703948467524685300237377939534157539978179792855460224074969730069326285396841375546244786732849869417833672017049085701653748705971801435683425786234623159093995708723026939452387595422104883342599991969867036888264488605745969668337694477384292593076367292008173626914398839976369823106369074019653944417462005025331701311322271900954479686793088859569743639550981098717860873307698253171496542783520696733154498964989625463836843310729466000140013810545995320911927945007737840804605249482131808030283911053599807255629391847992903486947985536692980481512984718151715327507039270597954776469694904385281089107055597665034527814423599475047067505526606289326609268934143100001881705898018291050831031713825343206008817043426026085574377413706455818790200315486508527328357704311697083320511591844002006591845505980274501833444578989203395945801762121559487435541356585949910139632358219155539076995781219439483871789255577566009966685649587220590266143247087445035738607539238356676473272020656339563500733333008257613761400673908283731999496700009014184878210084390048270157348869982763157749706824537430301781658447158566650408683121154362874056541835305177932856783832000551824362610408790118347583789815946873367493462742183748902868152437265165095371125625403164916984527410042497629588144390661115588537604813202738425476010516658871128733951964385220682599444967696390202355232791810800349128112661051200161057186193965956429001452500806638861572834821895011947705481990793627234233069750161101450296863257240157922414868664799968146790906518431506890194186808752825429039576566276963417032083674219120718343972895950372387775725026379659316606627255820329648871340836715693625446347519464296707237561471994899122816927322658856975815425318932813741705940357191614628924980676326519163092013566604949481009932913924121010761268612947704474596887208789687555333346243459647461697171220376462605298561195397797312284040767333380136025756068523698910276925702924324682116204392360237809706970780870325986179207480917652909271083403107181346743321831093198511397569316882826878308757246625616277797000448429854766532767291343862073453094393481763744175315834553478250023407030937155601175250565195040347285178358472633999909648523507456057037720536145582521674613223451293157336785276131186968941184076586722593394982218816349582450475311668588300685152964745363123959810180889525281416081806183098193715958003287647002061600034321020513284522424512324388693653008961409116675770820768639687089339811973599970435624958424797908491942877780849319058193442877316001544520451217587094565784461029737859600557638866093365516273423480906767104358154396142549461425324973932527085875399999587861567405572673138089748244987002290422253209105537064115196598636594691772767343193279603597198668620282094435743987675143654603441338942204035393224294212032673183612885588754409721725317846587149212181729413807564962700608808583117044208005333065936965378744052822345781174152813988503453604212860841525586039930536695209362799691643513972267554469453316106751166142928472121362821367365369804821231428195999374263547427626365301248612446646909609932889493406733968473015219951344021030051370249773292750416438863865870739917206034939348280721556400063697277396582239134243891227737041481654907491084876365281103245234837875628841397840417099714007577412309235356279160911008896076191085038279765732337209768908631624156713303659192314417757573636280724180634456352452032006798090915555179686666927358880638154137804858509287736950760987468203319195550345571041721192994509907612395399674140556868508658415702443979287480445557926773402480272353259737100534849489124110635915715291574081962082899253190345734341231667006604044822995998377473249754460013254248930931703475876106069706040702702344917337415110537295213928569372549442426535869226950610821149469074601213283743148389150065399207310055448378067898766644019365166841073521461450761135254836332823658337825197246832321694084963678953664647452165427709791640764894037781357735872797838374201471884496468200238038518939053430062302195134743423017950127134784600170343741051823850186185627816526921900785386965853508704343367133670921858367677391844712311214495932887024553179596262456416825203305074609977791477355124190889255023392854506877659109871874930088029589175428082765326918381492354912110682740320466770645985496621384309188896942789323347384076534970628391687268250371182374161994489088845923172629974691218504967255869774794488102575543208318920105300818457493091336859572024105201926407638891283309925508767284646281282241743381087574780182176185147633354417499669581183043109523601526721932654873118311129739665778427451831187284740294487659294740412257966879366327678378720607468390252483755283083888433036931521687533647171766089785875211040154092029521702462404653097807651334220789835155968300400569151870306060152074607946047383546658905221497711330145803122989136841617068397769035031401338109039687939358443203114765195521132332430974838270013829432737872844367847192020464139804234276367138487121076170334762057427354638844750184647682265531748212936474365111599055411136934057525330513745039054936733690272161541011044015670477314741619533136883826166832847932901700267022388792226296820752569847032617806640571690225950814331973953686593277255357379457704166783719979264538090476839830307834007200837878598027314078686565806732859077172269756829612323541921207860100611237059974158075258438922852396772303636125373506422182372435107933170591816017571099175443129059807430164624494111742635721194811493829072825803415426630525777336444755627834038480346417170841319670412866556649171235240083114674497249212561342380333986491607408966135136875259552283511742709490904045051099497053691844539350702824538934672633383256166816674879563622983520616276393771823478219079217742187728931756439646674237244004230061158720000989568350007790963712585286215766455161699837358219901502333411648511284274936870665419119469579917021407975224603722272385373728665234770248804695648498950887384567068170112745266010454524626646128211839710058634978086926240475573994581433247110891076901774811690292201030621037042543678567287844179701134963159487724089395785234553951840797964774210543973077472589597976744336125132026839318267791840810348496421784081125131651557837219080399542855816483694523425694909608146040579810398375567713184726337093852747917916811012537836746910488279335524016605981722386357261455692567607059474977677701499013239693170255819570307934766911170441438366208762568624292976750605219666925497600816141426156925504208918160951505709295862685633385334613720807132932243791240055607999918082512554384136751744598808330005346940276836356377411553629753145569765484280163609582842923624333854577472509126746471912321905945797610470111545002566467484558566090551798213836459569959138302325426728429155911691534038496944240038289008700145190590513167618061786790442920223537629635846473029848798754242908312433375665616365607519221684152609919194611726614559587737608798022481855808570835204635053165653137885735915095594889051414370711793886083352743867046681938812252202965366544058070053348193181749460692751816881911140242772226172113632890605305949549623638357815442770114852776200991173581804321319544712488544637110853504738886866654711818012666425436664091019364796396193691789177729916481998453811422994465206663819219976673736365974278188806867504802601182719094923659387305861208014035320118674154619890742204797162638455135691505457612041350485903060655803527036480770320902523717376334692793860379191015355883922202641193982938498425939212462685075425033477391384838855406651262547315981620861297871790470714735048564943193607390599205698731151700767619151902699700387878146858388754410470770648299127055005212879377972064511287866525748296053705314631804503745252924555000574033403553058876183964436837728624258301414752123679715718904712690715575282400800146303516636175936773799583303530996786487550076169143044748033703690191212191854304483564185804334314940927252913882647390237752431277428764170548760105334333580487417964168311820263356156761597350479272037146294746603102793889974241455416141120319559120165917014155076436195683801306440551279985591178883776725406143813261803811219473664697207861624354638239436522066086641156681925021322606652620822584272170578515738650944287081541275823903784156158433293333256773547803511262223609018993088530825946682973841456776425146227676923671844711699990628415647155496797356958480106403893866246811247134636871631641531930738393185917077898332603752287834544224566177013280857906508848135529062268749745842287716384261065781115498963876773149710073348388119670010413568018262776892543000952600693607140726250749275948363093103067756444914636103190899985947019049366017609096208299567345100204969753328893294521485130399989688947423409503547629774048604294297973309098335553793683261258706003484278912175741868939007109834736780004537822154666297866554742354911537764198574557183157588820734197333530161612139314904233155148245882267163397335939360812040264047350628392540420269561673736186382375153323113458588287352801468624886557645474047708379842919294777222078512353927887460494252961312005193112724778617560426667617393521659560035462015422956576292022271001023064434431202666544385244171032951542586700137558189955537184591068988545975158051841935619478978791906771691930251508839905771727915048282729790015794389532439071405473733699510481255100771639553902580178396158074384988612940958630454071970292913028897317178147390911906926626225084616459480893204869153541336521064876106434517003596462346850920170259807607016809767627061952141554537735880166637178599936305280078698345047120430961134401413895543408914717674301232407245833504181017571083906637828752464152814962292318454607322081522139961496522535434729671521515669513439542997056476974448851920865541021548452189983620716466052655921472478950527715636949784982237644481354149277444752087045610175415861699353090993661942732900730750704072245808945215754606382169410792362871970519105924326896837023377378201365226736989357151278442804326134624327916556678955306145663846600320098962878955005050085546852318888120553106019631427453798320791880060532793898900271502259650266611835372346654378361082192130009463768833077441475287462874656121307409168902394930245372834136184387440280107172737729268619466146489477024029036978944670101460092390763918544913441959591546215021574937636427914073305509379430065881917864583014570153135655945438128062479283182273636770494644353899977958243776450729864513887853013612702500023427712540819628388360148262062870457716007881264905835496922280965440707482056117812237483670736530485242285118941389647037438773925018487575019923780145020817161734194025761349676332828788582710624704970711789878494646860611250259671870313528730034191782390871917630478648641266696994943329210689570806292060521791339101394666544134627591190578189881471783718809846208044641060841108036003047226641621685454193419917881129267857116179740133544655646224573415164710220526924907410305068986634419441827200505684538332603339906477917020588943624478811853300026735975281690625201038668829752514191508696212600796938846259381377260089661983484962068993297734070739260372275845459308916086350018004617921734571163406943531623858477189974078193550036805284264223541356629548349622133231025623197676224133023134968547162139946895135181098158137104052928483595477052645301403235719235140758101878421622369589889205001227393713326439197902816170160365673277160232726652838902795262549042868570924380276046301191842565360021723112357132475892712322648397394361617238682059878413808294241095940399211137856833997075456046885961702668099709774330492835595069475100189289853962505583248226895646627220652452909854031318698174084611152541195698727999632186247573871568025292670349445726670496908621987357876748024501817074983303926127336883983364505571848798095469605750625397127577966127499291706659460512444820533547374507216355589153863420693129595213994833419819480620210974828147416329079638057620969071097904816379870507800286405695468002133512098026268372434580230662826373676895169874234972604388511092789111884494456661760390841527473563119832526394455812321689181390880932773204728520584374595162236067459956080981135639971763733674552533543191833032220376910811287043868511251486235044930770677948083424501438060627142589254725877712877343166761779154427836142051041652243086884359384499211831613104686950641959477437168846008169141833807351723147818579910584036833575830711436160206937703273070874866134855839313843927647686457070841155742633884209157177554055108889853446793275574272145776560596796881022723210793840975565225660701064028141883804471835473551665886634582516626782417088996827796593601839812028220133243150356780827757099491583060964580568100839614353607670580281877876098524246308383967219039523860623795771545019057232530244471259691539403001299619386245072605589099650408947174383384151346366406482932140658215212004959117910110899722696324128684404978356445364745864380856018817106529477032095391213768367086612856740117975284996218320203637820357951293929283691658988907820668340021976462023174029177326765230784208954720430355918829246684485750192911385087895695915270484887911361153891663277591007346116673398964728993636426978312421779623192179719091821320251755133965091347464867965120728039141848168621338545759366049817902646465858771501437586277404095494549855713072385603193134571396632215297591652886496287145782083746966053125919050061192653020982763209966540178062549676491088667494573107048016218748620906014127325855929766259604798101528763515395334748226365466298452959134200169209177846565985617254241420452763541347249114440789763230392966221965128069581179549295423142536369473905984995809509271008696070813383659409898180130975845839323057587184593288104337455885755486412024798778227901284852010440912426629073881729019068779594060748672625215215890255828202941331597451225484546781196546118302412799004136471280688688176054956122538709965195738634010028442833176051774298856791555953969719165148098096073399541253996653533527339285055238212618704137830234751122980632700701154316080190219760987667750614913235890901922652648689970496283112460861365694965815670199060465016046361890157934296955421170708033616759200336290021555102168874098566875487783717512882295554088405834617426928050376513691764798201212120104838794059018781845882071007256471645697167103849457890968059067024056469435890499834128247402082221682391778922194879907157381149241589214108847705494701758818945097621864118550330303280129284374610301309181397147114960352100458405131306099886058071196884571003097447827143420428909530760370534810788364946889680615236994770068519759993642508265018021386488289801691095139189154661067656997553190728606059755844245704175255683916077912302400085445993856603930507472657255408233375541578343041083008683275796666093116360576247662590820165669378197080475129312290579535214318729613310474268484473423959846565054926659400095229543963085763688488665282239353181641211511380810927188752488231851495817240526143371068377151579141082557744978676734208805871905469465155849937070569503855776800641066271874442479981128004138809966564495462996606456884551123875932337705238265263994774841921558343842378828521783434323364716720235056216834470419987195761435366989858177217121788347092728495363836109723318312504261131474504850808330805666865953170582049632284966026007250092238781407383955905000135920436848761658102973669507394940560822576307816837623646529141271178080729503319736681916103011869181971028216665721381184023732753149916034387029010647632718981759333469234572626535136882188193450533095427083005594594919082771757990977835454479905389922470603922247899617791892772957160089431721738577240890701810498038975330877738618552323997819254921971049390812778976837011288817858168385826119643871624614956067423241588209039706805012582664980359422138334182194460382393881871003105066395433871652723064157770280360761938517792810562838833718696385404172863630189088309779429758496567842282188322524308623729602070041395479846465711847332425071484516862693287261398624261757610069466851854581686683860109823009924929441979254782539101980631004180270479206978152974769816024672132603003302886451355441889143909609195077844185535200218672080864138881243298965854834315016593830007879464958540886510545244744155937348718259232162914074944750657042913008757362331327351247732528787966344808732296383625775326926035775930789541423218532169919786315990197788705494132987180434573340987631008247036862766890861582113901053289005696095557308978384810424822123152305258469632090513193744481546782740417962906279692205038148301229022360346512113358733767177322210760240767170091805521116856965874338574133976392842635032809636228274349443910232300355802279996406092893102689425494806164707081598987939250792933881012227337239132925393697078260438250510687988293536610927642961870715490340535957802631765738657849914967253834239093249189213866852067142521916730473019757860267626486386642214747055039401949916168010133569053806814224034896530521349120566476571842388207980555052159117597536894444538937355693413005905986244869450148288639129138502300846824267333903536941003500837320708299591801008074743938416617759696667743502782530717296669531506770905522834748464327510739426062573788829649871587873034343746139781768998516132446096082692001880598048417164017426939680465382350883765862129372868115857641056196596296372473038585323399308120850424614314088275791833449798337601470538385065148843615466832954864328937532811006555752422969777390887428116297928773921997327417141849520770479056113184397764504239492926449150945741252240389145328793931817760772505687589948684718562297258259687282352182989078812958116436585135168710739038829385574587581075666611311527272602505472986044209926541229981181374164033765727280677483361020973925280707199003139114362411936195077530137075110631449509443070763187561647610105329759101609528017787983122493693366632598028251278080416423084299898416836868155072247766186247660422491908369002580140072540974852900574802115803313300396128415084159434784384768030449310328473301933688878571938238466284425087086502209797240955671329505129969092298365178681811377179512127102374176898335680494481247419631125361666676977557679236347867032044121949495220037412768059851353575787707533386332519270452217618278133985645983737559559977104674689189115397711314324962268788676441170475323634447849405801160638871414633236099232689571397942090113656716430266376413917554252930148929607844649166089468879209877365333562678732138892747044017564839582799994850122860715336649701941173122653060614272122177073597443530478637013062214038704817697041947146517763553071811241435247136466901948253083792719555926884668232810189823855991803196032960674515028612508312459540316118681254965098683907885579790023420365783043481915808109085202506575872013290906737884746816521934020119067256987375665941272394738973616099012118530183773014455980529237451244216990026933319744771956580081664886696577170455231730572805557560743044463051640525257047701987037956236975086846532505756283150203297932514672706289191490098317594476139010962548030009873643998744160648332674920383772017330236450071838860011485040118622122370857150696015523695595637519710898439994525094529779967281750054650324383850065392141933788814513681028033342789819975917064402140257985828564131804323582136121759475156278166495084966521309701806500414142971621532974293596876174617812002983141149320450931965025756919926566255681184533605608223501732211754579688701505225555163657369405800563145695939752786081205463606710192850134094398774137884286579100879285507493840880139268699428828563412497237847954221045087263305927165811681190648520450454908020430509308860911674398831837199737222006128151529406104803837012812908025053363424318284619792793505029908683884930718263097853462817777232467363789123910112835555609443575027634602514426162678310999809835749120415503755507620806481891169115470179896837903180985619255240135275259688569521171465802948846447355405356811690585635568151306739317711633261825172554747085241017202251123253412736056236247828429580128022841482235867436625518128303231947625094124568683195410703130364758870018026124527147300164244666077330489671579028604506613710298061178604246086894056711448106241681113782436128023806333162331348415076733720948481890975151474711133873856311022462322774696510912498293293634542669711970202520196820101424917606050811889810789618933698159085706355736561142005716992905992760452236971347578858208813661284512136511897997209011198224416979728068668332993550014369075028121501836151680341860110137971677766307722231009971199282765542478776304736838478519680807415336624986375188874550066749826138723840138796438714256623072423391080599442122885109786713014183374398335420003321265349975074557266404652500371809097397478210675299245145599883561042617777180119325302296457757600774834903020183063090052393295245452596618674109972099581682695257177928371424359905016457887050550780575333988320625669341421869365279609359597079176942156221557493892095172124744566691189678230888458623487376343215360350070606619290487104001836034746827087645019868832726864213933145007833557236217941495794384784056773584763545441624694309595078905906148967149393694270891806783217183380836884705549855484531097808155514373369494026888962022017453388995752931235411670221737126920745645218788228204072810743613891342447486520837931639457661768335573675663459652290738781031220239282816681649482799194265740155007224587035352487599639438877744332606255189506701497979996072591103569665345265298396268832808602491857556868602225746206583470814902934834370779042540790510581508804150351594080909754801494822864706123991346635044295392999229036027304104586292765289337969656922846561616644026566257641422791133121473451263120485648553105179331660939408912387845809373340014126073725102805427767901700715701332185701253197948882389312671097000281512618660315361454317231253637170958079664892951064734172146203668706314917897194620792024590898880545348032714475556780889350754804555632248571726492069029903415317473539420653269733851399200149758431920821916153880067207210079620276008382473067217434547094872218507248999128511058413884403142259717045975208296948967350729182625177506864915223803416301809758915642029711703637729733964455082441254455161503297160650553410268915684409687136529008609887292820222847060274530857649140311363740177846446261442527016079901753677701659203713078523603991686007746482871283410874868134985036833485081698754947071711506726394374377919340924480951286092547803120690661331393997247423665595159442262616446372855896677739691592244458912026394398820387375810555241562218186353889601131816675565570138618640596216251149859739358592780112041900066250118651790799964327953264263128823046593977149188672253576080811013611572956420586227398610366102018258415689562578795240468966010126271426038489604316851216342625100017171920771086773826450473776482509076623496151759853391894374245396117241662381618589273864745330805895990894548679907797438734065672765154507292318007166798430317421313194277838221444392969550351328948950512163822805303544139872174743444512623214814589969479057556798137386973370307366794386403438658532967538883148711620144806877514819056066814473006189866400940657368798330565809221626642688622916077208466091234407265246325264636361929854745537266962943580188241437775216717007093921413137341069156548005154349232601595210437549718928061638134787516496302205441913299295985254802466711255263869989701838090279809341672011792097140431521595557918201855222299958421483536636361039003834315161988634536030879893664714716868123276568633380171631259443379113203719468918799081107600797137428552460152898089446133648941181601832524395418523715288315219426828736983052537521152227338750853333597416082572302473672469007640696893379612305134288257224671992400990262132058145766170471413374912645820377950537511595258778132706474510122055184390244076921913128345066775546139793909568916350840124135986808845012748380507340103614536763449595704573080289734921528973769931107637428489069466536227533674762822137791985313963237251323171459404458480216658113782324068686525952046803460229917933897682722634385372498908130059381875287609763602123991186987756055438973827229117469023373505056126326568583647067445995474379674181502468903447046783564979747197573254176913911727505996079922338264308609623025026293413422457796687842795833499535148837162223731248358198895481423633910275643471483331891815406302171475996199019148327288239203956417156067741465987953481922587282965810205959937198643802129625301636966418227745367982381949301972019232586920432844588463327459567418334624402830360556346272177622493463367745481167044584890746970521116592676030647588871488678375217934612519464698430085430073948797676256920443462521111183177735184196018825938663082620839672759885518260435633288398351979580362793076467892302610107376949674487675226678021300452315220266731167538246945260351084771837376146762084577708075435302227605922752110829636654128176988455254805257914010902706270453066330692807449189567133625056472443920683910379042077226573764549414585631616062668281215529950734471489529943076277299581909793954731287105962751288983800481964458131697644689481273734513081822475561540358020020308924288430178505964806999389022301192860217641083944770604682752917462348676999902004695160672937465677086513546595742830378529190250954507166573558194739578330385293378090954616872644451986323614350163360119570257713348630065997598214427636348310860392689914319461784282155713848622455619488051130290556970444330077351204681487011451245468095606950348104267647972715626714753766238071408782654604644275988451780205112320332919888022353931301792052043304626021232221235142516896053838385180119465134115161123686828302139135039527521685545073096336911453336840494401378719326221172145717115823188457672739367578260357952190759214935781013385225873420915425671099137166349933153422841581062636712830071868434284533769420876831875430817544061814510872024646713150439326110730880809743700288491955408305626174946649632191736255626136516321327258210606637763079263081352823497078950985318946156946242123430619106939464650006062180988371285270681222339194649733435956904720673353656168032970805591547565307513303452435136597817646649321470994464620969314707986663954254639085770555081185001930322028075261908272207255304923525048575063088841835978475327877134859257981776648753217339257180540803956669872430974845305801018151280203706776998411814027376370995674308154710958439096380728109355942394425919231917928633520520237821546080069944276457841519006422204678205346383771026896288087575525542585010050347806945179279597515521486894664294193870638896988564258867589342038947896787955100618914187372029011962250640064236551072106879561194963888083753112005875947279363488561339656658403670280310778294880261290232645593560053385308916807857630019226983629274556462271953423562364878084488077767084628212250660579141669505177839927335391121136527771226449573381918984985489621118338825245889706524185897108755982914672452189227984793158067698997397161126061850653825494302523184979583078667033090146454817332453131901812690323502612840816966864824309898322882398767707414002197991950894979722875402616708815780720003460220340562348105077517032879587785768371094292270249834421014439480056448844252502638836318354134180329309635354299925500275310525863641106786003796917118758858557198595242624609333509347866944397617992824697203532605718575772551022912256889476816228028635352141681683102131829007120751506381499503968938232682885734902699522905126854846164728505383929491701314346126369936895455802893458682499248468201636085939616737602358100874139670777700134126786930359718183658434780470753275489958217926792528273028160142044250919919979974566908120467934741934976093514800729718173075318647959265474480595950870847995004228484236857967729161236345990295794325434639291791618541718249395700736093135065514052073514965630591403321991760492762944836861682816582137316761848749276195731451772601898046443700148773209956560582250464192678897557225815942660021801063159902460381559038309972005933089386916324318348812519874979264614075574693340657945473288015549944580219706982794791271866507930596806811232517759850715430818432390087790757221093131209967791056567751196214064037261579955200784086726878037569364107443584548451381913280047481065017993705323233107019232634882581916001893149806299344995213756916585577253823478039844875116110153428606032372740909670936742859456102185420023202012994328676645399720865113918473797444328133536406511458489053266956191374160052993989505970567309767474276751620252003766808905153524411458299916341948303600633210949104343630052695133502642363508589949524583543275390727615958796662112733170994093390208848611570934065539180645424803426337809689763314643524699845387087129043101827906590574585819672625916429597092496264837375311925639948395723393406763930553998683820093740177191352990220070831378955095015875320725395781449356722324178482318388361451627503137752897547377054746091536150455653579508202097513787099262759335009232705139092268299456591793826124811991397135523107675046358759224310127164040674320359763295867549737926211464782652908510240521527921283999582865243782910598574940786143293315399671071038667237298753834212313258714247692660116665444056108243969524137385817929831028302912200320244774822673974396526027470132748282653083070777943310771634030427088915475208372056894041633773346095422815712464706650791503398106483752300974945490037098100941744914531180623178755682360206763944699037251245447417959970223965073826287953061913344607012032774832764239196208031244040698843327084892659394735825900846053820635082274507907525148116812744859994578070005860222573493077977452464368879284508392438380485525343566190765287485234584575681918042536651497078975602637960052085617950641154292268439852751290158551718022116165762863952228996464248192208322690643468154144644250821388268356211969311866295514520692982928759384510527496506455936920254044906075431831453817554539880689758693097934284254635299218153102932546706775895693186628168467938943465375536155595762594273090175234478805164610134164930462630196290764697033238681148214868837852102184034565696253196974763198598587665971443159607950071726264021326019238770934889317904271013963710934151729698359285046374445437234347977843552307916417095965669075967187236880671464586598126259334154196680995729755044241361807876142949059860502332154787164513254866720039173773639204361276703531728326228410214725155054704464565694066551085805668565128847116618190974330835011926839511951739205548987094476253885267996132307012882454961418339037890823318996080928992583824097114465435083434131017888933793230414605137615531514475414563108694457635630741267901959443768724651709740244919157674081009102502092870627675306669848041134946618555014967089818571116890879230812858021933876089877965729380413472417696644216966043654705890829383673238441743274339296993714727869934583317022229319705833194376237528299212984981118186649213011418166086169686926801604217718016646049174758123688377302343341603147122511853373404097396169291662367858865159693335064334645999855123118302456401575185627328380252206273996888835647363057811204965541163548209636297097587078935589854671820543410915222959831435768722425267035249789157206302396118480876728130790022002114341969313841990772589418702908054358219577224980525594438928552231240593426669764233765567372288497916162232271144577763222743781114001501332636218920888189097771836312926088845251055658656913548628992500110999842312711812037725778174578703790400452359865799561604346807570946146741489841987627540924962539628034430491462786944528574297360958468083382959231403036906211563550329753571923334094712848780573329358481073869537373670906330414278116504558023996967127957435834803065276260850452469447887245699428002027710654211904327447854376688808546581517415833897833793612278601162731912996508689159621397387985714972691251840834028456445598851595778650954061248451595908339398755817388191439760371659073595558952810130044922349673913335613344808550859002556128613460580070258782941528714219608226012344415624572513342595607931419448188163780422766863744840106279882656478065780718377030136702621789468759714948992847981826756712480064409352431489660327463967095953629972392143430819760904014033995619247946835081962472845075360431264364745924330732331253052330918118021541235834027704215717357391493610541746551821141322288819976589192264667272628915236515258661879749820093637718919776678393563737489957901288245776765419554010567607259518821569718766538164704391009618452238343848661943847679048857585645845268002925711586986120796293599774793715601031264660693426004955157959502290080335844232706103515121787061036807053877756835016546816150403187950478579187173161790893987477581555037589643717094568256009815577321900906818977203023473934318735137525769411952801599851385575743683997977237107411118592926255785722836671712902576956680719473221205001866305496545433456123079982324029049890196490518426692698986095681666100393970497035128519803897462514185494640227602608241641990080177913622050952171604038521810158505898832970916179479291072147270307331562586957840427578277293412346289508092331425315410573766091847926246655042562456214886282016735690167090626259701131489286593904700614970216332560968803475955505283427552668578389418454551775944823426701854386985415383970230598262936567813762790527379704432339779385642004382893529342233708074566683149806679051701932262539283184640460967384399840463448845665793904776978343043645581511434593036097497980927761296820922741946921289062655916984758588443726171903457158151063555257559090032957570500126104647773057581858366286710906253995341191135817105893165294463357021301131022664608803919519755891355365064899582415531879398924338169303433281136716448652656426946399372124888359241523769989063825140231267650239983223410732190838558544842763112099550064550700754867567413178650459704827911011515896664279035262177025311621178595814573400315968638092567431994983871309794360259381288503633610555611296939770478170988666434248282759538861732448797453983161672276607797795570872352868528342308492731732596677443042043210968095479311837921765021183649538259047213089927756737034594090376752156496663042209747150780831419584307531733100034524838505358171971096431692090245123645275817477545964476832018959837070067341475037369427082005212620711771924591511444669178624910639334959491893443006745147472610586980304924333044533497238354834957910126170385787629685509128437938360073305061394909618879946569662078254887502338366656864457588271701394226928715432073813967018742709137869363986808954329465168308958068600783380542479516045647328000574709096174332502597540494600033411692157668840009037257151502049329583821026734032719041481825292768074725126102560017980481644916266066176502307261868259857631042804987464309323009723352905310030375123383968853304287347921725074574713938749160425150971378541867911407525533690550877560732356229768207825878310786284205268019018521873943837182521412041488189691598881463004970672982891762098891129898947325611047369384312711434542591892808710482617158005994093574209610899685056691731934472815162772579833023184674609466209380172845510475806350839260100956971010750425528939935790759201898966717158784740540844426347919047007477931427367986450188195165009677640354109457695887635368691597939505421539709878251657594158288709284518176002548160348894653252890128629942621492599625546986961447760415264122788353894610449937651357863434192727332985151229055687010848519949962306925398196958281777551743418070281527231492074681512427551864791342415128205560529281201162193967550793945554753617026081800895137876202959352727182387374434805210055139398184420167890561382228924729351946723343398102346565060332212780309582349223229361420243072977166524954290408353093934059594739580882726993913889908557356495921672573888403312929104204119481542556958048509287715819414486073594252944023868588064702954069467080129156474051629955955352558349160379911774703195569863755351886722900169862563976719985149125721516835321914160391454700631757765310363109367207934226734116619185584986166130049542213079202975675337203127096715699170373423010970477692708691877048807129711924259346607943471369019082494361991886502101738643136008136765985789059248473903300149407534456416190997702813728786663007528893504179736642267115901485736730896330559221345675753690727483781420717691503928981988200618845279675293990104152008068191552967013974921398970491525859598534305502245410413348626865680723358234257343941139107913586193221112147233591055948325132485951064903155471142592921482001452872726469819076449580099519566899546181239130882506541040226600238746527377057126474364132531115337228921380753920441099505885594951173793839970480097253609847953766713540461630362257925703046860793664840247614300283938492363752791050119737453855606943865619258724290842320251421629016509104199627626678584633432358253988632273158940102340475487359549373569767423831232345969010822140898516241329777238195441969935994811797024956419178796934389234898028876443635542598608543393584753542674653239580182129428060837676803876727510488288745146192350582021798950249526366858730335665058247174181080591311669877407897694735871148485674369531578585338733164509158463076389782783011150542429477972292752535614277946052370542516129283657454254296771141587274814299291685147995237536737787192009535362739344498941080157003962445498676268732606827748164760120698833030065216147943594978125393111985806497221968983453432262492765622032084545590960084441932574849359309137440564530911439746410833704110371997655527048523038086157944197854584338672716678223068114544026752188683806361037664600094012132065311657659598335281628812186523844145518646088939828459693896922110624476424846744706410689794170793844009556471814791842589032479623802617704382306845379348004273034662212584150212859560362390518558848598264456133354997521814654702776223383200585734883631451299998931469454823633907002846338910422083223335415141022697225833536951824621002390502663116399322753729089161803853861393242121449148312269948971303704323186888064222063810658608306966186693980184046166382541201833326345353100396319341146084450655307448316216564430277183686426041908447699789145434514364165857837188918274487598403329512815369309330733465266838544842671846488776202917629359033566296553845740394742007810986169932352176700590256319747274711315315010066539519539004811842631889959564350976098737409126269263683336931133506176195606631250901241653357022982691902952047413543580291213121478809263560999477102882519421720054449425965561959770795108358825685460888722374079042594172253385023563504324654721159721547172478267771613037435818355297807379754876188821557757871790989838864661678486170134675414543773153006801518505364893271912122241821126574777282050681784541951023288245294307340709950055007181266947627137137101496425344811078975804368490926056344224115196277727561175691219189143288712444189915480982335983497856018788279674792173914512536794131355474333300039615691692599755959205693379568571497862530202904835235152645882460726604143251474425491865154222260411269809832485239399139296629332339796518998257234132145800935153701673642257342042086838663789726429774635816570194983178329531306993881144194689649928274001357198400950315021146731352972996527886891061272180960117108665283984800791311714976071946493474305929876627807975090930888217055108006334805782154853335982814787104859281986903006212889462136178232291655931351385377968546051041423081864079244137387157645754599807938836965641568744931551688929338472859724807563071366300223720100951450320336175133279110832892026121950134123356047457300277413008647692858609622748493287822584066794979422595788489200552237237621268731685951270934007757360811696449004168898092616031063933844818153947980851833290653910836730496261556770070589408634644179267759393237997476088763148369634028231824814714056660418391062881792818765096495634006353999579615306665506128708303286581769132952629748271103153923917282306386214212278514189072784644291870739188240491883993507982858663058730680895591378195905449024830941422012275512929329591364043972042397333857362686723595072871380023216991762338401325652819191714796374144223554435504981571698671901212249155986970494293374257544283383478372233473102804939716381606009935074078028106732626437291025488135457343211430443657091294302653724177612379110475416845399830234577276562911546948342600118346402412876965107831976083348021687021710632313303034735062733750588000347563644842535142721804357511297402213562086976805452654624514551625459615605851263707271137103492387854993386105917980270792501718017465391182708242345523220958932616836296477502584129020899222531702003153520258906445033246656207783914197982505212011238887231248378618480875881293684617498220014200514636702798160616363326310925424414016264867437680492376474766844606658958026473618502530181562212041440113656991423387869981735121343506491186213331440931422763565741785655173564364298793605819061559088139246914666897345803603180830192070816564281059161231017839518553219579924094104333697006578518555767136125418703673848585880557364017511735810033967468924055731819775901045798298472719971602854479089021127003417368030042353667215730596888608956226335800002750108642319800127897684704664342325598996076294323201076663473855675483665112659399027721972399121954030139101354643148017524420870232656790370627843200523591652658851883003572724672075113344067613398723546425183079283575564809313131118229912986528767871691329972020784504090379531884676152221108732378871820599509945460697778244901742309459982942000818175183765737476603333429819212402626883266266964050019821274005945937721276200886180534636257756281185232777913627058695316373604285162966845227999962969953705943346726676556367990135369387442187191214702897751958772497598453248280720278267340608190950471071557713412905222740242348755415095681774199527429366004072591921704040967011210360178722201987204680000075242645249559864987655093997508248968630908910213580861907308517943993944000895406074106841421287377304919001279464006249882287534955274763463772547094278747545765297313229362983198954434823444241980790543688547704667115619779954682367912715680281324324890411277758667416985013018329302475154873143377541730670731464950993291567889399405429418089195200951177872029525243625993109154034792849120883463078003629140903205290898030398362699070427640231383486971650237495601907528535526726162816326911224767190106006549105298150692039247392411512601188629899944437249385446244502468532303055859827960967491077537699563653851662229134692374209565818785622133627453394284138184714024513069097870923007180189391519934958799018638517622977245016839015944987505259537029023756821369163970241086364731040736281915218781408342333347007603318641277041323547578324768148707750062553182167474908205312066174949486401682043316323753946812434758093657729547538728029097087909170916600704939168951139163554236628579733032257916089646502658569267478647032571453614357338780905575082896853326327806168417640485141362053403041680309206498418195978131616577339833293189880615694699048737064105432741719276718681726807943481695225261798687421392838076118612895734391031551978245860936007357678589977784518035402917148130078507948475107569883353630332664619645793081183127978190306762788395170198719081474944822599699306133169515045125138477764860122401913321699412047646316755334987525510963972180975765211547307008117839788825415791177830224151651549676589472940828590931997234449069056383071538325590016669329227611566246190259341905726953198909552183929281369574538675044460154582923399597216897028791663045155348787230821276266993862957262562921382091229959949288688474302479145954356807847131536246831972239025002930621062416305651214235672646500550490537353231083693944281324168929892159265740905038129257721134098322134839057805790611288565268768420169965685216378804609189924313316952501079998343534709210480478637165584695287899399608927280948184851005681512376765945907454444385095584284058672296971095100760630218674226887884898931147047994647374746282931057455358191043404416106616214724640382595427671748725304409884929966826461466888062664757483327820954704791891524420086700739497544391497469508660762909792030673674123771186636058651712154618372448383818632781587591607097954961209741063451141509366043641754448341079111765523102867378056488673920493369592852461208728766448340365258583255117057885608891158153157023888000075077301401306645572328744539566898177686032501656126133316281680386289330328938274930019936818633463984461435580564376813135383316104697847443318105967984932129595640361572467988878044947376882054036350257624807877100906748106243562398645454654665804009850551625129275833737531797275475151592216501336929782510248052753568433390838441442718451993177736177790032438862279243658118538730404520219638025911478360373812343686131329480793339490188340576560151646145989872577821063115399990494145160459746380612808197731261601683372716843704557056160205544987327880058458217677053821346355257277230372468499403240743813023450107299523873269859745801285913135552399502519033261663059529182729305644510072418651198533256632955435792352191598116688040100441009064248107563621872204992251130010603245968986431664985183254394058379006897014069756125843036656344798287370595566180693252541381707602195176606943373700245504465669244199276866828584085646298421395018774710193661072430164034304239344850428960857979744946955127312368119333942569974801848128839933258950239335368507757958265934933994567956746044146109047963228755344745730121548078347820610095550363325882190953849681746154797996383420329053245602784448437302879349190918818925521475250297248470719592109965397382786364345276219806250700771758745063214599915372492757122405660924623779349996869471348226576791656595415403173079350368203154896683292341116411169622600056309473081327040417899022593699551403298503362967291068892582830299684568837932558093502728354865545933294450538581364704437194628753526804069662793938318536427894010322087162137743785049402328381481711735354547616026160399021342113740743385217857769291022751277193701716916808583355041947343677675084527905431102156208996213827989944567327552684629051849108775780469490846517912308912076087059702358554456714890633459171190568101885825439955155388665719661532019437368159998034405338869128442191968038567435259097194119437951110527874246496906436149302290722442887961066695521315557084709952309065444137201379406458427447788872065663590199744549027427299354269787745769185537108749513780796337439531746196969975783772826771648559760631332889549075878982695172072432127127533234559131433637671279904344877969689604774750125578393556601885353792109600436468879850696515130564798094795461052206761334469877043517013463977278829657109669853887095548172057403803472659766925459669238907168201348775417617837247316902925377649450366066773715068593137345564025758059833239882762302871256985741112570915489796560390618535433341280056271232717403884283605643872018961087954249030831972663480784098778759876142318171095636999607094658964963380260633962027809721148329646704815715832093224513668032631848590770509717993534591234771780817436893713863731222463782929411873407745954904564314312164721975780785767317477209560740264695584420260708849074391189168245071569019637206484423267957209492331453647933564619075247707529085298303315009112656898109898369801222740676234058278713213967374803006470740398327698328409799656685071836833093620449999025992843027676099516124311614952696090244918511364573018962183380739933377711294328815453482671350522400701788842246302775549137275131650536203612682124687524614199529785796277754686495830682242668432233598001214110489083596236631379674059038827622589573155890502421729914713394945839300035844799709338545143067509471313919932896647435778879143207751429146879106861614261813818164156183083286229261712160160062847912761685887243500744326426504839825984856579137558935864211281307303648462886251424742854723350122436001215858862914145470652534044260585211062647763851321100727208517254489996597682361565192647720800038584107006098182497735415443636571274736363322485346060748293348267422363611830962484901746399978623775537022877611623734319479642316976851923472915448943475350472371440463145314884006749156396531600097315880512899500689692629122578762668397888738657242966903068550090351944900224011510823770104869811443301703819678800187462283697558546346162330814604841949617103029053120425667481545931159514372962297526816313224280123559139399711894211517662438394898198710371470207407922728208709602189353565381602472995014631783678145921366186389880101660789947872900170275667700919721650256781097116572213994485647878838563537916850703227316689471052509907196558452871733997762811077142348552397133162445173815643679051819202690699331079499986914049435002339061626565533989497291926199176680626539581273332855328513182159882485126478369247903878275906927927152665131328887618859420695598964463407032269163504596030076287506203856348691401325416451429962434102310194457251320158000339822807933171554508409877512992394126736524978266722840901242668815865241485367254908143319400201925174049880022362422080547581166992097678622335522139307474281759545263335202147310227056580291362003795532404172584857278360002914072321305034522415911228619947112534644416703715522970555900836128288078951628148557021346517407011162632056412708117697695158490189031449784645241783300098422433537180273779292637074700861071382095946205351892738197822612734513068425181637531360548435361635327543526446157254093626513647145970075525771348671386379395408312245659563440094859559165594530546751903242379288222283473516494896376013130622508040141599393511152186090479274389125128212261552353607936752272215847961143941677380546049551616610520480174180483475867249815516661625145823183230385442750272714012377929563094741443968343868800319984596465680235007803918179745750867664730002250508385691975072050207736842588729324760055961156999010564568848310851569484779150085521542189439409832978844231006584208705643652751211470787681566708353410502169114359835100498630191902266700982785612911063592517628553542265416001678167564600825153485521176208998828404162397827312412932069468305056458365701469264190392205663458846059102421658261686784639037679736860474950191704338409129927619966006269263744890601083015374255452814616987026670471996194275569463600339901572413863622355757255134249001125887491413689338169927546990982447743661899055153483671354107665123057202246280805623726966655270077305595871538915572116757353333243833419843337386858010883377927471470895284857902040647576254751673757743910256759120858663422332294807894982150803007191122010365527310721430495136663374190119253485477616061806499451863058532451572387896140635153535848810888246376897361670254509011824757397455176086763078640979469998980055697722945161623689038737826967940601740378219464108556342415972606484646766353560619062030765073866312795055593321081262250704327400790073493207318725666596697502081102188628396160011218227196211250212416479573632736351241059880904915447016307806763304073283717758725782374830739715602767468677699023132303866371603555799147260027602482267301480084247237619624580224396306806342553313750229278961845102020734645227757522736459830568676814670573274876574922342260580955580761809803335379855910779432653049058960574595400853890545306118148572056473396238755951777300347077597055623358308026237336131462314494289975904405029136567203649948667848867533263699952601343835642491659366875701296814802306342158788223894952285241262562265481853485624818288415233321827712654108088662088254370731079312540012958464452857741612431830744515544815934598757717270241451918970044793983038118608281886896990787451198553920660514587059177901731334635133520411335630504140521851428417421941695128785096558888773993826630657112462223294452049157374161733020222323254253238128372074632095216566083922770860052979217283718965456140690985204828308973301062895203202822975070194477133871172111433164259741620570242737522034658226462576983803631995000151459319903881331915516560029837639836528801313147597962880299459858517570333722418588761785791479589477004375255269257620156093398962219479152808444380845795792576781013569409143278420948231561816143017169464474013920237995962320811348612569074942575470963591161985355625798150598535099758517487364619767431937665702078414400153376156520624602027927539181746369786802983938154248179792411251773359490597064682154194159307147494952185143092613873189595717870866904363422533233875891998050921792341821820913666594793349245888816676624750499093589680004195176397011585934269278310089926602461788242525835592385595824580209081353732194793076608110132396632505153232918091347523011403552388311058752336443394129696380335859891817521489158759237978227309876247375173743188983597248079846677572639999496539386599125287399363803581963609732786170498401429092909540990683172951432780335791226140033219402732281743950592608426649012406306538391351923526119398033901490543434061702792599006437360518103761972003654987839181534940521295997242762034211013200963848768940295736700711489633458296262650087751177464839745819925002743163011947902685874968527288538146623472793946180968057457652113573618051533179296215750625852374425119710152399974978625045026363032683285810010664631144112491674830005049293568504126757416088208369939101606380206094652708791480276917157596652225080452528246662618783391759148103141701288489166873439949885744479741129931717802373134485697530920423763268972022135982309625787610971031928862777807667612478801791755126543773147337971491693519091542707218213623919374812664302721673697233363761871578676081352031458660255691277598969995820881601433801988876436657628663000182272731607518082674881764886181793354435607448393500772906154531918569345636730863968407040644488222097325420953715977057580478742805175192429292603108796189002132400047376866544060415572720203318378222197091805908936286251550416482783993288699570537639792612802204113484173456500915806946738200066798460995793719933934535410386368175213336110005662479953171128111538608150006821658875433457569951054167333760191562106572032745929941364739824791313030561846323732316388039899652881348418901342415491867929108578281747217536814184956809036293925633132214299132863773142781667309716702769792541244094296527176391270997096520556945118151130413241947221513641875044082112942665835686603006992910499998037093866183181989005570502064551659074112280299579608121879160491179200303754746293495125421116990406243024183393498237933674728096576585419689269764868060370564411339383079405192002692979516817732775861645835622406558779685658705265033923255386387983767893753311460409584538423285155812354492393157295741456665820068254216698434252166819243042514705243382024557860157304140428938628460554605814705225841370932897449412939527830803808956766176757990524107826652360719109738986213750535452898891796346159412988501201913720025546713394146567263278475380997854474773854889381788399792570510794017078100603965286869700546097509592417640087189754761199755781682284077340189601066473724354558657525641344218183261277356655942708284172067224141172738749551666759757222352838786686581909733660913232209892665591102373392586002591841527808933053016506159024340421878183155524204022831295918121096772468304419937504631520007634834950214223023217582882963497623907196495577792311355448346337719629169298882689491210691045439283584435521162188705643574673584395789034103409230436406464770496236526878551990806666065229778567008486174376484341503985410513656950172340507704663177440846771276147902801774347276905332593990159908046109484599829422294944676916038646197933366298802958119022124149899586637251315609885567454327969283295641207418396036490541558627682333468065096642904177920541879579384977805529251884159795134031941672280147441579279046468874759646387751633211093261644956574320733414522415475192739246807635574164230070752052475780667708542908369984369434577354119872373241773700592898996748133368880685461373785906503745420437851494440782643991960987311159659032210903877401946586765200276085505089042215251330929858324470645102033851387661628812444898191384774483655619686717023230796925755940227695239752672987453341914939003298926741626426796360284715423903318543391344706879163700200668514352644248778240099942296406517175305492217417479691878018682134183504028290291964546275620374075179654990050350211462707524665770515774789663843763121827694196725186145124998420095324790214860728636603826996295959504113502977694312846692137668897232268416377922327465748356678521905279751790754485300373663919443774313086847342285182348430857657513126614647020304785948076675390330144533427066843547923823117696175090373357262006452721040940716531431405830738070681624131390154021567604689133673614553176423577924529564788228737313879192980851149792667066940860530052130181945477514292909053827816313102089503720533332617300330444923882894894818704550100359048541419109953173052747908980690579424508435029385249515406865777777640848970111076560550348953801077650214499013085742137749833228855840292320019278034950154867634561418430246065434050591710007828850932877669471437024710729185790389320694978450053972541500115433902388408019200479374750879479670181570937350372429256217899644243472722223613067542364950481443598161670040149660257435836810124883486672367965758743947797123266349295593807203231618562093232846249351573456235542225947150687427875755615644564235457259342535872905727291556219637772115251463561480705929587624564603137854645230729674518911473180599475651760316335652107656159440364394033983465772825919769176398105621849991792163808364576504407429727768885902037504727097327233841941324538742611856730305936084624713553442408793875557896498594352937969220912427330417945385356852760886798060695593729957646113610355998190807383665337699348398655266428181965361516183061706118512041037728280394975231515254968165143013743542054939716241820124580741356806114557451413754885286956569958875901655538815887951218765880392967554932528520465548329982223308023355301197571741520500806928855972263019067308326159534767227437607195145305819388772347778552650409156366476690596804457260708315275733521116088914615274645926032402094537486732535655199631232589924074143684470820838376059654298078460144662449371891476240389294466048305972961992654597263182648724806847130693000483812899984453061475478099753393081165763236859432017804606051819757680638958802398166811223308079146308447886021808250740980298758016859161993251428250621523622733285516526532344909199228632605479446899919650155780863072771221561197624831727019328187338595548745368361230063008896085985371392737327970609691575859495370624718406838213257153715064042459407005558384844239892445597089064988930243412359862445195680204794787119879579943370770034525162598154649480591371316225445477798956546742734107317008945216535339033182335633284730097420875752768481460486054899127511855405922449420135045083459284572412294781799548284289165752687083175744437124749850533433649458966966543608127008678097655221965595048258767422752247253746363196817651181423224768909786882579375525320205731410393183679209243582878899548773508699218695000293233281266208071076741646887484847542909551053811915744156388150406714074492402107394599353683930733731611315767764722340416180979697848115982388106177762002467397150956129210587009084113807559175380799952913330246962898764679802462395765403344633083069515739865056380001526835078179533875031862018192186044945584662080372223638532017915596568905045088286237575049235379663293685018625558489366346985844807303833370451976025220277212137510785478530120986812401415466943507678572425107268892772868130887234935088389170219261698358856081105261066938824677556135691120936169329563744851128294539658471621037540840305540502254899280963421684355341490513667391327110313177213883103174413956437235548380787229085339891945750333577251015595791743159210002248176244691962350140174451267881361380519572670926820943023109691243076507332166425330741499418028428985915160240762761963854014495621166497748699288566819279740846655976887089798668737840302830396546889186774305201996456211861262602734670973548220708368327159538157922299812279350765017384590231096682911954423391400725865087992930900544400093866965615615173416891058589387665111016746859966539981939892603696814941742738229671088100166882459659110640919952616007399868931900258109715389374317757015164934250536716380768376242094936199550212590509711272174850184689807082716694146990159304530813569347104008007107327388719238825986216083926215579183594692544194714097403878195806642932526565158746155132140315322384083137797250076425862944626123392914515003967200078643458868778129545900385422564374062016813611761495791254451328513541047465961803694570463547761471262364408284750603994660156730624841598074295358757854635742050958568525083518381437327463976002559947691925515504691215175276460609768110148384276202041943018175516709786197160866393972583792148527385811987740157263840089539690332832138383521903822488967718549229748881093983508466779712910413427836820142850937326542491062068052938428930974614095574140132977112316281323969302549823305971591723350451807370232135930707527835821429303956385280063264785433196584691176037467970558887463247615428196526067066979148225805145150743027805242677761248805611202343857501971270421262810744731014364264845596900522683706593449581144882687727114987173031127138575507162690911687183462989772685179681446249330236656524018323365243442585166503115692844051859276045703214681405717034571081650908278901555317796981816555539231615237967120328590775021304187364096542522420025271085871080304640971020766132477147242710006168925433556646844917937400086412650522715742645490353651590796280470063989741329203775780077973665655400391423867456127961867128606453752761852374591175014716337397804042665871190408158198576062088227159282617509788744827044448556378665466739296909926745587571164560526949086281808919007816303745957925527482535996232517745133767931146406869780116685812617353962211679335156464605643998909843941526853544798337724364402346151969087530003815789703152813506583698641284654563344162896637520258714111034479981831285432086796569075774261290363317788718944967024033751797478967761720837270113660731532420274668171680146449212643103354956441302518073748640521884859626618835725316894420474740441457038300372135371153268439850945824406055486640605356428107256371969290828789772657672795311539854634206731234677380432322486054446643765321803552336135157105668189190278870215139506016466675480657570118259915117720522214025199148953612351404162829398886214627811752666099614802777711282584205915615373069411156417259308555018012385940934782361506071817881335850214465743271075095292530053074374365122642382209852369363547430521081598697937092010233338729581784501325641520705849830036100066587611173127985611209754706723219512769392672213207864665152646043925401226700816153628305152410216328683815691311306283690722135028255676763671066156673539888597458771559163526555590663856867251668916595757787783666864617547089948532535942167813266733030073593518272004260140031387563534978814557701184925769565441335318416533070537932324879261767679944623787956268197221468822300083086400729045513160514680546597762089424201250014122436157397219356892843332678303172734304067325724531404301184620015465510379222402981716483850363474568376500081906328644242217453804638207197824497534875082388727158599854075524439151846551931574673008876423413052346595700819670204241278354974660639631331129460699666192973216424338810230183226151242745493292559363430515494917834547915130724583857718818564569511096377915245579275013741906481650677004786981134716892113992891310233284937154077185921971415191396445422962901873363468406176160055709508690835836433170644434483669885543014438255009023275475822185500812671126201693187947103572602750694779055486333546249355380871456950720873271371144998088985004650827210553921826789624390057031630050000034886269811703614641422842297241649868967736862322647777832719612176937631530615709373214836128262277438412746323854201700995788839139941337340476114867980659811536045058856876404140291655021545756273446650080944404148112892860635227990387672757351174352144941033443048547201324113429375166818699777400560840947270285775231651771769189696160984805726082526665908281431541373360343041658717111805229473759168884444519782566555988077189072470427644612744641802446845665590397262045976193240270165595681190029497292072111331260355123466957813028705163619123586213990403170330399049271053845524576548021268386709140427971950628103457915845925994865830192110712774208724147629896684564058147223781039955181760741932769550937177460693587736780292558583909329225165078182517837731076401354228623554312448171542636436323633489765033110782654805987780880012000355721194648912435910397850384461355288283898769950599388297567191205587692484795344862153297471482231266039089519291297003406272186628760473288264204356374791703334909592136919745739779909421958843735999287061473656927904232276706637592177279060422610243967938310893932032771221228246557557604739782694771404942268581661326201719991653056275167420664204695888323951117024323515477322072072668365184650666243943757349684727673866549557585347829902989185576597374499362063682078835813983953624646962727508813588593295243128168396865247576962392932349763847990257915748394555077223373951569174582000617306158765132347844542838533979466856764613104788360420905629631804939670051841210976888769437438808887892247186397906201961084401195830723925528539517776348017086799860456464515862180698765773677577526709647942616338651854878650396009991174561369941763026130315755432294505366985340150083595256193794865811151555674661926133049017608545165434929529485250295598262370199316162680361396789298485950654622961575958727196197456885315114045465398445619824622713050659768928822046564328111371843108925082346721752220764533966001944447720220532102509527952723732775224799006454768635395717439599795760022031869882831496077440763248221528454342471250227136370400037350268729914948116356870456659403295885760388122309805320832695429721793212337638360041743873120345477363098883898107543497247786520850685204032182608143878736798350550338179318032305948683013582544879604135401968281922345703354906763960864355247695592439178792546666357745099581362605317749169390924214636091368929891841647602406964598965000481532614586584356440042733863647576294581521132093690163397706404599714017984720153080475004565635771504737862135663834219777393705441196178631722134790366969683315792855035235079846005826293820031126551368328343828418985334369610842812524997046833974814241926762293409406957792088872599899682353661961148990796421765106937092936900519688152767301694008387722338729281398987731976393166656958724257893738173133892045782258638939071094690992365642252546368618456025671319881800522894871053668692627392104679033255950984305336499633931093376125575442629053293938373824442579217221508677499521448310527339636186662624068358314415429040492945713224051713871070375381976029365740924307846899869078576352297158592680904952156452599360701107881525078320352998223118433307380117433181462503540912265049656579895835274460486914561179272230034673085439757996068529263638364423546195428391051443421307918631652559773095471704215919981032622964339702639925262256464449399144932068132695243798333240190817773312083992991645419990776877479984168553105224897506660489082172517566653554159804801137971817603016982606740007126411750913315683425216523506416911001647654174403810889068781799743041615996022989772956803278077929693005269924656835855248717043129839085729187223386516874804724188342069938616304492934097874817222063004064968340628509593735428650394275560307686605592118184040337085535965770218779752496746927281930317639734590305617393856726201863130314686872302334743032293482628508609193527479559989847903991374842728783796357419236533134963509843803359342844317499270869476588436669998656603128497284628682524307341624639988428752741375057159394301639866118303237577118688355728316271082623900230107492030243574792196482718439509631442680619107417450330315963524537030111993700042381951995213211231417616126857348150321322833582468758294475609669439758176812901384743875324876771874755503914217129426421428198955210024273525764916159106284045223319125261485530960968166223361134149877229103468256732857694107607400475393304864461136412805844522475439934035706604290618804338330767666105240323412705557719358977864094379872159873999184483173317744671124662995665107474595920844332742344175632756378668308060389562584546736192461084876381822954699596210804442400929750733777019960391632778890406845763041013993934887639484991127875855549195954216110113460634232843437094543301783194697339078588640657530320783207723859163483517376774846744841084185112149581362541571715625423013124660152501644258661512175056485245411301960735571103690369642187981037221175893051994784824483214639175855031602287673989875171945472212136133153760523997213328528734227279747318659018184077969080400041666635453368335857978037856284202053144693855649033890279655775532640259524836465177679957300203509264713787895416690682681874057679878546008014088795329898233357818297830052302151276512032857313984964616939012668450447383740096647461568090586270549353227822859440297864792762501998265410018620329643487680391857879436516700845888919418346641438243297123544550570073506245410568586650200455010342501360479780747892559184221846069837114870151234478574939702528327707008316830491042543346273631571059617586169838072703309252662742610271042543225378499458880043047183335799925244546129820729332779247534440391843931193113382154579884804604414380444814731240790942861302345121608670391917419445259596534615967810788292178114460753172240181822754970853306297536822024444645764043081281542935480045112708525079382696422881410921453857150242792975144472398537213765063184727992013726668923086617404640840636357377474560845441905147478577228024928987166236974664739708356310337104621221323720947052591029016864231135882867474872105132699379562374039196196062607220084691046459814326901820699015095516576698005850198292448367463659922875937687944708981232981180611544458794179187157684452150651406044991626976717881133963734748100623897274451168251804057612563714034329910084906900008695563091997899596229510124710795082602214380980805885464582408100572352541614655010918707472769492040386713512940141248203632433802139847942208580146242655646964256425479633180130505453171339669437232126658234633429155344348090146796338546501705573357982488510759338505681866545521576678799435810123167777682168493833218294235560591348289638334594813901584707027965583667776293793673625385348897289091854272748595282616073042575776649078850287744991164823484585206358612661381632874715591570089567591420709792536247426033357643641594782330961912477808663541025977283453424979863275266845538324365058115885414957132944044888449387521867059205239953078300594737320591600546763102959397155386807973766847687476191028045370084579467130152816398648957271729457128913967198056770147991396776651166703976708964877674084489750710640258999668704091370379260795231214311542337840070444182873008240223530801404869673663003575912280076291503500590876727301174816469312634562957220364890421139065496706084121775918623726256953609854428913736499173804019531705037638034642329642480799091927343399296950577779583165435646323703256890990589225457309102790818847707878728997155448037749847259017002852564026294796182646653148576603962279658687204952969293091775517063395969565862857022343400717257815219381632283581034809009224050395771275824772957329128703234771918518716535196885809745810857321440931878115585825556011485010966802423699294650621053945361023960244640701028182546215035421906406522107060206707515052065761247617212567963238307803713601234697548376961502004833726335534972431103937558548045825695911010621058850233493515897336011852742183907089065596199845188127933427970408808295809036069673088350179912292784356691847959657424672608692374616307417961275923699795497158072957896003955979606309927616725857727228436296514110458372570589980622754220659415288316652896656365813001974694860269310976045345633820192765884025307975513981957342646413766159824817216054562703407839575004137211856271815823295075872182947607474204725918291147942509912652865582755483814135818528520231868115445033885181025014698847510054967871033143402513683051411853245993674287633942284373115784163376932460866573637688812729497308392101947043331149133271513658742266492430123885057554695011167606868032922895010692732267151812465070741018406765195822159349030728108991203886072079240114782618082975429261427327369862764417232332142005421903665964558472650345482742692299043667359950161371422474269255551751370581111101962379919677961346956265414170940556295712617945314434415568196001761224520745679599570410081677180699273409511700789978487083369971510832994203490933479513265509446182683832591565374146808358631273081953491818458534518892393773025070047754426412049059729161468294937720627820728235388669681191942081635199204264146868386361932380281333111664516956329519009125058425374286604541302324002921357519300494571156044399188580375104270081498602177079522978482541280311108310553858702680607460821189488350287453147578007941567792164948079575820686565526840399009087800865674915838116375455482466459909800511489779612350932813595190775126540932174171775497320003767434073144528663221872078756464553674544897030803716364386692711774062311888172326873548136850455726100126130704107283098984855236609877611671643599800482007076816334645685624405539420448228599102036224015165385540157995997295619589752772951759952075343484428116107119604659521706191218272868028081043132832125463021330922985296369275134060740363829646046441706953697310227131433735559940617783994917286591128052664339896872990864933351420525454275671817926728832931966864383634547744845232465748482839403376638523272455718478722873607078011502469380327186738357247744215295040191309806211009713697159689795778979657836318256649236696275014114154294305935154096327651203493302392264058398026053893617232639777094641353499011478936860971523521099906090215449649617829812441460814070100099105342951595348998645903554157851399346547071962060758566077291205685201547285122308835369450646569807111051907479502576594232418056604728376991996653925041487698289658499672070370761444004899882660854416225103753171492822671511969756410994407057468544549365254718348825866498839244199473547423395835960877328312232566834980313729465172128503663993743227515995165410084493985481487330093155363100792196669465675899427589571593852511267910266090011679978684365708829935256647084155019070702761024647585704466967340775649987982003195147083395120723804282663796383540286335866249525184214547062366152968915522013525907299343489367036237581656689463490976142985353147750509895734287799914435284320738536661335842194989598509547173183985631118463740168023047755179882810595587195865614840264070398866770160401757080228235968525201581054160243388397741708867772211617527728563660500394766555304565251807070116754598229083404154322793431288011564932224585372688310639289824347127069693721810953870696979639156458480179433679865423540482379963142863256563306660541120094311276547500485970630905420658059219569283521423574177969923392162473465751275639498328594359482353891612083021287383880048469348135939522123887213658263932267852183252855156745472821304054935722126583381989581381856952789932836990722562373887833828681369364777938738610934739988933758275262086946285249782058491987667556341590291371410419162709570310773291055301575633739956444971166339480743558194382724721992776488227512203208218137312304442153695176804349753582309080347272542213736382985112569977342601280950921574505440466008693807277929694695381101935983370475538834013396781474698866034112111081790889491776736265207508960082960755577199987456124516913369546964634434228986258562915236605914795587602616241339493564271080468594845472944948657165456100159572084431261704976008973777104236894746910309009885189183434753666308019052207255826646175861984264213839065389978795380067123738074208016963750678997168387763113216019444310512534288613290649569848498933815769097531159618752085785485509839450157408580616303527918705497567332582832895136355857116429362340861381887989157500256188117590751227106715267370333088948325828689904184007305573523826072911208614114477863826878052654792034801398443873086499221516591447447928873798252045540235414198761042726866282543404035595075158220291151144513504502542713538655641680842954415462528840393535994157592919888276852433641979229769692207167008018369752242882490685976536539154883170745652257140442171523807610986448499421273294619335079258190172983519094774561871198524860559026031134292038585836175069601893824937977051253680645992129275933722379482247260841626908058066484679861380927009979539596344464680422268090527122491690933006727043664199728438712672384462678960552515773502023311592584828162271136407207402001155925613182938919996842089109834701407985758673899962702842490687616009045001764509581932175318422573846703206239966239462046250082450997443472017616402662832737415068744567415520169310984016655305974072048306637119434436651025799814498320383392779553249061260229250089520541250107874048832628341483607572820694163337886869279679105499508638105969910768800777146282785830286944656413430275443926437479208068359816335872408146055742294307686277787356642831356769769879848819341132823778626035114073947769596634192298926581907185719613219529955449610511392051775131048333520936237592866280571651614674835983603214719188207227066808254034077936530880329928294421211210773605957458709808181610266103108807557098573805435885328238160801755390944795203186895638899325906291457673451700465967160844998519714403287656619041137153756141676393207061827498049173098577956033948912802938534257029711576971025272294534839971792598710748448831105892982814323069713029986988962975621868490491786477415186455411789889175239280958353220557632700552093680628762027658070817952599815818125593051720089457502234814677175937765157307793086392254533877433729260664759322602978573937546783646902324157286275862675445288638660958083446491793520061260134945051440035896372075793664591253389415546015745359251417647117951585930333602379752751630651064999136261267732135344502994913273841573337825248344937351791376064680466395071660398318866164423300954245484157642437469535751868140120655195637149774608685704350656896001173934147511751645890419746568102428192670066095824664309218703235344089575298410490108496904495152552847504619043630427606026840747764168159294041249921057801635062710634116402106429773563243687575050074332336939877987736169046625526122409435009814753072346847964065871953838653755142199410936664838212386756948932083990391925946625802054965918241353890402805670964688153882624474389596183183293376049644132741893790322165096356291995157656096188787828216136144138982482463952425867117707390694648710278859919382449788835663875807963628362030327090200258791996452719423954226669867297058619014616090073782467417545255905279702270785211719292101697697028377432787843923385185243275995245206966935501830856888459747001702050905904148803533757815825429946394778307286212471296508074740576147427757094067998635796248086250866513996110336106497091340520671492509383609030133375177559444373645098662551649667970871979159429070147247818828791170165931364108089241022741452045765951095854397897482437815878230364202956156473288455256199344424572218327492944737864145941612005842065539505024080599917944640552438956990623532533725131207786903462822294266346152906647566810219335255228256187457416864180840994843800565646068787834470544249634135508118386432464715213947011170050014994407901710529936511511921537685738408266642876954795883466507326159094098884341835951645656908022517747873399880203011657477948165756681962965845899087710179405046941322059557824387578707804906430341940093709242081599853444307567629759792805618469986067426127078455545520102230326133505361573256908642355412537522826552950244319916493642605169182255793561002526257469179607076202081438415322489561412400483368327379927573177001696622416515118635047025081773486822946174341803702218130506941944987655240786843108507807734564596723896243764311010883061444639223074849250627718261816059593721561650271771978825808195734345608066135729760822404904082232823383258105825123495924451421874110331085916872911425113470459961875252294401823120239718063642935907796084646534890405639164867552693041023566115738493719175101190302388615659689531738333613973854049345231560444462146677653702772668292389513345762032257257270373506161681242316007164088683761702745916687954203146581526284075194218721394698631046606237103671910963813016983051674393411342943930242662314196826879265416850568211401525257108155457265594143023199350617806451788410277252040460500506146976787337896289460922212792211404659604679513686985834422957015116898592247525920549624429807938794087983138028990965320169470967716897093931066216497269771885500463576692297087323314894490891402699159912922503481249248034800061022929284532164679080222991731885727535336253086890741826255011172259557371665959575610782439667110088172679203210796624020560170743639955133630766792146790682515718379001783741887951128407404091149726345823235724120257043160489065990535733890782214496327347827882805788812885556901461874769102132240190720055704961015268628138975792718340461841273395761762296454737441742087344114424480148258367888516153033444297294696221133171526265219033815357176649343453995078960019564816203714893715286006313502259965002500000219141209895454178196549820395604682749434876378653149521007269458195456697692164765946170578076328840097090922646350736775340159278963943936336589061315229272660201467354277519094369689918985363440919257023058270722497257522247341788892224360859717465955604775154992893616055995828721982341244474399709431284218227680243176870543300071743292975541581653951410120237327660698500456591728953863169190453998284103186222695074952610991655999402864711502583363980048655390745580563512913978803801520388438190286147140366329745206133890156733498042595318447164476115113437865990346267419825882625269896316520411478080903303879454484329279066471658565091727994508986374919032289186502084513811329466023121339464507185845437550697580622158114787742043424631053718486407342127488059191758574456438969330602896721933573728686339139676750369286228270950562416489084887499576621421357912027039509843249511026381495267922851939033505692097204259784304097914730298272678307995222188830098541664056942835592727743761271239606808297485732092537472093766765407287638713514554949473720582315620093110003643543473569979757912575163323003994368675577780836817343716447585060654032413034956036890010824536575662833551443977415902796844770782433980855695554845768892040515779912278052289136989403693693478220270806097943584298526940019400602995677166036730468673817468423479138874491120033462870638793732644493889031702086660955958510368379832771387906018884231464404498410069997365136952697390422024468557401354623865854458726007251664838240518690761420484038322821639131258668557189359144914975040987537237164511047654112532403360099594505243438655630519801042235609505532339532794939886239293874135871621292367012217218524084777069324319329218307159216745786427198425973765901674261969527991792628789768679776034542134774221745810126634215805848442554600477149943651671603345793806334754479375385096115687660096555678793778066411146014787464666577445676678805665032169470412155763819728608044642371921864899723487645560240637778757015845714633051823090777277393511353125258640950348220040506793350164812102382590766942284279109280963910038605410576690528197984148369425240446295274074690580655844735433364118502774424802310314490123543681781650346289160673579865462133671140226946154247959949983884534028105924726472898303904034914511567635374111008348581955827691204964943717855545629536032459033296854590088723389880411518500354872137482240601263590748446380979729091456540813225376456321561930945678029129207068467062759689406131944843770676453148144524578559992083196250703073510515737757712097076557314828380292041613339848798947909733252277382213015455496430026047826057603708109928590458485996269797362523923705387879364800532408077810240412417973735035745875570246621367880417186049582935518213770997450881275766994870340848017094113144801058878295066541607356533476467491651928237130605327024384825863676869805452444178193063230466338322368614075404276553454897557426583904265599708980039703820526990819004984725273178123193361587545482213119265391214831502951316571110942209272988183357841717498283344720536745714863651993971292256251286920657929555399636375033415583751419657924854395787577185767372186483660059706480741592035745960392507612338540733299438450179537554776750715651592956312510999638771787980874123992944585809454522009168432279599721990441661470177057885638747181388493931546464289182779006722232363120039170193760175402445019957849390640825751462998966392965103654217803461122946349557064705430015950642021097579363547674390315090273002622832964474891232164923040884669503723089620365965905032890441298693162219387756964974331526204620131283236234769232429520254846225930497510434945753743026032304660805813528181751827200024325990427084397072293013816107203873066236797639656930602877843302732684048643454944774345313630598082416496228541013664642838663644016083339502674307947192839788631511698110485271261503301722599164439296807071564525862419308420715932951382709994099947371959353451113516721398033610592862110970305233510228561539906352471761340614632778108393376687078591821243753111908312467904365163382596800007379743790685926479030796046774533072366045903837378329842437844540730314971719054674589344629932635972378989896829964745508702302494708165526227532200732124954791121189497750056995241970448635185205543327467590814209679032424362099623449085161488111916640109608357601732152499842361685632584929342776551862887937496267121144280910580744806177517690670196722802875755044243370158654703223682467042197520202201431516889499315356535457929381245616965370276258616547986214421247321295289040260273100976714529002659072635960316504328154952627063900874651549180319584981665349339022378979618965857276321040142200875086835602584486524997739175323867653200731656478354815688111157243185350571099655464658567820974445556464379541749768084194667922502618355762582167346319554075529277850133575988683250603314344846241926249054677841802875518066580333886441481854359974678162164387512869175512692017168268111147039749111080160422050686726814417612428588067615546500029917203424579454476430107621154705492883104982556400115824677885884856639391157702510835158957523987872202258409011725857789332765636570254797499667269026996655520944497796105624382244876903965711994516757395152055807536809092918189293864702373393271867279620377377689536160829544168638327804810176051250881381614129166570524972389159958767457988610375045703788125235861480055559568254193415684037461095796898055471318907918015787519529639846819494153752646629223550547525866741823727255212432699037306477078586921912806845569558673079384647092255394850267024492745268890552204034728248602979370882551051367343128064433144141939438396391721400505920235048377484261847925197496855819131028144771896310118271005472229431402886555701795829906879974377801033539312186158201049814225417598642929170673526926959453306370973326796062158399155995232287414478211398959197449559315700722747330486761966237222449630457270994839258877459243135593280806775265620767088653710924869244363585673762565915995160484763843420176726945224344418410201817767541054019207775469933463238248842815247578660493288350169148295002842622996763604675817319460576022985242388665731443547842060158416806596699394673586251806489352930085790252401824856776413964776537441772455037971954355165862568645353061721651243031155543879498769848017404583829224191406446315121629580569919754149020076029322811810179857521748534319145769834621046930741003540801213689793638001654537337313301563211796245934573952187935807724783633887985590807267638231569189200740361337728438297229339299893649418574799986085182693751201789506306325126377166634150209687112178674388232703371922398091421531493083568161281952393698442932259112993486460306497868672123195558280945861207869264991559006999079894625983227836159707262368817803745280837970576475958118808705640864018473340662497813071014748568790856951524113842019806250742072783674550837562508486427530563311293828223072477863199436866137454223061010248836318625998383557804673615563310918587051675937683642721121549481776130695633780938595058782523946754773970716713144043302750853582065600598615725053475778654891895085520983594511075265243010838342062040284158490846819780223018384741787857324176121657795869227667341925351720466886429280672159096950607358279282716183430636086742038319564260298339995729777350278526106381975696808376063277739324556554076784502792117408349346927972953924086559582025846271245287929903109367220622780871446386648201932553357668387287388213452616624732771763243047324071275488427142533368274735830013645960277185291600765757111732434760845673693360525040493387047600111085364753580053896329814937258111445543559963827673735600149315512698994051555223950274860362864793615304577219548282196520374947600560615705229424379189374058441286634313177460874513891638113821922604776300531540802480384707915967528110096923993179540414753442466075871027350445589597802863013658478921905673630404077807859099952968384347908607592222262564265918514304433026088686051857929098478676550796466036788663656876463486202896349743633607416150678393857733714423309283999804634626384258395100827405952904250930016999321496474997830632400800094425183002213422537543781330342538994315795316292691987151490790797898200789916618685447331546540612523385518249173729989075054592386932900104950321641248237663680502518322513238136112571394358547079338479280614931463196247994205115479042959451316580908229138646891702000552511701320020119463461990913299963257172710855436615953357706233825255044583933723122428588076398683547725456315724374251315353570637453317635061963302873995767507402398131871729995852322135352767261593562588092286982794837176337764943205857667641800790041435976627921887995718271482557365127758680913209856977213616621218176429575019459229564191836631542702441702527014457543815142882178688390382920966312928029458865818211454132145682265654606389112814215856799699971705366907340705602319853668465427496973271167584471333913946443312710131836257608319029047148986029262651183443823172168128408122430710808995922405568024461395017332043706368025399782723069152139312855706716526507341953705018674951665622346258350812270864891836458903580438626257708962660448855524754843270249884554501257561095708079728849658339964631828384869596177462101185988474656245925713659955195807254409907290589185494874254216456221386860932103894945134996741046072857709471897640102584253239212344863672647769112946183225332621106116618025378337779371911856394006727703696217192986322898392389899073606887576777170454238546198708554423153394377734421424858390323567172472320008690112666110880532852704501933378286496147329538571050914375229904588944385684154303340723575647620558303220453553267862212283487289327019613686518272379565005921953572912248220512560837024663173259340001446726840147354272196573495537234174918204721787342698215114767411884486959695187152353967825141456114940921729753136984631466035470121078323790261939043363501607231230242540479496817205432368723807254897259713285622207982724070098803809274947178807265729652883413071608439254779001855563729333534552194708244390501722836599009281039977878102544780016872280452127475416720894277768601033527813986097040226552311494098729497217210265536329962238530520547696770741911499359063087245894044649445515815579098662733892043010744677152659972392533240871497596655402675748135070018323532346152309962094679468216214856395085495044744426410545689494943397505476293972246466358905692350141286533764532264620712570471398544937572152350531533090190028790514901649055566540781348160049813166737337583147424299624337170072604143506071936969797098765203962236735197497796538983551624402240851303491498937647313923694363304539207661793155658740135865063922266833719929514991638653810815158164885847229775084643094205188080144608690930499592627711720655409230350674246322090761613979594413706215433564846189890858592854571981377073819403899342083614308843244983247991702129590222056576717217262947748370911079290637226701379215187232079111543516507203862376049543623572056520340070045914656282796955200873385430271863078016123193993772648281635903746489958954037199908001289533137634229427022562375812434543309847425346597621691735198969815485341821069492845548623864378606865624356063467066175490051185810554109641738420409578470150528998398227074143616099744530078176485567106574654180189554139853954682504013980535135731396567922424016283937097971720832212783062059658958118733151354658684205296269847034147381723277047656769280970299653871922834073402311470756520706264920792863375163442573058731937725643141814341169724435175363575561350245712452818975995083271589166901830962929858682828179254388259662855730195234733713917459125554655321832385723134519041946600517153401473012827122369429284091707924282613420371862240958661751809695966433423670399191828615767726743380030423858513927209612508696415979482376465460368608455008590735940065808480321420024701136488059864810935737005855356914510236658795853387388640631462669519692363765454864063970809241402767365455207693339512354775811727489545528250529369761000695056033843508761440853506650896204086042489155838990536124830385920924483949790527211567225633850570089613622954362063951388351866247437333414073736612435354469911781356818326314133716264333514250957323057849097807264154686423414556058701560318160880729054511923534782925593602093878498228597213758245111860011623874131323297352847163961271998134340324963473148453884211367545731156001302606949893440086057484971760964468618509083136696238640744277761789963967827045999083058744253250458327680439890655195847547438770246538299492022799322355057024428053228765288310013046328007153885611396305313734911955814543124285936037144479844727232027181639176810929602160380124968836826771802030458894597031685348655111747460750877228529111312531506819281572980847980555745181086980596188351460226907024332362667970730554806259647507544452712221569637850577703656507205123497060545131354335694736089086118984817611347375072820877184056842011282535924844542023608901935842746483395643358578540320842621067008964408143186446543171431859754890931835556626017770581588749970033603052421006409103084189570873640730145802816095841149677821171181576666901108015904861446728651018197275435367337011047385692283096931546800880275755204708621872192872849226191580754464969665186855185548303175857869234574796800513122736559599657648902504630303577502086031446113333097376317637032802560521367875906186335201953950925921903200482624420847370811798527458589835315711310626547113134684050703140723266651304011540423342243079884741489394457290339432904901318203048955210112046532309405884855317758421375850035135034731074510148060519295068386567789567611368177195494133840455504368381095763193000273570184906982667651743208915356340642894610191035238110940924855909026936548198514484450492323132231893118346832140397408382510076094406361465776441142383414687563701985360768423908689984225501486131346758372793661110053069608104803325006592365148624068023260404792446336234586924179050882557136281465415575988757981899846412314981117969101538306034938625005016366831141792741714427773479781935925561045460708859049965715047955232120138382211277875788326517743227968687605442682459572350372798686145908629577719081550864178821446202352166304774935211696069718082030566925553414577060221255698643090059529290462946304895193520477865034105828690521092604302783728756006285271353508565220998892883530116703196811894066258235842827294412353790934195825972999475691647725932794051368868680857554772825680502525404838418697282642095856032956013598145900476340277051512018131300883697434009046051717051716915320170675914182194466245180571473257651956488573071154791707060734995973903359888853841060324462986667684099078603106775148224524434232160781447874047207613589874220276494654405725360400982922982845974842197762093442112446410792622944863669588294523979845878787680209714493941828202706903768559897480704617329638023788976559962697195014775138201928643618433983734557294500634169418738251047991005823568876504386924078459609575544986240944231677471124376519927865976434355342936692114768356946095933000802820322565151934699740513893738590468395119264087896569529366949923943896090795894207706726561697458938267619035559994414513595294564329373920421842954475728874138043125528727445824407055627020177326187143288157365659450007449313218769582981477818245553635057573454872229056254915814748848077187106474170553645954309263298287732151116525016967993593382602414852916796723640746736940014091643303910559114174901535610143230914178543454259536904491966483510376486723034255148598089950830706170129918282096557499538662634335363695715432624375281907103127099829500075504347431676967670170332459277884768417567777761689395873101895103915313556442688849367102218064896470438608912620307712815182533259444950972609144001140025941854323825322577722713429937624350697633531302076059012180724263583785205061514560462081094187667439562388163777283631575142856968171650691562205957948272022831256696948340449270434488417598953112233446175616502976262578335090586214014102833781614395077930247653474331928522432433962589002180135746798435169964209317322803446847271435018875812421879707835712461430290618651610281256421857152324180764537507373456721827519769645708997157815280800396210655847459326431112473102204445488819729678584220728272667388836074566369870577749591683089504588153941261569998634173709662425959309780866173128022167964933808892326119889111302818400805493263743052256921989595365683817176342296024407698659000254665272407755435796860347172059988446502524271515896520495710611623298714493130864868135054384813110247822378230869339644911780319814385912696601075610634166937002604523008402759778345329107898148564155186085395951836518089650209607925689777514197108931164820568550304614210191022332050896199324502475313421242769740335889816266178551177471223353245492036531833292982484392440733195381751502787365789681833119979334195272975460936245573035076991145618697816768427157637217125442807104965021424907374177530020407687272506302264142101495545148287796409277184848830161299784897351574126051495924859850915067481545258143080587049590167416077732154057358104567066420254646095619720843338390108262526060533281648562825708425291000379157414353929067376885569594377714888720216866146059735331220826100080647581224287053146195442975243169119170957679023799559342324099450979998707790912593262130531913659580398266751090671375645896050020862210808742690691371525308776051328705572678586557082466528577239528989269306562933938579474461160330566819889618862281811546487112331517561413316692914729942443691786183777607019864108461336310549012343901757683956186170310018258245762783016537312030996416720134208957765533553344374398313113550567241869306020940495475838640417626990329168886264965103424436087486627846519115857716002898631397527356167401828639600767629053294681720296713039867611683076129207862228955030917807862973406199235687424278521982938282345656252264394188361735125571609878502279530356391786720488619055992746392233738159839520213439633938632580488721536867639619151748986978761236110560335328674007667175552963024589686034314610111607409694701814331222760710207592249011662375580629628246204021263318003010480375852475016998739590084175915428396589595643895743362573215076398046424631978324627646237908006862826059220832380070610171805950318179917181873673368340005600995251562416489438505157804695928102242758226686825120478859588155738053123164196890243991490278154575711956222648437183887753739568702863169553478617140313006972061002276235605464616983631769468378821558011772827628594264203873248315978711776965790533951385006266467572349095599922275822840257338305829379359765506323222858114977242300995510048647619282312065518567676994808122463754260472121450840747907430356555893815542030760446440736883124210541208835461508664870419175242996591963512127990482328150140332201187853339797907334246899464265221508702907710230772411107982032669908430549869338555800087780758922092389586472737283528368865816514271951365275413243512421037597161590264580246423871368724865390317468871180806246507690156078491884265756928330577188649077500152522658381905203072428299901415217318201690539002309811498690478830819170622321809538447942748834922635718186282324340102049755736529952442662490879416150318201623108500703869799356132852084164444431083773427453619825697094145341902882903946875723887661708185048300160416168024716939722526013804310531128811080891967118465080439769153059043685944538726507833348300721767186538122440782773206951003434208180678886037733883050096700624428222622318187187633806455963894540134292927227067605527294217526389633506349489306420661950229250774430145412791845981811102951459650258252812597377329175641415711580532067941908988383714325175660644218696881680241091966180949627423451733264355058902632067186056551653134902074320620872116198779844944938183403276641063642053656419667939177693235734289362600354412182964477881143645690769971956726686854202695349933370135812996060509694822685282729315064068891494744224300160614211692122898401086628422284323245164946818216124112953357587068013865929459407360197875413782832971315996195650277305913396112328910990888443201951413902798696668150957763167207773455001203996037551013085635263574343853744085055929936601545044669834426390249237317704851051933651702045912158883714486100836790589308052440977851913536620769369026688435525407428563153034199308860673648123539963168491551813450431477347679358349543336485113218110486027051540297088345743469307691285740384815790283028226952082417606751164378397759429148237925454665760904896927717695295448214332280816195924557752527121225921071961689906905544566985097430827397207991689010318992837210455307146265235714234443928680105386807687763830051682810871542201837973546025002470874300938565497116716861461158104570937870422564125702028808113411572393156063658458372386664423901907949682828590206059870391534715266593693623558070927080437658868991983821865741097097372345626670132321989645313174009155312743154185421493060253229639277322679414265524899779207872188419476444916067762811511662940082743967907044009423394603453537586931186540277594814744352875402248428112486704563766471504748950735952951453912014709344431855194113800949564010917794570275393529851679962739128066887867672528741587223928318971747621266843551557191900726023336840308672561944093230564380095503252177915397571365418599750535843651214272499904044236099694394007031075599951336328571132807209496037933625306856881389115730785537115290258408257341890080028422497407658040252017267906732200795837299349055664576488779240400660222364141542781359627752071907303132204235268120492968219964305982157754775381946514063430070606773586535957678271672760671026797383468889300697842011878445588808151587734623826315381838794706413607673009228036840349737756910852605340835756909985387772127567803854836948574103825243428284895282093338710809447038600584790569252878021251916406220786070705751601073181332430121910417679138368452534393176540277134916533003899522330178478120599747670107482615625049756335145334028979576736777200617574552991714283005482531411520399100633399850989584372155312951989254368736013109640068081522126188730315541958741049355039225046130625519071541453737945761657728565316818649987591330001291279881399665681624016830043128016378149183171368462536026613975201447832156784010532777597265583175305764238866667672159157364851206638865416906842021043939141125847850710703051808400169034731553752914509883003886164575541206675711139210945012148336362776834677401204484519127867225230620493661778437350700323801825365706507561136038598734515530105744182686557509097010313723177241419790965564670710049409913359154265834138836001258617402238762359354843363940450546150733730381823077764437114965260761728385070559135306260719765296359456223717246703401348483475474771077491272156223257961379116389778567731787442872272340813094964757178258748445879287999038955654592760638360739055966574897231394452701849831307410427657738573668426641152138518322753219967299707873982415052627355538132286977756850093242876759881442099566952859343098569627748558191278010437016110478498120369580113980846021170167337386199542079286326357052633570256625479059458594166680921862843813581865968561538327879211884873705569145041808395412844378399082249748904571890956041097675275966129553665703084173757166753327082527439628993579710433526625933109276995848543345584853211929986266314186398774697370929261375350431047928462465975298294148986509480816336701257742979977477059796722332610258869553757639862146657399729033141407380121360026930338514317118466035082045361496703413315791740726884202078666905199739843098032348798753948731105786053799252080613459529887147382032186797487339121697680320120689915556444099008815236079354108491702674647903426875586612871095986168970682881609523702399051932175706066071599489199147300236974409171495849982370535961375841153798579275086863360544861763127232856024055410187958739960192772876887438529246267835594317671358621464563175393344333614502345411806964878472916363361875984705596277672174249881064622352151428446193534192680127505438028794744923556369772203654542165118336355255321258691531846657425376165539739580947536855476239240177892515690143941242532555895302768515731468120901335600823513533512023713279865650893293595448757227974353984030203572743358488772321211784678184956808875713361640938048876592512925245302940285475659489216494174074121020746954656064739716876212711666423702244031276925167375967455607765501275962581518900633841268466791771144845712003470303331118868513809017864392373264222526251325911623206891005810610890335302789367617283898429087472480697684862423397070386878034786792631902373562541638882112591649517628359456537419805316033028271108005662262552852136153945707135071992161636962063644816929271730258522672990509351875690917912026637005633867748814175229227182893560046362671712760839049449801599758146961724722536998999845116069733550851846830867369027643966156667906009520671778217459691638385702114843006136507173242718332910830655876836998412098313928364344226934817049265249587845323542953248992555409907385039676456200256893284281678789992549015861207654048359468577710738704672492975575055418994902856173771978554162703435678831243277306690429482598024880911482171575337395565919869001590208562991321151071230940744031445732411125410965889817592100171359391315966771593491299573742863316450647725762147856933843358032815917799868258762820235751258983148776390351414080174288331022850174035608169268858709020731347332753602122748684637514028060840898895626398279586488747290475943754552964602055126461433747577888577883687353064933950381469956893776788905781003788194149868792815364389474453408518096321400237419636895526380344896195649927284543141662320389155306138683768141620469998471578390208360608405159781927650233106911312939141937605048186812257804717458320211240510271148589830196247725141006087917267530642129960348283903735589820316421431469303772647236080415924142768010934728633781690402895350425279168726231607365497372691044105330693877312647887156024750437742357472361725777089509410038150727896380673683286009579151202512079762436839027820762303395118925164038215796174205385896383764886648067431412037995345339522206997387068737366993634437399513071891826658708221832649515042705722262679971538190724934829015225283653646318802905543899683144361409739734045695588189623404244243539142881060604077524896269570945735237913639389997270643920634857100076414617377310744660800284247205207223859506153472453420774258830712507310600651577034703972766291105492955309327072825806745373597649773858870521096756450265154372905765636947052446348308233813825560884040657829719062115904107116845101026834373958922257574674681139448250779752292971956018447788848998643743405147899245098600659865678756726083517792482893309635703624742556160169110178480279853811371354939448191741179801433610259757661339657324008155205037234365440548018034059086802605990285942286381577005770340811313255561894505833670362658158809793270223302625770482792648869432106540146722088589883546005917931388567779887193582217026183529021946784734099451509196017203992021983942626125611937099748446130147456365626803205851863895312983952716463076593690497954892264647209870528872577175875514834459924327119657040833195648022601176538555834484050634750044751344753509741971249122167225614711235455514457009190502205204832366521477624343936920350806649968422624873083381588579646982474791688448028479046988492089273376762478178507555902503583287771392679510376908440984126652222457713550283226029450433200057646864297868100539564241550340692344276285882789996339464893674684271617048401415273264453333701590199283964238230345777121028976197668496447705675278895547640926264636122161799177932628073018022062590553499007688876167163213366176914815808408270269667469866009692867478645854151884663927126098123106938271196185084159605129639073960502860415123164270498667886215391002593613797051042818309039783680278543778627956249468141984145040320079212652670228291591246637304143748625428531772049217131576501786062652835403310545813403079329257585168311117929130730354576818807553207214422738075865382457997106270657913050587709384371262292533768919377572487999798955362089525156864918283192515631611575766003178921485204329169836654616429260586554024456906159031353546683197328880747603770378766171495574610147654379978808037735280404346015927601735218084686510766422650489153314643601676653549466823846726206464332410422018432663448695424771576132479700660310995940118557754711323983867067751037550977186748072806248721220060785777176723895873581100622506796942296703227181622520240907496755935552374853264930489325354568260223322787136307886778101605123625934027136766771470349481993602585860956125016082091186741762475706629891393717034305981151499424232819254872373835952342892753224006534614892706033059295388962537616591768851900526769788952474221876268007446433926236243392945410785096191274216300193984568333220757153382613442815741794619721483907062691121387191899842764032304771422100941322319820738852490204349771238526330211190568866367952021043302085487188262935354020939321445090759271803206406111163710068634549146396862781524477467044186197960553204086442659736933487632301359876112470985996477535885835105648467169999178126793679422533878488659636756967605099819328690667039238703693886640000916397102138151113706811319937128650061662488439771698988307778895316603723384603393171106437436322690044152248177487341647463748493137415463637817038286456975455319614079506802382520910134877604285537268319946653385052340563394470992365624247175667984777290815555632390214630304481451288381585965520057903092610075408133130637004107308487199840441968346217130593296787874431555269244508510398866252497575515639335424745027418540007490671436148224186429267060004615237870741908413461216196652911759067268945598107361785541904362746439711109918264302952638630059027404676066978248008917599961947805124660404336464139789906676544371955256510326587196151848165823415685200342066608379641107901999005726620149078075624694967250321418876851012533139032100047811505443997716264898276054472160635055734668452383829139780063206216581492910631753191277882595007940712198058245430884949858595843740606952438801756147960330238549928378551373173332883474112714892554084889058510823462046382852997388691751770424865105047073858105824194279740127301146744065867955055718073960356545936971128794946859920526270859741899744923122995398828910337159017698146365149456342021339026145717533413089513391828889916643549178791744034156000675449216220668155450019321767934281500586660672011812954632565257337560283372283009226063349031896932256443175229830934999143620144178084352063475981291283904304231821881426252558916224843309984349463219645037408126782445975389706962918241001678467240858163167370303885850707383739978002902633796550403957020228166113921620017520822628113070185180608700943900407944078521689864675026127775234543290269029305293343219481231523515220294504503270910499088355259565591299464955608742035713249491872464887214229659944987555357308280665397288454702567444351507618960175211127835644284237421415011265016389840068730700395498591111746469179968697351200436367034654350578929760262728971503152310723425927236177289678347186540489858517823939854121623255535166051584856028138276579685871600938064793831319028018133252149439167203665107581859330303652102145427287570912833692153869172213095394466571812453966724448345440796389806499382040289191932223469443343075736346008822920157428403437975587887630083049119757757308727255581830659553497927243866101863696717419589578503240985644746603522545021357505459081882466125655285381403947278627326382974285973553230560292088035799903491457857231250232099109909742958080318289245036067066677435944567379335268428857211033232677382637684075969205262287941621719506734467964568232072901403387825573070986398364512177241892288741756225210493505771062194101366353283537197067456933360534159676318984733094521832636195811698496111701301436612898773829935647133771345966789855733777113846802156835820056563498892039565480054740971865420447045761641320842333649797319418413333427772080182606962392999938270920600572508351710157169866503033798023601766784501208121432135543905659865348437988181941708780009090296654954217942115586420836771220782805292972908628862233865739156654160575352474037917676438983096413670024286660014862106814358354150505773255634074376657935304443786223860749973596456467507690101818705900785094659382852965348961011212631979221570091723128341827592544305496973567160563162659147369890863912638816856535451389648867382688710203837382327418493291038492291043108368997645547224440236536097259576922932069125190292069669791464878630094108248189299946586714360105778986397694845178132007697269294161055073301455424176140638379631254160434310411042939510431625246034795366267376101459619120760093986164184877348166499409025772204555678815562679492448025049593196985857358096107613163837440789540790840671996165285143548289360283668720982101727660528842899498558025102899208480347982303767172242736743837657793467812775520212748189570434384892068010507284378898404212811167497185423868132652358323679340464484920752698019635218946970608535214645863505259788194003071954108907615142699154539586445992473769459944546173405488215396581725928950122240503913859920031313868808538655078189173383738422326851430797874989625568745419508035480314469374678236055582191550613914838073560630657626912954671900112242126347129503275369252838722525086136781616161152000738633179132143476609243144723231201957570473744083436835609727081875594876941896883858479864567836145797389165674091917971970979273633764245909370809314531527384598418992953624642254324159663760582735219635338467965280670944183436782294267008901269041850131728717969128814376212093541308679701611977998190974984160089713240298374346568426928423530535589519183421852532843310535391165285741217500497746657284425497896752790170850133372044919926669002063261145778688852832111631375758008291995911433332175494366123917186372373614734886023323590294521692228199401079328087300304687334170547315060742606032131852436337320920084886617609000466602041088696442921612310427788900515307716225996569525306360631791970923365052065386999672342112967337132761898629570707774834872654741658305997409871530977182865471422799084992069228410684607876818929672701898495475723881727631960690262980754409848031532656464269257662172199750644431346921210444994046189749357046258235629441075419869889063118522649001155448906112308166393233066493479421271668778425611905245583911756148130257731527731310052479031636800927800225158173272178392628565603173187390571518656372468846586924817298212318275465872965862808867285274260135922056206218891012751611265446150980158952237562807906483504184045690394338107249009397464302155658283914070634598282594478132921504042794321900223348948606712230436692632339178719139676337243516911209964943392289110417797583412320667108135316919989996784381081825633313555311329342261351225425540118088348769231236576886023330261504118845364731453914838480757256388695696910275417264799190720064047515362314627742841736911439148275732480012481179261539766666343612995873631138557502526168698182211913358847215527147901829548850078024253061428886699243502129069542473478103782530667364616368981950761672550219073719028261473891896145128093115228930302803978780327211826661105668233703759236306400752369099975430440898211206370779647473352862667320429944171002014756516449815614659110605563913983000741299470985417423129897865077034720842056240190511926225423264535231559061651604520315630126555515333852968827816263266787709478146499996500322381090976661187103015373003029618120050618399803159937494292173846987656506896012507807502533233884750114333817208195944769941154754714544759997424463820908188035811548592758077888886072873572141759157405789084589546354652651051258638220229462905940294696441019975358446503784845057579071332052885150341896243131692211178726789088977783503219805602032781539157970523873098741492202107802250360808632423599515257598769467703910155071862876313281556746377278128942381097218853927512965354876809386290574232858715870443617555963615493932915598759627858625223585108860981312315352166120056640355178401955544476636601095279116549914526169422939509695394674649445922054229836173336723633065331082723462466768361301851321153126487664240269452973770781301589631831632554572363095454971017170645354106194397785753085660929521203759640801093487922466254073755733094139434189115354142298516810036218183305038776185516356107815478087577618806416273760600904230300317361874934091646164136833180956487861738982903299249238961202633026005892950969257401763430948797716349494562465195914083743165075819549982330850975244415859284605971557465524905610331694844656735556805270236389566243304179676750667813762750877258837246521769179792951846151231790203679371461256379645399802716607242670579904719548945244676840716030819152156664887362197073821855470025029381445824146663103975661704917964313454431321097851277020685640093568317110413127500346118450170818672224987783532208061735782036848459702175070874582310461979989106311644742246841555194896700545810518054139266228769937696347601465974648538178918621925209078871743444937362332626227183769470588372423589271728572559403654522414120759524604199419189907586072833520425738392198700890296750970375331133993444879309800008122914746018059105350495822710955984207773414291764361794154076313968408258141195861117349682533589555726704946418383226967486041010703102213216259416900664171048559372406335200316553598339249077364205806917088448553073781356319164796530327931312308508760423061793568643350922989288573357052597310929764957413922735362457001865066430917283764673110364919668816401194434627662884942889061878925873830096293175527694611165323437532378658128722413964100856739460609100209686163499759073161847787992027381833699241204393659031166498851532477880970530549895201051008345620258114593138311913491665966437105125217000037851901900086496354468596915033964298186717239405662734033208136995298528880284488082594652656892982553089887271092341305170558063617044018745603877818090572320226994909257800901804093956151797452830235113930505739028727995933834099980531175990091453826850146011748052280211050740758634113197941912063574383396516603815915239068984383711654724928041680613598787216330062174747409089013408872610733722204953536344650449047900451471857574610879040150279361302653318531705884330142763584381649694139849268449487628034308882293335284826019114029384719039351937126795897216185248936574833866874790449496597760963710657479775426600898805784183346671759327735847983075040228547251403761370248846267551217744213255464213957440822293319196079383680480644972747725712493313314853321383668546057412860011896140567595634759208061085379721579534024053530523292020941483675733937737536441966960545775755719968762853184818209945248006046490875785144092022186674444481139112933608257435376934050073059103582517805241326659440681182330620409283626466380249156461073213348508641767189598621813442559421278190286807545138143530293999473848565541899897409550407289321969484757371379712207604265025827265519845686702659820114012873177345346796310504251549610882599317765492453747500236584962314323064163826965370474546807389887814484112317743978226342844790582958004352422165469702798472377630369872388840805324372848008350008818133302736625429766470575241331360914075829197286013439046807093602573536429739599845657133991526100770828274405666915494420576642610489602115808068066924888968746520796157690040295967698839169385192634624281928193074034587453588906432367059146557244510636436622385214282093778941190044925491714802879411101866830803114332675163044773547715113277144966570350653654328652473025255950670963368632168047136543225330556422222346750577583878471535812164043774101314752403831970651455415831382557285990981423944947517612873673321786619365989812870633625117662921837405546033280352694262643900737019751717316779356792146873367507961140023981568695682911304117337206851585501603348622601146504843209200739905925374318678963684508420501750315869203121308324230461128098486021870943442434423813140101897485065052076377224731686160159100948600891017767188246171469590818426534411498005780860355274530133495567252273668891028036662816485905102541277870450196325293865678662414968200334061332723412748904761749730942011807409428291255367534395494808564469547229483687475556399269960589206800567860806374180244669900500479840937046901293455514389555340074566103481028067858158951514646036540386154327977598907580623717105593899481358425133750922635650097995553409662494145021130824390587837665665094561420862218859595063710084126858921331365823673207792852635381432439681895060083232302074527477206069210043263177786683568478829059485924286049580364509962110357727341920957132959043969366496000148990400684347469472235753448400368204511065966655257536704250613649994412714093904073065392143444087160525878073904578871554845352632658760987914272669908156214159280304497961352536093767189057906813473627801007252879125740085048379075145652229458797033443566395619255602831521189902038189976404835955626157262219315148879381932557425766006069764354712424849970408897175836469927183077573436948530386674673644444623907748814835504246738967097691066343671985947296093311165192227978185318958154700448908231014557400470204092034937428230973575106285772489951567320732194831442332572587606590583554644351132046238111565568807172836377936274548736094943655681150533172069281666260051770618212506780900706679479102948625172641745177694563828751700376216448466780659771831237829036670632647286428031667780964955505499510337951825289153076022609984016914511944250639470922729789192167840695447633014433287878754764792745446492608655678634910670234916390022215282147785578783858653853358167792838129019538180060520084281169573531834785061339740993751521414538572013573011851033797465255102856546912915161428898077454069317074880450551069540018935993414249706084923475685438151705888232387617430493597457986699486066099102938614841082811861232714421372830000023790464225242684638916228324168049251865547530244708222946857452351072760913787975351231178373315114527533716365097507339512019881238279245897924250919344613723273098716583295568072619878505112224420726724162565219342404372457858961212414922919424810820718998195206791418891699799229691829897201518137226774605636282036201700679118446574231335645713583753248172822777153185751364629665594858487765470278126713094642031390842321873678234147520043408702510962313592439039073827173076915952314777481762749628350111218597566596623305341637572747067288820408897026277875595115363894956760937959299040065860341506660330970500244496572812708517905049270664521114419413981772281887657107583971081190131768298916583689872891818800324662604277579971421263324976165935194056708176098578668552061818493645040032303721317586734241239540197812255924072249334648823024324952416436123619778671683068338689778901520634860993314933163428754792125328639098814970941796625256427004890275806614509664105549076805439223023624589645360327357194282448037805885347924876248811448104613190925506466290213360103299574540065944390912168586826253230674044405963053907093227937086327661738319272938139350135916736034245621125438454785091899652044130094053853526616232571867709048293889307458531486346878096376703286563518321605956893893297016052497523319764699201667562791214927899336730608778490498444486510402987214564160942438977939912952572189798122135218418337496533814949162696892715509774103481638184462702279440546816171874452809815437813476499185607818047105372495068503787975787425498115067958997256976969986820293214503120356965384893170175470658702977542955977209659488876488840092791208002847025886216544913911934062443547741214305121429760108508618618333545173091748472171526252059297864529372506341474194803191450675020124987370469746893322668009256689150492744664022883144436151308837253327185183155438203481769886415503955428946421986426736236433459249837836331591371289999844260810375392804618980630136432826030807582383113979016367811880168433850252643895328064287791828872915055401588406127050642625160203904699051789943301799261694210564941479733407693701748866892123559858200620063273437018916528565975078037916177581886351043569420795572425687021553414504228160118251025080520881909407030104237075163385021272796628585983346945646892942922323978710783280662743594855249813966328488208254789627131892273469647791873417300687868242675207780280037665768903969439528898790986315167655604547428291444967755866137783612562612854999999904748112998696769306358323322151846184191415820490340979186432560678563559969296376660701308317137928312694963406502486281422166785984822380309272277470843937830611810399209198406575574709944341378595158746503123395057046496550309246606820995617821698629863325481873263904715774600904723898731343936899534542783279942026366447320469159980951540982917168669060527630321548579675207330047584514726376871369617595258033063950237524585797454487864776826766174952483012933101813921300954988027025191456351971134454088180596621595950099336152122371072783814410468574864783324868529778532521807194082658543532750993309325556764584508015057953758635330774555524123841201102325232167077504922938101854496783275889814382249536879841192802643810223638193935131500114356132734301888721229561782956225301343086336051998079262626837042146581589119373138137576684202225468802437718664837291248928003365827516463033050048186488287018965198594982996525467731052484636733749700790500902308750784491532412590963642079589072112581007441128357691562655387399112226803312564892354462243777382379140435144050907162582940525404415794438796503280950483138837690487805903692518802330676685240725406815370952533082517739705395835832824253064405858753321933500895954005154959925842036344316165606481343967357153369316520586437540463032934312568270330014162809462231491458251132639661317310561781009213024484247070142218378353732582628740772836331080267638111936334722578532926894325021065074671290807154330739310219844045256431348743426365526972112065442214593138220518946914889129758172216737551334104381181371411271516252089585309058963814121302042720175305436023352754312787023857383084557970276916200384594890543857557828886296540028244728557013840838474261219388551154913187757169521705007119950015234911040274998920255415706382250822351561618259911517480152115577172971539690659228138052559048877499149701475851815280584015058467265159476180822459835442126074473509262637219000699207276529149478026186565735781058687321316815979110923763481518918756556762980709340596226059978983990012995502448797712566958152634991517235360918435702570701376366820863639501585082241362556083564510036586312176565578461912024826717672374092790923990555300801567463676286696021206610282643638488433805591664791869792411137090839162797847629953292489631519377391550906506989653508970730756613374860135982882951119303506189783703609975093045810634135180145628392253104755880513451138711906485508816345128651442408954044419106442372338318407452199562944387637352508491583827148998202213285058773299460033180896414617977473999189773866200403442153417026460718411560417320982848903803738973817847684079901044393759499956204625926550536866697794653843243977601645186375066368510893086549951630852711797382395960647155343678099927494163513429192418944692380490328444922024087226935671932180723816077392909400391545330107016776648170151022235229192668782737272331606635502529992278737388717137361525889831229360028283156809111295542487941350879372141977312658647408680025544556577254224508214790343811344791255001770276766240650711759763529721188547240814708209477351446371681822197011364819830698287569608907996252844316562386573694932398308022933616552251969614874687630065979660402325604178227493543590272098067302284359707053830301797250526992326891672994269149066733330707099535388795899339278402737191127095854296182202804862985712234590818908327680780758746071518955134118097365586040800178910370547366854418155814752804436347895570029763290890335967454132731977721136725361382067692579471809747958904152831513902731387049325309392526478947047502253946667786481246809929654070759466412047413171187029765846248510103862300678584099506017068285175842238922057479320200516759537914603390977942501528525295083386747214566139780599812264779169109264526987462566902538229739530404268989416137910990927319022537901323065377119569041490196817912730631034834780793266159338145627607562558716080226810372157342701448227898438093591641149207805545037331498395265105492853780491972651858976050277307819595179119122850399648369345722994684124875587354424625940681677923283210008946624430066381132717016334499468750217271360303473989361328630216500019639053501623579030748432821144919139548288679009052422954008435901298973551228571923479217970461232479243404558853221574571720033368194068136528620304706424973080726365121762209568454629015712562279599506745217759707385797357179008647112704835152013981636328821473076897010557514701186326015569838322251266746963659942991159518476869182758132751394301515998964658628989473815353683055135832072923284543408641916819767707387456270809332615913647848814196052902483951396751536468913158307771358211691029967671160546821128532470124539229747227217102609256172952571345839821914491456829960551582653601378899060675856571473361092920461187136951009656865793638381016972248889016733004153444382597819064769607981812367464818601138759846952056095221314389532716188316080844644732091479675334785152602880088198787829746348537950523349197022832055392092365905459624961474149861635776151506932477541242043841931038102731647490151585861091535018441366794316166021606161254985801412891124142459419490682707896366650410274614396587220311776785846383567997447912187339634106796091367577529151929625815231973942871514179205722256068869774593375068362470652414641432457526340424643256636044604944699917784222563296552945368137888236328887232837733869421283421441814392436373663023514255425419949740741220330089329945329411267448436014514063080928044611317462999188309122641216466987328388425926196963613837747244262648274121755204166950459754893926008369189091016053793849505912848175626740248026946474866550728737554380625274489149770891047881614471944206281188572574916779977402664148576646920889135998174032091309205550612933426119506172767163991418074153769649191893186714619658079129401813662408689895572921447794878506636786749610518351811497684999105261069540062699087642006238704776396990628353299320206256681933177930122144382208559013664571883037731864557658541026912768730354645920818172437883168542827784940929482046249575302415717981137208511527754976570602994478163152959520710467287060732572973812447177539384116830025056021888861354113854375271812201453371402386069467792478587379364179824448372535845851896076572035328555285136245341809475514362469465531174949849939726091600899856563486636450413668712542104211989997255427765220379369117079583389835015340632196740991233076842858148251628277059337874083629104503254874095390107266163431675289634919590030143065699867915968280648597580212154953504512358614130623856321865790579304034458697341567495084296072950826656696825794231076770990861921830279261471876355476947724401172335213267088739985746121056182372472230766130278430417491647696085940742821463817228325998673821853458250495696432770477393210509589114962979117500668631875501131072543606926120512875557350520878032414835081446255717754397862641581931609256431069190447220565297814137184650657205704419074226320837656004457390290845014641165603931768127827508094110795336120021340928683374834608525029365886483405774232200375210571109424343251002105966717839654969089294700230044038451860766481615140049908300126120417510767952006582554530487206293799912070069166346756040432547046208200250479178372079607058649982031397291995936076006846744022804281187237276213136102685410712164337363069435124278124928501526877692876513118420768738738823268967678321558549941961347079896518739226545571143990163859990000636651982549034662118013643392810558350000687617544046785221739464567010115156283167008858961719194643873671076190705687870196261144950431996641810889202067040159492946698659604142006453180665031086993099613067090719073140775970366882049426427075361985046763231846018033510959837990610703905718216419184147909519266133533344116012024043307057804929577386190561471881177866661282423522940287506900124315590474149165356788502306800390341392841322164908046349965746776280041675696809884402851664413393171417989613724832907990985066511653306493268094568440552857160490043253925725073652414520884328583061851310321560608899664701990318143065037107033060954827203380611251599361888885118252407323682794327563304367308773635377401542172100362991415679531790443382504362849476335012523848724019277760380074327658063989038081233049032181604914677487863448049584061732859906439866135621672984862112935274354513679346709887168982891364043864390614701374868300979887233991535879611288801748614722202390730586631557861896753339435566206915184658153568599708745555403364207136801263607782206896234942042549432910058147876997876706157406321711595784488410651819149850052263992529128292334592925952548120777231637370353018754838273130694344358306888456369875270851890592466084558627583166406309063687758085548490766690075082528337465567561804454446809078170456605873746808625125158245864105891249493934522502474888764557415437323552428317489512269325782179534936804598413153503784157489312803795705500408994338354294399833692749607745776426605101420802341496389945864627377110551579714044042526964696458626436697287018194492876975257793962562789229466226978967537293332873540632490351750402809140935542612555428062516959765315097363434451205994850319042355113005931684759553426403033671907602306513926773067060531521973236718714978061014063571793042273986637274634578620957375744132143627756535020121465400684672628140809292179674080887149080678318362042053252631048451902262605211606637581550368677027359291288153087028760844585617834742255320055782769602376423491060343157449446913609816540039605417428094549875289470975758616253805348619507943729774492903331617280617607228656339678031623576234891368996033441072888732032370093871800248575384474030071916340808488193480579661305822051760442873717987600867168613016921421699820605133461349778590431224338714174589184064400041036618554961390695221285398997747837443432013489324522494266578409447352682026920979769623613038545380447202004348046820628259285919322160982334951180831422258519384503027032904741162180020645922691339672109593953810426917251073805134581720014665681550744051405776940795149243591939130019053228956528971052099151117010433795529701353654472028897643830749744164094785565134540252701548017479704816520876250735731195378102240670190411813234850078160608761089075975217502697774597301263629973201366374263658999105978416135430709705165150028482165895561326989842883754751679504970611669004360768966115681845779417173322846889328294912538589840975617675456497802780567926496213883006770433159828623780757962875559556759012741901960998456819090281140920381844929288256834645055070261447071854671011033506739869285114921181142963439378893593760276090344819947683902568107146977040272280680833545756277744311678511835681185219435770378858660582260208001713819662635199749926520521585119093012613950792827223079221918593279597300591403961499184365981956145814477192875208989580487358338591178048083756287839966686528409206989070043444297855833547842999133746368071883973974586152246353486477908571831697597867871351291159423911215393230912055505755021191144644279267772705437101223681003446712829692486834197388954303128291465651074009740376334348204339664263837541152565336722786448353033414361098349807370265985433664853968857824949287040062626022732823416548270702113593140668901451061464828111253871626772985617724069949839709976346920567453950724023190598649063763232753817550445146072226797628642897119530779162698933067183812897305586564507712857437746885886456309314853227637244304768244446361895434430178157988696017287232051093588703117203444564679502876318623961288734695003778977007463193635110633149311273854173811951139489362805169206871749547227326665030041152815803975747381826113887801389055052485773455200595589736059476224605242980859846940678369116173646272126209810618317002910804460988499427656390603073230270170947265679821593014849793476105402340127870542875020711801644010298163303044801826110862356608559483378062069564663972815115928324071247275284614487817778320647090207685304437745138466476862048400828039904876451288413283494148503548413206247944685973665436471283835426865057336581871306109033850475090289218186311036044962956719392377941147572154159254032382928167799356149834764583573972240152044275676129124992682189410490180778882291578024002468606774417248472390288734858463065660636853299646010337285788091836692049761185720205468585727209100636165065481008417346338001502877452940595965483871835167860725877077680992808573806448516015569566869695841503727034015370593644192654275175868970257717851755280737009524027061475800553414139502006351165498794007113973713055336564177759134368553972048783300102107949264316736618977513895701803324765319411616864998979129875931153933664036810433649481066614866577747402284326801604393277111211845446806540032498249951272765713663647890492673616069776548929657115610226903718675865276212114111513475804978577885254083542330675724173952253064164218023258015304909161237799880432957969812661425074563852078538470755000660955132988611990561950660199318498778001543352132505741208203787379318706068335941197059472519790660747873106351369468946422148991410554240292471765400849580642256475887315965626403860157011785290210302482094285072129159522939087738828369503087307586424651621915691442716433286259005893629720089753681288264486709727642354114516566290363471962177697789719975110488459758820586771202025759841724464943297525066241473562277226892222904226367443029273806538560443235441778785181526929662178019018007505205863419909075749221550512490589461022146371945821493018457829424815951580735709680712991501614767540922473094578415301563551251598401628760623233287497488479883847681848336246998611632183899913524317322945350089575173529041070266155395872373501335720148643879684392092154305508119427246831192954992881913531482063922107978384263325137249299247031898536210654484650776613036309227519354779978252462781675448405563123582101016221850837027546670516756459052621186405447345907381537517879695551118395717280020368657895428597095755864873798975910938774503618757129833148409038673339050660744669455369412947525192849863254872576539541907998868495521754632431309940472652466388872643166967765193421338730631191574115471031724252256369339231157355314619756181542728536174553881462764683473534078592648604393317025583257534262766561431883886938012353441408400655494630017318975621301309439242373146214372574982083644596343299320066600541029058264778157601783805698678296442453286592183821597890506752531293536978327483523945990890440077642290775660259333667667232879868599141527467752545963312151579249835707032046166011915994958724574108833908533624112580483167714462299278650152742339428171239868971778308916831776470620614550208346952677988458831798502302229322231674018189603511150416666418952638544302545098994038594095047557423576469735919295107879974090714144924442392336757095278953902808092546260316038996379165453215273625773060693470142859740019863754040416914113274759270136960661366893595018595693025395329136824253959653878655321608497692414507804585347699735675909675160917933745056347082077627824235743191854221429771941217654085609094061631613228643713394281060309962064979878864896286807925211043364704514967094979850464998922200121749919615874464708939573822889489442048155782090473274000454491159086958469695920556699496748837167022672765990608258247113608362166655145261999312556223672520291160697828771219856883013079689346319670326419192118485797805971969716211608234817588779889592486286246885678902307576502591826831176538845395404384745370706900677302510243469058691647001132027770589669800755779984272023463490535727182870932725911463452015302734651225755206315956950852960438432945303183334121108012707191197946690504594667457316837411178827874887236710906990649605052074855766110641748550148821377598015349237952341312226979392790547282081034455512428490753366472578307882687522212777481122016725124088729339405428115417761526145911212659319321088706056768131765845301876012727347761552601517850391635966398988517145979955863536588421668391555794024609845812902698480845280042125088230122420557010290083431176281286571098488209755957890675661325930825226033922475050452682297649554757894853978890054292130424039315850396659323277700874580056661973991382173152071445207969517667706121445905750106847712792406505021194607442580999530512507663872651887873045142368899951860523322213988066531484685910422199859194632744218619950838562934694284331410441959283103140519438319969539573427411709628026835140623065089907395349891769868180321871444063523750629171615961103292676882361882415670529870019093674706059623877423723142414942097956471046137392954845146406650554102504731133557071893114099635354106680194537777647568594660737746128907092744509942544892847269706888338314566903621967323324706988769765272037470116638951132425567752302433118652031853713056220950767103336867010907417087333943076007925323459192523313620152683536055741582646656880129038324682218144226372353836158583655197918415496118935537759137734831874109567111929461490935938854986674913408048651155527122802130134476980281958721649413966000586887166636273163056482985256641271890579454767496921247112039113423062999946652935958852600119905287927459277855487074592479687380377506180411938577880350983606393485993829461794625996360486889672543021309826766857686624178842232071961838692682223451532490303847965073794950374024515225774544411928251147999332677870985939413329612524948398151673551121672332953073308173211262158231548014147723310398312732456418106114962178580265803888429860850353902831243377823428968213822712285711862328934872952470945139940059081728866389875187485247140124904604517904054526200472803464914229629337793273214311981760565367094382011817429006299244480281255698130940899854451059550245362098058875898783502563454473562544147130790630572548818764337216941881602774726809471838828189913231588301505210453303023613327551020557827048962604784259620951994524364922638959156283090293975056595654563306978364423303730724516624187802759441020946774127929267843859940600122446118920003151998592981922993988991667749197942440838066168464871202466272569556558191859552351935830175309886592498310105197742507392563161456176836274934356253291837340231572693302639494236918262166973402041862152006862318636023697752097484638422416498516988760079626721068573712421385793126585946394669588149013570891800341578543534062636072019510281033757044306151553086734017615987926337451874646151827711338304770453789004652458530360608327207273036961664920901050503168194215734601142531424556507063635369323366458696871506680740411325758024147336169347159336949621009719600679206856198940429503357199949365868446402320556529052056703328765121418096575840648641060233770434679774385550459295457923434385725147454100845787754990039850077805073011961750378417330779283633392567152949456552626857415965735325205866145088986853609653192839797911431393260660227315819191901746903654301607965369763141346684160498018623760561217074952905437959404191745104905753079051602511648555800487419746936871398605402735289587524130668815222970561587493493601963759796080669892453429876009092187616239609184341809665992654640905131528572718885925609127840457597279996266246081612257505279876826435787389300083139952531515902204214761515440102051949854116293085321203485437312631564360234876829787326611588424683937930816302586663524471780297398268280553004993291417578931051364447211627579665202343176103195352182610624028895581830271405761262147510556562088016947580789543891666198694448035934436922401514088078972768883549697494723588923799244048833571171119354674685555310342859915962471204890070223865100166129264102370327600317911744615649378987564538423747808029359272728323241915814566084117076616693024280753259610399351149912894090671793727468029164505067853395449249117249253494454850087165897864015724495903050049015465385985395793342440809222020772120034351778759190790905343409031775398364065308377478412470414601577287307157870399579629036439541261290681087288821375551763974958670039588299343583025657298470391849555461585642364891614056539987135509084987274936820204208877931861708222938719305615356246915594796914027717467532923241741894435047757974667613912490501114244809402239191271864659614890998055130833915340627257498305242360097144384856147940057538001926095280292605431282350616267145590594689305249197283712247584491959474729119742841858023738517037514792511831040088348491964181998585899764337404409440386973448144525717128169457949478179662422442272592475615114280156032841606286209987128364426007509544525143874280914829462119624623870281156002249152191072746686662644754449579829331545894288346110227596126000355814920720675765429903612630316181156678943168604508507439204057572123540194568675354169092271669758917833052683475129732438100404961021308955515865302023577889542931217992658447043897896261404852735483511423538965501662885577197611108821975467220598246006301660775561077872428096158740433009885698620772906971888564349788399259671029965891011356421778904097897802939594800506253489341639809976845575813336387292631016000458462805826519192246316961159436645274900971997301145072068581511424589719541236527311777309768887454886718375521259927542301159690003687098146423133049232887266929254620324179480813896555190831668253037010162520020973697214360953950121463308844180338443823044316419674175833444589124148200711200566020705839280737449052610042006298047293577736488062382703968855584951133962644667403170127032299870225082032650599166851808378636700795357985829519852476744327214147463463389231819884080407785126878737968174218479591168842170299779714695791342600920537744300761158416312110836897558918872469494669321825268872792811192848066112258948380578169367578521060663476316188238323299970107355418719779828054028951140820885111405129277497683492608927181768073750220817588967873185001451218203513340396449336657961694314929043795867716238682979446530764781527941448643529534432587691609746997124399521371609258906607304693437894233126823329318042081584217072606671372985072375066764641205706156965625402405972472177035660696343133461860817634521101724192169434061226271920847111294160237850370051327759857397357429175733477005376020921389193327629541737186644438886387062177830907107462318189625119488627545229762097979590378700415939649648140045404226347986791592884432048206631666433128695055337472926608136125963214629203546327773886775272606486260946237839009388684298817065758099166543249466040098587707113995236195771492286094565320968713228303019878831431487907340192634416753398222610779052634575086240127048199938194089904664951123205898184313648984937148000487235195745946216823381695433775602601172019869463500431654210788207190392452399725415881475469432623933908775667860361937189025164644735067456484614537050177142217937598304429434258678340103114731603976980998268245421240525410830548185965557103978011191861850799102387014175272210379396132591717929940715417286066029664435323457012694846612946417177363536606557833738227875155338942570243875853103835640273128572236716872002929595569304031651498966538399063071619629535728512885825117760509287819240932954619050143474328002353387448004711748669526772789582284972255330930463915715061643765504678835566893456044878976616296770112212646332510393290110286989643827832129586809562563443554976643361255656461663336562602285773265190451061943667958183603098194961031153493855871812793101079122141342851863441583615925319041010457860059496753449605481322090373159277527166224412943373407610473789378734352098963503949353346724766717756844262540377714717817849348252476543462351230990002878131110961446036549173938409185196287694163690745526174493587382298464103533068357498711065479513740471976100775145460676527925869069234208598006100244581613206197016435402089693964864514024444966771427290608091600920708194640679780541669481703755302131523667547662522224826035310836238019818671811737978370452504669703291229705660552139042290880759272220284868529740351087910481229946671942429400295050775368068428100903978428785372702400949783260203290884247104149484495451288613516828739334001719192813914572907883037809156701356223585653213055566650647649769964908257119729886321924830269082826516172987659054240373530563663128278180079001759525120780411801294536792345351383169429751073123300663674722624875807706643829069043249999260038833695962230847280339619925193115052704327611924429719769934451297161600562169439048571784146585108596294929160962221254701145132551382352027686181927981152046960913487247748588134426484101050675199000720263574132344856635491363500677991587063971562465814112655344534052485815090921792411924960254764449600292457699759071741928017361199652867151118100661388273990767299033638674252883630312428202041272691345387416426575112928958844770840870291455910650950124017412685822684379602446806937646715108229075339849002708636809678404660931862943358712714396389568387380612672097074521209710383157721215037957264479722965777197966800509750411493156876707057212241256335673929886081470634450700609365865449123039646023936553242329473536298360136622855937885025887924651026288878500074231233523535259224344711167349412643723829528216020178026063341325887975588115409179445113781749752195400440216638020283169877203502367285757838089924126929197529356058186971022795853811576949332173011020851481601869148731693058677409142375393308580948850308351542218786657414635820559659612686016890817212102491706023402912200829218361927945104559064643550016238351576022037883491361738744397782606543242999501032794451371059988026696720168762218436929615778559274508733662508292581155296157559548070624210018041087587191145926069948404038410537394897683810209357800312257811752051944868399582079382154169616901527222952307549954220223567537833077197146926479259461730880565438408256246777867054240955588747461186379497776034366856173947162410656133578657573750903780465890497358815171436368670834687173831586605138575505019508099131087098446677401030440393072589788388840043791833936866653745740872551381418473896752416681291760909679105953533640200388500069730177649293419664971079270146887212825778330116309735217193231217990214065693671029407483172402576068672757201926418387289273422481306465355284958696422225122190660330227363476914813640768570720285311385130527337105232872022634457572011523124278094242118450185300364990829165624238936932153363066757710776132272940405640822232995193074409841345468341631828825429879218581235724774932860263526955326382077153390273278015704155724480931147925621494897201748907562405391342441826610271638673458280216815041497878413500319941878090785565930367296413982929786225066635054158333542747508099681261301729129716172627167380537734580735478408284664283537094705017808509646318369445475638195519995763592517276879918679254700758561918115128939156121128161098462930433615640574842169067622750787037826251192362154191866662817927782766326786611606591147396992782038565273783649486472416075878575100725122360706911772621914049252534156457329244520820700071384833986736199477681378084255941538177404443265474952032333324067680444517166460205443962892246213097874092202549932734482972419385857846413383646470398941053334281764491426916164169200186255157306261221315288728295716016230428152221894343930822969757354655621251009793347922445147762819460652841389332899611542141186183034716480422229593365653574033522463412279622934579539933168088494614932139615495404732684583984802961225614335915975912453089896633993318369710333767355463122159900077250583809443633125359488323538061626183184273991231501585857618714146467446307803447403235054542913293247581044159156493846914592297617503701491073798898444345107770158737698728537358810807442191842721077318571454969711607511051834453912959773039319604309336281711138992160645436535973900569639261468971444982778805607173604612976795397097185950798079007975021389586906718105556260297631932699727680507033723446229082757018666788494275798772295184516809150574627816971759351177907956353247642530111964942901575934565461169998124762808477197701444466273307212807059965557271541097978237535193322069724313789777829533868662758725685872659589929443165750610834160494077426443265319358627461343174621109659843583132729540212746273755794832332766047310690501938944009523745133782030269758147050782022364256630407496960555073241987822338272993397620929509210392407729577687178045652306938676578650770490210687217003802928634086480179644602318157349589107635540944199124764575891300608003807925535669711157192103561953059852499032365940324219614387683007761492863932582391438200714538271079328857952198650977985685025073510022699666985075246654447163342434692921079282857658588385300522580996763327745614713118362354912085261555485487300900677503330395647553366157613487053004012135655258133747542681648080754844888137431615389260632486594245224527604779805234462930809337102529945123186526814425685617860159304949977031883968143464617627987025502737146003252603180185789637465174924974292558678241993943330476033327130105170232016353157638200231435356491805272737645474634646631997343951304649839917284720933230827044392234046960434808270217882765398363489883700400356107477311674259449714980116003580834394055136226710279046516620339686696430885744725734392133076544164354371360979563365743852236302987209934180251134073368655594919502608282214894365865244703310138081299014304302581572119688169027610957501939631009115946728087857981556755423058249414203486200340955437214367459540699717418123272976964221166663940827388378781330185094846133721139779803176542793487573061604431120518873616083258678231210752413101525501322160021769494201189627200056368176551716642692890683691503830385212646215182756726517641346739144913743339417149436355164569234506264076514808922797100295190731739522526534577176722019170249744409482930268955500806780010460382137084001292461657514833058878829429939212277196741865498064959384530123932865458123228129061008217370112669112965909655403624005553454944034904542140354694674478246811637274632431462881575540261290360060505498521836998777268217317402040238878541766671203071570104971093431860535630320007800447497283822341628127791263193840681847756942617411768118789747541949347623790556854183554701990857799565170074571377084829999995035499235592334760330995210375491114093614230467282416149860865676612437020937579586444293448357378929143091877651395776403167185229480025508803287148497032515021611793237855298394089629115867595253511403327694558320564796904113317784421742859750351427926262391281101625257262618770717477170117565342707056112216291738251255755374869760524463568850186876320394100261065401986559475184359650486975439823702933815531971353510625576531501717321544970206821016286566441071041468760377379430777722926882566129763428592490654024428204982919364410809034740596787123531426082429718846383638433339112889219875617929543802569546878911875704827650433582938708030080994908573344722018841085358760617720629686408212667815735070614492000773170316720632087187778992154466249166987893074898688896759516047977954717927011884002302505574009540155202371170133272349010459748838132404564960453691350212695254996457351491244403219697413273654261787210643563211763638950637911804646417272294571636900525651889962027781779577787299676152843529658530772666530722547254160413048942288875224632066787177726050178810518304534762795588743891095380798987158202927040275122419723495163398765693944616518745396353415008991239555957722504418207252818680615733359308846311460684298034697320236933474988758915114933570966724736155291323608855805477682379216297461562470073588280738664408062163687279775079036611229951512230068068102994271320962144873500671275626303919805319531464507412087760865082302990436128963513635048945220375525499609723830907078885334282767821889297817755622344753114622535222202636076298457208415551480843006640572773962327258531113359101782193897974283317736755921517696807906718463344178978416105823717842825160896283293571812886533685148347262177630154964151899369305045844082029440841576003038916971982539987221274268601813489309420920635469540612224240189178929204207677129633351280735420413965092722186102703743070947907475666504575985116763433892958642280258070990811948588324196257950028944125165734480710294598728294596574045943380484600132382254273830541243639739117003167079482915926097472566340914010108480857273151359962931854045914958135076194230928537720879473115627606337694596893992057014321411852060669425364547899389450116958164573278444725268369471016233052023187939966539987547758409731658817921232087670914619902189793590847802641933664621857284807715640015814397179237631691348695495607522691071254661857631433523792925355153750374635342888530455750995622889410366771246186276888341062068397218146538426822283573044680445767215204293973150329996789325709738579147224505153806838563482427702469464409125784127465848589217744119032195737607339770673928140168327604917325959905646694838024729215650893572248903120330998349805847891970635622877537998797321042268013113534304014895129019460042014677382014190733877447008255045933842824728450742625839927686644588862094296148290227689995553839799131882076435227315256568278499716951696947860645772470113546721585278903729070381720927236999651224596516586462250319631004883611781837109243296522248642355389001883600090656540664201874597802604863164058105880470679461004015860529942263008156630102978440819276842968983059986620046780600370698414393686608052005734269254057405808243025202322264241214291707925487993666983982428377675875893368143406582703256591477880819984221789783903125453729404189928859590382495686548316205254327954508237858395412922309448333088109886507883009631092445763238038313067405197312211044045880682100302842096253869300606188740675969403136175182872018727803759032114546374726453894221541844553402367221242281035508096226060280852344874354033917338168552741010255207405619019272936856172458173127719703179602253526936573862096401984339415891477732935689975523182445287373842536318033652419334522527490689016133035965586134025830246633024976109738789976583345941352997661694435057452732884052785003422928191515218181847681441571061843802189569508974226565554118631042657555317870442651534684247459731635128600587730935958801388630767687367028775401798992783619190820055029067490937288200574724784867541544161809628753424590665316039788919109240904059020550890633760426318026370658287600253609552479611305735598418734126225591100870290459058397069331053995141485349926777304577530080135988487724490714878197024478065662774878846819560774410444981582991623192553436854866389229363797462662379204508613938763809525041369177990180570975404385089351425457633360770384502346495370985850053023857718916739640899294596213511678783059621416552713008937014081415376658782967255008336437164465089259814134564607258130287386335459636238874240690545900173705944918667580730104470730687324865192565401781792327786274832369904919948411668625792835304707978160771497012136322128123998757489808816053047080636709853517090829512028104231221004153767069329024976166044427952364337946083014137215662652390507548161163671727868285695688447028908760907112613427064182096013248936921206377501615846866892272612740894701661032393050583918685251154150956244507616164211664764002044403386486342445976431448811683459710101213536380909721411703667540187615201132816690835826900774098885522819915540625904318206063272893778017190501204049391779786377497866344237282940966688472864477169997113340702626209501928466693930527300956995980225605125623294255617659774581603106850015216762557186297609926592997191266830701509423008272810138778563707993762032509065876562625346603822282043619115163540748938194551328992209490177316758500098076466475118037049053665512059409465914670038148803075906004563141253540396209066806363846887977764669361015740411789342902637172249548449340820149506421412617922954437381914658849689346503600947355336367875577608767562371951949510102387483965069754842606029431537048499449646050099000148318323934782864867031181683168169427972039372213262466547292224261589914589062151902245406672631088691169123585272622559094743663332401360936691872618038795201994929682683259701113426572856801477568604134981439354055708367377914682741136595033683074854404018165861426324697364298181109617780699812236192689641052026562249796996050808199444238735835054853776138019777346461526933292885770242542170089809704581302408522731185569832943082134038614138279232148109852728211344557680137579901966347978494959865011188049417300616973176094855641728268140963155503544378036776200498248752922537399664684519551337091439012432494030719809969636071432389413348692012717771352673050468321304941059268265238461267416486509626861281494314671848230084278791180327393975890992712155708882442076418343182067343359001785943902544769777713275809935202014909776248907269837477132769936217445819738309052067510582748533179310472415261592109166350084786684112648196646489512118541674161336052854790653284910887124088455336420715262847072625216432114472787900435734446660164230701858010148326997745036439848619522647827942971741048481522474784905574482005538864237875666415674363843209916632434185592154940853566586735553848040816037719129830906689157570615333229379937410861822481456241196623857561428326800269632483961549702181866958163661185154586074387287577059939113769434637844989084094445225647036188380662990348924788548943472383132988482364230924534003517570915264615369520009026177178530818103028428719578957311280912479293186805236124324504374389016161204008742058806309793725317280045586806486305193109758220142372049372407721352622476425145790009315470672767895953450572654460474380473390194568682320034633879211536189636697574417810493749102320803713415168154853577474920142799305008832853045639317299733210060781393223339841022349799862068342197726371166348567627520920704693741856409256483031946049481182595689335252004743717255383096030029448316504406479478590180092814142906705882492598116319369600108418741443719169301886518852703098413801456117100328998604403463087091480076872163818782178474814129488962321182983099757362575834748493685863100052107387565374173296420397057757028762890824533938156900324743996440452179716147917085895713177348839897382117507881449121632470808357343557677327954335993652768949774466243912706301711180017096330979589822157962088962730138478075583112925856013629545409786017912278262148177419602428999385116680150441610056086684238187968413271729142912232939282091816278249902999363108756298806721571142387393035867276209636143493110050127122424916484564794211024325232297969316675720381406240197233469570364719979946329939163851899041607598098167680190079238415035487341188013618174290626040610910212438924050185183293112226164078668694395056045297637250793736295649670270236919011400269632421638764384113826270851397112537540206846396478887924337550762504017534415795186252492227420978501547790091198429541612563751156069462141898126080257583129781111395245988879462864023267824137560416818978854789732830145975854508140420084341520828550463517477313305870095682206151744163870453359065648047771635446849922546925921637859001384807465291743700231094672118819020726310178862620000711732857604590491598086291435545850438709856275555318720961606124437692847159812571040720790694292961045093288632572784512585059540550733974681521155987443831714114450707879409448760259544744162787452795836956298227215240830291379947244571803600909062427066561081768563419382354830084421905628144807597739477417095375631019373434213460550940995044079235625520788392554390643431519325073601634034300456502321598118852780470424121185488915687414526477635217422163725670177371373647083480750598471630513376168791362815911446846631981349015768121363570821592053402058031942336474460211425277340619652959283194227379032755261511744425180317712714000261363415761625432478938063700107825069415546165038190573208432383492535473612998630019462307513413487295373922330906073297509514771982064284051480933790421382748644209455240152438543904967913104251329015935896902604391645387988640587283928088808939829627899552149384732755725307086349590503884407080061103400510895830076366155488029237201077714731677971485422653408244786737327605099776226998858335664389967848244260348436315472946923297446186085410137927215158227057470879106297523101529222071065563705766113318065786807244094541707759225713736603037469907291596550302020495698107382417673325421624207934881498632330961833357350449119928396116782723850676713511508216351000257792758523295173463957207523024797765540939683836286279719434477353311085954845306674362136859629148645085918499281079245134957758108577289645507668734489722172249300070376373705264756308877119135755615008507737752306740283687551676054984570836734231982134601772388812455645741986592946350039952101016684121716903832217587006074213768851073744545223084991284588619652868220146813447553608834890070197221447023135189997864622873432337262826286797707903209833399937919553392300687632669324786499933519140221346164940035221957937626390844409766488161184575552519211977734557598806503210000244790542207340664808965111089474396017603164273070620201448152888484296944750156728008833677221973320044149960177831059461049342864960933797274444278014736232890477248036714425688074336580202694748688655068262218393985715955927853194322228323305272841173352275196616458613841802135222487547265016906162304261537522456929424770323732294632125030150419134462325327898049391588105160904128507888245314010359234659706616083764243459264646477158732797139611476405203690746199773226707395555528663025825096739423186662594356814953884119423129192621189691258780339444534668442961838006602449291130713771989883320000116137044153543588338066878898599977529470557727358622970451934750020920139767184688525334178218613034366871815708543807743652538631955742779111953057867787026557901414669880614483289363569494857044833813922363876467688317673716484621495737071335959902588634343475491675463964797665868271828946421177427670165085040395227253608472408164536639771608454624250409533110810739788582500959207268891267180318812122011919311687066587711748210521719614198525294133138940530008284303079738487859827612518525680087461853321574452458765008958789802961037935697339474645709812390436872915871220069720584558397195260991232265177025793547848269796577887025407562352623801218037711726435421721921942234241496980515937553705215303826021080392682074946724967721808671048141704914337953556606216062061706412010483351264985673457992377553281105899598776471288454133914650423994713963579278981642123484529955161621738542973287252115179359747371278418357968340862984123872275895562751872243782734553388769847390283746895774184880763607749616322264587900942501143768389806364339760134728692527071559545253192974841538658861067507222253719423554762270732608186182668903345912695963827681089667152420181999023799638530328655594188114932659250194368015917327155314027669033343066671759495548189762489353877982517813305993025423094541846356496114877396254399630554316523611013636697146595475999452944839852190958891287627261514795547272106713329830722045313789010329273951385396888726546512952811690894247427208766768773894094531140646812958199835874185936487267955090587286126710419274975149343957624809575268228623689573406495960233270679645837354181618043646251755538911766229020751996075586318466246541146774175166110546766039937150411559974358453711564821968076560717918682423274937472829859325846028992125936197009978668435637793208389174422627696348530393857566104077551085949966495470371475053631611449626585288961888028860007633852339355137609206849066111485651268346832838659392869044373362462214034745050142728385355933820650413485779573682746716395485271025479266921616817478929264204201405536821684629643387095137830934995796372657360831627683219699540815635807708883550497507933470421284053665174181263872035219700685056635526921901617265550065065021135357652908281431104204523228014658955896708194502856531746153199309277961826989781953372031366798806406759378741386082361322870728546882997168995422787710605426966994067117913040441368840915873618143589559329813881678350655904853436196946969541897966309359265247891745117391744528072347342604610339678968773404678503830460828199380896372811599727470733758672133720517094222011891518972283819158997659065983671807416304212489392645026414133463410272962611846079215745335370433212888429612973057726658164519833514879336767424298783352358908557568044316884797778967692190908863390541203428605179740155285094424732530624211100826631928289252198260102538223216564997061207961431543817028635103449980967557543175303505000800376151386262773883831337980356750605935714523416047282252422188721223510718033336474283321951908983807907669861074507599419404560546845443782707375221294723612755778979870264685339751699016213556083776109402737248713563541272860179803560934606481242003055256017741486687600340778978031742743453990761083526838334468519455769409683891021278547344142319394646746346127794728714099312972732705447776356059339328673401679045909316661870017459700725815494547076800632547941342122184871744665193730793642875772034096682522966732769353947977539386636932737942238100619582625815617324595014762406672568916045696590531075383023607750069961477296717090887356312900472794017756733239960661488878559300066687342466389222737896222901140096506456266042021370821189451844620025266317201465889668950248014839549284054494772480852982795349578877666636077835471063003413417254053269448745834814412842993296274074617717931340180727483350784188192572655719445608919132710821224024326404489357044629670270202459254000520163751791120883878184904613650505601387237188254651940379840231149519987977971236129582874064722436183247436380327867281504521246362832547340502815261945350840409348524786213820899279203201536517652110179307091905895403908763756533954839200006634033727797791676197103193780912070068916510426776905476982996354749250207459809398544037494299081915663085848200751180436533814836741664342426474033872042047824078517432099418664972789391518714070846404461509119639211356477189476759308461278718430666651545571612742458002289207596511515125499853104142954827179966434387896036329875620177662577430649565345829503731762813015444634443148952768815782476152826626716055848968618650664030761955944875907092838628830418364595341694199264128333804429893521328959770895744016321242854445384037583394936366489686511649407327134607166448932400739571756011335198910112970247302538529700816168968351622783764902084552850476794392007599450351382481123449927442525812955726901906743245517304325355921097240233672874615091502002414337216002171533188665529513381791448137052403226030179807136795381931538784117412012878668451783418735225804870630293745312795046112514997239019927445300585767012769292176344544034577517899173938972806407296057759233990624373808579193034279342721131391819017821742719629605707235381108511036448666733207684134994287834804336854490047347431849259442120337230272425543106520920302685962574744671665508188700281665480961243624864012888117418174114598997195661568855439906143874229984535116799787751724096227145710596372617186068975459417106605147815584055611083943463837032125068483804454451850965241907069914731478939463008018152976882667224162176929338063138576788669284677086178205543893411462750676278605357261989580162128450688382904758337919551811474398539321055396686142622955864647375714150602492614482305410711683340983946432100217645675690414084636910044560103814931364628854170082116125945664953053428042391131513155281336670297668070546774037213728442896236220129665421225583178686164369633989554469291599301616348227276127273019905593300523594944683074054397761750704297789080214209978979520507211077503938241093196965210879795246540923735312162386685669539667100581890889024821332925161179765870391414177065947074847845142329592214172440131467181183784105582647567301358181983890951928281590930167704898873649129311767247029091865214928100608668143388132949797225598501132634657991989438044418971230567909828721823610896305351284230801519712949999799997140850762507778041785836792750972983555040253680188195749832122087258827842326261794494058708878719324627867897519285743151597574033773083166496208110372408078583483170024100979091886777496062245253882459112185491477951023824851153549272948395162207116561485578737864466643439642947080437755920698637181597702733103719716539592748617927451347222267738969414380696752642236741163148186470414148032602700400045884469857430412877369463043738486313756749585051506625556067193971655112076502618929172462130874577252332308479393038767477125696628484776314244865066957151322832463603219124760757906161699536741797682160405628805507645348346567596198305642956574713265491073255382533650989073474364498390410208483901745373028849221407230344566599765001667593899617955301073019669924624689971189369712723652180464627813533989602955087646971465432778391711204451307009745799636142817994034324229462434292033271170358261213512759635392238799351138034255780089542460560014520537218824541549980559535548983556776112998125023963504927910883702054105763202582739694448621628673973926387818227262817694070533267384967580684240846751242524681596287710945139966678351897631534949894567423219009531348777944366969021929511329214343554471894620143734521772500045264230555688996576577755065903565607241046655263072266673572313329112496316305262745146170571558275499043132259623767660450970532222399408576342114479759221198535390429214373576850440582631508984455689455346767767305108166925501258559524449424968859065272560228417274442396306149574071317667477961578533556672365950854864697540663383463969474198173315106719765944302760600386502665130792081605173604356691376905528152231215690324966707878400240342997238943865556114132883007274885505924982476327253025658232616398176101085148962381502424158308531648248220269179994581174935108044211138424269761374039099605096773975011906823380840557588527026457410702510114057183016855106183540742211385676787267867454588108093619963219487749777747415649200717164854478270194687329532597870194054714758009589143675532030439433172760796470497706405071664906054855128612134673842037533447684344225161813298140529586909562467504296168981015478871624281753873127700897856427906167656817372622856575979513113861986516770359025510048591646678491852296175407856437162311805840048291403591826672450372495193962415631912554027976982032398124589423348434378790125711510067941964594870080290192483579596767492504582736974399623892860780444356442028759645184036949639406403566115594978812500004010193577025626347496005175596966876557730884167320309325454020502284795751839152770525441564073364786319062970045702857801130345175602168700618961323918508430638502730826822583079215179133739717644662805002212713558694980959411100209655137263912766190003653236594714362925542114227953682142725534643878802686662467066350568030548759394202717609341379509611345706618815272771571345277131431441127035931374991988814531922083801817038382609093062399533090476836196078577817560727026366380556157277453600809529438162886981563592762396308113100415368399857579061908190404612539437181255848422040164663839271996324013672784046678730072266112227097149060773842602869883622392000635694437049000431893260186783702276235769137124629389485820411325461897837011815260621857909643814378953108845782248353806879894592217621091755753268192165477207254024569098357746078053302400228578303525396922790809504675230055450123699109644842338662464417064163948900330520340213184903777331501970738976379947355382164707578804546997809399740884099072741960552356206191824513463768825337107630580562083182789847712057472505623545084351582852224152530215616780145769747954299514562380642720051576629293892394560251591593104249946959855708520105639972403622401721326889453680075337063794636551992548136008653636511563839239953856480033738939372216117487349608034799176917840149794970875224406355365487308646808268739009808199787632800723768781012041631627207249414321381928020753245625076039107122422965650231986899538885837475504017689155206022706758125778737299928891714903281063457911636830615776781740288877367775099426281854034831216146034382614591104314133294001280078731877635086886349325791504504264826427426849336661316907986542806374848654360612657483007223482286594131095056448406466460439065577538192495348579578867694005877496427166582628578456161221453681638040127537712195556392250841876371601827371279350763018941641857353849124698142219342720153018738227737722390082194361922997467344607556795451989242316401379411672194642573814071240612278380798215747516632875821400744820445802125944447513325521914736165918167866418310537079553465833669874619446569355927086160609484971436463736405601331888367755367243048853320798249145161815664819090603131240237488857477205205333639909577912048566776270467492237331463636375324706945842725375282268880858652808783209165620992048964847570342104314230023753691862674700346928029737684869634712030121494027365735659455200280432563142929262558788731712523329750683389676076248377938182456103414310098886146970415494349530470352530627564801504000550357261216462979362477741167368567578615186935536855015760171471191609850196039647762025694462426448058802258990326431880507702055158793912554002302408683122514023295421010103904063591649658589402626008067751039786119718385373997710859665664762011827406026434347902545228508852431297035981777512806943175302509944323392770236048574066618906052578563445113203519227743305194375124596629914067407381176031539089640607462165224756835103721832622813042809175862052727173052860571054465937825467406348166080391692608068018095214663955145399156908773577318737338178948764903757474039457477829388886133548408313053484309999759074284280894928272938566058576898557138794547887946916762333653515477875320536013824201603677483678942286077034769733803388487162006700630534070709685703378124298505438628640201166669502673070889625689151591371806901871756870687463074351236715583590440618163099389536729242040306351764228519349034299354390568411865801747741642282834951147604118606201296448699716966629344845171447925202766537197677717914272105565233299650726207649532906950720067660329838705830422700683882137506779710750201149832437619754540554696485249264635883001596526294114952181600944206239581347404009041016231453713865956175303001246769328692418610622235581555905728884927213568651621618620125652697427925822597650128357790323051129807111305656851582859920401689759646296047845618678064430188338551337020027223818306557203763292079211316909269416496448539391241358650196109822505604122517935388395488221152984513195169644786211829067716187024526507514636472147452177026794580497499925845352543346368926084990611959889016008327483783167349245022001763450632258499013745937768576722865455231662931374291595188380135158211253025758165945932205748278583376560925693910659413945183041619651116317790357114968061972404629925050385275563353924180898819469901631140955216668312575889011115321400836921953464479838314554759942013833395992839689631191222477663693144685023247638333902786724552226924632615949554295701487190168672411790820454979354765096626652476466231050012391626046098279687234747854539021459773220359038333003493790485574760278739761887276117112774120368422689363325619622348298132426778336706096087179463329465813533283542080455034111273803232544692018375968660145605709112590851498704834712744436324131802183493118777187274952616807696206971373574166603601356653153579270339497347226179198447698418249272956602930554040202391662057979026057013862842121147312023037603835610059769120238856552780232364939484036533853193680845916766791119240744111213707156747563392407293451635359662038654924939133006468481791345043386027421419959415230744981317521511275508558195684086046095665866488015680908764130367176833333351450774002497298803353177117939525577804738185285247325368925377968032660854717771361863924447994465647619789661237917203717260409593056329764996480515515755109170215739734472283206548916489144056731320832593831219365706383949382809895641151399732129788611844217210247705415979607490166682951547957568982383371631174452316470836569004187156101191268626263796979559276427111279860568816158065463162143107490603881107983078517968612049479121869499793551921295057167419632977728052555612340475360174636267126978205959016286501045794220721021959801456996597521521175271657377677161064063190491838492110246357484681435398269124055519591488469301322118842137551858132741018577349093268454703273076632003016120316009035807539300566322560490078765501352891539072956367210329334892873841724295503237877428442894344454579037747951400493095893906547250582086461371383585473920261393407738145138444245012010088743252872915637530528895608455061974572037714736340323797731973105096419619161046528168571204168528205126589320990406371091027892298457008920594453367077762909396234104928993715756819550712696796745302623304617864838663128328812280493920555310065152306186698112576809642442220233102320525096222337659062748248014957002328430533694819803590328059627330050498483674838286780885775051917537203871979081239262273060384937656200898356349517518026878061091675207739898222684788825820811955705692583092214287458747447824472448151600428324114941088724206328533191173011480658620176028359994539766916326949501235430109742006303101371116444390615457363461864358317046846487963402929379409179548907488419247191580434195160763990477722207169169727156015618988592477098295431476575452712888035607059788263117425068601078602871766556033419707908628018869779447536362547854373382243755984158892824414585799575091695191762574010386187331856811239198868448798152552806628544443844588690627198159501502431662307130599414229613856630605370988426920353898576939072274974000954047287837606987116139077709342847060121326708431718474437863808783853092073721855766993150007751964575581842388346027942090776928688205688645219608799153952024582496485110514275592136440143505935525273615212572652070012822555730983219203197808194535354483678821841053400046853765369684971078387026097681993904203028428980587167872759243438002383788598200341387503006925890349651559238566775732688501614063358085749838857786860407708320194357547702293411216613490911536778532069285600824838577569956051982002634463317329013242861393404253348137659414277871472277563117967890913143140732462426593544840471535352653742275124510373047933233304836704016845386947911638321058291969211168354862068346772346614323417277483326200281034827625309220352002986410715204996834699975580184781610851219232472616217769452215100409056348977542320215588357142156064482319089826019610098736314774663086839959507333976999848676379240706792224130074073599843725163666540543989629988059626813034423132233842099458871255232073900903172311655771981456687133123778895211905532922536799929119111977837511768747260386286301691210945397955043386600304123069373939069033629501441555992500935088733895563699630729840660229031831205911228412492863157778200450065733148848805331729813667635406882987932487067301698337251961678081223250519669319758986150594016493288646646809267812563488483673646719833062239200630853326327076010155554612185285281751018650213265766998524916375278981090963271024182566140113341858781131187249683027407336721538180220372075862856181923239292666324676843073485882134579420495403116112513334498643421679169866140724006808829534801680355985431137540694367141584049246142574779770882012088304853350022457392030432028633542352638822328552305989050990687630277039891583694679215365225508864219114766642536082711212411562765315001026142248068658251074164445883885655850701912989420517930677006267045528719717850772571391430312297117939251439191451206266278198583741139585909431735128001648765246253061420045749451651241230214132953126961165559149038571437607347083585820805210450327694760574772674267069673777325482967431913688145434239052797247473890963749843560338720445113711109242309727618029108633463033121162032206515703754802080095589916075830736487270162499700247473946754660171881550590298576649641166493471048845854701830257732935405496468481731298696145576698315469291872855599778230830135365312149897125823818567578362400676566340874811968108551012957504058487566699912927412527680427151981560158167114975065337881001636236297182710555261565447457946878532986439604318079413762504367797179891601234306411791704533798155581651749383411408058767479164574388280822143127214961865111129338227615036124019959767655439624827150861511270788453004956343788640047811138240592121507309258533495314110440592998847238365240059531380802857598187747299723857087933362078781403658570217825570403195387080494821293795658903952481071887518711255148491889381376335933027807366607340768933838706532108814087215222101223105842099711566514388827316946576621450631318208488022404995079858396878626175542633806507564355174760212821230018358526588585459225346247981784309540891771474816020510884633164372205014251306188160469456999522695151242304556333493298886787884797615383050660098531962962703060585819196129999700490018970076755277350659464745605596358537070804139596135297575496635527573032586856877326026154784485804678676687366302435646606640487908113499815788262736992009773328198171585437202903642771416853432690017365071358508107860028818390727210679022382730708985332900840972852407612679062921422010614549494141577421924534744038973324947651987423536974317221658741412873885292273462556703961688335634712778111869401040161003826612426069115580330679797838973204243798240207607383837182980348474413401234388982152095451389783885327538786871348534466041276469492891209420778615761449192582887527843101527887671939750385426725426685156739608504466565976198996217515645633509854419213850547926592890775813324746807642708808329234983939030813698670753064048851903605294131600200402000979759065240495874060387649373080077395758876115176054688791635152344668309573570813832272454786053677683761375240452965667859931265536234473477951783805410787206039867223379954258410498157178802113159560623283546433324080234238980698145481990572335732005647162122088180925876491071592063869091974623235083483773255268484052984612259893705707605402409310456954548329247303494623905159349734437209998360571160629711093205796778774154896991260867491497966480312158630919212158420626714603697854039450739508802533256827826655546069519725375472664695374951448463125414110676997905645067921209714765231710502448684183576951042572745452794314411706173421049644007153882512791121226279349624733699907231900431440621033800600857371942785582783906560861307175303787329280533718731523920946546796008153658777391937442689761185484446726098902698344403067074243154975103474283395050167592987489775125040918775534481997221359679327796806317313229893374128536641528376543176816538660156374211027548650913108565455768173998095677841605159780602625845435968464214825657577367642771875417881753463527227528157083895833896115170361166912583651134622562111360144438913527563392527059846459388766663106347589664658824906806135147175275366771456951276425036877501581910513589038683225777065484187938493486805738411646314790536893201454994778110506035745360666777917696923917339357937874081180023391738685814922703130380087782069986238205273635124415994428269729081443938360678323397774612419599378614524959671859941984850410714154885790357974469761441906071261860339495056455363926105419271958996153815639186932214429685502832997780039137061714093280440123190627860387264986048643001706347936597473683039752570204088272756791138664665051755707485341752565785037526194367913428925673647712756453974505039505564683124050525995203973997101842591874889285350872979389858712483222279158065901789407008742408614621264131774832257813705634737680951975631339089221511507113434033813366311593672914409398457005617917106442722968228326197308185937586189521083821177261085473189345159604313175480531355322450702867635698994450045101780325328479174122203824076463432805724592485375483634825203470219390380465293118256434409917908995248380356099431027310433710350180471479338108669251194384007974471448090354308036852843549822104715585794209669849633332887700852368663641398261130487364218254583864928498228964148478642164297059824630987306782526175317929967577558930538879553140732214267611646662403444600508201116106461675707524114892436179905102504686659911534252052268085022114894991788495382759985687788827351256176862319004009044015740993735341532322558042628361389810618784838654525306927948856651392864603072266753345226522757000511186093649237215766725662738913217944895530551724413870144609198263453969416416554504197686357329314128834807906163915876509067003479541548346170238975581506792611143589681475690772293892191389458710649031483277615395089363482848923778065164318621995602640485505849884445848182845305736057452608080235477789684430887281408849955863846488667748821578556775729704977405757512066413408201968100244337139643140867913227811220836182865735326018892376238105469315298059099263686458517872610928750078384073273227794218345314257467557960598910365084939594755930500099801645931473101015810339669770724424930951114266401821161545053633483355284349393726853970017847743084334987245323661227544910019801041004324535813261483480755103676362714559618206217289882038049485288718845905077774743490547760082868241854204871379132711053379691468232403080808040474846890749346494756930288541707894316612104144512200583535953415040246763302150040973272969694087248638876811465380884953341381577505011832174241787405039820142572023242870163865185419569542740222785525543591915214435848294344227688633561716950705497718374815035068554473132664197348878120242971538727140051662972516769592794041920432367690846000201042816272147463987016639326295438549934203332746550350440245083715663071045547249974423228318461491058529142302032986091131764867608039975038930163680160003456057926054304919426340573440079216536888486413953035077092065451397466822247837693610199401480009467040471259011268688817724439143059008442084665724897207099566603238390445500599379374097337131320079116605416747016437651291364309146096574184190569907463195883593534778590235393282306010793855882284065458383872715547198291361906754682566308669990236574756456764175508593215531296985133327486047558782202940625026164425171580975186785226749282399307152353165003440593535645316266128729865488219328803168898189420553291315745940913986204759893121874210089307701384684819726054058580066752459086147350682176808230202949761951959552368595424282433939797241368317590167723678886375253590145554993887300070489779627086809386502909560289718328550158478778419803278730031180064879244948627861144258505687330940807751918509734247075023892375291972403624864500939215744977122254645344268253009273452297542888912121435951447325830168361769208093653964759047136288148637966803983064258918619284470560069104181144137899349017457281712792348022762085462225052842821734245131872769919907548360085830186292192665144870648587780277445894824170591465872595511938478931517058378887701806219676377230968779810184903698481242603102688402418819291941886306493024480028032840367181918140708606099444350973066045150998797688924572098039256472964800671450909954934594731000985268049841974700198597559062318387028354349672469451020339004120189883323820581657488820238909270636829749084848396684817356666646379597287396596967209226134819961218891111013876684394254176285189028264359724782732543398900729018731518444088805080312768158528427280042591208068117028691476350283024500206431744016680966712982379910290284498288768200263568453972203035987826933996364501854895361185852113668220230075953919665172337919616751255451817040018074153775027624006145033864118789296162240967396153264154546498051906069401523050189041555218307736777146899750416080711513256546532763421523912639854297204598957428897652559651735013466907260171584459259280844247476024187512578874624840380456587672384623984085697261066456314209564203963749638990665683427057432678259825973188801866038045211683437614370805751809777242451342034925410468383764602483241374029748397220725652455611421412129658503014924062342636330724120388821247945869448273993980453627138422962987635301142950457211023635007249817290616337782548181313975644726698027391253717280891927968532223954378590666043500675090157271337439335478739731240727034905498728520095540855446175201431597641820696797536998804123085603774651139626849719510437113646587622208415690377480305004146725759688546448940116971110451296070201225657151581230584094044944321773672248652577780751160327491357232217932737039122789710871831082966819244146034981573265757599316122880583342127536154970292857523525634246215939795411965241297816466263862906335099213603237141721084741319988979523358688542549780331402476208592915172038370247773911890172019832798501969969681067619221856667086390821230052980996814998068519546558312494365486029410411977021887925547490066931826738331455127545355097634283023670757472842518154807149207216322544160635984675901147159505435080737342283174988314086877345610083948815548256692290217067386190160803894362471973711718432312930779178009855715674671345183815524532389426708839375595839263914902926789863670772376726230007194929720051107197144536567979844439141716305326409593926054250252634986727030317814070482913313608837881528725372205164156035871237304303425401902523030362618939991690934125487870099586616905673773866595350448670106861628526996084027624656238404275208887887404482044351556636192874784143086689008931352888707708473253956331297456405551180529629017147524859582874764424363439605521708440172047905900199721219361691994330426578095520670799667685395344264216179610017710187160591343989291967514548511952337681350702571039711826269336342836016205686027217267177031522476112132454474522359171384431409709733518300787447893972321371906075819306908759617261253645113169205173718215999334721948957517172566505400874246035839472824197941265013306289347074071559035455457982830602275900962815474194919455317700413420734311607731588759210962044713489814870187438862498675449516710667530340316338807254984893976504929383465384447563163218021702134177085423477959940377751039938027279179249390068504577369206002312961289026394986025305180663664493934981710227638597308084849560429332615175111641825842614634679978519014801662560188817910067978677885753140720696429871270338532140611379602221772610452018773219356935311560509183663708222364277826373809248337296929678301074630330324046154016774700794294725319955668686493147160033347860801681950660780217976424653164869681115137218988687002737663614288901223793590957714929859659844051100513295313444302922617433775048567682864260445103466859442015139132829087902842518200445766269428694205364686067149431167102424455004734012803554611936926672378318339649653244937437553856942154623023625320398761046880602111568918736318390441398768622644259766621892932608019202249182233269665131922185472567907676236131727266683495827486902029939444315001010900279989522447470668307029061311159252922899850685202568909893696763426708080787607151380147790742252968923446342242235035410301062870572342049542754749842055696901015641240875053041061593253790924590614426020468315981965493388281610039064373505464531112643135787452036881037249026779040084247281440656981773309351885832323203763939422868128622050487542368942763383076892465831367011268683556267671244088381859050387041088992928808610408664223504765950198823065462043805674802451383526341810829823221259040469833426166943454210528242937967852541219559538415274430884472476839600581835279349021499424640036485165429330908149924820140064199454832469759667125747927596841102378417646654783497716479222189198761902669320718354202348295014353474514071662293661269580178876703890896035527460684341454994725933100457926043231750957635512149116326467179077189043945845192950734264148253809906749976971468622957384584662208942980707074306126470091029401133433441797130631424678740590619107600888413561238333589592434834102437632685647857859936233602190843192811649910357238632076611013811080349846882923016930236242831747054625315171144165289561633054751801410775013338511187924219417758691992634545039885700682913447886709356404605600595257679653448507927659426476776183369882858428100502816009403727868319769357055252323256770984203003046338027936910839024574509754421439484074245690896707967671117020895215799859562618842347540571761536824624384499602229937072109858800439983807877105910244680474464824374435727718056306574104187919394630021728891555166999316393271330701204801833344530670649666586600641540001193602287860989338508124807359712172964564535985050626393777553233085062722997041190055964996869701905044262510934378427611658265470373291781484620072018690619122299343113667554482128630744235708220764967004790446556446042996354241895132644003326602904976981521016007856073857557716458656656673838562817370252944713902847155411698719471291942077208127092237558220385357317540407809299544972561436544644114722054223221958327361562959685964166646871271765146894667249768853977692981095385048662851389986694342991430801103213489461391806629204461791534333402234418118266571808352393298718295949485398830379418165010031913695355695166195636833522965297525420979995405561668044287672880480683182774867058333820689578484776930220307923575460632668655914587663254122431014095310984033997453394776756260917351478771941038998716556808316843739934625450533099249079077436605858248871672462259205256357644045516792043034623604152943608247386252447223233870321728159580390291447175694265715448732653462519201977320883915205237135801214117611177122930777518779650671024285786154813197808281216144698097972685149274307845006273788519744197311982846339872967999025565826262593743203685038822257250115915148909051782434422570934853259290371082268819355555533499224892692835285871541501399782193366001798032049969379989564644371601856878241495827079964959657946693888653965105211165519692798760769718891134979947050554506592003889305240344682173786059090921266105803257872932303796877602985419319807391330953721120863927123874306605819880951745619879329336906745239732544359421806956710440386396494267410770528186291512516736332062242143209621823309275561313427022997061374879095711256934710911878188957492507391567884726267177280516217638755675716394777751795159751396334174318939976411866457652549038860865689172214917043731660479936114871655067644702093411806596253085618124200600662364616778060642935833958088942784963331617985471144144191581069480169631747488732359075889730895530927042047604028788344334371864573724764550201085214064749347297233194306054966088325580858263412168662260230236052006298769326966645790555552611127749507201051419953099634369466601276737084793608636911366531000750605658483151156774057004409574278578767984682400367869627152580590983446514047093582447741642749522677941990125030486357642829264380596314893183926785776366677283703921964131700785629823059159511532315055693912613787790324239400308072912307473108157538893897657163199741783363998174919906793797565532076236942261276126679853452912429065627011519784188110636115089451401165168214434888417833897086698136864313591810471458632572353337669436726670436089228346974744712871413416564383585737095707090902147989230576635252804096750246143162904805432950507184881728970351296232550838041749718522301134397357925026904928226221962809874523572519288816402866446836327044284662143901082100801921245131125868089887553823401877148556368812188049382129638116945273942695371998725578931276739096303716253092924676006971669630016817239057717123505024603254233332376861016704756481318600513054593659444288953347490945176058062636287840747644723764852069266568419028485674308332059371926760030839054969606724654734259534364079754175768154537632954704371982662645739293372711178143629649539042998032437627920183620507112195294142842919338066229714101209764604885984257064568623779928200856727820561834031702557468762319109109024211346284456050312245719937689911831342151231472218215343103755858334043260208160842008115767546555646766487700660487708162209553844028101483796894071551982897362394130203760859537239861523801022578745680401527084886988781936933496640781635074481634909502228849109362871786020648450447780342102225785058213502020177800724140863929857765689613816908558060178823210957470422105452665658403933226291771814959348204404797487122780915512716930699348631706241505120758102137302321821145577952204454469302474903805522154236764487511703992183660148680591169023943793957039978511881431898749468661196704793357327977470183233015485876526855575015981531697416296774331499247739895982300211370405360979866369513358020117603509190410813780954076821544181339162384547299174827531950421906778569197531534656697287487287831899482283478903796358939821613257820710847547929202814525026946142349290224725512920463766788818841372448119308928315123065529816283968499925146626705248005937162344132900361079793089735729506203619384712866311404118523575363047053207760997544072695400099294728006851964746133341957814391736075381353166071684420958414084309356285426914043495288424287207882525460099616161133983230418432524823422118060759451987913753875238974319266997981502234744430112587992358599883656674575291476685783459332770663363262318968272709223624452200280634288353912582344667346528416319973643243720302537203184811028139052991171894614109690002585202588630840140308948866179494306095453170949974690623988336279763866108401480734446186935998563475770132521014667537352300704000823332146785682293181304517500306904198691700209118228302368632362225069639626551366892204913654872610348456438994000192395706403292828355083798691906082596282976513836901856499955214916762184240917367552475214242496109498367186452186471810842819839667279842024385382018254817416038366590097067783761947386088685290320832810298752740835844685290644993780083781640228793310499114146540503944584104154329341300092510107578089533622603233308675737142956837980844174482965565490493773073986243279982939763069636643396625018414006107050103615650197259672731570163654247592992479493587958689771147042901249241122355781498259196779752339733621501919415525274173018397691845818062454475648003984224196776504410507470254750419721135953656756060338192195000890571801450406149022563457165371838498484387330808939255882567870069818368055836127456530879038819423413353808739765295099656224918183400449182111443275877557578653791285478091423788235379223062181774944306581857242816272559684310672125376821253145685952432407715297193983200472314376463707710554082950365123443394455094444617583472391762959850447198894587812933355279849618219045948200554629668187839996203636346064124073865615824631319810923898564803018241048403404029950198971490976718565007331816287600247680096038874135934320628428371722618919507219973604533420211999195630556009078956849880040838362420293381551289415607293853394946800874541646447804258226034037361562977795060438378855644406007814056601586428271866906752523655763277073577562891507730116695574287904993221985652768789897420750962170321744211326183239696958374329603324031715446141242899176218323792360159407566193866781951844879831018449016984697003895973333538513540882353049591228998982111136967783624839959171816150003279797950474360195587040712739481827600090833999012080607294820871679792795984734544241185829526740300073526862863914106787602196799433751182978530488420134071641836029354103492004284651056755557485610012427139199001225245103039614320729408478844267373784859992859061858495024654423848213001227236661997739660261581813949062302362524130049637703078470558635976135672425013120880432743071273615223995068308518570209227540462827970664638961477213930843820589785606366758270403041629284360211893426770403695978793016523093427471102210191013673285774114923427405430183626690780723049104743059443441090296369158697049941693830503694772184529111922132203857779749231475963529245192022745825508845075118229187221487655684500280617887550152317918363860815229031426494068447081611957962539034293134330344005265828778784371272791265635283995233018587617644727350326668905698148816887405836854274822712122724913967551227578705112228216275282164462090832902335733556403555857830111114825214768467132923173459864982215816599235025884961154310087105239434114990020424113040269125516598415230802676382477051861130227248442346276625253919163134701303484413720582169013751890290780043525568888178525348677431334288441603336826493182680406337299200860335699683669562482330069096028262400901367331690538354328889443225544442042332195230537953593539403422357936640281069829533653292813265905995469769994043755672788477187325031121079256911042020497347938939106977398236524932937797934685812475992157919985805099368048034637082471578314989071324291705816832978810363599362804269158094444328167630903812087621838175725663789061975249805324459784201649236283251075302411592959364754733955656372282396087047954187442868116833627741633578000846472468546017858868893409872555246251899296700788109838026282643039536155714466067940249894571383612432813579067115438068546377370897270595760312124988400854575682799712603844956949964274613380679969706044253830032309201708955875572856147627449307263031114479270577276181734941973070608324930216283711426337018502364109189795719592271084970491154855551879162104427326127640848284469333211200986472508121111529808619728042992450638065907565517059709371568687945932387101335049118860354071529419794995446692138929096314856636797346641271191056422341292263403015016678430314954281454092507559673632052655334472402756525628586178809569055256620661034068512248087602545074012787642998232664093777316011281153187311440727073554039870247284042578772962910449762585076571796833502947533095519555473217735479681651579549242702788146407222251790544920755433211197396517705382707080645908267997345223613076387185133333848620052715323359942022995179091890725910993127770139274627729148853144202250773992472373681469306443371201175475379938931959465834037743764721334568814187116564704805531305849898179291772434045201150847552012698982070956547397358062586717057494788395020592803638413760942714478379227203150065289562712666015700836998238087462943611214527323034882344655665520069041209429674283406826617283257599439664533319579462468359344461220833305511120088053357020258266629427443002059832951534717708486811398504692210255026364892166072502373609734756187624847827649965941507099412528853872517463846415001347463240023981131990320701884044997660525643386536187089207091913446915778197872693646427096160639097892469086733349915732639417728337586053403308980382973449599703463334028305406797938762110539925426471682234852421040177554931561510472226732244590287419833698325928533873122018472495818688742555291472032405147289263777141074749467813860123923509407212498961439610151907967000816876331424696343850460624442609002822154769910513940428719734074744358141685871090066872671197823404767078899694140082943746687566824619906854481564369645448881040435886631500782958139817832084811421822812430723345344435197876750271219226151735568656817950399014264442555305302644985433216933002256182134009066257881814182548663214266319070800610897598927806042610835684488620052850766559246950864694209831148083034975388123586011856191035889887851022851293919507750924577171278167698220611631127264605214784936525336796600498296585730344167107302744364674888939922412467801043683829850839085162225717468185392152815413053640611258230597273629423940245266641503325386680005449008625474569734380810023096036769227079779053623273642645887928028800167370111026750389138363721584775289806377729088161380840213332644741081162270898139492573861723842501415892605353667786820618329151308405616455480367435885476634318545744400815654738496970863718282578725341668358321952115596616695266301310796868553392801780950862665316246909432991657619058638781784853180645721218642337297366062558537328698570859185754674821151259234432932185318512578119161767476351588663464120355261683717950046687843864901226218224484009302153440840219668926041450531325243395492413169564978693049002733936983514076664645967703144208974352095282257841805658418693301940392437543489271973427454396255591214346249078675441938985079555440781816663020371451869824035847962316432594520986791918390638677646108296389546333284636345444392926288441683531052772862561480243494799519654882997187296817022937919603218941371614917572993819546669301976053136237047929651072986423369787963750390204056688105086220454850577229146893404992600182580640302176394030222444962731680850089298680771049402755270458147043715475415092044528325090906523621819479194804777027412502321123401272197047466729870687925551756499187231769023993837495749250124721565946231167571304575514533048938784221566136469750373617863930634156772821274650234041804038635550346482443821039498562875382598220989589835789542481081277499524770288188936978270537769845049715884737195440817900019420763858240337547666868689117217739023345100588523745953113411752086116507340429183879244089633748959675636583358506002400937444773517381214553053584533998128059748429865781615066246646475054894020654497651257060487188491570435727827011699280601658200793879943750053539268450018806789912000826228863319591771507883966551211811312952859051490340847479370565735525669253730431015197816136154451046665173392498517404636616352166758380543531198521068131499808452931085641023433554448218026197274701859521961245286117310201480229572941770982917939612335694409724053965447612162915114637488430324289085181169532353728875434695339864911355824876071563850788537377438141511204060994070133296462356258418303159616369917957734720654547478896655066165458777836253283118554874998006050270946762628471073350135184876660551655913421296576478737575022224944162233458016937030394214246338084240868468341487487731530943972397831388255911287029967589842076106811544416023966338592229145304917721645902543773794591250243260082015054542700156085456341831430212687539291597529230646565562556751248234530328006352821951090593429149051209028841069106300941916665526104624771619977612191403878513603148462471018803234960291757886718490705181253600422518963946649347467596085080084735060528002270552447096648619663366030846656061480471686450745404727113424529471867851344352922521444244805482538243148277414568797522422381901440396089985602053429807784150680945780541945782777481040124174049470955488952631309691821912491143518918116843379039587353535047306018585787361655089856287982527541640974264110710815980255428580910412430715916021033894026865906872978658215570354449269510925215959240889220036972579296148829575894641039400584512668862877839345295206751038753444474494994323554033696584731523593454984865433837121088029375926807182740400053477541870827395533797768028426917006857831454348259660373484799832476317347270552897275670509341726934022226915662308149340390243126197269446662201198352099427241456967397198788756970662956157169708811236899493650066252482144978355561420787224398139461254899133130281029160516342152475350297821553748323450818376038480911652458546600790066788747405255134369105423846407541593544999726910904518993994246381776488002816983436892411297154635905471232962997324065932816390678646041015521729932873359451941111203618025742830713942622965906294341104785404021766544520019067123584153598897186336196091956719142149081144507931788095240726024702336123913026976852895114913592833294605313026577842139636150716297804143031166713547468198394791021964831043380418666351475650191484960185400149023615934317635970079796898704738325815120833773224270283038903683612617873761028069091241181591022932032358768100353531566154916811996215597044975125915333697640522356898952212797286517938068712417624882883001096820305408616750103054715306011812637368959734205800323018402830543884209100715583188467431851812708318890954480283655963561798473085875174380974862757166619911831777742228793819674366182197392651943971217374189918939020371437287385492700989706889901861397647787940193314387637190733667974450211688300094246803586253288291175932182292094054215693844244748398546227915078210628481884300105439035038668620270722249516522938595120885263894929698244217293234372461538848435889848976157859675748097967766455114353426955516348611732059372401687583590204638395987701924718001608861706399566607188870350358106030767430684757103248569029188490512819474827094366378769000500770204002756395550048256180410153481744147074011214773938090559042072981529368077300720923990780710608238167306085556547097403472084595179244343806121421078913218615124615509515858786606488467530415467940470291490690901732560687758240141681722329706265768910950199464842207562527890926064488686301025580972265321708774372553022418755090516177007018661041323927346646278297517573205402554896359099276096115178710377910264064938054328273639098900772656904647240771078145064076477830822489917567736584762681800262012396892519265073499401101898921945737985853586918921686763804840447145444924812523006264821909918149669474677284127281214437949360109643985151176561642889172663364906855898090604357095626716031799726951718671069687672892441550860421137490467047882957334498992857294777851479744098190276917141057518201759776633485731763039834591152300400655755961028106785682485449572873030251340354827651609367642119073648059273362973030454746530510304336469930378976990202178062940921298700989753206223061670174964606192503481706876615330983951521262362108382812415100036577369878841596186561357759561743258026866281666046818845874579272398316577020849892258210480192279781074810843319573051638036901051950456711769855292624518000826201580028719206412955187950780611422516958560618828853388668355039254576343946424734570716997763590760461184125043674898801528571132138843157730493550962618424686703059281462596174159056996487271913795906994855426504902256232220771252477691756964135139930271168859348949927250678169443454797269052926435137016220787743969629177453038655845709296869856283826316421005864977179630775155665461278380767962460846942485352939995566613094933851147258759618253629253062122638569601835585501936566361698072509205647823552726089931628013971989216816605772417291659010343596077036459968399239923862200080961164059971660947005107104800182361434770547241429429627210764041399447189992872773393809237849221338992213126584899110808250566841117679283894842663892818641706744861522601787470060010203770533585874196683900047644903084344487983792075822670122248085532545929722385216457299544420021014648864839295155458824360103602154720354949570984441061002729665914503722701605736616723626268820340721802262806063180226699236734855825326075181392928065405025463153446575790808872183828540277997100156826011535663530186115616016484582470507279379945650042657833341571778211075988229944755912848035258558000915544175836036822325918704675880995856052680570422200661024689817858456023954122169505211357575590896887228222268227280274007332316925244544247632758143947825577393004822424460600904262580360030406467280215557358292494362649988860905581264869109207905890206561125005595419303722713699199703485555071597502197095997316292778942291274187034783896833187698366610360059474161891512278908766201576953411777440380549669840708394793878607999655348521271248321790721606642517521281151220026950922244277024561449052274629220543807604958333919909344487629508678368926712370433961600451240019075655062026975265554891765965943557314186115767263484823675402948736049888011515561475291919153090178824364762206732410705006420497980442913187060227245499148994538280596073516607362585375849992125563502685448997478418373484967963054037897071655451164972086616697519246328336801141886329411118481380698335988204073334324808296453906270763124531283349209285623404234067192704169438732301832003608666542302117367440877043655488055378908859017618839610966085993136513715195524412394509266025851716594651701894351964826741023460182456055994522908875848453545331082268620418086880217322921787341807724465773995028181107369431916467112531275542137783928602729981590802552096608037395836225351499257180181266811118799224849253254746968208584415808918930511846404185497840729541067404890695055887225675126511850336805426138097222107097246509653705814566442240742983160404878628584149032975833782848623738397728705827513784448931330812570845060612018029932133757762024195488897726050243450495711898181969855292239844965646704973423641716046043387647470710203671038996712623917823337211939398088437925076430161557045919187415237670616260803365559319978835299252752686655725763822511121674885637691001994847522727071398060295603958246694574014043696085554036023354812644473880470611006138953177369006843120241503139650696083750062365244883049441260173772770291989603313700394727614701488265943874189473504151255941241560850800175268794984280764301755369153227476776836479657088980252408145090418951052266112899584161998399108279327097767877046151793696352472168231380920595392141454070181938619546089751498784802760991252017491019094975733773753345524135283580195628785868289015512320229380110202697772451725089963821167630925877088268814273356106822664944441813487822447092685465852690136867578709116993670584760348582236652997552065005591738186307443204171382930518063971407426789301044997771386334239855664312453992052193034550871131611167416723570995478834115123684745527726623189948853165515814288363614326820224876308822425123854351466608957374144691689297771033339100551944294791285350851344839571879272434935159951999090624848766750617472401073788402054645769221812261689851137962345395124335633113938763883620175555207725577441377726691785545530008438130191395797950733377094093131195341460210262164697555450046423612125315897105011246522601041227024839817336872026407427112703806466343971251262346879537018992164837921008409870087057785706842800310007512481178864290664326088647153971798704315949385997455170150767988184500843025679338839612570780731208370778464349940396698621729368248419042000177147066730260048728293690512123234154852019758360613213239464831295531279630801096247155503406310159864383190777699734025401508978237601745056954947992771952016283562108910624475312353525574426897615178190165833818338433272125365329400830411996011537231226022160376485893164333361924083375755363860816909925427983548046925689986686087340573385538162731494097421043131459942260960325817543564495431814694009041679850456652890470400917383103048474621994260367287970398113779746261649346420428009819042807297490725798999768151491893139324847215071636215361358125878834992384506071883928814862976109268263788957194404738110602951444664439060210807552679903348519692199638083319449055258452065954871590547265674460685457867844633644943717639711814054351157740975626217019510280733840484048505779978451170531638666749446917902852492051560823027609940477687283186391468242226900220786609745041356062781156841194238842280257220039717030698343503082800386239932752596391615169097568818066906316240915868630384083044709778357700178865472833759093400446265745029753646754769346499243934173614632646240471357036252143477838422635596624921167252277080900531149537806199274423667768826336849607338901643616590848763782989213509006790809613355622236626308133669270739809246858885527545094015292442857893693427660809736871929868038182916895902856748818966222232228623929406277686477382766539103509836837557526472461130075592945134234366109500308929789501760867154354476519120819581348326877322584479295343732494717522833541171286567641711723464011922849346954403016652760125605556480763868007435957749801984717485424692955282756776260073948300295509587237456883510696384880191713969486733447831687941934073078440558862233211346700455468465761210779989326619479404770970470023871710469204204020571583644104613707971169295318205372265505120321954528391567548079812035961959816523948269524489886068893586166445125747510886654935446339810788498697259972644311628849286727627863532203045250425020965538372692605777692674607517082928699842780505430670878551407144221479026679669279053472935559823439730660018667674752900874867277005582978153848099111536803357925816462377025465297479974620146562346859851171334543924041981161988899905924216997124375144405490269883935909539718659011779446613364120200794205611462584961044504144939869059372601404531253534692872841516051333540837195011125169436535931249782199589421702963433422026338446777987758350363020804576232494213020529486810697892834804031951156415532655749225602851407762280336334443671154975437221823686280417047219080246587937978999780328385095418031261033164351022763381685374881928280307289273537205650472956633662421006627174907446412280089767043683268725992395566438225065282899801817137036210153748488618037397487214663309777743180087593093343906718972573440209449979830421996562970551097245909467485910835058895079036821060697959132250210626492412318741064038571559189931823805243504403703324241431683485598810090328922718043830309802471483775911673107776178679164853037042237342843768073986380400466937339813291825426990851144685008187696510433427438933248882767197303795835924977033316742318785705350523840657924049697984555506776420325529848531049773214603731456654038175018020551965226120071858935060108355138748444820904088353552328135457995137882198415140164208051510659047605322128694095639163742436864834267135125021232937659296053063529602420281054525367976107964301282519116101845431849397806575709063780667527363434519282155434584419248832733612001079233723415507041793121071882037421281525993030418108501786427258121946978489685938503087766726825382324837342398099942875613026432838504299056644903866079168301379202800696030601016744073772256887642078490079489385931804973923343715397193315845290111714499530439575740236823252087868458447857254311337247424721113562597612784168025567889005928472799170508050850954111371799809179616863632102975250641503007285415587144902456613593176534916703892306086529492750863967256758213476195324388866331267365816469544987653482843915239773729423485285203824899627122923823930721373913253449972755177555302311557557006314288299571014924797995612901761700787883727702781393157678532856598573577535104108337925653062545797288271993822662415280140052750042001918901419959796148775277304159651374305870760977942285744596184426172333318004750674957227170163630852189193919687104253271229280918137115666738415169045835283213756194873885414738246137397814935602246452956787752422509951993707296177389386622568177499646586185421599175921043813103651839576808552532701138801215521370791581962667502487781384533611987341700527102674893600127484349777897599324670133987744729016619609145977208423280079720429280601218799121390200967228609240261634641995534044732593247507272029598948272926638726647588691449820730685623347856198907638105279961152128771525780204301491167987883247397264719099231508868122033202404440079966344085078006456763522205625353062766412234486039243492151245486741401477857759392483650866775264698875596226303230023746042738254343807255735475191259563177765804193110576586125044521023483577374562696068730383707260861179875921337748842772155303990966984301089676016020655015756895933828939536190666618067338093505812645585112566167809492180474143467334596229977402359556833713225028615074642686761850176277420309458553989817264306930505030083653363041178110849554018951054793603941802899618621839004713236438686667655338937315593293605579152266439999726621306939723098447655326961203423860818620164143839042500972594653422046583214028219222275065496381022337750826751183165589542635088532690712823249246403748850066426885342448801381959766037370693432912138957835211366726546094489178715066737383831960312956018734070326743208530004511696555383492002785182352532866144185069821997364250724954513360216115434932736187681584820776803064660049413564665593540610509227528526282465721899054511513517464280931661451975832920651294320990580357201612315414309062244888628973638520980756562805379464108925515381851066317094238429863333836220257874410508638305124826750908142934829507778335815387557555248160469918396600308080782626225847939877620805865588971493618783871319656331294019587351606488683109119253522093844283493933376749282292487154233978463063011050541221755281308118553536905072340861699574430882481147704907635993165503339504962490769638346718702167495555187560328607048783007024358797709318284877146254775469394077232593494786524430155719674627881191831722538009931281377405346506999986294260757863433185168128887419960421598586169495115717401948524697300124732483645694615870611867536593687177644411005973773302943236473670917955741059068486491469087749561899803478175684199696366050373847760041713974904499374074402834494737752675667566044690433491143068414606593266601663830094242618891215085771479609695668468074290603824909848097717398948413118702568753714255977950261708737326310445199086152782845607213944352435717603602699335792827571111595268654464634197849039147093133296684077686094951377514369340100040659691602992221655804178740647014302150917608563954226729130173564415078528165042889989332227609503723248392473901887823215775497909887441735637592820877409495874496586578593936101790340514153844390197750065397532481377014478117388648610498619928302460272290593634934471504864186127588792291598242944587131508527371501963684302681438920959975286425657049177517431785574280718027690528028576211235352372267305575634343363848322309879409054296068801783104108321277724414772210441635256941980169657573614022931278168341990110693470774290460846065477530041747032076483858639446529176714655524762882122645098891760902479825077497135014362543364946528582465053583446333104536359269688647049737152998217659810103256609324314444894777987010899035796038714218011939658326631348386789420781083805379640687156349508210840875345856523030714624333896001581221335703593674150378217445219185993446639703263743530711939662848322996881861786606112238012073707820471678625945264974442467079028098962173776832208161128993022538712885692252915617742093980998695604501920957503987995902062570827772685424881072811338462098764865044513562197297302791002349436800594220213347242159021762412494310861447935861418623833594416999151751036908778340308657447555030811520272297651523270696855398695854063602860480269060378053083791910539362754546610127333388277722105417051463956569207808631835970670903803163776660791362955681820608000737442360574602657699624337515828135415544078991531412740451741612483077494673688997229157936043155937431243119125759768861802752569224007614688927029060692220066107108709615224355165090802615527685134321190181509251710460550642867536753718695799090163254683237053446960491869945425437671774322156967637446580817018170647969235132786271415303778181446128161743170339078313632000674614267904908548789177914981958787663213613556408787316831107205038165312724253803410828246662894727661502562867721206812015947572321644869563393342869820035136261166938793147007552691985291556084697197879903618376788273237134148824081680844247684680852554601931262754264587714896383648535868436775666434835777492947608150985884022065092604263034194081989725300418841723966424448067105448156506105555142578403014817427788801658759795435705199435995710042861120115140724003773090020123978868151402223174593968440533592609051004158554505353347361815094073135581842894194612655314168934352407841827701108283916823771409786377446647998679980262223772711259954130118565246200932914131904616829648195334884911826835990677269506144416829852780914360035167768109321054839291291539051874413729774095789322917015427439558468080554490097401476663006687307096434841240144718207379428907516085328726653585990890046856220469675470587188874802152047004169646475638740607591434098147381408770507128517723658791265440326670631910552462642899758494236599577517634930072278985330404399095772526161682902237834397123058011920981558896394668868838124547579143573556464323367608780101287094268378758604436903715789278729600896262734288660127631479500713023546616119333791645070145437957280361280842873460488874234043566463712349211368684813826673633830402469395064052305538922631821319070034833625980974393689046049121843332037259230608495773925358305479139378721149512419356450075820810680152677104512083638071550016089848239212041795458771788891273381881258241616908013609336958120297049416069964781749073802753275406147474278317594058533805898053094478459298938738318349273474813012275112660082565392685900704791429301842342672144821343601159198608172066756579109218703064520845496536009337954609213138683296517315312454351198116317914167669756201392669953434158013872259327992022161109979372097311731405769518895130819782908008345060301128287653757430353271882838943052452283339025128501776122105766784609305496263547047695913769012028115404137820895780414261358132217357838512815198258937072684334439823060073863803233215244723821231499936592095829980990935709169805859661095728218068147575277290972770793044104823792662549993051601896067471072911869867779455901399236481154495575495487965489911836355974684235777486567735191837713687529633010229951625732826759289100331491405989759787199253307530780015951422609477896926670600516333269311204800134866965332836151391627669451477006987416668273712900154124377467687872903592884574890610600183981821686130503464694855566576739330149764741754066968515577377912212357254578895009135241905438012324950519567234596649725016631994344633315565475774362331462952826607297831049982453956134487271382494719305803904266764024967324776894185871624764264023814774080169204465966523509188572524454931353335871658052105246299026308984792018924801660562474640488265120985733192981604330693849093751549415106739036563689859762694868197879678332105842464534882121260287242094810018490787850855186600554085152521086008305132873820153096614610936048547026715311990494056560836049467748720966767530909142071774204443566416151086529007288849503458948631612296763870563007768694066238694742381330292622903661461282432458686134140871669593532109046503639103826777917064466953552963642630134231305432095451372860919435711296875640914156432860448560510954781711170467343516522713510430745014736101923169103289561917295418995270171374868062313726691081194835091506023131403107832065427824631017364739636807552805763891592222216882123240735997004795381761935228674847732187000361659191706123409908803448117750008320255921807798742712064398354420733727376343318812804805577515221212777664904653778930837877813909295399976875183327667228110115071383521640388219966069846469528169837295845862269923988128392071445812890679464121716973668457115769058839634001824430566595861187985545887823112025705596700074325266685761981825231634104115990442799386554366878001866794609203628713171524688340538902658504004785434389221926335907658454585211169953194845232062926931554920649625424598831545123033060986586018099493846302752749828809691184789555958007035612558970485212552954143121083687177449674451473401089286845410938837988499268753505443802320910310651688098622207204551508668713732123280311249148581651034417348527112970010252498384341483405582238572545298469839211164642011077119834239927343687645756971015104432399684306516324951042271213232660306482192575062200176037921875362827470138132738416340763407983531116945555610406787184121676661137567351448452052906262775375181751369943024894807935833706853371626223109338067501520315780548940753783306841059840687635696860347815552115565830585521387655677984066064423447499205077066359245600889550187694118218912022982983020865339052447791843540982390163096523705113816589479805552006764568527610096704312522033424335376839928392180500606912693770940183945309116034117665855332411482154367033989493005590510524248826228230446591074038149551789480121126130977562102820471087696406380911539264602575902846890388804138059456431696629500679514384974222550068950175123045447826761645989773573730607339686611690682671695892086002717547088524233728357517391489517647827022589167561114833399406385875145385257727966577319979672861904847830328389746015507706936464877019165311444260354185390114628542797403733328364997080528807540951987899274082516626749827872302452857414162805791404078454917572193523347055072299749506268248404087059670298506320123566572926472608214788210272038596860273377623850630676943068998149358825553647534222633302153926901220037259999463961680057650256460747816302170870517632059723206257691676934495161949095944245729180648167717666162812922273111670192949163160456041331274849224754649659309107399252441479303208146394186873491726963841225361251541293856356713973825074611192058886521329805821764010807808064104440804539937272263998032306546975057086120109623036879259715163006771942081286443486573589038367410898744528430766095966374494271451227373166300049085169887865820995539368278645370041649309788520876670721970383171900789326977158576416928838783331772027079890055964200572188657377295849921137590666413291800510201900416316086344484676578096489001936127463230734201051156288279453861558978314401832662611174125686643593768614048488885178803258701595684015379075104589781230234458553496500364036919069923311197996283866023702045544592964636363814371733759733924413005696252677477866618089781147552200570268787690210616117036263542001375085187054475963238898182298048162691864983675295644484459990325664257601239090261342693564136263736036269090123336624479933350825616005630865475656221949402759365695591156441043110518707449009061161289554321799053390965207219881051380478394713096139464379039448084751698214111000824960607115285187520214079424825337731035016959240543972857195052683475813207852495658652924833358908517038182868531338712792207673766208572543366047207073439116844790311300981570787450656051360752494579295748026115053861016616171236157657125421359043452413175165737385258804101048185169557726575342749860677300256163089528028856288442223872764519390194035600417161148431809204100595390418756881473565286566380786195696296096807688633503081438412668921606791262814440330973130334530892683293908732615346325382460688451644415608029481761546971671734382864436071472511303004712354630721774619682421407048385123043213029258449143690364321784022676073521054611823334794648642147832119586067451102674171032849958130667307557917523095518278871202362872616517844550765875010705214338118738257753451978289213157547158346423967314175565415958046705820288731389521736264271409488169774905541636478065926222995498205185165279250516711123336358197168843499040162387458556828356591503191483430316399996088238831259330287976964236698784947247885440211003172771936918615321167664443146478366394030984449314447630237852911041103845590959505180968681542567647122010995725916722436527476788132288447244708323636993269175839067207776348323913781712019364219273058820433975672169781060510271942382231851317887227534425385583340130222534716093574626200885060999472760058077069855155384280905290113051488769549704191475319434289904538116959077115181136150412826122827100280589556636922453329682895003988504194263042374417054123121962020349567596235001162489870872757968902899978113650623230150885639103202106007548888035165598683672896291100580096201929625042595016805202214845520286646165916801681615259757113724768048588919076763339280593157409642460809442132941493999706531476168115545458199605228744919293793488301490975311484588098073974562049244294071298553535994537833283606840687797205884093105230744611156254709476275468024191708835355079383826310667155898594278236745818305079738285888271315726915580998654982944283319690127085244260276677649675929926531849041475447855060689916481952090260808375295753367323609402388419436232455867866024214471368989787091587859821815891787940159449762860694920678456364991755510411930858712315011929230219887554981895370650738667243822435726263204318209586747984579912915662927113737558379262510962480445250044251727418942823993177549034078743853853328007967324827599165423945337195599069174352159677970519151784629736947776142901222391429098429849545819534260104981169008689607388987869436369063057863913460366627303164353891552128805683176956547897980296661100500522573313388684296401353485063532269491131301448839557458966727296859565705852057712835361573078006588813795515222869155998694558090439766961131220034042357994787425447130575710671152258671492225327190724962690199152652489847147816392365334546278244377953847048041676011186501752876297767857242196020227464681921357306068515934020234329214358894960601524789735740565965706910056931721165848676518594101335554654342554359859943555939920492765906988620319924644095060310374870851517632462120341121058942437985251304939109035922790736074213553779637957174240900982207679968788417145735647478348318276091492194973061212596677000691558126346767433969660896376969212289323777572202675458993333938255205117404241913789469953420151884239624911627465291342270255935227838424357548733872898681446160053753241407062645250220464823896978404181935450806242299450579737921270994903193002001980153632124519003635952251436883334501705649322323076133492555966968425777707702648052154157157976414265687759079540111618481559951282943334341786247924114533028960245251649320555522315263949085266616506182086158452363615760912877624904037658706584896317192961077357432698672167405632367620147864585667915809170718061924722250695308531439329925161986014902743675392188580615156427026507700213021783793361569548451269745817294336887182956141717237690652047557674235247550985195140420568912961495879704751997756885254743885201624430505260118950230209865646762579058125461035846231765411925167064238962911287321068011160377838754495798110896608304825848216258633752281590076576735411188775510291280689250301860591233942389050885927582123534922407628152183020795519812827475936700683650307266189490186032312502365167294931207985633235168468146442604200766989003222455281227177474358363899678277564274904269162418804409570116785845009782860541443152185484646194880562362518308396246031899707292618420442733869468727914078341185804146239574237229856838122746968933820602478677457087709449709389401057396204269305139379265212362949094680631906865563166446343716161259339441435428556615688834812692308116802061710061577533683920018573550235839135276256824196175715732508350645520946459037109464286846840086213687550845035907597888202102148457381575997748401799140825425455496269245316017852907915563910214667267834655173227793366106810227069572253318993373189902166380871668527127764557484929038432714581056630217979221801973202847619209408012240768398745867023266090381004602588780222133452496131437135694636634653227869839420642174434312994516551051809523146131656464763161259789830260365532078990314593603294266415946276494547499824315047046457968817758204016988378511440520834605131949504847130207587955173443421369404622413714957171007988937568964610832537614493227589449915740237070966636264308000268438511992921258440286566746036712302189630942808289655945374229294354756257027250488588449741142290786995763068183466654598210042265674623943608051156445790614858567690526422280552568580704562326489768737199891350291431834090946460779044759965350887948796716898448023242539636786183515197129508222813105856187560364765286417676873681139499974148072153920377712736004313230515259805863467776221203678621786369399554426702599180177414071320999587302062873122703988167722155952145228956900694138849602375363141086798063468494241456059391347171373486009172366301667085202169269339846661408121839722669288092719869993972142055894722018167914973886257069199828144525775534531701531139874696084763946204742942222363145362748825441286771875667650529661730695608606060737359986389883201000083314999034319402075000293551775159544940496502441414174367153149788536781253072466500001105508364079059035413120636223920440763293012494785129851136536493116657303119027911647306452486839371837007561255042951747782024604837602593080260776684598133742449447981992351667736182951826832095124396998888370121842494622299791778867560265525632743910938765409031757727452754072874539583826554370138612502826340894371148027999640798341787836756245600683432545492542060576209705007092627606341325653931116173693618855421915730383705081577273003897136690901193144190321405062822254221369762822836609156723722572549938909061354287675047344068925094512413493038472291400054023884653854584990303639807593655005838789080782693629290428863611526921971665881081060154826465221257110439034904490470911326526818513206062776597714103718686620935486027692660495198732862211526362541160118307220879418300231046278911205127022907574367244901521004969434795874503093298110176477523626785808742701709459631059620922854015007419555595592699360580810344909336379635906122319623680490812727611394584052250151195072016974191424249960525617314133273441457266470072859257832052116533373937155571874458189113527909461829444545159918497034605958680461057408576791027873521082515000320406318610039597346356362702386619660341205717041677603151193427883677882391886573120806762895611573830045635572453906571166018688819209516368591756296452214819719227335885464817348911897949824894760999305995976762904475620837607583265729050181008993673183492710957719151950396034140656972139345069688063466386114619845464039630126596427344245340653060085734135004403499263904992009965996716928498585059140154933177331415366106113583368014177257892630606113536859536733622033120184607639669425642200890088493559827368864238468153164832079116225104427978472363309841003382195272145138057956226410953571287762549939264202403550392575713110952973325833160307669800956943364123418378338832955360188438208706473990239931013354283262540701735959743923233852842482623705724131299482103100858337341269796051735161746372856988507829738759270981985718307636253637751089746823710939442488653147696324291323944351898607118134180615519251137043796222806753955981759613268990767798075371722850682316029410307366210782536571793727184635451995258868852960509621682748117437128663140942121971216290293826664071145847846195225200787061838766625587133250872477920793484937983722283502064151662121390815177258910379101085526874000403910596964372608186218206977841503593734428029692695517498761879802087115541240373470011118583758544891683248759551336960557349988107583062777778851376044465832208153768364830939793231082801409110028036820121668345195610188166152229684836401557536030620022216437209319398199602740409889597708438792770975484520771573905324151426497156102553935857432874276792104995607637777644722891588293460552824577752586284495366020768659786867275610973548678708458115635495933775018227550575346409373208586643006930115440643851047852302313044446672986588736087162060397846377395617126591049693185432982400234077845309417773870927680739331783265557526770505389870452068604296837059843263023610066414151616409583465382469778522679764974708925047660290639972936373976256791175793626084094013421967564117223091832933442326245239625976600152289283074644743228817801382972797205817499844851280230260766180145824252555349964620947101114813500193525755703757915633733637233775479289951265522304672382462401698335219879706334916277156406764448390983254698159584522573666795943795085418280512708749192366933853761240134684224872197791130480381324744527753075274791321530833982851180708221679488402765262427156166495689614806834265327321364106735187371101922408844105522013184968033936578074390560985182102429158059177592627144663494126837779413419664711556697055815655281933807501761134319143296697403318936759762808618791500639251659670094538823396548374984598845329927951122831576470561770910715433557927471821647875686803491122111505424961731246877573403730056130542185966591837668432968940091718003745024295563113831075481664249391009677443854587745770561007089609703821731841184150744891023178876610493479406628777394408212267572340150115117641419109866012644489622997659414457311139219660217234537592090865678969391733489121186022091728410984862248190688839653134996827905461576920325747106560097592845611489445537589777089427378885103452064561412304357738121869217030295620172847221795479975955073888657114842568991530386135088547502965813155033508637757148957587693415164046346668991171153427220567894156369531656433527206539113795506261398177796268350349992770713593125344115203659187484787447979171597702949800988080783398012394802893936632525927551721359930546641402884938845267533621564776177787566461953030237133248382269317612672943140691359948845189853979693660203273578954780322530333300560405862946089603377772526701988262983157889009395551092415075818922262987025960645002363136185525711094853571907171843169060595533257818404029485839007495247441306824134470801863125523824931624191791229925245721919769750332436205787712319186361125806606205921824644500882496028703760772701866037979531052530480201604090786478024822346958387554976580210942268627941166277649955020850867369843500076783013158801045803352783101831051191303790364349796342482638253861399192271830932960751347048554414370357958757843026596486678284753325358444709239959013756994351720301697616266123867088455090650562582782311399932610129749809426144201278124017395326215470752173643681075759577255125061490914463706224177940128291350238282614293925683393380634053487862167855514500319223162229637188732747315162597386678041027655184098902467844245710047329076456017876683649879391619079863319855652792086041989206286943204351391497813738929553597304774835701471794941797735061055968566429427555336467096517749316817361152524851856136588056296976140140049733957507192001552877877858217794396194491772021468744883468190176045255831317553012165987820401186658975745932739423157220570406170770112560802194515026568055746849130819802238384240249835415421534556397449838337522716086578229997631783992757183456137071374525598217941136830504772540092812097404483641210010211630793828876601159619532944294136707702769468374530623834880528834138617041822570233791979480841870614947448646186523380437493564495835950824892504753542805397413785298333960591624156740691707855148266894988642278002574990034894553779303592554693426323363794182142012513471582904500828927357362593426033470738896632418441590606896269338374049157390742104633589212942087428836704493245493974448437890886793814232675538918767844402877317473174699418241160917752272810451022722991633188685169200411128307530826263562700340481054661117987544110787787231389911880766696141718405425663348798559295193987043374900208685112143044753893778377878299747522069723133759241046801627936279788417075285961952024316731780992296252883364571131501069298698378686274715181796650381534040827990112241421215853247582002331631583682934882136734752666658400258914678299884906615678448196569371911713978233690446004538903297669491995861425583836565340195175368983581904779544680394845528170033316938910893142185351988893489932450943360855153757157840558274676574586349243968217109643257690561789584399168810061208251171768648332022717554754171388527308025848849370789825107497688318480443559533597031711250647503085862933134000857793258126294952913958610301764821008476498725867962266791298448757523381606171500471845802510322071218988310554343334326964538875443161694831690335997781603384951215111698240502438151554581167865243058973901158326423476222126959065357039966119740953753989722808274109546589310298739020766933501564331631593542447486791992642304774543087680625412090499279090547078769060174697096178640060853935432891488687600486609779417805304810091065300222732733302886186518125872259634552453619831351255646634335556195498232106462903476104976566053255690885612659538350761094478120570961721266306166429228748744337375553259374475937864591254122841204938174814551266789645756891240388873007531446992341089906109180747804507016885858623060806718885302692405992615741934501430069876992764140689915868032670041046538998808951747865031273070326480527999715453161135740810421992045345091074029518708445605290645611944558196332891678381979430533742158371666969208167685852353069066081370580879759888295016027352691038176182407634655704322912627419928717184732441366466419405093475467338409436509812126658021464277887272036639598672549558769346916509447636136452762971285271677309958663155857972683164780432566826455523728906068267128815862928942550319453672160687488815982852893898327667685486154464389254545899385099205739588411426762227079750875504773611355156391087859706277977331272857048760170943939660544240899257896349802951521761914093606909844470753575981638243926120622163359296283254309588299621963383250020954266465952918491835439765052679642883210534261330974193936309988268097577518742277710181599163141531566914161920382919469294096880916353703397995165753216658514889120671567858942770543887233385474517064209318427783119534090442499192483763786337404906569586779511694081703206949437796327817488308061373237393519585466334864306169602739597268442631878054360558138020816269127660490218577833166435832383455923301257246356717376728638693759595272444034662227093276529665160017741896213592351020796702188981953119409874878298722957433881023295301736574328528916693435176036271880510894297782841941885983676783472678575375622981499733525182665238105837024541344933237106444003596457707112740792957235481117723037139561141685247553003618957175035828065579884138403764714550434128113213528601126069047138755842963519028270074383218490803450736576252632318776327076871888290056963380579425074582778484517419715975219331690268792617627081585197679633771555076495984764979212537848552354029776107736828073301617419551332947659819687215748774652374237651563001676116482070596526566855108824364948492701942236854302841961310912613593076159881466982503290557554083067647963218768056823223194725029126800814394845878131759671132170815148826096509121326713560581555536462991408488140949147547102982680296835445965423298861405776301757685837181132404241114829106315706885736812384965997414230601549323547042256135447539156135301811687095488353956546650523773393964430100318719548703553238668428070804970812878330927569860310624250826378572433096983366220024965505624589237464769383664977485511231957255115595792566153952617961535401532101154563338102851033855216447332933235951851768527260672672804599271713758029936780685713127983414431968887643086248362570848854403237134838560418387674802560182193227565348886150748056989682359629849690195127215905929579815462198334481490628496948176338045071150654694043731079406266002153072693688860315206272241056624886705978609144689031267722822488613218044014355667081078069738707004247669949635188605082271770050171489034101653495193068281169353729950974060897893140269024224696473533491395572047254510769701730698998151849634561655498676727943428880278293343254660031915162716439373427713284366935442273739290225806939911155104567622806187508398827252711208588693048442008407980568162579934437936545368494776420367523005503960130830184976581713623892569579419721319088643050643017271319972107511242086342438476456093199784719748132972906698413055677903380339054550548217199986255706506117537987168739098267323924365013125278902662444262911036100285765248831382550598132175029141671798483198958995960843567807887001181206737884527354091240205326337348766415752686358325557314515504152258402613144781616179134490503471409484413075706407823478618989238635695045616748185904247929091443407546692557425605089600659310446918713732060826433865057241950311298120684514077163555530149103249778253181356690171052766675188646424643753899164143499839147690173964869073818337024814209203740145076808599553766225010029108478081471290382112584723379993014369183652060540974792298239118412032782942290191477911657258717149089460806281320737196031195870734466615264951748708001364924327833401225710917033241903322376377057385225935244476558642034780947397222646948030495780568628993908342714611088917968486238819438013926730819910942014574344645411626482442795404401895346864625229035890300656985867700759558844805706001576970410682892561206323248176935505838442306150835193299918383789446450500024889683570291990799977954664276576302755427063177551937823279478291337603298049040578316665965901671398828925661391957451421360420695517233468077965736238397237480327731739033494015044738518852998549086436036374516245218899751621140171837080722296340609190650820460608532652831256893745763730077126279917638556575118469556495256346927701909013672711644228280517251690133221508689722011581036059149503439816434832583880101419226981583218055769688759419361934349862194920183030824126349194121098715002648087463707773853107309489205320548515916020570960178175906596211909343293042952257768137947053525180127940574059659090066739386965088938086547308657272212672938657290681975637422475557793962185194556491243266471533292110096793149092001386401631314952434151530346847489930478637622993243010624371645520001541700775676556147487378607300212273794499300236117905635474726369604695091751809792337070362298015793995229296120570244042459087280163476849138064136822086536341819590464011476248115559571101824628016892000673001673334416847228722151582552314043484687699019426242225624419036267717065671902748621757851824977612261231688321081507961614991881699947897084422912806166836535349699248694299361299700973503833912047308745463400703388856447429521011186870197924820163757053904161431866440928447522778126663093631496094288903666778934705978250412123896016929097653843222237978305643497049853375304281990658020499716832306167472402981182525329057532861217110503696222497579066366874172063704707549047449842823368529252976323375814311091449585834157341269936872208177459005011224902955122620509199550519736038575055831881924618589185468749727944915360391654602799726793612563788253284121723053854974431624103008698005192922679557707727931614532393396258032301169730849093373699089664698341758752196584143357419050548488692825138251552242645167521595990193076628189761326259464118118904120670161909112827991272426620050544097229363735337755180423211216271255542249838513689352347614697052462905229549831079293703984133816646175334454775110868723909918993164928777632126575004340773847243989228446794952314531164160851240531791029667398932902035454728244619899153073680480819183134487343359315115258983995371160486327513545009399095450943250580049312796737425056484190252606123120193884214614450347695566854361390664795362228974714348474349569194729560321782172715231073453625924914241842562021227305713673521277749993635624847584082296267298894560240606310793108262485995354225982015887985299242412298693803168548188168553281764833309550913298549869113924555274385741790825071758926517555236884602161897132232825266363272525627972214960308725486481953635375111655911742033964223154035429954932709537813408234899341128542950228678479333916558446262674325380302620454948069364847644434664654062588569369692447458224557593266290189344681268769831565156837106141032819274772598916678296732450909735510537800081315122405560701785204193076620000222585225670129158149079337272003618130257124209778649582388625338593248579124773639496313353531926347546348074364294523767953713518276193228657817669961795744239463630953072748603202276139724493993428778343033652819944076843108175221813158108536460513902973167746120615962237425068903331650802596674743874738519223525695384856293625125384712138821427635730845887606223150918651729681832653487461670271309278771072719304258325078645061683648721954368173161509913161980339902534841580026009192082424811792342644133509346960085629496689525215557266630134542005801527588757244168410401570588777864761036831690359812300214212581842937776706070314912728053160311504818704811228632876742369911715147275276999021476801987392679964238347249993350338091025411023164217271981003333917554000635677683977907898313966061397853791158056722392086230085872173789324536705301351684470490088758723817068171780418418046764696121943452052158819840720308565427413226347481643119820503272457719736756670399642691850232456301762947144369987456975814004947487201039266727343231967961502507570842256117306655747161888383669590448935540130948057529527332653623060978981327104324900677896009278337303767218595674495982362911703288265907562332249935141172315337438935124658035134387945553355905849029624447750117074334569571118702060890101740918283615284906360065155593550412557158531155404151179266240924556129830571256776028627703142646131640815634378766923103960383934032163763053015940802306653472868024772533223340506398650212661209587738482214401879067412026141010594854802029875307997791392463876619613085197225363877288396361260665406077735618944434155027201848372379911863070107001665766228591779572495481874570621955488715394310438655081860371656321780390948264121372789145602406169736328082209341780508677213325507829511731612040259649801884488563148015530732357733673447561652709879386295529018408300352380850970217508008228302375594676320512538218175690233154393380558283246132312588768601395658606626681106019184906005888143234304773904721392453626096039446535582751241042895510788301363403266851622408689515777868348866314691461253617976895098489307333816346120740066927625394571756111551400849960191643098015207630072847362120419470416101130230533473272908659672536215065409737242827091925111858855872288288736154530325128625971872920254509729078159981819352191508147793724339623795571178585282499027553835550194845673693942564875863820558590383499541046634926113999071020747952391210161252271867720471316839034256202148475211424170607116046898815680910847220073994181056527746276692614530208718535055979097378123339750609514181493431740518666057580035433418869361351315948700424788933836578936225137044058069483794405705233821360474762861236075397272756591571057514064505849442918733916582425460966789997671961772204357526787129319507796638659656395240552412050550620635840603638068972218416565580190957127426900752841972245985360950907503857830333653620097938117189497269165102174544875648757886087741254972213124698139299766810436117672524893636419337334504425919569414822117956953177832960502711125674968501678576688536219636666235987001286389346627441666111161354147540150322844817902546710187159477535493672511912342190700424942444625125345148224522214948724907224551667268044983011445950499384920621666046333334568259764218705322281861126486624832328767715281448471019208113089581135637671809377754075808920454070979274408550115549150257307872861519397602604500863161026951234605732306756435575830112069867137912491528988936607858457863332589302021264865747837265040998998670629997025731660137459610136277735969271674926287509968534641902261935377913473967026948824827557479788492313970085244212762857609072355244967819438538554317666544966338691912213932269514297128144255921985959966183604883135919736580013483939405839290557558952149310757635198064247406509961987807975242705046563637703962962501293488645612696536960463380641232039384804272096273738746529249489667427098164957894483534206181852623330499831579368510385194080863178165190966055504383852780439032030976249920790654205960522664007307808028523894437903982766705305337068795776255569144197660059175496449263908485560135419365180728716842212410751832961209978885963911665211173285616510034379122394459784068307784334634976399545390764334014995848114834694366471536875722517971403296646485410258617925165506336285601900022945998771898922387079454305105195953548952509481231436420889580282068006535223866516604661623435637719361289614647062882280532178728756110084669366888941863386026400872886147081148679596415923730836708630599212448409667008334026641698159615027918820929891591982108631883214894640897314318674112383207511456439683297796519496757274762845911775276968832474568732464784324384332223921992232112110962084582123121009512737350650554001759722240147460907190679426915271493669858200222652943083857898896431849603817339637378593209747168569144262518022397252373936237185580457875049801160257568442391656119010995352161381814472076250559556683740140845220538334909313931103014280001375821090426183867710289449873460344871606606204147655933238218657656192722555359075152669415412569081368311435585515354371984072024529455436930345520907212227006978917351395563573091801708805482513645094542581396645747320017049958235641017402445990313786125859879092879234965784490859527016976814979380462916824921066699654736727223025158222784790107805007118896528239206548289243023200456837565523452142976965888074719515712735317441329645948691111898603042117302992958015891340690621012458678335409537301445148322244168485635594563127948405428298522141647786296966507243083358686711253194804493769883547745280503155172318479996135510740589466083639853175132430847286124238547195738041882463394703631058966102544477014272796226100614572886427219147507004613977522050662416001014787550874453373224070617916179143373453470482484256017676313553930040768953128235274734744855468440578977527382231621542296357418109948679396514017380161825700393071441562310391610934396071710092868200109973613825608053183829422829997706666703152316509345747788284142815614852335623765053850361550218908395757118810778275814851728150682408245081385254257792080634794889709527000512274222756189631072740476464018668076673481680103202842016536377606089703377136100716298917007678238457567720043397362387749244922813968763121018887275250964560321384152957628286333719553282122907652248020494479263166913265043210161791927995313373803536193769559649865149917467556593192212425443532240673352785496424777849402293787393396521861498798560442942381492365803467653678668710638225060132551445314383948883139651155558644453146046639260265862400428532944536730252915479894729920839911977410561455434764327966076273659965451401039004315245883104626843141118586823846950518664609942645138169620831085073498087832513948649804300471153488354377525576134486608857046352953556984125354167322875947775361568602517990289250243083729677426764325381336238868919814888252023939347846607420434552191236509355220516330201878580733309991573371215260678390776831389248368962990315667884505486002233585968653482494738760164686350184143772041162142640138139973592318969963624256979265383253504056585655023171075287369271446624319248210787664397938573281065702762947076390671098767557888286632725511963127487605874654437100711143495952472312668781706226302721313997104163631588232063204647642699602073524114480501973129156888141622335202146202308359116650199448411450192932931621895068711144168280434165222505539391412611895507841434297223559254277030293162265853966033660294281739658746811111587296019955375544866613147647413478892534480516275313403140077223264146571633565280665490461617523173981233981300626430732543756441529025372529971774358775667793953165186884014633825421049750785798828344637323930110495884932364164191035312118716957369202023767030778198723416718988928874239095347573399197094841630356051871541218212094093165850970493676620201232144395151233169750402869215028368026663539655758978793622979431523662543731934540737720463590839581289724452561318098339352103623401718686881044572338907685390510175134822998581858531954896371556648258286504714173539062221781906949960398626159268201031217810366229310125124823825331231046079190780621397215181666358267931497797955054862190005402188990012555694362184375163222197866704448018077792774737663660689267562885458287082428914842261592585750170546190196232409864535836913950198493950040839325961700220548205433195871896178372897062791182870873516869064925442912615593980957796346666052403000631755753234513222678822728991841253229954990341083861743096769119496907236862636007662299828805038063367991479527285785789835808138862195983731144476124197351879963275676326542766119824095984190153089071402484714573122990813625301273049465884080266659773244033303417900779076175884579453920300268991145360861769717150409023632728692122414058798393492598623503231847108261664005698243327265646265348364570534721946423429739663222488035244415313800556844016901554136464312436550070514613598562234626739843526753752089355029199374374205923235412813564075236349553682073729726960445933333068599620310874854819215914761262119898215158206225240690177007212799967937686396241764717523410323486982793478875338584955146668964776936489552784236174982047117988334922403188087842741237869530557468159316617823880785254293864212917780702343363522447204054731173361900257586860716272159348715801644337849766985099336786776068630627369174049802164975003640971451838692788270454842974921495237427172556741939756864648897799266740757451179565092660225341323982100023041111515848500196498140144613525597097325207900539625267394909945578240207951838866422521777567305573318832768454153488993722357968073874671827276774352845468198609994078722178258164882694736758752519679474025562715236325619042762254297073383941153905013754485369031497678393649671911870660209766833894708278825926911557920551574253969553790374876138984453078013935504118201502872923774262758650626145243618131594952738507623502296278210871758791862238620329606635733684969265380362021356778348741787866959064507952822522694420542482145937819111617101440234991741466337239290853123091112316606478035109369402634959683242048023877276375986839629217685431877848867550085742250241842582695385637994337881519536621828525912840994130557164092417549972309969947954332104896714058773859377023146794129803285423692383057001318577068715459684965653304079014078439603010257962653201556822986901604077367023136396750603585591410317810421933691081455759309833624477572086818261332103961269999041975400313475435469311177727936268413292908330772137457195901698516350190059441017842033504928220783301876178108761956454599417825163080264729265549088476637592119659022208430408753778738766913770080374367123762221694449566869260992810550637179206486961647131986833609484598215298908070515110828134464003475689379921956167934809915938455321994485860680835035324824869258161486717723850635079965272135712488104537296473097580563650967171913105076819177486476690203635265345008231801688876027388068591570291203301868301613610860405716350270664482476540908330063865561000443684339494607556520751740885237120631355875219640501530556751198792483521280183630964991566468959531897434989313817942105937138708432045482749068921885529545303812967668986903250761051779603078059149700761825067510370355450322406843856443439027481338078570997887504997479260327152151673619799519918855331738326899760419625114901787316041488351736106117405630960618955079144830977000615733163919114399474026327498390619065452654019249792006657721498730263265057738949367987561495509798487029056582031420662229252862632704750300440768438074259962349912329576875453596734322868605979292986176730713611383399499837536222179883633940421847118879844343203064951208206568723764392649144916857305815348778290286212894552838486115340918785994100816026327503722987689581195930358264497247849714417441323061639722151789339914675301425874835297538089738875929678538982366022515640264511732565998948133712387653992857875222752336752879072305828784353818075990772174420261561800332484791957348762576982265909658878866409659515107498600937118904886226910371414113617110869636386727720129881374762930376533786730095298852308348313620233031338796582817498962018533971064369339259890023307336157790047854298515759942198256929280492142047875738083880631315244075644726459977586488760154552234782740276150052558148202732082008123828921695524163224956360442648668598018336488561555782849609907312950920846696660213153318748710073823394629898219768862594860076678502804860183105253112358998606481164354104236742303602954091216879137132316436675849701720639750617396153441983466943561894698811871712538201803667761574789143047423449037587884207347844686985417138918460673168391624121361216974420902039994893559698843181954912639829420513797565934047677173602132853055162937700880965176769293223564821031579593602965953713949542869925883110898608116084958417081036959103304393317616064308302963167773639413508656563439477185906557874050492221656487706757924146034135663376970141024746451015515140760916685765941309626299818181575215976412217260990909067612729992516116826618635340545662825283366248362394384860110590930824918403335146015969488850521640556547478183460474343150282646030773644075259369851699927549440793319136789789483082607158801009241706295406055298943405604776713650205597767339314532781465974851792570494845753627190335373209643377486032915857589694048312581456190306763567131877425819678523048272721034999871050463146585325941841097224513779034166797054914487835327569542554911637606627698752427735483142202893806587492151166266440840155956248440659908723246801216268133439769652160016602538432896375663191258453472776614144595020004942296788694228424011008818183145939771765191532160867193622488679687124733083531764593964632774999157678448064803850952797543903434313255940930991538165415176006986775641639264225141127525834685872190243692031533130565389429119803605814686502862447626809989121724178022953091055361801353749890461002979600709928218916556543939150433640131174769633162752283752768561648756106914990412236680073647386102157590522385789182406512582978234169770566709772882598660837559232521044309543377317431119963824471589529459974791728692411874619197899352339033451828781556785346331306318612489742136458104156806977864775791023776308248675864593158721442850183096143255950787211788936552956749200439443346390318245886366564424977460570468755139177916878980625405453963478630820520286353771340501080343049038211166681162346688224602814620442417717097342461407447384309112697060433441333559738202381392522957293044533975589354104480717654810996796517553508240866212977158174000708720381717230647533630165570299466367324984247201389850312966232016457298934838247650615785970216523099748267188985041442539472255412326683831055668721669434475543327830832163811788709799214921275204522175588938693649267034160948274632569380814698557322088988049216706106924080663872851595579263599146865711817699757348735155847255502347424600318329404314547912129540925638268870976172633270963336735646935298218418412593315679359310394606735353754013138179701548465581320187711980561989816322601768575481412362068742690202867760088300843565648880987288280347033852548796748827009890008607724835741408746796986099182048112256555954637924806742823988465332701748292477907240121629243305774800246249234141334714454573364415580826445487719304916700011165219818982535181358038880134218090785276797907445775454601470896473328915607069936124134241663247224278112668013985405185374590344574693384100721865940324164673813943219014280273087812872356019337508602506942051106660071607002813383698653928428938519891315459528239862923919286252340263760362053140459852629400746812502823603256430234159395213289574321642676265437551740102474561533098051329898591830566320821123496095103554828588578945768708764697094194926034142010254693025646128662888807770195482536477504100660522002078135022324179600327061808984120225354896765074351566295043231779379972850328555809744529663944724755342003830548165058920810963884607737619382984519739672047230031509486974337843545278246543513436298705083502523927860444656625962069713518839908723503406330580001897504731443864421108921634320453405645409314770718018249748711773798142405496135249937896205601742034334019241467225858439090523222977626699777989436480421953867799474750572727507557596210227784511708264686981101806177868253062852889790461413197443653076023976419300735381444186363176439882634087923442346917659620947737017974445048366628917485408143779481889217476714123122859932746249025758138729556033332950575919996322289853812646088286727343349047695302301928516521167463590554604722153864472593677551932659806821436104200310484061579609651920336749991749851451376568106895908987876359727905865736521564539559089223668060899235399500846905785245881233796315678581758318186435042117599052774986850429390279539995903170374101889215753523093614345889498601569237765417083913464192795792304064388936407417055945591915584923519763316012587109430533525179618031375270573319072475074277047645377214811190980617984898064720828964265770723334188328394503903706706325363175263089108668265113598909823456364323193992960372102971065658879089650937031765648407985730268610365319694291153432253054778711127075222216085957656351721762932094280005623388575332942793808983778557613490801198605812196079186369914533629435467748184371082742615006496049504568059465444908701422748809804043914996544282747831943330590243279253912552381815539211885090314924312522384610142419214914749625650019008488176178062607603723100413248739807931006561283517698582923488120029936202668306379874261426048464377304337341488505430444140264716930239428941404986732278822526697520265886386766594656641310863913801222975082770076379015685729180916771249834004430817651456111879391506728677849985144383585308810982509461314078493998522169851187888590107877964795488957472594157706922292294369447624487533156950519370019121404897047121266297162380968361227941122198642179170741122632586636599924044429080146826142388650615097626074063845176047499586698699618138858603609430807528838560626642037449549513757028672614347123533570947789281014958970481873522804799983717213945392420192889753117006713120829068810380277826563568689379371087553044206958015419231706098030965752924630521274321976206378868568742726377830213072063140113180208823857566942451237650542770097721138984570679422194679718167880692838902998017628831760137082610240680272455788377259224017368699424597459670970168443072531970705143029699409962285086325011706988370894476705799936410608921211670558021210279947872198210945404181483481713118878761267432592585778076367026459024041787937110931227296982599041945084570035863601132873521022051928376246848867877973140838910948504867922311542074306201642682382525721626651421460652877374119441804536106815719354868126551628648614854377628753537055686762948732191313885342493411781119681808824867667197163723350220160805484109681971792360318064115729263707220556854560053016018248260047675595981952079857067616989841055453854078698804031754432218978207956139650875042027943965069209700772244374223809280088304357942073347202802143862034057269005595605638975676868905825524647181668143174416747213690310763754547893394478998660553955533902971260828375639374531828052012596301594926703647914651221170642907830577766802177673364718675001694989374395175031039697385630335448319163080608696594197062152890643066569290302542053447963052927453583121853900251601032553362822683282621397622104062476510532469711934300690453750178807893945035063983972811325502220028179668673722855026860312877199176090872004682519526167657242928745503640575470191023685871432821491119986721755638140877129881203741540617406136766309408172131215660901666910562394179410419389214275188371767152840542588166048349387010614354205866089026379137922604866804840292026232935910537469659967630385702013744931104853485198227156730002537363543200325507746598984274714975754733077834147182497830730909062809519255569871473710927601424117859806177196561642141186595640108354456667108872052716394174970078841593390277452547755798702172315222547006817172939178491216583327093927547331205852499350276642509914539745466046459198059871621942718651506452862884296317565895023819975638736965133661837055488162948809716611161227506729873335757258562111486237744890773556759537179370970993467264113168568814546310535686197450557709052545311287807793911567127436874346340887082560191124120121083151672276383494751711792198078085830674781315678837253323183146922534343716087887060588729482555197120924695508142832957253978530866330825929260130678270508945212545955714320208515362908954389792309239292779041013523785593285522775242025824264089864245849232066674324731428466640574029921041497969845763042868925506332069252381024877322995369612056214186837219325816391552302473216307914596956274972031723435488962084919027156737494377103290808200152110508061655812706128968585369845948437317915125673064164140787214130647478207955363969789449821137544550526124570338046847647693374676786307058705298930972898750326603532977210190584774453993141246002660080085939502407546295263219545149757835053673176900196724882929785807042723693264467101111279024691450081953264625812499120976653273924089602470048383423761171256900919666837918851010746184128114051530658891488884204346403277314029692045818141986262467271162589702874805859170850626541327862200763765664487354398597412962947316053612876525009906348904694692754449100738666998802018657892874927858182100203270944779804597894149453255068398100660149802486601879692542839476742360989324840333374997589980570318118492796939472100425071009403177123571367527419656228938517171963384686467305306106263650650471865467599244557316730364897281160301047493686702677348755512125878327378402505566027659063539916709056858634629065748603128924152016257036052814139319584477278230539579691472557760716334474379894992371588272760852495337694512842274157470616612463004047963502341506245504938375801766993686857449967310663722635241417009444835022956872108183279319470412107442883814161378907506411952642583877515428596608086551110215780153498691657975587792382416698549543189805284302184468528144648536724039348126370384711780482521852507722666415243204932889204251753026579414150947482333516858049275416648593274901883811609668960800399139923305682172449093082611062265268184870932481213987119843263241797725238141784295700189665464449056570959203994354875354670518058801165999377912912167173528602211204312629414378633767931805282083293013712956667692297287424774618440743226211615882240501015063924940598211843797881875069381805570918749974691150980822832797229341558439294696970017258026388744067285228019204190134222560988416466623289264108581047278722478967586266350164273984469992995228871305907350668985601346358933279567789162028029348432231630663308876381781882703783126276827588327886782528811798052345945768281984861623991372008992952132491346149564383130565210427358227609897803870190465624216146104371780141978919781330518547155601474927806222291332182840847230573768485095140600596710384209085206621621089047589930803728295464590944031996122295917001724265681117660887141051254803512425691285288651754555523884625783651215824301319319709322028576609296952800684213616459223786020649752431187092165531285967882431765738397684435630336776863413640265086879340358185672264794991697209278529494013712887752742743754842774244238233923257760859589885288611643023651255349586538636232764345396956664484919027551249548044843807429525681480025412592538653062588814508745320437515113145605957541494339897496467313891216240440330652770690059008620891745852929300013082218482000387471994402907550984433948441413256538653211862460692099592115788729362008437833459571047172728079180011706999814128627508822279345752714361491324675848784828821663866999764135302884903163515597743850804525501967799182219180544857435692995010964393475125017519812751797051424812933194670632591624649407650452487965087678935549815891969810374971920955953206138723797203477844470139913746370909707695805328466018018712944584309221094996533149564449992046913640892293850411222474783847828057084304423537712269797521152015003262157415892905683012473102310180368904296314337903165848373068326686106141236940860443674620297417330454962806819965285270416265120610693022424979201359784194936212878651197505723071223218686739325109876991043890628272054222680214382795519844605743877262893963324543503973358193094720071501757529439857103658350770560793054536076301440881328395587833254250879484827980964645784788687502136377801710481742925581647609705268682208438357785059524206855410065934081457436728413566634698169683388645852849792495697938487778685754184039174851498842032333637457517209447471819972003592773794374522091747730128560955065133953360653518670806258183952184252720906547087801996161551470413140254849394962429039137815679075707857462982747245941885601667112014726738676146588395211322261945498754905826601604136188726608901911414280829321326423149664930665627058219909877108289151958561633927046478020554011374580756891024435867131496759309866398996453943296970119442321415176584476306473513840896150249851918177287578011119498723060939181432265031586765715826861219914121887213842963416073720266452885114040261731403590882269831033542880492232132103720119589072878738056952948048037682652709856587741429307363753373021257955885186307914342782188343446825512707683965024545338864816087941043150345354421086572985365899184586174373044187681402820136786995522689401005227935570848127473083627031114908205246193396153834246261678047070720171697191298496047957687257636335678608537765286458463972049860440476090782505718782885326618727958713229833209997356067466698004285696059232853175586726515117110873984616191058485945615100143040961456752561516459565081297588495277009075890573736920350229962637028801306472437236578954013088524005594687603315133134113943561012283364086335211739378440746838614019782997351156368723702365837822586322388358361769039403494142322065801882766063355922155387974536359252960776736391152186377423410144181399310851795946017807894357935408351612190275756340596479399740883829587992803612953810434484109417350836943127220085409800404686223320525076764424164671268794880171996308374430804678326309906595045120051789141880805091033059374374680789024102448003298666282633108046524462871868846681172319374769728172098286250175483705043814768407678288931278392745982284093573456499703136479150925381255234444813012003841508937700409376581161362931478273803465530051010686139121584352732704974071327411887723429713333040373940741694622037277295525647400502319146830606827485939644794746016752462857307485883277089778002019644343688709030296017925610250498885587683510905189732771640897931835696214033259876681651153619264184922682927563907542313057716962716620178669035375356626657383621980729205175756876331761311324608573780138004238097936210836413190035653413564184776318910726958510962961067559496148951453779372473878518207718991268904302899713858498220387027779584944784952545909757131594454493208570338690060829602474532639603407486656884968776637540917142530040460404214210002652791294189236838830402463064611319355836301030974665921249414794833052699136113527186350102724041281828235202304964379158350174697882846199636923562313457316765546312163267581328473820105942692685032387132082684235089900775552347670272402850267411231141933725441594820253161856768331273023427645215165567959752803155443588567517897296016251391152584942276457566226118268747652314921074897890767414403702581463177744073795543198510282217455566655068506244185987612150532244897335111351024846742101141727848133960104721425996563792557523349422795234415561111631504018329854673205849201651889869263384569991694858107311188967153962286185348158287632566092081684905875159848114090122913236514994107701195893798927373760332421044374832797647717590496411951108491483996133634071750941788231715391345077752953138945173604582556762369813123874015925464159382729184741279096324312476064544297712718871099594339439120281909667145987031433986654870335170294172788817775632215108957857548753409725144736983722214675467763984726883676130158743541019242045558776820555916144086057021237683972258473620851112798488351311872289962319688478204556431324027075503044632502766115580676472828225267757310056321867413565628569093921131245638340307970578762074022684002999055732982816128473565072824504611239569191095165633425293402477762501138286397482925833876122447857166725839634938674736451397957020833160787392351102650230245847681327653942223182848608525141972589465111360164559916043266999151156637238939261845267854399397362395333210670798076094505176579592687865245996452560829970664774165242521612853097061688335403449854287481618600396482413876947743621449960717959565892350318500216933049432211892569750583853885863029277463998732729512675586982645131016624997348604069707197496417369442017184815343440181248839649984324268042366109767264114770154555337257873266043420342897732077629737842548703301669096055633587623502065826879952187754976356978891541464180009967264567081118418160719766287202473638692691364169222299760571194646242086583063164849366270482821385037367670686329565407814688928793653713841040420883949260647946001067711176614789657897268711649207726851554888104928863861879132279719799333940696821435506356709279763938885789787187459688313230356732636808778466472005980725379518017500546938796843707406572128684698393939475950856544600261623750595293513257201517573140134953521320031990828686935694529692112434081897017247771928407389365947244802839000261574631197490028119996391161633447969534513258056619368583890659680977466324063293465309470776127782372186289898498695047860649823983190218714579987846488624951595131447663961599482646452518892556653610686450896573770150810412718271500026617467664062268239877258507467007886804434094838822662594797540082978721709376831127054521257085930990097129233331537609936341239616677407933988647909782630176899488963415458082296240363456167106450025424377078847020910652205793414844910824131323764806638179018988511627918056734582460919800426792300384814906694961779574461152779678120787144055069654376723476649784853652499185274436292190500294094114872032097049869469672631069337102547487265534876580625373129512456506411290276103886420189039417963066723454969011239242213794011222788946811114338712175969948616505110251747577599619173761609929917007836928361078186243957921188259170426570105113588016280198157190893844147010984597041851012477927684895922830766804541240956744156714244789871775467363086914827785938949356465645898963980458448782744433554740474252813502903991628651720727038359422506120169030985448187495027683384416657202737618519281635037217198100944190145847560435004366113666287398702160565314945738240801544495318484226735098654820134449004377058232656184496495523753155785461448034318155189624581349338516127221365280015661496407587429181958594058796293640451593359658058004235870644999583942345834540789318155641185701576621000202504302365170300549078846568285913010191910853643991870305382055228001925915493808988911885996626276922467587409205951747633727387804485872639211490865392667376315938480177668653646494300468006690538460512007070210752761402214559941444586405631451253480402409579457079448073531020410627502266920798475694899952126614991255915220627821211373133918189438345110685176665243680166529840068535549279225350225279848321219763282956680522092347167792932264283341735232607296500401423024252407756675920291874505152056949652249253365245934340514919497063077356825403305863162406651343996026082204209327316778609989414732298399435201989259096880854185761264054712258414185133269186019785962452208571555089211391649912120232418262764790091706715014098386805474204863247310584535663802470245329839962920171413048637171256243079979585184073428609965713695095258300003214073960012799516760041695314770714176079042657251132492177219974423197908453451143785482609929706481008958267451061307359838565872249818782628374233175977522653845089996091941458318278466137640425031497146554672444013753812576730019923495515237165300834729158842733798375109859943275655753590370274614086537991291887579404587088322577231417394227348801335091395486281007730750278639351665741191570966628001307534539791070204050665710536119549348547583970434147469993250767591002882109621585551440792096449090916391470324411691100131944387241481053812450831687617017420797657453827741742032820933482021034913292637941403819456956703855221794932096502331322162990254672135044738239270562137100119028352431719564650406109541425643171373778286394043337976295436137397162407883751497942910299021728420139456224126156163058832421366768642197813848091303093661990373717344121523623529181805978301633864606944291826041012258820376282505207506023670431743648780624704034853431346601328531070283880565040001558454119154733838824714744696223405517095843359950709236164824419981022751864884352406511867004235803299168274157517326018800188278398387578201308090988094086636899612036126264936650927782174909953095760724917635981510078973695172606604811195579606968620643787816406135272659570366804006569109797997142870283566723151705523971401852024343706410975783667057498264641751092513256870858988498381644239484494615311952704845523621735938309782806902775555253758811327607936714047057807883445794196542070891427425000158506000474791832082962662971052680593681938571635627471323231013244028777467242578930642728033153815809245231343859657726716155777000844449836575748446643890158718433469183408861512590470048672976533598786836227036619926250208459963100281698167177266901906078885095618989836082236628409087854292734250420692419797029363566670308260825897628085179409949980913950466620768817458303227792842708455874393649542551375532214171189151677945439797108460283153739696996089604977580645385389980171330584784169419955020076194752967453063586586654725345199329841674959059967229624635869004434375498480618134766324699367410578314926890177807096318110386069644887014502503952489691334349649466147776703104286340372553105558074192879754507469406609081949485768794787316140098351690128110068242663364633964471483988652330653015135627268407111645169916582107807011428965683338965224999408692229925534313405351580884772453549063213516885383476617357750486655747836491347490548852989063538422158872111779531177920081650888495633045818604944858575022162761799307782635893070136137895585930230455400438329922556233628483171828566707228629772747900533216634686633922010786123804564295169958363753355540049161827160137682138203511910454364330345966565287169904894883564408945116129314076477887202675455190121215814159524047181477207858444741276533679492274181161793297457855870661777822373561186335380889487995449733928418056334519848734468208398704712559192994357461928136202397796277822261001517912709689326685774129825262939672561595063697623424261070746286961940945182604590010691349026632652488309370304405849879205806918326975025183405526180624412808424265706830967367921775556455763628957418330785920289023290874077419550504681694224817053641453955786610114880434433550178400192943786070697032896092542883288784433060171686363400581070922904027370371530652080392441698247232246367769752039653857740697976834016601351842130869783766090691620663186766634568932912965935639810136400337821954851074186430360481642562195653826213716628813896207989550829590437429933309905045652660365735509826369060159238176453842588588051156722804988507387966298345273175161522367419215116710789776023606010998760004023139136994530286085359511723732983280957674502812145158962291179282504598617489775768992786709065114579797785988697588546234337799770496413107925497809818139349922865212947128263356254137753735833573619362119983058628139520763890926319989275958751439222704268917657753593809330208624187152498177566024320453996175351909537284653811448025784420921671512532167761768821966968955291735197100023760500329241924182856945493897922489396305095684129724478773100890243720865386287670167086747833798840389194873625913232953532529153275081508960252902672950331821369878540525322454983237247395978419170559620243000051577657891463353660016260918362475536075061252434906950851680770907680149712551610013584865091174375698246564387080361752059866447658491177066501562627164854379103114864998200223417672432781842098047313994211430635516397278220938410357503268606705008403020063274000603608911171650129707164831948023990941220103341565461467148932911974373903727376287943129122411674115318687383192004929593345871913402670784998223749043581119148779233732355588963095520114708187293659848224850392179006197746935387365661229925521354657271307096680448728994670601162721940183397534880485188418974724286310231443106765445639687334895919546484206293598969606569572481291013641105124908299777747534389630036813385118765628133619059417440798322352721147052240037266641330101867386580986709649037850808706710249893480895096180687133378820770615563253058367449392498673463719314160130153535161763521206845125036895856146570981014226710331513323060964257114385923062025498455822006468818960556016539472268164071015772706456573478077280779387777146367056610116326351648417613587922982179931607661542838690625148448747450077878796462833501083758413530344767299552592730587718304669272664294131362938281027432590124175388788875700881901321715429891179042392356123318025568818010726003339499828304906338229871984736168223760753433579598521852634402230158237459046113979234243660715820056144604021808807610359980800202036392668014815128558451490790158638900776508086079095323020548419933885933872343356791762479829485774944391472663615129117954351414422127854457718660890774879976026567406587450576882855213812394979385972880543305589826089582554245669060868589360017374310576604487219967159383298371743557368678038037945007766275977401152605046721554736387407345148634143050561243802878891794970541136471352309479208934976570585386574446014647407327029547847506151952616435402403766639371335481286285809877505412356117183737742424984568957672383241232961403392221909235464553147310467750106533129079082861496101544127881308355291755830233144627632948850277546281476565952178217817903050100698640422738239262666998788517902299174478325239238842180080448914801688876100004899879498793435240315598234146412146124629102446474068962590980087415051726223099733375368945785610584916254221208878919933768430692057204896561546056772029931427301965736846442383208484507821197509615182389441748715094194870056726939216111178425411941962532922454755680931538004548593723595593396550117180548090860732943081560892208877965195630909153377502442731513018900445503985234626874146349521419425062342637855375641616385874229436690422722247528671939982004757834790066292258884361399386481403271638196078266540678953224707604741724838285076063809003762930111647843251137466194914838959462397684072347594316593578300288447595165415179589743518008507469988917798148392962892352193298094819737173424739165830760250287713260078618201415751490694242387970099393903968760673062188487385838525540343195112961838687291971489213332779321588955800739899280736429402323265596981806875609208350795678436744092170800976476139307501170961382298005619725163779181462119415896167888827525512636901400277854935345917714419160406097166754399792447993447198914785150609228067034343991173470186804207517746102379514625022172445902912510347460045348584125379900943000667333508463246259041951687410003976393203728219714850951995263826759144138675159244143486810855121165099722851552985482810871204372584231541504512095800455857838739584799812094775103934277008504040034418317208985008649521847441662972728512228902403468420234097856036560938845214134933594592614967433773147262539665141483282558866792428236245700644967960282474474011459911315508084918660256147860346020345499801647310797635044932858183624882730729529768727764984241931354587510627933052448182916969715574703687570690817547560442796365560353478833600989947012127892807933202031791261999181368712966432619952783227107603104305250350983490430856477846839934383785656761286002794496119865369454175240538627337024525557224975382632938168642031730847138455722803003279971878631982932190002089811452653313864515407985078772744303840892973692820110945028628439126180202768244312328623731424599358879281644269377724170902513390250091748042678629754624424066292406338527329637088882191803864169130303008150813350235806443790309714225339271531896378695676658890878024923177845929949419034786750943859447045104653448562413712713043328073731762080656738205927916934554596187546727731640042587799622810001876558806173721767029732636875712558211353346450307074360136745570257553932081663590949303075226895844568339381483850494535864349243902205774185025167665946695618793985311894290908015329573597810654638503183881897815674436559267343514371785108423210234533545960344661656542973484455229995117454410521866483236098410040800548054962849160913338847438159458426682358837511375108461903778728020068987289439008218761582256150046550083275069123181403520713633039164650410063081563163974850442541300821125010415460728168141853978309520631154561858219180703121124148156162774472933623120217159324568189577399772025147393075333080034924795455980771052477593424419845179216514192645651392629595814980863443687569781252171140338074655703487567881397469878775702714106037297499898466750898463207554366736174019867463485711746566186555288075971774263759950715451227939369584620255724502082579846343620277753255764632203859054658195533382010721747249083467087381146109716077064241083875506883548951740499326111515976490421880683625340128786663230125622535008456599001091969655104132514179033336894450488679839814501256623797844750265904856556275170398451368532918282809734503108316909050663696309718099029509326816972656798821630823518430666450595655440300347230461546531458067040643710744292896094768104023798147007599270106401928308088714878145727491642866226831746793973514647731300937053073230687723964992065730087621734265669378925698000374244646276920185209288338849663024983729253053987186875169170972230245194531783308647380429497669527661602521323687692965062628649704431197270817003507851044895720177277386578153353250147535031446883229829857794099226837734918508508313981628522546919960420908096837288621752290816237474081013239787414087119351118664208079919669949305367092135141779362831134153171406836323579310736416788758468575729733365235008648671939604990080024681271475043943924422590412718177273662071417913110558331519732724199119478970382142975048521279323657466538866646716983395982131509752881397617866443058715821201476428619825045676441804716964645888266944443047104168153072041844059435038388177250676722881571480581744764968009043270265481509355251438616079398353688175425669925666633451101364811076805727382505118622912898575044102815878989759337872224837815700860760383090295131970149097471492696081388090997531598515109101346971357458672752366910906186945349571722997528376124839777700049847123110475607937325404099895741798145500707476461845558873361024090008324320785433206283082199138247093304582454639388892602115173337024326079156342141707246324582623357836230235556768240435354217990214203326156187210889613029960840806814365095104540860132138732626107422195696845214661525384547849113402026948155995613246321951695864169247392675824841724651020344458396806029029480502041844061291366964322554114069313863505275077987773243429873150808918105617470095262497870812148758096847298535991872581204853069671191857174473701427030674962666656870834582163278678882308579643038434041997398626007040086089787198375098221466849308481189333044687669477580769661369673575605684783338619569131475975514021621857797554816519528163031866652914032872530178659373574636513916332552235697338945984864327680934585822706007935924812665408163977303859079934806173603286990406753186589390042237040001501342913464525730930521693544938870673107652102972075178900722329761453435065377108335393344164821898675393184040987198918632601887204839986326705399269437203876984465633805423576250963291065537954810241264609761453148950134514897133506648419821568743871110188696748818423099532066312131279474220212803972899617320218231610868145466811979155013941119236810954699988748255650973933678429043230788093285614254059304047787262267333522699428124660521825422758005423785976785354373950672696631133520568301312940847877815898721398822120441983983010596746240724395185457860239153580088061377460478500106253618433033381824196464717106051216352702691212097195264945826357992708458102495433785793670207768479836673383970496038650601754856348923480246599311853229423413985168338705347963349230598515890604845920609222949488412720875918056248352625433731417154523753594587132097999443499018828988314802627042170540919013452879049855436303197394485880701776337020541989999274260318131459707483703772003495900178270513812757367197890786859203875978113943148127194736807935330170595165579669127905841998024882607085229218185432985484859480581332949961979208208728030637945823644350740613269845125877708611458917289159638779482080507193715621474389363614860083611313459518479714109379735235638648956052165806574167235400778620536503610268450646962767613373398449120683062928992612702442051881073020308860741645799369263409224631959748689678133055084646339962179630941732578311488175788523643020904196091286252769217285526839241936417920706939953099296900340711621405361675310796297320204011403415233898242129160629882402659307297157518974455390819936817848163800924957219301597413747531115849964898603822317144327605828770140824284792222824641167205542598574869140645570313848299791323063050066012912597107865168385584361993785011708503042629474644145433550373982255998540201285775460607307055997401805668975351021304496445815401954846270497062872691833096742033785656560300027843750779631787941162877943338417710212887021441726237233413867001097496979063285079524431696728071060205396657394184991013826611592932679158051027311928467976359672799369546796123964794817856511250360462376915048652789586357713232786212751056223303778222548793305445141595583277240128364215943825749237260442377472057220832797758825478610889049596022377257396949880056560203459566557426152089001693100539064411794049736121244490002895795017300205356812707384098348623877355860872146456118030005963600767980156458559418540544633909545648776679467763703335898845255807903202882545747963862655319664014839370379328990587372125858651670674681675541215393900599234966028769667290630049901938470207546703331481555576630815703142667745634817362439944524193314498605139396324604312587654078087697948895379373182263981824773699944045958226081073175089128309565878893351995584499539323447932656303622128985933932625724480296230045753871728210691645711159308596631526234302474515562157982900596761469052410420437122880629525437145395958368017119665175367431745093321501478567244400691622645004466404843717943170464593478037193678173677247209251390331387623025659557046753342593923467724095678199418824852856100114893268459365589769911264564105737341752877823193574017133979446941396894249124598750877127943541198322222311840576833500630780586085549426075287215515521318379027027795578781320724323835425016223010308780665902286938405692030085692445336325556859440857816525436684111963235935924355716432331072375526935186073077181816690604060247531505941771849510266039383469635379529886387957644151476887316199110139490754493871024317124382315894011653513068949242631242738321906001873076253480991595282831861499820006677664975597827373050708316242207353660064234378968112197783502975503304052436022709117642082940284431588487812617852844886076621471172745013115230713284071485406478618989979541387491834055247833269867847336592793179299905637282307947669401755445431784713038573726027890216602074198988985201125254698140082019106611012540252455586496718942534838736127988943574162169973940798042413070298277937283954849196784033571806193086261861643395747739773348331348521434077667885408161692374320431290018558433764496887393488078284249020696468483956788125622640260524299845393845897119329078692865225397607328991076137233976708505562139051070867903783814687756332673020271538158138940117800479474320184683594196053095693991342971204243382012416286677502108046380866035647538556452616435044640376811720062326647133488108937660672687906571997655583530496570656478280677836707620332987956058542232141029899031828944118334785318629016194679855051894291323971888313983766091387209290292352049205126561394214884175129853403208122188892556749133107991314760525322118069746094345628686969320226729544112788393293276244576391286358176180827996550727975651992307215091983689960761659515401807319633431677808741290490747196629124425245676905045309931622599331184675509774561084181468507687246159411829466286495087302996046569249200128053692443503432848875682548144247423153759692516897354638275457089887649273141620061660994887301522863056060614225581947799560177549554589323473814042912752515927770116694397735791304251151659531882499819385779413478641618270370906073068159836945510758472084705926712646245014440751599540493901728296851623902151178318099082152738902873839920070000674508025769028971435209586522512768556786351885950594393386326867193892522082922830008991303645008863877085222465834475744413908618230768363458076361979115333415729617507652254618768654722567679770768705613848641732970191867912462968097441833175704928337736423362743167182054388379526112795210937409320482051055556099610895705004485038085366933014805349904969014581109281903648993690171035428410396318575542019995107775662863062268295092885922230136879388139758717700178676516797611138994991783333477752098717246353463760432679077967851271468651830829044946693272693997899207506821627808908548479167649185488096724944870654997208007878645124835803567444190865637748317029239864350013811140279207234105501288163532522610445430465296543346882629496609514233326142445647038267830347825801185356754372684858989771919017139489409706943893680504602980967155306198810102867740996643386981177992684113673068536315795656593404170787428866227986531009735955425994175582292223013276727304489895462227497886368891538285392131734613012100578161403144080713542814888780560671859647226450920884415298343334045520498009828763931760731058783794189525196725251285097245820539146367240086708694310442906227580330118055568512370980060355070397099433182279602659283313920395652218435814186882069817112158894182681757301656129000773043623014947286468547912333497837347847436516355520914021695655391982557361542730116213394382513215764547223103565345846936947600241094374813591929670686615068485637819195747087783259337949965438450296016244832169983325994922370979756746656625112720746020998639533992153640729410398575508893128774141133883155956900666937330195196827616995314032899027748320108018197581621760130636270991620271436351827024029497695632865092716842159552892266762971393510230580577255058694131957712288743659473109749592914025715389184520710724665468167488619146850284567727729988606284511262608024826793802594587988840986112246053796070572235543004385485601205420216477563833631807707618216673539557593502908558453117266271017220887167849494132193742839641376687555430162256362809185840402222593801063824954021450918345168990067036373564058096013829732198170512288490979203480735123669672924646019654177333218380802927280639137566029446912987553685532578238225219166041876333625249873198124132192917599522299078574208127568262326433523734995429421747602093138200445464956447525899495633946243298649125848942145145458635558549349472734143245268141963041592772100014233985566251615144964550549347481405595761524239884951512078353957590708780275392383269604657902930512462232428910692996795108049210522974021702474302269758593431298587775539514666644347955915086114759814968212956965971527903979967233174590735322539854699559180930314627475168374278242911447102356696369102273629707059153250519478474398698050477380245636082387658204454440940211876078659379328491582962914425738463579343627016945158607248651793436132414854545639146052362871101801858285165120676484601608729153438765767241684331554182791381365068300838404330421387132938073662197081672452204427343503805681699610916359856687959033864738359810072964218841246870775320886067244478669168730101884601385509449579299159974111177352280545057230877256425833641591789081571574140439373763191165459939174240748605203874294700138706842995011240345322329876468716976476141953822086735095461449499560091357417351987573746839491828824082690483598066545383979061465801320855155764264898941093697490186677077858814604463099364311997330384065572490071641410215712511166376547081909019387079518552361890088490679387213539998011594372960400978965847875588440669539340119374661316613819595371173099301518747522688989017567474773885138239619404689836125344451843459658064621404282331545046452206420984486123975898922523503009779874323026839405192858668657875216302432477516040309893804966597287274416059070220960881356131234608683265770770791136241210175248416379125061191589244725789272648827965810157109965224562767726469998172814841286155445175990198548276366657289708996869465432073676595613664090158576570910436830730910558978863789584351715517947801554751315529323604522990581118556348739818492077049748635167209759467894419468787559186356351233284248886927074257827944033733430687518883024229238018122931775029331753667482399378677624840313710391371145217085259991684473398706095160466896832987463044496252860005094341723183482976556730650547253504376371030551343494245354271882484978701746505570321682516967165227091044669369135381205431389053616696617300797336254740359157316848771383133909450391402438046414426597342514469505116900746823209978842523927191389547004169319417675393186400030648795031064946051902909873973577359802989191792336270053093474633246899221574767507521691593096683092659281436549221624020247301716319606856781829247978094068018479001386967825227673484183921043255302157124188268728120922602608296019801387196062300278054406095891772292173510583993418091793591898835104629971434140253891206539559017546089626552376052240891381292119858556264339336871318711101798876309780085002616252288690083303080438712331717330270019719700484451844302274683463511793060256578433215500416044521741918712621812777650130320372094991048364782394021762898121768011871039472004141856623463361746306164563250952560713206472708977010132264248113227688506626757461009354378106091276550723108394203933665694872375402609189872539204586616330467808839295101384505702275120284821792457541118056538148783047941864167864824833430415925774371845656188680224231202602045759150734464411367407177668775488436917495300476524408888372197744296849983748704024614788403194873673759530483248226860637723353024620418715748007821354177014714628638200488351751678876338829585021360300157135298182191578087868648747304728933443806548564285172184324961423589017733335595009559824449106791380886559660536349381529930582429933292144141196868476579622624508447359256964403533240683596779671038967935895495954468880734552639665162248271969427603184679509023327134064373521884830412765240430152478675254285892656978034768466890478993911869738870966525572059334713170591147299782287742547807954510141900737458950848777886346635678256106467193765637588723809955914209845181540021352451630387203399712207945877528874939968175105563271347608988663204586385291403597192157852448171764377227312251477491049364277366762744909189107991349016652505817423517751544153692768828022187281393565174975941652142391838468261161194491385532292435601749697817673626467984684507718238090819934275761880381005774460877395081873257080256995288297570027502061462266397966366679610479027386083092027366949200533747866731383237265863756291684921613888358415997862483036385220458699559766686136055426158087896673550381505368432969241492024206494732888298240754997730573692234802502376919142914950091571637317201000533323433757565211514959683614309451606210289641650207521379381800986875076078275753763923534714418870143025187822994981036704828586211346581332746195704120876316962482621475790409669612601296305000553287431346651366125795204757661708310042058610980021513385075860235930666229549946307985626035088538161203815272799820927920205940371573692767437523987850840397937661160566272401847104535867767737757900456956620351754445286137123296710026134877054140672291409306864440846694855823966583365249248234661551214089170307602631037079625771473129776053624446296610523730934148773144624995129284951463785398359484233901613251771115150916961817933848853751283617768694252353958059693960950473913238832215645339575558902049755705487861843252608585623212387609838946010705843250906598994955627518890116201702329714245850534866237458876287186680492684023524264847523118861449514951919904368748787260361275112653347247616121752844521313241345125232673298169502092061401934581071914007614379250789312587215433422669820143374602496240982919219471996651685651294429586336512372884265081881842983579675192403447518546505935678817461628011950114305030608492854307227292087173417620058567197272465881041384390003304293626992838024250223962302106420641632495193572372286468495178528282964842226665469037235038771651735524772773741803537730848627914364675495254272468306387416295399275316633472515201948921129543913808275000269887205460154500626691001603808997887830623620909622992062978688073173185995244363136286464643935392347574473662943233080570822315708052097613002266152539551053910853767670528317512106656014271312319187017953232423100168375195563046130170623778327842075291631054876498111913275910937469072921310082508251075450537410989188678686077868622321277780884978443426979623795566339797927873299360375293488139949683510757080412875636947736534242716547948473876321019913223431114000880755232658048123637629728864156745100129737174162726201970932452161339006736074318378990384980449948646093925025361434779213867707580147946873914268687600577881578518817471316898939491964594465707630071572998929909869232529536852713294328878856694175251115838321375465028526141567025989742759393677429074156074236491907993364887837717743826492326230571737180709927014306564296346820788301095078759746009593496850170615339003567601269038426236612023252377928525243657465696164017327592344406798642324143993760657519547024006885823485444076388055409418673313187325853813957984578161891177145188730331689841846971419464643339169689551338330728505988024872554691982562129972901883836956341740783501367195749935373860534233544879342161132808801579938181473833576038105186466956127119790185783644593297734257580680535982930686541772936278355310656990114857262428365650730487803480537804065799247590134970152619108971462600982356237358255220719995089175680246689847718460433558161136914214828256077867572310661727445857257519666355218584626935472566727661448035072210039082089718853307033319315044983302847637567585293458337904798083374698915721644644116196205569364841539267429595368901216005121233493416799501925868359088323914468170146676326384859232482189950262469005840457840133202717524861429215330441141652395132971926154521445929010976468081048303334625854358766778488384548428233905518927539304062749782973373418291760741464947704864855012150478090224873777757888704173149449153894416072576387194208969827804031612834568897960162690476040316820615327966205251494410213165900626688581082714116188208882262715851822240858918969264060587432713112872776166650381479267422781580542789261580220260320322522256063949258890101878927356627432479032275141491812006085635433379389108256767759979917880308818959301999647690488371082963478746704476079864205800282570798469928067924705509810189936200643219179035898540388876698948354994581940516562098427199144694893204868074687356936638903335528693126168407276219128124365512344811152100914459265673162579844311533372698297095534819864067876210807637131565502510264899094895151599012239261752832314729258103849039654481435588290917696876041158202039990884920108363101804693903038169230251523660323433932498239480266634621443901441725774254209858158430638834207988591643636260929818269192933645643938999391994561684247123750787200170713022087148023851112345190878842488849626678563643226390619556271226268604440459136117794339428812395588602807442669631128930143256642287290333892338152130979826675115205971346133683584523266649210260390936319889343353151578294323915980947937785360532229040490350378905314378173147307991883516146416142680928938664205680876540284253056036690276401294677959988929142118408225111119669610140887222496380327555052185077549559610710581726724557859521094015186376525522616741292624840665017136140612415760440785200144325968237503475201513031424091669941386768625868494042534087017618847310851919109876846845113596606913220569782959427539610148783755131173446040849947014532133568133309334124346404166163546657439368124023407343621754220291919571250739551867796547582599102962653066305630171011488967941653429411866171966202553728864512572167400751320106036708863757401882780657933065785646578232439243938966853075419703256586571503069272706185233574858315083770915004739472946955591388625316837363126444289595434523654334658656154103669249677098476078467752397890916288684335122888668576540507318009932218821468093608938478540207134098686045284309080633957717625634232999372341320673280194968794583746687340060280661497363514095306745832930304946536356025968601454155025133654124047512771780847632075196958745996498464287470860923887135762357716682259365454119832407635333997767629707910148549066851538277816563066321321041791815793416517029451014854535299382318027837568562672776094057557558109310633144949490331160812611906248973662056933167397265762750096573179175107061484735791944090438109457481104852827496008724074969390391423854250078137284078677298666445304234901580727370340282574534159129811720353447327492243177337165151083891407587862414543125033713669943960500251433361104170347167504022859104110065971429820266180988107752561842662998520381356656294879305881866558206083737831632792744211780713124309132943230384274359035124241645412736338627717715648986157878728039129385906790933394070025858270941604575991073909195641930885125347212762023096640796347081095008140597117533982303362372574817825643000578527910864617331194178181386804946025685509664429142486071421429967938876155577419397800218447278376785220311188509489094597398121902855197140588479338240992372739034594207972923542002658524535445229362589429131584445570502084244878902279276288555410581962976590247181444045953914683167442383034104004447485769153915519451126953590435762624505784985923890689021185662089079082342118138564278781868189682856096075728371198391750487248421252549163834819333225983938139866002602300627000912134507710443689753240355621598094973542891347915074661104876090373443917386611980039158071066940454292402457791116691120608493620361347984019098177450217270056930781474215411693953246021784140887753747791711166086137573021117854071782092599308302416928847567292708011532983316248282452582786565549603774446960814773251635510275377452751096748025712946466428910324380401744322583728149478033952136230221148700379475448250026495384103011528438845424860881808136684077289291330701256664351955548246713839664241998648853921657244943163187680183493927969509317209753628115948505504920046056665832329389067185333449411903448631433593219879469455121688746060151552735798192456942632284398017907187634802338817669020032412287748295700748118290722215036571080871879075666127681398560083857890885075636205547497883150191889779622311520950330424946021319636714731120837315495276856868276272386874717031600735417375505713104828915089312532523966623693638986819935312566304193667429875805438661113119587187266731254471470325636344952565133731428432712378396167835986035528275184006458620440615895533257917043897996813515092051509878536610753844051563647987479994888876879659429048026878010382576480188637532687615839519028969446056097750363889922823442017718289438855361730435880629718095666074705460950412881612133659240330064555929419927588158025126045520840096954856778116454008040451642121513237304086352117338820552914586233987839520713492897149665053933700510679192398886327016269279881605435799139560357107063401271352020334874461205930099458484871684787388484156563132311369478538299718984216986912349048390120139998949917987060258874421403506957457421274033307088833315503196327029829597260540513886418480921297190981835077030021040965189937953973225713083168496806002400652905663705639246534078599216797706997217338176709593204073446328487003086009389900287711909495965200077935021222353355493480923382177724125460753180682969941258286248863776618958557500212543044149999843855231804489504864070309173651042869899440983798766945505523772346810212341575346632358594849755412634543341672419624938707522607312643329936362359912572906515680067796971885671419634195237539151128870777258361604874472665819495004880488963383213788651655463839488007806435498905622973545123823904886342533355130644858871513130410795265706832670473742455957568124493569666346757891094702989512571106606513167776189287489233985280711423534026483001608599009113351533301894971968201091532662186392047835102633775152142226230494084734904391171239797958981496440275702977587298507656684770972046629178611659641550220915002435364462469022839740810108804813611097355666475169461681013165859797090595242927434349140598003004689169310381757328938717027407392798551619797304490201240393643740925508682282148074708194737873402089460702830663189813814079404335277718260460903174574782575736782436939320354596232528563074550223125611919377303791484447587645589378230557016779720358435586183465935757784163587062561211912725827193397488748523570165653141016983824613703200131127971833515626277914463958303344195090314723118857331751352789961592576257040478439160064968136942640827638804338195331364502651977492584373425236105875962371986288795290936395083111956814365423543567773019682901688776525461073815718136013059660884838243708436251653375664234318997331182859507189262033905457187126958377411182980067917299941979249183897580171407309482872586250076932549218257075837468558146088507460271064775979084769220794797465181358829739123033560568948869595407397712334821071894152193983716483135694902064372397143091855561943152792586998209835042001788532358170377932365701298643296561429892100884638580473985315807093439822514619347716781918775090654634953923429730430067408596967655424369757368205456461278702257416346663570439683253524438610054349815225040431238288038282383651821785783978295339182654128388659093773727224738271291229605923303926826743227141792568569299382525713197961161245223769760975245658169915630662821410829157448905210915369647622489883648488743030923266171013841823167982022174088151373790398480423445229216883626434940691031770348235353620918536926511671006173861195644365350150436711113475026818706341117178953228828965162097752746016065914163513903276867689511018958548877039581274478908321257704825972950460561010881405497714164945103256181877235808774597516036364337964594337778140246890753509221534955525529663198536914590952126371981590846623784169920627206419209850882815216190836779923039744543708088651353094551602261560616773381517312647859219449768516968867836428570107787360775371953952489051134122208595831181599055502393770223738893894627399930458399168692722654438692686696393463507574844607332736884371600157848247808626261595115013411028679006560648794376250180407087862332521662073133404323091446742033020994901066593365482172003465494368737941252425556788820623098097266496959646776338955761783786859663286258065707324027466306620371462356596687570143271198238499569077385088706994774842416301216816933366221923647707508961515035723814841201404753074743639407962327155058731957304786989680649573326922956032791496816640568077434084282418029168395655594894151790374278371401686988309651373285377454163537747054502749261681996830145625495294729386716356594884490386009886155426351295118934423032016219113402688330947555438078323702017647246585456517761983419713987554992454251264604223603013540708839466496190515264823236813867066939572517887880313097571546574793111870920278687304802943261202541796991074593164736420082989504018234239785130860547422069653197531757848219222393107279735964426370578423322881147782750801128231410048238582537117863385531258985460219027230787141049178799308150327653586756582470241488184573720468773477178011949779880452553023344918355146364266543655900589343871145406896733287158039421078124782861552544812733727665623674402900661612634380134273878476973905292437131358928825780316424516140350288538255338727286686716226163362756587567070423079015094114402036118328594666094775659403140291186247653973145390036307328800548889485943735207483396630503672136890893239042553968225557006263143584829328733596699064026712340020574896071889945670160704194905656334699337481450551581074208865956555270794291380072841276938483623272518790439327696615055880893566871024320783786644552179290659179050565666077130238988664859428951499837842413293470809822478479689053056095016210178723323141091740406433247117788005214022427882981890862202390181258626658744429305312980452438714248089197737836651479581995919777452633825826729417407477687157162920016468719811802018255598050710184842703298166021433822911938739698192873506386286598498521960964635802160551027688124281433120250867636010401210685313202001329532096475055372555315644479606145243615793427883471217067340289680308045890850947667623953227143197428952172231040344060201310019711426336361205089848089961540715308731586405678911415906265828637290658845795925895276511123218312568255736081775343278451039730569095382031079364712773558266325821898093903867521436101202826748996856249538325998694821711428293883551345856560728794685753070973359765355896002914045807557211541561459498481744280392599972656691952282659615082253645798184406769341148652390062948027223777981087215289916809717826259780829226154574596649442147513087817312366931165000535062120769142632647270417767905294868123499897153073843413006252811923821096276362451883937921417354651373569147735475067438429905089988712501241867007791670068632745663788988068794569390168629331078077753139620929439258096260366315754429132397467209052954964449407792247096737397159713159484345525999683399386164719653453639473255638660677395318324696181557095459462797553921610821845032410592237767483378299690398950319983064891723697996185635039806196860929968525377347504335329254563384024264519163623898843848000538984184819845410202870958222572758981905980482511808391367995675015584060842573155211160465822048205158921264168606616964946779121139729681482496185871866343654256442450537208936182009697149871119730584949365074782391342104413202299212350309943878412776950631438322384070169548331580901734078389659830503173405366475102483383375438590377997812749860855537128931545418408689350814831592838785058983471621182537622786971529539500426485271866054103585035664891507054117975627274853591749704687363581747519326043719259654515358030916794543104934148502365121413696628028258490075496133090793535881060946399557463229951275457464848219171201371669494463755488516554934038869482433470914647173962439881000222189273052244040180170336261289822845788073382967515869301826633893789871914453210645829225406835006510464782412975435464376530952089478168692424408817374348421187357923411146456783553831537562405603186021944035320126428025271832506813093494351730494357838188342288186068611652511303383854339910519446985076670985615575734673267192574557487981896901002305661794537269108245499386981427424971717300665423382096817010949744480586015404262089586646338221922949014975370984623367003684325669314404133839979463192620023749092923941139707922670468478284255291288773445563363874442325192131155832458750613984376324184491285086917082229103408926265966515989825710230782986124084632255071282469100898993516994690344342057227618097118244008435255002815927317540991834499994010168996181969093482348184307338955045795153830802897113782054820023025727056104142234481759114501305472458719967328373975444623723684974358553921670225169087798898416115568616376379381758771460487038695453824999092669739084214263255487241750476411401975486571771398213364948970600109847259869801593264288990003862524431171088821164956536255343421242601183368041465442663712487978059416224766729708763945801741230918975928094858902873417920179682124131367843438667791711653766530007370375734010710481526966465009149865447605047234021371053046447059082426798610021238751392090954359712376447731982828211930727863105160262530119266296239157377435459775093153263623500973851978801732572168498823294302634994540209318605927469830789701824229532943895398354163905798427876808365485560470576305319887301299959909439647206243757229546703830885122703105450977173529264938861864110701448302152679301667775825910218023426472193049157755855455346482028166162623121060570412783037877653680370960657000276042622572513813525044017411232130290387361646947264163077640099757970046475014979676525932124283816843604779449177691395804303886536601762108920737739151409008513473140390683381496639885695516516293914059670178903327188501881190013471692580570344053934374978756414440644311797472364018547896760413222320316268180147264576729466144442872991578157396859507492478653090371982806634348909708524224162456143053437559375285937453718053406307467220284389619324511534982944163894797320539493978417407961349896138993025122375390785528153256989265078985040400758857682603728653363291024015387596547545356103308546621956207623987667012595275214347087648335238775185444710585614138105981849957406492739045906469597019129412369014084143232425612187916737468040863664689171685858176404570154542471519557419554088088145228002815767992424744582797433261755329638193079093252017281174846430333529870015524457538442550044781268204554309325954258637242205574455324088672855982516213439235567432471225778344996389624959126547436538576421917862025544915053797236383509492104975865318404930025429614895349504628171148152382102769425065803218909703286205245604383729844281122416383694678437467056235861311397826734990891988457729685177860214374158519107916911876172587788331850022076782640263950569332350498106344440355834194777877132520590223578132721632932156430663823760709254259355757665013740635601559046048562526283174063671598457129134288975122063248314408357158638059540502303082637062170126996056137891617547733163676784714054537140707027999110750033136761723419669325857698350855343313662922194523613585211391593518344929165055268325874813412121206544815323875096954632061533194928039571500075281525652458372852354627565741102888446323372980427577053749884849168244673013223767833801074278588528329792064610898486639788017314080482620490195094377702083573229496040691470466700900608069589348798707287148654432476287447319764294911259795558531397762456388958088188916486158159445692971674182475227847256804393714966203967907803123705006591336475348773018285510778418811878336883981711203700654374237727512259501019937259723391132479504492896779023464239495458467517660396837323161369097666377843339397162970782673472395838240869992706749715402541484971692718949387371453913610309166939194524101178161667049632887469049956505906991593615614381399938988537939775097100603377345049864826086465469155192922534109905464454228431142381705671078459729038164380304754792065484932444546673428404553761199469609866888294133803308351520615119411614988494500009541972986281813380229722966275717284551157715993016739242349124064401788747463099755852911341914806508113755578142687858161377921439741120779988541685013536537828929792155018786629050911980997997732224791292422638305009695658811847495690263912921232973284268949679126911543855587287286916480544443032818757205648543960793619295573460393941968146221710379011371158968930671970479842507319005583019745736302688811358771642512708586220809208489754601739458068848166267816311570053175611471879441365841436268121880486154800893393367774170238003934843401486714251632628399174963408065578921393735154547042319512934114676424269247127033031746317886614767972898980408844626488542314432481937082043970908988085512422473385333657802748978299390928546979918502159327766419346688325115207310670818757844864335169920334325780822661934006241553604690956676110093496376624303835517887534381468699874965193789429005215890212966730192726234794612600935114132583374153492396655078877687159807929961797576753596892543315593736394743984199883585563174191776827138820043638876410426405123831143597811643804575573880034938982686280691031436699496631736097060342559666311928891089074427363444542678859738984579644959606406771224930033346375401826084044002247443417383129441246195060918202715614211994782059884020109778717826600256410911871072853859955502493347710016267754402772585962500134122492654956278719406469124240941153740950050974492538198746404860899589463585041119272550474191664585934308751546627241455521214548675319494527311513649293243301673247457359650934618796117920275229292629607050575126953201422437937104859009365694931658244853265811433529231738776419119424182115304732857655130165398506167607199992483990802401654317657260095165199716176149347183030049307252922441894282437535105968282858002815643783374404079642350498864824715267637676643964717729572890128719504869459747296567143973662377182376027952055041136487112265118215268190247684438399494526325047014125655023470729800397701506371948106288672709770497178971378650936187998074090614850180913903005081850484311249276453185873467547325138949765781858576219194121717610730378998245425902373830630938987330214581239443817211172011239900743709763870818329508821265990885632035467173414677119818600686038743879928589736468700487866753203380302761692735419515643106331411672161080916171306650561974052253557838464598865202233053086292009507870808719755504952839382158473398417049307483302576037685829911354969699201971612881746970470371991848567723559223196278881698970698741438792705777118115264324395228335660484995144138922569612687671547875763068177846801653770061146448458664872668008696887163186560323872995204743094388979455195569005455360789088979966696090363191501227160649843596662099199725795175698551404854381268313202544440537817231751521140631846699647667388788720146772916553691115696381204748310568963750721657063433032740173128865848098943228114515012141130667075585049354262208819739142122196422331835571352918172794504198533992082019984030686253866486152383772294521244951972303659410498242600364671240233732879551898608092686701648508504597431863323642072693302010012618173682693655760394553358681272186016040840742300167767908640519917409199593600933219948955559178743113202445673031541605954233024595498018097578211158462693239653248843460039734313820394397779893276269623182542056955552887451357998659501879057165981931269956300446941159039262597009547426749479206051741986102271503171833563650896984101505726954148044828138825261741918552657475679773669147688197645749274867032786908287167513696531584864256432508375849308871400743376117016049450392029828387572282825631531179570884003012832636461653188341681015057053979912841683955529809181157221904652462864935786496180068730748018276717712799825382590587023669130990377375949753162693335679880255965810585585614752737223288132383255243402931273266609069079129659862941423246145191530446826476940881036899551299550092561287088095940631016873197309724930133411063343325658587796241153981685175503246015482101287069271771160406098873981248132063162458207573809116206843007304113450832697732782238252210569991841167457242657831357670835191188041498156379606521247644368664066751112482362517866896763924485785883857813615211986542452029797989442736338787287895885300848913878493855162606715212035057536698466868092717060563494097001428305712954213118899947174317977500195469416670321516064667124555475550666028030053078548134143927690212028963415010130921772121261861761645620792058595262614147825753274783115750368864762763499524887204947886771013989413553423732856414939176918463559642593889803924694119384266457821138177008428759983758634177419888119303701572647264149528837059020965913494597615779661793656658348056720820807277307642093969476606334432245620838083760436278802735662376977097195352685369986830550327474269053907042547545434845598105591652012774346484226051209405320615134691938093918846896753453897507285493696405716500830472629025603963655491065988808243456908007114074812086120495205217777258560198811033892361601465883653317316532902249077556905818113281856140989323942590912496686229821364043278125812066969351237343318550897450481201462141535832861848204286440938439457115269930746938981996914047980221602172867468401707432107686083090744408006369507315548990879132445732853690039492176284282207655950512313009912618090074637285991226351165535763527237641323773980409776918327262443205393204201399935215676676235701659083218234584237457213450604585631978013930982594631613661810143967222202706441971917005084355602221000238181437121769173816106808834970661995937004972449929592735172207736787739885109032662929082070073205594949045991326932528056225918977829080464324440013239176528049066846869754060580204116919719951001390287206725038304472256264041872650861223285361838685029164483279216201664816282944526966674029359655478911662124011585749063844173122681629571323157473554303076034581872598585416613634303219467935347563591816484137617058405089430327517662812690105387133158042033367148018538674891396397806901288009009393516027755481465536229602089858651330465339758179432732257091988170028334926934772289879468035268126942450598227828278609217020137606504205660913375849786109010549583126299911350155225446504694713318733142068305302013723220416442264885139194459715166256441328704513888087616757745768694339818531755370099692541509015461641989546931779502407382575971240119000756032161457293278709040732382878229149196957688087265192417753956040124521103082071938927726592782644956356369545527488250742978654309782829484705678274334207672497720477912748880280882019055510644402667431339640393271268667356972224044199440451386829230477658096710528100067295206345083557938912747389740348763703737324513412423090005917094018656887007057607821076132049736381699685976971852466987579738083448728098272431358692170594227763180171232125385015613243767096566916566024860233302529430838596115612575782012687976316812361288236681431027037033933495688268049233500871194058542824389518418824146306066633882359861112670876442373771306907425553218495999713653716318482629481126219539934858422959826682733766954837713598544976806573847616498759787480349551677499576012824400659471228505953498836153069264366248446687140255150748566605665346223620263125415434472911799578008728322366853031112233649620526883446062105687636042856725831891652832590931484883441995052776958739592245753931941203061866938068475877535587548477542949805909129904447292630011357529761644808905404371831620837369881659674495590958524614738469969667714261867679243654066442363081851261951409890969769303894534147661071879709429114198571851208641746809373236982500364616883123614687935587205464575678620057943302133854546185671061495021901259582554014280337367755531743034336978775192396249185832469003591203882597692945393595245055208128496843945647221876957009307382274206324909125904766925856771772916877091204611855134392030916432219678022301091736387655411169263060794078703257974179530748364448240207146565868393020195607778195752657086127958658862774308756660925817934910317501113956797825031975682380758428611599926722672829034422906505363999643184978283050490586369784720368483496664739939322067424195845734605509784181929809733830692261466790905184320819719989521656902425987733681935868892440741178520061992183921297476304134527009857284725426141534480505457807646548075275998231948951915405073480300923803340133603082550470605202902912947423694496406655266832924459096534380507797830123398506423257631301577496832226108004383542438631540343194693384965022183985925289968650875042176060795739106379333106015385001164322547813338010624516384747074123687739045923148644912597251099805551457436600541496090154551568133156241007489069700805709562323961616790059301955679094214317548661032518497989720270176931005573554838280162648239081032192218540175559914803303041765649337883075771560585407466032011564145070511429352635220063383018648521528664273344869571542033229081011784162065407410897288454442589344269411118283836025147472766711129463705527996513963004683518103151976271635839527833943983640720675805812612638648365470678012017613094630611379737739670751151286510011314368059387358806171087133280277744893140182856257205532049610047852137738037469176341634910831808780284375043174098669075676665635644910036750060868490257194766965593569567781151938409381532843429483664563687758451337878505827211103669666225407932018001853460381927570905475416160086928103022538032707317920306167424876343575181506718058281561646482473841026239455067909701082735700487920939422427479692265298701313423903773669989025281268484911425057216517651255700489495574339280238369258748645040196492777814589602259491013133559989019175451835924524856704982401317244459515526256182833917632316859615824006691837820117558151721317038606847694415557357295539702659981381508080901671361771858485298294194618850200905965972260851971604063590919952905658915206670612138596049318170215338985027238674079096635150967924602609884591413319421572744655080274715849696760640826774365353494380063365984934492605100195212026405049804565307968695153997086487477129649611673253629001951128396759719027087349228890705248877923542159742339259563416085001915602492029907100440718276143722238386605616754619290202742971998122637189371480407407325231234626017896876160947420596403414912396998683482706711564252623392779187193058268812246259631777980834784948176294252636262411296530943987818243098680366731582303992474823378945280969965783998109902836626739464118786876978988108763509332234477662368254799856403530092962139679837162897619417455427783157961670429055050645105209391658018660710583977733061210526736038966593428271975999173657009052276493509259486565701156497665030042429019605933431243726710470097528507623806161666083871801959402667919773099149985911165634120282942962365175979144743236167256468797805971177237144611957630008912133553827660342235839638567244156355595861440888034637321179523546251276682816569184868051160029428200493045514452376587280702623864992697360603741382606937482762962059428169386187210955055995145936336611218680886810066061112375555501350459219827142329209891936837078567054763993396600835917369656410098089495488459268029900820207670585256285733676868507843993804179701197314112010792911502062129980204853698831380563323357342075104388259711907710108206327463249768924829775362455906371663514316932302243169518875574435279620861921576125046849491389991721387654260949440208795653189165081770315039854249538776138857879424289369331577302502283925822459427558270403174301437581715415355308208236156715312891407824255148059801891295328565739618572894029512251070802878786541957498915522769786430453007686812144082103558835608299835617645961514905369124179946889483063300068322982512624857184502433956613360131545240449912939075902660030010316878723959010214137956110766468159947228590943292046419202123536805296324539716816099189801134154522262134121895156193360103858913478412682214723789833760184977351046184115066886411984398765877621536934730503985599510504641232995208572466276053933651887366386510006086141018647717200084274807725321712480553182782613341510621689185028551545284487998239588904281980372249947737142675765312993350948182757206852543655742875116568207902784205615815221268298963661328386842718346390233038516159033573237429080343363004372559371583316745315520546807292951249663711572579296847198592291595449960315489127787618385913059597189400766591635728373007562389734529202307610925328272867567993775979340010456195104787135709362523507593052586230849239587165841651087622414409280816759936791477368360509499748164072503066061585909109634890862618198642907505328217252471187899437095944571464524883654624590058351528135506062376811542362548250478736322545880980707285220124339357308620392077603552189411133705255715695309760075649296108147754452015093557527829108726679297797706084111156871697254672592566969269049030160490865857750140802581560974838978166908048406231217333958057460341698986223679130722772406342297543882913467276268532240576293147099393072978082457307402117573612788341119254458548072234567390161241559144411831615681946063289677225310176648490879243956353653679344587506090501301365559364905884743422404486665927446054398969516374870479611662134760368486098663912348892979590114730251900925981664733877399626321423116169742852636387853095343594624928532508686869847103838066509171110583317262576689612614671684808704281739532768221691840656759466109865534252397854018830615004773424384747652350730871812123904322623412343187647340914771771162937083318236005633259390391913622900231483026434125813387688819674603005651056350906457245911887427348340339675813799712019346403332785340195385239061072109834355580137957319399370456583822147935192971634132667219575226717589601855421641968419928116936499799933556044871525230112252381633613597632256713054182815464897658869288530419806769621344794493137463868781564817636285536802005745759533128063490083524872160652717861140987735093369723119516962416518784749266544015235004996927308280155295325111968709105638630158651497868750985404271215648350314847936327190134176728086791613967514729894607942436279702017048752341257581196016017586488848552454404421969548568016524507410862220660012386972853853441007084603443758903342867021340317322176930706148511850331186586371475579686429027222951707858763539668454192641133723361026503839915463809171491439717853513335025700440425729679486379121526622359415873485527157009798947209739207429490326373399462215961101520194232008211999492876325543960898316411152222236628430268216702086653353501858279481963089240416868407946033845802239632788340427313744082763859681805890036036870617881024615077959398827676968578473832637223363456474559138233154870124387629807473659535796044993631686406901868080264843944499625066200082124837554857995272304664107476132584137941339645607625239537135299364474933249501828149600023075811323008416888274657978251975997841038064477983543755836474190156931139931548494769792850955340670901179330854144553711494511573901232538841898605707223468745312118001752117759487280399106978907205253152779532270230283525500231958488814171962257978008742393340332795746599959794105036861501126840856844482124283813683421727527003097319864751113121619554031192875769907376471210714545464600120806649180856003189002552795809887902378674949802327341791962921075507970330781361138891440883130712897383617393906568859439513565143234372262910875894874769762486648007966790030963941193235225845494726484246652775094243240430701426613624843651246798349301901481726469939875033457995386359681860706323083917142100070496955373576661482029407422421101380549279988582607101360892957486884212052281588774762292907579863573670202349473809280711338807500493939744629768599406547893958231825361261167089512789985183426392324267131002763681163585592716625904966627648668616892967648847105965266183333694517270650090457945609334556222979357003336619869481719844495191515058817958879168218892150544322012920508847939249797763096406444778498453803005247852283096173872195676549058300957882513950074740662823090735578168800633454184927088849078957666970908138404763890509354729824701440308613079048054143634903824765264331580856416153457382621965422951650144627150904063571202522564276425595109564429658331226270136559523410090498521584153185692374502571259740720706137780044277376744012968030483466779689969892709898286917371247858257298206869330432917642871187092550385359404625760019986149899685797761106889003477041388869691420656736046502393642401014415708598383413873909960772546376381413930972668584639531457193535142110145565531697487054804909561878319435738117440514861360658540037009251280063596235171450913030889851505381631259612797064916344465620291399722574288542595435703013127737802727852797662434554199484579468873710579805359112067017351146453073447473267696617913050902208649314946271285144072535025646803481670919264508668513189850176878118019930595478353635919537865238500234946423991939316439457615813672433616392439325209430586398599560150678761557783371277794212418361265311085858476730340247094306588935667809649379304449160885947349761294424362647565890932251792400525223322278270898303246447432471054133409241322044507589231901833627746333013687445854156497277343828739441053544759046964477698459286491528694265816967484884519181640680486368925152540143004234825309245764896164235344968471517247793924058371429880956563412228808077463875663391309136333210685080008767238349748049785614047991687710379509405707758488872637134457176745451156772778120449583409018833182280713467787684709505299080031635312094336868637543604078611374213342917659931587257063669982623519865452419906376725291571092919678339734446905354156606062082634100285697876735044851954617870662693661602733271739278030835885826430575854849342651051494609380767438163942150788315953345114040309688739636296193597764032188377988242297394179064774311809679571236410826336803319963423020545939187786059075914388693942048419116038897584458088194987840901651205325766285938459448128659651786318384174020050373043847465399924636294803943965541891033828273847256979071402707990122019247017691728337109036932466558902306221694642307316085829574818614428023665753949058419895007805739109090215429017715920386209592612379212665309977477511186209134665127895426818795986030516907982180130292570980130224170820126138006146371131735907170314170725044571617419337542804906426921861587449980088529379184303334765341399105823923666866783608769647818961404263840833588432176916817633133035980361467929157278760886518632523795564446046973781503218361483910303977699046770557619242293095577698135362388856249078760022497340402962824707294170087142994107683501111937925765302405272951287142366827347305781879141551809686819443118467921558217244449725692950226852690943855148185059182578011102084943616224199305684105434725911098196478389233807409103691052823080690220276557957006151058169575348425209254518889237306082142030733539457263593166487633941806106031828734344108611423465323319999529218058529497392426725377817288777014822818315209872944605978981084528333974284138238051191328890555027107119216094435231313045283008901035009303593034304531009182550216929712091392319582997865331738151588771802097660397714930487728242697756340289461319995268265430041124171858524666971370346330313504016352606119273927675469177910486909739324355573614539315744289187636346474622085607888078773145345697890771631636003252855102211080827911279951770183653983111199611964818898101004097020003581582350483955123535701247488795151234053617816062655734602128951474411626491839647928969692982148415207376745118188497505785517328204270123679870354732819704133820802091701888204899360190763763602585142291336434318686206654606495676375839907705795769822164447814135105219869952636503413629650007685120025099042027041749141191767785363410652762957059324561332461763090791524718027309105938774522817786651177012023961856414456750522707055751998840502738175451519774122462329678236770167331872228434350633872951395229749940318536737388398375958664545409207385246921166101176899125937481153913323375555889031820562348752572244094352885218548745737363390006329671261329998399929452720870723737506940681109295959562463322001375017376174393778304494012228694415661610216371897078685786378652421661862670973884689504121425357890158501202690733344803330227969829073686643958685267641805159768619307130590288814099116375849850514610249433277759626773407024661561235463986911700195123452237364963277491415797555589242435409325663934797021157942773489722221409435619674155430868434606632848419129864361675318925489637856569917256126345711913306115885468818661367685833013568420069302660109425063306143245264689059073148280105354200143084117684895342761475124871773448491739154729640513475652865583697410386680074110793989158172909222610800839792680411977311248707606501191550938863487627151169563092929594303685811883001744693495966377288043277755859967737566110324708816587216907073336678292332698716653222400185062604753524044192868168250835079073493009041491977251790456933442935860317821307319924281299739228223924070305543094361043871715058397148746665878810552504504955042962699078055367751641516083977671899125053122095322199624685389416051948164469065526951101836385133140062081726261934628859299898884402288549048687094233195387191320987248528165140395492460630022584010509434634696216136355642684800649046105740379527277714944850032650331418834128309382879413371911537324835637662437277294850618872511504489723897994366868716938251157001225607504754755567552393969354507759928469270153396955843270463968934374697601574001744375011625138955395684915995614022510101626801973364506153695786166134071400845745752215029965288914431463468579578042554608490244610148214426152043929752631508089404373176386394484019741188122827544869538415339539069046002280276190398259332250434030039168635825268032088942767785224911300906416815407148188601316091100925554450437079533818908040345265912489898975507639405468946344351953012583773903374928301501667125260773305329092987258445262360151707062875656606778965605928709848176430256062345076964667048895725184472750752185321943676383148524709985431952395856896685204978940309535406987341206113469641735804459444551625428374647541113362812458797004264710469278819760256380922862280594737762111671016941344395472480957823379127073792672088698309189148958203066900060681403555392512371475689642895730705577276283361895740522409789616669955822882567501768224291780210888347494116168564882760647176168810131902167257354674691645991763893403658471264558274981366003740384583775928594756709330356226942361228650937781456652827396218067546274728018374341181862469306467726872178032685336212188038458793760579986242600783322820227987518424648672208354101197177519224053415512696526932810349324974287873118026980897572079109978615728139776053491096921533617226193842613142601653387129357865009323362577323219041435110987947624590573472638744758611704972815999766120235924772496095160332782416779659311805283907734980053867692364142283146501722918951696365213881028339560564102928040906530798629644394013516962504667783266496563814311689090111057125572795932916759899669234232567913548081270264215407631171945936996312258318527947295584945987897833696497269417035296884761624630419692905678437315186565117890448231742073199180847753134627230903386365348157325739114712782197950123622650432897897424921913965249544107866565887647908695870075417895890309341162382096600596210233942830308178512848286356153284556725883937057091309611056363161954254521822572111720404519171753382726857949240244737172640320993608257136927184217850459582167791624035632046158337074121749739992909604956159646195287588788887309993998616867019853668483733555368927603130235148677712610567385101136263734441383532096995442385145074859811418493894246329568752668911866211515821249009737808389815173316142403638585496841791964135694200483802774546046165101832902682061431130065000137151654951709799952553720380075001523342807752247078236978188943539361373679667282602397728704362738695460736401193036771908568010520151344179269934865294670137696346199492312678535908522600224761533346398433798506039748129802768473471359531501747839781880142262837998798868732566390638529684415301007458607401309049305188583561662796465966547621616257420458233434445618522658222763912284312907791617429623107963379478644879279708246973216012073781025030320974387388744063955291768092088855359930352844201685087736289914864353236074129683371200687169486824768131689145315613278767869862343131617076264085508183139103501026485649438692928668200982904222544713408956598403614023541188875657995589485849578922809831839852245894158496506516714910888102884999775492662796922888871910436087361860687147375465524477140790523017359561898064155346287857317420664579336869330102630713378998503431187924928972299525084165357681102750821208495979149869679536145203237860811030593371622534369635973493172211937318222019540759397170493688352201558882801292809217519784036101713344712242365340093483088619617240571160684797928192442487548680064469846418372245674807206882131532660973170090427811303740321242183178197822584091086471324269423096458430799136145424867453762718196619586454623796207808835163144302993592852441832199969483350596841975038242423404622735766080665371108623578407884592423175261154300692592668386095458740940723016004842593781980910336065049748247700910230623344204303009445570651165549648709548814831958397126815647925547507109574330988145450286954942339515902969678649604445925289558430469757969259213530212041434500869525973996859377626855032358202597045822571320223591334481599084355998379230207615471855033740902286957353000418802596096599216198870737473876893335938793046367175491488698821314536118049431519799443216762839927525566533446499601161239150627591057252010899311965411705078838009498793089543817736741112601980090715677961057766785925433902656153670126703400676982531116378664951822891400784515740143622906665420468797328726460399801040946034875680509171195794804291940041616994979692685151557522923189633660033267657379716867928023801026059917297530303443273259900168596461675099252919682890925844315218022880737017221664459065209992342335455690477593613725318114696991122531700084013138570795127285357100384909899457001125716379034178646515539755395293407987083426581920148403749038932864422399519291649796289601044919268785460396918597955721013527544516120974947851619675631286383116356603073009186967803266281907552021713017461876681219947783847972462355656026404715581873739919406647663525719451463709392428856410256402222746158400418389423732181689805615211541214638715141391792102862221881659746842490075583911411467004192948255998543608340367622769235760090339960851537220130252892125539086851759362027519515334483430187926203607785238368933439878980087750107547698631824850698660518944801735056782157140442129893832491671737653656101415623662996006368772052977759358194440385395949986174896029759263461264409966956927841842387043960651216687125433475216880026171650717712169242387350601419809885080619649253174495431254043868993554843433189600445294431433817190245400841063164954388485351130860307787991719347108234958576785273519014189597371400706973040946032334819987826192935405225488169312848935611416452699225774690193364390615025286878241277431559285607515920647044516168106491100779350970036043875436508351726675851492543997712514457351349928413833120635076291042704671420420894754814248274118232113003266069025764360903742284164356424048367746137189905463259649354839356638508446899724963022162949009242815184162233704209468688839875826206735168768779039423933686598512316336471799628053654964458216650406547747098209373170865063338890866930321188573468580669340497480678902006333306064079583579032148934280723070387177550612852002398730971975246380380191227638132356301688478844033368821766622202831849769713716573227781718780612685645329518096816980717750898997120887625702810642646498046222908812688666340609042483347086604293819656736959835814247454432602350529266332755716420422936575403974470141691257651953213667190290690212211919839997553924871909630574794542304250956235553637956133185377343813326453203834094845707462579056107332458603862831730359733831082208841379747012832770858608169991445931085246350448404255401722949863038528057365929602729625599566716560260752471070115146368448007035827460812940618169416482361294197141330626464928880062190747127573516459001170577182395938630795629139336081653793626811205251287811291923137885600107621422746393769040011975187552065609983504777111867759974387243989531304730900069617595982600191016717787122881012689570614173914177467792171120968235070343826795308720041345739778578614621990813455482064098171319437282657639329834076383791352496764628562906755515670993727261420368342981400802098839409770099082865875660049424123711045720906506943801014512507064980497244934788297874634301606410822234586035665670352472979787048023071923228704457281078647116973454787547568052788736554332956758339558991135283445834844702411603799280998514298553004447816430238938493401133491809296521478082235473620963946210148432548637280064401938165969311530335833673337315031101053782105204095653472010457755696460075026655680231507438930056186969817613844696822614923463110370092158099012673849614268665856474853212140589459248671814997538406950005847099931557832047717796389571643374572211311979669866798733917221028245534596966223656423061587208260039875008052192298321593316854640221913089673037351138349132595266012963058595868406187174404223829628834569624725545470921968749270033249503143514868300301534265780287557329180889066731153096446949706083764875341682183160667190065731889991485168897891276149768653444104089165237927914298690904134451278158979564274161723478601668434217934356334520994413059946709261318502776155677127545908804302049629696017303033978556956495163363809617856885980565577585030141850030779084318646974923384954053581384181203101375034895058087319498292684819165970195889315447442119799929047289317245254349250952984118356233625305041325189307594132006386833372866741982573224832586914185108556895148197734133578772129707188285393468683182778911083429952830736493581383889798992579132413175895996625446676567286649343786653454859445039516401731624869088393959374570482760214730459417705071520126677534789356838604130968912072842999890088085290484686351420264025502764970570610303749373049231292882184260491731392377371731245461792489503722247625313252204497605221010928475807699673229567945131966942976698173968763173110081154418641995330133891170126675767677301603064258839352783132681157733255118537597442575004033160268021410155800051621556487286629118593542396889600200212738368200354732599964207981753362849212104435325229610887163137156361734493150224208669473227287894126225554754855469618880429651854326178182552996289325766843494308406654959972882855069579371071673157463170417973240506137140639487074553392922077473995236164375950909076566116856996400002022655496724802236595248398686567119831453978931667527776318365006591670520613526953145552421210885745820078298643588654374521483092794741716335177138390697639316870694502801782070014682786663847957266150386324530467571956284169165543734970389067030451639597322302280259446771951756972133317715721240292047903599611784017640534856123393424012114785819155551294658774727446230987140391873422430706238612193830010121824247917854787526802584903423205861734677619499047841004294113034712848829009239877265935420892405382225398819581512994747021551603314902409301481323615295403599375982732147641877699236484651712512196542532624487444944096604631593956475567829216853645447102687656580837552349837925341108811026474611276155187603630582409403568058409355406833808850958210195954297377890480596677402092045347358294659232316004314947897476895858287136848040127026921081062585137414085082067577944802309782917874229900245800021684639731124951228193744878614122832471315182051967970424039271306283361191740136998423118485575780720509971870036360371435131251084273482187972977242456555424010850834465804876616930609128994007481834560067369548689778399223980682070357523535723781770061073242285113536229945677384794218958999105681990776784369572923138097265987919252494804210283721605257680090756227089422398780763747257576432138353013985308224456876544992935911569509139331237246733686606021906146499383772268139906488465123527663640674287784362259166253627222123220034047407846369913351338490108658475093935016715236113781686607536996291225919961727766858786413030614931864819413349206038763570764655453662436341844798422677586335461581111194516682037359126684983715623229691772458111111390805344285061440266123410562412473549745903809976439046111722208183087891846469055733004782622272850506958051537023865555250031303517947365249890164248432850614386629903297292367962015090341731606362874390221073130495522395946272783840448981898151723086080870138984407540640337136036069072023087004243684473213869355186085452822491311945166758944296335848648626435729183322981551785712079863764114305145310070150266797467578576160990944636577577822158502344748434677755145150238231092656280991950680564930020440567573250674459160941588239666328761602183599400273692857748138649891728202194887498936049962290367900748011902113012219546321020466148980890431652053227936291403832330688902515749722184345525650541257196042303490528158525767026453925488074176367922608971603628929680678511252124185060639636781775522401954916715540093081001215712553381234175148386395673825161454313111880604524512131154656461146617747789744539282286174562980085875408463702041042247965644009892555735762813760010518101285340433150999908337280110838292235375641517762604085296403901584070668263724370718155493135029733363562119079060558714961361658374934279221119667366595857804707268271621188520388094897209219146033357489964964777976194163573523305452653886458098345732239643468669116454831926959006375332589812783043836057176544856831959777970681887562733928819500968562137627416777676462950394426367121624125675779836599500652380106630199371749910080359251111530113160622466261280817611939613866691749271725252035369215862439350928708756535916222954066836104011199374206702228894099350472495157806006980891475887925995023394201141698524154632137147474148343833119941234106983648393276568244835748785577224931322579590480299963143792414149771823127547151620045845204145116683048243477043614209594133075267261729108696828638789282284828101310829912329787406410904280654480676586479382204786379635691422021943061262892810628930249181184897210776811688590244888917175493860208739087081359631259025840311407839318848728326939006134575621130828234029746947858711926420239973327247793946404147658722519336357854572761288461139391188769493082018513720820484041167722090511112849909392684034061342855234703809548038505339385375830697891297317197412373389013391126340573998798461140309709016832008970262835924832818170381053270345504921712080249014485406823860175101282358962337537974725727495531070173358715576741387968170336647722561608924380372012341019742805218998847719029528497377221322302233544342228656612149267692254167628632319136980179103932257921908925826534722719880888894657244502091882241344405489390862072986700178447933164550897446590025530943255237561142650926741361393028768220045301131433857243436384258736790943566805150144491563911997165520731492198727781647673023500296463925046194668465458143592503422553983812708177148883149275964338779816805232930041633646326430539221570470675442698500228588940790025982477045407239282959869174377498131048902402303839509834854156734447385786000823994169170122287351524672310898627706847179796103622853386922279235023158172671903361637988020103658566679393196598075873324108940277929176129757452253843901931826220853663029187706828529097344880800533350209580214721504102563480301234141868234739602069682778518232833471419163840973737524511383063235563168858892960397345685111922859977773766402745759730683436899469535259499063077052639793911495748058015389677834262033702823884578578291169771438615743119256194018431134204541359893193907076058327840324460095581355515016329583684015429318027156757629344246890481003911145449900916812171795328623137711518717909263552782160248029512152724119684988382226126792657737940936785178808877797578341120888370453089893856281995947572056003032549893266961081797838378863800401444829394708156990539071885716087381350242387340452055740751190169302126246447299573970042961753167015443561226913571150153909659615482890073179045606661324869224645257839455805071612663937694232694526852073743536521089985153241457041958461606204271386484187048718470863233493221083632706222113514634344010801044890694683907329661142345950228656786952599270213938419205240286412127005941066272152163736307789929652526712145487849056035571489136857979767962382472075574646128287223197428661601487049676869977954608189528178851856134457120597219534045828642494034074366426675042853677806370316800309731789945894135971775719146583446237259948655682701402265236420777268902304777699166861216391546658397288994936338314305779122105189073278552455840884114916821399122356883471737251921590904821092793850285408822882162635681384555565931915656238805373108633169185997054028918392609927674796409371257155437319534209165229642448974174509672343459739018294527466094620307543546838558244034547388362543514514481499611978815107062650114000061999124568739044408177511114153628165691980700159620894851247812462903080320664289521740168709725697931614169448967124632597524972513554773944503446673555522268712418441326328831345801478550825130566766141294307947756950821770906648170037637167427350889537675230463479843318816211797970103926982609711723205981512068026315235360995056205664359528756495410067188206717352986090766789280889174370003436199593828714981647516856199849517445597689182619317692319031002158103202404350946774038402837207364468639854456365833957327246546493207876956800635641898166973751066531606327802581429343941267626133959779015196454197405884925342205416266220065453546058911893986303825675535591636837836475384615793202162500323564483424581701617180999630690585567717574253710817240501105980979045089747514180017738863517400832842808597309206224642599511551416900085881739972724365517335781750679796977871030994818335375215756696771580761101353149127541529156780098583292331209658284472622311509697167218525295208575970277275880150750695291277586696950656656288695190968063593761422052806901625334430641776907820063956181867159343934930146009921298300266991699966245950659168221859671418807673476302682593923916435480487962741664101146885081671258349434586803764159747526484750164933239861243486357403524666908637554713620033697406318160912252195983194152722474367578764099026171090866726201255924128194306635403889140011407051722649201573507541101343438994131258205917725763120091660611532749580646183646457424946502878351725392101381552488425470901734347045069573519093547402268933695903315110001755671985542885279666990487993536435507458496744772720313925908428248163758972795370308113356360838793636233813785909854621531232956592731530778776090734074233114534624573423676142113098747832808404776469761094155994108324036350973691456324597913416589783877156228232508629819598208604799733471236792284594967045156482254534003188407990800727537745010551700889343535986293832208412946404255949158097543435718147186705744792721978967351791503300574225452483268232374157038922350839360733889026915721639376417301309669186814590516911573503068170496381784369206618533952490980835243851108888653527076059806517893830124500083670497648352929480574244133976602607186424913636698821637420871446669110924957522531905705275099127822988687920063935560973835437566707971699621955670605519123283801554386624446285362028925561020436811556908451519606534657274489601389707792569620861146726622157977805197419909629555474110338917914553755017793069017845417589789420569323537426647445710212874225874974591962723600173418282265596075913671113521458501639509088038752669785139727209043273517329273957877452710322663297095163278314545514217374413143392291545255972037243456380355350688580403736042701208897779523681359070798674687841613948330712321077846647237905322834841693577977024816109264935196459112993651961088238723964075591273991052466154342264567987317373488924175673224385438020067024154671288366490185338133754681169616581944849058404989092531514846116492954334648679698188979723052515110240452856507124873699754678768348145767347926052152519939305107329430652676145228672121862245917767069438776791613206867873279317967589141145656781724456309299964202396962953595714524517556793874534074237124177904816597515551937145130396139806353972780097803659422179125751093592741725424622239678408897468118634542371247727307672982319218413326676767704764533913308298300329100542911101140811021438862590532976846687624853297414516693473160308527324281519158985544468342098840104320171190713594000906446578688826154953513318602839268412555955438948833828450365358131527751262660658710238470593430447688242672293569447546339498182177814210093562288525922516923027488896715895466179469258396678080771485912935456064199744340199162753620053174474533457000900883604787841608380309374473318935234813549990323799559375197382039164764347188578956388103226094973272298499280781540287815720267757460697042098393973159765463397974583804884248547552728983966055438743567945923403019709289069413158982244489694544951016469938097678597025286612805109351352288774587622660575999313634243383776798654308449577859765827658549959034079256910177811935817828908943310850397204203810720646818935743627573073371838368876329814295502242839429552580033715999829080364229490838928985282408705966471203161471672837924169630196229793146373157314465814514987869227380485884063656888426705645271557767248067965153931125432186066423863378175209071680765922910288809926645757888848968721903033060150968239158634833848327820922866800542778011466445085270633999398694651990308162386788008306125732164138304866622611136185687646044460751998887949629416342751568861138359432056940251269800848569839759467144704826977573464261138006168697711879363508293916696662068474433276776168884363008103187500220859906339308431424620986374405177212691632835414338520813252654123822274088973197335063871823433845798097602394576060653880351463176162433129430477194193378279003608800898819936894105540526768341586657870662859062915463812467178153440496234345748620905126897783757936335069379849513829668499477676587867163587819680203718663658270979859827196349671467752226520183146086227425826945141168076958213393495729505815855220463262032197973957708980612743769269154493188060036799662620872198541924108928697420483274440793225220717764163057144529980726243554390478320350531072505580984640832340428904482648007490839976522521629733149146581961518806967393344452610402308804997357143959404188410038994968432030952845027382160480148238647833182339611664428693207630853256063512786695317072416498122063421679558498377469314782740746689491471326783512570980920144755536877700217030930592699136839869536879386703995708669237901842674770445599880197355464537651488773881492182653095245048389307693037577598200389488945100083736213153776422830834533334420206728792425143070512234397334003869711571288034257614310929905500345688919211098066504384689654144245136111301832116901411606908012302999335890692985798335404057573745266062170924266855278079032910486331432315484065611525721693784296322414519839231722824566265427376072188033294340721765607732804055824716326454222159801562622831714707776495705639548801470459605745543733847330732407867773739715228556072387020510019970933522519177639505428331570970154540860473834332643219195025077420372789949440724980927961295248278000423407427368691331013207283729269878818261934024189973898857616447904801904869658174343325652966572179240066292381907016147528562669791474657806562333887174682489241544045169119804227812792807018964151852237205403776761886912809141076351497644633660233405685390647489662442608247231943407119904690326139560177739193486067955394701270136204403207321222171411723307616908501183673160518183892906602959862031637073621248802715808126216001188605012160489943842869156408018386009396121779106951147441068656107360292694550609665406903673765163430636154658442894080384107182619726686917766145743867360201349149478365462167727184404074973146731531402114948144464106598400138762525034887491183319845064772054034721604705213429386727041042930353203519865837149868363838245521687603549154560265008309604692110373728638258102750126130997577689946411340430889359562705140345063992626631068016551630426878583228240525299370300497024687807217138439397222657289086267933060980467931501242753511662747500560822653682647230717388388518930840910165780442192614445506276113237815950479406200909414585266113240671229433873754866545809089570223560914470519479139031020697984685762591065603954018189900681583874924357313760783450068933804946629940641277754204719563156917667192842698089140325592994746251867529085832604010147794906710772435522495966404093025152390118419598638007404131300526606399638234130227614127160433100953677652108596408480786256499560306327781755660111225129180729377383921279299046866645052219927139912776620072182220313944242989450231779104816140713867185853026212237387255485092573813246225482703975609770436592829535966857076619758423336179829672045904061340576003498728535649150411761807047572890806067898850878098560812994532846024447498591723219878754125920145889802008687575550262020575463998135792054785729744065280172492833488016858745340048739657840597193868839802112765887581634529384617647413634909238224356395456493639185967234412499696089138208426627237947662321943872680010317664482688051989227994833895612522589263831123763129603765792326413993444975354331858368082082067001700308477543588124178403105848516763470789595498265517813516165966428662308747116622809934589827365169973301245804776069456433620807898748117527768597225612133144981691980202089754061660679663499676050804049973994069177176716958148789368192005788431259598627859774246296101197797044745467905468698517646074004054420473499109741106902354419509334697487465017882045751920038254066757447269411453700611979561544912997545010080100535454949099209486793483923680618329963283798670527390660375633875617391226085905717410973096666819619000058581544417356293029044597650123522210390981023743568906386980059117753309448327777920918578067708040602781016319975130634895545955174684460126079675588783490841598252427663651754081212893688894617655379429773383789429030792289408180075516120237717075218308586290597857968084446688612620140770151830764218179210566767579892347604078439264550924713120771513654597785198604452648849895106605812593569241140080759129067206513693723122017387481067621866165808107134216528389021979566235199681746505002813154446374872083179225372372617678717846788372914188644421274388012726313243557803984574207336030406727325360779376575457721614311038749087514972054386005512017242976505224429704372922736633668543059778027157621142370259850899466707609737118601968537556398438144878998473243321913983354508565348036003110819701996934208301312536678594239846147782020775147679779533235435607986373547619791779335265470425803448714190099589288843939251935571907279023711033111713046740428788897103333555263954822990780546112741701345901732831794992003149778098029719649329774887518936942886852869723902124298102491287710301393089781925526557280996567376031980247544741444570095764947474050337200041112645695027293392666309226777746450500778996878051034490785712021352499780508179992595125615030014246263373926482513910406943455824019306881201706460171163114644201785258163340876033421529510166670565927324394593143631413325553720713583615987993367862843689267602211067923010971907684298021185827447653972950907814760552984952438715991362367756536169956058419348846061081758908300930689475128757467231842779210202430304014778189032260236372646089835453454082689726651433420903038734477749314100873292139697656677392434229012449068313799750403641497046053206958910633767094915108287008757461027142431570372574064523603556950459591182245938216497190303525758108618194928485593932216855451494388180252103248864843334214358336074857451646849179792263458744738729628437457759287200815846974618088318358728157847191522800315473871931697370429253886275908238713319110562371206776955769550196567762538424770825132146296934245917739148070593748751934104964636404345565691323677748777191900953317790040751814971501850282392264629790042921893425979283704196878590913697674041981148857382469058256370854353539937767614998001641191607898588650676783251383386653334915929454288051203553424151919270792056565907068255291878100162283618497196216616103288508230361887625790869423746668673569162746184111424467257153074228937778104010696888541073808595697840759288717629608913227447954818007075787564822160019929584434903090138379686829374413368116132850917429744595053746732034650558169572800724822613189614405018502292153311963745143100340420208207521063262832969844084164898891549544909098133025363483088904631463887107285961828216453333487778512899751546126479793663138262219350746184285128213120758992094069054992793904842399016710221818602981585049323286018417554250880766472293565859679118178191021378646234437173699960597704860771623057637654177603083438089730101486038225555798111518193956080021441885995773370042682623553280271974100335196609089281777185676910843443862280041475877674163887126740691984019466606131396722761776704733583704472340431588308730242925000865057820961118666249062746596556901613218694358664688932193036167360645654361755451198333179888316270209116559659072928988821926502351201111035899257083877132796226592661489060438679423551897680526934895352913382460508970568618732944966007452273406074176190223584127887655796108348665801781094271396232275448165618644065134241012097616322124941559508859519992977106653019911006811684889912285914089057997657262409515928139581470739707817399547058944411614373526884378767946986397555409285600268797416798897028888809769713952057211217764585248941624425324527194107481866395212646203385571096955161824843777468650424267698568595222369418927688823624873788186918442073913306108765053316151000900476972671654161843130554793453963469417901696364293113335999331857814365904008820637684921817129208864227376242761023239885436496807104379263176164741969464238188529132482616846973686091094911242908022709195662105839223608656204497798280794431628784340737955817471861705810812868552653434922006517147234011133685683282541242461556304031458499952785599751348456302087170705244974073149403151534616236346057206227833838837529993520757539297836226620081849083915101987237584926228307219900970384200856506436819136987506829427223443008516247093685349250759321389359507126553107066124880768855577728378354226034980645287108699439351881335568557798743645389870474802102898260801423758329519780487514984248589392756500589065891569806936452549202576325375352404402260657481959749991449379941034253017846678893902230534079387657787827365034570840716491561155807650222624623575754972766210426134648412990748865606491496865336651062641422358441575175388413116831737507353739655484339428871870012581471210364722311265564112712102509502850628239718770527915169278256569308490989958097841114292260460160115082243406012955923094587929610885988615326261742343317824729272289373727672954532972392514701633894377944828466738681479540363158452981161159002138531298227999040487439050792787133885776832226748075555423368421970690263323158157062867266459944335463652658220250675982914995617592582320767540695092585094112519501227190388876134848501840780390553037321845115798558889488904371194866397616932366221242527425161761683760448952508746375639542958270375676792740139935395512901226492440505024757398913560443780600180643223419470224949075785975423475410852357719760929153758287784473463610004149991189906693262262966845026449975960333058973612739144155165854627489863746370206414442882749796767368513503735167946126359987086989653217104127794249812421845071175107781125152186978404996042347768279003598372473677453531132000212891133017978082319527161472130877782892702529354421038916830139548278377903772093137820674119821025740169427915808550104522745473924870736985628856494958811875659418109063297302850185887969913067912912710764735906046368670283277202297637983289484024037281465494710501151989177028937036716011613698589167109182154573564622189098359649208607724060555914193987384893670803930328898442500814997672376373870857175444316607001853777070943562709419038614835531707764858996015994121173471930991237223425821285588989185451712015918644221712500632630121323946025580324693210048520600481998023443570459216695202420775648152118076901290379194403987123244236874896776014691466500897917823045554537402073750396546339612450169829305375274320935131621590122914886398668753222336639095877972145912376099281655639506913823439134163802648791425369781989543879167350172061367227608632705772489352331633546058878002916002555084599799399553193325193419139424397839245046792328195226589056481948758310323673218691590842892742037544069665286759147033960981941217767606269389035125516821375567822037699309010584928062827872562746263257538042253972522455225488119771586178120257578273868337437763086155585978180228943165943554305408776302745563700723275479580908874661363329933302892579293119506315518489575843322815674305168033610942345988096117505395764826659962526259789958606745321886409133112580476272121190665155454253970550629172231662645449503918033509907320122563451490232601444439192597393485569639589478722651240997818903612888829724310053369750380599301166581098480852044356450547733537492783582866047650452231169067703027017043972825291495223395953611647708340987997151580696320779379840646421909890947291908193602240444031368966923787973808611012586291391529231193822398492942774518486551608858687752393759538802826524214454443998725348483227365568679882388056824629794906447465924275730946255434094515248162084213061205895770369142046372492068289157067442654039658014971762231515473308230916135160928595555835838878051535443374597929965604688447142719396140306795416731554660471590203919228853500230789379233758947035191862494683424698283173657800654429404607132365532737677286445140673259515371631562570402647949795383913382281017857376836354978932533675238656573414781263383088138408991629881613421586836587123028464224116194734354664823861412758545812660403529087059994993621763178272028986953692926312720710521125809275160520953995963468582889666435680337091057437292341898877009012983328648363904541667306902010034517551157240440483590407625911910537648695066750913251633906861683898756438474988553855154275079246755246626208362092991289627310926421477440995213315139231286652269098804157113492082989875906736088528020633763688653812808388333066351306601927566909699393665152576056003823700929393166057229061790984687938895945506099238244962054937864170931631663534848052988035251749009590691140599677525008162215346690719259290899973611441676664484101182141151593169216604590823765825538773485943929184629550055393443565071227531002229691933849921674223299681301648288764698664909264362588317731272249510133208942914889129250367705525555950728120016986126558648830400838413202934363075334601666465161383532197150183335628315559757299021910160563927346011899352388432542376306652354667557102727319224465977390694025490118308305961750493839766818130400587055297298174510764345319125978220935289169748559281101507684565234917824114555511766495768185829254489027318535376281430486047898549032213536927918947403076820654322487045633505213420869730825058231823345934860295082039633264476212639893279257983185449456129573671622894954256309935167541220914359615561151739723472815631491820558953913919811337651572019470605524211111211611455952913521111328883153773263979137432416950081421992975142116424872135396267996512553960234441855599325695119459432415229843870955630286702608128839972488454255620844392175102185409240139444928708250434707066627200290074639009853366507552402579801054407734318863743680128956715302080703216002122525190235148932097344737764843450026026050539258952501897100687260226446885421095382924733976947171694557303844623976693536857378797539369729507343921871751268314926457618372954287626795196756841583941980021363281637601361612776775235727314506452892958425859197255637420367049022371545290767059600534258821242416153360011590392508865943465578887397338042372991821318191419300785440743166430157324292293416638779706129638061991025432057278195295253162201107403968173077809055089903032140451912847014755893820933194478300816485831485524190321396398238238263293406980147542584099478824636824540008069226622841814240937898226048356867036949205244051206336939434335206739945781990331188370965470492779627053303892445979537024405474848614752071295094430417537247925507685591447632081681608294402356906396930452533059509112154422924282885592457078067624554422659155335828493553038235064701137191291309292088357319846048270460365948375677719961017406812911926474949800838948559705331452418604041063750426454818348736681291209954065393652843909779888796425319195761976271448966508621230412071486375622437223679166608110228674899758850220434868858799914610586710342911164399475608053796175802916746495751134385009799009756759189074355836869346367461108932409711580455828510979436551710208616392374804167491039331239704797817535738450738593510265184051040565772136201085420193297013239460464979195499804525453393666223077544350518740835846580793946916488673498528560069348187501201866936767116337123278339516216703452818698450561144761877597964763677511500959049806448342692505123060217770075227266359372653283405043923987694025002830418714871905167756321910236429969185782829720047772365120585989192265533478508286435518388692532420745550006166454862558983634126219036506563782741912913853108451510067276185111993885132326928859263422197715256724590212557177097115229329357011872988713567788535857817839630358968305954242336068782806124268844700459557748329608931698553657906526795170024525455379918671508406992612442078469682420902188435551218732375729497076374616132917840860102870877804912206928072271436439819008958775684630288249355566764767798417733499620082362534845227194780264349983222426468636167841965517060032330472544095239746052175469699999862709542158936742217738216093147982767589019950448663372198296667692957315090706313003449086957160006080857212215956055979936491887007007342789305396801579454538630168182541648633849271251357208424089788696420252099032763914030036809839413894635946930503437648931995550363993448677978304697966077425221592008244235762505860799170031605291736290685179619339555102850582544714099131444722496543924338783994529312685897586814297888392802698780895314463678216593971998586676580528830403855827420055927803802644978233391387158807687016577694566159612036037483912594893366543943649897985674592879466098792817974691193069104135315293215321125285806220850945296742368064215520429891981773020664395544814729821660626992152260775494412396511785876747200716473081835588670317907454123404962692089599479566766463581568110743523226822497196947993898762276484461454443048011372031521121564100430447110488046916993919758253419294548023436642243646999604404772832112664254647809205097049150015745775748135534222828864585806978992102830140147029555346183681189799119047795962004534682139722389408690891134009420651766052908502286845799846777739410163599172758999847170991039863234030081661957375571327715318853941736003489194845158638048953639825487822868873684544775511672672367775044352275818426332265756529527549234862431849381785305879755751971016537390606899963859798570480767989940632214817354144832413129885787423367819244200096096355739768162946716643099429097287832565308963373528739778370895846999312572909292660182579743099555911389333565839826212672066335042104850664725926402056477331722888259872092603314698067505179428818157313406896467046844355728970330578302099826366820257275419682731883132635972612119643498935505670467040228195082202070178374026841328899998478163922758059956225003750376174380139959204208011258202727279029969280881232402704588693419665424992560884792930422137549042716472013329821571767864726788553713274962436369820502608097959973300498445698195274817680473159380774553676688225001550323042424599577110803356864687665349547454324382099984738170035271718897647465769344282305455184575905980704530338425978791113396964001903963700811600147331397906688268386496339366688506885555755120057423969407445191158606041583540633472985461060403118820352966201104381249272155666817105296859081692416551122956020668946683238195072407338485597961811765499146410424457402605789048799363982993804219744249206182263117189040513959854385041040637719511556297684920950729587207887981784331031059447415228249022760026009318182292922850073957346483867396050123304498151122427230669424523695170704194107469939642680428208140932786710614123356652112523773743915665715099273512721425217291336979385914679434342969672559260412572753389705346460335459662061720154546058503622116278625991995981698866427905619456466598865588356211662393854311337702439643520604463145008146423363559322023907008304083607577342642907441665092038540846474677206172428944054694382986446537284088849636006149133268674910211822687906684783070955356850241872931887604972782567421867110330227384029603763992953826702727172282979223105521242341603447700883434960573813186089121471524782637847421519424301922317468597598690944810064549848648096077174263381096695044229481055335075061990736730922107222747904266711967569052137483231925317937053315106577439500199334964465429320679532581267318626974457184068302097049597042800658766942895113559581463789032565169361077382295799549091318797493887641379106838522476203707812661923363764114627005281856567797081149530441397208454180909180197198347964271620455555258562388581421851492415803454056592022434201392128820539329490555617019243766128469052134416633607686479569143270032795924450254797963147819301475827300287812956993800857046357178821631332449183414432071144628852712564541331048586524477286786143893578670793407251305125198783530360826967198440630863305408574822300620790794711065545296749288340968074297618340960426924920814594478341665739444368853110980980060618008188883989978185836171516067750159310281496858370553601349621876024063284594619505628558295435811001473175098684587820434811754626707642076957755604845401824770820936354314301757208728495056125914998207999235355925511976997457665609764167575045614486980592081618694285168893262164268363798393407487453659658807126523612324164640137960878250769715515233565118309710605007543402356141702895272942782316586704584705042581894790928749230865832351356277350127926118486642502386609344309704923860005024201583944820289095496816902885195969768984003917191527794901392716184724755925877610487240847695737826657347746515419963782299462551641145555152792969116479839434853768311190909370021791498703776595220767278485131565075271716263116069165395041290959611204819210498992073217674545257419742132442807694013112501914633316962422057042901903320625490258168929977973441105840569340102945219768108452058636343578040958158502120227159059582270125556576224266318421015939210951885095648625353277564321092667810375205343876966434028789651799578283517196002715259621221514089719715129010978442899531102380634624196847246712507729534518331491847923259005776327452392612626009672163949718298002229666430311620745733698563071033968041740601245636900700417436753340582418078265392058401993049594503720040917322809832966192644280172451043583110744570345456132053587209901652542976387022940762284667116499875285476557414717022064172068463431043638628257794065541125755374749052459883542078887389637993313281778227053642949531008851338288538895183625924345653947883141201424719665402997473122423975113657065479249713294825041381542458687569923685647802760573447392524130478625633103729631949756710662563660646305629101702609210961754059412024749948989794300328941331986976900220517499804821875439789277998510349067963541311459321260380961383143162911973971426447839142179753266415645722925871608327146552914612665293134551728835856712241596757118493477423808792794543643803733621648648883431165606658093702265338206648916625012611892934139309077227712411244481761550090082867364242610794746257551718835075518906107029902422152165594006372073311408837278462044079037433375514231638348502454681961637018742072901614929973582226466664139554315556414092177294709550849346214296236738504853067379718128781316950243526162869716555168768342616281021493025951618234673813350853748715293532527540224428184937513586315660637425920109263364170449345565533593227189345160030188650109493667740074096309403306306954133112378930311075785868567157065016289910605105335301631070514208834832395124122309037333713517496013929261990256141418041939505371147572988727417245358558499051011041508475333397965379433843758122841120935038624024661514595336033249904261098061957651682170066257862025746119880171062309817894223008211931985446463319700989707662743569778350286847240640388840192540542822078126600460013839613297473711904169183782757083405553316122632439736526998247279596711290009921114596780972527099860574842293927907077959040167590884689589548842354046583034866331762579851440617058693711367330701085437540498398940450617944762052800753091645595029407294552069329001595538411827750145442924263720226983751693364040640141233343707084465321364174482988453350731084041776624693604591132485173977712223285004804693292890601140580946348070118457337870734346318649034027081227887274243753162632865177300424414273829634274253094803397988060060967926373495540621913954886341391408056787238186461308613090034040626095639041528342209556026794944505305936414211712147075408109425308094256016681068778285855362365200143118694481124243282366560411979041456216186634788151450228242816239388109515880378974758560700676668957458992977525437138138443383355310251419082764131431749190994642153894621778171506078956738510808841136532140436297591109497521879349962021310860025077212212138091715245593095687112644178485706751785426269363327956177394952001283464594758593415762623765938783399754477189479229200771789834875196477939491377252217204335278161027482337338418255762228583604154053252022220722236563054378255058187683835285115324019853459117197329111582143010066809359345555159979037318677424099949225841827825670575304890351898637930705430511094629132892678547625220368506144450633743131970704063163267513321604805955191794980235425127162910826432851338410543287539575359446412538839053860782816443549137058252764847826863067614483384757462117984176586813881044711687695811279312077016223451841957534236089571051191357481365107671571034009301897212449248127364172798078602521491564773105573784942939005131770205554583933771105690695181647964184446006698391601868126975272360036535855939952439470813282819662077772389201564836772611507107131711099938826772500956749364746769683726498511075871316201675296250439375851749701330841702323336158650132336850229643418782040031146905381209181451749948603499686209261201091946153929817566285425322813911261276560143662301088299931158301940707495104044370668820244569062334883381360051404900436881947978317781768483519826626584238388774088609305126467066798860491040117937308499113600002509128910038493555619354983878131195689513655291362896445931319612400419863281907445791510033574728566517918905767378402774511250001549767351372780381405458707779282739316695613599832722706093807859194438618964559085173692323124175729917414633483064000650255877866616396612665067395666498968589061969198799551648276439691926757202693069585526357253690288977447910986578709849807426724009663156258920282150259470937959446988211573465940391526199021866828112379529867701249934201367637787695587857048544937860120023153777209163520636939179385035455888191213475204343572884749130882582804294920934102991773644382344483952600863132352681700636090973996352648408477581023771072621860073677139590248007309114647616716340342314169904815769166536964975679882584190006709301963973353406364716300311847398654277347873841631090859087879404722478513152503286178614533120657313447570387696910175883813315131135838617740989038339033066600490411480624743726223093954592778908353479095103919643655490892542465050486509332914982326352328033445469970421152601816534054588696436808146165558043473308673969221355561093022496288534742847847142334656200217639932046503361124667120620249389261440491362981007430424241547049006995614560748810637977606575503397872900878740560310843244038977302606467054541445163292916346912702878559563238651232814042566870857099113243105865835599927263610422570439859864966739878432539046757938654791410490739822204936741522787049152131174949187840538032869775196449255591873792721096217673472753598457294661362265934432011250840531817673870823598539275119656471388360859199256547852986949136567152713335830077655057854635642688089993797582222446184379320714830730205922707029877188427562843723609960827240397475139513252147006327127171776491582444532894150904568838213732168486242002767225225803511121227775317094617106395397971818751836747279309415643362801170186107981270061148972484765831966970348129049565713836269619572725324466956733618605127117660787093081005050706188349382854452212479052367425524834871935688885481954797932330279894080620506761891250810637535763759394755302145786558513769602519151648504716494178230294899496053422859673126591831897954384676462939324496522674701034047382969419370376618102877327890019990516306046204898087661036596421792742565525344042128104993192254808704568691778920763828921822442037021016572679352312363413816442715656185264262490139506870096496213957275490571144651669123760251108460249860139795278457806598618293541452286279424024694028755693823044413226927038157458430456151459688334548774281254103968737685981211263246730970688568960068332300413718124106314203965134852342226755357114762882132717254393415464897457536460327016674088772792052949844769662786955876551919801896285663288423633469893995989589136395723002900275051931370334505787797510290368129650699156582843909387749109819114615055437288661415125062024908275056817340981871992516011836583997837598447056017159426313941709030255606156633230550209007680856734173564577785104739667523675493067319265102391069134395495751529620673122563827404119183839475773486358870964014726916731977301275223720292513580412838487730440875680445216404949765168333562279971120284230912244918641767409253266348041005851282098070710218359752810280452414393601451383457933749013562204475257824964056803254393132691320385776255887132314732066766233629955076930386465047959814268343308931543703268172381952015603010296173580706011593815140336171614777631520666753050648559331744966202983841030052994192455180518029852581755021625744021052111971123636367682268153833054849935612605062452390082821622190693169472885761492787770029431437398607383877122002447154689630816252415889666786326732511801793132216367377499130720694075763468267797051686598327442091693080426200617359884364189617399238955962203375705894611695099401453433379457797370319424514723269264019535929766561698833400398115610774516126209456720648197445838208094154120253173088532107300258525924334344480941293795929379360811668870155884660674539838966910288153582045060440131067583406034518526162506166641998155947674603242788768662532569835409381486879045468127393646646348633992771967629255593050660621835290085169995018621110241157864591802741516918438936110974269769039738230119549063249058960439009687108684795077588863647147255357794740277059877273653166790185095441542310346448131134348707347550370865141237635796181027088462961701397988320268927083063363926465978927017585246055426645908011709744734782503692101030852230119433299885367122973561684095625341782185058208107394621318878474746300875645643534787631844783678418052078708837103421921932942868896288357646156207719370257059671785124453315930569645114268175216528542594512308570507998592456896977874558117601663315420904564239246714433010014726477627241498107406657037144513614693530399904845870410428839890187104465696385750995758718082578684142675698779734159606348587557004502825000873209825265093259754344632614512439855070382065329694043561146863768156777012175604066168669344295491982222135814731692199666878902025604902924226029580890410169334227996861616848417146377384738253851280647553046145803230620348336737394384188112864479432435234332785750930042732379401772643831704876058504126952530538463559177013012729703117215023579237822392344168359866697383279649101051035215267971144456541964110074738969907504529888747607469944919476006873927970359093661182424173965340834432198762449263844319354593874242316906745917843042745840961369856901695190256378372449888781593361737278789863521483859870862531768717757520795153258462962396286498472548316508130159115731543235737522659364109965767316002597662872948756392129326524202910308301082158694479129061285793770169806763257189687637735970129415281298113884920383383295017049730785068467978413694306145878348932324942655788483283250101222537583104266812395214837337002306586616760695395331604893882440911516200040562312892852259660961472368929009987818409230624794123607417208117637102812291427380102767593349914670791391799968683477383137761371189141165732825721996992441105800928335125492703016437064892842226792254008086541405072011661562567903503419950621650603549467462864620780264466848867764436660942664151412125458678041759917386297324080742137944789284870560837294835222829207711280986079137557620316040992643763664176023311388421909518383433991150002392504457497745022147803204857531747189802387509293315363259031103554854748315279916918952686676030194016098059642668886821840507457723946086021328911349130769014968374955638164960326376900142859586156923940537327828051548061817652517622211617345800622324389987673214269996643943730066544521305033512206407695873335002126991192652270181063440824549333596393428583793017906207079597737640348770220568237508226992826426681962466705048279262568663372837731481594066175909538727815085087823683706438503617608280923345493267742591569562194412669989648299360565461751377002805676302880161466614005324662174545872632105158715509613064784347489185921443996869723323684883889921569802518222877300873094643965152766992957048728728531184283787747196584583969300644347942374340725589507393508577892714264332436590840139049578931962927418640698700824496113976297744827101996526675171489919213918148269565582815910324502478672207481560926335417866765716498424300923273084930519335983576656213544303150866501618696595820319247999230653169018758850536962551086142398905971627814382014728692990401362520275304548704671439633590409475704834464854964001770446446564033570576116595404983619445500886137278228483404391480218156729445906897307010842488706569744633504186922441467085316145301347287793099511277517913888806458072286852386424232113005870048340967356718503458080464563937558237080176130360292187306653313070751246047679543207917074535063952324466003166500704270555229310822953805596629095846215383246861186259356236067613847773333649230458074417299238902475983042007992623205447028248057776120888202449145550921750657034137756964266855575571891912905490768770578939007549309255548138970365086321198491713785068199538163698842318382187607690456621314351016842768247545853569029658135267757188154113611572065336791231330063361036306694427533185249570786276448916185770378453789856375895752142508852518241754440572763805233602033032637495878151440016322272685886304298758414581382448413363533217993637301912058007302289394252706854958365077523146711762613624382914057321815160494511935811930205105714135102034234234614948645597992543156514314401183690742838809946543180990304987364751666563230685198833610025092239130701441199828707953420595817009356201528636559313409108736756761373646010913780774661944514777979150031198716855943732144167572554575989718209104258941197636342424541614639013460127462525252647923624422128048758395288698975864721363682605032732889428935737098610552753076061295897907435894810593701256301874066544683569439531733249615747805988107837085097850505087925923059048698938836699266927216912607645933636597863740152643228356760110601090345157273439779192616036495027339075541107015626696077621744972176282689224758275472097071934822769013666580431851840012027149141922123213998862349460824521971197782952896175420100716618374252594738127699631780814156773734771611783087955365168165993392242968567238194165355008660137471863855056204595561282222138420514005915498354747369489584566665743575434790847416658695503567759054342456274448928059846661219407967294217749609475474912969507934146494494979689183617572870178204579947568980100136552495261288186606655188582213891941476845268595844577136024761975056538930847994243771563740598146374337851787985984434111903352288275411784075603547656800298778442011935948240663860719370710793821204374915436752540970893359694423324305802478442184522076812644427670372265588831679911375180658758251954706302752015066104259140320967465950371578504377062530246997957635067885822682668701495757011280798016668424099043600859122205097838882617001440931890139966613920597798070463733950345312547396072142714386341761294458086340960919367642568212482158151171404837573497331942896559566370155301870353032020626777561993522957681198273113143982666904205084210608695282573747662755298185394922431984433017747412824176609974289023831978076430572508282289227658245324293193390590564658822135386257470639076352807088523001967737585698760827926449074001932420062419653393659757470757416434605697132998141988836958606103426375648875218670415894930992654358750947988019337804634620064383003437105245825541759920285541657230535300087605244505662825968142368539416489854967871197099290983238458927202710330858292731114069277577854306678757777137439757071717770983536626257038102084532160825951601674680341611420280438966201506341010967881127549636094052679342979874163917940386180101166832884778116233920430502321069093047683095898417628999988284942393104967298073755290269762791949364590706978294840987484638037121682886093903126315845004828673576314120048079048512733442485128839571441409856614427763487322463708559244120965996332429080898382952137114794224830645639652955795378167455206316602985819392502875993763483527126099682678855986892741594141709147785547565736082310780410032013654733798185308935359030238965407379035261342369658592134106433479454248915155328314075255920054936151099370562003388220383609401973888295132815468560135051027762856858891640952336328611254654521465989930431402236760969634580024707630281093274267695932551830444028394157589483141483226822110976633933745644761254880497307675504783651213109980123674012459914169073045845428283954780518223888355347568614838041399355085160676516587002115484468856826781017444335439594633855122032695003160131676428118543671192112230293060005472502102534799177181006885850259336535247283749996616483972371694774332889009207915029338174837805543682672854750921605058884137786205452522205581896049695694924151769207465165380203603512516357511447811767863758376166878389341759349600522282562475241672572856301559712506060193356927408008102982460414150944603283448026635402861126062170264475078281451356301016216538930080173091488104430745110792810896579394594973067564487978991802134831907339331859521880022682037560181318599900010405758994738160187965981421752272802868069967825750822445581283328172792364696270376947460536906765236648983110499852066022554162693017293647438967970898031800589154884966490927377529395231306158531856451498661074166419632433728404453952784036037868639421979720582603721376633430343193356934633218713674338550568480305442112783943124845356857851969636937681054905490974368072870344498043990149758943874715303661176968021446830583307005597727408223506488427554184757515600066131422733152773678519096552260099417942408830677606311793666941893006272502586021835888422159603460602001302967082831800285834678486427331138594275980211346205854859335975839167923185344712161478425041519734323977668896791459172157665457708112890282417508524903508126896938151104829112827552469997536192537925504085220628811036409500916655972223227110134932266203932545471120942069258980375536168486595368617068296735624067015086211864764761757922753433469756271903496205796282797721339293923924166476949572084623011493389522114842307780672431597371930053513833874868876196821185042559183558373448293256122669984268000852800351090465108159379309433529418624452492916765628152755358205978571369025162898512314828039760442150175736406421048703647068188494490512530549563118431846991244033352323403795204123654165445453352365520058990311499645884611246819684388305743845413743624317182892483540616803728657077463782089597110484581182822968569128588632269835920289204388262901890372136390972857998622678337556632057205030357882460017597438422287364726075123737042085495082938322901404676164880326008815855539556256474616682327699087231613107942870040297981461305136846446787403755334999161904350868599251889639432783540409840084068498715077887618308095124379710963040308869355927416508036436725994004111763924483762319597751836272674752183940468131907960902049404316969295051637135780080367945566857234364724433454359829739807823879271508871288491352893967422328262322670429318463952500607066107670587847811455934973486263679752567524587283034278802556714095830101595639957710459800673626041113662007510149366973472252359747023449568753111087281991418147161616827489421171913020113643696854435475387660153426186668865686810121878602682037239096709156581686180965102532547331579492454892892304130579752477110234095350645030604219105647420006444801429630380270765872188602944719274739776662562559934809876890391025693908294374540830040664870957124055557361719473188104219791033495747415948659471662829650569299071942844641676201831365824357661291598347666762434426207277292000037796056015783314444390067673112557841415602046533610345617805221304062201203299775526907846751538086094219872419995354037197030155497118063740778626395122586363735623629010083515486360218000420043571699564139763357044694213888042648509079160514619548136352375244601064238532716642769860064327179261066777991340751014748669890400656492895012701131188425141878715354702682978320215196060741667281928297638525236415857775652047220440689916844520871940329862723005978122430359018000544026046491884577253814868118120198753654426529556392713704895798204570592228612396501193501827142438895854659296740290357201205845654369421951835482948647553491416925748633302098975484630161829723449730920895720839527366160146787215530103697493147980044795056065874441398642266694824567617189747637225586220436468356526397125411424063153761374348471758473266267352558209118416835380212510404386298991025859915803533584691148431101579622539029220995983429453028424771634946873945223681920861588317482274894157829599105907383455625461728807150914612715962171641289335176557322752017586145704083857724272969002827472378512915348453813019896091251528994232756582398261773126115492161732145108707102418532228384628651957121094768813548376516146002159837170646273273431979913149445899363140247816112293360149579269764408716886361248575133181515730080127459309763175285331429746854692322400695206360102505937331362591404196901531938690038288724449083851977721761031207039960447559598899311517756466916620925333033505589223406229417521328469285460744814162485096270660168181088880699064694491752443600563133720239301142202905699803258840446579738546158669200557375551690285964796361155850559395609581007332779019939355600555442490159986576695639388795966979685218403169102177469474425082211675470175737476128164155407792700587980597442811731491271537979961360185867055334732417503920037936503249987197773743538989288913744721721314823949685356555188959462866745961885513562305259654031471866525294353352722974733980638666586759666295862307949387423174022591179052222210250868962619183077484872878241355977544590234310887559333861242838388296398636490745214042461012339789483183000853768626885643371903079840755622851379950718587008454825324597371240635067038411351545837349165380070113290672704573949928549605738647001624240924114574437336292176700632029763572613595458040934191600378007674320055926481945174492635079114593132749172516916402514047368544340510000401290622087008258371855017389901083630850530144098720858461626741724183486261621971250863033522441991016457420936340260306647825290906859917544734336153913248204706838897897583854110127737544479105781707884111931008586831993034354785793177843027845292503290034092880632870630677822547239170880001274151095948002521757817308687790996522871093079364953302446343852846229258621988020897703482416603398876253076681436406710239667312733472642739864980185017219934481193795962307810297563832108455932852012496225445351029444062658739390163063220881093059023898576931049407393388675409125904892089738112505929529362713790278465624910427064474520657198369914663598941716372506590333530097977640936127781675028203118139536495232700481126144363818013823155822302737976882235717721505640587315403106894148867091078094563720316097009470049973004912577073746665671991815340556790040679383877103760509408795094300847723639784461442668019015751351170094226074873120357773138544687520920834154113196798778524040785478401499465513273888384626682757684607279791663498421948827972597334387268736855135918183676187121996201808409532081126282090979817113961243642633622183748535905778155884227904737338815563379320794676339479702814389285276863563434863488542980521079183865393759132559103109384728266449080252905068665481620286754088302074528991603133889212304168530251913398180965355584067311736078324911811980096475791948999102489139879194224332070345982727236358595079100939276995480243829065074659863392952408883761085185789872929070838546215922864854600198210352911488039806500517598957744032000279754539375964641922468513455883207726743037794894952448455725656744958199613200600743922821019397692929777636756925690612888414871945819159822156473173768019957603829337628453821522091256234640552960067853845138849870590410534551247489602200535576745742603008899438902577639244313386665213859709398058222989204885328719026410073058145662319203773696952498611379247366905242285380019169197791744910461449840735498136749213981767664259259020896990905633425837118175893256509451672554855192089420125400810020954694145988773900008134497376552697800235552339531178984977763472718344051182221500009788321365132850998104006886407517903390091081992973444515810054065581718846742037713111393823551295969612174628110023943554688554371458754292620499649149763991560155137828841321101176750439967581558834690373266380187720786070117324520970611995100849709983682329412208158472340438507074988879487103012397392506945635631380202342990093476121945745309134226541746624728243332740984956701349854531539903131502457359038254667533624668354767000368793207479458710755464738891376699037267525505306513117115455265197011108572909779176115370111150814383881888973732137600757227189444511745754939564027321153867383175364531167989182308865963668169503302608652893895144501505840616588714276869886608261872502544121818956741027761956080572763721020899778174737319755952334860132581120825773360441736931200075257489403686232533020722527358959812682482327161220360308394523809751936463912260626301236051523515709548205572956364901661812750156913297069528139867033395463195936971272207789608050817513561592423156087595134704748009354606014966665229868229609511439757466603625594092229397338927069272835182886778324303049070398364245565701982187982159051746904691445594212117002951507234282964264566393842373097166573625054553359061424028419007641948494411257123540311458624297449833020798618513850575647487329275834129423611502536659994831361238342216522899979843415472074540037497557504367761860584874975469591256327407320538515861854470687179533610449306307289836549007914506311630963908008778308131216920002305908480261769245826129373363621672051241093696705188008498555985223930768083896210507621088214536508873218256457267739028310182005562891947249961132263396138218928648473511996993118214406594958311500705084436155874867531126294062678962707175986517901200545645234843380576032790919304918496548217388096257093728783347590026124510491195336986822728551863740253365479108423378882921568752125296406287267176214420668133910803896899301773124023609076779347391972119771110453682802811803817464412913862356071415098320216129143003983203433849282463973695316404677366931892031248469977164608697565447231954861332530520707676051642297610180024676630785563431834091319546811779289540071307722247033151332755975887800962866625954022696055954618729877200707192382417320171065451128449199356891706456438486256097791789350603286133554243390408173249865459245915779496377594800986326936925767242297352674433593782169401385429810531470436670352290867766592114128233397836546027426171574434650649086223423659207083192706717878374513793011675124194526085059096592153614400974131385994445131329464471908000378449058498144198227513223990102432754624083902205135163110272992992818280628472997177357267793653474457945179808383375532417352273068796879553926193718957978062313492763085447339014081471829117904775191274266348406004198188866409618833126324381534268712466372875336498010682883006138815858964520524055848376730915539450521125505415009098227155306674248561646860024400771073817651505683385995827151491317266782994106322279188151250237065107471967920229685495009779993845213419283276747541045049140261836820298476293665545315066118381645604340476621014061398950561571756189702295191724380949969280826526866711771676039807896861423668813549186555993867111070151039829925112266504694661367018294449348060028053933623006053431297109824542814818732448914456437970714526048392149608258272534296894561483608123224751642352900639782155803146997724347104835665423067969053999693064716287753144205989801323063574433887684328945013186984562230677284832853705040214418109692053650149407357615977816483267159176278096394358845161976655280947677450777659524908462701074016748444298209136766761495456613041568924281593569938288317639643564087208282211623870182797550607897452628736133757130958133379170462560886567888780989210212385498128269056965920466168781832000513535193103412470029535873906472239134857146855415750057362301034151068616097279311112690935609958160523198135896100429429547546066822339953157432185801537281321979662048706379751546727860740028181444404186126902816404546578183204660826562739919511232755626160078408253092481743732982529012554352493551799885397300382728323414112443957921054351012068830559952245222240043135179145955741350075090384429132869491004927971393901013115809869472618089763528776512392440669395589541840848193606946942211597492032355239127338603411557775768915354119464120810802465804072058026906583647049369588246707367246428207428886400394450433296987775350305191128419243845614659333124902880878743772196454027136201642532955493980072346666845737424697667995521408942448614415101863426610256870413923661700071517603572393582069816380228175620691088908676411360378312678971251881526990655623116309100305038873489899024135634881462168844137996304627972685804428769792620785073018500057483496025072771258614593182062803795966872809638896351997032511565522919737409501363988065826622449570903206665216464276872149814267618386765747864055960621550327586454575892938515492054665702526053642098179153339077863175755138811990773886693505496696014574480141432042542158137945303590669534803692906529734353189283182650642019503644015487948542788860065786838402670165633544181472868416232674080051139215483797362439242386023776167817722871977745926837427266195466971850647799605925613995871792262270292711191022827481863583028935400506111386430913796915672327524123455189852717410110919742110977295987581393973988532086734068164597669975625175954111679226857173561790743525684192574799106237727853775965576855046005582686215883636501867938061676256955955660715847051263492433979724967409414331137722383766879615192318788215498848822152763398946921374870753130546935619850759552025844475278639885128644860364015917179284138012216307183629914394556697328769082836288075013312454042662940837082493808249474955620173980396817195046275565855954338633379965684010952111516771777761537284050628774985250670970263901229321647431094189299970087812892156251406034785211321892459423486660495486567344095974384980263407442265924457777108911107953813327448371811985698517491803122961411706966794772913185067682155071752379406554305614155519559400096064746914944663559062511015666202117865789573627698285980950356754537888582610499946416376144201986205544680393152411121205836176342852406188023062116409948441525360988330567747841158740896186876600208025435210752427769755736068723693175777009288281692093136133333710569193487913044520238542354338732301519286233385938721159833331553616370820419548897972980321550883202782443059442857175188554668498573514450851632066994382063563999930182573542568823498431334965219089318081403473494880857723719505270716082644745550337408858272351336114148077148287112659281125611116639766908569975335191517983986139027778785265652132390004094733019482084676120940315592850841941385983839462063891131249284441672588047749363221929626190571930489222520480928710558112367947827820555343315301595759700436509685507061713528039892586160845305880636326502001103769680142136367583117168112898980055211455440371407440170011725619606594890843273997837080360508620711317592912006534373635153195824053132536967360296603151792339532163396920408597277260815530858865116393517602477189197159032187518681460615465439641328484419937764295178804612084025253667582384345151471989561904168152633441949401652824032392552287443010356782527356288120662791621868373028792239918489008019476612773780131017058124550117388703587754977559230430595262232855983318866421602688908474687696358023334814222022888528379507524147189091928646256814048565443944323026744438096773212148406706153245803791743258412738630851806404492610370115480060500146891032388633248044536375555352973595285147169599595786467392560076246296242857754827333595760778677522513520735614559409625621553933017965244093395353953725572378088593998932938555097926560646378473576120884447506823223521943339164186913434757363693122942295423278654025160462070499424782742498151951748394082029915875212614508212401413050912307167854075186954462245399954718771707991100733525327286217490843822672469294008363302501978455774190410996871821734836042237059747114371013010800601624591075869490469352044477007234635055979885180656788133133521856629725713224132868906696336903827572466495449601908086095185584914383948913386188314685073048791842348049120587075654297307028023295016592792342321658562802595660308302710781383768979940579154049819290760144066428505434951942140185662027284694927883204140882794829976435844833531798447812601081413828192936542966133303840310846184906970140524824472660042206260299063022635815021621130991742657115469673856574485969658311456346468348649000883122110201442378490140148521259197537825095553588261698576190669851527981070075379553790264665005363776415046868357659660166552152406164801469619738468321326592542086548318497889636580683764091786743684291955697216612256915659957230303158834766376098991390663410360951784426876168940200191500080971115738559155788367506831525709560518614675139765945379744220405430780308923835287223574472971242553561966610415016291805063789927369662858537974380460805540847195511311018299484677489085773719373232837452157025633712561929153677565203713538111687526204931739771034176560597398134470080799605008909569069619001322399376517272749747028521441402906756256633979017087632641264488394041223373217259453379298469598349210460599540659197888219915084830216074279536577009460523763543589149322077325754042625852059037391570581998737046211790046788176055428810628575344764527139856773202030563136468021719632162569897284766265026103271889648269786747509078330442748182885024800951248615458235058699732913228554061673651832216234797383299682726088363980587067482281400500613517474786089773971438397786861767234989360980925521780667499907897859130981085674053754108564756720719927053543179162499315314941742639031937729285770229084243751032622343718191517847269373531554119824672970857093964189629546206787849714318921277148611188744526758248148912252431216637006873184402508249373077544063934170073390920089173428688912033847579000527921679599440139871295597208283734682361949013078854523919182083079242367196324191200409863876923760326164620523974068045277382546306714791308821226871508301916463858513169337662388381422650225202119797547714919934576649826200174106473523494053967040243837624889983466513594999187237038638917797963653047087668532945125358864526454505444790157053711007183850843818117702602711211968254995131727786626799200896224313948103599126516856022266537996061683314361756542137662977654574404738119167089424546296087226557290887426281164087728422389255471420597248659083387137770836332080973712200850023375194594515463547819942225128795847670718361529391592774223811547815849873134399209859284163074560800208543203098461930892237542636641124012282608286732981001046051957061472656961202380214208154824745633051583619238037790348760725309396096173293944233012683928369388569519015047302835850554760175995666188594916872270483491995409039313002127726335049424557113461296551548909934168704686718021835397539041106096869983667717638368378703631282213602608643128923564103255785361699903372427357954994030040618854226497856195973573589888325502064572848960436601639042335058301545068956843485293693295674664468730650080079462073839961339185371305975527017478905644806260137783737719603869797351888098647735060486073162167447912735287798286946131742201663637457118868187842191169522219742020853849560077547227313071555144368726236474702585870405584317711645554470887529895249863628039591046166247122440965727831150842465148467535300253819048647698591224265727533085356237659124441156716694247059386049841033243616190685234534656998308299089648480388215013586275527162802801884450690864000419152182797007712871304058729942117988724230761073190792966612564952353123182967585952979765000114132257905520106727832656978936311870614303991593655783757003443536893079619217374647992600027027607104224251314136272002470317369927347493454090775830979400707421165857082476215042526589464155052836486841402983927789026730702483881709081762986885041791195484913627403026209332056810228103864570396497572357714845869136482748684297868799783164351407667607846330041478708298196543213803934076570326199691477158438106104816772194965783934865308758635695724191106603929665922475083070170836600163089836800104007053583259198552689424530615496146255665540136054820856655780962846096653507746328691572955952366933700834078424984846462295886777620680493721322177858935528944270424364855607014023817731464145088733471613695236448008137227833459646348541715075679162947710789420489102625692072354527363409110920550266257261754362331898450327540259771428994051446457203073899841564046822435962205933675084845521011011459621642266462951814907381481740146330947929889951170660714028970011263372875238605203943859102339097655651969049017346667815851915193609065860498807818318486359578178118893470839820149480824720536776639558443221942318538026394199281127280151082165393162068037835611803305060875425627539769556099328455894797883978662498708640209810059284797246362192898383116116927931001373799638806191581569598082210091654217884694083803940407179263289544055531996924642238978199199329711964445463155549145959746913326160454865671512892906487656403327112395973808863665163503727658629611209992248005128050492741591558778226362886002570847208319620631424277359214699454662047219131063237688690586530972516388971345529175678414793280735845238898145140427475961046157080903113184851265786081884962417998190527069598960079624355440672908735107506463983533768390525987723226809718948742099149977550247402421577120910698414411211199244705047621872165244505120046628188756480131255420206258554891262895859177517410227521632616848754480005589793109648379355188474509823539349848140966453400507127007013156187286450935776082456763190200990124603469264013969509081034117939739267700145744448724574949109547516780125045516015456591352040235915578466772441283930231111578303323488261717298081234681900266874729700416624154906886681097329057346163539175622958310615956534940715741200682478696780959885086762746164351303975693620614065719170418112066070298919701669967920722684638792207472953732111014693261485344431086291184606334759626875220570648589020343921503886754223388270628184859773382867968433927417528405649465199742130335690230936590547794453952895537588711890580329867126452388180593218903128471705899154528618147608094118040325005164979688721295052584693790123687406616467967539782094754530913440578256234116373421072491914677643979377960844959808409930423111915346758223290506250540520732746506795892246914320585769064013436610047920608069497133034306423263781278683650045812126908249751072526546990383360957998494797004681409108672534721547709278392025079490168323008150723634504389446136766638721093861981029494785280734204962127782974641687204512074579162153021992189708408295587410320157341877780395457568440193990679185953081582506224388292672935683241190775023532463205825603638183763288461453085723326525448289143389688972842213650378819316756315776362347603374091072380299262394318501617378689332428184393743779037570615533554044748873790278604286062268342413561757993748382180859274067504043606257389706610661453251107580851559678643549375327484773359955806665198537168950107040615038016241215997761882197364834853492276099903644752275655956314837212556429050195995940883920715305283254651060494976866003434039022816271611591673287774490877057281960524979235324041902285132807185910772147116290835776770736692448417761550042055925371981522529078331573951933734014514666761366441485349054324701450490836939127961319607630021875993518551028540228576055725871125204756025385193630437623348930376705167647427072176387863675438107473261817300881550888389402162643745255668799587283759032258101873784053935361291768676002435116172424563941181982621445717533019715464663650171441171719096650219413355308093936696008020928347774564217610702331201983249527978272922035125078023926834356136813496417975037326711190343073601316071896097484117431848557748785391542585877235355194884020479816898246995515471057918785850292462014302554984351570228389542653133408723788042454934300981313471013764851407123903653685945642943922229129931114820920069171715237485631363981139143589450456994648333901143506894662107317071835115637033010354916490437488385271334894577014944712657779590151142666072325010014907309656893066235667568911080253232706551708443693234862753218041555644114920232263918300180557638588960043583715557142367082923842511028657695367310666560964009529230611621903690835700500507837922820216762444592976531673103200731063935028883008318148884125011306913152650580845652305625505928378615798733400387231953549089052582087595163604218245684443343534076270204696966000285351511857456171556277473977047783899622230180213589342217694172297498704265776522777968550498612251574155069586853293541609814422681511999999394104784209523619775213109547212522502683671982099479234575954419024149572162029207569255337319786440746021753060863035942574541579494551495401471546338985423996881794100672121365246930261210157640350579961243928918584234905289960822651464350798122384458591778112313720651783334353010534648409120751612607197266722496989964413774129307388688078991047059113317783779831497823359470803700585834158794769727360586800264827897010306040096842249146309730555649838870032249089689445749803382689983764960797610312221102380716913230405001846362012693044666624917277990567917156585187562283817519911308571347957373060022150506052795540703959065254256535985458560147792310805382860271403922862757697794181918946521934513738728936071038097559368842766158113707221730060023940909716468754513778928241064629925083317549682454730886532731884414051489356499395781287418405976206216907892261119144942152501601095784757538637958901671418095816765980817955088927999334803519921916954537202324063712635772972105317954307113039676358592647848683177415653856746148693107043057003688514681147813658517502350246558338760832506575386528131811243673837452843912572203801358314105592865264469720353425870349176607827736578169441394442549380989983260628089906891685286549913151500641696009938515146618674851689565321265259876608505543776843809633749626646807201671222875823531376566216463746685595206970602248922525554714834197528284689128451709072413910184621797151777216089659416358890262900060844574645040111509746275798659576129736200211241863789864792897012689299013037361143923117475305904469412084469079419019418764134918694486430725539929661593574151330643824561563178383345921187551825281499297451767531924202666156345297200084203384449467442625775647056511565071922301766194272318320243714893004606674017551339973862441042114088369207675586678960893790745164344800445290896187327221086276063415451527453880379253189810999847759554276789655066913607249264021286655699457961417432919971587480453880442376471119961714741312609106132441703490724256431984433617779179076337895649276141836831603759694520922677037093595557984415814312867695788226019443886940175458387713977919777521939974769522699296397962685320344963958394316162570118140824842278210652806437468909605034725088126146143694912059963932170887206253313514721641225242531867854345051930485933863562210227292286950413366391287837240951721837141331147704932700547217748100490560545367596439790942917019512721167496957019986292648787210450738262080127935783757302452204470604315126751213360265785098051003732693152556158044900903719666081253477587759537465843532614268909820119815493807935308892968481565496979229263441276327129212335639365880351429536933371173731025260613873005077086634768257620202962240333995456700604918122902068586300899165526869770531679985099298279842298217507391194864587687662999190978626851054273309517539182275965231547454238354083439316296639665336267189017232217439018072837681506935289424564866407856954297096392671694890717612537864379510778033092605975476396797261347424800915319723640938523117518473278135374515814377639655109932987541648650719888350503043134887122673771358307892436420018673415077601741385562213476037349874432950452057906176355037469357362013308908186967262555535538549509249255999897860525778189804034869352475646157931125133946362625605885801177837206499137345569885827247671050208744312885489142279605547038476419455111127992990208859799584828583905806266759220658495629473526968215733836125426954173853200271657385798028059687027017915880845119365726285898507925972445546425911613673864657004989739189014284496071680064653667520435402912836202231683151057772011349644452559655551735204616231303216425491219700508030910506232348527143831456073471810842649173382190689298922374824933955624658729132052797846462426017442485599135394238518100611150938585483955655210019206958249858873048842272941962840489113036919424704001649157754553475167535166034459488237879437290248974058331431375922810413446533594987770421933654693338638507080887513645200263911779470068996897716132771774182298367949537262233359999082998605436585710004014662197898587466332145007458909156076332689361997187339310946033398810477841336456076776597461561600083067347512587593798465036318350187144060690935163129939865088231733366615112426289886792104176598132566455645026331358955709657618693862342828669280801903922982319897919999367136724290510400238531040809721124968762881893077267991698834418853269821467989900647520136365516873230431180105057618322724460316506296254354879001202546916828462216133113571705819901450377129149486176995187511740180425970738791691207612869827591701767227418150022146710932402247440561874137906906664543590936847902132579110252416360989052899253658274624456532204301325132339424289753901611015939755460713277122163615735030684474838678664669192791957318149029781722748050467261828819427186065251558986127934530360101934772436039332574227037579194592633582373190435279893247363006231263798112475910839350649511252936055240696656709048405994889570308842535525954216652441080477385212320278025291687013568531609739593363511711565276580653212029274087588193368005482246508465704184017612850314379355033097797497604699944726793802729447526012181409426597417523107837349397292908645989505111823445111867011758300753282754506535182919858011021465085445720019127468373625223215001382358800965673653682976344447265534098610242651507908588357569710965250982944059825284683307395385889669540405725104992823953357799469456042201613831909307472478697111537645846279669181104204862426210343187993324931816914837705664584068366687751375549206664707050238884842667482583672367495747256075560430704068094596791822635448754724752231603305755069103683787355536617945259063176359831914733964063270769015286498585437854845220021339004354653983041837219262453537692195770437256915686081894898711783252404294512985145570088793178730502233559261994557072879376964116068563367959418289442256633477126839932759634326863103977716895239460040094062302329738211330217484104933492754740123630206641696668803558057774275106859581635295896636945939091124346860462138868111238441824369366604773236820373765467502334035000169984607879539947690670075037186579950254441501331823001458865585012734485129990209923323219037580604801015815014444355628846044757212857635450817440320122733205480542953595263001476173337807469635162624136886466513010609303655391427027453779121514869431787687249108727216030775143962964508597593308225936400910158343598174784807466435389206149102966610458992862780401005576451090102881265323764401650370508671202297793665233631871752283914721781625517474598092875351380512115911387113825180309851149527252476450263622387191290041460315336514093404903624010200689369179726737655961975054029385258221175719423386068016151299524052073715926279486270201486529080589155180063513368166582180647367525871695239944172152043836709499563477305713663385390058714883160194176360915184751507589206048078011376026026275623633378719751528648688718954689830738643224946723196567312073586035477062026515114870610478711150182116714898996320616934807841861201559556206977528226471091078454352191721680221925756749659957274787396359212964087015614461129306788020677539518568124189008092479594316908988180552816992019579663664101148369566628678725445927673264630516655522647003375968275785748967559820407289850919040578857529151397663736404060102904261372632967688696929653388689280399543715798471758249895483506721932172453256602589740637707819269190358591922302367689890725736165105104612827034493417495953751208976757062399738515160258921130662871595729941123660243624450318021375656337812345099424494296059991713111080739812933618112921898651036686217018267881236816754398120190170947764091225207346268096360904775994016558380541782817806125642575695356002135110687403155237331774241057196386912778789950784965279638717887718724008597821647348371817536762961591725117963825129715868721278404166458270546086472936773508927791398769535387404634760502209359598963940902193081210488747975736701638286680417671035178514599917270061050854606216463083641616918218655780003581632535654006797940608787006844595150230211096903283393837855850490735623405906567668746152329269559269512470034955778453987241777244968980176160954536574282418540443015725029083993639348917376907934659597028944332828496355015106430833087311728629658838647280279954311241740609458977408406073005894677455695011890711017157132084518948084030840017434496306515397102160489319195510214382305120488322918990117572098250682760248550791453216478268910087094683030559756322078882773825714017995344016261231945736379485747305237819196007942113644655990954482684012652232073514167928629386261322130255369116065495421470783450972187422338308579658077880049286929168246786537107700459573719786345657514618076740891715309534761197049576152403971638697199184120827335109531886449754829466134093056522828557973019832735388661142355621600998293786283422973597996638198915979172207704253851614692253175951945669984663053980355746723752306177980805467252734679549430100037467958516079679161355026023314296199318800355455080194035831238219293006386645019600411452121507048976377418155623339265085544613982983417551555357299996971731230042314168994917537741831636676673202339611591198860055954563807493827996156578927932252225217409430491750400491106928569050923844761028780109898741773921923514021085773258869585033551915866571720028244379617118797915959132072645037153473835401945039493436803889934093167450549672528096271483117442750909675425002668527320000173580890920091186936317316686432992033139243084535926875530405787094801981959134930171849480177894415602563682948780226952715379689317906215773696690742203077411882214478522884945515527218067590593183797485108609830236503186879204346442425779731966781615522918670704806518343454887811383946691284902249884899987860627179243933381663868643159112226750738576945231022155643592136752869119301259119704621896061608835426782374051344110205771153313483058997629759868493677446946505721199055415954349333191091828334598684729158347802992869883564408899896144233242029729272422703137532236444687170901665464565776364938376536958833863599769328033178895348160900369162684048857916803349874674426857392231021949590021229225211799748345007871363081472234109682879318185669045548661800260801619078580099705268267883073457924800418655070499096559555798228523800679229806199912386758533049612010171104616122763397056467924622785411384111743175775140854792724604445546319609891177629249456543504561593750356147179724096728718594643783753657409931655950179820338411606073901924950099309407018733128350566052796814199841813542760339842377828899603959602078124110019725455726245983359320967479412637001929338892601273927669339409184689211713327620446022900641797656451111619558426101033298824185667104116139333072128365340574651503581705680329320531227752780926315432861909739695095687795362196330470266388159752245364557971087071122736499342164474715740270495110041453828917675771252029329710698997103878075751705672514847189758516996548128863186351258560885033749134814501468984719537581115546961242560814658317944839612740948768743900539652940841810534922572234445355313625255450020934068634514969503905751192665028037046258927698036266796736854481705148092440570239885835992927305596124939817061225610893834983240697893327442314747129757991472216909736247255908220274150528392389662816478177246439105249608626098938495700330429509338297728244634749645186026908259154251885570382071624349740953295860046724158494097620663665175008656876974415632755043846893341045624674496149049728668208108596464747012440083132737848506706346648436319406198662685400589310900942342522490264341658051338966141230999797813182277491509916806267263624897494666290728679916933349165579583200152038208730133899818207138010937575849837279984227363592492169720560076673744689193710605405296759227076444004401882855323262472932563234783806067799105919215759852326770158193596901223075571187081738709817581873653188820327876614284677724664240745961437787470152624027370864206478084340663922508304295979126764821751903342185394739719625514782263230761165739777717560838463986816105428940140858892874331869522014821033598078819660923229828775391136830996311357463947181033334762042782280168812838419101632063860636549942898216286857454119986712846499552264132246069267103460241940831986299221474847573186025410785821377742152460747701759426656138156791547224783660292023961617940560066434820561186291282281439614385494016185601745836696671040229412570609929326904006252244245385690253834124110211251236810171143055787303193240539924464742351015891292354914090508554752066682516751228535863149018369822230598405698559077426584703623260581213589528231358381626715041343469897674180070950220510265868567926107820515609943619250001621588695020265659739412387965818654202104125298123762683817103598663661460507566338128924593731259224711324490628218097576745572256088027675595043626794966558063391518684754412256701382547839472992559052840896653277148352023968853856034939104735882823686537190420266053669637184425688353407864799750894612471567317397213471234742559389729187295050931763705050170414596262503818931376686141374522295178508656042592466376901940374631190315462244999793843229191669619955133892397939347328596307797538306681979602922434280849010341227500073973160161352984777713856716277133977405050400325549646905008455864042524765122353956264447139903101787904731235541481298553408882697249413754970073661967829954639490704763949821065007708432394736175774771150768173989089334582704458219441834364490779830457930734402772893873771622784468686686726826486876950319247251705580172020069834482110203375696558082569202905300223314279632555251847742912208473180512533305425180742655117126174573097186917178934850858387956658301766425893363318352026747487595635176371269163380704227632469235071230022186316627813263912720012790729146049309105825071702891764495144009874755975388207286813246695395807873851869409430733336062681412960148277435872125396783178494862134352943132906335633409593801659101865581810673002882976668841808553518524787460574190650633670602742037886270038954013271659863720217288385026238885433286649633427973491982144734355553476753720795054591459393586783884701018448248441931062930430982941036352430969033409160724429509205908406422535309797063982262554713234312048204568271804350109115454131516806732290145918243039526967954985141501148010947417304589614903212480790480526308550896656866443321645881726839312104979514306077510475728871094790225510821173837229954388543932269579215006828771665997983718009315843431869911122601154597584182510140725207140250709753540073325417713296777554398633341362072922709578368580154846186740407225669894612719348760298681024307788933159816056850727824675422631772169986201196012348676863943039715597101675170825184512649078644106849595985132941385360879359164641321242232778099931231539600010912869545566279486730946651026086069733621919896397536799203499584955326740413223769236892538107110693816400101505238460409501067412136638835018018299742012665509433469368108269667031264253179548302600972380940389088174808346856174955284967736972770765533081681937655250161655875564278394204260979770744547382124490687859619183800022993944680330887831395529551541883307285168714100311768702291290869987351136783614893250435070348181075146476427802147675895922356864316604260792695181155194426462479326922328913459191579380058078417832447404499288319637757385058494732929182622398127275109858476533388985628637800003772787120652777432057745993723402730655879443660338518484317065985175426650150081184187179528699104203911040503712538693116318280523502632550182260565977447302034032950079446053522348700722381305729765807583814260347441178890003671322324131768505062482211029946476942478826064860848725329646998385638698220242095390462968927630712598127309175918172432472730796966147538578924218095642439720394151877277624484530479646738635502001243781010387171567947078107803491434004299717525602825269035525273255952027951784575441879379837438478192215518966123792739009602472505039375065254957736578914527553156017040990476383027200032138143951621262488116843258864677790394772097301818121633496710101375675444832002584570153048661092077972931857767432317568622529383667405821419403437445709980047766227638705159067441882342201552421874770216919570465842064229045452888392195337707230062706364281882164006997965880532385073410115982848705023075339411987997287092344240767092914192905054766701445064115390703685284641462034567068656720299936886819244355999032161317387191687997574295078494020291890611739516372960412061954903749215502669464641947825808618624246214382627805230048967383203568471303212153216802668548247971382478816487354511041345421312226821221608539219544110929460191404055575592773869773530911895388629848958209220913743001579691889767835821985671265627084545262715810539776570274805764483950875309070716716676856288708217291649703921869427546795731125363063942647151481746136841885238498232395270196596738902633117777494100523796196781043039508165081912416681380387617887008491616225949111171429787223425792348403333726801762103172123780025845860613139374002011323802627806309847444458205855527883617911022450432065145740567022732761879871255087815153404936530068873469345986300817968759079504068295545920119402311438259048987286521184236375554966294143598572482008550180006123269102190814592042622370634361626790806752244431902804355923864987790938092278183385758072390830923705168931998229798503711556094330505338437275101505909342785006192967657079504735036349684008582943525145408556638707428352842035951326966330565819775015669740495278522833932326398193768938943885528816744362952454353056608371196322637722154169339281572900640150433967410217143208321674818254800715831324352519841684692368596245957484831353566236289074979625983574591683480212266868517372780393982950127633839081584528024013197362850783813884858544040690443350747826796377171424380247080504480593490281965190793232041043156719274651963950468140738298426360768320548830125812045361883859996706218155773903566494963944171412581271247524912287071187111357750812068129508925130480882586145279412314986038498748742638759080512775029520595463024803582884441975681283929966400783727086258230390446880318407613584109606365880590419051860029092282947928551654352180276599121137926892118249824648796173453324453760640698358829178674855577579555482139436343015316429988478282618116066397770669205566566427785849572407373578208659582069792488380493363517644268125711085152250543986196194337236095521185621084133199393320882758586458893111985406179242472967150882403540045591436689272616933325260510083122857022256481875551811541567121390101443724417294114951540184244547054805633646538726933473688154447542043167609981730400757658401970418338529992296505358677243843897902832520085021473708759713708496042685785834853877081329187232223829196606740223679293983562003736440666383898421809163287956103161711732268088579494794543975123028756092565681063403885722108110852044361529859011092805801621647637859237039826502660800545842388321279650838190125825237927339857148352020767726086587872557601930627725028197373262319994807250144091785050453408027184693030235018078772080199166353131392810438936941986194899028033770133221923544372516500093920847019834816079272576721882871924409852028077356090452595453465180009818511790723395746764416629970302442424691018102404723937683918938591851758632544836245968811243348450727504355591368092296497575121121752444699481377721246116975946567200778710776554092715640676812898564317449174294489364857561436460371111748908214788623261231677368879257681651337483708531430539869993657431167818368868774953491939481496521063701845657666921473918482822106765311639430724900434687512232261562396607172367995952518776095816301057731211421959193706102683277180094057851009748999608889309273710162737107494044970422790381781800826222641794518356878516756620349051261653992645777477778658132587124664430283036793086192260180916243159773863460711083242823683128057482420036152996894332950419404871754536999837790846535886213050559243701780108901304418329421081811262853081988944408624222597669929952956522240466598703089329375489391106391194963714337507231408178014824978828988133981573277138638984262159176204340438624640253435864741375693646118509336301017244809164414054798108801918730588970962976908821134184236632863948613581413992586408947087603242046115711679712289661778309192108529294225981113894184927443902377550804787066064175123077660637302228867875699452529823938788166197585039081749843703721929720772319724860765729363293735143946040988231430971442951143008640169983115313740801498626528488032731508094993411381224876285342014735222922560466380365979945863246605648311714816043968779065003904446520500213087813876986554273465927215931661412867663614302941696452580366427451788980832700963465939886240839441474211221285793647706461510235947970719801232107391289887312440796575454769178245407100238625379706071824947660977607394537184453408609895300816556320940894960352049862500032757437848809506920169814630717380575588259769146767983686373320693895796021798110391672093290069646009311343178759887932636169325680884827479186202334199078355864068366507959598335641005679130405187949865967458897373152403038889632882221026836472416758199490145368496433104273305700307229400381935629293403410300311177862336196338655024256892146754627308270943244389669530693574911173368676316212011255848202863932122431526807123558926807434887563989468395616285335621392482225195396147512870268385535094860794021922272991014223081895324717271797426624963114204745142870394829927225000856561659243199326556718695124732391519633461198511248393680129895788059236940996454544224552839213924421134806504247423078294956628837094980130290370721847854756164671480779333062235303048794387117334643819266217803192417740566077974942659740040029532507887318727403969944910142403077732142711317147115366497248239085276010668013367970572966028836542265945046655624573096918977465014254822647303186064987882718375334319876755413219508988447557141612808681468064494405259180410620298582223864131232802566306875192258453624329565926610784780225621383172843074732914683651875246133320141399858262138095561059313846691990440736188132533639570563826872852236591433594478909694946576208807291064305270756628045894091874931665546596736952848622336796233430983328940599141241539082821928618004458889389095738117947011213962783578551858900184457062114197137581482876679541561693005465537240471819744483818698939373166211111456781834767371170147265274727009741218041554897966957892407471796269978755551776381288043749808747405588676425775437191254972046759628372282140565307021058719511531581753210840333524022677784205397137071796970312737640767197171626805509397848873873106394363540774080415423761355521206210270641070602416611276813762071465054966379928725858400260873987783496679184609801835547799352751563242139987986296290676059733912799118188420080370312529788013799301301274590089005618542468409932237175883594403499577953241171168338518957049158405468381108649019736953150088233829103819845988554459113189674596496241048260335367858999163929815853057574548358576772310871570495218392939013064492253318712578218417470686231083705927461862210356438191242344999790582553572803970035771214964645159847713519740967577733960876919844028162963234935344353232669739661667804643290330336102862895406591990641166268726820814151027317564140996655262524324783900431409106222364759402817619631715257616774283939178997515986015355025862902860080693634835809846517324418473937232838798721653164419732278161140253561336452043097013664024399882161875865589839639261994084017804319459699329396826929865079704532632866653190047192712846597294357397415129491622210865458052662790590077204155916210995239133370720835047871742972199027152516949426892798085808020162474491967907257427297843251345244892858962776601815092971544276435269238789840158934451464345719865672448370695699678817531072799679033625753956087297074641730407275402745834916315815412256952071606999825770005402238827020941715190645677711788951784526343968271654092493151315849931103201681919355119081679866072700450864649222899893484385619807013769119944200697106787644197757676030489224610331812040440936849512333653758171017056045297261401750053012163853827143872702558726730357398005076113877909127778801654841412394920350041826316660896218624763568844995187201663186329482096287950702165126840666700896493326475908601016513736309148729139634588243689537675992865617333443765495938201846233648096154056695946075243001474110284700319201678161400677893471648262555009658890359865698975492636100343474841080956904323410892562095826613083242169123738409734816217892910985416531518485774705727937293037677325396309209710346263226063682672035976595112807874571981506329536193941947850921349681020380139435123862765472532762618903636528106651908420543712505462560203186239718064832378952816387155905457080548936082598042090345311477629008156712837400562729806279114263409978374095189248571070515632024556292329116150445856469930341407153529499393850463350789877382225216954620833164314441420491987503024244741540217412268848398176325998726288272465277371522110384442679437498017815689648746073552200210605405009639928961161541692290555317347810570560855960991631019869072159253869271866952564028133147494969861547286056630777923062002019585701110631848901378013468165599444738106056361826851632439758151173234711126811663993410129490316165611385797713331147113890977316435957353883344970379680473080978842020117489920976995269037123296376784671540630025572094853414475673584357727400740974672199249312827714168746068222444061964734915792748262528341061659209156137880404786009555090117619841310114538878128842478719917469566567732071905964917220732402751376725582683083998983849380959664307054708921608922864563394881263536182327976912458449039673703223399394293113427485502218934468430899786371610506894485292640567173715661013675621931689999588594447818485495940784778813771861988970450217305944188420067274396397103158554041789172148076573197012543695108929693782210885201120565191119981225113569559882224808294682008495182007905682073663862896588590121119488875321635171883692028727148196597449270010254456993385823735563856896402842137783109265116724006427545133778957094812444020471829956226245208102278337781742958273428179604996957291123350846560309529999048120828799221648212491946065090186151499418593836421188196830940269344850592697546355447928681168677722138196477160491067343562749297350544889361329950957370424989268647184810233279479752648665003849915347879968521853563585245747288671198318707217731661988527679837482906973139063583155171910355164597773689122181176099304544299492571601848828109078812442026766317014252580441218833339729524779062933381380197525916538878490167683612552045551881379053036209329118719563252936575936304884190349400405885863720209917602772795734941644065116040886573702345558729603932981813540768291563512005065002734363416942055436209004391324454992506521198154089466972181720234218793232007468759245659087977835544330923096833727411227636096160020858981380768403447560422372891265892734229373002654459209008068757146136945521974720149185156221879021741609787425043699518752257301361646035647293320551943503738754098630680705861792402047968350532367070786475895512732346870185917981397213199157399341564608700029604229940996864030459135175515246516686316762485649432678051476503517101518577749492053286145231562568062059703559694279840222409181764269026659810087920367268260776694599985463582485054457380297668945846116298497465797239632291452881254369991375684224539607425285486370831225039452337417472554441875572103069151024715140277708956622858563007058770086359425028872901235265009631724246247867319120834077368320164806804598893169541729062552013982619203813200413234408638164257741341058671805714531221040552621797122612801328581848725406442730997598355857853303499707211647171023689156157572208714548861592626877383723541937691577132750458056143249743679460354706063970934032734535551342354722604837520827447504128292912536878584765782617732986269647689422510444735786790681880522727422509266067282342112063618110791178803423569589793897397885470381634525767062572054577209958174364137579900422414348966185588728399465066714362280938683018344802052357689433504519375078373040628141891234480878721441321554947749430336335877003615994762802468595119549812897746160054128681026028524802019712212193369624753760209256540549247664331603654248620128209811617443711276663306699790906490664621862233687102983492652081516786695695610685402021288728154103105822789528365888108430588225625350784548511057609227737018064217269037893815426962050674564368523329360207375450141097343386212383894669128928490149774736245928703446487842478026123291344551484703626683325781516559335692879156841166732026304633562495068758564104760944225481372430089051007425228018547190625380885775091965385687795691796195948293940486679676467569304359880942597318614281635527667835912977220557039422410297861179529291787402456104114536337029670666576968765944360396610519607254655801014653588735598962010592840212798198921711680471770463553086927116256873379825354428840945410775013031144142126907975380881131468269574157752667088848904109251372578354084047309442176541964417744092170300076485167811382450899997985599520682124223275498857829631499654320191464672834013014546820620609361104691901422027497516579990097474388087227626119873819896015298472109323380024475429237946395185480144447833225369251298412441670229608145974579683834407721520119624225711228848276391232065901899662920801142343424226990459765407256117258042085443239469820563419582902070640534560104208764046643178880780128052653255379007505181341644964941299138751332376524946820935409024581406339561155500752686992108654942222181127319923583969262001681186439805967483175509687411426285903179428212107039819673792665727539849052608239946331365048648721252772185093115489112249690055160245143233730082196917897636631912952949819850929537000848780776860595064450453449765636685310510454899898849641106803006359072737551949462416990840787616896041525360178920129079319621213103309181916572941156470821718708176942104350613181931587117251373144408795484736791982714986070245060916727180263206562147886396140044999475013797203117695117855457820795269284659697912131748179169979651370126530181354022725632941845769087231760180346953034721604909268913729506396211972500156902609050170654891599615394630723726565822007170487142472746639942491674709327914446524888505177963311336316591683173122371958436630517759485876507109548767221252159769505502953262115295207542297561516872494401644981475561513979544452928685037491942039790171506542705091816516143076621815912978384916632998436554651346844329012283467489457889216123138537419711814351858827393068224069790535861338254606220211165773794744019444284661950558597995266925651864257835509275305287271225302463269425950459681736462064221090334017220649574730972069839063509053391398460744806417586524281924639172262682028711744250179674831562759763535055069533318582246155409179747182423985745675095985446766729521719613668294218634275616208162812750573850810567825403992172666210212220693377670880842346051745141685714520391216920731072825606834503354713605797418956517721210937984983236685060267520579749095344840453245574349348487432762577420018629187228233292996484691043299780622249009593624042757569625683765590774547785508705225740836728509448870401259466162171989574237916757704165815466939964883972443636675582462496505628725610876075716760661322718417069363827283580843480988164675020804788773218439615415507214239639882016694468770998659841501251548138108364195534632874931697996748524456050124423700249217630821593737531805837469818028434186045136484305921004032175739093958093589909021771640074708386024623492098411555213836368575456888836403590532636971556526067687476453467625047415400748223383563341343662126594015698209391481848829758765994228647444461874862712729015632668743467195998908614844692518475829472458981904179066507691700872974270592273925395199767997046595311293713356468181438809151791748717452277519880559652951357643808730550930465948581497943532653303151924458535176986832496249187679458170461298905077350798342936933522755960443985409851324961066569962798270286770279539239646016332373487662887327339737604350342851820639275634813700442945024060418588395121512494277827798520719429767914415218621483052100999956745513701088713375642216650910335816109575583422999371057327566324613697615581913024372253949616074332363860922609855998188261306167944467359184168140088674552382828785213231456315439666302758209199094377932561047501528767954604511550839956279281454011106072417930403777574012176217344514287190983763918709261446263868381913784529896896542780577631532725681093540836975641372516763442432430189214636382340280719594636633199151964179506797219291609795623882212658110238994289738979125436426539939625543986886235365260621092863034828787191891288458247343540868205592097926368299344427130441200952949265581995782487222772536321752261139035924955104122241837840762863912343733960975865651563211211774973963271393030440920583494717777203074865075347033909947170254511231201883621390080148238481645547230997025306005900748298399021003435673912379613696766397750847936146056446482774234733863775486482359968369442281737564975430933982224291979307613280901209084187868659262038972303802148151764662326139738821367394995179294453934294440146122110842139755065503620447320814459585766458160306545383506978132372274239236999876163522245114512243676188942527711160522742734742162696840202877503431383841159055540165692007616803902040203515266252201760343628212109304752301902242826943157492253568559041991574138591267368513762662982653307740212463743637641206453066981354895714359185024489942526654583760220198530651461036550713418863557910562782251476527137090320880928548312285846235384714031587319086828479403530816334975565990222691344366354162117501615534741353872391592302092322991512108985988148516822335149072489893697303741099963498999976617151886860171286076161622504652206912719310960939486901463492506480996400208859100904580765942400842156551551509210830313642676383865881059076539488955198764609275391397636350618284438351802038709179508651747259058681874821533581208445053614670333978278762873507900496879156269286896234231497628879692755195199223754004947493715663895738612043479116189070124473456603455160869004504364322536287752220697479629882815793662198012304092526543075676792814834504801922719492171428009373407515588700285356027350169746620908916165816086752661169850192954990613840816392538761591469844729324183922223119116104671996016882341993592275399282643270686024204483957088948863477353919577145241713319592579431127288384406692378018278828033253474687346887073397974437766896947967452508676823347139219302946418717425714205312324372707021443399762362488795579392403103093928124348470967010593939570229794799333032681746307053293491347649833391123388950679469191646585513738470426677909823141798147902386064757905358389524986297403693072445732515242502334067225994897290028069327121167970165539388346742062837503576408666297565621134841415801211155891343114018566382246799642657901271338306704789322398445856622140687246101346321967273343346377029377251445169407850086219070638130668036075370247490154351220179301956088665946613804587892561847531161554233404053538786568580450381812277697319586265062635632682927731497098959363214306757237720072885797182028338200586023899851473250629192817964175606904317883787740750092158619753553550269437108805951178028462188930068764560503841762908056630027889429453863397079155487508642038519786267611192454728706959454834819226898710109397621154219146104651085657330441824440073796313930988786142413766563947670855110106464434817800052793672938778898077151728104715303993641973135489843730527497651761012555584086792876685930068780981600814215143614111215251977931627449173892001910154244571498195749665569714760553645166458581750851582422737527331590239722664089872198827876277850116901158208562586319743889418632608140623366330335217249170404358896668908430640874356861690212368422060661900880805193640135995966974791041246131050634091419808378018988586551260247207428894180677938600437189282503277097608071284619941426434043121700376840214254918541831101871476883003469732178554028329660423833644370936957172201572283305114811376871156145811657083264033713217605798241775527860801283268398465110931674098795137047259041694402760994315306899170122945550145675989784180251124812132369629783434982220966281540752577038081032409482274341953745247680237277362825476162216391834183451164999615433330558291080813594395896556719641918106004157664006451496482516715123817298082492324164176574782848662323929138800235183247436893036202435765578170981465469155452157687195576518233125994842596393188102009352205727216322744978316688655356567695240326408788203679796965502535983026564915365447769678283162896098941232959184734438224557919393293348908749878738543851433382258214660846025400679443072084807308136349123756123277232723442831018274447398538845331151515281888274952772551500349780695733469984567971397048235902829933453416105904722763440313008914033248232131021959391767921067478147985962415810379970300105715446576333862565740771346195975747804278665354214755583092355757943260360174645859731445845321273771116040057658554198376914231125640877862323948822413724154890837415752715033727708067673479985891707846977143651914157490731934796777250814635592588756205650223234984702955584258181994880351867763047825086345969438490760816911239718354586075215460646753508215597408312908484530585386798169161231672132101417989461090400947451042735607723572291477041010973016809967195542118514246127743186149668567868593345922277156162198239856470974308753712769124754493490092413560076736094945608676612164250733699846007837841073226639889101063294049398996963290743153125533862215286972824759196736390785847995442736298535672071813471550317961703046501433102457794298867027071573539824101773574187702886357959266309199996708138840036948827160326180345785220181772738915895770993899385052682350618869712929414910713598654818160788511772776626585218861409671658925583775858518502224989210019492790353409107686657512798981075168862340308234043488886268011788981400567632303323092020391483407238899088867504026360207483624836534210064371390200526713509721058714371841294804602763406054408849658580980743405909519331662303395792883967342048411273347046154999156880336498666078380971378971470723559116995706876500797521794476790236887621846006659266477846605831004317471805321745426460409226206604340228791958946646053458863114721402804513410750331110828258720919867674440205589060733522354199625228905141299488006977198038450415957369348311536752643383819479982840614269242305030023587791539798803541436503132638663628941138646031711945874576352196539869323474385418315725782698217318516000239387287149676729398560490896945397428679022557622536740716505066889561685553282891236846949122890103540587868671714612046069110255599290066309506478447449943321212620621313389312194198812767982251026620769451639153671594726922039684355253492833038485283993922243760685295994263237703917497194947582886700424677147403808255573672165125440444935837819976374561986007883151152670267204456544901193085345236341029670477006281928341051192603365734299311262005580688757651077259375091091981430612678294939113481580028045886570556200977003621044198498915579823731040345575552820169218350810114994083188204131097165229846799597135466378969026900339452820075721541477113178782784947585752600201964154196928457508795338148317574713923464786032777820858871892782598634276512087787289885078804013750705387690958151157947500737472235212373338110580275503599321579928621534456961009986809813043497413548437473936463123883871303544504811870082887752289799184678687836937861687876214480702112461367357675317888612652871013674607761013604614416087367678072038689415454377794772392786016430359144913603373132839237499410699952184527527280819893599462496776483873187427897199519803656052559561035275775645043975710538704465687514589456835303308068592584260690241538040830425009118476272295586367663334659353244130053289546415368567913939319844316807739332186252898450379377665801341720561405883022853847581294619708841996507619651245001022689226760944932064625933513296104625493756185675032318839645444679238215599178855945127516247347405392460502507119365688327382500123778013360675318456397107533402995716563215121624611729992002376111855364493492574208858380356381675223951218801010009276627411607773483165498923962641827485244658314174475730062379493299658906125790888105883815289386463549737078810676339694821403301223205647751248352411753019693385756670441453391477514451416943588902356444340337901689532220719476256608000950296561425042991703667513940857222008859472205167263605176806837411400127010392072218947810186949349241566730852614013450235319016970411987612566544225514065444479813046361199270320062614105201309815954915700334781307938707215177401025415702788907232235469801252302964922459387494644405432793914784297103959239248187111365181842480193181141858148242849682175128456331575769759211915521507738280516401954089272394471989038209281237508885836619995350822047606744846344169551267689994381582221340917710648995194322185616509394987301358967277029185895666040231554739720687786849880023451731651694930587836690811432745853986255743028129469863697470353095833124213905428679867149073919519467598446070356600845450336327272632941727249157231864682123188825275050051232218597559442666723663497582554762397910689070921816458736148274948799314444056476659732231609101108672290040713871107916344498551831287774318983761665624499381155103729503171851822215087304319865404824040713765122513707483484519149370954626650166534046394552126270281529231418121356476646729290138005749454700598118997811261477652736806283575191287961688649155611986320400770001507228417289666836034715551450020910063877798054462437975148363300711181020983760344801835718910582765216306393954089990405498347236217329746698564257375600360204287884015851303620709689722229892702511543717413774587495440201460088223071894622696388520373448228967187370243180633039375973617484029660356158519496935169535766941188224197234267484330135706581743889983949195421588551277591006452234699163011572624910312536080855762647321350375837196569490662889852268098795261537663593034724703035161224550116342415008592681021273091919039045919479442205545997222839004768287794285762745337651856356263200769381953267910424168973314765393617237452716196854086146364420881890079245469690237699103336399745695858202214021839492828597594765659124599701823214985350692836912791816395969036572684855288545223373850277497758543913639041133710374139544326693401535347495040573758414571106546915942455605128720947477324161290443829508058002648071800898456271579336879213822817845441516753587464536205115633407409480314835829866740611894158793327182327598212775514756834823416584713373513039306046333448333328495265560051614954364862472778764202093725133597935346426825575620294145595832140559342020876733299697613054719441963650136507891014579864121292602164810202135647974283528423370379842471239725373915830533854798636598441635967497207470865948466155529928058809286914506856596616620307523557005458491129887686320146723305241376025251542166278843871411043318737493764759187583846149460633529641688220025090875426797350503549796709475854476252797067558974664560561236841220991371743388176171911577385880438989308826004696148328387339081392350163500316320392234242600767149694877175649577532327314282959455496157349502729641933109175268441482252816069842810057556751896728753608553646372510498375894526321551000866592813603218688088722587144581869605905943649939534599949210277623997516556820072774947847751127436853596032038273939054491317751371927622714072912181829288626929167457579487433794963890147785799436404882328421394951599183608622312470547535877624777786423829504153175586844851898899332953443440522328414630191767452995016148806249804835405498192107415368206386239382720327531674442752313806901590326188894945071757213320734011994574823998449458993340797118655539128972204663328511471842933142890391139587179697129380056896082249797764578969572991279701981803641407914036148607686075991317570985432020750412888605020158349244154666140242704699293478259574944524099601445149280416318548028506398231541682896878470751908356131441474945048160945565611663064819730632531969280223310533442133423519996956597806306464751191945996842341671767155584360387134116679941076243934442546481586110286698073119133461004896514668620069607041968472377318765187196927672272632897877811099879982849535508468942222273757903934196270450225500712504847822213512440169859910962088511039331790517832036582382289447904588741926822911733100149897092914963878758643033833831597307094230451875701169612620446399734761535264090079445942064833753220702195156013074661548394022670891317441287522430771160449720045610287824820175395074434147306418957278238647385430845060087325407523005110526721510753947475315571565526428773789000781204865943634392728316625450427187156895394986089899898459767985899070513233620862769205962346793911234553936359373946764521668441485732304169065820908624590818190993936909774186205939728728744152640986462837641655139672837169448492243719124340611759535855270158772915282638375579627049278775476298584802636970610183760006719160981799179118652022019036817099740444197220986940696626729205125599586771598796539003214216122404149364916486262908796133978727831562352804916003194112622145561944160928997937792217134146829201499657414489147475338634328366285396082894312313785123425071716691642413483825597637559355649547897739579663387089151623058650286769694389376700060959355229678668081015072547142388045384566635012202607672461553527402566620192174273948442183209945174738062497573305153733568478538043940376985064068096976507969787631133516885012132289957009600287213552033490090200741944979848453323603150028208683870178234023830029786503281111253227566065880420093159574547042474296784684485398101246359995109778848564471941335148364977990068924228980356827136789951207419185596133983535957015809287067937737822725135360889705615972247937858171712704192347358297089451988423970430664269008390111721024832396818410586370695510857010618237680560800061584620088246114943217359437573056610350938216075737650520030905553722044424428166649623050046392814418417590766963656123833873107959183404799047297021423395402925479345041272490007663487722418311508965302891508441052539326034542708744708278298620400317337037682211166267661740944303610017055700834738731216899317065599323327315423629624836850882305262681227461068765941059214327178094546136082693721411371089724712311235929019778281409420930386865596254770021979610119390362242085765594402524412603628969515552045033750742413715278873842566992875411840810521631296426873115684678727118697923058992278050113568587984114779203684119428307180216455041303986333419344415456996894311764751344342509817512363766609774972734341812760703292410987986895278448473059024790984052577460731525316757168576788985187610982767928331534234982544554111133047054473601875132447922551358932325911608257494244479291790846117069627010866300511794754834615135950975072036948936183326325934503843194251193166692460851747879051360669362883067746604921192119215368655383479404308893025982695290504901341705309079296915635781515356888365699755160377793434781268548585425542956038046540655657895051084171386850736438152562446156263346084132146948710549801114229699705917600823175170003391422156095585914343123343243709748798688420128503256608547874577878951228191585285807969201940302320695381924837372471293852710338696739801089954398739064130641747375699694217000733339349878571323352694650477483610927320327762666012641986421918177208018622410727975361469286286159290486036719435442543264410175185983218116752869653999759080046565367389250529007062126261301890076299775677047413193151205959119868174856106443355636536978193057798255336357632921829235212295727611639290990423735036824784384209375981902208697276630315500258217313890493440545774177445743662302388528628933183550045460057246215585343766679744955025614681240057579599316456231079590663163644565426379698378795971759142843031820848804582010270680776777010748248632727882592736709567094623845983061956649348135287543789563466058633837472123029254416646743662163764182590055437643586932768941880105241051891077774612495642884150117100840047668841566178413305469927671213115016169593553299274432764195049764777610856847300144982256994407226821320361687228872932544292352816793894319207994678965525144220565983232371797174579103140471559421554459686202839559908051132520644784204877339868116250492869060691169501468936361347848169791118458751760121228424521745903932989289543468100632032786791117832465504646707595022740658345548364602997309956477553911965526094623135253625116411012789360316661587082154010545409940889226821237887417030551898918356014804041307381864699295159128569681723847462939755515776745484257983710725776354329498346380426508004705260101552977516860085827523216799049232931383900148393161019158319245925797125364845134432875365329629659000032811710266121703303699977484653153306255598657577051401966244471463819782251042867046970182772555396541765566211702402612044471493877481278106431868912438779518457791292810855407278390909115561161022260443497887123767013405388575513348214159296105296644313059834959130245887379804731110471141243815401694334678171897572374710106043143222140206851708193554449920442686491263583153793093940196196166227729718275898320827419916477246063560634263266873737368383832290658487132459986262545570385642231806240216903103868999782999654177938682518303127723827490851606381827468693264683980923487775124756468001346696523633877100082718539604635648180833215373935997597639448861236649018060455434336300266838710776882121114970571437416333719679750788336237715748342637339507885465924066592560353783133587458438021963952185152715455234340713536800110764724012100956410769625745376493126000436830975276919235026582863111160616150700201552476281994448187056916726647798651334587198396487501865807622775084631870148264506131428682182149313956638834195671531540214353944763728293942688429859885611825463597864146479926777015992095404577232807309036589976588426073494198391421097997432076034264789310426160031500436266791967254828400319716235820712655741875819977871062675407031339689453412477927185239032288837672259291707660314858557987665225083913866337357962694357984446649980603645682904291127946572453460095385744466424012409830045320220443230850108508488596852689132350731280377067085088807047679919716907521545549823244809228221696187034875947560398329054034859519922284456450895199649597780657725460126624176494033372549132457389612422727730020816993156545376836415213995231869230539549813325446435447510017685924424861003307329465060609445787811578238717501071005439655769064125220537411719347962860133473724096601013125788539860331732856544454787585592300746805113449452085377290747779609920205345423419264448630837682574684486612698741739778177049275968720395859316639010842690284142455409449425448916522731824488401355124932743540890807155484448479345766144812444754930583313535793366424702492238523418380220609854690506882649257751407183288719408701944210509498682205880902395402878286522728327851851789925814108526796903216232354942950540084643785383684431283593301246524619385843759365450009348928922731800904823829522763676843301015231071520549164212759101922402338388737100945156311423393352144540810550875978461371100434218477348028820428492833664460527927718911705074567467478724242936937424079812420770987897118277893481730682316043491147294178776193752222281060587198755575727234004593331462541355973793646150435203947924317760960756043637588995625116324663545271833663143449052931049684823635988314519993160582506864670217069156022926265594437299161038312449598194106962497061606559301625229224313413222791969681683465075102236377268184804525320520006359831762377112814978105472752881741313741824845013365820609146613623128524440721923994168229457779423130351188312161956583313731465303145879632541023539370653852105554221719926010313289638959485637813782670943204078292359645654819596704595070164557199038226002915547115105849259640418114656986745494433371530217439694393274246511050623153283878413203802862651746273231120773033255453984069202760956317490272969364642427333708021327490692864259303664662201775101177040025667887684086560111492582732498651189975639152933107624242253089177281471188986497230552174276859362400335194924555677972990060169618222475640332294981888623946927246642242880443764111693126894572963336050674016193902801838955606250442976324571559959383631323071564348047195335029772087234270464291271706735599423922801056980898827090048338933255342948751196559543768608566044452352984192017674582447386514128746915428290450044179910253147098149509699157032323568789384608629556027344268673755616198478492503932614957303616948640955080430931653558333915379876361304308789590048480534528082340422464844108739490396157175732338340664129490789267842276352017873891300760458928235535307974835277087436872436827565181829455484763098455791370316603318810690689202321240357808435047562961868352253691529026647025961273602706936808171539064349667966454834269361700283419340973242381769639099098931763249331754684921802683425398023645454186934676527708800888549186964099902629602992572870446211091356704667706147955133127106080567279850163302825498384043167512028687810339028017872756657235169023582567860352726746107219379034757529938812689737603655434935931936291756361426192843476250753352153092722214409486410525605174195764365914269540493422405683232729845985192330739635635957987484394775420243689388624191429853985583585003558301916747770787404777245103181915290081479320645156797516265950595676275193367191347795943243540713048125009978205754953860469056034729130220054028292364159255917529699313765325546960468840066041736701003851302536602506444875395034493816769696155930583636158357248418130502114904255338423116072868603790704780559038346221529887920689585938217895732320037878592387961311356508320701834807322356569170634245719504860954360392598410517469323115831722508999518357704765414521641903145290332459929494050329335223653503638394282158490400176139789833882404891878959270157827303736842106240222675987968487283310238318860772363563349768408511807128238285375590365975614894668772930784968726433700700281100890983282101303452208981891276781986120359203179111229876293006358071707496340838818612161381112473773677637468995262517871079962317480251117575612163668630290797942032122691369649567622001827773259336508372655153604044319631364150181294583404001824084761955173474642796693019837403759131179285113678822601467653056754383262686630223534530038776057954500050911967412964492528342821302410954386155240863708297765924510378964149080939295281644073460842726023391465925017568850084122443766136921201547234122279917868931459763567397804740384652088548257853964412627193534005700611720922428150147844304163167533543516681591092173114294927581088418649871081717300986021528989194880888512731398796453591210961671444303840714565869781013309681296534305814407095142620790738266189336144341469916112313789570472325424762660358832344224025744116779827809914180485527293406534753038294287123742076459040805458800823061359321084536802524131744417801641021771117211960506098800068421834953941156504747313560195659254019450696253808131681466191985029418250835314556266787813860819353692373986549243793619694636291437058155529689292859065086286787034183310106196484233214307544288419898520689126824424201839271994113367246102821003673683600123353015910655344459169376571006651382097377939297240155512764313019777169878154523816528607328699883808674863680665988177081153243431910594441150250921920134207461639096329984144099188776029475672780882519949448285650901541426319356614293054571719877455305386308587400645273901885795779763912674235318776812432503328364656255854304009964509488020889082727398457788177480024424334277189507953767802935749361955579456627634530322724567843513079182429010416369569760416158325267811454323979367962568775210517733833267267849545489350712394701972036564835007163527002937492295402932525715772455684048644239867498083490862361972400690881567460059208118112246009475686739512509425092884794909865421379756812231200732115091288482315744799583044559193730020771113041114222428021672508394556074369805057033369423509410858915588916118977997057536281949360087995547846477780122275448423114522521549971582917586303106461096042484302110628240044592762395752379646454300289240137383722638656602135017787370519916926428460273748321109595881131884072474734190306918155805806973696346373628279215656437620157285747782288690469206266572165187790546183328024280095800544640710585256844477799775818437224331570394806177708929416381850885771123113741425745622775625368980053817038614535856029252156947798729262571698229131118388825993947037290817032440681965125535455766194716402066993781429635390483641809608138239319206340486824488450359681461277117322303006039455288681079961702552846011065815966119379210973285773941288260087364154932730367552286959723248651753398240688290244229197924128915650577094504924795973166965162212918203559316049509834240784697264517835467693508068152510820217484450587402981667199034615532926649954222366793390318910840734342680573932466900093089326666788501960564067543922360989594933875456123795452124052404865708998233928723983233572276087542638844563424744806074357768099477445298338003048179202009650721194513417461464123543170950839541439481788091647337340557920821335191169782489354715315628379886826758838268031003036109916273181232857114264684223611372829984278538498277729153959055193323090632602215423503941392798005550807570567630627481961738323330029007987988278264774048486663165254296543261806050870759321768410910265824893010762542146918572094238009600795874095290085391056700956463882895559108402421915750668138673281490597374243906210628697225338078379720214276827207072907660384210437604507223924998179937283140303590604674975931395318403779519052639649654089059982250219650390176296937809792574106017708632246459975185592350194698635783578689779555933673908300266311932939573192278944558530899258093889103080124962224760552741083898902039304994227275074120385575152383661162846706938073379799577631457152927608156925549964845882565176072145992964230084851962156163004171050981410502628036237848965522079053775751550433525321858355174126717977686884494759771441900924510212600195201536230989803307966720346283394078660282988719152492064412378663996665182648155018959672193971837547170187323610044921512851535004815636989340196925864187747312711382491886219145854121959733971831855670974424149569930882421310371472706996373587903737090985769264616205162589185147214587845890960212905640525412920828482728144173132744093718383217699245533502564664928536254424039763187365068995655541435354052639140977341325280231487932364028201658669010629293054573041053952696487005135173436354042488805842711098496726188162458346104144055137454666019554700385470637848684910860905281151977156054082725948248903540426869636956931336981875164701506220500463701922131731466683875854779993046547398974925779710926589994840040220594803718758142295159644025492292298951620690501404599454809960399273710567440243386481724743959239417430300433012474441074841989557070986773183422758734249233096643346171833693061027103083666760322911500595089727183215439510154131640586425207485425491261540386360120139303817660824605977635126652398058113351576940084777259310622265836899205775677371641445027422975800869357936144758759220496292576231019263023287217271929149832893998600214668196283725249907970281027022794224412702985011791914979813301427910685170885466634779877347126705568080746747779413325372401270963284138947341480386094348073120339904827440107554321551413217721208078160648938508460979297871186219152518162875422072247870572940244964354389938575262192752551379404691584281863415846706672823070563460397301880352136251622313083243417848520234461175887709060843855308937083667990762462266875397385882669223083339162132928032000067683377197681637533265592009413623006926393096064241605237108409839761937752075566262281867002962503207081458837611375529132133643126703378220501895345613939928148839271790775585396859744977909571749193272342563616948929327485421492494175578437868979667015931416460388882651234607941155472121433824459333760040837901392513503186646520821820793700549493799769368505958121858331903750315845069605501564653550064205424906678657048341257494927801009880184852698870993472228294548149280827601394246514838744257100690862654513656352126682797997939787701366549773592935622288996105179633362186998860310467712165259038233092079626729339813504983992111218127039630910815062678448488181647851737116444643316427297966328685164294370540941971769247886034752472412577261899804705033678499383792345786925593954787185398447176306622888284868666933998910817112651333526554509494822422770336839332465247039935255395736530808606432227496709321578050456354960668527518423275206522852230529339239434983349541989397431665672354066913339376709229710291173292166976436273281068841691185869230317931181162145853955933849673862140986669113745436000070561708358546250257980138486989667457576541951041676940892216402372974078087418905381399943437746989596899781149394892246443382977051029753954519122046712712776937310392156211193239816599182013109987143838145344558032707853847221894447068225497230113535746899057880926851896847757044931335336830910841926907002997073973081790244112434657244736928164607287731370917120498779469469138181027192366282243843932883647009686724016224180280924547042429570891577422311545627174456643382573414275484645802794460841523885820943738809167461812449352752753203367740799412879088989190792897194593906217477635693292738741236186138337541305572052826984649255321563071682260519723500607274939055495472175461496381954424044240496872818652425039154249371842732197681406828380466229997798020846936734482602466348330063958686831894931862680338120743749921085594642159884342392270544555276425602256561550906991368119152778560121458042410591412675650265813425504601482470189528593586100656291768679613134744963201193571403297265340285971000908045128305854539815007619746153412783182528051103477102702777220136580070303541753359330218690908820882663969345193433936384912480524306408612213293918267294964106743683135415620997033911059169658895100125963540351984471560924340575888329724398377632205378710023642235904528590927198602824940452660097732327070524849449191091005047707954148267573688238359902615219411927980956378320777545813558262781525789611594222559943371091150683190363516167357124954593649163912323004588944880248863173538493567726262944899522479551435650436108720598168374345952366395367502203033755493331321238258414407530564108003002263606441443384089917121835194049016981284549141834049723556355444716188462708467849246240763765966239462228228708021334437560773313281270162606173516254699863252900862525605253761296443501452985740821247062981080193596321485991244476966650783455639646276938286155833897101346760497361643813357533836731363738522747893235685811135009329303716788269260755999934653459762938225020529540090229420809709203628841625349532864123758629830195348710359656432243469791619820313752411152416286785878162119137859420310567371145290284908219524350833726837214937030477058667883053455137092037467302299004691594480708757132710017878437253242688534314219972719850091328483108348291145054101974009493142585954737620253771673689832649239824239526589885293211675466827771705266824351671288171064946355279199143855188384046448269569251099827500642821733494776583785794774534202038735197285153548292255035614414094333759091529853322022235600432016281365440737573813558040034490712856085211771039913871260991483669614082937925014838992058902822480683623644375986265576622115885394243980848199671857576374655058211950863271013617297073451658464205674830875358729561138554426841838137680191211684843454428963868742669198757480737463156093328211108244204865536288376649151568685251504403597905988949861286477917553728614979548455869758444313424376412165408384133189603616774521530122292050453988274189913716495294075119234487370740685040101312554694521759695543127503670493997159464438402992433784825397863974630587873017639918486055544121059778855584791687172374618865655306334816037143428997914147777956853514554259977874136639358617652938320690017078763306105112707202109006125941955958709159873853400977131950439714968304858135807007427022138868383211720432783697544346727698213069268209974654668600939772325906367443736339934804895012293267192887935301898064694670670374861369940868412609377986290568103535959716526391332059293169216046785227443062617676311428192315961593634359773971764943386548662760708900976627551056054015777722918799994707805468997824678494199707007098173909372533951574865224904649452125254576716279764977620488036420732308084862836320425497241899766719788234625047986763611009795675917090781943600371514920378825406156791971291403634105181849681326835807680729400520711794230026243171144037837986039147256995253564219227315110166742182289957669301113304407600718013915060362617184035912212638415646469009146661760568951621409725182550747581034974516478898884848919343566849438396761380574836047912598823623960869812750617985702102305209712411344027429783288457324682344802325200548890754270935328185576349962461970749762565499860790854923866045607434307137504740800567458312351162991025663560223885446508776358521332800839343562146544484017987676265741164842277029589783882897633000915122731444046681610874274169689892797939956423322588063479565401564890638401267015613858319909363458835034292867951716950799320971340902191289363925177709715356341481332764839044632825662959473780414782019126877394510887530212612205403095554989930405348843887554882312742550892862142919442416141905500370200581405670699904676663986780996152492505703066767507617092610415300071529802822670590998716434696034839861318926026148712486888289609318444183093818196948491952642939758330075073921475947572888428575805598960791577593573549954331014534818616797364965825543938274889191084489168933888073103184688632999167618538325656833480065023726914987211587017718522499280114270144584090879405167675524605871114244049296641577222513718607103254716238804755406202738743353943775047657100898924846792726417931029872148278468603938550776974124194525352494023974151962335730871349548487184379723486195226394004980607336013376471554343312574841475931096698520929443013366321291909925755767626869875981555304152248987518426313430172144507536291219418339252300214211230179337838582662150742125998739551144500345837870179217196110082207551485024377454530371332580035950608247010340041016316088243322013977275177305087565661828746080584084786973586210914232004519953524340449003559518006778908831684236523171191445634367167840096347246223887372343958907444172916478303076245020805368940717431741739214846837955355851919556056090076348669367424929597030411977322612449539029196848198747992843186728006307620967324806280259373358283452941788420242093273327102793351034357841315512190946191818453802332639925820669449197743131130286372767443046393067912045150750234071605630036079032821892008799126438865692469158406958016759076339412236881274557104370044084738417540641515925860202148180344135281104799540043239001908249445356129227148548507382964623800835126427271707534548729837437620748665355962626637627914813955503072034088665130811090237981154166356358971837573252774554204900408499701548323505465381921246051629101561506373801759970718371973134278900533685121756244550026892810590187126016321743483485343747099487483945825944175691469426168749813339702164922474550685022090039017065100620123708998388878103136010052513325578551218327738419061877580474540738807925571872452035915077364787981868815563219305389139089168263864692728046580872967745580859104521774880718294583917725056917155057153905510291512748939894584992917641606470453777005676290637654235179761970731708950248133162420242504648678385768203028084949336895530558989138905128238814597895175156080981305186394578461529815364302644922524707888733614149241014497247947639739521566900188232579077682507951339898254723066296727131218624747365768968228262834603840086881027670509714727851153159209059294862223549712959900405542846210538524137887183169725185332892413058564401885860227583079532608441203427504369636428094800708279463078900579969082634985913623315506415241059215824681435100662662962899774100947428751170465488788214713772788245883995335664847264530025867376892728917232142610751472842539410121816575664678057868230879247450782625885392366899005955776378488346812149939388090849404188527518570710618904067658368941334292128438409034192188891135815585995186153450252274569197462558227722780813164750640041915661331844521132338642503586163312879158245999595044169102542792139635663992625280590735885028951378175613561711172998193269355776759173618520830211815521750175247613105097918709829474083378175000115046513995820037728294256769567451658933432164443526927584744767565302491225000291361233623688421303016665480077141569695909744345232543390019742415494899922189149985514471747492958724843469650702027817665897958995570851710857988988699198245096617830269554987757408863932479416770647135221616234577378708844823131482129409893612885760671237111709474575402589221616209306639581901724121119519631350492345726047882104697012671066385906795929735235170266094838161028657141631460511641425489140856870604043305636647798163936034460043608849650119907157050590689876592596612059228484507799965559135645391769633974460433676765383962598296466106366217006812482092459397476217240782692616451361973801535107530626529230351725228690640750902034904349220117999467686513047431561120542147900054669707646216441074433832693868091254624654886291647390169147468559187372294659098442486672928951956875227818951038165104190929034880859654093951612935738474472871585222364247811184555485282840527112292245897996394653260499947374316575405791886133885873561111804904453376872179866741101799849667357262366205006867365858237363813512031377078062241498295606446751372090359872283657367443186941587166449267335304291012262041234690040606107304018149210197869422209993887708631431371320545055460415451345402712806964492370326457335709610268728209901137397298829624692600810165837965332289436772742369579116834125564100195788905093703703228911209193746837483656451589209093283153035998994153135506945417427575573635088876587154139174682067663800921511870953871057951714071979348157172192069225884905111343899726846856941018044554092758925897126855345593643731051179030212607607559719020859094068133684143852738809687549457877775284140789374663600696724609809825659283519426823463318953697213076496400197468064899299524167706378421257580848679015861956718990545244247205468457305696539614761001457932462628491367720090091130509319407915264631733457719220843972944614649632566790092640573560158877700853190543706574572381623727737795766373756090029874262428671463003146822340885276007536533061737195050149228235013464566530465065497599866784724773283735453393650058121634732907184038640600902719998991074900336964255556159943113657533475674052466631937398112971462897398113321671704665980667118193068861490058659789584788197385682272171088612928613448594594258350532814529157720464398112880985457673916169626450450378297982116939428792236509458190432445242742921769964444288347932921592330045809060829506692712538443019350225182614429003383558667046423086314149859867490071711506244137459071408680515926344903253578448962202248409139820680714379053547127553141250876904402589658277816822993240114817227735311128644075813810826460894843830530476887703468317769556984399800070733089813717323114067934264230157426129295158879228614748760342985673025810241638761918051890547637646136813970448800789748898200087090747774385200756135429678797867877543242144581935051763485347517355484240906728378034044043776704983033024576639789725555480221978769023330260513874884295416059252126894398070416395870064841673577021305578473767984913312710004103313295705947146696139908686962333242508219070781423034752630306705690637773731259280858578093458286584810588835635875362059275910989849202864661834756669115817282991440887131837493218092585019889868740318617252334228708445649202281259306900056631521341088048803203564800368179857085864517716166931423822259435854320295703253224470072841155118390818583930635182130675268687088292230454677827847507663606438043680392142677688234746517502568672879657808360970502148612700728983401327159261406773358002855855650974510353206292866428228379245364135389769161159161068164027799603598221886901982120427402912830153750149568073499487108474981025620360812314299093597005256072336325775834357289345157448377112362316721023791789518209966657413121458375039817192750717503919485573444776785033175756181628058557187300967195084680008735871910444938251117504281218426955316167200883154216538041516215899879593477571243628151001828704090813846462601556515448139945895810043562522575151980464610450459263120188403662521030504732933575813504401955065232862459369222403906730193807486762185971838838041282348912487915615875808574441432453327161148324946420069146550709566905138948022493180070366321652346220925978309838176993291658115608350518436402604717394211371036408735622820953542850447294471007517840437843532028863413830811892579514552447872233620760903315570073095804904455157682021754412076714942645866479950421945794295488070394933612225961900179904724820715350729195938229180461276543651216426588319932600167691409981458223656909522182131583359689863570920493515389016421069525686022490302666735825221523919416632243856919273174964877000852629146563754347223617206031587263221831943614212363251122979529379980254852017479132498383180112784133853464339055541904776990507502538674912842731469926015139162187409958310055152121431028526207373215944178378322077441129315469025943876898542519771199011427208371472228697414041621378843092704534601337795773392818542335704259825215117912980276649432746821684835153433003453357057234446034274705937911060411639937025412479951153516013342925821453132142788960171430670440868203421061999194787471447463981669772885456638916609188449031481857531044361642644928751597594101709620795977649769473385393573751447759116457175883609681463081163595545455085329547636328373852133192588101337449995253820999567191921790596034376129741919115343252278895842198150530070635719339689331861232020983965147570629909875246930462420318902773198203327259259230125832967267661455826051123905053553771935121279393925145039191512208952506289858846829033822612265914795571137648902000814642193894862602660837205559005769309148845033008482944481735271447878099709033258154018029455877201753116757342409061034327428797624705466041314751262402358544153997790899915834610377918770406231933009457616479858697825229046673662443951984965437897048743910299370819464822123383994423850002488403129929739993516428910333823699159206224150392145433978704531992351582859944371790383116402165034651821680058557838473461983719391638577661932785465925778905026328227662233036873106276556241904256770502531723137145654811211626772801363992433603417951712405370956625816595052736177107237480267643801993358485912329575891103534988821477846253447548422630083161105834037295942874472345402448409627294584955879435326496600043559236982160772699407169036281820934186412556489196901154213387054868605556884092800229539443423109833140395378938779655517746464715938311255996951138628927479353587618489296583464344179297640236631761046140482985598848345115401558852840053688819912498934519056013524227411805046073603024158674347014405181432090324332592826810081811188870847604583681846765941855043727586721335863462529812288130729615303136902925816860312749829106389422642584534124493766762561207396847508405837069103535524174281985624187352683090337033914404372353138304336163279622968009438755460592868123861411900466921454133123157795885755092318698216472149467659586613247137670684037882553330121618516885976855324586822050035361269597371441659748841752431154881021506396846318870470279316452998562483542994728658681480508142962663035331500622445119287759167571820957893917275035241045674010289148647608479483084530501203971455252057456558350620274527492996448131679120036189636586747835763604807246172962354959662465195480702412033691529362662051038977806388578795962222305789448678578338310354092421505098017814874260267342771137292918060764213798644435621719069058145758294630771959423584357472427444847823568513679997272803057337486469009187244041509174810354146119710919896068944779058887161917954297341481548993256551210424554670703937069613894518737875575780919841850413492503745225744959456850772031553835029454602972244682637993846020857226354241685581417043212543830241213158355170198315370337984393859689965611548391847153875165840464999919747316536654847279373638882037174939607728675669188361615256803953800327132452920638247559827374703483420871234669643315703148321533363548043941486159700369312529505189037277659111181733190787116941495865259460934388691137202525918895886485049357410970588323676671314952992355696129041207876085619960047304757859878622302395047807324063445815896028711426525763038135881704599502066750363679529094842688571200062890664806739067787597884959515539743499027123200984187613132899574096141457250494070329688018541657017188296947093091485387965721493213027307759987298277450577237573467463790292498350134149782187093181663599296586371181917145606111508458133770336939693386770277782214126892555160942777674486505070965332805462821262453909163333792990760416768012821326383059459802492707607978116896292730260760242706259695893024250829192902879589121003587741332906081996353369479723255967702377767986227677616929405186875672333378295048565668665641359035667601125141705492890314890528555737530968703004865752369287460494922367329072105770335692452574013180636894658561222412683109959504545309926177986488335416334495587564948141320258641100556111021648213056192462752425742972514198403314830030472370484497558152166917580065427057610247332964472150721913338001374450679952105588019799523910287898909756963253567763150624995416277260418974939559800398959687394431618246513660909370451880935870832305187530260556155100909598445315494219986402931948716546722347784216456147522376949371453479599141976311495659047439818808887498794883259732545481430991735878988749629041531189275961173560168796976855962210644177220900510350599996853352788656643630958509326318313993722807057933134393494273261020252897270305235063470007205948191285754007514711563743464755907218781304274022604581869547044756081498487051769949519867736371058981068074430351234475549119599440762044695484303646576745499841835762841169799972576646643986637596403147145865401454797927127112247674541614233587491785455972114060240543360964664148799628452988264535418941239853769948859731601606128470525435382545804514348016888787375853133832934933163064143132564696646110952270657772045768024875847996857098442285092012066525435274411423935043508759495996922796449339308351325823494237089960245774506916534474320439590280057735949540621647941158446502500996714435615917273988691892624721367548576232424764343866895839710076707321518492987747714845358750457026299731123692170149835959636915142611091756484573605705030646405644808070829022226632944042763693235099687126993534185846248879818487477514523550359072515772827609252869948280413433387639346204117358038534710296376840031404077537347192900124884414171981804691263437274856687970053811565157684961934348340993106106642844926399785149606687334400497511986607451514902763627474780397123496855652800139842225069618523997710628104676452675790674274981999333264430751665102333002949357204921246925127999773696503749005812863796574118622822608937057641048603133361786046622018907945091469133771064788789876823259030090174685358660523980362860719438241290713764535918617331693618388880406242579728002832315009743417031816921299043352523318995158481559525698438619756976667358031751070700550967034203812897051883428514110496314220112300803842809729336807168237393893021590102036699140331604007175490989006902370862105903517762148190001479785410538576666522025026855847664871851163182423339165702999456742967200048513738697282890933192495225665484130754353943468834541320389678586889959584085280119739191766741679668433788204852465957289513293732714459998316470530494729980118165383986092268450676084567191252741952729734284783678109074791666734908451488626793565651340473664003381377772872058560690494114779650133112758522111577226158177435496997624592558791524577125504732564156477029521597974879987116184798493521604829235772967005596031650333580952643222130327631942433399623178964742355083838561808493914345961931364986561106326943024663514899856306452979264614036862717748450660468554270648345824503834738236143846810416360962094463587253220142562982636875190869455297596402652499900700205048780404055330409709291655956701325764633607959924464988224743033062228668417604968416738115115903749282254892567874993410933643721572111515433658356309648457503547839312878570875214472875820706060292504375335236541407813583984880440212806147641819355741113014317530779652629166084138307583408292890226765051790210077379627152875937692489856260210603951451386240175716118049279580851012204778682991753884108336448606149473026831934308005697709756608407649205387955814931771879248283855355119086610018078091812894108938986440039984176306159128200280895076117453413692705430260324015552994934509957658598928815474807370301447064229313323883694116579231071331491058245572658456468612145608426096330060417639854777568332594326320057822585888253299678841417450179843933146121733287441494830633425913374516441499024700508814825479084511937248449756779368031812843568170991691971258686835418640338710194438450629124910676277528017258253812053884942280247312936079235878871109256244558908352818199256018519184536490141484998265055846737476487033179131165001065280592249226525906467830565351815285098659052498624394674775617302254429299867642136054228884606124139833664389421698856462098375077930795306663155841174062400870434307858592591349090128779337027055331813911134300039093823335302752614466554111656313014891152975971042448300864554543268605934627797983525580939471331236412347898224555775079086836184692702116493852259131789192990996661543984269444788833449952870710354856437000745289451582078349499479704621779751320814204148228651182014764494962338409938441595354798405260290545470699904571256074676003041099009147948673598013578636104833774948137210089922088742148375544585254112094547310556856965614281371265731656535619415303741130087174129785939482572266975503094845251952921373860077115130292045756608789666093315983151729873760703474573850224391053453462664173411511343813142819015752829551709724686845099333400867842088121563922594948693360979477135598007311964488780535961806245826478985146465266200397850496559214736059071288370829312181533277870491257320202599853093263527054226705029664015108431887132932557603784935729095934899630332530035818565153923026494714866402259359451561637685211404939486569397824447864185379449397604290830522300584818938489178887596397598306272265070241826826484971913533377058980607343723637642759616248167232946817422092998809958930928784642503512644310791040734008024630054011015009193395394739398794284064558702024679718465692472364598077688884555789828124421808787224175689867494367601391480742907105214833566550500432206141963791416721480563887297328011083388777419744036293572885951251417187822408331921404051831852136107359489191692032145747483151896685145338796420606507093256703523492193748979541311653019194989665313929094797130173951960952709386795300252724119322484172001162517942568817810681944393516235731447543389502819163016479520271630940723139393328827605486448187962187162065142892909139206171110887412809893620829901771716583646161342331206391750653303793857769933857921360213793124317119453816472008946417867027417006769756544344511868264659928071349622899821202499055909257662902891379820364991085957214925764557269174117774603406185744820045925884262627129164096769530355391777726848593925543707219807924245769915624279342495907346184421425841582301213324556386763266835318395838139706984139053752185772562458372532999450961939300012850043912493521120885591760435819701089033822550872299955546454359163155215069310380547319615418868485798734160884350531129032858169535422163810069840324851804597597952865256491992969054043547212802340168174696211687458221502244518913617462577491191602020911966864780580702012376609128474099995330462649438677318773540349858622323281199720134838173073575240264578574711275236257035525203178505224299718185394188862622085763066208141073231879916782403976526011498990686155611655900648594807855120806550031020177973273852652661621228868590221456439164034841105121814431516237326773278207346853186587789962647047070270609551071429427491575670066872291234697059114948047721384873190436897872054549050670108141370015582335644659381818831894910808314511221705313530197322501208401753510283940696030669102263381179810028281922112991005119899107514919172869991038042428599392770952807160841450250416675785147701187008121298621513623188438021325637242407369921476344012564728904665570484509656681122015982056123910422237508318969626893389351608264325306197856338840850091583085340514876968173417158110666265489224124867949746759314557057006847436201062132497841104835039883212862879811134122531658648256830939407336032403765008794268853923606656774786029521757596339273073375615576622371368233857858207848228894338550963436840235612754751465983281929364023573060927838725191170470560054651829844244482430372416442252683636474101182814070022056207047620088427650509576535120962062421352868689518291731852593301399818955748876188417433492184215255498813799648990215190456376351651300389082670720892882483756632929806628479133795776121500847953290503166155521537767443256223299574256212926260273248983702097323426320154031187609010325079598134137089909872969843038123969350309370897772628161487219166404495268254486847720206987477601495298057408418618319036252664616362688443193330852884506409417411871682226434276804367619371298114994067169202727713142339683636471578480913051190260613748107721937258894942801647382052104553357958356814646848403299759807661032347477864599076735438091279548638775857390567436145709569644404223425529196820351892434613939823449872762437986287216361457649918120976553561392619527637285449613589426948301940755930883376476179802344551182570078964714074965645123720127394862456183694002545044756049055079185803472419372883679713432001225975197294685216260421364993247556824612862908561632499253789891393837873294865909744453653843190952271140435417984880529059595287682846176643755570710526955861783749179919729862672109175370318064451769395574174643967464230213360385500674722778560339537124311327085172763413820439277485590012388171589701152274544150957183106955002123173293008292170660707793870080263622490214917879615829109341365658778137502512855815455926128432265730644843003332791895315011766423278918507604562389490431129427112582017796523180948534724119028934323304860401551416388002991495972775856222221795717057950166547697401732075799028432214135010522084427351889686813019268607609537483190923186563629739813582596970700060136320226733105178349234719758658385868708397022400814337442778833127844954336152831852221323587090343367813574724082326907528036959080591901562889715151805724272288684961435763759430519736517905925747558952774540251084210995871755113452051340191327414594720614257100176535996592682263162769915607302345231543524065533728472899375040865948852370632504843129942417317399207749202434631985902219770167036335891342862197218230066520908216318659242873677855098740581426236123392640479547897304749252798931494144679371303763434358156592833594886139391143780004473227511707817068609367387908386939672040058885017802714892044961468296176734514927975888356068950688144044658523832392567906357171967160945508621982065085558023182120273485872090812301105780632820180491873648936300410262863349840920713549737042633370215472409401295796515741405558894038679624924859839662467235701316335985690254140340739120627198799486975297438447404109377324436436739554641191927139695110357832412741889067169130230247451384817370252588022794430609139806874633033199332214229878513850182730779161305837047194958661730218836124090583510484456607880826309123784244356350748577486458716560386943098732593489153540773976042363316555056203624742089533466827165443615288343699434282417184911229342689356913136057763005773882042339104341211137056138683793100150382909802635507896635667527395787888940681842489710298563578555829356116260967931565048673096237440906773504820833150043941966624788666464006523219877752780157237122106860429683529127296663759567675341141582537965910900962306527277284131395881141645542411935073609313547170945051919765303091846678670346278926812375286823900643752392762443481859280366182670006092439733577426895094138660843478702085812622499257858845086652694201186028291443624852933485347996941816473061466045954957907482659489060396132662017836004250298403773491804805419031693641467157937138640863886306496225254625115018131615947492767195893943731424086345631427549283321698572155545555139152346586224389893055398545785978156788275877998362272249309254568280349869033770784172491310443535900434970150322970012476674835598261955257215859972630627522817441119365845536904445994992026891470308891624831738199192143338116697656714046444796154184963020353658785669646600397630816546455255105856769394969372363538723015561596910140695031876241181646605903805629582831578348385136599500693734622887049295172308487697957091667150978984937824608286559384678979092657393022898177231681334701246411433386207054974139449155800757739736436879972321619125997564645758854792283551952596319928972102911424173853577319730744242098821863138756794514311373558224147727311232357263036541241999095049635315271772512224478760729284084705301442578754586927813918317178626038513668443473774950249868787054572637533275711576106353015045964560126156907061260203291837565290675663785281632030185027385512367812384204744238299910058800867840665544406339743927611529683675648219935785554468846876946703158905347052503156728726467368255557143544408819226569706726125719554254743861239056601523500218495617322199966142855769286103345963528273605782309988219881495568875323693819460821831308549988656606143439361146557365778514034006072758440553380721476659417679359572386244038344563946855859943571975069586397024461870312655383120701935358167206443482288028105925376515227831023943948992572790385249178161074922222887052556915363400596776999599321753431248415983677997799493315869157831631701110995325919371100468658105013192939924933284865046366636963209201947572912887903268486692649539852716469988409943823200590769423912417198310894625233710791511124876282005359194814805255479925309757675775507258036309030859502252444438013973614164623969415501486773609434664715000493603383182640239278324390282775080622972698957558607217180672945267000817060368146184923719494158011513511388074423416366661161374610755299093117296204002692848160313692237665826081846882222682952847526727107110563200124315599872992032305901415738041441424230601637441668146073860611256398059056987467058152431171024629625773333995094979076298596845402564928770745796431261161086115933850199572332105424886882966848795237776566251479323023198774745740370435780173814174405548964838465926593987426476152767479532929897900480239185210163136308409050583452991535221166544356401379977180732782783274483515811338616160168897374366019857630300082080868892480032696553678447680759663227272375885908848129318774526616077286734971974349825903365323227444728738068170095199984911624034516814716993876800387189630712318598125498434417973511079941778391137450656300507437198711870538619371763192956493626496199595415271134502749240950216668008332749818872504891938510985679179562010612265865681078443334195366214195509697809633349988616143434758075845558982946353411393268998084163372130341083941432524315777500180478393792017061647800990882986796972510738040603108374447589131761942423260580796520195845132688208306064224160880834574332452988340286320559546380136752632383653410929544871961402785802831258458653017304801362141540881525186109677928859527082124225057544273153457601846376516371450612531416741072490606275661900848030289492101556425366776876583221495337487902166491890710591142523673121166606435949153326211787830807960669161790290556142828933593040977604919642843194491013483006623393578590777013577148175457180353478650351113619137506374924542521648346421275475734023421437428353744520021137065068745942708268969682454791528843115159456243269377684277111817339706924509685398344144528350841141679281763746884579052092574753041117275285490215716530497438853529145314418369563592902225011886591614856851639977568169560662263596654869707446470644270191235203307011287420417563357782575309721812202898757755734290486152050066691629295684902934397950872734501820500354694130039130563436307394180824411014288402558301605716635411526068667078021585973621818020683860380064198667536779785895617247255187697603214501896878655898166427606080850523564714551389199235825301281548509410598184116308889301215238762482123166428012416040360237108534120899987528051957168505615714002271279365733931984041452783881369486681264347818743236414321100930902974987374843084007712341254632557836605648881823864149004816434557657399343852981239874693616490730484833019974602668447645682885335748491264660748252978594216893620072975999394308791165330576992240390947533056900251726515501031603823407189180012631557028122261365071160335261946819676398072583392866715692545661130681097776980896631021004456445128229229435062822697120252735718710515226277863649946831099662084176463423364222183083628000615420158207047722346839174143194196561629460206135650983760963372481529790519956576003846640478903367235569907813013372457841989959664271088637063239253658767649053290937214592857872178285607539368340405253768344829547399590360412191321484626658842694764525743038404009698138697452744632954292805228056503954950669474253683685897211871581871294609936131551286189607183732303016468980559834964690971521797200852184436669558513254744156483680246581203716026602520564476748020842547062653388795862376631125415521478180507049624264862154184795772582582224627034404205433688402776947333662279806036191214187975058356108788691939270149269399889108068715874882268213164210185966018723296508830988275800614951964086056319263540620657858616480257053645640119911534020405245082572503675186146577407297319946834034560164284291553663961561968332191406483126902197026670488792656405095612714183897299803590462917121585600571924427136874495312354978148855743303021508773353404406132501996823924732813094260147940356795793606426567691617419724496082229423134914769110827219426936996741221432020768352251586237403350784822553414830702449347380319966969485275079241409566464275914029558068092290670416725213249394179116458746514460260455694838568925321792748010754823940534259245163854737776862642595764019492566671796314990319921437273068670179857013447357846719654797659066468514241846309788800654366802211009455656239589115707297468479648034401622255748367208524742582402162992028379276310192412151380539724315405657631634489785597635054395524994323314441420159071593436359981673214291146861139564090731735677652769254675427247995858112103257186708960330801719158769463393926594256294889152058827718177099902092443470413007565074756300031490389924375503826895193159723877316959819917567269036267837653963425705819047900127562753727368877776095154931142636673865796614093900734195651266331371811996695050897068426044080012094343265440439017728910375955818827409772349119399594454004364558884024095708093446361365558738286579486219625937357805845720881158468770798298102658640517722903918101483352782330187516579293007727275052291928344805278672987840966321593917414862357520304698284481090446676268411677886127101016257076127113848428482991226298775379607320708541580810229657943451093736345388979540998829763137835016486105125939217786877737562196997061170933944368846125702420968793014631779274378463911973842751964547005177558978479152882285474936922286457609666473657321780089576792623420150183228116381373659274212332135076365894827473308573595957332077218635939517885164102509400217406355368252238012767755676640149385228050832915051508052037664799122561923813362085096766935816536668567135873795507743849921304610271445484695637801075967308761353645161860572284024136668797960174854242156896503309066178322106361694932985770155079673291470510303360502826703150107606995437877465517217996829095536957874041868772033779160330204324844401971254724588201156570038676652343872842673656276141062133825516555610635047260829942455675422615027780834460120118602794154873751242408452143578383108007625859974487369221096086489565039378834672608002713973360691508970374490039742788711651290314852864975780884672686275246931694694944333247674058814017173416559473414649382824752804103946360872024287900152581790019189538034296392554086674236156664406454008192797320284079240046004307271085819243824779236145122874021139088758486122354010614740181632840045485064751839368907671346616931043621476039741354461571351043389262175916215486939053219851468431947637921888838135138941179038282461762896312159827597548528188083718341685968518490533248651059694481109125519804805266146469823542329043888521156732187511975635424793467823618231746072028669026457595367738385319223527069394170849660715152133263120995448089370151708787044733166820533942024184928662041672229081366864194368033464412882022217464812384259269050388442084408824650148124200231011922880138904294292481657084108610251012042664797367112060803204893651390324627433624911193057935152371060481028734709388198484167296562194542245726882056053866121468531071130991852901019288310941928438171290089720478335503397946490662107442992111483199182494469693821366631757095348938158562299328783049416123604041136981821908737621367450285201191424362143152328404719649358790279320838776332444476417802489662113814867265422422740375321527632581261970801068169186002877553022333976853125424375357708560971186868898089115983952068223284305536460946011788616453572083556561549772149674106648036549748452900416111514813473281096474717071702270611599239272596386856973147063622348825460085168190017389137128643206311553242639032235397962636578279430827429221862040081647170531445854879534859265066809078810119256649334202347559036089188876232420789056161958384462273860922575866689450125545873379367978552001104056994262092600672339324015659814994997746142744989864681055019252148656260961702725185678548707772108969271231827257751799099857583111215691398765565492798602642563452098458418560290482730432638126364311132277302248999145184287804370019981018710226351851096582706836185195371056693745008484678929070235378656442172555802729941365102850573114950226950620541158553104372460584393895862408835745809314254313567059887801466386087879769351397301404357326513443233158655214367420133507743851694045889582369185296152925422656360757641746637170744588006574722240431818145833404831358110733641492757765251788973427864125439626407849400329784654602662944299045618119181524206424244385865698430124568984080862982075389593408487266119830529104568644443677410119316924749451673950008906915368971333937381195240051984254934120694268908829853136643618673174455204198716048320987751299014578672120032221744858512058455077863820916431349004066957182314403214599840309578965358914936160271128045312995710600736910044974844021711050052098773279255941647941620630381299298399331225433500558641715378998061871911140238623945616407904187234851380325307814618456964655874636877376304217650688686915858155065642293372657641722577263502632878736908044651443348311884922006041358201531212363198786487094478365011503898887588622262848581986558881180523065046632302350995278420602170906149704800503261502245989569153678241994949850729028990235182829883269976640422960287302438301910628699586242184597408266583209008263077809981371160333667856077658401966055827494273249131127822017933005624550304521631303970184702455039117384129915251847962903023929424419653039979095560746314074765191081458778201583785151104792941700794116455652877606337392034894925919106456682667102756433452013116699822641032713708442070555323014833170772760255401129615639782030622283959229188347761085742968660325495585982916404244047378458390417518894359580683066073343137147807232745614031613656689375975571441281501288359147917479282871775566372435183534359365144948040140357461165747532380835433006059480390962345617473652871628406728028946871243511541662613950582399034319363806235777063515442323550028519913336836741273953548370198876885835245575433516207770445012323363083259037474420708528096197340210733470976223905738036922361513858821439570704156313370153848435930257293106928913125257481013513536505125596145357130344915105202188832222798743291753753095391407523485967152562684388939198565435624814842190488371573014576971975180734806237451486169546087130896954583153889864689709858171576312922162203347972020415733404295198165376482155248657251948217584786532023207903087176377242219994607558487796274611694684442308039175384254506144374391391997315611935599930700100357494835347997980958076262486720634579975956043304614946535169181648527287808908139332879508497247824140456753849178340486553249753138476856285597195294805688814510317032773306393046535589101094046970847771674362642390097023703582778011176739509446154738799004972830629905458783820985480172968510656108301860652061204188552522807476784580848199301312150641015829243337474249779247508417450968792998839114699637831631235480754446548142228915426296144855743081058162189498545641508456124246464784239764516914543272045229899094806691886548750887558515813200099856631596497408209468810204664409977559173475620355786734186244122957481712207548778278210419081318725423448659777530653565473473350697349704024471117943530810839056028080936111033423252560402358599862174281096939169503805304348926222561045975881782817583997800397848162705371079665383704825166198994087658316302902217351858757075819876741032882240738124912940436536992854981697923621669209422453804708107794992400732191408362554268058338273607791942888741766801909133737304539619485617543063938673262765248756694077379650065755627412620809170137248976895901660187845219087462823169308298290164866532135428516197723974628877836542061795509212390850456130514571241175335162708956036840162154651173517954591731890447718717706434763778921750627763626589139556105665087001447324851744046181607641524830077927270690163303871171814744618707146419369603145456482677104947478510869310581614541780132914387166869173619567262322286484564012438312382197149588878339189439779889986831187123233491317289471635114502892780703485150334672934084762822258454542330625739557114388729496616054050692841646388958833044276092263112772368876618002193246597164027882777668067728798892540700300733129225329308149363293840853691536884631626265037126893608948604192157539858198098004270965963497372357562004933810975367138992989704230332862030426141050386917436646147734552913735232391131675573528202595087716341741471843177848429452723425090170663000567773232489872318850728859158282609960401028040114535849483218889417842228493936720670530433870888147864399101296969559219379331903042245235261092454058664156022009130947735383463078325721240271046278460079320629947971942846362401050508411866908604778291270700254495940496315738697279645255131836484307383485409117959535427741188719484070777777228917114605260269464972284939351213993876540687153044218895258951567299053199256627126301750335330247320318045776541332098451196249025396493459003480306110743460050481074728854432725263231265377884753118523269134637503550812017000928136218071331598759175873969578534863630894373497482765060498255527764889372297319810867847039523931075693776285480939951373332500710661117839278263057797399033749441050761124262349202658594278746939440832387034365776158432652616483211887709991138149439051270641231129005374726549907355169890696423823071961604009781127262168987233957891862686805454953147228032701595032289899127921061196950475278641653740176088312503752742244329888632588575114612102378986551528105576909387885037331914042700465702087259912107631617375664949775025189018560691668182180808986403623231403631959245532879984513296672170889088214662048855253598608653554768736642492311251446449353660076039088840703797617278268231276909709452513242492044622573379554635440450367028677882002732212156306017817640901322703088843043072374671449966213805443373790265604315205841429090349127706644941927323763166795886633962568923320000511488028051833305221920125095921780600740389699980418388099561998179577114727043681631129103548528390509397852753289448574189246879312833392961595628517018989071211806668217410246405498557823334976491432219104863267662693540400557144638518215186194863557189651709759771820736486632427966295862000819730808726528159853071948876682116494971699851731691288372431194004678226390010834458218937152565770321505508227414792204093354836920716186659098629749444391056197798658790060393878873626875756003518220109994124183748420183084026820565151258572924458897988817014572575493800200097615924051202302722304451992210712946974545946202692701397585290368736928481924451465320290164636382158874328906595646468163529437015892168680261836172662191743221231960515917411410722896150875065056735126566023474096524010747190726907369762031933508539291432132086570730380052854487346852749084728822293143314778442048055156997179615663261549571537497968467339764357644639912523064220236631917104821786430603862079638023352966524307477636179114965601832598590027114936762326537812841111316443929074497526368262786902534327863782903120202983855998316074772612797253004031760441332283152217657132750660715213161553733132212749924085752866220750399624664829183541695216875686079401061915606894804533007177840635889233307848355713052214452448927513712536820010342751169552663128185461137391915448247512622097699486785678764959391443653195614223545282270505008130501714904967706878912798594687588578458523551422955647220928307698045284162890782150653391148488757270909433826683155447690790411737701022798165893925736381214412709911351115079025545721246101009407918684371123797171247755878487912750694793127918666446781079326649204340846434926970404052806925503092146545401352057889054883533828927137921323558895324699985696365546885603117411905737844287699660237396652701463593214205624821976058905321536365652481398543688900934863315365588128831575482603356144796175787699062761188653374497807960578005889212867906712959997910951249920051276158494161401708825329589808360597316107712705340690517599087353509886883492944392654055762228509540246167334129371965240641184619236563001940406300577240000060079254451217450838303972204875185355116399156820624533690142572228588631897628147371654565588506914103639623087784164743268893175783049183931712917121229292570938771405258620626749931383344671377026390876170937428326226088783602137101539957682683393552253957056312537782965911715039289092656929589196710861573072462330360477744524021381826532671762420637029277853285174387135178058385989451991045910373618114278993986544495561399294508920072410807785823264233508382013284907631609992224644417759926419104366635888068410858163698081164446966721614001774983775872944501344337997744322251484789904173500292591302191304744913047547292011541382881765856567115242931073707531171943354012764720912983675353171606431698994207818105039547363089572761777747550201097366554826124210144144449922027286433737587675963503042385382176367281284365754612099727659615621367581103260780620660366532008632310240315459067460924581704378114289029002654853817567414859046077147696153058537633394812887868604268866779034480833616631583375363949636356968239563139426528529734018843840445373611120639215574782861618343680083548941702168963851224956708225185179620375955671154760714519129884017251721643468558033172334850814688604419462662124656281923903696101990716164115029038577997019173625396999195430261185750697938294580179052997141168369010774344070525905776413005713966483868286528054382042634802014255461061922964080284829369788201317365368385378587812165027554679346191266958972290439955592427942839997745112355369049060577851306790823506854954178204520692468641116749081502500145704050626753788602947116358183048842203416174163093962002047713463821158522258506257792426704554953826921208881096265258233318075342530574621110543535307983284547724162443662812840383074927644238054747087244361765763844158903415642759989189019873679999252937122149520975124344679309514501666195323400953282191553444150866068366519406257577076167147977455672408355966681850684185975488975094480587537043956002599825727491962083981711789222376302740870628352019196423225959092467163176636745071966489105716387239210918941312222637668480747506406595661207960096322826456522290516499213861803168474916643201762473051116873121065794661250205882616297732507863648012175711522589215179599033908521268672688946228609149500347720120949436924051324757030400753293913082288339817366445477277344969894183773173277286933444984200830318591336863427050180425379463043885277607302771048443484628202534008099427495518310846982678965902304303841818286767358286032449180444432249646965979805275768527681607636972165226823685502965819732656662212961002078841260901093902374105273844935930313874060121698061054312584714627656174954704920248422946516602711467438553786110359914014030098112222843694768248575052927920734778664797511786489171673775137407335443403832300992734586296667561322189045373578009258974203155396996261364931117077063236741298729180327115111137344358222088320450480887755965212215678213642396660730993330448132645367048261287987750480307214713588501588862938527696338110881721399982373437508072501089324638064957678178924426279845523015091643289241084100901046669766379240404318776522529150032008314781125405994985627107855798506906570617192778612129117030231420426937552273056370972195814785179091016603485013274080339186181780793390371975105486822238789924646405762247393749998859607596078607365548319914591308145545457024794811411695449575181679653415862865271120517590510356107607732825095443043573252411344708341641075167614617805965168478204733783177978523830264736645610598106563766481549676299628062324606452297986575869195668434320713480478212795854103149283772326391069470906799110254761182189459182456619694897773401940459451867162227737303438388800439603983418352723381356032009544467922787075248049702851306897149727300631039484814774527423052556311878123843405119264367737966388635122472092839147479497267749056688362608194816183115338677319913969513232227067042992626204825988125174044950641003822930654167941659439064088384612233710477306484731941699172996410126831057603130268652823143746710137507366058980334659635927728433536391718289992017828523133992790103317298030833891026701486224953337231246027862996340896650883487244618819052329540965634018380014175862329412362244816035564072540876118737573572806132152513663248306613088234366942230811192290550067163550842542121755533458512460972114546190642428711312672543021665981247215362796155344641129788809470633672628226661503165892239445338175042124166034658685820915458997729308125680059106623599297985214257331125577756643444431456657894776593007027499879921186509955186590270457062377203524346057915604042320881815643404800134010025978810866946823068130148521388051197020366425828603431882514510741579951971867288877735911522407277143756311323946211098017209238153138301502659125536432805639439269587580562145068869476669396877592078424211990100480878741914807799954711947702239411882779331166817721926854879302556364757064074844058388223982600265154460924535767918853679161271315198270213415213174571076369820773050412619621503546090615222661462345932227978068116909226363294468582977159640337252871738437648864639341608035132018527705294000281341081137049353394194475439958810594043577995337791889972719435538759455419195948497023671874351540051268071571850422839083876881595785406505411125315002423014177815483145163659901121660871916406827676798566502439232335169769524763331985640068917211642694463130569769759241668683410536138497941109032189120196767199954072599805550651519362946413820461452121499569478332841176667505824063479830999019406550715624969173222112805877043628048321552801902591108978914369449095289526393424262191015989405567375749155944554898154454443906038192393518918848116237686557889867493734917828708876238879535550543256634731893793957656643981585100234449607430348951880839298505784914763366715446367166855553933350791298643204838874838298053331674084304231607219120081069906055392796863730995912795509031008419271466580736687669110784319124826995068510707357963508567515468094011317507272485763454888256816744797750039639779154448590776052490513427940823928102866548078155228220777801048410091073629316380548117654374860339442838402959550178841272887901893062490062789958375062582929563121495770852371008359059293858975856808725465337715443601836466223837567292890967687119624654363210742524110659810945010932368943989742961588080329667993919501540144753967541775891025078089686893795207825258392067566816916867895557519612359888291694701225949040093330728783692210341819816060200906419881645077298379221977232431994276594441811448852301078375503160748932701143425377433453584611550077402611739500546293337763948761765546151666040768806481696392589147106149461980546568227437622722290578100081171571556460689239756243810789425118052702132675642200584304177249433777611228930260247382655337677770432020375018260132340934140462542047171501789449731120208015365379400319761514271670507118518535133859184045450981023026305387955636006899794663685935357638746500805955259583083408104424503286956218762326218194139437137608291805792363483668168566343952055018492383282363547236369116441274269076663375713026297467000292796751817929910095839418658293466139162846816075755340460876134908909962616981523841103511405731668869413413930897400897087120789136250944397771150846202231177247529934800691693652479397176985950604609106510005957407987662294055973810040699028007915966162243446803897295217707403943071620222867418771267924944282903733010772100861356738489440069962432061596088912941683076246328389254894979297663753116369768976954247359658126386138148598357822939045234937495757365840918922506206312114340618737605509882460218449620555148495604716094967871896482726749012492141330348474568268165263063244882306399533170569740176223290601880960261062337427990289294012181814006608377064222422278798780078882474996733486731726675108086593356146479240483832927433051084412450738527314178946066828238684631949529601230782019644277983528987480077874323039844247911438693786803295083905685886875738365234766206191728758840827022880881091435754449105609961281662313180894612129234048677434505073583877572068961012443248270039148876810952752057927557789878522221450213700759567331497591638491344692476964037336096684893577154927404076173150998354998017512512360149334543571547992345351123877804299988023606287133462285758414932691367531392799299981848199066575153367128501098297843703514912998397538208290958873659702404065759642941829655312730066088555549310148698074913939129152181007011097397393863421464723897316249710394993082843634754524558114773298627995253492993186471840856978986804086353965490095674610073557787081758247343117321585614945326877036120986548670585773265840041773104459641766389072844594512989689813468684087108738803117346359383868712061465084104566423443691074378816447406589005784720438501343636569326512457553362698408074862030291052864463553301499743329683021183819424845966727684035963485659961930977884876989498953857076699683208627236690459117407393752739930609174972733369611628266820214263599049126408643584744692424718174540529822878902130958854846824847334443352384806014695851862851915833106366020144370030814060963498645455202280437905312997433311148398440254458845601814980808893683362002949032881213924529332759036690900056974467713694834365002060428444276772193431454780540029977889824889736401107688021266885924974585116858336662413180112872413104926635173485772344540731530966325765861909728916055613603513168054196482618230596043069638235085978593793678503714631128413316834604963601302380945195430040953717420680068992138269292599998856279856035136143728016680129400344119468434021258649859163712018267121651565674110961337490905990909401175037496555633945071791158335682596635918912587640560931659420049450025592768460669826098252495152978701344558726322456690871995510306894676208591707955191580020959228728790769115430009939485449178061539695950342840058709764622966570751669785215211724047935021790814894885311198182757410102334738431667438182272263805498381121518370612625123806114473116746190682257603592794432327713311413899248984073628478486895046665779230673608835001607521884208073047329682723791706118747319482920691121086810293758187308643625220952223808769109099517969838540852823929445493586717425311058300650025968998035224182815000762585354737866120382413883485315053337333564603372970294465177128735575552431854092014753853218431463011685554916267909918925547999595986028357130570927568952596988722358692889608629846517200211005104612900704940974526469807313306963234735371246828729551284304125057942432352103297768717844257035646589621957642832359045193397458114293055642287886375270472222259808252216202287094194493303243935127089661690531296614668528703012858003262344941297706046162329902631245197884382200005323290860951497883534706209112047702032206244448718624705715118175735855919881656857289585552176495132153583994780175341229176920632493546294969132674138617534250754539277325615480668602213933744204352960823611066238753869279567778478468779893003146490397519290612616708618074774289913096026195568073788639825090649151650345009928586452981236970139416073885155889897996433904958280946692227054494648658777943471465108743507859665380096011701387674967807073044453765232375754740233371217019860871060224026918988244601596678936682000478223049919928415566003679596181309031078676476390759372210303699537302515511576574029922220647291562091481804807800154277087393774267537822637951968556432069928605487507241413570690553946446558116461892223641134479582914682170123398511215447328768230253215374636535407772391835519142395027795578899962887650571785581064545253413431573509020976749481967043062629971454021583813806119151470566119042557015613388262509702040208360952191419935705417844708677139160031654553668822241930300574140465949408958833182370941731847277754868623025613413121968844489440735329680421340537562827469912074987585301028361838735795804894696053930435824293335101094889368019534455391753597252672609706514810351479847470396681466551758267335624860314148056933026551559842760389187288745339822161011981368441424340043429780994894509470512609778827597907926743678486144510231242181006883671817886892902792360841475504300758479659822183988479333436249881652480371727231288944102960650325026952788605774088819357274013286747096407504060399329386853837324015169530542284337007817474893407669140418992453884536392321642488202193090365847096881323326134485926752367544910003481807294912697218205197588828629102268044034483161738035173803094742023452124357152903962673255662168745363233377084128934553303900722956653026510509311173830898849671690935545748190277313524140349996707171081140413668282597028449492191781536123729836841189301940796318741819680321738552195730147375428856765608954452939947113471543793680952970853482015381690301436106456736532409553433858202383147405787105252150202572904820324307509253147040978278241765667609509725756996983761600963304887523652290701036344131784082980022582763555616492880878865772030864422257787332412257354367534959615360945760368793320664332408777288581826530197232601774513726093907082922943651863184559790249924064941268966446005201592878325995356836194778810343113485852323972729256372412944654166406784704136959703203824124968815441150326699777588591420478931479312752819250372755084070412793381004420031635834769542216751293066107646292664078486650145831218520094495016317809956390177878477170451373249713854394349794696721043457743356649036223840102176049494311518135123181044859616453480927983987787507563797409396735718611644129122489506587484363285164920975631797757312538672774655694181621352914183958427667511139863109390519810530697350371892880342500718091739605946885097942168228602125716005579572531398163127433550054276381136514414116149672740653362240568335253935496897192117264947746370665023082769043568474917601787880691720461362106749891492060479584022099014877090806507244907591198750461237587433896038037239189135036878966591285330332705939934890420287069099285904144362343016938914085016561140086799893221917239898902278784493019009842247769184872694834129198269741351969844279199328078353703587461041529317807041065389405988554835072534296644836335907613600796324995427023233948383902729759739845581162802697198522987948424447171970989066712201908213096203761370747119341633685970239212536960647070324930739988123552839968313582235170549823340739484036417516284110764486487676383939770731076044131244565017027023288129413008714981994154851517315790976208994336619642895166372686488692489778660198732168593111532913078117710147606397668903296710599374769200433406526268194904264276275460416486291546798348687111359354956946421931616565408980583729516667373298663750386495962945545470755037074429874233532195727589850612652623921350677686995642402137111438266392735694039965436409258281074220724859715096395178959003809182974175026665064834284547481600926414915283241123618139096821847700623403948465675050631582939130823338198884909997525770358342638969580997305949301127939893821558489277828908517002557825043761071067082701818517784336288527989915086284552654763538781593556149268778988469605213560251019625188611075050541745927390451512626325645803559183988207622635688848728846029238359214855779514613067640554934211655504586148569158499706531094028815091308938646629204386310080190963206696010017350298072353326729524368935598333213210629124252605636130154527504010136848516191857230651937002134466777416960064799538705639664335383085107815423466957481034852903346558775659206143461350820317725056574909813143088532324159442470398087143785562953388171389879420230398700198321809690506403084922897650968207427021722633061737198661623312500429793160780452114348406814888821054674120571728415416989037653350017813134813540439295325117136981149750994088218066245443137736034386642885102408577204550787530071806898896568274188832882615149966410755772075549928491960570828337181084914125847447851517258043029330635044938581116276139644446923848674055461047991507061603150158809734393100833378986438834635404929776841019656023844306533874128680223990338458590634566412878787992916865890608282995309035967176423689887442836501978928018475955508040837352955537745871312564176571422988986640086900012294718957474450079826394769064512570066403446099377726503397515373094587745213200491968047516414795971201121347723462693295693547173217632683494004613941580005911393904068616364810856400775612651698706336862693106560100100767087747846884592352137017096724744954291756036735769457340307731658698732362420276518065127935769834332447031362278410889540360257427999385796153068087424244204641044482240311337812497952306502677074035300996316473201005556829842670438373394938766193971890824742336776482017890011592752812959369348880444080642324170709466224946303186589977115794434503514820952276022159528370004492348481178368541079777386619124546209802337526227403379274704928072810994649873596840116177249064352645774826068142499801554652529939781251487381449931079443038491070449188877900977377080968861105948100394117699460952431005128683474771500235802179517947096229569908445937740737552430048942579681908691488832264837071910812089307337003651318399666043571248608552580422520883764572445959492529810537580135552343407725158784409238922932533562522661650126280109130876489408237921354125028880528835248275977461783173451049090311229755028012943512065285396788785519436195814403261881935485811916780107753043076315115380174708837905716469848487955842093486824187726507004681769027382831413240238193416599855030895354319313283624276847653283182249059634214014959562996982358137656596816539140944946550657525878234315189982516224273755062517476779968677838004506957643649409506861418468543469749729927964703430599483096766597897682895538180558901284260086826555236158879742313364327689588985964482216980975179495433380039742297259577223003313687997635380338299037928713266053667281145378209380340747837121358070334017280234723776296065283794748669591481809613286169966831952609975932261605446820515984023177537162459388284227883314266374084853236407836504486259995691129707477937429830360519939820577781201363642056717307639798337286179829433518099329543795459196313422679848942798111758369738389755790594846460388010883293018161235689372437688640360839189048932490174426401313465495755010562326589439154062324321782985628348559740303835185361414639617960525855566112255522352090873196263866239170789626990942068979833362830207044724217968833969760779754202649994351367259954720749503541843730580485052166387188161130241051517819641148276166401306223021476289758085662259311118408368329435682842497877241797171397531922733276257004589836557004185367560534357664664124424062259747586717079643963624601626661272347446193996676586371754170825524844980958195708550177809029987246143216157945740704978940376379517222227721719696710755007112724003598578266241863470785098490622857995140900014149390786202451691650107807274951287328267426862023446168477393249053761949348641411219327712393927181889899158404872194622384573893887207202925835358442014341892853939755785411631673959787275757356265753612783082056516060547539612104556303106962088006569856384696098643288540053064372325508198463230210958596512457648387199018048598680875375425475748045728738597319880527080356169256519549318831721255652933076464825130710787176277234932023034980851519931421183994674033141016773531881284759826046751180678747553948275907153333677421262158981704161734865450924585432795437941420266036857076996114451503040742606954577670103652967026934658501134436241229193049431242637446928418982753569180425727570660946860443502199677722319242738988865762313783600631784541210847625447232536917059084494853074782739803152252740280824558954943381451722611840664800094960402758863517959339402578032157904271379354997707953814240486656517430622184418308146859241610724134023346932859396267377147902664837516834102977892392751586937243132787241200247173939382578622834789218517449230854164078104570954294982775731808910152898920633112221033903823099418060599608625815753796225299714337352598848585383881963260814973619435293890926580263567130604485091947332717937685591417969016646994576838989402964052085617866823008787942040560755656070997657373470358217264715875511866193164575504649792113959955813363465910721212153162383492382340804764299965020636587075504419227001811090967532680597146509889545918010971408197934569775321774166550577008619546571400967825870177974418239454122600823975826804725547865196552681186603379213050920641371465904678288606342170424444981713608379849836435411526902048335133619130670419258464857616120581043213996414187669103447075407308757779385915021895832087668044479229346249234853764761722813840150893696886297222650247850407850929769031971550804984394648723765018309240721230622952068117999605538499338623830415486832347781146274394116268250305500345037298274314402519198745217497766004854690475999486462643317274956522768625396145165287968399664183091987782904600568868265540263651308767185009195627399930376912962905757781616670047521784713906339438228677094808976299846176913312303645702386186691712437888353800481914863503504661780388223006781978020891593158740364779678669633618550206439145285263040864106832064830455096873515130227136878791346191551998377492729302507554230624562735574013746813084345134437441146785001473061673775151105790814825652327085294054743482234509812468597043086412847787902956884160347066422977633115569477776581356947899811799224404170233366393157730093205014567705217713657714391446421133890921253386948944441605117787415263025337613861907829102232558056787842482746305034725714961765096604303549763706831834531312051660826227703662855424780933446412173117084617022594155105303916018251052067512377574308139959738919257352011988224792541113759199680010777287402193938981014876468848374402600551729777437868401926464518102852884739187193039338956755652552026226078229554729677085094984378759691436504688607678955086791231111507353203189760122333540280857871712084792170662802558371190686545494889741421972669635809597680410313203233565025695876244984206368060998445737780508382208452652817815674880437972611873543434735612189168538160850288150988840959177081508469078394101859552377707019162730546365688317900455495282743525431862905899873325469108207885877046308511426665814530884673972048612162739777783561786476782404953326336796396604000341054797582352174411634004997387834865976277063038227948982218738298561215046367626479215232919243088429999873011888970300193595701493828952261622883273352715099157880467004802730438947571597202460824139334280266567592544548957747303844811582155479095675633520238516068038625500809293749059232400373576079175966940029407612558210626743967360083089922412250533313877841905373078241020251156594545881013565537590196131455596861027179391666964150998251792777302457421058998589294042030232530877855939110700495413497333763204278011977438797614776183933446959687546436910580786955111270094816599970447523394891790316337012611649423450579600308589061678019757064340642385610328417472556691557719147751491670748798174811039755358347510098946123993223719050781834591075481432321828361076958390218077264983907504821619749002833884260045608965970832277707304157876044553323174526010294135521741762897508183142286323717428083421862821400830647079855611138209301870349494253527789249995518192717674442353232615717753896017483362401210056765382773394524090541465292718756981832461438519648714540558849206049492456515914823017855104884777992271425357709235890601295903483510619618866159137778051209875508288460336618884819626050198274054535423786411053667558205894402776000471155633751958496507600656914477535149636197577601059629909754661918483670162198301542955456024846784980844698979123397826179459523527676850502586191358095046737834634050191735273256546123119947153302737470240302626441304952010548344947655899902832260331583994720521433734124175046605242978075940326481867171459319538585647372742021408857276137088253388693215823191774508254238533884072594831878356971544253259401804371613343371094230864410786327037702037388117247989695362708350374090354013246368511214049816220212638419819901352200922563375882347240441418231835127105335562887862204927606184645727643424112061254194655282984591303866424321958888304941289097649895532828143219996248745522068874509670470499051646961662572537314922938734074650593147834866352003811707804571745305345173894178986680453906897745530554605265225793010702708704621681898386088509152129299161935793366277560748044570705904573183235250791336101848825519735272656892315260744595877165197792130741391312733146508021059425210715940083049418366644134988231718602686219242442586186775111074960421596000103483408758799238953205165897076634767588617460888369346929920246536370485368001920035255333735686394465247798189534147950113560476684024941466358271145772839259216220274633017051363367168875822367636215475375530906566222659709907180643461413110515573071292664375078072577076968173502986743440881205675779838243329782192454398792930371508495677758766660482066999492709685084644452994215853996404176024742038222012651887476860653792229313242017616183552704808655087776177556989760931021109162907254500302431316381601310743682479162345308667884826595870629722900489042123927600219702938117333575257353453629632958532562038826086365509985794023765084808231842041545526327732565917578131261275134531096670667016168433914561922119124709993707913739760566225893539711829771019822715702878666594689370341581593575035440141235900047828655547841794085993299729585316653334402900674204346899114198593408896706127061839606565530431868492910425523787011399413556791510041801581734724673386713076887536395068887551077971012956764222589498197648479224898191072790342141301368127624422911291791060512461732194726803651895315594471842114700959484800157766802044216088915593901552309412805222786561904424489436049114164723417461587600685733114335505914925756076040324491884220021036007295603686280680127285216621953666561814822080444179935611630734393645940153571654694686653322487355546292685739902199178102728474540157598017960875959382471568129370627781246483642361090372735565022324634574969983728286654242273940167614153227463014869263931483121627637823800264753505923744284761824549535771754469172132600941287261895803488953456899358860918989815516196288377998868613690764075881955168635176188383740094369145524610336940445924267083945521353186837414793691725407788949644501791001355376404359159954479283001775730783254921005460603686669606504807518319357718372955273021516601297451523330154984892309093205961057471259748058275216504808424739535994495864225191579744269177501520620287963000209816937484574207270573776281399328919568541602674074343592018763250580236013852147767647750840373461333097900991006966839833061046486571819891907776698442322028243433919699565666426387542981240974729228677637981944537471144490426408778705892945432750873532910787195387460025017229406230111363071276688444999830793492982796550993941791870765836238969478782530645002646285161569883826052548704040994057271496048137359073453851740801451705949539635641816130447299103371045415291891833710828741419594639384778061849808098102075232803477783969939143875749050894728440406771482747432185992900492997846417979991190531637931230126603626705898188419776693995496187850236818249405329433391325696765884553334348681617467260416219910434369680260457856623037126966665912347650105888398827674631832485502026337996526138700501170431443350885078004587472652482552481267031742435735184892265672992024888044628507445776597201340847130353480891671278397547037550861783938092654228044260807007970746142534279842453760265638756246153988365991273064430041730293000273628164786555539277882934481695423482798674224950067352156111048951585632508331338733916875153191024248346681984142636609695128405859636826935134854800841408951939851526780428901472527728044465190889399166635270247183267510842169890910805736292078409684114702323402445073430897410722627023294022760301342282700112384267340416251128998022115220240470913948131146582092862748790754372374715438887025281526795639161479138662903919870101914467669508381989714537311437821543022129467482661029686507119647118817063295664727338793329670210081178928755374840159808899035275051508004568498976681853309001579495852423286893953327973435863789875791889060745469217690002623244989106454118423107262728114703992372064422696929858516582659712988340880961711492101632034558079588797359585434768562958578781661466094285021082512950592683373185060502308656650052877443288736374910478421164913662878530761046969988683881221443535720949764147036880671829597413689390271002048759981044301638214950173833879058849316779437489783364669841348043586428180503026764507683251632736694007047336224644073341598410642397941962214917754330376150785154164390161050562145836178485987352795535615488244968734602065540614129853368331585437214637671101322158096691209163861257948737817421419731317380012724963710187494461535284679477287869605599497060696329180063492180005514703454005303011284239346731679541804739079617219491222989724724800481857202030125877118198904080157078248887026828968096642077404547053618563348177403645183129722061743778733409570123086895995451484015621085495986586280618055829906736664479212546109087857483195945687818172137302520580546895099605162499610157161114630579149940175533124212247349189548485050477533160828637898933844344298158023139295047320471859268226657975863697745590648500485276646096033858965757890179017039551695741849474205489754817029983842605824420808322886038389462032845567545296778023715809669872207785869110385623167169139142764153595144781517508703607012429297187737951432065676972965313696371603314764927270505118378420631242192467194268589336463445898508223292285164160229736827175695343235294785360540090373538046047222188621780923479897989879060264764948260510261251060457809408120279531747435024054767652311588991536316810310560924662152612194461830645200970615258375358079526468542396078187747066205897244136490913994433238967599168146725753751832774796696196951453995081444479006840826976387743416636895883581752246119614199156017049293755934177029578020566682326275379507030795321122868237552128941067934269325681042001547722263673674020254996990951325945804250866497217397457623778044867789678122761194628656456098582597007044330376586763420842112027084533573208657249934904562063857646315492135364424038767993198538254478552260687918099912744702900761372989490432771363797210677739850808286493813137662497663912541523646775801067324637287157822465817019733780387727724754037443381254826524434654240381605591404633795978218838776365231912011657613377301746020892728339764194387906666339955976432944967951024079182555365043692539222826330965964925198431304783651038813847287861402168378177323516283021228862249266534541166104229916672847891146472022478537575258340296414024371905123752481455519946062871830307727978810467043448962297860964429231479954826841612386920000851036799238362083088890856204077515632093622147867491887405214482910342557711725120485811550934482748943166583369655809239059239892584786455938594453551132332486683605027294762487305602543396336657661276909903197969833563031005614632943608777502269444895865494558348071911477224164365741326623702738111865265813914729991859968428759365572935555540645941509493363980281429456144374626478340504603242186933530549930211572606207678503738796371511959458698390644195774781840316407507990167085013524217325059885982678526283851670788412624008279583031501536890316203103110840287363775284054304838995037381438414689350748670067516945415526711871053516301181730134609639968064961120342758041017236826150429903099795469680667092937306827673668102762582138668787943288962885305498984704734548512609158151976264694738782114045134526073625207026848542405059092973109822855394717290982242934132188196461763256309860668979829192658599613302620344554158083890804761905484923526234539723743854755129801954881872888444544388341463220044533193574338464680064141297234154823237044304626833119189577513083585065391100555394385129422259443792308452601619913724387163824999217974733764793648376968783451399967417666967748971461613522012712350022586457722965498593510761089306953857483983327253778516893823782081854013723229328027059121974626388403349223484124716512340851380613825570812762438326054035254334306177982077939335830750664097710725714381254638360211871427404859036100874447655010204018731458172101069956869278009505136987632497682456228740433425908086394030021620831785219977187385985059740473856521996703542366066736300405996062588522657082067474290597936903823458136197836075305905686194362250975211006369739913868664483278358445225187501851893133773301770930277537808610438529730761090839669489609236259417693667241760565296255334456669232316143830314843508222520355090634637948497866661150006446256920025780967364024002609244862267164956084234607480248929818342799742555983727569046606691467918729628050858111055634415682072977859993675134218478806431873552446989142184857404800121614308453831364162008588077617782339757744269908797565950103815157763227422689988513374289778519361311794497166835235830203667558101762114174058850409563190753831143053719598049045842974996174146890405025117184078294770662388025750762635263023641445816150987495805362940659977474211418120398211178713948506351953863510247093454403836439543254760684213929380428970322325557370624348660818893069882879264366637488340196846946431322749000308936764838926291403717698971016976376061390460959635366707182014576729815376230201418085145874660487356698757497108369767995930439338496228125881366960475894499769149339965145799659779823036077693416987211684598705433302567947947859855036274057022295847340811399148491860028208213415944623916517920653015800572749629189366336536297296231804587116819450779748876059757455419276246839875287087190125138876287870028275293695296540849568492463344119665725816719162058890444418728993754638793103073945198196125458891040924206726991014324735653026815571735228287116316855938228060528612573007141110322152738018028695031458976582021729301128154584209742378022314961995560411501660072373486827888763556625896753235091630333785044010416206944440062510355373594022654293575124857979788811434522245254902292989822739175343944613162106161046172218819854530996698116703973624571671219323977942717114240889769876547564133606484647486545723036006438721768386899686492548070051857624156947473675729295588826508726279584222805873401252805336564233097433193445929291734030974714529911049954660801135362128324535040318859310284320064317674519381472837099760386985757397775728247097737354876040559527865546428167665044270079513855192384542323509747091353485433158076646386980191145041752780050446834991739723035795822251926031432032865139597173277695442223462446117543538028704178589354329117518139797374696283074876677740388562010140874440345485012774516281639149375482426177567508460548823642137423930182318522971544166196040645901136093360711493566909742778248762036496901455423247057202327600930979443057130048164976869501037229998624199226811784229154624459421094805453128703033024308722483822230942725111786769104842111862386270850442161824948235935860856548805195798620284380190890259113466696027952807974717421989275740873701366433611703464521669749729769874496131439842608651922599041789627922679052110740009245197242768340620287748401894044653795998299284446590990971916031710582729757249518965697277225244527003535661761055782270900813396358890781482427854888605333103348071019574024062519034831315703915826353867154427175746626504208438975491592396888077286215526364190981790497715240969476406004897442946449630112012496397369852844133849219690853622700765940397048507313565872330489492354638580218431495173299837017196336187968199771669740313088047879708611848736977452119268355574186598243049636581753257007942105227786841290236464122772024721048716869989530815581464921717186480168762033610899088921700158449447972728993317868545592987104845024317842596013276625937472219848714394238289277046896302532873284148465934889203226056343575164075165043442275165640304250305767467761647463132734144493781838299520180415024322405606866704980807008256999201045381069079028505175328251848881031300300064449197313034608334635449082353069954150995479264130156140003577324731875821445385400776793363145877508283228685578919861745008846680240810247018270943420271521944371068875245496513438574816546465289028273211105907904013724804007837936979240987868929306404478575128404541749680363230843139531510837544032514353111024117195183009179959420185947433107538514125035646131455629271103482036547889922753010560204345227811427226409053197234391090946031202265764339234170862534072163621372537773738722818160285536583659793852723643212997768058339826211348679867108564819693670258252599477966001439571825073291116109097023006881968533301391304814084473889837024276802625351931948520848618967294042094091217913107223321227001211194402880689806592992071608496204562244341996121252462170489887647922785076135655512151943692139539498018524241471909170998224002656653897329491131198311973087029240139063437914835528690348254649367697633558343419512494678960746433364927351279163505619711682783459440658143423339830082953304464724995803476021027712309162897151284346556710858807225156794005032429807108932262581314337010648095553817918943064815287450354971352356852690195061426661206794121606824195893396847360368423403409628012596574875326204960547888234924501612159411752683700566028888872427931631233726733770346935378725866490596159227238126605403113265702482019894129446717057765866660563292962425191623841125454670073071889808651821797674949335716248490064712255937991341836653750185258816916155468523480408798026277531112015793668308206506554435959315949351622611283521822062358001767534828131692683218723681666703761724928974503871838170865559551659810880448266766934754979066084809591780919623515375194495101558123131382259112255351546470315467437848763319220463585311989466831081418310065588787387562857339769577672228865267053514597431687044433215318456272912979489473639263822335345848270424133299483567306230589787119423997857664491646734979059012464741673259613109226813471793892574773988605325663305110448347582295018721228611424431616010837409643775175697777340148048278438139204672885615535899376797040480876198120002742933170834582991301519354761672543214014100246976865111006496133414254889046407166813722981303237766705307948577903466571512572446869151080024050674224682020253447402322932883617012570884259888557340261519343999940715288629414493852070006733411184401711067987845133160684948920546458450814996986796929142541815152469432287861676707886144310340446641121470207099984427770646832222942824401609988329453186539517184313342786423995148883508979632101015196152451492870347951813032717769999271260698202789054071417059917983312376328536524118070158424964432158650416390409544347183356954781676347563102870839846322934775737843221840313933801031773313031106489106132016922934862724163109575310340571189453615496121610652874214824922500324814190883200969366948177463654804222724042149641088914981230572035596594445888716460639216957168870488672673763021405406699416138558889893755201430145539492655151297636874777614204262425303168342671678593495846639429387380894095237470680050415445806901563253854071559751932474813686609119297240724427205382938225563042051335984492807449119604344796828415428301940584522934074403577771976164495975245698829915536212499414231195234055785233523975062157557110528069423622213939999347463353971692326859032133026286489453969973184971217674794640890996227845146450461191892402761531667855365975466450808926407432547745776244317848078975609063182782489266952073320861155842859350067970377296361714884950129234031412654293863841448092984408285592786958784678320448560169275404515051355634150547224780653070856596643226534947492953598357669622414197950175450435658228104760292767425531950521091620189140762283862937008394615011414226679522379734780990064579246110724860568841850643650192303012464933100434171795691826359659631385411954111511258393549379509903262054990914285234756175475079771792650588286066220272107429767198635568143210514033113251575317113208197501256392743897266870817420479512323367556950971322563874891360937593918808849397199379817026372412923530923837890185796663098437805342920477036178472471629847348025189731819401686588591460322034867274772223421532993514616582051032470671669464333630743441969492215082517772484880559492456473280786468594528501474131384544632180082631285719426939383672055767755132749135716113182541255340923169080688697557970199784001309622948204919649029694023647514138990336259409407629110833617109623779422150754925285052622311263200202888232155764438979238033733741296757005556671334679002554127224048176938917260258806978122090373420591437836627858291280924034152817607516529411795281250512540372522891310384951373428070138624580415033060094831660491380286857124586451105516033823069516514127320889075065387715952087308277455548068236097234621099918198789318772541980719792419149239955358349810591540851062896482789737527914087467267710363460419944636970503000369797095859100623588690930571082697616745529101952251959975928528360974231282016468764097386414851515186659933496917015094958512396439460414924407510094371376134180540268868716117880130171090251971998295931743494069921161163445629062947161741789264139876527283348844960571128441458334910419462341263923333549682223800304152984648700181759230313685835835956587565326892348057073096636172723722893915811037610375998011844078477928501175950713516464788055327686867492035121436994521191645055332546332441508183288364209178192457352247501647644581397952103892666971338825557201263399638271265379105232479337946462725690096456835969202916003020474326909683529791833166795486375805833090290794445788412255838141746743865515738452345477727310537871835930783637472400152797160495691299446412466894615657429715735866493934393428570777443479498817945771935291062232452398527124667627275075669101806519861203944179730053226507014223510292238681613404872492767450511177562859012959913590658140638564234090725042876976497745915001093329802058711972542503001038736147672893156629306905556344469789231426006550549667978340891341588893050623781022877486601383650473215885570502194871886769617595389175299731372723716351283918627143205870264549587728994236061074224843692116659288443845144468522290944385151849467185282072368991136070041969255530983565792902118583725675444066080325416923513539181886772934995724555511238022664993973418629617471935974223176289854231909938841593925620903181740853323123680003671587624050221452128693161338396447259078315689685728274305013665628788409254879983031795237198999197747066524521887850726488102739962319583703497125769552908000296958904011214940362845192770452855801233928489353597640744567589477586489996083459344884933043211366707564198496870491629256736646769135150129909566924527426812936174404146424289860320620137988949044762784987062388250245869959746691665479941003062539449621972890959490066072579546147995802387998138412381233336234856163408584881317535923485141917233704392555704474574281957085713034555375498677549942507124276403342354315810959961686913781149525769781159316756329839795992712208707135451556039200014333340592567474136589440460649460282941818828569318038807493824149857672421803669618262873489569890832334042147674558573584013868268490391520321031280521150534582046494325198154320897673705621381078080056651927075143525297779612075952556923210918051953076690137375264832511051398082066373195798209498235956271832854741101407355529777635898398746082662257833172835922469448245195181525025388826028175963531521344157237945627100184111284843098971436653165001334372581274674273167660826624047386081981445615383894489152753175354732841279620445126344691951656108523419928639046272799869707801596134104747412452577093850821925569074607423738548249928144731704547040127443177717569115751640490818668781534961103453827945206050482519608030908510005575676213536232684570215623376613722663193326504875806357841726840620691400707744085307162219455514992432552106020276264248420098780390641521072881247443579988323947919888158777943547668213635030867188447952145515251382730276169861914445435604133541773091103175935354017650481075284813614255034032936919320905582559270569202401745235919266639712221445144063478847297275075134047381460666481242994089821907277292204643415411023550316361923026039674291846816111279456452524302162317189031311119227296639702553290381877051992947159017134898455937443705060357189603077342229563437893806613090946452873316470519567362790555003367785654814225467095766583127744608135655964569392314348602286660282007539121978152968251312223186934791814283072140725022141148966309686942889458908955157822934132972415325304742927694067138404098520671069721222755899186057952027815326055982894910354256809224875731472165324239830972666128011276813005140941790564863082622192090886228642515708017349237181216421097611716553853724532885379867463151313599459577583499829686334980110986182554488490928738112041796027158147489822053136834124873762828008119115764632165679437050076714991032035085866282027512150619744804227221889195303375331147768078460252301151723591803230249229574556758362416502480019059638937384715988492405413463059297314460649548692473750481426502460373408834450496309879345050509476382513633102983685801088283715849432733375431681322533154243509199456776313084700528921141961346899867527384983380085840654580580309067664715881220451388652071248049354812127229086387338816189215067764668504551346299228520194204514003013666124944180110590621142106703857588993659837026087950502787350539971941214032312798547773513537435403931439005862506376447997487501118729744286772744740119385592516113135645107423879260484600887178590293895638962382630188137282299907335520694371781643270713345335791676592251406815868830612649311956611215233558727406088920908494825519584539447907822605398863682589103243605084760793581795966084686991629021392790510239436733073629324785481388778900657678525174596619210872153049203354327657442657365108195460252124309955156535946186666330799614851593367146385288238433980769913959276875848917864420308225252932835437337345743334166126621432742453466822421121727585625301728577038607533177409820881682524687356863606631006131860717480124055289956963648266319736604616216274010823870859841247152356998316376707291005794859623084342680383787427226449415996536969072257573719906337348394713109142187067355213263529929214682468953917518987307952258821749843188127417843822742089449011461253294954615991240848648493051702920494078957652558880741914203186962825263778646299197896051768556236710528275750482599555288622740154122442468387035222935657288005450277284290157211233780614591655491320595171777790552688414049996072492219799383331049168478424474649318171483367090378701239380316496525517648014124847715112708067090007509614752547564339042958916735806497490553853383092500806997637333434658045293966213591533027723972181885384133043176573491598582206543471278292805808125407269631987250414794251736095763974755207522059803131046913117788967477157932981919382001340461433363750319912861596071756727377367831434807404405657321356299516084640485536301120071155571822988700879694634208744406835469045538862036301205401686625913779009813711294846054845049559108515268905262508988517012145939752042831509771164019841599635036202333626564950761907907596227557143786331239482193095468819504745802231603282411796186022527357386892235819906005502202754369970312431519072471820653399168311029980853777667087858260293795418143286585378139046834473345306382750456406480916450316511226854345901948928758505566061592682573049648276352917873526522419658988125072605876928288480004337961713776612243303916304022243669112650853234833545728064047612102259641647515170500817495969202795336915171586055269087765326007466024007081161495872302775888590987792172105324655195773783450357396164546712678692595491749223709020555783633568583192868987939631485272913623561716388912369186569356870232603900097653383161353212979575107937168414393047566994910735312822532654372657197054931099502243002258780807142690395014477631319091257634584902296105202343125735710220825642572416941394610412307870202295931616969033282003732329284395147407962617948657712025103544747244245773226591627711706977549868652997829859732293581361597791863740692774800082540656009739758311893613975603416345794376848352127049271097937952739243969371789854476130184111369150779827135454463828369473148992179686044471366463879878363982639834608421588974719485626604840623101329791176930573793992432763304129674973323514822214872308756912604414866287822112965909038690317388556600018708844773587266930014173961913937007277564227269585696470769348988274134178910216741383867553911863157459653530047918284361319401745912886705408387951890549690627001873190971970752120491421915935606464007092943403973543807734804717695311851525362039537789687130674042169096542742377284962280657771499675557916834247351472639898003549865691777265771929680690440912550985611351948199885713271560311689900141464762092278435538810342926742827474515373835721211214205634672448004667265731511369651344942398918313588649894528787148938488189444517120275215055894072300780436131886620272789653304531510539417533810669695799550007193303777129334734397029735615657912936650811247968411431788093062389996166855062960975273895601479479813882495994765030360337995781952777635516813259682664711817189836200337028415345416789738068662996248877443061597192889812414321025562264516238270058636023709170539387994885252723607401180005671437122674143009604287646487469527455082338308353057834189754116798841906197319375386976332291074461779459007223938954391552231515540315505378729531723976484614051595039973117796716148003260849734805300697027804329983684346940472151986216322892561355287095479653885324012013647859403987593123248216152695681053046494012129553480503190589237360232913771715934338929545994183875067949190580787301956352614861866292021735299313385478444334565714969844031157068096653175687345230806814893070099917201568184131220884395291523458302486788933424914883024848439987866776522211701869346903399932695020946351961972095086854173323853255076206680247226195125401349415196867945701151678958291185999690333612113062728976753256709671549486273155180036336130999477807921913650890183497476107392234248752353478387582659621254960765877189291532224698520209033766457588326752647578586129754352118216754236544560764467229718542199944503232656414688407294318502584358764729990977446475413038427001932120159069220817010878187360536782291228463555043725146988001178312739217660757272548244029210377520473508323616950708909734586125701392259306770625718251871480280907738575627623214472585556600323820846559243139625470836588977235606117071232702067398995112606572419377296404399331517980151080902815821611265378849796048504654360763745046378407776470045990310809270262173373978217202969292538803475862907101652428780301816839458268382905397845673331804895809223160844824349089162608928909485244380230876997962789112919600896318475028103043445378132057274408662018177613174355013377569673101872594858113694444995911434709186639620956116993895530014580733458363886216483452904540585341518821464450977641729472422585693716393946241387636498637485895403692892630745967135963670296222828457405888351292752779521277608187547735000144396900614010047685487227861572197178692896791764601870029132170667906602359118363858493034788566518997526061863476709324118771309355438163855835497036168106046977640964575067486111155586609219419139153676152549523495096933613975940306291953478046110080288214227531631057089200198366740483767813209039236627164209077454908669851576933889716242793191970920044738606571964047036417504103541116872809179398564277298699896215459913919014947242093042988687099360505661029941380579950730177986132438362366214429111592690900106732271711900899218772218759215975001260498165908338014803371209864384907449167891936119776983034277567970652629362648586513838008176341471718749356672327647854708332503318266434718847055440834602350460339232263631426038514076588709238643727495297541097579088375821760079948794864112266263188457013999556078092461687654792770916463375900416709416087879159946739055592903614359362716748678754212033729714084228600513589056546314393916925162290136977550169288296195940780326039528650178334108952780283999021628982682982821063901823476270878935858782922700106539477644455116228765884530190453639554352142789312089496707658068203962933426565167829382178803765065633270136976122292593337366706514142274263357418226110521111277377332732017989000987199935687290411261778200606344367368908631296117789921603568564924165175217006377300748314064631005069175440354847504142639361774362777817438738626830822712890465650027863422042251712607313414155841450013485340084373913232120013236335328239522014227585468224777243135003941569325816974478861300019599774912022189019492592890517474147838703532971322294103734217238693273228664437906266664313086285037860684895107380004371644659453725268311719634929982998865111168066594801144997770044720141248046377966476588719309254037156971787326189307595241398456645412215362729568504889888261485196689754435259256098847118059175317495002888529976477288098405756569270192189580144856561787438819818971114404015730539154749795593262215121687707912958808229938426682844491152344783196599865071683880081974287274767325233657991836351903272585948013022029636885250582060311911760565312251261170395534615109484962241906723314528197307325472430834451680527005505705934078288737150478023442027928181747161545386529831210039655252462222091725520207118159627891713868334760833847813776510601012796527668296995943206994453970201856877239147426928338440672815864885293961157673082600604441173310523589844429768437062683907259518316561905632669594185320816260718669670455007137507225518068276822312556557981975881279073755053960007758664481294084384634579339188306276379567307170073676678024779411695343673062360274057768495328336792831244275162834631942247188877646574990591491777424700515767320551654714336215094682947963906364116820867968926322140496383724254802157932063329837873339157072655717908235352016516188469095530707050571569273897813027602432915178259893457495156883506817431481464322401803598267020426320960990902928083624289469606951817499774896762645738386349163392199072548088849714550342072519785803558153649347155042751976188143641864548045903667167111744081343518210644188917053328590781049438214128391621486945439165657502411319863275273076296433735055591805360448033556087118529984977372360232353706453907906576810542875894255636897535941164060305067966178973507024080072599546619456050980982205953848218770055848402199467715357294651999409546680761993016049121304137772672553415975805550507511382508514926372315015443515978370167870730973231749491522532857271193454196216390679209752940654043128693161170594208951139184070841303863379416762385658250222189183038928321382463659462941571533818681061773245683543923383533029257437814900391992314358607123825897469105013231145784602484953391712788139885228973424337431468299307999255819139975959165502134241009313935229429464770323389054002564450603810117640017408871707902360717086907923378515514873740486615184200640618173417735456912727109694682149313505447850375613986885180421201660484956510622914848811464151839586302001211950034654465119446609843892152447827646792946508094108851669687301250068594183404723924253319975113240801723494194104374333983050592303445755279982215946564244726156903552383020175424614652082241044811628328735434701995795349260539894275282600850087391323845222786938938620858257517362893837927045230485328584440551449715017295531249232770725907262422745962303022661820665288115664189812960045338252050558705652216048729761181706655194084577700406119403378541828473171563750533240027381410949542935585539119155149546107615965668739575606007116635574835046367252856032483622102663999641363295208839412613790418761411805017152940601251439385252455951248329209280976497431774407483999038862975006255677999272546758528420554458570875746489778781948372264182314479711520799871017793463635242689064948604767527548620978378509641127558692883319069570378359360622636512596562610299457403056159102962319659627855768963373820824901586245271229203598460572282784468354109995391959930224369214764714395445496107873632209086022130683839545907558875816227149027676752195364302922069459960879891354760724955433957857532614666725999139649085440043514106250648858087271293586364309657161895883247729159126611451907872636279146760020079892710813088616438397119867469792303189492192987712102067882710047113665019165239394825436218550821693480283196709794175320758947867206892054362898396148499177987518795772892116936372347225892407877575343779105490489516331859777279794866236921834441851584854880463119111986510695800319162344191616675829958529008781014069007393640453373876073159037580759500748235005470524119060951962697506999401787077162402243676508723474514748028771018808298573336198304210198059277278641932606616412629593899354379555601121735459150574061168554221344033755796689849294140373972079385151982238745420209088880361839988604412044965301562402955637430638279901690925417565153860651071528844508039154978715946553830067419379052096372112153558681490103008920172539686685860760851215557962465868769259803082726153508276055066623587180207685134680471970288950024781411006997947665465753254958737190831390509954403893923321550884817260281989061435317273046981502366568531287425009461259152932510744621446033842795306320199309876091842071145687332387910343524947767024445108519869963062801387294860888049842129952728559521486835700683953673056332596014569275682196554231782708529334449867513251037357469832796432916470166930142167769132707573302855546828695059825824298795808715751299740467073197228279380516072429777089390713087977856111003936590350784592086640773427070924416814804384174407748675592481508859326143998522343192727239512753643702180444209020792678440007105276174515684221988231285220480740468230427625117419972611224406853233605955465693996234801091911444545858898230906032824725155925508960554351338485299391162056225010289259619425668281085121510578987105383984024701854455606753501786739044529407766881888824311071812088959623559446874943234755236995034393305903786574440742022979694143842700012910726319750851808448992659191103885839410469299551764327781622337987139566072375421139998828775773527681028405276950086408354632454354656505798249283581549641329216606641662686084702775094838961310595275810947655526775357883054354611597916757800412249190986818914684274186820467441995930228516592756865840742433890881953328004969541722791834652120582818331536829284201353341074322482581006376303349037242384415400806523268568523266722043052971392978359193606836595760044829504018821664642839965587467138587989501530172521448510786023685045813906517800588691621360052151783960802745501234549501864896211699819828226499189212531438138547082530121676217988311261078509598152390306277746571930475294568448614800506200277812410076251827214446127292374109320708516955549206756252663701743233001692743051456362814451278602589881130427362547231337653614952888089491522856043282577153445642181601167298001528019629583963455360539356513000573916056100789822841004889465044705970839655554944185962878772606251483194862681264338914831833766869176282628848982941820359571857101581089941958833887011569027711610943839034516520150645480648773190649687147470514492459495331241538874135871004372300683328768119695757875782404722764676631610733127314981302165814329683484375615782065295626802682285371737850256354810541893094957013614931347610155858531748659756410649177197841788298179059319006481972310805460623339525802414628296212081543969374500693339776259021929282192925615912597756198093659872859741811459854989783342004063312157310150314550358783615987582478070700011970116843220917160182599855834781090688009787089134526566276764767240571088104139489507146724998173669770649995569715424000608449996736215993194208351903930973934044267202970396949756969643998010597927870134983859765502192048147737675849661717956668094249610529812265085346308287628447502242250402951776583997116393710969318499419561290923947939392385330962015889865592789848061821352535564068593910585389662609059476353227109959824853602332938862447237325214408853006415208205257407426682118083987877139863457810662896166290126856069651783579308543889568579637865760346944562547072385230268573954482290026391518106409800444872176782051537981637402747882165745945692589521087717228432928658488559316871424350452360580950496558298996714022814111947598038637949715575541873599558301295978065434558295236569073954274844348835086289899489276560327568913208389236519511277591319892634919487020136677267204645963069113869692657442268116180703490667809495495246271862040280865311883738757514999739111255507461038866632615381058111156012413075438018644042437091170648953780068937632582092593850654202109023817549912268539023094668918107570222115287313908612809308971566589354630488738186724651830791278622210780040650775561777013386518152951919797087987409628355294139552691843944927482182566169786092324242416505186674208035523006284734976162600978760760062335643659771367285823049686274195118973329007910705140965931875277580011492576361323953910346155374871373913076169771839036376855376239307594322833238110804175092216671318214959359800328279338269557576147510139567222274299280557382330216409692136266199637546711193623942854417032431135327409787834629323082480650107531659343447431800756582624556701977143700519522285386179051176395151434445958229907176239557433393938488275576808247521553859977996969904721806458115968784063160280577889243385510203050789913164820699347163285150345156227573496916869395442107090475355441012707144424213587922918323234959256445659805522075552428562455858428193425582733607243690630583102440141006805919614388364902573157981877023007675047731795630884088212557452136340936005632872795136703050362875574450222636800431302783172855980706156819869968924548582924195911725899081858127294748871813928855769199410444004404450019081859610442174440603047288136641474126816947318296480416226289834331846437695706372495649214222381663520973904170386723027747288334525708337174443835122488207495135973809922899859872368163406764845354614615698331424464751467024793590670332538650845408903677572625344024267128687486143623662289564217405341681181617806900102832255571449875545916211039057602742966407240364811642000547966256280033282587220512036969275098078217199501318152519410050221819050375146672946183531151669766813167439481608293048368229656723911852389369002895006953547930214825816142890350101832466638868984603359990367400496264691851968263081249764785541513924084785907079243512204193858651267670230480884033233886028814959423936490433689416805778937700006405520223201356516137920416366767656859869234400282402784953986720700609044940013992200620254350335430225484456624245901755656918482733483722857643749522222786527067827691514986391812176709808423936145091109618640334319341519191303142019075677280485437367181161755423843920878677252264825396983995547741338324436277434801750476543675223178566692990864530183648154927448079420712723910876266097311637827129960169424879493346608682841997701339314047641783623024982332908361082009205389282780991992062231722133710701698711014216656332106066098923102213341291491486309445403725806394656114219824238991315303271842300634743762755004116294820030846163574619895577422135504762408162057828249450674220845758158828076833452076151509856457540998539079726006109287408288594814521315681991013125553651270756544623985117582028042057769922527281561536862045043533853867690325446897877419675691367901958059873331786294613207460829106995458412204411352711034436097743403550786100694830835464771853232239409179393751706535605493393309288664339980043443552462329681278649202773621722961309134167327327968603117549593625331457173451735458157926823163389896561924058002583714579152003700242192881250837443951949087491318464293127969291457565877644518988271896935445627872392096191928078237202345744732368949815287682430318682981050921633988206740625607957308996225111098931289486820158500667673075104331573170471382262199565729977577411890769281517296370355479834382210116395011673081825194615859179545411166777040560462334321528951266533094216645742907777095901955385809395441187492601592373285462877302735471671328176326765965470676042182162965999071057360721139643661774688932146278064704627268585654255020332931552111422374365547937098370632281752835712010753617113573652561641838090627378753872307420511183709766441327240153156991851880796739072353188678371127098178123808056619415803214930916869066590436872446473200396724882008042001474040030199807497780801191131057863188822978575849518709455792165837356488645458744871429854386947868398112619665822399458272087059225278757098174888728876175560222274360738397831184972829865578178446872592266948455499453873609896532503114527761324993301616363369619609676289071442249005728342037394078878180305321267871348512025112942182185248738667747676362038433989679031402510241603138432979413715741199217674815164530365178017395903109132835194969970952276879174902559888705919175439022509384231147282042217854050640371169447814897149739072570028879071989776874978939453677983631082422839639488865540226659191765592575522994059053112924827301112325270344196770868714993695280035207340962508421238480719181254169015371626214611142537186189198585565835214666165554765466490025355758658531997903284500505312399740369357344873765456848943168989820947001053871375899237834156503962809559331825553350269266157179320216615076928844400443469384264001140586974268371324552206120022579773304523804908744677314285420126037209805604320800585484535559068127260586903461205141071112363014236127088491265503750464791154189427435776400278492344389184176077602641547057514002462068966216303728060541549202157928526290839781596451069629994781906037291279310381568828811109902980598508397242789541678732838660102519529902965175458984472747815554651974152362611617398108487528118082484726195862053565173976997845295262089503370711974111149224814142897638384519553824733181211578883822682473365173551718701643421635140366430074435040909918280492863809981741185963880178802789826076555789476405375435724451335990009484060302382198805463201271090961451257395559448075862964440647736137884282003776808675235616212501858486169209274904245603251551750681959432919284980160932924172502602608729479714547983566897552248737869448404827804514612051757069538452291347087848917921035491389100803950198619659620095157839035983090112107563619274709715144094365040976880785973667216517660062981392695283949493235278478539121624609034317945999527846018299170210386846285016881127680928148702736431935796605480771475557994864011693252445285978494183186568562890801143361197968020782572082301218888012843674040113408701516461971488153694302936847046901028037107079146509119614961708005520720210212968309125595579428245183772572043184502251259610042923336445234400834068520793741801230155972860309844193101817901977274308961075714830259104230353218014502538929486906119169566490465263097562663719755131963404154001623683341899261157509877488631614249171241769516121679628312319408660350792832709533951638396584715355126311834341997028421202857979429279592214359059697796470259538248971992863164391767712850460778147768033457279088952188377197047289195775673333666219466895668796223318799452348936858450497357089902661055443380760039144852807012471122676119618124893119526715069725670424326580919356796094426292508497154160110237577067547837394760284738063835240160071817210678188526933067979082751464910961119663013913777579649485024767947753723652381234373706554770627712940296051392846731676331829162812828699877689218686662393951627506754399829278883086225420490808331370547915291296328833696720966947791752135725699859349112431741233819637897316450914063782126467927608371785695293567574159172435541377036537200476840915608904123465704350648497539047990852844855994583273771405550905714515963515208056724790375016784904301483378309128264683332586695562372531039671917622954177973693559322221796668286196765410549073056038775221033153527305327602898518208740100776493949656781029904774535841097597353861888704529211297277453211102367093258092178873466571018069108880644649492792001174287976653831511464390349512678173338678767049479770536333627863249551950542608334398858707696281082602199019632696872054333360290303202958037143341948215212285230602847915506659970192234353438729930900727847566945516226975328524774683829040457012171337424903644317309177924477364832244084395322083787980266635701544461712997304804359462095705935319242865456095864096812528301279174574205421309973457379955984178068037010371441350293384225758785694939476917604300424648175619001183527567685048323885439560126580744984540656644739836992397745255187638074211095273990942846241296344545594569750556312085672766802295592141019553467052095673574264115468824491619291783466283320481972203722042696678201747742893491993877296013048698473688898484237580152647129204971398007381573571556106406416535701335418819147210425383648765556222524161190982399198897852735654165654011644127841925634441616410550245937492498158718226926442046244770076371128934829126310057389802169705102210291788513370114646665095262298417790181967735582224894535304238314256346710564876191302715951264283986993110492340982833479347682394117044742003765659281410727388520360017207571275307564177785369973576516354199411264458290304552730316927172008913803610144467298319674427560380286387868954743634311129590456984370637989244541462745789476392966400694168826239086212593595661652169302956490133014586127140118909545780330668725902619835733922187005685617851681133755649833832144605422982388854420782947611398971202732123741275461074288792227343765583434760607882371014683096310171957505245303416951661248675897258774808544788748251380679147342664525722620812791671444597108746691457352829657789330472963504952246702517508860261718551332009947908580625618106112463542860351390848183634359816300278258151850353329409743626962096504129235695821054352501109638018998774754491301780727561280250420241265943413163662318452519928393504422658989736256248444418747743542786295938887985616873248979909956657490251103955215811795223241585204168796295442106447956117743160578618331654973298101331380772768003918185355217179045039972954323372492373365653597005852167912880818633200083941783794824372496639110809995428503571913506568814440922806322960051343597633380586245042763869203105759352638784008579713007847025043242202124710102976878929431878363099018455140430217930263656693163594257226740734385133387269742674886054377104209601556599204946064197348914095554344229853215656810787615541322741020825177196121091407367652397637915542593460652883969992185750977279600277830073962422579188270834155353712668594557986753459460189860695824850465475806868321915435132516525660545922756963563016471496058008197854816590670538530661681172513287903376277709233439382918152961631861277640733659755487505101496058411189537084332840027383353977593944469639957321692388205409737304928010983569029817397546674909193306507580979161539517561286723537030262942403121831049054452599488610428492670611214681370546540016087765561577553781055123182333953147059797328727008356770173911780173585054257115389852255200171131578450182817910206395111794639845260030221476639227637198714802482797665389794221404072458523725800853990633452868581407773914768378814906539764521971006933885378671991500043064352348293594971662905326402644303704436952208550961171201808507126762456660223445656317403234003595702606100744259986959975200173890693019550455723816588309017317069407540359165129386459196104002699697892400665226707580492374092085436550100439973344358498076224235799191023841902745653896109022664717885133832323596961951367684824595540751500542465947109246140745222625236356477611707178993309770900236919039946496502506047620961937011505546345884225144776179139150391543814033147810571774423186230703414231601516638595326224186112715116874032711695687395104281276406851340116218010554934533334313347673424739107323052368758822699038831172864321860823897904814640806809146981463189237022449270664981301204639994372732743258493945611000979273946774011951275637890900686840359631064993581291952159456564368207839094092117379537861926546889870462404767346249477102028767853939130819575268804402907098553187688937680481199510837327208674947891060031075484479365812257620628911407619995388787500993257756820683331810676840724400559345490622701974877032346890768466211485300909674350535055590940441790735317325076392187064231117922162747115600015288191719905320417039920092690297523420947407124137787267467129706597986863034967953375366317359056933262343244520155919834607293518857118682144069855318949557095367748178263155503530539046345643677272442167871474023193726804151185336731038114675994099477012283027625654290942836987003920930586596670934279771262836535595073136748002783234312308701948521352277268940415114616129584118819799562968137604485155100130503748849726066959851125304497202468102518840660905856887805852539331392682154901515746375120369216571045629054630856067198146665585959183298083433010985008037415440109734819932181642641476500885643122988451644825030221655104236987112958838435379179763053673907141777406266900222957713731026819056274558500719038816644856430075944005305282022204034107340999899574948900883806337937951144298651740054370280099209945263408371331693118979304701782756149161451056817440362072033814654015574395402222464985385564075548811153202257882507481545189969640939668353080914859185280614114241211530984782741435863642162189799462894189673200969225762201666390570823938943305031391042436059514220233891674060052904166085672210313912232177885695447693890285563844158868478373536522306010895470910897524631442264261144400402157460539550123309062556645582508184113604793238855626269597920791447240904907323364095944847876903318368696461056138076474122923638571941503116336934971266538455487762529622488595968668973700768454802000661267028113472352054335637988452474236644161982862455651158751273083871435632166585718150273696782100305003621981885355912688397784653760016424398472032311360391233107775604363621896513143671240941032796752303496544024785806269985435913036765519363183803519265307397178862912358705602905112243416668191470266586905372216404821471440229470885451108563486680980781027236567277856674581537580846106468785871460642887340299000587045148531953384164341349971403226549077921675951408643729058453663905747159354095148877746186424039506586991042944654446945966927610263811820271316234541078108754135564403769945000551069036382332668014907915853423169673517731619368794088855596107585059962585349185586624466104247854458398832644269524706368090661324487895144085170405679874263486606657180930866032099862704086017898780287398567574266575091239846105713447216102335587343202146152314638182485488695879403463552076378555647771089219756447815876123644188306084774923925821544235827916500097045927102429061386164107296679699885465482628451181590984185908207553782253324737889894891924590377921351296762789764698847340310136158336746911907587337668890052988943565459717973042678521747207880021479511283951771917018995253424037264573110073894489321291974301899985160697959935379023047437603328086742350809028163232383489298325511252665486883153265614336110704460009051818505450574278912063126256776361784496432839658980297081017098738563253811958512341992970935660008408185969366395901481953190881470250630731078726628289847592233182723066575954446879864424659607322377082335170955780409282109397493762519407636993477224773565951216633631090455472504730810025116315490096941166517981870008128023341043845350698666852047725455143495260840899578298362923804562061059996861600994143258203275914698467638383131340745359197049281980929795618044104450216676816895418689779326351866702690633163909310552918277449932092060362846980450373691584504889065771698570341708019545253962140078395758862595841699511185913465252178241059174391939623654343588446480085489737182129875700462722799291145887926175340157652497584957975892029718015066581940466440063582417193332149060877977590344413119968301045420678162914866980822376598441891350880906061777916965126467721011177161873469171195433612892725868092718615576483405617220422558233079254592269818041924261714905505367331549545594365365309687748332149923339857506190353627752099882827200179612244186713971400087455263700377345169373424800585086739650238612977369440451107870493681569369862930081006679826123060240361089295750793045628379074817528775892569009273742475084552452982458105295517328932767273418009560739499487830359259046606591086290012270673154369014030436143442774841407152542205666572432702826589128020630513041509012144544429939867264370609794815232274735291899509640968989323059363929674919785338166741694275676032541656048077152717605750132886757927404267193837988102850705774166500728694197704803237631108047125838820487493313199713502258412017628892147151223129998030176980426624186788460229607684230839677242135088799818934169281335730565875221197020998858647101813969041240337816427789398450062702066244151298264979760314766994422526654579827113210547789494115803035295259616248651381382824348750518695968640014889559006675286990261177618679353700164719829900390040400890296804187641762084969631235453907517545585884434049235555811727564886087849748246143911633588575389655658071645978977130572260396107981737654495640221294430538763237765252920066254355020671860582069534235679070702121020272164551879366737952065766011939214484100525231506293027530288641874050879047633337501798099748103766730632064759802151045565773105481671876203043057824608753557413108943478366529736851026903949259750828151228687136135540864184804999250573252003566915914377290892905785930065440240073271519432060451427189530033272195457586593254919098953810428453847630410339374543176261851510412066836521658694244345613445405833133330850515693208985583309033769702789856780793713711137983581001129992427021048200888027779863396083036996051070767712890080768802497981946848320263778709466885926211835859726585250886253801874951758990619632927697177605493618876646437443372752030793357477641961585048188960320263512807741294209978987239273528815924418872532173236840975572118208258755947186421758539788644385058120225384742631739706406857548476029619848395855841737981185441467177587407070420919194704497572566853926121627067504161699316953547496280886367559541068946675798722267905435326894554547310592388052926083203848228438700207922067374257006313818552916747308082573484466955384294953591509929257005659880818951400576604606866720770829666221936987208992028915632748803688401211327314289845993958680433349332976929706557796334785763881888700731245597413958219879526887593964800913825948886249410153579344206280535695787007510606655694981592500784850452178770586661473413825995173599646296019702397110516971958688339518951595245551681579022551774796991383011491300194268845144537999702592248256853659034347571025526315418663401931329537269039280306830440717393195827622932693022621005259350222303780901529077599883206366022198552586799929074894288228313254076130502492242612815275272461056030759047386868397949439917826435658585776125352246610592598129122064827964762756652813664053797902330994119952604952776207456815107818829217214779139051314262033663384651623502513180457336320867852910660084047185383720599282626790233348012268294220810096254857541042586301629331013574481298856414778216080259426495913081218981723384862576905216348370972238073306965499633651561499527744229659269075682943661575240273937571593093302198018126565095914637663441859257338946629463362703149350766370039364219583482069564854743606402683122174026104121415584259607579011285731264634499108151641201372265068703167344823499095080002329107827732563694713404203829256248319010698258679601780851778010099962005127466350376787428108210327211144308405719455730066576365720177125288126764089544684421513360738819438825714093769691853863000144078564571153257195332158431939193812884956047115008172434097046596607088404232553535102568904355719074851609438101540351949619546609021493940680472846085276506439073432662955933258851494708578809657818622926273200786992698951211677140322589119480203181001224008764467061021116440747113637613107077395908737086588139807570824897785824244719166903935837976839836583929148363837329119082406735503545424202618867615419746135541376969991520058888287047758204643674783264143205094354115673742342161394943755644975388121294817317613804300868509219672070324950759857305258217822559967826298876284567654769979327088188982540043557363525965739045986447050756034246374327477409585201082587933955116637672900915020703731885623243340986219840152804775140660370917851933168159990743816842178876789854379247043773110217488917593877699547718582630612913686175408187572322494267396796413155302001555721334211453650848252014770066469174272385404935248469364757384008009623706972697782324862101233863153757590737399333847494411994048852347183363160567763640692865863473150565477387805373919564585872897261066936259632411223575067523568832751197884391907886735209370404442680948841921327741776436437460989134268659681603686204853228738830436157546264739859430161602923870692011154286099597517471459034908189077313215806398810198278916313778652060881545294520436824047914178206158170434354946567663377404297274691685180126743798321111663909057282134013168235309839687102850023170664887050962872276875823189216785524152728985511819581109135113164070782160942067734898674072775117669996292820467669126967383906481465062043269490099862034146775270783296281161846472317861410760548762166971064340968469215285634275603587584432176433572154548937789682711803076536967729731274477798101951452140847457881373895456966381780494798544535831437765395422997540581024212112071175127920466050531131914904528719960100978182018850358637918967683914995942952847611371315703270684899715490599825261369158646150903722300458901213482613776553093300464132873882472809798060688389258529930834432731133302235481767175728338153320467794935529813140524668732131809763529925967200188833284059044575545677462726057399210739230408707760606029677564514464031239666699936352638195294828419663196873225342623260919995189983631743155272391312641591536243205644492256455158281791327489350469335957305353183340921579972080226392544052740638494226550245600977921394704382311661264882182473398326318032585375073537960817977712682407567652736157613368361955108455244661624429003749694959112702435860626145652240208048754794354766585856428633774765468316667764816021042821018197540892309135003145499780191119231242024654756582702267588378680244591517776575706408075177877547863985981765389706532700493973023024221058224589649322392438694569528358921245328160587317352375825525463882447850101736259072173944168060003744101602696218583918198776356214118179081488441367388687663381377627877069625918600605617206678248539157596441587976393223293845222208049974718098296169465326291409134852388443925640350122993684334398780342673960892201282031691593999826716517157195887837669640993121032933671915320538484312264766104509486124007838760105679946057905850936053567560780535241420443306402104706323226305028150040542449726189977608218889770451687577421526424059419194037985452734053809448007480562724265420913440576066488628147817167770475276615294139583473959414553421767464114922119458546024945099541844725413208175615439916834434633669463691329576744050709870986947964321491828414730113230476529995405127253844097481760879766458085311374892894775063743526250342519018070019564644101757168790572987430465163148194851780502481401762612352403123261663258812997562630477166244984367651062840093048749070619772626654652265880114223929529234429185604393399333164458353113104145890027120204367381374076398601621386774546829661761679753737036939548180996230650988657218314076571893327869565842638332039511704252758675023537060084679288133991527181108441667095377335947515418792030677542283860440396577974135719587865444472305898475237398694858117213653380597219673009749116033046221314017070470248035829992939883770136827177654146603777681158020518916526247943389101466328677772928426438459811997368122078592227714346017347344308293247314788186568613540268874472130055514666989535178811334220527974587702545668732692228104126135029428610412480209215531043482640235931563320536237440418234143581160062456195626408643283655717931676140178882647167493348352176636988666999273692786031303949040893596716322386088372218689189592122026188112019156063482513963143963123268934057115187749519035381087070746858504896186787070796723290812568393843069487481827925368050490531637194365753819080198892207759516719844650267338475543988212929949779783833781323241321214552982340312362649964654785181612873509374978080876046093066642453876148590002405545046388660605658206849523040613182492664972401215656070846789865630941126797988761658515793120474943322838704860646686982344478472899957237139887599149848784386063354441725104190470478543021014801588696537848389997387944871370934516893538436216153996434070044191464086962658233728949799035295383284060680673735528326976661697945039785086251486369948805955173211823267605040464966933004933471660285188093901553393993610951259658643436825400218843124551320967457200791152475112455603694493893137644779248892121582365152317289364667082506750704940831414977744203884451788413385148376075918681346702185177963408437130641640719326968149200695458632515017128173935153382529091252829469580372592748877099188857269829385374163607844418172228069441992679447478697043904555573324031596667562219838623013184443133740256822980789694584504105420363575866904377957824709986838248516154372725278104945332934218014332663790790539033124012734752636960939838318256705062436476181177444811702147430102949951859018994525204797449442550053642178529091101357969419232811458276337696796308841924957973719166129690556794023736203572526528883279854190902994716673703708542029575010780606607840338225456453285985321221531022921839911996881506316059011083142071707044970355178561373531129558247727232285395806996394420494858875558273211431297716605113452439793662580070972131011865880142900455004260522263845225421887428300501044583941696360916566039415074019689177406509081381874738973429799165253875359043350501638099172821612604006025224317974612161958918053719751482074130125290113240402365508171443414640994276089521927877811569263873185236507964162616918628689095384357246330248196413766510475649367061910894552513296760786095588127713656025312980901693606027248819372409604775501413082791473040601070749659382348808071477275335873138061812867041588938963614880820315310550083416228974539563310764008194835982401945533175591548224146349158198505509882501468490792670352232578686977601879548685003013000309038695146648510797383900705267869467900689317198114216340594429795728052509143676506591633142284004339307108292717204104714658804006719293246020263168954872717584035848179157299514461157793980582882845184446911627707578344404875787928013170807464053538025852107075480429521611229458638017950366795876353699987043710139988578280306599548373687787833072789650733809914317511043912392218531372950919765405956926214505643382550563822713283756181630267490556440991209132629054882570345121298328224852554129553387448846514645979162913619031341885384043487201905993892603474034310716383203869949949598489971822418135960885518364554030563056256104089474191257386837028263478679329058709627118673420747016841451915564409982718479493734601674997837381011381927185294584573426280798563984331014174385226011624434422939457990441267562178027197185928404186214548622807442611001220724638107370384004609856593143189984146534355470177550925925930855256704751810407519341458520381680136530027093066256139167813849395598345310065118037971205973922264480337019723132576586198725515269010660217177830234547733430066328253291056303341498478867607522343090187561342881659897123714833960818660601441812464298760034930783371800492712601322410082267503770169091697224669232301099772011190637889567539424988021666247589598579250827497095614636256174736166414080079751176601474588595829413729596575687489665220589086317122805975187375364683575890692418520197026990759633046165179359565744995976210609461737521470232721762764964450814690666771278356008290982333076844567868749310824663387771791430344433385308636985658338348483996301843309653758047266560224066866507956972111967388506007776617217546446347733709628938373290723284493568468312561782266512768965547707272372685195776634786405880092604848083596616696244968581020092687144342275772384328194718408174413271004610667797964576004997772277921280532265523534412900075225041693566720015783875782737324211863737574401091215138699890726855936897380911257182704352302325821969104806720145693865014786367345362805432996679745042204031411087618673695050190469405190990803512192998344705224102248048792657660330582821819000825340387058530788594948251895280655363470607421371729824903396979663270259379077160581283673996884668042678870428501469817440727702789228407547393928479392172170931820131263249464566692046012009196066914681018780882983002831688223811305366269165621091652023364279834992910189878333651742744786620191921025664471969776195305962156881855999975217969567303239177531912591239395530595363968223194762273735416989072893313089013426999136105013515817109186709468585021849955049711745209793598974561686462995866679657336658074852046952242189924134441736986405369769591793188448457936589725178295566247209386636184317637974874852986650200112876790156302282827160903862345022231629388435817937434249039057447793919960958547832437209170275510876451554085543842155042912507564990995269952759838260178963850446731278422835496233275442665569903096975905007339847022041483105184954338742339608967489085715638404545374956013625841790337685072512171697595765646360147388946197273086747083961132223096379091323956889660025249228973634058829205141925892796155215059880999863304068201131566558060798174589383335583399550071866815478100872047857663640532442880185125739714113439941077104147758375062434154341469348663704193863128525780669279673390715421880822614047457131523830734442291681761860375707296800162273003022794427669093597428600020877333080016292066783932683118070719926930510062046065737888164526433424282917421683731499784056235991978217154103351534248716120083123559953079342242810830531770273560820801012314641986828476844991960606772218291085935825269416775908749963034560724480357021207930208683264272011798227910677044545825427224489045418236547609276196878746442017015910724993708952644067223235969242500072366994634765350185105521682325309331679446470444429654658296401992049136176199544224479562727675342743723301541385033750764301429090068105491399170327833419048235298795366174915631086838427574882956581368800328757106198422179928444877341320075714689596003824120705320936704435039580385646040159548784607347214358651655286653461784383616860034423160194068486558698082078239635591650852107674618719717323544222474386548993549679664495447415453977822884340329606217508234998497407945980675909123734636756510875143155468786176392195155954599228760918547025875241475944896346060286471173876373327459781165828307711402620926637696762384416901688692584620377953420971378730745608683333119772381830929218050170877674222883630804075944322584140787313430778649448425544685608054075520948704407581402259533103308721687796297853607801177920479133542731183190796529182681532258134522247493324780882341979117175254794653736048811705965420605427810501478868305604088911637014349503621948854514165602910459189028298838504520023486553242151061510028801007825663067337370668294367199143326048756421960607717159741214444724429241645484900227301241083243322661731583469663576735381239134123606126521033436204260085325827365863938956818622890659446945094597183312329553847207203579741334994420929507410021780566089783575195405970950622417405904775683095195566931433891490299941002490663197579941526452289270916635371405022226764224948303382991155267814000855538178163973828800046070098470942355187741800191980925755630039309939393268232893077351422763820931913597024685942918914928382518279963981949152034491137749394365761584874412106614499743438844627657061154471073322580112828971562728119000640851229077406535378241177582303283061383203293494438590462300777484160182700146994659348179031034781902672220121139063673444806294446900943834115092842829340152962717631048072981565591277073414684480517728701083568116425785567803701606893438986646693535757233496791341746159928228276598107080183167848926016264596257975081414559044682312327935631189594444514317645594367040240147652367721241241698870527203858329879659086150451638073221364873160609794017286611228378787209584568659583928732447879631400871387249456817743320770083060164953369131035466478489294034635993547144135225689723476881730290130908295109572538108440553642343897231099721414058630379755643373752385617178493782855615045227788411223660210756101060815362602042514058550128800636186601389320137726080816665070126764604412409207990107165855238514576439708371133029838490647377521035847550282188947270541838147439553368845700903882353855165150336946017460956508773928679801099913701763991006865376712972453928900718438275561962147850056049186084275875038902062481018492090539147498645382655627468639447260543607545428224787119936537644565630771081468706192439239037462629194853538704930733764501483504710560890135479178944832113318219507483613570244709271124319260285654592921391885524521733375425225009487095374391442024237676733952826620980253295566248633273973705052581041833034647658792932439679603111638851235162242227790928883215978521394400517509747439741063155294986175890395733158687207453257877165683877136396121511671183009427559879001944882190495958146423323091898967050896875716660066130502463263330935776686348597581083994166300149161724781611209338917029199882384994745003405269918417302777897283848996886447858830549530869430914522068034151765498177767257557098701225744557889194630767585294377861468492743230834043177229506320713880989009081058332631683820643992255826408979236681760122981799300079274418261295901250779956558697641621405064367654483102290006255902372685978760666501726879357119584062316223823379113599777748124823379215779563523403370680191333658220646868544204566923364859575894291809160273955730725941602882510698355431986770638347642517027549728041526080399198711671783339917572291759063637654662162666672622550428227207839246293302236181702858154498184172180435925479258957696185268381900600255458871297797818559766935911946412118369042021011435365863669256517178564257998678588789328820120273099465311761898361742000381782027452299694821007183682067679538806259012424512546972556945500818179726350575388675538100703421370813583157164073681476419331201232745115356073253203671450499100434414635623310895112532878035560587122156606771256665680479615610105924925458417498283385111835361354463654811264712132500131983919493979803031507880246285051729059484772250674742086206164417030389692452886109847411607838137146767237644336517163506933473420211840672262484178817789648192935728065220425447587009215474096822662204371560019593638749458920236059112038832329817044696881239044603881095698321067774439631556015048306631660026897314265514362505596192692079352181295094669279403605277878432890511111864445389330358376012845414241629644406026666013503697632368622686324864994381294869538581998848694924426182236975641297185891718925764554531874240119736741906271798414921350260372149159949318741664716533450536299320504194242040501163198272248739994551376545516191195689323782642183843720323348011829203445700664352526889932134848566145176891941561104885031519166263272677038501937866703957634956975632425713420548099578377749686330644256587447682785487001151823359480607343173577865122522602855606240661152180447408020613979585111640775311181217101226440318026954113696561141239728315215282629723589044751769885331694058193332541264168923074979475212261444962158971005128502893395911614092020319687543566667338502242142057979196949814848521995129349044067472086891379717175893729789923615892736623947944595661288904496199707448240371813107559518489935783347272481655899763218523867860936765363659960361775867784168484349369469199638192785248822736578824438886276911374308832233975257626689845755636607647440924819261068260322790474435808915962653100672903634051649592652161021154235231298492472619827885577400165939990413434299201530423138083943216268056463266836267944871641995687748461963021339019634457668917196256162802108148102955168141649754867323457514584815592682635749471660526329210519591981655628148780893667957333731199229033852684513274008140181367995764177052543414347276693461498795064919024470846345047168491690361234048780955915623251010930977267012776060115502592490776040149229857467694853089202015519096235425211229232465899047334385780694123299110409146675271539548469520069426577755948258499627247467512254232639526399405575440810539483037216441334424352377609663955293014778207434476744044822361311646844085123802481495315265981177220130649781465484391109777750211218496691711148103528233754533194945453444720201506492445378784904277365385313352674777314965040184412381892886704547319109098555391552753075065606421832740103191281865115926313567600199000495022632074906422690758641525706498733797201445385166865420132648921276033026382377297592927829322346706474507966045273396191540522799877000418869147018570088107641290616651275119752206742099422210407343612263763237221055875723471634591782019432071370304983888279811253026377753561009587297752956754292369577393054419060458443240412104350558328678001575397927285106952640563394479702326400615177701345567329610537847454793528629224348421040627674559552214283737301270652177483828052640980416323286727442587972035174975056883621272644180594163038011058934501862197281641362273919139291054022750399989533592958953239906800923217275565325805743147086341937900503897870196773133740655028196177142313324927110772041399492873934662798051954288355159210042251559041453928474971867331333750500207057426815219283052146567913729564027379209041017664581435218730063283623988141710536926989754802363024699561005160426520350135933432212657919910637491480009935505757256752194110115173132951129192936516134288509956657195457080609136475285886146654905387706390470386733013096067420343656095455918740232109360054460803795439973103408215264078751307589913093014785568873509444134801414922338047789976921698671745674972306704196132630117830191644429649556284022395916959300555462514951940875269922589787994455094511950035357801498370186585782231486641753602573750555386074698706374870248249168144805420083611391342995480578632819461410593090095749486488197427590940949341631245175125729667390025023424445269067505965550988710384086161227974857728576130240987898027284226426723239064028395433836956919037498241021220529098736710349971446075549139008367494483562636337333832562560329948764099999489089030270970259869041690338436680318662635483897760807667191370910551199664659889313772745751977947767964118395553205172829607186811479861922103192955170746079745368243462914525236331258967678312455031339509311612363995479076727157320223049967386362611328190266437904551783212255525948139844338029876912757821572564691537942135824234879948943310206004909793493680350536867600874821346108498820284753933700960900795005147255596613166771734118739204794011774490871736810368235658588725306790807193528387062966302508578624604357590655473689174135000963041715414961845458970459741933736007438424409338877136041169772804109161329960919286468452150691896126979545997652329278280917597733648546202683030903121131997899584178723798119596277061846920549956245108459708986200092388685928315549716440393814458484441207610354541655077432613107187999299400587828377866073211789548064046661473356180910335095606856037499951967223544041360242587932959942015696918268569371490216841745584350869067946543580881585027085197438790773624537498865957074548922995380218463486449229920353774202325052361211869944361277876098823298076441837429538515974668928645256169415518047393289597501095028354091277850179428522937393497242792198418880848029721192363776610659429046055351243478179952563512951361997168937717317278250534058954388156318162713515841017060326886634125447461263080417073888068983868204814351879956163496351492223062070290464284647770896709088527408577528066578587524702589075467024450667077361838533010203422095300095107904930367782917084406705092601553691684557934806307017917685973394441362210275598507699275151020038713184237609341794044016795943115961340124639011593981944131678351577491134465981637043315537534272655195277643899011330560921765235220659669740507226449344951286989457133486231258353938454575517368586117076200051192260781334497847614968862472096713464563769895796973451934448664727708023245364284184614601615582315279537050942164636210203104910710902633195075011055340857336462777313542566856868793559262690607948366845372145621808233384236244172023622038961803436537608385284471273039342190146188184329224158827134740266498276821929882423280193188054741384331420504739496712272004184985413567270688671379913321981915170684612751551334272389345509660518312644552835526536373477483936494029015444159099998150515468053071297378761245586937992633173172655629895097103453493395181884906690775939056656177996377713652991707499452775600131215270311775437459833904216669684300843198618167599700232752632203690286135414940566781239054306877099204692917077122910485767499204402975275017726900695021264005724175162241701703855387196960940227626300171836250184902211258008618628861999892165967553671355854229564958682830872356265768410439466771977507226830121564521682363624518049376171134700473983041896811126994951446674046166483856228421806843092004744924347994764838110547345417385580910708739872087566308275213332049124375863089274104362350209585432328977493064359699725121016360409497655684613872593186558662078082486564656301943627077972827427301946192995309129662647430599098102395035435640171228811074219384283891739801687339599550501654286027594816849502419830400690972299246159061212143773376936146903126246128820985846348559958228999095247276573848778984404251027015115045706347584408981370790601950063030075470606508284096806104962040760911308723334778122126373007136978429329259130666118292704326982029697708911137244494097602718689570658269820248816328104759981152635413873785671220534268731582871612980805121871713414984773512357760731372060364911431553940308680049008743789231187864837084118841453680106022498985162392318706599337050560555380481850528148490253848626663444888646227343428604700584388701562377667030751218918555376513205175046483464718818775925670743878454376915757684216556602872644272660858915527019353047332171864742690793307032765330132600453454869816546066825752571218724323594218619013157092436428725833207634256114799432884354259553006414663045823433046484913316887831457056173666386394171382065095836149612615842895132425294838072789475737179512755524387741018275913788461434829141068178235317788950728852723194535787021236200090728053652044535878602443913154009186253062220870010660962556302600035774957454670019553762490017721357484430294749691306947282984516091110337560877308332210767763416237980391992561283197917313771029714862026457064340909931708863623394478566875226581039217265541093479892080496038664099947118098238570202214964312115311876864475351180352317382840743163815796801251078531017309291207042835099645513036869758249757396497911689023424180742365598969615251778730295136771987548993476221499268232597706974906998370723530972714295705126574717116116892238053258257934900448765098962127211037692470385694638793974896117761880390290668254332790981442907186411419584393699036111686476649598218148486066038439817443371099785865329885447505532810501671315573533707752654949316251202533589728648092595427793870760435654110759999598571248641444825643641312896539635693634764000539874961082297765744033402730604153496816530073099399821688452858187654841213020400776240921989397591185605045080122306890343577301569996794091972087884383862840587799448643243163820863432686360801457627510927990358266144940955199298404854949058374835449734617692958555724657710766031705615531969331924248307900551977953387163272781337833247453101762949878803267137152878569527180053908198237909814642422647256136702917768676823083136465832354906231118602444258745701684563336887742317645351555551467549088295120777461700226760087911273561056832197640526204942521053073214192829320811925601482582901219799918832579135870154371736873272203351039651304883535875881785402341269622781214394291712886435030710461788947511465368072503673334441663544443913918015225365053769783020405713710644434176859837698743460922799558481947074587041426103495636222215585136519695814722838532820657675117566331553525536672192285803936032167966978736153615395786433144620363282358526313772268343529806639436292223206585961563163279367581591898330060783280967050305817651652592234154161505261719723109347111840617208630178125875998624101591139254821456787532928317313234343108872069263874820651457737606929004264982982126345256864674504453284289829209277248024322265741050292228037790993025529217586104093115048024748103620550281204863481559970871791656693046852732753676265847132496558958030047835259961086032788396797631987753034287905241506934430886802214907490371903705201227741846454761886573688951970978858535308034090381949182116026522654113583203182681257341451630767470887958708126320647137416516681541771174418099503395637053286040099314751833061035159122428141252527171222268841873005835532934723028102908133834307384175315625598228696534608427442326150125480606652071784604579631504997729609501193356872811779328092188318509669419446094980623195572260201228543451542736978659600404896274324008765162800782267815298966207639161303266112776885603072056102250097288163986805924587424359642044499308410404254209910154180934672175253732208625181482258631104150900249892728978731551029249700111428523584031882900058890676300580295573359641104964067939227245586123176355713413787068803262039481731385294671239413717152316139862792995170169180287879641031482153589613139473971947597247731122763085950985829457929939382236243936406475942640825063324205485006810986795573398847318577307421452140647395542627390989513682562349762990600336349609666426899101625806404747544130484861693665619537888234654516901016009939562668105066677271366811837967874783412138315909869136141973833557434443933181465528948423863326791324697836723860169544200372557129932037980640084442573065717662681598635648911948221063746590894654157036653194765871953871270087738407277403708583743759778944612088961842523728102470452766826937910041890899749101032713245482010596172704410933584017830889142865497339442601229140663090763152562403085226839842954978190113343265679926205866642530498232446960814398416222314673334006006615203778282389726937313974410153898022332067199042053963971527175154778207854694477027698691056061403233503088399331897299822267308245902569432124145582176195052382852532608241430664452652556178911315411353390514196685607456761468265853106941836873384584972659009901304303000194309165506168121546233661255248971746947709294006979596532159271398655857469039471954988905603075694907371753793251412166034392151161768508726989856956435087157841850782706957411571518695080040778390659655578925600818726879844882239577858696573899558446858258550918116053329052742307957095571795986018531347639204835865575578604473414127993162383984667453742768887460973721264351186446969403751863836055382616519951020755475114727899680707777403744584171511768162006678650554610019837535057084363652960537898950768404603121830324164621374293762670446322644553121328495394452294643743317275844436015697990341242412012016256528256153721349736602685956360882404538534029760762606867473763275408183077020060906734434451747120970865014820683986301270237787733390983072914764712736806630746875990467652814693429251214005175690414599827472467306345603486224334996579709296389075872402379593394266116195888163941863145760074958997712317144830800577499939719267916587662849105240349659237279542343034577451268898788985710791151506572194736667082598524512941234227670276558254935888497735999687965752076520259884036224661040544911363653195882403299147065645690627887737737317234872072892554554345894822835778648806988335879183464710905689850462040978816016973901554453674902424018939164737512929346902738287915679663523566065947086067757044439924513525047568946752664007375046247207697665961653194211202256831276609048609043300077954652866759841713098663036716385270205353857748076390373361337595659549617413082514415139103428435263798640415551567317552483833484354712204927087119836200030462011182771933044884326091030927721755844297141503035921646683432219659857520667684517561458651432310329410190382395839891072900168804672618338767626319759776531322230181374064657315357410971891027076783489343575664291517521263050095490442518519451039987813392038881605452696464659132543418814499922641396620763335060734962023977579485269700564553500609894314323789037325629332293521950106090748653753360452843992654931381161678015330500625502280959253623133940910742700426130732974259580192241715534260628815971118864354586259303435830110622748444725869778550886957845776148243219937018472928124949397494606322834763166951002618275123020935216836806771710513454328902413361205885821555600902555880942170264167543091384407025458946831762211106726231373279847325978058693698543452143116283412799328570397829655125820952331238726193784391966575832911473781090797076913391462065968819798821113447151617863199812200705924204492284014228745473634259595553393438951259234444389058517654559222052004832247133359745088481868900975590266349839295276157541807836391537662678508669498738179516450517603890085710697847758013597777586729019575718261232548925474450648697024704926514705194325292559066702359360811182782964988828343794423827271268635253843298406779398991086024153965612615711432675975032754931542722899495278611266945489673640267527734673972286021316173351804851411247969590176655995268456224333632178113806874469806849998584215789825883832970594165036165113274538455668307734725439688758553661786227167197419761191721803008176285656930275455182590013733991128027094297117491502619478789498683899517426499093323251846183958357873289195776450315954346150606508088014329435987018520946821129006761031432139598573833278246571948210415118716941717794112632597328125702416113434607473152104771741431537154882449299133986049094629864569666361643442377892466537616669587249203846252292601903730460434412898406994039809127893718116564944787022564142610341037961422926900762323934449522639142496466563734279475693718342939158733468636581224891520584964111905605166784979017712167139243880655252422146130460240979290978920252562075114334696893127324764369937382119625178592488646726572404607560012334667775328811249567503450203539351420060067082511257959001996987992770999225565924238385352813770761298490416526265603823216531363579569804930325407754433153821645143878058832885457120818576421377693139790493136614554051393960057796599775424579730243586526341902141925377846896088844369795985750877312948623013842842642689253785774833596318085658869288059689039786874191476790032649009958749835033850479584436584701236581618571291870694361438215072859056855759085598832142550382828366418747293475614631883311555636020932040708492372983937568123454703845640298347152128432684296373595314657891973623447657483870011460019273286072379070451182491866742638356239733280592953962631081067146163139172692653336039802434354752394513555251677530839533903902059153459485461647350104374101275773664753785647492044421145163739696117576814367095000047123686407959445755231279021905702055457923124019967173547322200925003791002237059542200816211449126022840221378761044515034947080579920324270645367089080708170940741994030369977935372108044885344408664243823452691697161776200405316351360723169468946917407861243902291294129790018357388083477970018422997151980166380673184648198381182676765046620247976568558715078786136526126996217436819987970942802223166631179868716841271735361601990803166307228535982214931420348161274452953360378797438022254088968195151120083791708192708833241556973059705032958094860431326006717200606818835698126127181530865561700335088112408906722535921733983010402363389524787028005175591266155010903132267396460217736549707501717370628235817155831343135810664227959792030862306982645907590697456441028540030981548430188807068912685465732418767550312726453848938055662049892950519155011521573997617029725002330441452570705231195676748820300824086300004918242626358741304625756045024337595239176610370889472459344826452180442111384380087295692765507328344529904677351055394918401365015656595732359959756607702162803126484300474768810283605931307840286102031124473364112285967164259109816508577408091615023220506360601851015762877536568753326259656941912761223520844836450517532839917405216860360570775755007977157451986409050049457689846454953697937107473413824525235297120116171835400276371502272342556787260097148032825823830435130094626351470785571433726225562137864106488161944924820423566861507333388035784657015923930635469274468310745746446600212888709601413865816533618418547789990379238646222192411493377955380465777388590775919415189398627573504895585404295580110971133303995063577852157803200675511397250462580874539142402791299440437153415797758384050797097384810928642490117607757552267478649841289191903988942458332894232698853341219117294664416853276293237506860431066621990468438400941405619941378968609499792020901157520770242626580920541011760758768549153218638277466812006338059497537587103377417161832934824082547155472089936549243480558753936006792074189313445199032172233680409620973886507455310648694987684663837209097710396761671824737267651683970140223580209204511477002119081588106597005830585360664506755577061252799976544166444848847063195869280579317543573361067949042704389473867620200674640375973271839795413007385432888592576801040995667110445075085160920377708280453207822473083022400954695081538511780022195358135576374825937626171573235756779011713254245244836183119934574399694703840784152341245901777365414172997637694071987587704229863665162426871400554490454658858777041496157684190830636264402956078128907102408763798649172790536880539583906309859768367497294784211104197689512718646065579750153887039289240905108037748222668432701943046146579027977985831145275720946082088209563388973608427741559336588314292243472234034793364262399462124112299273482841325067935632400490136728721002427423891805606114881748926157485808440681965131686629926244744835977588806185810202570756571069858863968520829943920663428827675685456809460091620782698504315705199129488282467418359940854223923891222567635464968590553680453703751752510337037027286241703685770829382035905663274937229525428931445982521772906919739317005160082255873703771714505444826983143434199222831622389989924905798722253837538210681036761188346344210436836134341795277044747287639715401393017274933477225203772502636948850455784360839166215638655619654727766794182046046164859018531201822304770385749700042739812978828481145080693723623718020006638575657978522210862944160889443730581203838068270385733811447107478864235514936687446504098029606144014542182187199823105443051311691940792754839053011948764991221258987122398585442322825810457361654124107789033853048738965137193908895948579733938502379757894326926134989107345229950007023385362890583001330524851850423915034597434451983957386394332321126402119553054185685602749647425117652679193029832427758677960199721455471388624491442830157855038646709242522500905884874397938351590207488481897625471254532327959877046285749578508191410959907945289375163963605416441919619953994545381550856210987648296585264127174547513549502827619996885921859962150200359707943284330225646641170197530186272075114717351904122606808343671990854859704558319214827279585369599621064501898286508942834474494963158951489780455681491699452072393107782362448039179847978816434477838352007370747280217249664633893268061109798451094432500198944069188306978167178483105161108119888601865843549780040946636677459072139196178090657872636668168473125367743259211639881353161876313470624083048962045587620948486136018056381577015431102554795490717788564941546116519836238078415179167781392392245125252819543874118947873093893489044513229005935059923197697112836072224697955753838052171278336317988773113022043898509199691949873598148807915602248494328094636304741373057032450003718574180940757800629571392081457121398248181951636174475379308706494322592219244128531103915433390369879744483956480709368845811771136414438827851676107505501823841335150377920738110886212209576509314874899083239883913822497370151177716048627307205477822064878674251959809418889076365257690535451729193059862918087482232295684088124780770274065983135243368851244794981548543215057242660998447175224519607688798356064241704336236848982682373870144858278524035916527269624405973614093313985130847532804016842488777255894268730539815446201325059704625113779822603623129527470326630027316442060561938033124777282817756554193751937931325175390310354306634195232537015940926705924583249034249991307973980085500696227174679006811261748959743286095955798000568608957729923718881097426196453387919668244975184867648968137409024200597514401119945718043590983218170881267311152379417015864260513863599449134250214188579654423366323624339471502715553887772803183908121009262403672309013655910536784932919049860194222153102767888635817274862166353463822360755527558293518089349741786173633491366859665606169247459181951497337804342615874257270774392866726726770632000966990185199392669758177288842841814539898254778752990654108461771089618958395871455611533858967349305997412793720562317347541468768512737439637872527541661342308687051645240708210061386160668393423047934150478910625198322970352459897948892741383431160092058232532555374514935787270707446029743410235906749191374059804781730411396360529653574110582156364458255491898986253095856214640818701473688766581610900783387036293869513111587924993349661036608084752428251373360917370293973314203863728111112457215608892389593067507302930009070803382016480045335997207322370625774221291954212186146872704327214840441778059570137366818593258421950899783772567195479245353702660467169470455776910978119441594181941998145918332974239104055677811388230697931828515604338888364502835362441943482106008525163333811987852658995902361390186138818495371007893331521691754282936555082837209867674332314568079045429136866528983921788376654031919652488402666818543801126138831225492829119978807589725960266489991255307564193991136308928001220171975130586997828631214034906547689102388431895327678283748946541271058105475272387681056521296661676570724920159140866062752440278521777536767691531732742099994049553046046444140603971880090450301325296310098894980061628324334796639272374375183174319747166034923821885485084957267496097219398589392509371326733631347491483152066819833915706147744303343998591518592501593137783610623973757311971570246685234354065971809508377323294481512779310125918746712979326353968254419270334600957469125663699595305793717892706486350875863433462970153431353015042773657278882925684902605821482988529575918606945206840800503099719676312031335299112356501201514908250294935126305034408790684767120357955392702585955118236565211185505004158741312105365285573505975489387271725690912127808617879462924266503296494608890381620609554605021138923698273293988814093163130953788410949653205135806562249182469382996992062739175696230414626964015756508485459654860420465457316698672793238753914921816576568880853839216853563929941942603044799507141703917046474914131802339825282578009618562676350390015166355748202886319819002780167292926571811955116940976120497069602063966912094705816869517395069902976945289795861467568690812845246105274781114575044930162808555146813836657978427122274719094424381104585549917606333572718690734801982510387211944252116236165676305713914923946206035298819044654984764717831788861033019742508203035953423659784542736060453243334363523133976641569597339504642162779263153453365817421233922564117478905492585329278397241641324750612170060041344167446724015114087525974287766105231194708589461229134177597325935533965984538865108367778958343947232292813609824191998725776595918899857068148554231910350993128873711069350144212298590041372548627140944386352374541401238823167211012939413903311836728778189439194697759380988010081653647457749863131697545815049357490523939235589306415030818930184566243877610978388173428792985663769759502131443507249933280521949332691690518596953984719128919923645370712585371670588762216885734799935553572092964310511582169677104676053692860588219664665185452445534763507504440343848837365126821201151924162393891651309196030730507261373480814751132725587971662353624862355298723063047206572669766594430084796564184721897346461663623648047804379184328523087089116720767194607750492051027192927130114592939491401196688481952087662751227115100723285936044742327021259047991691809057854647345707275482642133096824103324032162148211706216282328412209250595296963987967815911756681676797452839932622717314395702997935765145418761461540057604992680918319016579437525737620018102521973174425053725754317039670427005074961310845409843997817595528415020371597736280685825289369923001943788048468387380234174353459984116046111247769269664387581696715488815746485010835909638658860645729640827012541776566727416630440670363773438587133761213353285454076646679526886547736599548330273991455246567584758130345276402718117297308067080998525795969578053310379159907729064258084464575097922367393052195678054934129491871850779519069702435529172449897162964715615551182219120445615455213489450020450652783362872855175702854770410399495527837819669446727149828441300104910134141264142339610744219418584943329648409759442784849517230964316407449448737970212173325143955394003538844508035271188350632298122670778194738754041157361838767051069985149320441639666159552542828921925356137588409380816811347257831549106541942336598626219195866672184383378716446279220264842704858122234567869777454715885428120828804748208660564408348068115316891544714716332388372547050344660865898529588991748422087007858276927047623558550321761875229885091911283243250581277900058054698635980712882882152528016113494071936626236290177594682311259105618825896495518458321409596028515740623528754168098005584052191512262052866510410083294835191027834465113662262530180273664834788165014050120027654031281772044581587096941233462196994593808003694822012729326340192246419679148522519437594716723756348671666477952478778799010422706029919145060773108774417393967481528137809168260547319900081860713543715316253255150119499772025036345467910686904505652290258916382244594355864930601789562328271571580694220884650597375321214331844360413059953616534103053237308439201216568666454700286126505924153327940060398447469818507490551246634509836199872702493588986871411591936613006251037748289875693770717333531830369071782341551640388781245967229992768959122185600318788375634496100976335352593464361783583873585525926322038233928284032330971016505165134966574595099359401658625420595301826739282753716385518686623894849882355180267769731120957372837567030403733111892628369762008685060003144980386736716420951852098190002308875952232320461113116000487323901811059484229264151432556051766523726642542301454746666711850925928304347761403678665538994975756156598892394685640444013917443827395414436651675882406003913703318326243601767951355553019872175394031159673464191057769203952982527043724515197115313239733043277494903453239774707625774132734740578897994418694925586496077530433651359470793840693452689434081148985146647170590056068016838715136932009560031836617765151685585143885119302675943132468535594095458089197387706079766905564295697109670911751166805799787996875966084174681116098353166149176264013743107566305483069161197260459608849479700506219661106257344755045888525630574859286820128840108036340409839633556069398698415999235685183932676921988275754345768630326669827275812441728049623220869699266169091236595161716468696358969886902360994224740037704357433884001918973718757566314666639705177213446848822646061008645720586065431793365126367144438967406221556025096058788034965625597930572123047977396119452264273919660706654499015001913186426818722146420051645895175313929354893993356745366696155981533186502726593150713552592531329803258202317726892627965996925702115240054819263273111192429010753093035950345162219571692802636490210297589883110575235095660446533610817800492646853916444486419109107297491955219957482546378460292035109892091557807900599235956616748241342437105828116918676138610314708425032412945568337842049686804318697001868996861261736440336905856713502682810943479060965649437806450052514680025609855253907113402870755786786217092537014948350238116640222872975667101190233980924654247584377208888341994325400353166897708272230706208757966763623148841348412480258098619037068983951231224482351101616269828309591564888038348858236778821650525432520836322810998159740351268409201593446667568110333814694451158825429379769757583893920867587410097387386463681384968404589841636088930391503543843166872701643489131352311650909144454503104480766920426172081875937205410969248389800264766698694946258567659853581965990726861081391737810081662111920901203323121715157248118079502735427973114452629430308042429915726529795023930474205659146253002936861380814362385527905738909129327541109254985912156795915687557486977868725130603960783127954256239425604289512325259842685880695997198772287888456569673542619163267535626282100042762447857954475982430062683506523226415272611669618819554260911905522196222013408375734685195695415404799340493743628121622848329007588264292988894351813494388984857713908903514141238089376081982684072302564340899762939836117583158845362976089200029279826205661606046848532176806629740225276337140581183967338378042643229489990971924274321646230178724480634374254502680162355104424867864344980285407016783296049807079165240173214313351543260831155324652172180887781247713498485816085990313779908979090466952970868886344683476658804567915174507324278221335674633316817883745530325612480582890137272117950293834362080271792961096442935441570853449795890478632851705740200578449453475635688770530401669912080959562973321122520237691823765039524508942072762710298410891243827692339333477815810642544680507520535585819217333736079127470466382740109150271121865049289724857273387821771672812828079594775546353988174421758203455732636965322229472073098636004297421443135789237739186651229659662852024774992217584406443544616997793679022963341217463162623768788159151027521007803892721961710381785425456870823048355806525580197321103396425241843018535386212567851078300216919151405114484965497257554184958146861503621699538523252721306135235576826500254218885817905600491616661176349166297992316574464041866867950464910743332140574782909074367890369639150230917753786271220420418571807719293509809658637992450237630846963859957127792000206511346991119687031086889781863866403572110513764842285264444518808706541383106770543179294098118884942788343912381069010414704670958013830873340270766182780555527900411209130211929169469669351110753271902560657255914893696050887227274191728772086192294095918588735675087477770585700405903137300441354507449076304532161374326252001014296402048517733665891516085472575000817741801653151416607214421756807631836718507891836098407391834222459939254013939185482600989663097519557820650049861869595616274661190056901456050538661146271878609403162561282590823191233585696690848192460531527417813858026727912270380796886374458343712787824822272718262459074822853762934843627896274886767192154601538800753155529697979610369066308599593281092359473468298690431728176571569735389106658440724218143346913772383812217657264848385201991580321250738152368589806326558018658711820122490812238547778435080231032892918763656903024906939157911155886867262864479452481696115304359165290208483919667872065135276906534751457141914422820235029415485169001442625842504687039389267927852985536430943076181861027561189672728049435131320701915014706648321282058888303087075080229373957936666152819471851837028159214039831906155628731115950828469099191806527825593605390457336709651854230516655993992093026253697380939462965403756536667492611628407974965924978448946701389110962477287085181722536305055916495007034770181411931627217414663416184654896831002592917758188535362428143942303911809168852152129462026580392021463435105987965617776527714360238987297119170969847215186830330069658636519282453999281230700135195346103253099822951738245651400949904960930062487769328930930219551044065838554525420239060688749614427681405005386512262069836826438291950375184740279826605619531801808784206728201085377621420473861764821354950248471345284727952135349663934842632892013524793501451448634377177206285576153255478171735001570737517528921802153074591095337824576961496333764170290679471244688356776470708691290065088865416441082573711781076310179110422371760197772334823502549330828793122320145192074589714506095391071579428916413180800526427280586273165844352504871324675715699294157000126791102358980147386895356646914925697843815019768453035173645085277708995487990920014454621274227414569230066874270519577970083965884326725365563478784945972031261154399894458530594144309669677106394101939872440039234685893637097291184317489191464452196988778592132858771327051492220617331719188325595226158798978543570784270825325403196579176628647378026916054058933784855755229108126886694900253269899282063770253580780763578287622807960592212397268762306304597311617963926943607695560266287073666981558114987539962877286113309856567413860902489726444877182112315123439182698115526455597200234395352461744679623911653496667129003308729239489070065272827784089862285602051035684544567404021273102454207795292743175216947067582610076781488025181929684781081975427962243647749169590704170067113214459703340352492087326206970644937224140640471711324026186879940183914933356380191843583106810819781738604296023418356262076961730585148542944709061920728867398551400849133690016954851379925454419237825012797882852418292698908064032257943674343586492519688611231017983179488828311584760320053749660531803267547106282444657736998578556908785489156792622808460989603712259714869540072812575882076227082720693215453345619026231212780840221550703738438100883907493253974539600430756909003155447904097992206811035533436919426746164672653972027331270580854235149602506643832123131713556175554677825204562196990539965877892719290551876612999380137178721737416826735707771831195878356413560878559517650799944956298648432789865744500512572531343438691485967406588537772425890375200786135356645031281769684530311983547992639567971120225469378959799343220461226400682430853169163416045839796034975558341137660752202339438558595511209244790353316404726976764346075926402586197085448795763696379615728689064952604406437257406477031767706349048876387985552758091040275040824901936148247071227530072589559124498695119629613691187988428061521074462939178359291982925034876808470228530228664108011486664610058083903672955804737367479572862821462712287454977116541536476112868192464189046890756408980482144781080085215595001402673222022884793280571776323162189624596952170852605431032301142805417963327559819110242314413911077673412123712717096494242721042443965493737433164857680928087168407084116304038873469990573885431870435516152687883509728764954583055897619476357712608785024783190453786917366808774175079565408285732305264014842659229006073424754474580031461054463577953756169803763291337655531863165745483509362301023985789570799457262062457181023826961147619988000012529636522837630873112893531124971734861083144047340160519933662650761468006488118343924101088808859978825382725503699248054043891757222330068801326041185112758497131755586092781762162856244400491248118001899929156327902751118981567068884334023037960845218437961437042272243968455734550927581573770286535196805537761250920182589605736192986508634783117315669664875882069435811215405095217366844361014179242897763268990397482901696973638252784256134946584391721451783708837041284173471642428690031712976009616673761805910894666850294668523458988632509019933195566444517962492452682163649057103515995235023101020247296711846104402951003896609347981610147932547556167798421911286377845512526198882617948761817789523822568702953596658909188125010911261299535974915985540967760448741480872682810766612678138676645492366087107157842882832855143920028385697511019101002848044212795679842075540669612509489022063103042283568905811483815146170866733319532528400500079345096835155126151793620385913050212099946513071818023111983997017219082826029611571124691423879089540733056267694700861761577503120885003635261731433252580635749194259293924490502869202936897766721080827981904723354553769883082679528459604277285133115319192697383941099810067192148704042125975656546620982002855339574859300028954844190412620619026523810793935337352902816378296252043987220202763489433271218513252093672437713787869530944132424374482556793764825323719290532045051326313050690211665758940712719291562948719676986897085079476087111620552472623013791269043493268671259400800442664153658656912197457442005345305452325772737467146201095709281035525926204780831338472889461315633719357858103148273158257501356957824705408320392179520167964037476922691271560451071583509220723284547132146857450696972963975068730440302107805263984702578399192212295140957075451944990797873536337083108197202995438810857713242461621112620015073197173725326141006767335282443390790859380227705610321370959869235600215483475717290366229791837544166518792566590580117827995629285137553849556903000134189458637481892234564478712013314833099059548310240963650798621528695895478357917099426883977310490289263645623786261211530423484386270492859141690655615665904725252195649094032840057910742367494718519859251927663548151415704260462522774887742427827416972791546090483286853506670899651694441774714064247392543641304359592093544229483215042424506228323147723884147563723907298466044472093261027789587254075200826485190651922253888385085107765024606387699944076209504796583002855167088137082682797753186146339931069812825245577120680923123522729623379727657459280680778842387556885216001300987009625788268094950179104212775553936414398617718226501936281373579154799199150479456770488592623809709684194708286491164150000231390870615509912496871043516525452663948312920991725924092051903817766312073641636757318001847175335737184460185181816559814417786867139795860388154477360238769610504614010251670666694381735246640806623099041362751389826092965706914366180582684506869123777970550119350429688862774846791892284858344107761965890350000980752184049859761596463585634273087652139902209355696966552685521081613681362571723993389580720841083507633961877955459341048845119312584191008809340562332480617057181132143916175180213208971674536834269440026068357659124921740997691617423211190262912031878801566628161456604926192817159735895468101179993167987313369669436500428563055502148089137022215223641134721921311147858736155559183546360318241703401780395504194225863528338843654006033892653874033279046861590228755878981001630169763654380190012883532958820189596894695555899353089240335447705788025186829456389449128864773125627721000471829905887094853646400805558670433194210821608275620010490167928360563838972455341455359575298207704633236215523716140209501379866078529235867542831916538983707768394721048973810290985844492407641422972836659532994485850468770297329203131802635433100404339946469390036932129187765023879149683462025047349626118550741887876446438851618579361622117659385910548566456519449658161071809396206303856211706637895162225117150518211111687153538990072552006960578726960992725500453315744578874431746863605188552850932075148284697283939756201515718458427120014537124781494331544389278442666024292071474402925545775879189431729037653401742288576310133373150935922944549992865062211984187637264313445788124310911579716939135332673909018581862387397532071659643983187596787316084634856104346268863622913185595332074832994892766421611266592321277602207605041161475006399684881945229880383420478023271650803523258848880770374889293242569870617102359583232348398242797216160771264990387631768702693156479403896808885763507878459018540579536490703714209140090206133867214204529844446516735459012631271554477777250810861297890982243332223115088459716279461577594222781223895649007693646729749496101689391653320855937442051067184408917494257596452490471909524572098962874778155965994350661342124826599950371755021733878744783631642047777574496163205315705243393754927694588191950915962972330837324812439236231436527172805700875430336161925913589274279608506530576151529080893430825678010448110787598475511330634862916631036609510441225731973658467278180415429495347322754925144553540255321929531966797426664103885130899624836997361043212356888023861764093713829270083590310845823082438704229792889750601964422044895266161347545478750877786716941344254455317745535481595628921381994751235143867448553099040364005580829986996443407846413457796414418424380898174056337567768323409238227437647104798903321341371740725050074419030143018129653136723115304315834019721556659100604838256704675545943644005938229929429814924873705033777905757387503164227177018022324977568251646817796324791707797227237970576681724692959003191901451081245469839267446809869434601036822316436864987952945106842115935938603885949355547632617122140098230299439832934514460610623056585684075902883564829094623425534073768570288973655200554359201635643516199994706411021792739126809521417208989496244727835963359789946995281620722904716596656974265715562014808017991931833335370344552226177004439828705382713104091736688125170738819040119851335449356506301463464843732099083257603100545319858217929525981811722228189704953857644656297389618928305497368553911257924987385905539229771520339493655809941736189697832737433312647299005458724881299228223653880833686975279231639332995454230180205228880651750904172093947352906212365197559817186397401865320310373325174564499413187223416551959589435893806201457492853800937187981256139994586450543130314525018732460479839161844200008559180918543143907798511567000765554874451949545432397793282268018228230837798296247419997147841143213781948715812442223962395567217316712703450282954033343607433469311121353541286878061204032433818075488681409731672013169782105803512592201372137991491510711780201885599870513124843248405621078882051518532708806619510223802859270799853546603383666379676697092939073331647191030098364437370175978079037277467642463983191845380901805341790118728756299872891210684702133144581262985038395089384181123690963175109542535902285826759515849842341367260194020719878069561533965687345720545170831293673934343937748588275400244819762457347466675481759871037956338784459714168076889402007694038495774600564313034268238422914096601138090363512766596836723258311107508364095495506265659393805360801713195623693946791243854260202106396564939381921962459499429460993592429752799667025038123673864081277552211076577739819282112833449890737740868120100720689301848424937862031103207412078260042343127688655665568435453898810617350627471249605251444550284009765697499379645476992995582531042985268447547021301349755657798668423615571308749802972343153128113725790633349048944064982204891522340605338514676444076083558583883799047560371788320147710010105247209107132550219793325097646521599187608416656754712923353757148733991699140396181873243807791955823584489479105704654401331649535820200018263995772034454994187976836472624732213752634079753044057075782391486387135413426269220253836208199111744627705607886968866338961036103552157490674565999330904428839792604237956413243384205890450897854853327278111152464155445656460173239759148789367723914510125329578954571608009819899216640659723816865753572693571247944971396869627120834487819996538732235025295933810968302371333132885359110409782640740575507041835254726201971222684947291335624738720475189001567109795633689819065819288299929579679393741256841525739652801410669093300284119567843022261722771515620046829396542169976878628504690814092003854154998981233855311901916051891820833864764869224296571133213364461279392372970470695561615697133442868981022571921113460772362835885039537240996681898199568104691975873072795827528026620903142465995034783115032194509988168772694138301728527453444582192842267732192504577407784021648576645597165385735173416790843811906406816603764316730982864379135530227342942701349781424967114292021985451008892698702618700367707253415763907136556497525865949977584542624600067493318915154593941118928687135675101972653574922887568533282225467692801616357437936059861112798558086088182892154095168050406049900418207762811794327951017352801418252408704353646308797267968444244820797739645350042953374374601220688823350312154949454872426678800401594976246801929257819534125518268405903661703047570188607076345645650387611465932757728515983398619421497124499304088399864683633563429526326759786767993001754236094735853102263530565390491186715757221037202653252074846840235194288325127278294183798592429007389339601775677328577104391021592286172704556076852016178528448476901661684830188349935973886956851806842806046637034780038844749294058842464699124140625647339886561666848271029421993530325913562801000170227633725692501108990424969151214766900625750328054375253835278962406198794450603887114860515133753074192405792942428179938310709163612362240554283406547460156784657131784998329964832636673491470221409513212091050501516515662349757742153970135358997604522780450714321220065420759116944553786085149224427233398345795450624546617004173417854013264947919852457639104384150424542029475424279565830405454994093168264534275180143380062424557189708345296757721370165765324162656598371077015573882073675167361087835705695741096580355200378935903080221696696209726639546106445631969527028600940136376385592327532786019466442803628202953993704556076227303104911573130606969123757499067776674426414030796763821475718960465342472566405952185581279459382954281215079927594510975269864904638597601339389576913866809446130394415245744373178348022103423369069244871356744690803333627331248261468785683232153643573530557880901977812116179265964954671164177437629059114479921834661419211049519568629736183411804073333554599780947771590799813621536485561189220312546207410047749460666586735605600260472756465247508831244813576694176754260680369563199791005359812096186818194755532381989452521124307133183489447373275551692877811657439830298465969432729357258240783524989624980614951717667610119002839438040311269394734842120076154104634977029263982635841243129160373401434852184128578450936965504092679676909841922424774872286456183986363174648462561205830784842500984055013493486264797300137058900580198090616981343933678725893523440812784879651143149417559972590228421833490028487514466439048976642465230845111887671975831214866256325859731080890452735379957177682789483324110038864481786780998536187169681408266190822517791027354169726114355557780968522560063802104348723970331609931222333343490591868479495628028321012106418292850476790830442018242447787795936637168199525898326539749088699494279240582668442944927800762050777449315310888063200896021122040682269791892855851633473699755531763040557766495702982974594115834615265437986024980047568117670973788172868436656602110381855594538594569072867197298528144156940549252484956953076088120013708310671290526076638411259296144981919650778797941925169341624797901718508563722947244506875717062185654779855408339162876306736246561394043096062316610819816699921986854084029022215845924657856495218687482597210298050247436300252141500885535234228671824847637662967023053685168981815151696277601024895398702562041690063647676913455514089935285495862466247261355172985796780582085201912755862323913074344260637543051532268672216939127821394012484198158253940236781581024253955767039187181864520052239871253963746589857744525532684957925242972189382815343034883496953527254209987860253682669091059734307500652714818278290784796241710497281302545446560345200920992229558286222396281683393184330377927326726241883794975019771008573343873897276051856466169010024572476024405650125516096271947735225354262922100739933251587159807817592327863103303532951587617118969913439051443600429057006311762028538053279860655796744379386382982104353567105972833913002831059639147596391176691687347262371701968392020705263962597482671928675996854252021339347512762540245740586168711622140579058631924243660564015768611803815095176324132656773057646652080371366061124147134790314564907891516464148328570304994786104592584294515417157760595120857931420584825401244485300633442144564725375228572415841934059536600003997560353068437762026130943269601050195593714464870676294837136807437603473782446846414918800493656042953266917968965846440609942042859359989179336509800015177123102125267664919162419327099610358495424567017501279274271564011823137193452831214960234601585277308373128671810746677181139997663024585693240519187617119366364232184246710889276873475253652057859581177700537634048728285750833488724299981549192728409688803796132438948573889448809383684637739251212087662400569099374094774828289194506954846434930544486992759899805639757303527045572894433728381536094803075380009613410148471172694522707336381421175469378238463485914180420882605990165461799132554928876716957188964194074134564808334639734179475969739000285389830854745478020972632017855279495838798681603783968298639387027076576624827352936675270879617655314118503655948634468004820661649222529560430478315146732955183434639568614084428944965333433680166778277865146049005180038010649103938588671163654351424930947105220732615596991882938034008977049947143414084525321465282914824673576095744882488708154587240741270302937234532462005760008485752578667326262887069419405202490178601261621745054962986396358072893505990015016932809189990889726667207694929968308487874242068930176378333368325940610657995148298451916948639143298137779483314970712369849458377440532282529187769719705391777315925284172193337823112723808302595873945227990545703761172254000008584336043910317605303712792889554299193579327434827407231332138300657053944518068720860183509069944984522383784869381644528796395426693049768819489000510504627731752990253238601798901856885467543052705660487793083494209483280119486314316360228236355278916023181761706280413750245753902067345411746868135541232838818451034606724282271233482512536825592168632463380717976411217199888002625355814340766288068209984111513804583846973482986354088514505200425537639895399630643063870563892818948366686524932122543144713947581498850211017921350066402365584780064367897816430503440815857732790345419622591805052234273380822084936610866243692400904528703314242364619911528681086411109228975823825564194396054738065459709301045731705773941137981036003381601366764297616649881100686139726336272394717865196625742528399004152902300926144095890904629783552545099683229251365235473328305342867645914338683799746052353868578913376713859742321570510401061223233525453510526102782767181851174781308032970468375427472744247232946402592954728679808820920735153049763785631874431153524122253574803700433603548966250902760158583991776411928166476627079310998292168180775812049018137951734581497011099664936768728773294439659673984232975569330662490860042051289643412120553528454333157840854096142519259822252667618668541083142955721115897960505562581860488506101048374600418384090074099346121437879137259229977743925586647541583902898390216519223417265330768955754313355543017547508796787203231403728513498212644317516855663772355596830870032226103719761521565870574995928428061487310624563488314371895167488351320987235143209836347793550276891803999093683087460448163005039695652028524064548212635342058033679675076047601267286899159925222486526796577958919589609313774802663193914663606235161813882780848226170459720191153327777388864659932341611157311689063800661109820501562298067960026089064783445515397069526486666329595514351990864855238987342839304717895664775515888851369770786000339590298403269761807005355828055831359326008030529244728630290491441528952597237170065273228159363951745827639872030815358891804218296569168374677539512744912797996649940385765297482031370275468432387238771699433215576218931774895822008495582859729400586912901654971430360631315285490317388201192815807333215673099738072432167927674137803367393018387952674285601385666613588707763257218927603792915801416539378122992723390172951763490061413220933799691930792017129274349667867520298758452428358141455769132458302048985850151675623274572637244858002481954819365271112975515637903685272974040711497262969894734082122140571859672623597255589621178125690653049226593612296911024681554940381676898471249843146429812282479014188397903116031135247361713623158438940448368253979980799393409182687591911850095248179041880357666963558147596203734391207129979753913034099882742412990649112144906377789540687601280869437908752513239654366086514710102657705134397014300159764642373050022295005249616438381164459933254721518824390681055804816849020634029183994770223202849321123019141461067246650168953394688044745867137684081774663723654159585559327311965071645868823021326119738640249682004003509079984145453273514409123148934371588725377965634850112196195340925515817432207151431464745518200935671353806297749958307772079211040326410844165867582370216972237334710173947438764951573528830010673895310917692082549593102028262480037137696610069055189071139604055573264761636635303300971921298929154779786648283425335539012026823653703084132386191022860088844728832166281292723280540293338650861697921125780371918585238582828565206158404501719064726141093355243458373516086958611870510901598162962834887620505752015832777921060043751470701372124081864952055772059589881927937706533526776629259193053290269197264993889788554798246195792907583420368566525064572359186693870485018878460445248932374660530778893499515194008158897026673275459586951616725214593731222032989027038701101407325171543207749372506767015744140678239127615136974088261176498594876319045045104385305818969745984461257193292402888156398338245887626078587384507716702404117202098909385047879439892156593818314461544742836358186592399570535691920016083837783604911339391841805621186578004960626902017017735107048082240156762093292488378474140525053204455321303097931734016224095150308098390355432535925360368517701166967911146283868011620033015415982704855028600764266599356953813910725284083504512664063318272257327275164050184097400763501793551354979389904805667400163836783655401587554988323895362722882305030575882868366174144452492009643662382276468706757822614897769180666960166994120613603387718963566687457250656285754732644030090534552219239042917593895233148660147654660662779572248831919053454189465487997887836949203260126068078580152622757834079450186359961762209490099728667163203347685822161153595959194221266654820588571876243310171469143143316822553049668322935075708259330084770704512899075208140071660817667787457210553150480699525105009600645549334232337564483176388214619232367487955941377975571841863733176835365396946153436111848103726582009873427378369774745352873189954660788038118462749889510713159308662285108199548670055946362255610891423200017252572977329796295718914371945538871889841817292984127796694298871515463580171185899113346844982867637708850842304356505131926436009358305075217572316750489442824037016110466154882336563799323977054595334983608521655031540761679048387288864296886539454579762003740658038469862017547116388201293179206188576409001352233438703491096775549799861738436705909813519039022519162930535504963394052735458675255401927456736993132840680486886431573039744957191361425466741108701518552775358357087773079937867307037643454856572456100290307845657330809892409335049212675642650665685944094336449866706306310352071366296662030706665419208726468715270425574885172452734369201945937781242704911103470559899788338262302615357429332126839877720660968522851836755579491720524433388408257490490852515198484430264851704750000475410321580343918135049441701222036284061926398552286941686819450502713314361460845567597014045564881998801479183035323489717014888389773101705559150514150681989885851421061254643773292279311870232450833594864125936267481257226056752028854879857711682874187561203880160006729927102782261018987187113950396627856192073959661882471645871160029107533234100058273953250173241319847611537356014943091643263269494511805683069820775213530803304641507940615589201936677616319750531103635682224439693038736780591840643841887109583700826650712607880227524086986809953507708339296389533120026633842125236000262544472396860995121739428384323276794258379995582738296765608021313712643092230745687274274545201844488925109559245792659271652553660808669864546794718926975982461522437235043430160072007150027582948188405954138758384611715221102644105224885844477583761657031482287314552368032012406056667881321880667285011288307414634956116892087660195011398043573994349293440049828483701603313297078001931509880561967066767374972651757918250796782839151590959992354024524428288115430650370391128187070189300024253265327278674059699647495619207741814703719021949345892134015389771130228770777398847304907248894930882820590548597854279256736676007723517089571248893960694118536259751459997749540688594951190683006809566584833178139289037880094889851552461118893523749935470846120751376216017949110920645332234111972756779899902042368687669310674358861820141471780879241962187014004248990781212945929898174818659772692182151346495236761616656524306923580263874690009006064941710228704521208590529027844596275435848929441284862721612673098393504695579921225355516164646299521630951495872493483702926571670133446615818564034154058502879701534099240236118646976093779006061364689869806407858316819653006590971924142771703353531713282710238383908481732584678209550944329321392436846193342277709777203153797471135098975418628468713512316436154941799542043070274078952877175193100677118866843926903906966105820941501905678454519082418889999485754295715366183580307981897129262547674470177155057413572113334022577611176360574821152208246271577563287678722769689790404605993273104241752636792946135559165791918662326262616005270002046237480324850385882358868873933279046498180569641234921375081565770309419113505516447707497341874778366595156950161295433101049962598927586873818410285071899656512510626994663853088857854258253107449592507403150467237349782950900898012248406352373625938719210527627493367903748670068789175179878635558623664693358857620427555420209174960607168970861636779136179828363941911435660049079775978002383730020132598393177741955292175998214730645380484612614321197166353480669487836332567134157338404138191020667088149748624528472458446693156225671247781010596163908185831123394153543510087708009673696489088784777186952839286961184185697460328831686095572560326067249951577408399533203971016215450510908400519051884780269668476613682780306334042150277974974442133927975693455574042538679132172259635165158928999486073346072322353236772687214801053288488467934829101615627735136178478756528570822683547754775213919345176577726951426262810249370494534085868007564936493117667753859975190057539369259995011703065703908318849980312363663767132406210108109683403798612348530090416786233379760307472427934406826879067504916843816383526708780105800490474323873663194910401596469919306964931273503245957158192282207329441462417593798607260156854112331589616350991134992706956088240570514428015621718606748600396446184028814749031085401526375563004432363173735731344549306253141546907939906017330724394514340192531958395006154931726849977306791560909509514271165124620790643718536371212315277966967452869581853783062174998533583745171967618512796125214298705825345821369095641376921702893392625132187459584309170166135950736307738872192218589231600779544954600849014115623975030377203513203580257145196331136176107857424683112338502041046250541790725425917662937469487619997738524918728070202020094212728673961544926938693592569272345011054430161979846636544457416614918023454546230527754870861174446469694663371813325789392809834188668924013597605741357291042153605374872430554946222407902506428309750367358122548074205148250634037337327620161828575406109145792921409495163418815306886958821384135817762582957345654726167384264996512622046243483128342260114550287420047117238005255482308314800636923980807753062399585124792049643928841214825147669963633618020247042725668948672084788948575727065611731333656807804327992736541367041964692579576625788333590722937027964956203190496078743845120099309749738159300180098801175702584531109360998944364984618109514585573244365112539795899730695220793303620885291715293489072401274325581039578324710375333511884590374604558335862515350635354040273313389533968992458801337353590121665173762882962282228287683940718949379675949760147457410643524447285521660216516711384453986069652159136279722580434973518893804804696895059175757793071703436240840441358161792953548037581828155017737556856938314677936407829839546364179168442972320347960174435913366479478470789557868096735540570948502436445118938984266007560754950859304989889712283186475250137707087182317977013602715485796005056225630536336697245453631699802508811245799680643585047495081899399980138739168195719714100200370730148219693431850153564154839750002226289320079569618168518531029861232144821872745582963205744616068992096137240984147208200588821936040767304626120425668513369278409398158090931492994261966176207284581950452766453426070371773027027174158279107078142373691994031196541139052541626640921217482479899355345581456568949461715277761393931742021683770085486390251637312043612109229939506559704615793523972029032693464851457642620625461843092371206936245356931502276898849242848557581510193690876614900347051521330775585140186664338741778905254273939197049209244724523650029548742039449914250672380019791840113767494282735170727841218168222124044197744263512207203522913347792024375080200016845317071182333329357079187318174143071072609791671705566242253417929550615226356826342493205604765275068697092643327630119370331052816555861876103675074734718845671925724046081599401891375011406837774118957725435580359744507914522206636535107076387355014233540491208274861322553898851326987651441480647990581609866458683504274511719347404446705114625615321550839279826140081670395140896700849042346683378233811524582589312902799398386570516935326227988196025615253547552039975459841252995014305895876174356103575532538961388805324072820760523303613774151410282133917508027005301827507244432990930789675718109558028719186555645353949684698142817812374051511408290925231542292384851093319224313318062532545485201365768892691666442937388292450200796781542141617530142950441256269237585774833952873007801060740427904997270613682463829969725220726789870763630340621985753859153466061810195808403438328648938003906530012225358305762669593375537344268340143454633049531002262745181662120630088203356291663913584982424258734410104205649934154214051135650045171170131532242422786400667658248056788838981464553956054568245670139713504106671254022585139215390891791506615644248363363833604859501817279389034638558526891931802479652950552944551542615655511849717589055399728633180150530581863861876707327682821747358998631513237447639535148549861124922425108622888390832377635733479086597049443774429980554567901774000934716650472728352623681938748392075662994752473442469809861770339574499866765732669004791369181802227032266432237094670778157350398054824773877492396677055517173746483848190829754318572123356390666587139830610659125275827700829913632281251266188736986900245039558544185917446049741376858608000131452940030468970039630155927041332052450162522554131250494221293297174165635590300315977238451025642098061167225853506123524890946073968609218442962029006212879559308479647721952156379899445565713428404701060170375678449540498708962447109020799354453785832113589923110431732576426907971739395194753978933161873763707669468582377457482567208889317318027332383716759910257850531841104600342929696212388722279333973973396660034254940265633551447482374936717829284786731034512091687174517696988164337763628285513753934950202555648449578042726088512572790240999143508702487669219721019193405266429758894984071214344033591113822603329471657736682106656428685021842116992949222858584848946409165457515001629993724173595517158606293445685117451435314383166699876863930356957794595421769687173723685898092617093971843457211110141969913415052917420991495886573494373907139629181082953332361424773800953255621761648114589064015158048752179814416546311058457036244189443437486273697361400906589246612088697044057673327783404519514998870034584271884784213741449277735940705685933766069090134896483642605151614714368031932322988121013563732285071483789518103896307768236774311828688860809053485848694338959409378960262245230947408905803435127770667916696666249105566394529068942036067561590667203306536991906498116511136554424624164717888199750675095238090278370299273965775181550882967827607489410374936397453896782348966344853505222061905154821006379687224494193980240526440304532449088152253361556016346789245487392934889395000142499142366186640312616108086042659550272147775051652118305876269249397501330050596975842950312946068151625209107565745438066641032092845527716858100446866517960957875998889532447832246031856792154247066198794338077402909121309933160475975716669283719445395873171290254441086841134975364503591248021418047337681487726521212758542346364074093976188522057337568855565509310253019675064653509645624671124882468061535973300436750061497810848372201065015978700776097759878460503590251277996799650587052605253739762991735882199151208777709476872210069833608581835314631525101945414934023685605368918495941396186095705345480841622680627017448900018235581289736581290761739881915101746799342067410949955291832409063326680364722586385332046538518682538047664651500810826234162347573683292680661518974022252636769920259074633968545150379337552065719381161675744648484852499922073974129996322936302579953408008856514562239619029674906331234047100376852847695751701415775377215978611153748922068853677060578560652500955212479391576277752917269858126780204327824025568984073561841164394682153373518775732270496299949455506723811067122973858378409157451477815421639465754765910307167521427422897635217629985343159093662633397080986338100328806829573823267311205829403327658626616942999903706119643940158168759567654445286418426958135471599999095288019128193372962851706062249768536745073201569565666550569232259127498569729680144208895246153616854153305421700244103139167328422449586959447569767994272706897620841392529151599097927433672736631473743322575510541002326406015627228830930299802561969541963119587925292213126373745672794676941027579915994245450310927897949027880182631861641274903043840648353793595840638200170625456008974036464015297586168284605269388703529304015364151098746919483469885474126417850414313085321999862817452079065091362128770740746464506242275313838429821535138424548565803385454609135716598102551918841101871605042528236662873866550857333953392488123154211925478103384425312324922698924141835677880551859874844044230689147129723900851512372902710255028143652961327807435923030636969524429588452036698800003898057889164737230241079657473490932604851116589979569206401585975927964259519874576925130558199820543317903897442407282700095476878426572197538658701227597882137736524027674134329163698021217188173017134452905202256568084217034608817832803445463868943604676808077263751809147498138583524635451436606872729909343833301490456294342672313783316793077374909280340089471253921865499950104049347526781385862449511714276400022622545530854956884202833167359770735333567573858838275337026388943111558815105319438220839320201722135152231138056022128205014704526608938351637449604252052753669323844324340215325964959084717820664984966325471161439858228251021263220721313559821738483968852025608105014117657341439440389360001549157336740631834545469243330992774213364784368903871910606999390561785611674453245967047290315386966312679888241930433182611300594748354265544845203815428232011223976234063782837930992030526977291497675680716435837690650844054667387874709263202491858304244462505611481404716587073369425318698481589312082753631296321642385763291704996904986444992867767667996561834059642658221730592828884636536515409949825329611330626463571622098740382478365850389115418964060654758392270931010444553477645388415853125638606020905306130328633253635270088179679542377633933561147664440569151826126065870425121158982274753937557237876619634491430983356007892054124840494793102564311503586317874445488242250612547852160166677375475156095044785685521653176583988847200367658132817664477523554904659130776341686868536144928891969646282708556337787181866453492986262478898122688753114669406124993496634460159782842610499923998693744745354961939726674107429209412363005559148486743133764524999179778845076269067949168818652460616480243597023632684050430716498223063566194379865735674436920179907902499264802687535066829781400005850480783136180328284168235758010926910298783987949778637436185337857953667752641367763908352144474463285075517160737987697953896569610260174868364585224523795254870197098905725716256755172138213251602261968437473156852021658137331464577608468559497344759356409481758203621258420661424121954293643287001306228378596867667328987776703827734155760064328336660474147952791152729637390253544956779504154057973815301360492058404697787884142657055066519612235850298322320221316488801053758477605361871924311614750799822074329402018076095025097200355379767552240469209682437904881645891510844054099798678756412930193339183761047921912932288961071799441730393736488935896326696188491110162644070123357535127575304536969802965499102480653538757491093418421492369493942879790112641337388175580783446573737215168752122434847683823496396871927086047420683774765491549891352840509071559931176282067156610528464733455840329982805011370987142477245121801127284040448848994784899754410367936040161051157317905135144294648068218243148653529234738139959532238293469353386027731011189425531902107445247435327775355964992134467154241111193122835217463704439811117897381686859646098653882492536408127001214948678139051646731887780789101310965545418184486948780469035111335228158447910604354210493018868665171547416838485935959992635962147221541380825617428028118767783531865821517318569663568180899103133741616989825956560364048802123828804580454805982526052585993538767231742531923789067873453415326698136238641162774480081351135590144335581610689281718697161902919818837008755932882320372668190376017563576853507605747062384458286114351013846404475661514050763321436677908750418610362528408786397763357327352182461078322879354894519845557589625478662267649976494693253458448858003943883213817774169917822480496096801972776886294424245175161604129742097286222798350220867695425254383381066435171573999435006078705810620303648703941068078970330285518763011550272450743303755318569759014022214358254753012692094619831897362067151554420198378436130115780885017768412414755623701899923106066867552119489105072632152979436101622999825001831157531549252880993948520338776703082881873868895484197218882547141445093906712528768228319822781744675451937131397777331139420497665467391030998731227068278298181822987493169780257681838853818559558731288006537866734231548075451800724483442494826643126510915520847373494956502593529226576150492554569667673873313554572874489095156363043066333702855919571108915318568837860740518116550758196048672268731233500881877081487669623328298580415035335523453514912543624227074086715696684177265988195466025651383988526908051590727612703730328494614829061068891656445655800814979110533686031531580703808407617548462965160070240211865603831390026400837330777382480505103529089642208067395011230480646643483579065659789623735743453149611198114606756153158336106340634107163755434444992353691565888193656937739081735967367275404537467251697268546688754044865533704605967273584139199025395494758866912622846950725197383967957930072822130057216917627549804396076175557549980921749206822825435956334903079349471054364046304243964509857130485216212114271787793136550085620732912634509935980082564990390651184476029653077338658904838398018629648200778632263205404639316980368276230198763684954227895685206166503261974431614575921409295040652410629942470308380088001641548286868745364391281252739514032317568753333682485841793677704070281097755863821316776347668714193146673505279347362361445612817853149502020090205991576278089747022248261947802775634098494535822417918706073321611309456377146547260950698648463838224938046629533930741199512218682415890535983753883557003665544855040712706813744634907311164379264546077823816393271973575058181823612741834259738730950431424528356478579080532181365793833610030590470159956799061696149903868508206368461679849470658258571258036245012711147568565604848470747767791201671603336702917315659648928039111246566981057483367481652082827528749646621428163855385295687375460161280793590521387903094052765480820381698091389264081183187197525204941845012647924512288133071874241833626520584464603013666934837112087116631609475819705648554505714621483613915093752428575998585161616645149438748336338570131094068407347203141390568365569872541797147531999778642282133531611520377501788852042276208583193577759659902404913778664187067884970266279156786190792829736676741839496781414753193348182499253310288374601507979373766167484271971449128640216597279276604412251814410267744962624902794075929556342992080243847396095428721607952139510976177525795853041570495490209123634146781869918548800040339511537209021818736359308998454865608373473788480730491562913982792082971341619930658043649781344400503286121886766532075247897460614682274247514531682375392333610030129562546371232905386923630009189440774099949140376985272223815521454235896465794225604350060314263158843811780927561725748615393947005840259525881068503415250119394166318627626367297358553385552797863021101934781181950002596247883900676378111770543239078974407699322486610546592178103880885573166361613819304439322122921461566029833652861748981869085230480749293740151696715777345866385869512569846737533251916860295831268262106400769372528300239275916285038191964721656174796202467686446085528517382495205456892106209768059100205715069188969943222769472951835335861546073644405509474204892025229708600649211659810051810845416988185398381370365558380951209817948300389574650288805826901077651921806607230582862392106490251371314887284384078420448062618599344247489419688432983093239693150958923320764453901903116643312949213345165673605644891369972043337818882459098761161082027488214927797671504326294558561493412711491289037506299511236895374317263708590623984247951291956818366286787463526259609732686219112990731939704060757803786566590800620370513356916655993262964148921470675299596931179142714206774090247675278153622827677843695555291192514010407611645950074671493992682132579199088146788930199077014809634742797077995504638789987850646071477364097174407093688324051616970288488939975952045038773663696329998261377984595744502409686021872606540813694185908593908786323846985114803226619599190243738005746650416542902968587727066168270857700277387119180753266308701940647125751334563400087296582728809936892591179534434481072285551314098787589531491454087781769263626598342090922153510990782976337246208625216389083300394864418553330663202491612405996462389009887043568225349748812515515608748388283609957410261374154125883137204760459655739072646110492733457342761427888230131986231824399833506963387491138625878659064178129119968962629246602537949710378222745962949738045154669180915825304141337070934599440269190152563636210690211086034470468690969855377101901982333599957891907879044937376058441218547466389253997019777817149252646870658621803052769421722542896768721850993910339476787746115854963161552409480486252027694394946166273711711360237908634197751651772575619692253909801686455034616732022295590403721676900078945486806730212587027366134909494511091583314248561265602528373801115138399618827875831328910982046291624700975042467194328531551295554682094799605758693707130345299489242987195221652631393260977527273193116664163566195434526885618605822186186398955832435807356454937972171255376794357087963411092437383944374843028002027472590732022309242582547960057308597530517988942443348891197567330957944736601779256650467842505978599400086363023121166466825938493785685662460474177176242218645380821844505742942713799189067362646255374208426563132654528119704049607832289801539746246609349019377165544474265584550066981772445115604584778204801107942253938968299674530690883084603930883247707538464141211059985214652439390300188169988420636605246412805213950583400334494846258269645393905759841692651950317031664895652720155549084721943635456536429597652200700640118220723235970178272853724905637154963431924941090406777746212335369904269924234820945896201978261986130723056130981659732088404418654457640070414144262950874306556870254697330882737961525877647169724538270028474425946752512818086689734712643216323690391927350058900323146350634942020815736108643193166904368422792882861757281684137127038751647375455865255579705202399078437497448041189903359477592702433563465045794039358103018255132656570018162754905732538256052409965856588293134524370944194167837843678091390456392899137338374719546051817950571379028957515977864946030924740775399094213457806204979154619284237131740949438853208507755438120326586469226596979846169370748299570149658922872409911506304738102717029504619833034142872695755938430888262334230923494993699397790166412071500734860596326462443688773828471536841674293815265762595714643064243863947735185836993842922031248376258608917656355470386176053565159062460565795107059542512870049335505892769138987229562998833072078020334826237449723489557033192223013535655997466484067981245972713297826362231622453360147662922773761819873388424675494554113706083598570125978257237462517823751120618267232772826146514493211786814237621133507482897117319405072819734073630878239949127691997966898667128136356927738497702393972903177996947920473529826446241839130037763639852184667011210283402668949519325861504834524374006121787468382918931035777770115256456948931858071618608197656778941577113495116134149367570160886422595301942483743878599303512147588473092492506211104700341161285748271394635780398184431710120061244046644789113474301419649836872563552880167934041325337933282167947704179615529557738146468156579610058901151299526231926119366861474275983505217307705495978064111323542769551019447287437111292547677831786296086780001028737813434104338515458608824015936399650041556913782537028670755557705297528089291197307693510444182076172079562329995431374918148364433214360943575832589998508956856233988130832653539631384016873174150345357701545264455393829572197099197507619229205956138755168602406345386084050766776049471800842226596390119485032251045505461347900404801954897063608210767023126594075535737972195859794330331924018432122917341212924154840832943350967232585999030814086825136990930800943308786234606896913537565264809048425613545774213452731474040316910612504264041193469385193623118455747800366650649157524465934307289279263492231675554944110232630709148561017000597684675247238280332906783583706105286785284927380189925096826051334107646253205898474041576249426913615765494429769006914751410670608064779157776436117025150158967178045457854976360262910490424521180131841045770642676207300503771329205493142100530732966350919609926848286881138049006577499804542286759637037483829556196046926759161095660171822797480688840090947862829327774665192154473251193843812480472057693836515726742573333662343149291245738184063211050982161513936591569652268227816513978499091010835588859197998422355686552735995751081653111184654051002082944495880653272391638302645064097468633283015336284867112664604986105460018612881358001371596611915827376304340845801527520746812619515548788581880685422276175873747684453172148713711837051843245274300114616728459096401573521169095417805342248210102545177861112253765356597430335294667629016556587583826245725997619237408962697404683132020354443201743894699186577012916404459555691945524825554147511399278984286908056032602090170593037248393792661001472757098149391882722119355846629790192909632677899499535030742248449846987600993528727389989035211180948788276468132400879434734376587835256770262333311707815984453966072696700673941859934567842370563399846114546421262780724123779665936929565761353532421873543753101673294937120978633159177615488871573763176051067670082205885127582987436728043898729075631795577391321099858416270022541472073433497264050677164296920546088675417762877962291924465213916311110428011501263396902805062791368258405863346244083468052348651678809710453325029175920290952728960022647669156624727800752549134127806048900164605487560624937353842672448438109956014266554330085347412508863764118601102534029404628073153153460861834050980948575109807419485508603857948228478618645064551831316198368381946401933510182206588657162321653509604041806343060084817514215359011328907198820122484475938361284674077218819659492180973384090916723834718158381102406706910361157551265407525199926192197353303012127784873759096360736915018182544889976077929284260104022464780920284212513952346639341105662856882169530865769691865565481075205940714389784061284452158895967246443618849517812946836498987472471199391077319131163068801780369349323740874211533185910755875976823638961493286679948588268165260933883581208645142062112350459042188608119968924168319978551853995587942021174318598330589066724709411037689485924047002157995917820420178059509753599461606286732509826783271607787759671745285494856646647963241759457773020511691582057622529819699249076769630020654036905435648897802984217755222790505050440271679300816704446332537184574666878807875630927975389575841694228600364879334101813545975545370845607202653949763370589794241130843536028367976981210945409904361924066592609802121190845923876799994186713901885628193092942648080078048220824726966821635454786571487686382432441645453099475520857848471717452685152511884182057619302839636955313093004189150722286900591455125321404899897562251191522708456434858958419186637510252806136937118192689348287719597784083768306293202483533626864565879990798371715127832705211664547889026454159130285454891033446922126293210233715832819060836629794280720541372877425413855920234185216813402496689837026620673000453810103266690747547747715065374688584477002397104698348641161591444992641968266979523366612441717107074142391896336394099387096662026310172248989298783505705219116483670909506171564456861906222262776382978662169813533625525100933391301447187107525547331731578798520779462716426307992324700422425575492772615579525003570152252712671657771445203711181388359657149576174396349033373650519337244548610514710866580183802778001439712643421529464033548745690714703259458296781635240567903740673003391859222019588295221143639223938813763484177862155242545254736772015061522242743820328694407236992005036145679225139637590727726147625141464073160159315332919197973849252251325152397938871720333243121552386809222437774026024187352554292171845674318029600463672839203679914863486009302718435416959215838232326592649355299604058871382702888639484296221387805767498746326454292111352397321021723711386653314752877484951623034108524661694140808323398449985421580995859659020511749597895079838742844166225360125268944909871848411807217884632268991013299444238675679756506223085419353929092177479652451462772130547667116417909601456097082787230575851975831371512386049522728129145031217691621155021963317330223321753712850841580259964549474745245620809536456598397980821262470105528837618071791097011885097031972946319168249367700000457628490409399722946991411404528982856366308095181664587445633318467247403694376044105818202446746774906227745726519188789944318486109174178533042520175353262116765048180771444003704444933241447116001665909049238578264538178667491791082737239235649108487999502849628036224878292039012028614862074361435052394976709912056694468235344093555705350498599116903993582371797702143814131983812350187082419808366879771557796913967363209730173732279503031456727403021669730510452078575288324438792615700362149539362877101071708624114951683130754285521723760129254885202471042037448727832890155502669455086742785429186600793370847652287171563710078548512492436015451364747739502063110240777247081520212801438399270092619567461648372494789022491690349427418860876402047057339476341228990756981638140766995760746398805148605692429399705191244507526920906223301466307524315098924319827736149710077447598262716813054828784648367040665232138717359777595358901882834594472188768670365621260089923948084624844106877715914240536727980015959112640688150440969350354014991955114902582014800007142226399518693689646802868949043085316209579781791172552861193792361295364313974576883094110181917401149204495277165405672417256614753176211461987710871988593852934803664694737812018504318283892826490079069943308348924647943882877855801828151249180598106795111836813998344784687338403640923416183513447897049498821791724309180362726510773204317137005446419079299072767842713509062467190378582214943487808695533193534492681299664620032617054027782831958222109287844271231314144414584266375380700870045445919095585786847840576491257996226386297186691382560199050852708682216533763183315805572115777024224440187805418818478166783935298948184502652834914522868373533439400746465437300661796709866419583706221988563255391084976404939414993053148355073025391177727731678174914031543233004103220604392952474541886554686900025967458219254997670268667371522290827696953563467298527322028674918033884859255959049100810679006019827065392653135352614437142087729911127776131923161015787617130694413543573591178257842710783974827910220010509880442739220992917790395849830039400637160212968882842697127548831277384864708334803353270539283164682312094190227232402233063692649207270543588701498267654335231238999014492782178749296605005938892030209608681079892054718610551509926747605757981515435467555248679833998060252002797814873078532880552785873369727699410284383100535924702797686591279543217143040619613998649928232392027857813143194959504286928097163184369847997968893672789634123399927092628131346740742069909865984641429936255705366322084443011332108061494305815403414223662041665976556040845439350286126479771781963144412606284102141364500759286307013252799318714158916645561782498210957253469986742288673741426565136319276897356397673487901075379204810953101675359994150283157700536768421501054194416384004183589961843451209935031798391144840854544800943992141449722678301447937506672994658474867134175288350231311769129497006534796600991236522892766628374231879820215923440593775924006209664216025127284038133903909779100141744834944321324071949615551062784124270241178236066432669030033270477810118974484124119812058324519942011823496580850757290381702701808522579016418007271582350125293269758336470225343496325768145416326481615325833913421132554967971887910177115155402542435362843370145850847854051272503199416864210772033144311120258328179519430956638695977769220810696178523725844578052855670232424289229186657289198124985183343571034694913238110512502280061628267684174048725597792050102188457662954746620567199007396368701507563634166620407866247658454782949835547670988558906168566227894822111859984984502360674439925016524459479482370549669496541752438081149314058375122813182964784937774574459071476571042096700966513691971798809291008947365042317529220300281524175406829501380162793666192210442986316551209062750747597711724184364584696526773671833659743947100098832937850244668687651611469328420833532783903540085781000941051414084198027647705715943368188748739488046854523490120234530134494722565853367609694823983505548025626318336654413344776807968548520213297107132627517697489553071848990555686717422806403618925199046872094851847637715817049496810114594652709915818145698440655655409989678186741233977699604127566124777933815198592687645591506517377207987030927369239233849421042714969263043597082799833711187214526403319006601512312003327408860916623076491306416937457130432456260090028852914994064766103113988461611307358963626688177063373945454099515684519115433970202247020396825722524528296566472045880821284749914564076864812755565856857137217131912966340818923962798047519379280561774380507732067278837663357340873632632786447263713594560534834261938299220709910748380866472799057532270774621009400465545607348770091765432153844536992561044465400877314380746915803114699952428343072408991100732125943829687187454256664484591294041994219424615194658710065779635979268137404103270377281199220031017307375541635381064917836292623436900587315832337138004788399771208580631348227431953108049408790089364087231386573509614495003995716822578103168014722383111775484971472047788517330312571821235021240533128289149986861633514624614405984997055582088901962297321122586393834564125369163643904618118363660939753392213882552920195030560513934958973862405724825376319894913507740994460342423551392913349347078129150493002073779532878221208092261678823663846337744294704694678447107767298347730628058438093147597388003051522506211702167174987237473108119398359240886533202830356471291313848002298208680098816803865281844349875806173440881452553982311235631206257756416165647323224651037640507655584674692388209883435570296319773537356165668883305434859047756781968495253742178145506018880070021885568356400549302860667935042495739026284658154953461033234666640247120846855208747582118094086351698697961598251213444180532904623397749463054800593518559663806181136388965294790340595743081692620764608809496184319177698487785923456768889521057429086239755999500590495575720377649115307630226695080366416777367025921862222548670431245028819160996052171067777664440905398159300562778528996382912869187222719415766855240688042246652792713060148856263963582768415410341455038820452430649174058329037686610278577278953424615299061834355811757347037271405143777790331321718133169072601932053872774532384981236568621491146242806969692271245309714728016138608764638400101704512239418454924130098671067778637804941767538521496513849874111132975307174126802735171183304547414664976849959048807307813905961632563084271655223555791392975044322855589097141185312515394134199930892153516270416982740064471306013505137258991204132346242917645619531459348143871106947209157198865386439096228454732062747900483313889072506351279311068465306688078952879356172394720824499235753172592182940755572905916419852557968822835339794324236261660266914016982130631401166094814019472920308292395344432099374997106513739231317898461491919846590469859641188905895505227791802368966988097318460889969060123597414955209734434626877419218941649147101206511657913148573139025481750502383804839492131986429637909176216093884163492481282076042499201282307176105410456881642109528507733013603719262340121992329277910699811295412088281584298467872248086989050301414404390517272668881689792818980672992041359732723058708829418381778737736761714536645337856750635026968059163865555217069614991224228282280451069318751621465651726011639302613981111433218338378592854327187377972158048807344444945791443153456347880216706601081229455758020154661431136243197115894898289472161694729888352460333079436626357585734770089984174406124026324453971622866983172080300566241344811606513750349958738067443846818188421010372504815095092214523500677397651655247871354574582105930552631642466520985968027065013332186707566805910360175700997896058862162945334765578220460353703723404344278188677527883571207395087577475531002839864609159441695675922047861439405483721276343847081257745985788804813370841335537110464545170734631156573555050113208134666893566615184712156113481565679398747463525259443634351856922368685264069914142352957076379021244226196162352694162855706007207737565587371910885752426771267170888902538061364186506053901062181950426766122072754008070956302979116581333285661898223306035537406270152971731666141210498913668213941486829254601295228393691199804591630301679329551537307407771690302937866939923926469682504647326980664759782137745813777336180851886447133873445238060163062667811891805620905430991801833752683192080322671055014794905032967525907453850775621475238575328182421743483280488409328377465617214765135044643525507611813482970960431728989715891005007719901815862980993554292296916883797020651566113039075349355075033545632346860945601981643253082212840449731145253321901682195165343004850819844182917995626236963085048002139426383491790918034656041729358055936108709113103726059974656547200047970111424173112293069238990481625070011963561613447267090912181349915487380862751814005136427221089322294689569097415818972920407309259318312371710272312819614565044864814330544046594372713341131406604138870389822157739961791281958300207840598421423011376552794642467276129885229893652550265237152234144670987691599113651511477275314434964869486173141450510201559975984097383703220626726011104248798305856921878527916961457259876076935439561393012405808712556661872674013278634823186433612112047842691209461195425363532253528333204741100823043684074632935346102382563446686208751235514487674706803955870936090395956040371486484844521610643472974787357879871456541410517000106224380857482531009872324868762670933787648915860437089341098431962559945549729975146006803089724358595018678565850672402618194628943829492588555733509968799015427850914693604407216098919806473982531713310278505849273637034937562425065214753017820516648782376749595642578177311454960017741502631470277272567885987623929925459377910980287623228271859316235808112448941653103811795262372203741898945599303017581235632102890492871944929096520053755453669919752895120579008903917100007801425256173312366177744833431819530308381354974818845082640465947187770718084967192400994879203670194684716693244021153665295090765630445880692914090153434951434604019854058973195761583943800675657960494972207569391984577290548520415580633581155359040849560943942070414790389947352169293761050243154017617522146403586806223714006505116854430339708355218311698851971779643359269292892897052180644272915104428163109234527351958530835275351679958193082307120550268198601009959035497194244434512560900925025422886629755356047853912204511158380501727980124484873397438185292197257480255918159962211455995529708021791400476413764513689426718869243203927550150384222949237120388352659429363509706592571187331632268384628389070241403672445607455033330015922577735441932681449137794161145985433392572227497654507642631279430125815913075211214517389581713752270595822513360301373241857086521226513380774133184729420247870852534636615344607415261935523768478556576107872626817192579922215756573082841974712689425089680298319670095061257410363467458216810311173926859313599804986055878152817231948299071731607729343710581628619161858768406980095243833821375375744717584300525402873124921411704202360050922190271460018860439678608751632080001632689510523603017680009346674734151491753296641671403665345416353378571473943244134884190126159947669038364406630124605871126943862051377857976808637576240876898347053994652034944842250835715997404143220063218242534015619608400891705067768141112203701201924629257609897441608601669353529791511447787708627112208199509392204215025080186367575942276929693189510272338980666056736030226515042840441951162726115982511426540183116302267856320676918741789158284028104306806181999002273516334387178953020928771505581969068549326973261505036947201544393830590857636265388769852885463627128258711882285223592167164591222046663359528788527701215362267107241882270894605320363809311958039347170549344236800806636397538896837058620964466161450915827932850416964415587955634279665469553398631682356911155925729345328568945038334790017305319016194668515848728609500533297667403325460685788658970546683627211950928467468255747164629224851931715561234040752301267447454658261858505221939441082876396805357905667468796362398545440347805711494962238788414120795660130029697560319997746278003123347847554785452873822733864147393861797983453160586086606928006922020936942734071314720123284149642847002986600594724943626493104716842077964088950253703116974675900761372330862138833164995779333934102979681883928543733615461788676894807326094679486928076299795281349390404516049208184313628878524423285862383921916810321066106718447662600936264004236705173770779321892706262052799572305428138579815179723818655194809166951150892330120403659639493159332248045560827324120372015729112411448915442878202213727661928974213897110496789383059460982829524589599647027781437623258549247821108759984611334756916824932720952230467281892471216795272562866875585503013963006369937580505930536160436859028675533564342611333111019095260942405033840106012574561185476969231590733811716980999967943928913115780705565233200758983686019193769120515071116845723381071825465902995825400596019038417403061498204599845682711340909848273444865924347917767769135896826831324102457624370280274475409980293503448113981676120843576057825568501063684963069898049983404226465850231821387369300921716839666399334774959041301246603591033493026919204747957043965963346787666160200016912351716230758277891000824067055915364915326379695934035775957932918301321779413501395904881922932629365487518290283082694788460663351020368408601550014294777462650381550938206027751759584204903781454465638562732317794191207714418859855688882315896614118073722056830463263772932068722674936772424222650836095095574198774905498189945945904692861007321290285477119486426711798954495509897776914823144017745032039322988678101284283293589989286326248494760222755608768808597394895539031663359010801377065836694962847849242906660428333227898171109768766435409762714016700805850777733206429487622461185308464994880855008460311167610529741768551020425388824359963226248223781642078488537942078263016698996015599414152591634254548838947023776077267190720079488533435439146010497527808813243078173530675489736621883988234867856226385045940682022468090622135275086899287014713577539172102378764124605930070060264294851460627088221387457814720335511919523634753032678222915845225694498676401052348802917144389353625613895642452067287209885711147622043176559588228335963904975638268898348971409992152869624670007212703477136767740351785799873997476788109612551603019027884530401245344352786584063073047422478945226410511864972539398154311375064986161650193436096698016049031960444677913248142564135426987267557960849323379951150665510571785298475434152185468223841887375563205527770181198976156672470419637174666709886549907469572846945824835080219320004376335588901181346756360928595942515545466211988274648707875276489182786808129442782298619633453916517582797223601753585121133587128462842799742346919767840990999128240140581091950278882800030049959602576159771217662910768777105921396341327296027952072804234670884745846665937887075526358834913620059966766447741496873438726677681503400274260751156558026811323904345800395951477031451956396341565986006492359958380301090221771508050131230572185601553295408216087487620739390445927261977340610432976023821409729530728439689946497027138561295474057464287682148773318283612980584059088989430926851520836143504838129568256747251641292182357835864095209230183976120517381583943797115900938980867668587453922162118767806114662929223446905145737222280872757722438819592709804638091507489669498062419479477414817681961308829895624661277583070754934700578808284470584246809780737602119843414745196582036294519958099628200921255751956599047103262523365249486826601783842173031097425537213527187811917330111089092402851190453164879476628957701009889609909480017673460783135912238682846424855316406185980882062039708240755562044108891563760015730954712157597632767838909045796774217685637100185217205002365267447861909450824107643899814424817705064948012960458689735933943304862235770283112764276068093404231514457216667229200380311284232809728422922254216962454657371780640282749272520163912652667862693272613671578567352667329013534966356332840457874888066876754381895963761117227372948865222033721542992747402622799936141391587737583121563000825961166542644636765204707821308669051300832984346575555774265708139628563042841472190531162777110437017669932180828541449117177158708530754935941256143381288347950901759404139969762238962313119711640426660079763517986098022169988149531228093736758132433572163568552741220718846935452866445862691828953908200421573560777745540098330233953568838228927450151849531726985619234026514590319511903193391641347880655113197635018442811125902930209258659676666521976316438982140865827617504229165625412587557182258529871987646412448054927731379323970889315065072833283701196400783880772155416898962678147654563841001473612313203383543410148110690923423489998194348696250330452358503572712201651707836349741284515159163327721765960984622403810172589023760964904780310789597403704857413677655953581593334067949124901629087154520689107757624569033085429325873823026064561710688927581178904139416517492357084555713916969331592982546083129426405858316369638382455313190953738397042559014056543158816343523974467554745176864610940687408119546042854375691934805979540798110685616074351159567421191763386714138711733457291332677250838038109910977836975639165770344657939531342308509875422597287223242901548737355558393305211963806688079419679206244491869838850583104281998722098530956678310032362091590871133420575021043204317991062870043987555169525021043904959986035084769768575163620210095177879362717463812901980113895190451259097450074452947453664973328480286608000677129515608133499383483954765810946491861007673404576168842267463876331461590313640209446680394661649159506351861622658982182799711092069188885988639343758599107114618993329553506711971822663373984973277347127894971897919202410924713702356835267327038631459032553880806090659487274374874588757208669233266709625305629945594224522925198867163940832925261228691326455075052298472266646864249996376336796642239504545249354203568677038520823106482994359342259840476301037172807206125940680766825908966045578940819335988201243739301967205621252626049433912577220597909817384917743660880288346142394114503894293299903538354428729906801036947852811517071647250979812145300273218787034885126888817379192768244875148367443031632481845730351476478403283458771401830577589939747653814992214574146842531354945714447575233396044441407496654086229138409142907673555063082567709603822572106132482193647399798323701575411396827275576127505186019044676721199913962404454878949200564791215248608749942051234611041117474307506687797145740082085075244375159480088880999993511890175305153880932223658979968457669704643962075225426862795933159205968485834900643892642506491560105429215453134846825817946491694215347533399812439031361492889243954317568606315048167481414091857393651065099190984462553746174560607999530229555107393437718136947907357993315163718852920842971829464412071295375206041660571788720874126975032991008483719331006208172845712722798778114759633389022446290988781613542659070340283932844253807881651820233269170067031712088080370903699071832547292464698768252793646230235512206469429689923018410545014648931121519698574978181173529347708160135657520825511204086926887476462805744416153361689001033103970215119854641844976779544255149714809990352629949907986237229390473985342955892880834455583032183338476701678920356526850017043934764318793111923487886731861347962771478919948700398396391146938285159276603352876558517233891428969838043395761676922856317760045713174176279770071534643184243918995106089919424762336993477654884500755188191835671698158382641008265316791095545997231178534109111828529403142383786621340436320872459927933346362808727139034678039023982872013712354947345168034470959022608116308621800559601749282410871308977146771859432274612964891026366263397278040472194439181396127931625451491938806148723890663553138199483562226279469024644480665427548915602996685466200833611703428219667320018878899844497094644089016510210681920404132579147232972968585759470629613576308994546213685378600922935175097043878707001544137072588209786142584539759933466498655614534680693254510082952837505411188311846890997792153931513926343449830498897221643580595051592044744783022990494617356202893406031519094308520185144633601759583660245740835773371478474551382992047447297102059669967820244095513443476923229989002032484454471907165215440781432956341528911401303819367243691051469940101917157139049116975134903037387215157552580426430698070794024043890031304490195617204489972050328749160122099880758135828533477880414139309796233557637641330880473293284655327811715848215029844365374445814850608060809458650265031211848917169191761766390488606129882888252452655637200366856120434777093067042267911816489160049461098817314137658293201572215856923122408032580693926094289487419133787282681642207058522652726722910129533568726686323849445761591840153774710509796760739578052917962824490233055689192269688439210188092231666503708848633239181873754198179257180609462067820219949546856775991287991525089896870576747880987481015812326538644487965294312863976330318977955613280755264384229297338515482672208738773595789537889789484421745953283668727757767941884643001571263028250818568847873312163660440874444162453875006205677851846792244435568626470691080805585060473810027908377767613163856775546800432216626689570216086863669235223000018550771020296693411700995963245282446708766205284271253859795558811182142421053671977168223836839857863546471142893996274588579446746747994455575508470724732819408296919149945639076794072627764565176428015296928057852376897527098370683023073275341321329322218408904495435178596575312585980655815154051046950141101514776855194469650547484627414676380061702031337789092983280921612166406933014019057674826236674893980346643247147023629380827060624574521857350693509946118819447363373055600257343130267046213093612975653691681603326185773082378756548048255302728002244652028512427358354825377495446454800558597094313643112520275492533626268117168479847236451118388319258341727206918562867128064816599904665942181206140411137794074183031336356610828892842269830540839249005670850270956657185104938282343488959562087581954715613673270907057592036626444221096471240939033860904529609843342016617545503908674293129176051815010598448168048766494589507214908824252936692339647924630188662430930547482468606730860444063082066865815040211881147093864770039990385528557586832145358234852316720232581086917054872819031718586984671904690280328138465716721894541099086107478782623244271825481643192127605499032824107118432181870744591155281858705267170744721573797252036618507113245918608666724303831217649434741318957675317944234187431550564217111049099625417344805681246630880261467429688424555877014513837541571681875920418909443434901070056334161145448692573951552585933412778343211183131367841980545548027345072301185343069877215056587700815515414498403832113885796061684563285055661494939006905071170334563861144398073209010572293382705541936079266696192517283527355528012626548523173731655133772283620511275288793312613988914769112851769440818738262804144007509176433602005790670988375076844423420118720129537624955346915831731395533000818555520800099001833989972242560121805306265841263713634926877265865510284551555297605433584977602872426786063143456648786856784809885114825299792047615751085172651467045597431438507940699507574176757350799727992386776059204891006480370816536041771387604825928181404805778017051872454575301692354376111778128890096816209561196281152666599536672114715781448721811856499921221107550902738077478421587271454666843034752559964153443237105102861584042559081037163222016932782003942632023042121537320586055747230509198091341332992616654470146617693718891946059346331049563445906475894430884057456143594590953845737668409321651337228820998500018935363293231149073893924327723048506906270570522352377276867750331492407701907021857403768554603574356132247256761634599524745540981607048600104233557502781741857647575913157500234316891667431432664541817395952043275836129430223061604224333130216840782196823662186208179291328270307199673626286128739358855800031961036464085014640543137903848227625570890864033051861541574424009943058438970666211451838153924961059357082107668950580358188060096164722087912242157751869207986766198355643008129286332020165615984006794626243008400521651523859387630403405245910422104184889318618450587064616117317718725896230596999644708185025401770562026682074350663640899830492578911549016205805015575593232729528256309120377535809376139504321764103834892048494487271684901323147427642434448250599483713576766658387185205821987427018925614218421982462631157794723360277862693615231765437666776613977091685283501708306866243529796740850251340634431263982085680672738647219679830403554235205292553853366420976518764540435669297548703683498569540075941320108220180959936453944224362000542430494286902631301728095438825366464881514988310189606639729997617226606502549148885613586403528022855377775434876045984384023241764903347080905748864468630004903029547497882591839365239834412139710456973825938713197558379954916334795052107994011090868232381085944104598300317368253674168735018898625061493888490904678184563752248177405624297191343856574925764450477376519567070544332758352240502580613997357695831846634150827914999697266867165669263487275652980838379699189145269243825716842085062747300807875732384089042014279209418666115465374800289426370744257665638901119602245699813873403896703443475092210520895286068280541042459941849788757014374406667510805486640968160747502712481451516504906521828553563060266144802697174149044211013447589695558732783838583120174038718603226704586345668275911838003400164576790237572982980005561418399181014944074773217016733995599012150881825972493318184250964900952336488425740302067462412255868252230423001874172268503780862343383854705788286442200753243344914170654832209753041716300606003031428872661987707540153977757723733249874297917291637373041336874272617682020621124700308086596647434124673037653362649728467634837674347370626154171664289158259195814619528912492944922840025845970163194712983515562600648506784061414673948012862992871451048923751189473815621990999886368233597409615898593543081436718938648318472039301214061963852029665952342744681987901559798270495582714236774895227816532043493582720158352459848923867783367595478363993948155247992920439770824602320873199449311028587184256788158371621460325940498611338355489220826682202610641618292597677572562187676915487567905929381279857578412798503614892871821441686600711132600447466181166112588328393264813254112443765274820839979322368821837495042631973346583894746658627322604352969019214746584525795374716859372316956795305801484473578966637971529970306257122371170906477402777277131454760595814803887447297608736816057562990506783600524974636517544953656922978584173169318415411597322428618354943275647040807764319337125610529523380152093373526602460159195136209945658905910598283470284043351441456205761783493734396432603560671108208628045116136268120040037178220598212076528005917027116638868232554617305758953860567284786165240190978488120262217362683535162059769852590451748101325496968896004085051427831073586343318258509245457311994756368379522419210695611659202437504524390668795203029377070642052647374370965566295382962800536857584785071092836978702961101111815869683291932164436115356945343020049139352978904654186290598826517792090894492005227969533366589034460785318307533515051411532806108286446402353362112674214086556682412373563739169524514351342630340665469411108182765427515043915230964177593624287325474925871155292388099042967242309724219680635325826634278682194826193135594964994596091813098745416970139511533756376416001357504763705693469481848258013790911200336301382836736506659830854819865611265533193710117584645607502419394980960178419558260303646502156055854581150609970190267604430435872955893679527984681998994578365782991842259097065485253194497368534099565824532033441956093480062213075008705574396446493807335900840847105882224798922970868200305243446243258042386070037835591288188186010265368887014951119886575809990609809409364207795597513863821126531069683091569914527943960933916025710798244263545118078615971768979037963633348803277577064019884516143658134390428790498799303677206224145505826199567439353879012569846018095954663332819758384409667255168433352952420701738603058076142395083949440759725130696743552155279311309690283810174920984889923688227214258491450048289419439165244778330465967479857555246867686962324354034410165940072127944497519407102594609936635735154192100357119660025720496889839689774587614565959860947915303782096037727728102433224404259978910939485910644585944063095861771865836941762958370665398762825438971075601329681977283989879005027985110967876153131717874541766085520240765322963535679971081924461208338416858692093607948662165055701554474793487715007804549788595454717970305299608619198989757025468930928566953503534167058837962281826484120476704546779824513161172254311690126261931195610021210751446987705030597330185181414738530634168215484005900969110367109806296875433456047409970564534115828694514556718974557361536213866188622892549552984686517104590209178149915039068609154546639882141740828414664182679459642749910746277421343666881444273054617485056913298224858006662356573866994218461047145043669309270298009548147905081660033221577675549800574549382505824102926147411725951746573456498043956755157689560948390833093152519669449082503648728403846144516708172728432860390523184031374775643425208656384723952477854747222807287436479219163195512611652524554701138101320790922544617919619619190010901245239684161114604941313717379231216425800674233569752015356598482047129364800413768741037131288786470475675345342807614483366128093090683603509643411229567420036173484228267925905468856564695060366933131222832170578842898792689671590144298467694328654387655341538197302390694380072817393096187271680594451885340885366623016255768487919293620776511378558140710925255538963784412659315378170431721012575213797811527113892618662559361596030859287928750395011281756839986326965426397774345686063188848111407836329490328527186533958609103343741734930191803025402245386267139085903421651221485314056624087736983725771316568441661884905015312696329965869805543509337378892401493624023788027101130225257237208635600529688713774449686597945079281915238931143676171122017073969540328779990630069218446835829188534299647003340056557275196566613691990479970825183263252786403418493885216952410714221990874332290127815700654485403841675318166379982607495184663496368130609156005928411658902213296629651862800428830364562879604429387731610858814017570604891801054849180196574701439030156584993761414740346192375815342588387151429430454550883990296403964533363156258873861462608526237158642933574165365028522374774975759062924218310324653612566612434111475731218375902818625707659717008410413455216118593300381527754886143629557766923622185920071090504860640163328108018184942674376285521036129325687271212035746191335778338502003961364025274459867026337570374912090028521599452711098666437153698570877824260602887145757398285883380315059235018344886826845381767001097582169121471615106788257599636713126444471850065300235984411868788967320066944298060846447043420618431451183617403541177316453968582367434075335012463030588794151637089304242509709519900872243776634329874352491987553798170358733680943486019562856458983277934616876691117985560120270199219993862590520922660027609024132520698585974163833982078197426263916165413800826950356197074723843840738123563217561483074941493342738023349451323279035269729050837099183364110492918456244584833288283968250728920445936532678979491786570415184436467723521422424841029380472598813708873581183584390124178224672394087783766648288843203209664937140997111529678444929523459761764025741355518093709054957089966913536397298560257496080617819792655519026186310889707572543430443675112335471776615041237032566093581766571567192552445183990341647769438474721499128807392201732927974202369838740049064555467004214617954602064579357096651160499799667848610960476264984329373147170896418159786524018974526044437037991694839836139831621125641654490118906531483480528709103504120783460040004944602927406688828494348233410864665607941253668293858098234713674531675909808641229316687083706752616731262245825279008811264716680552248901432773798825291646004893619815567508765244524513619299369981766626751415305069962925642446526104057271978969244241563655717933219122636068852561580278632070738636394981170951398235178767899259566184045873553312692417240589683983447442495520277558538679047050089837425099453108751964706891945167940880658208766367810533028975613402161005149546515020704018520018657920257751194552644473498817419590962683751050656828149392186833531121523797743893030129705121723968731458278903780266543686169007745028640733219076454606459862176233297264943491100277944909754799987891504163344796150007918599612479375812891367718726726574156240282141506757476961908819471615508045295299897073218282797874254753804869987089371588078758234653640883310454976651589819765884745581822300846162297202631077906363913192188456219105629996286156721756702873725432501451689343966107289169921305790323304258544601617130230694214854270361780337184169796631282325476780613171361666916722647460721396019036295145159671850592120476722096496186337730298138678852442602092402609195123048620874351872159598911270532620733027288983506002011761138230086222892522491709893191142354826328377851458412137644619450335034928922229993130280402230925565007484356453369260168879668581484582308088722057770429796618099298077889399009625010712672411298529969277520484137608101122422545769848013570223127261830410446151867949108606523306239371641437750969290154946298423678315180364962018934359869337425885162019075293386809913235558393937376151289617127075236043471631377349981785614340589600437349274833635229683389322139969192568241513359813232360422350848370401176365579222703697528291985864565689103180328038299906564377368783537616188307545569163981130675975699043276017036675228704608072924719410621686389963991214660321762560671858665931197317470950436462128195886789874318860049423390117721702486183626142175228996772186408011440289270096018237215118842152860584001036593499518822131041658435652900475451188937090854996460296154353762840218109590203971960114601353302776855444562176146856748665349268706594280463065795820547672799800329368225521044250333943587840873742149081941510917458899711493625928874259913301701125729632559920799405541393191096799260028546101440803528854198941678312477360078407517759364380377709305840574012146467034912413372491708862418659416001292865673680175490168044332260573103580697838350669049858982913758278697245534022348463721758633859553106906162199627430856740670190467687214803671769641944863038698052061205389958301937082399717895524051942183528204744556231778548370714210343769477491577786772171048356598236008754814000541751441889478592729891183846466281976762774650115099388320968100776026772557141116811125303631427611025673005677687546049881309387701145053868023507589492423459572796496564686722445586428804969346499208495505229792975166748953248740359573736204783115915446350324180477854582810820424327406971482338674490595962154370119467551168569150031623049080469837615473086238656866115903003758022875271220397836768841979279297650470909961723833364124546597715887621176901639505244855121244672090200194689096920627766077652696926520155986463254537524885201643105372984448660598231148316876792058686875555932777301237844591652330838999531043183969695318087214658201771716225647174276088791100501061845835394118752043279245183615678116930960737919676701222203807286342023804300818137674218381526829211389208383508067393650906363041998884301215120146667034739431329299517354059136556491857700281364330194207836674064389983270676378927543351854587711776286761101171006454489021053302436763405449192641998579894457769342305152609958581295754572905246157184629134386868216149396883938170442905560765177083864630422951080012294021701213147477481080706108666995229161753922408100135802909757455593491797977554431344459005748149126888055215645677588390408875172684607208748206115164404216306720205631270493025333450119301842361391136470620784359677038935772579565167770889252461020339034976213592852396386432119923181803662241865050668822084357034311690698816624859893630330492942896636809205595935875482380267417319395917927378323888413339882539025369255136940532353088480535562525940211148389301887393763620784547660792735849644527094042112663118516319240515518596352565239004074478276068443837962236951193488834099920340562597127992914786263246514511410138119656515369223939682851007748008814056385540944038728347111112686069119970146661204030634545558958921432453382837993671428009022942181627457846156148133425438712721821773837152097028385952735789601918290186017105349905345046657058455471299313121799446026131633416029797744222140780214948584736139007718912894024097043429839782751674835463210427293682114976226722392659700446995203878035317839501308560623579129304268068959304705107558982327887909436839959354461825824394813799134531341963286864869530054176515165677145400613403583704599393901861484710306135319776578812210860883316268210717144793348810610814581777122471623863629846968315909410707114020553598726791450822411511361370160294874002154947699736067628759075013442635503385460120660936770787831914185388064977031144752842159897511628163716178374092845576500573586549893598865126365272886952910110017424902961843968863349173160649045712373636704532823326454834636730023909880885786765008065214285398011957550243627330379441248860197629817551389027182977609525179079589513096320469209058903628588061365393374717321065169135329835780328993044550275727556329292248364863179988247381387031806367051798300002449408952980569500197609582054281368588557383494582049965797156368761671506235641258396813590006148441579375706083922333465385282145585621523466826335486004055434078797130489612100881204813990390995813228274424891384870901067061016647166282549613856046885061553846907481099445737689434904449645385938470840594513011988141465339798367556968788446008075041672582814196594575565819850014598589068791393542475122977123556902380280428189489770607605345196411368892068381055265285467842046771932279017400904231545574306139316881620155851556609026083404850608026668462194141988257016373799776828292629036163163316319697450249538383023211148690178245175336710361847898439122954537357673831180772376520371033939893399965979235154797746497868588119222184876277952125450618694389058809781777899505832862639391968014520791474258128179390183211835907605035894100908378967147086767844546569964526534775616633957844803309846426224017810645168868878554467132376208471918488983235873007282552805172188009074577984568234081962015719267148383498300937873797361166839462584189793182363897169431234382804050001129711728349812056683322025677788929080452434810041978768857958608721189313705643529693441532779372574734596901410276523024116980120236200803920130286396025188220820170756274227306510947644657444103179294548294999348814861194376649775076818280690978039507749807268006438933252443244267122325511303905781996434197348746400029882929026253147706593048734238648932511174252864109623210908075596436797199269282564592360918059971373069360071775118439604199854649537480603405237160528593298844009016440562140429652002660642418265532317714929897795776386419291802556404964064927367933931285708304683865269697904666196647483664790347719559801807284625289255989380714621656275767412759408105320680371356518574488872555779772967686504243929298645719486281448806116249402865384548709008616897170226985190662410685567963416990219979750256111985833432071596192356543444289554510861016929101971261538819453637674469204118972756863331027401054385750643709032085276601180337309006660990646359489298047289991669919237985301022998406169483645992981221812594059028207898267510067631390775848443855981936954704253806122675405666340421670386549288097147037499792218350442783061423636952242211038642352792586608509697784509561909673169214178105466057622222219766617249782955086437400900438769963782750490587151482270108311428166071661932326838164539496385392943244502821991243607244718160735733208700592021842097003638438416019411326411344820843586335456538845981263576721990057099359625068516098745924120834688326033452592782863973793773279238936824067475782057932625550844813672709373663791279881304844863041479877637339654855473346979808034472471618634944858422851901486241909862042205613079048794487689362308869348710931575787557463379028465496193692264240983847841715678796718503482510191470438955086275019161493923663518233419201775945644811670670805017823919883939875539031219216947123159496378884512833521742701513201719801876101604016535998826679575188456391674595022990839337839144159849230011819159942378868892617139307853015059123619838841190481181392646201689753625841267685066528052853469719083510943360428040063560963222445757629132187052435367604074629611088842020588985453809483420677028114003644832487110412023453465705942207443300610634029943364319370843278374791758000551390337861785916097162868959035106068132152047153129444094032833688796697424440063950453319168689483689007152486552701309484935091348104572211085210147266414684823169813930415981178830493731612575494171566804120382753468719337858028868775769652694857741181185446754573000664677037493182297151344067383027289521853445580266073886777498929328083615104633936893766095469471042932128883059938521677337791879236808969047879656639803931122417210634556731849945894288179788547254235758148441033302565238094775577992469831259955441220691563689083932353383479981107685333712824269788033551238139485387963900557512178332691408741697076930375640385545616016179297370581949033463274074664691487493165368787150717566802297054762422777899416339941110493065599487446897898225616035667951024008110326964128646937942717632654595352588662359932538438735530118971544200837087698301973975384875156288318429676716088356532283493801034817978562725116397448522097277727874470425462637227151760173907908609115309713801034490042268933092651138232694409335853011726424892887636205844660442662178750900854779038371611179397176736816676150987679290461268522822467182657195951076573361172850368101684390787770161760341112890613180915455117175628841948193461733298963677832892402917173959970510722804165991292298256658039169269075172673761857409313538269970755964930415425780718902916037486518839936732811161349752195994837336721629416334672210455944211277454919159706509823145233990215567913135650198691359906483527229448396938819889341959243078073779071794314482089912877503149838235087479721654300682275765497177106355425481370898775670557802627422805956704191163828187645195269369324383616696168189966115326809325340867962305560832380932117507093427696900835688632500626028222197282258518666747059581494388015896560454269724463000583015094423984587965945894157811101342278009446787587887864776460899620873618127133091773883595231492468493244497273035743023111569150682959373501717852062802442466324003466787958518715232150236807480421777547026220072152181227097603776312957185388910655137724257685825679256110776774892554765644233666966156066127337480534214536080822086089110794525107739654116076863798394796945401231130184558103535251355435779824542262142503210696923490170726242959108619876438028095831708297816154966514524912858290052844816922682785538059030216639990300830791640902684279337955405604592614556225305635630486515926726691563668012975636952020275042560064438389778820443465224564071532820359700891173789183216632596512638009341402659138872863777816982482077578014598043111048149769376692809464320469310106520561877049486248420646372294606818536237719804405414606312025256752346893029466527025346271653076493319954330151208961701707137327876043533550907939207901584340896757576696407916297731018335032443538984734667528598102734406200794238644199089984189214342238997695973464179286007594644724781947568036342726110041453023419462178404456129801417642434183273411254914733213491596329978113282991377173135366929468527247589802493479744513744798995978226773993928897246037635898927892013110592856108948600705295335104482399107943305197841992025228990461454683549032463539645508099000195468818993369963779976195281480022421214771274720847626399368848203668873543264414576063603187458204465934299281268313707318418401507258157310398433986080764998479942522031980394075910470780009493289787682169804423675339455426714095931248571377120052593776582505069522242883892793668919987542037294101498390710790621996460024931136330167407747533407907026442722238127786955330529788030867773046440272340772699945894604109175916340986034039710219302092411401691166312623696489714344859108673592983824657861516605127968433889847155219148515888527387379529171402723573296939055777761907535654081965136995503320542432531527286180427881052451656090474079262794152316598201488486120522399882139170261550267931191105688280379026531200294265907752886902322306668524772398069399427379893242527076890845305023600926352820131060950778859441715113192777888574694648152238020143346364263053287904354113027995614989997649713422772054196900960696679611524484519084125496750266681670684615877287823492403651027048132432980884006637218329840869694211996872141663044941547691766574203964620478680580725976192202479983020153928311275300594630114420973194885116082017404565514812212392259579543648934230955308344607423043739469600960308037834826288268344717717713371937469519171644911028656928942200300486641116926226145533026617827031145798792881982986038776121980685267651272256111054134187941616556587627164692521645590675993283641097358687239980070485864624671579204483768422611418234053535388261842877621977595184949817109814071932219861173037926741258242998497590771989979093196876007214311812678375340305937417814561370075198806910791514833793352634017344755465314982795658015559236634143692639965236899762141493100065146114491500090277348197314078306326439417644282389481631183674606671735651934425423795932696737447457676033609128138118316392471965861443162012867328299586006396526269584063436658878039103712820655585344063810605360888181059718932616567639832953907920870491367896560218831684390365950743063394446097452201668586485930658313716025794450702207981165679289444998954841773831072535314969375636338498965253248419849209625346237193896928114900401485221126132948784168277152273253215712619783321967318821602999019001480108646746964234057698807437670268765860071764110594513332783244992458214674494493064642236919913733947684630353582811656505877014920945512859556388946928212732874401350628643377217344818466243569586381337019367732076239140159297621257174976405465762696140707239012737519697236361292474583757488777056774082077033869177828108470677617635005689544668562165874277944246849134030712156584732153566699085360411296922919954801110768173575636349825806453546340032959966090742444591759318281809624779310570612731531426377364306964108474832227517426912761502379192281821257414099062245261304714216449219728468151941482778550317695907429392819955741687384005762050771291466853523138161917366065006923417425461399752467458883482201576401687566034414727450300451249412379449119804199156301247789169079902045626042585520555376133367431502760929576178775000567094887233553919023336036720512422482420300745305222394093432793414940608103319806405062121290202134013453029677751286363692835564865791386250131818862467462068587159720603092122057739850407514034022130903446058065065136421065186149707619330238348399824497972829820570220134000205990722190974686129016043833505214837628085560475132355316976681551783900026649077135207450407667410657386879750929690459176901441540076042936957176728177799976561848347592220613005402476597339720948777565034250643440838398198999598566951879129992418700838519559203233331810042604459550304393851328901141292743285565495094993839396539767520948717224621828296232814709035706478320111812038356976610820518554366513831933340303514901038783048881967533226732592090324424519845420091444326401573382818339078953272217556678181184606666915174771359369469680980382647223321856599009723651463456310064710738169352541681103183871977986429359277479925536747826823214780473079046480872557390353324555709961514680754689794511048458991353395381154763000086965087407170539354952824385343474660986993541021497396907402494148849895512001090289296732210845593256320566420402574541999626361126917865182061174716783171600542771595248750076595059167697846209364270345120702465236354482132068089880675505431547450927563252144385957605044461907832561455496833315139753737913904603618064442123937914514164703647268260901562142552928503079542485787137203757093137487409350299412164014657609525034368055243258516200106864290083098855948300856223835817876288876245151927418846179556565802466322451430886723932161419272862023290762562387960021852558289307748697517493581873751285844894698041881276814406505819555292775350368053134329563883389810051453727033590819732946730591005723698499224354940292125929282992554422991137048618382407330677722054350249947688972631290334536480971711266097718787576202884400680192048872342463473702357697559308117048354150906192184689347799368161345133798467242835136931816098820338865926145302517105710048900918443065319357496457159527938186192818450892629608415451557548029976353775908242821785187423154690021395374913833199789072845567398004456211156361347329758153634265494734949790660795164632662639588444284989821439549076681042640170441565602867394193336149943757734731670847925141252292387066184343713740713665206330104363476208026805442125973634521338051878746015194394538805649991566473227980933144588895607685068399508052303209238718398722681633616204025714553148457225661133920416613797810851710290067218173527256621693552922833647360209177996411480431418737574161055290941200734921164439445947572155440088812828287416691492787663722821896592645806078121032229175036602087669489237421576853152038444716811306146644872205395748733611798778601448189275287842911882634909861600230613470191728949775786710251228531680987798246639769823591128270145492127261273096809557329222139662150634049517149608665770144972237097977837513854750721796291817711419282060729995035288070077786160217497459159877710343639459659364079991476780323317839124255497105458568716433141369849895146289310190831352907553372061884790397639338542837382896498067594329738478699242614207983319425050872271355026336433520590536120264261781342640182267870460704446278501453559814811110445739816246573632535353410668771240240315975060016961176122450730322835402777344602937831720718235485116869738365920571522347203698052587410118934775315872052899203343860242686688413042083572407797175537659245133360714851037355898474816664586217690824595213656916916497069527203393363232962283108595686119409213934926505830787508878765376019510760566557781038085198133649607017025908683284590556006687641948207596277653325322053106275706413282315070920498817619819710452474536727241588115264927541766677818124518093206392387921714926833991001634870929720351314126308326460764454885113053503664052986531004247598212595040588150810927328479660512035179059960405924794077705276057367700171934800978015099253519730830049203184093488196298217058955388396507383067504631685608604380446701839593165299200043355944353542935818433522096917848759412530179994401309066146727030450589347297888449462736593419694995176987473252061468838226207452096131184173188834837546202882802547613202275306224820661971072134112138244251321318813451476004982425981316551235544091633475056744579814388662295645160793367241237846783539349146928692671814484918245583311681417650360951051602215096026469649002760981182604392345737938864885752907108905894010811258658431102745260294572269651414881222286271392850249003694561568909177884354687494607020786343945943708997031761125294972888219478548831825737083120195800582895835636959163091515427397130015041406629688391482502502549772594091855586370858733204343374184429828076101129257283597515890822133487047842493041673667802260436214548224056025180248131945093609672171735815864063074692629829029477794371893303076321573825388087772973744861625184858815288217566287524274076406410391470422068169727166200501579883311479640280926324435704882292822680640780780041202049439284173293429358729172465351889286544541345060223552175222925381534383366294798344657602397476714441606111369356313811992621417156032125300692085319799130683524542121226823439494594098138624077055153651477612349659779420615138403171772347473947062837695852424561823398394580861001939952429192982781143104819839300041639123370327620394709662038899438441954619960923331298946488623147421178835631135238814008985123602728402607568814183438800898682405932649755174636964323578586997204765693876919334583343026124496501810830414666789980453498168727095568641240113815652496741624468086446016699051524027027793497490653163551095310983457987702023917318668910245306338723299180158758033495258551376661290913186931233592188202964952107744194999631313198140466671919266087447147404752548425459750138807562773599317476126573418496130525945746711156876459379099041831903126546157456241113019810670493236899332149530347046040155969421315186238501174092140786526786757603917051290115354060269083961415196145294066851669961885839030369530964751189172112848510577347158675529523531103340205098738388136238667353465576511582095360462059858685640858641885152962530098456218598624841448071240996062093744734681148915513253332682740383057235949874459264720082485258005355230995075162866691604688331790227605933115069751843117144058978196787751120357496291722357482948638878479896177067557352518719678309594792769034102468327676118499656723028236435905183712310255402743794702027688409894683001154413752113853314144774012822079469042167113067210897492023626216944105768890757685475567865409848930927759523278395053811376368866509827665922478648113071555313232776739122553958860274757475807666806928094935449923592456083427686632796988582152010776594878800801329810377238505007823417413189528103406386851275289121865545123530812653584946370175017465594439464349597638934595128510947502704610131780775856988416513454500149197074107429362901543467189472113687101002161065878021738042772318515162019033111233269206886916298435730389315018118657923194181667203643611664470243282434891960392639610933518237486675595575256679762111149393112208727295072277277864975536305381676269425020697486449853636617271646999876709897093874506261133260022167108203528324299628359934074710174098481432038782804577547748185772319856353092031956599395838013188689333560137968422604474044630679934105422406318854156841053071220538437696031200662749499172594585401611435827630342472214143903317253711242212779502825644789400819682590659038094932182756216485374295661471627496727409497414318850618866022591572905966738906466909255485562170790938998946824704098546308114219121428629409165661319327983440039157389667556932053241257813388438285537628693012530882582799814794278268495929735343326907677617540655605412557816336638961229874100496989770816187688288512690272170141262745087141458898222330056289456130818956199842908795501180958236848659682442222593914866788297118467953612099381556142115404597681217595969208262739944146925734088051158134527112151423376688396023086261398776215471517117905125593469212919026995197467781139416091398444486571473329182520721225512708882240166695602573187615267881922445585164378981584903967927842641762023169898459887623563361663585270676874730103105782509238656789560226035321624786701547206901558923232498033752071181210323835830603821239859812254365364437945663000078994940752654382351332983504248127664164548900700787443171508713944152817841662154008433514659878737408909443594819440852200648127921398251618531566382894521957924425032688907248182189222502881578555034400820487222584683741745296824179544351622788332088265149563413713130192765091793256022683457359053301922211673526052224348555542318182321510646068096396599609963118936470191663120993005802778281601425120631848281658097547824818859734358891791826461879036657974470446667486889263774215016702341929414484733637965400788355571756762833013328901153361882035166731009554087830197497907546673806080067315986203317559179093964938007759623708101040117054520574493320675326335505390667804169805367383415649146592090488746549831289000414134528147835248757132987688695143675281623602342114177478313781123566094606636623529431401544054008268978586965672977390195011219919119605726637567835496364413312810803576384456789149231041773076225806716760057201856406364666868567402171165731409095749776223406254400252326945072247491080442795128748544429792341865000303113731323251999796156610673540318382741422808005560290774208678124708350955852636286035891127750181774235555419327272007547002105882659067426938033864927622020759670486337114638872948634926452357018284269566463031571156153595225987183063866025077938873392905972058881249806443676589379472448247621343112685131094301738552491836960206148286373083783336397396239182705197123297778418114753735805188182620271635236422462302370525535453178483042824012952115436384285543805916934477025447600709377128264324827379525953492546692450644161295593045183732736660479515041135264650326692739705689144138974982848923921058271645323221340151684801000861343279851195066011426011657582233668197231231791760318890769656882663753844500504242051576220518172509319456413167018671700258420207056449812303427722988348915226754365246383735056674073398828930934471549739314446306682418744827242521632037774196911526894404466014002419607795885923379013412731690992563048650310528696726441872701711896356282988557005786111719065045624200418400733939283587595400332280413799719982447118581788051608979751710461492563916415319805400759212213297320221527968671632311647582616474442550991902938981593061661873161181743804457801284703605218235674174726095196623743707644694468056597196871949807821662853896093938141361436660977780559166932890560829635005821595865195674554337414512391660445566275817442349631542432895095185483378632729026930472781631131234544255440601094956573287107445679273763047454358253315671143360380569850319274171381015897491154483642787514565496810370864634782381751345217458952038232754986079092277979668296424815610813811337333608417643686978000874375348643535031968216395754668776801366601054425463144721016316242654440056375563028193337639924260182940002014190661564405138344249936220168954542633278274953399002924344980337544504912982324088296154819237818187439570796645080095285539870476882512117969947090130854400004946815966533311036301718079887076577553982217725029929030761687322385121714926211371701110544387962048248420223931124779219726775931011451305228071429362499280487399844288297771221431543658965714379920410235942418176015929814081366384867862781075874992546559121745480683456011458814499525312428752770278893851737332215564735993319960772659844223600169697731876132572081090390454860240505454946292743769481304934342792685557696966486141618194326598582858589851679575098973246547215344477773924698583937941411849715892851615145539373151207349176116100925086338032596791330344676951907792981218724522455987718068780265242411279998654535608080438066277471483525059310217751030780382101958637116057205873823389234847962234577902387933626742463304161955730112807119375319130077019924723585238190134454841928512239824263133274838560310361757527432778399013296426428389997857024643028713113822819513699213236123317049848287323346476619190125455689278752288685305521385427192439998058414055355902617802466726134633752464012714608859678226992467291781059255275028580446766899175816216898083829993966595977010638767875219951691004108642633456759158551166551306399739762228767989373475777644789161018637618888117891874063428702219718824313725653405914125749730298317905230023974460822651892374352843001954229301768802729427059886555549152497286569495247496312366168285301054982571122841543497549121626994099251892083040395574108695840731966297101340544916636313877463217342484510984118617478996365961667735977011215286298850368626290949837782511147212316798829081216425933638196901074376669746172925709586494147933565096093991014100256683193689655650936197650098628678719274379452865511002003539869290836879134369437923696605671320943840238918234524780984689989814620608618347168453169697811271118596270269891238536878930752289062358275976705065104489865416844170887666392882493130636945897165948257325698448811034918140998654036945756100419335861807416508530726892349694091047978454349904963300651469666283817455401996843260079115918256875145546269631205179465803802375215750428276388238234009792204108866860072324830205107732940983872382134445926328003002516730624307904389135569403763816374258801469243815150117685203706014507258976531775081825580083404359969506408443883018709719673099215921117822145811772735140950432921530651305941897009439957971325769668878525013333491583096499140924886588495195389440130119914353348247281298623695672890860040010632292727362787155824029818136383540779466676657382281299909608845913147887661564742151721899802243137742326135213497107858240492199918062582288712961012613172853051335687251807676802349419596785571015311324602233107827148326802386356516341356485736310722059045956269230675124802503122275567654258177323942252921040344455278045079090251013688716721951500298406068881333429402178205607090287709562281393719592641203738653089951499244662438191741960346617626552508594263377489753387982037140651931255665238660506164314664974679101092970868910054435656814560650733075022520432221350478119615796519148987451780302706763976714645781011876463314965531720301265858800896524237622680241256763871777261838035573734373939385731347826875245035838538708924552723495081881648814146497566019778670941813171500664508792659206021765617918068965999280704661449176517261113494234297228043971205366603844103817513754392508481566455586689139160570275814132710162884484590911692270442325642169501893453046759687197926981203971652665835356714983790361309060723548579587441274667713537570854620679685690014000280707474833376918172281802774356128148902630804507102178019083792276956000874061803215324302146388801923345840977411720748174005110351078402385240503351191108630519070371629583010331713908228890202305744217789399246203260564629124785880200985859259196363235519486354579795188869328675555821026405712385208025154997075035023087832722948054776628921871529648643418314097620341122928467277672438693784595365572615070136438652046008256237064345373486908979263802547422795131337773010577218519733670383636824248376885180137798581081826183732050700973814387540245111735665428245261916900968326696843321821980063197907828731326178669693141299586158487049599088394340941040589709894962130784479107343494979998658962476820117224936033437482459063668640909879740770171904431219631093105879807039130447037465067403539519436448266087117265677253603108018113821353333825580266338062991040869085421398811784332309501309975904905906623940152831000615272547087355193071442336981310350262035234893098229172919877257206466117358433134309175557150822388521811717442271549674666178862193805964821341401318688560006762794244341462861960323747216649989052862306960385464653158664844431146861600749227395452631020162587681517951085166687964828301871299066876756739276015128086614285114831593034110748000248146792823434149582987738199319590875327450620347918449406104729028472063452509481695938901382003563193711570439142450793122333655118121294583298666042049478791377372137390202169304679875932040629219302788474446630926035962532848745554329721601510628989398242942552698477659629945998174872937604833379048892087799815670320110403312661093144800804551462355442738186069515414323386510457075771312703507333087587920114693579554675822421121924430335150614893353749268161949855888386353365432222290994777749378470021518965679725818818125390046444216864153620172389047451744741791383520620464522362064759290371159396647670081259994960128636946334581196923011473312667797603637387564190832694882273591395945321153797471943307624543376279886806275172658296802012916906566474178800135005190486211906669980829879965961238285413319708575515835730730245108354371057337387280591562330263175294709133893719933059797933873939107491860099495792074971044235120256119265911820453000611643715596404030357119653770443712201450870876729575140421721591100774852358654731283676434607612068254959330627898717744765959368420697548647762210670050659306258929405756721492113237040211804947749846330582366975909548254340012865300039576913259046736187435107392508607007832309646875036371384052122454565724425969131779486917014932838942594824272430542786740969239582835570474490894581506486707205522366796240291295622348725091662824052676420522502234982085366725038422537333034550620482580936965442287499387363605187759536428734619877632079372027643034131809452915860534353171860233723504692180148612991281132998447751084265687866041265564233460394761706093197256136944347369461937010705884931535782344356018084684822871172471078905389827094586267717421460161752502989650674296546377121550465213343473776183348093605141177943980740922871013552424167307614344969416644509799709154664528383547382045454237059820128342036230442567394508149798909940996052081477679619917208470249212301992500092054747299818761711598385891477735090823390479407475457179800780575492004152200294285164009463322337390535331046329119267115090038721133536955442207828024383679330878800633984348891572674146750350970939959658029132469193270461964624428135057953957915670189041016430582159788014708346568339895893574201025657804841393217540322201683700406397975194916315299734960461785918238762790182159567481494864357994313788242403527149547966872362831572442261260539722967332064327594705337792943453224221815789802298624831796845660641388508970886848010125580354882814555845634872206365795802966275342363408149382091643963737449539308879521155183226527296096260892024990562020527489841413843441050321014491552733313454278584561321656923140149700418329578111330019857888415059980970239894962564004378802268017820490071277683493125812733978998265927865567609967663779674825283384543389235619318507294619549264157753126593804373069553027725658507352447310882274180494683877380524031340140506149223623511808110583099813148189303781384787893030759470792921643733027827352627873315323235682170360358113095279402884599913216201738717872127630312623659757890487120652938149587905059066575503366926786690706509280932430326681029675010994304838463641418722531080837546520815710527664202365226381724754741066679970100320873076536258999147459696210351181989778406081468012354909956272806175894546194269460083574847732271814957489899227382723984653132295402923220334074003883880364976120435106885284742072573175944669038898963984842047255482323395703707987159948761273137975896379703703520926329256733897431136692635112614505343320370736740849921844352242412488882615571983512649814353646216040271627883048906723510436242616257353607294604648358830860181063016590812735910363029202212489473815560672486574024194424631800564848341073344059854904215010353915266471718136568513584785128269786336052290752494691711977268909333042867165204935042343734040317120743384924618776432744880123224261108547503547804892702739461109152353518903659291834805433097039278067926951654296889583272498741327123489589164019306277148275612074501320837222432425360905054720206794772334711763114352385118917421009255228083587860468603930345075361137548023163334972209979915722022128590880277112987082296534294033910555768387797144541864346350786250030768261135970765703996416952119938286146899829129529099901226842240779758955795483889784353837865499928358460218474378132084037129905504393420144804027584991850837204400865874136275032201347453803489064142180804062730156042938016450816629111663004961516664113115769345811750098130663232518762429254958847956768502056775371601575688636066652544753247637465873236292190023864621812693154195934326545951845264864502663755772337699695658711356595178097209859897935313820071124167702574026228781225211078681589176770929712116386978123204649563182253708458936991899420200280437384545358321534485815331721750675627156429511342609319224452458944816330765218822200760728374675210971604914090784869074179074991097441127909004648221781010087733357858403138216618540378529565503945425130817374660984836329346601385666627001031367806791853177502317770575653768846391770603724644015385103159944205832425435145850314248604392506626121738374707843567497197924444329724281914136123061001898070382312413180790951470920403302170833310298665295524277126892504653093819096982508675780202528715794573615559671207655710536705554372126433641863423597246141198792896812212569032467505187761281042822679893829534884928385691807287507604495631609433338733338925984038093668139646578952364679071328162118426678345953934348180920272964467020443493737996865919539126974999150050662844310318932214933538665101124266060383567889873887207060659889228172698266241494305083789692330138552893723838085143629972219612804955444784811359864874111621290234988409125207999401240610015488576103110772915556526608574450570157720228546595602938965813733859230286206431576771473705742651122227895121960835343079869749513863199427702257756095899729214090513760015342789613807955467187203934237404085180214157303305356548259733350872284957500435562647919082763895521473551680525024985521692595536747502742474257104925815760706232653711048261474541578208958648843515890220276321646548199060770842672946009865357656099878406537392540107594470586998975310823723702829484384408875986962071476558034093514577187316089043285227401367469795183752064123768290774130913152988300660039298413531748081241415830296740138466864652927306924707919855572291244008238405455497712044740858845112427966384779354313209424552598931691521859526933538381434536665967011766580556432300951248053089670037079294779387555199894078894418995717348206728063442376814305048362408897847471615848872475197748715292983468195456370735908137903950384492430328051232186513266668159160491250641061777849219184098150550345409450283970808945991122661439740109085302661994376567673282091548401228421837718930940890472686971312034781966411585497412448743322355171291962755687317181673884316382283077907885978097488090528325198000734468584521957948528645659916542101934050481302013930931891981141048193077763565588474625991711662145891859942759123693315225145823710844180605729082507692128724924214520974022970436468536965721607757839263992975529819905758665848845629715126274182401055134941970890343012107328421566602134182503199426153598361046595061486658597459418853253097280079440945627499259358053261487278615495165723140656448204595563703329918045361029620517181418056825711828020278874029477135971469537744000166024608141968246422943402642920282709479243737328924795385409015427034489510384967172426652609740824227763760088581227037367318763287068315674684391476012165980522003542133155002213879794464349154016625910915928281646197545550251594759571835327064039677292576310230599456747817101103939399679563574783711383395719991889262146976676490340902145559082481598811921237134222806400763883420750679667638227223652231175419098869971418694302295813460253168164270097625342514160702243256355468349744287826533643538539555527877523289449869615728754739560333452139847078986294999154078501917211042951922338552472635400572728913034921815522739485706414428278586076215144633224547415142417221611667970894437865682894957885634888763883578327488759492218961338008127907176664773427420884585983404652852569754624135852578850858630469933488033378642600956400327176907179177538219575963218969629470375568385332562856885461590599855580615231347946667584365190722879205494786980753755405997012508772127721594505243858943651357386670108150812195019856785056589741354110178621567428246197504460595744914501972162468369497675182815936965945693620514418671916513267990821619165454701075936713365978179840752725007561452963707416963084661595187350357496210753023517917941205264397455532262608901701822566988311403665181492351827271147874698910310855014087384646477918722508494471093610641271103654395184316716305271550030000826496143143202593783858848693162227410328170115343322360166244822251865875222860287254058326690609547058437762406446147997954186958265844571158810286045966147017890816439699876862761667045511852576495364329238521835622645599680543877326076067010040889988174673084673495973114301892112998719074217457789398916903947818260090685304104390795148279920331667573168457578721260642054535369343232374877960069182072296693249661612726017511171177847638942016850268010533630045081359968776368954778959369128203819018732826803798308363428704370699429969535992640737261806134228601952953954189439331526999989305224607798597531944875269398636398871090746081428978397621251733715831579184242321616590952681435428925524615584452199547329149296647638608433888796387428087670903282886773338943890329277442638084084463758720158728595888504066099992920832578717113085156411472924895872745993079789686519412825072167530520179188340307583961951668596604676661631048410899808680731774458054806564458176978440548412846394835478566648552690935674354568848272179825146067562313958220462457676024355007206078264410112892629301917573727401493059928763516021275286009968427159702246604800692262074927866970328848932391258024684057136054510860642374577137623752260048375101099006210487386436107940636545169826706637633287349436290824260995902638478997854263685190784283460641004351292697096520651402690050133187927786384201668889794287693104593360099953802998235569845125881637546516477352574904138821624247832650887338067034955558416597521036362182530997398219922656290704743782538767154109926371442847505356407079678922607404259218194204273681047178904011883254309223051439998250195846118828551034781512865206886863058938917807693822146764110437011005236031592857466546998878934488676983934136617128522531730100350697444362804176851562200928545555233249043983540698069242181777462372756405893887228587292448399196394928553351731397591011672457147638425370244877479249689606563457656659341589329826059240550515023699028209661042915713739945558968419137812175129684760109623179787793303950801116923078023133776377965433715207965408815927809778215490886296030177939122261999265372067177455518841739655040827871040759202557873895924155606500695035558448405275595056483493594046252862984199220534671286070880841567662633052733550670088235808498292268658336068866356548668913459467347750639600998894094887982425734545690711315335008836438296738802286670957942957176610514775580551133764214293337651143313940546892079611567999656649982517514658222536077056950609713764214993930336608308666690253473372138042877371011595435548927507487494302435415047268537150164097458866380304437232855409866466964338613124288014543034358806403071479157252541044925469637091744637325911792676775933279763625433717815630423229933212369377939052744315891680477853086415203672459099597601833439155135407393712022928539616468395150126659845744442649227924582974528335971428827080368261885939199863898509085199833506718305842526715264684396055204637702861777395403787294065814713919824810372794428476873853607751635553982386664919916199670571922806425610246992579660447911119395912023202731153293584665874408234453192499681357218133372998205062816693033153693414513291782956821931816232873809143642077872545890504982169631030707758760906474097664220076742844767934777982725228816975975878738229950264225461684873385707749657486430882055359625099914263694947800004475887966757943971750326273669075341518824596305685904970648256900110215604405133005827329875587891599511672099863202088582335597790362881563651622065191520027602083798258553880226670103413631119791480691908426581607851375797858237831051670852575983165201949764230839361957411169233546189074501939523856193787116182886628578997484200866393654505569931795092246820539699825044277760950100199623546609185484157463007815306816872282380729874236785569064130469693072640881008227243499569735945106125163282183674742321097345400065522571078093484293684295899164135932358316903153421165279134005751870999479254574417711048604142244156921572514060997685390922143765980258883733487876164106691078917476867137580057561650180704894802214093274999423297874790306509335888424139510812472452964360914192659464548560396856122963459726868423609761439213309511615546482805265786195053243816362281865439633688525497544091158206180963348490594981640115325652271847796092785550388119604894798746082812315785057171332845069590087474416374715380004928778920506610414101043671307480464435513129471242609039485750078554723503031422803559416057797124466271425301565697441317417257817393861684381859673520395980367130072048139811920026488356163986704814300407608240675522972392571681134477078992935853944388435417460765381189358485036691121138796970945432226190816852365898669970326652611892507055311439761575325562747434767916578241501836185462180923454763376911426625372631102176805737578916223260956353672677508125862634255925933123131737672091926518528080492093082157014202186256443686078634687093941138223560737514883049850536057280407218096168290545600754713833003939232290440249020829022606642909872165056112336689610829381548285375422151713258537888102142572760658467975119444924783776464455145658506352434458546272384397752679912274203362937476952115275135525214380768879601289951415201915315757230969573315965030463265833418104230403349128276529159521048457461028549833699063763264080886986109703815914308056486785407876450732994637863514608868658742385825792314913346576567357566360808327978005866009819046301989562223601329556506671979681180744565747458972864782413311977787046458140623720294573489239749870577042491322806235196845314094853697877348786574649813109977613900713950587541941069243569142329743174918617331235214590281229767827279117702327495438937734766823365164528474127787426058757028777009580940586331958475946416008885782369590094163269182676066675219345854959916419624681286470033353143948383746196302005792782325247882912734044158594159306409485046158296434636797853242635039437227095178143174392112063483609544156454142465884896637372738269982202955782675778700961168290684826909609225810266376230582944082376924337524938749427488483379258194579657075541203443749594435664545442567012791554082100239585032906700887740960038070570385307955841502217475433092207411453000418814000187739544483495458440219269613169184212394288504221988323355442265889997029173479253967981941444654637096095123609539525038596267384480868746313442602336903937598594954875290106397741713801321607753800075929818125096466509351732622277379074603209348642758556837102208535224060365619055131845376585005965330299310023211542307922078727749863364856522281963913380346090852998051338833273855644605256419992361641882820459146321060316799647218294001618071314192041473114522102446892295309289174103249698882770455363703231359965058829931208314998281813854570973093672632004882024408589322521032574325040185423730960975738151763595679872974878476331001917330687758919926976923648542206324342030966029094292784159464022182586062546290837924294548367633662452416035276327720156422643939808174015382305671645746168334057841296514330076848314852483594233293116772583317000383728995108998534404251098767413852834345286268607342159570351523273275044668722682372601271913362816964036873725734734461564365644643162407879911363689882228500542696781272206640210987739133919054500564056575056913070368508890309681788061934992527507465487135580722675822440294938091598658174726085989359963973684150840797166951593556697950373970397413077886743503350240759806544618081023337673707869620641203353210714873772567072767988223751244638151787112981375241066652302129477819154432123998008117758801364106515409741925783943046543982800630298011686369906815658642180737017093904910984516264990918281932627726412510328854268894304356834825938898319780288458778942540175303407641994685904864388713748071646447176578577109603690007379112537757468453008785090247284794107552455650536085996439425164229237004491783093023881201922186249679857575261567938971880384982578746207431682154506631708650402865396045702175802146287736259691534124686313671454584755818308498435322435608154414542757046985108500661271641683845865007408223616394480885632610829062790645195491293324729143739337298196994047873684778530759056691669068567569161968033049618357733021782021488361027769714181636205848432134843874429455693801623103620837352766940107957572344525453535918197267878871390433288682234371340571238879223248082787696821068504978915455264463258938073908975703045182211701221116197375640999978018201920619753118787593500730009317931585532354450367785974032742598579266660598910614518466337875269861763737601623403978782490689103140248871152856707126550067885133548533733242409512052038306032316067030924015971036615328944776105673019548623216124261478406895176587882773540547454669761845915207357493114805434782145697676330323486685820297440150995332318384072647314055977147555108287207470030556461137845640639551928382942117193136770710816763801834011545491830216597593745371529043219760846449373841953254777711437488358916116970512099735826327235447899454692289439111934379555291476235980354155805751455188148150270386969833988145142672089619753107093153249811175622360599735433215084219320866217046557205991655078890173803475190309068401266192666388598463343491436190096226512168833222022700862372980491897110568637488629784695319235332451825702412629028184219250874555174616611427651168021135018353726943913583090733858102318856399371612749109832226569849155455034204025983505542962489894193344695517147989870427419413398714224129889699127075297456518582958879312379776855622265016640517332503544312587652161123928370836174525996524109831961364320580995366409986681331565415143183026746723515385209939955269065936275117040303535179650339809750440940494034946327864391112351504417305624188604804818056757668263566165189536970495394649430219076617177333786952127450208990268025025204520674511352041642408950643391684725847890197891377124706184401964140859887237428639796296132264683267567364501994844152254451832717669543438689469665909339705484685873806503069402993414787615014699977712599603403842345269166997929568708719234206570562753690089918397911910286379955295258688680601371138256118456286524873043062210186184171776311044148646189520898734685191344421263609975109474918590716496846059022027016434630299485920723029206034596405569695698345383625068301654706147375909912815294006893718018520231320073334108353040636414266475812008653950392221926037260479416705477507213496303215296718924658243285093731263275841148804653750038300997677678869255118227492852327610283518056004249049327305760085236417134640535171429788498540359064252149321950352787637499294409402288010424668578751918628668112847661208182299112635126297142771316095564247209105690618025268685017580139187565057507935257189169394044318872879541219375340242811980030790239488438861357032379576588684918329309603410266083288146255324284196059076723641749718880781746839358510974316402310211345849981695262626405722549285312156062685984766550297342347798248745745524602083325877405713995114236700519238117480270166120573635458390870005802591237378663428187341032462826970632176275929682483328141706581685502992057605615550364253052398692309524161572009417068845512821289031348024227278588705196620890765054929775522783157498491095539098646401697652813490762279548266599281529689883678046254190587845313239630901085685132198418745467110908511375219593230265274203891992479757163557202558384453681842097697876239844334429424587457088727475879632734756566157460329848733550473857117968232112662060506334457869640787193370818359049560135647080976982742311064492557480963710551426239615812159983564379343590973042757635012278330709303703688433301697659352815931051145417747652977293461487343340771927596911575444754394918633623895519403142989619896710917447707996305147722004874406209893347084672201042029337272460644309155380357935633853696102670142390813871070123976175072134884813661926050098019331804060902689979316457625702127230189836964481350924552825666840263307702196452838266230089445747378439633260339450481936943369643833728188289901373319734030762274132630225829340695788485901508721619591937763736379660890004279537377339046206335457995955090925198674435574313251052682351298745772939709008282962369148241527256965596995293205986324976842953619490717815480086115466908005451927210979132441160943662217850973216444232426664111764723346725545492589907405587957352070615221017910248135866135989527110640689261786474000232769225955282736823404550049112603489266413028767745889995614938857584320126225771781916489994279558627440383981625700874519873334846125156675190115813128467976214088222298355827161820584072700681188146908390582398116137651751830366060068266243229621453682957515318671470193759483809729223232115563092648116697751033493487661265789542644830786437594784504160384808335799852951565742303390021542672547145581847688121825370653816844330734493187586423657360032562084504639986243766104082954991623731525509039261412009223860945872364411706789927294208443721605025376507945703843988848962800867693638331432128966496880511606904749095125597323038298749117632623157486415436452526603893155842844863705810019524637816129393456257470818395872956649284504596197463973607069593013207279087371106798008313576768655820534011911320696789753894475591681103473203393251436231790308778366150295370221235448452900763371168307876259828173284898177523976539757614581315602078226875039236553553982751665083470058781384509793953342647907057758361371330430168846075504177934600330040976258952194058444286833970423339520010104648191205421444851758724986713043897479186698103938919752234530737804479543351607220623976306590574933068527646316016553784648655730850807783933421290647538612454464907956797002500252038628303380777833286867348690272378806652333395936060321271260941198145336030317825238470550740020653674401478039301620432314479884472830470438834840270638757795951961999060747228597367243552571265722807577333659497780122904617036268213153848186747296306828430089714765216363702301921793100552887168416866741986948243215809222685409190696087218730672983173112705754190037295275210551020510154019507738670801334473780014438605666458377604789884108565434789875730696996884295619147051464814160529545908672754202360079889653944900703860067018099328773352001551841069706557547020436435399223866875281123785602818768484762876718672437648315042077548251692971352194828006878875915110715610053424727771450781597495606654255827860884779098100456404287417658437495968966118414311957936891441221962357603914706697697367421225092732755656788094377863034665485094106180439094736305759907810155462255168594119216437576079534443221947882344624522143327702399822243659587069119701044393656694111767479584000995389614511145192674648014545902072089416491696116873167946539158008063247135138718086287888249893765116041380183387972229045773487314980133168433374139531804195627602099801533020596830786439332775780953193422093422063440505698506840419934615946602483742585662375011296802481692159995882173255852079131888074674054054191724548889460191541736401098853938235280297484366358305715741590130516727101870821926850247296011887388111655915683142126248612665635880855957697611811687239117271788709496871054190727348353713260243184999818047058861244646377560438561689945033577878038148111260838619825270977777556973966954745859626188581149658174943357965860859621486959193677604508415960113437232264022868554773347950313034538918795322181687811633975563777225958336447356724791020805700290098692877896144534742947219362052539980513806578898269177848207598871546754062140801122061865022313641561417314935301288830006134370084239041491506910700359299254340074573094231025612622528385789600847837023034781190361118581252852215245930146756574704012575302419549000140983639589532303829432647718273364015507559600437883311644748781487348937705284397378761748854367994592065538298867283914505495988247593870498173123638779218863670052702399781207684041606194903993903370182860172339471667840755672007612515413306292142385955225273977965967206439317126284791373341312921431313548773471349763792126452547041506046631876428118726981786126542685441967415533057928151228723444346705414893307860061286324313193111238875857304277941344716573610033311128245183750091018068661275673410780275377399226559133664890676968072907912932824012385168287174937509911019445774342913867868989157650802238286422961008328063837100812608572489133663717382964715253546321377019781389229880966149446908800736813578449538816424375231162728442720174327109597322135390732250735843803571113275900940528502330330918023632582146419652884623103498511805005831710823580120018845124496147515461280115890872714615234111636842804590167976465399461872770155840857076205186289180324783283885364173140797367451448955641274008154549520887369354402544263932781239631438823260044874235274233717265019578632963630633518380491028953455332682004591620308147302536199987695278441445494922847488947489599590605477138855307716786091853907068140272996941384898997448692055981458608349390138733736233607569980914085014021443247070876765256541676871653291870075778140895194567277409846229183462106001915791163796744320842758475778087691526886669447526298847341882770121190772088752681989401936503419760105068636798486647827291768990104769675997927155784001174911621181195610657677584039308502220606535692203475027787741220777096316315839388445220683568264886984084136234808752704555203801550202155031145844367210918953298959199383317326485880032359844247103223832627661011291463947086212428357807396835489895724560571758642939568004368075800575193230135731565419429944327235759794778794004127284442875534661086558909228162090538409620763136385208601798522836757475128882301076019544934794875702562483290542661724118612381475011805213630829160413603508534295937706697151878036889418209741472788244076083346658158168555378447007264428562808213752550238874049238823987155607092304689551210363054189142613992163634511928181446731119979237964594313804679730635797048028759700730070750896799641531209686040507016668437595527830210071762711769775094181751177488684432371166869917919825714406012624926106695133487726356910350919189776872532781286136482169342219682429688761351397440834811734336674509218554402084405833336921163283594340590602762441037352342472216465812582523137525087866076960533526343050480797284812324371393317836071477905664604905985379673872676044087563607875933764820468186038275397122856361371730293740933634383235274670543562947328787402871251818193400390396379318166303833771650492023142463649121821832106740736860655815045872756200489193764451503890141835450801545830248977899986048001597901944717483176693521140423422180023118714022898272925338271573968233014106032854462441816267474448436987286858263711924327589710961938124403162936428322332018140734290753201836181757355680534837796294438120551688823353642344726185410813861248526692519445847995838817971945769845598093495745260943141162388130834243666208937231022232417685430103487667660520261605234806143878559125773165084009265955963997842132958139272564982086194627516006172281709711788447365216412652297762784329035368015468830036961910967154768495735213890250816611673952023028432846271610055444463082031139723595025141084134678922577713541265433150613322820522559463432508113497141196146936936160368959970143164811949839691769343425170648007866820553002140362654122956088774990222416542347015181050884443785397229854575441439486688067728397179315993697859583405233894998016119085686659228758955487556702697579828591229972265671619471157157257193483241626888022087260436513605433487414060139544491794925718771936463426386724435832140059034925165764740402182064489860967450897937740254126975455318572785907087301396236981372757464816510321203805133292778676214210192001149267018419616981990902057884567290566078263920222918900845511279375993577666848399632610371735940874957234879472803509418923316290917610360148135858004732298246283536267599768197820514428562737663773237250445808073387304346405775076573014574451107118846908775685394125465857212085365337050459723031570951652361652073118734019535364985226307285229049212674481690263695876510491033853835295719148964695837156178207888764546920638499406919633331237402909134254256014651134143148055208545445436514332870334777773526393070959858711368815738272756892274981099604144746333383092033116738682720310568086954113787791364990495859622078057152963299491905327909836024339028071393908052383525851622721609386838842793310919828820365223009029999840443633441716196161745428032723043774769311502738761134303232025340155785246672952651715535865014314500976382879645643953217735927917372802670585082570726893689179946053186702620523594390321384618887153995612984599064510460604497627791358126094679095964330708421177878107731747028553474503209996909608465222830443379905456643367318842438688106624680946875476720191373680867705499228273927209479798334608176863918261629539404772313939492442192203811817198020466646225360917598404637735122460979786333296700640288725589240196662629051352645506028249473132203664718355584510066162044583127359244696144846124590177248014889514999806084890470578164146148225204259949722643496739010323054910236348733014965483842020600370329008986953421569173002597537822494336882673481376237851496132900183311272207518985859966216860546440648559064749643204251790686874330545631453524234804077190735878274077098707385925067913715575937935258725243812589142054970246970751288964000614356898373097246992770528023885230219743434292880953474500977889864311458623695685042074421166345316197869319298011148299299607178762357147073635744892376451356604394294700393857145520073564976438418365308695336833521370875523276066620266324389625474922760166388439983067304679354233657486995994311608099126232507529766284273830049576086203731752805358270005753457076162397898990224930542981098237292478634300284397387937558709471336688201767917842346765198448251986985950499557877460227090964312354388343818943704940223152410908754208953491454041419046132139688550666165779353762749112359383349640001636850689831561286127247801254959396585855555616300124088806599013880828027791972073101054503186712554711119731280851289473620027943699917421836111448880020840721417059017553552393571386234051399339380534599011762758787030083363628365990634326874586904263007494523413721017928552823709142126517911913710984020714017102997210679805807555814475003299096398638198583710361250984167373238853696053660125937694755347785438097887606254657480117417812702613462582259010329746752414512687414663745908525511552005430493689713330941604899842648283960385264993746279859268757186612606431552530620225233701382983755563484715329943402049513960052529336343032856459388340993422338335584504557428904477956108587218530053797762859124719565208753615527120644243412208541205181880843300702086265727900745124391038352491477858133854528696640118671770975953580682719907100808156276722562929569942500519412999034295870685742591956084641431598242463583957648775164030287526672361764853101552071513763825527107238136873034217519408568802848160397883103907620233091681293946764566667139614733814796548395913276692909188127391576609493432082373735796845993426058502587058833253227119864715456299744218581631471620595591787727611283375553158539557773014007997759961578323004924992852003653070820046257487119960516447248195705539423156234829703802508106092614484450756151865733182855315312175585718395305662118893519335658279909590534091960311785030486115493576655458638719053589629532215649896642265281342223618810251263876852841766761479351123178322124428076151740478296196797149325050724158435901152834997523000339069929609871911309897610459487239651947436706818821118206446123993139911362538792071327986881089810128718434221535325176123039834957643261900036362395255227552154801084265702558693732771600868429174127346221634065587084922309786319636600128017761607646929657787258592837365448764285988555359017558844575695610576118596205278889026403684369825347366053731828536990554870565298596601094187742324007240654265185940758867992600752368884808689958249599599658342736072834749123780702281586196934622616011334924634865100946845711914743726792033121899761089049227030705996096300342248666139718521715061348337757046277056700967899939139844968153888154758392400286644196639249539769595839198787920083638325273751281553250667589799498910972734243120227396023164254298888163777700997412905556131792347411616135889426276305783590503321793686509274238453747277729683307152599091612500627748664865264341483158112964454065617251883874984096139914368869779774393199652404769832195504687323714157812297905783421836447562252950321256220598411359358665190134780372171239554579353320493948260964339674647163974904303417888648720142955284981648552746187568524011167376218417282577776837290796610135531729702111946613337656191878658780177771657725391314282475982155206126576995236712047725543935535522081757157042460312828021953991694714825029691943645838923440514240574099438172090199413621631768926924773956727786275884205231754695471573894998031675372860265031765075694067011029714120070718753248654422230807201773462827804978158715388678433298762805038067560116365250105902155194094460102804912609947212949220387390466418593574940669069825431947627598216668156811462283842378944758359380434920266564920565148585506317797704782916425490079187748952395005913363878448732085333056148665413647845149644671764361412254908211117836868651665085023880637449414724517418235233220225679227180378159128172865485890764211964706618385970815326438806896025808811087259350676234902223365059655692501105987072764235850022815928330306787953170715473676479730051423044621634007514816805314314918662976365792454109394014297711414017876625736937343334573149750253298454105671601960132498167515850494600298409671986096335621744376674109719993684891630216682525156951433759555829494605048673820942130464010272878984579517866786066812004594032455029622919665308693693285480799611139410384036124457526662624705616742092355733504172285224167908283657385038312592904640274323728461886268916392456678665324167527309262912611532169700901430010197885038985660628097118007511464230207498790443689515649206733437114112273076398425702432829643428861306312432052989132446748389874000018373950010835179874461922537412802164016270187975929253384001275519844103495865225609415473955797471479470308876497260347077303599586527975263857873144671831527549982990769024801688184578362968266351838104288407039146697750534604442314054916589949033285922342073462350517059449324396085870883867992947337437206886084616824092887512681918574577277091069487998864947312349976733095229094733769539140401793389031976096285870169019526758806500890765638066431835246479803460653649989058905080610731000955335070800648573346592104383377866667105284849269482323422423498310843119285049100247344637421601373803212084858382280352779598310817472198473837949582508787785600568586997482518666459550761107641511959537723583105320073896770595302985429593109494747138644290851840863736533556866805808378397628003161654991787280889321471200199236141535511869434697713221286188707837095741344326213547463400600865329196046780031504363389517421898913080433814122277760709772331461929959656204409589933863258103998761710836346966757312121638484772826924654160422877680698736968014809423859008406607435961375277983074220918008184466615376249607861192991509729603870728715810571022015466497176737496993099298218284363891770712366544620912642564288873501071494437747843952373640804899936528609298269520816038579238709997757552415526210662210910120405658155445024654016538089795607080526777999649502575602739414297069979461033856580989276620086956188521722450394912811591357855727759792604847467400081589453187411187059253759402733516637312453593430855608358553469728479650268467727402822714780958325100781900344762108302658245673974072942302020506217247874688054814393413430988338909766596684020283648651873550645742711781398208278730189939011915484978198824006682490700778696937303546568613894189684318141444055637116968742438376345975422790239632658608432063874453390348997150767919910847901029321529749512737521182829945066668308470592583333226585089134536112317578832978527846580634674227307953027718333578740909975420801729822524960914988229876347580789383930794406324692736673737344706368310333055905075091536193520218325149707913122078463822885172728420503532466791637941079217320596064007938498926790906567797533875273879062739848191863238803997594413934080222229386277866603621625691082319436176621018187140326300184768053859901888954485447864307012798580104982766169606389369947876340486727113699631071780700503610015273727472831092910125317083991732545245013499900611674841632340907761203459853477326089943823349073194667560447306495212394531777980376100272427066436782021110208865563938512586831449956323325626849849760579220906221492085269454295489269395589148030221206009707623441726622207978763011370684067308864524165358063749498129894642368307076908906411595992845156232964170127480408217772807307906612879660817844245672502978988288364968559572949322725102989119876080934970506475299456779921259717278840468472931733542225345149439376726344926942902984852777001294405171673988127996093318352710090870110430056085719916871382200858540455610764736560125930708431457448323544371998243838034849691001832690521695739377820941572449166086823321610717584145467538700181374924062656887871764455678662095818687891346316177860348053711700393443283286746859267173892445286086773397474553470878657913373406651654698080467730868326967741732139064962625898040266798124884609546346751832654526497225165810630020400700944010974351707492243876734822936280548915754151861798969405802563385100858314746304382436371939410545271753519327439674312212973621583293691773742227833917842972707989758217259587301854179615839201226045719753263191986692727751117035765227806894372715770730850815504679638526990281685229058620901071113164498368839176901271719269960895551859784726700064149890224868374551884259785969442758655436259209606950490221906127159539177381823088672266452365661673735002076789370725171438783411566278900082773671988383702244608006086292139668276435112979898801314168469601929167908106188059402880429767798225526015494508672539762606306416429621473311140155374368001619458615029439784035987141416376574192843526863936902498059598826264306566704259200143841139054079705974850453066858114698286902694434415722981753352436838289302478720032806512662124060590380414675313902332299036020643041041059668448332941202199289521072696513247362241563702502744424697554228157133091474260678546848030346763423138924085060468081017058419942997666218357547280764330420619093542478978196204073724775690368428101431286745827039211492605159670832281056100243390937046148874176546111970474738753021700589507680824163766272369435038449545387552638777711292874157451153085044367806160409999188105750932536467925214961801006105159716715930480079954141472074529399822988190345164779332878543230641151843998941328318399108623412944640865486376430346150069979308302485914991356777284024088050761209755665413022178769905223558254639940867957561972980860970428843967649891546411169419251356533670971963009122724839421292164993118948922964011420871981646735639754919734287436288895847148269910674068170761386360500274772458609379481745051240193913571551266920303402597181727845423467340204624671093604343115600823649410327263365409563745119598176115373973588553451545225508340514147755732731446278912633068168158599823974289225954173751341302831408080272501414271541628279332205672634199277449189895461354640610280400452313850494829699405160122413644625904774070759625495990360105244706339408635766371393366583076960208060089877416608587494116103166954390512311631321676439804835146327623268626649885196424888697191499050910662749114746035928554421860997747719545017570895710749304947150914265243193935822270937468590746134678438965554020062069279918915249141116947489730902317805523101414274876182805791415168102227535734977741568446099674437481622588036594184939011391891083079417381212101873394992348856771150674751843385254048401731375206414411797141850556726260865552700719535140389806892365500922797356265762549515093924393489807217429487960304589707795932433212488909244975772381558188004840831355855198495413587432044394889946849506218154326588434383224782510655622114041815076292454925276897148101532777752962059213508582486384447868726602393911866995049907599825689709402286318669380754787268316622232222668934420136601926121928905166606280887138385782480220259332549187955065399265650430430976073847593483336478717867109097529630746671395693791019737801779727147539871899878076502789916595923881443420725834558627415755751609764755814091316071012090670866448014102179579432219304047200196329921336540482487638757983295625117522088098829600660786639998659672011553202554349768456747258158941517672809903234485304276769121746242179837592197667912726740679626852164106822540903364430304674180705572986006797095486691096120104104893289811337033234772118556567502154071517970369902404042159913504471074786874593979811964062729245057438373304563776006942784408924062701408393033305816563661456746450242172118702461604225271656626410666775425230028418120962647460400815957060393997518504903746671443730327933477784596996454682177697359789633951260991434001680487792523839943990154763164042852160075271058985375127525926227810537865131225023306200415397173282434647432190277843818087002009768999958012015537852559974493316552205633544187873602882207502545380373420061725758351521168790957957846649777352381872238296284450823538558473082646347938694056236093659596239234143736586929554364058115340787796863614594987341880090983943616066906188442151719079245747776322126480623490703240037703133702562639972019770847923928029634254879463385998201341171909954224237210747413434266849930026390617601955225937864778430833652465446824009797934250641509803007905257251974142059900207555435343050860938752529870801169700974496638069538989746444653422395499697220826410099832408731345771091992962185180664547876919008781769330908545393264186372979411551743685762474396571064050921346434284137962622721718632283807982091138628773526212886543918424701981590820280462410182573410492337755008383814994221758151419852172298933101330837695346756612033777653273733994281606968841440937122136060682409162508816387114315142262759122669161564312949623815649798901236849764849543530051465569230521224997686326089833904002190151662631608339985109936332286192224394170290571571113274399370801522978147733401382072721870317197416448544616935237983908300243160108052018096297862071569216524473081398076137166487660657391005704212957797930578285056865150095166365900873979373685417829100838935005243368696697200274485663218112122970855091442801099491341194860530836403317839986038874594905855453827941235700271315245466819495727451303740578544274491475499619021614730846857830451208055335496942000228736644800097208058285862546823638404662875535173250158967587162776885819085083837439243404917144568159170225162344661477811560587383036086311946882079576284846608795442795416323402885128852958837395946251993933623109027668416752795042151054230759769136834471477574371229139300325184506392949609794139728868613481909077950433126130224566565033876294205856480460322655343274996573259917949406097579483403575324065160486684209378819535955088189468668822187108053066298371680594003536326349251965193830020903064571976200186747704950571799696775553885450214402664399615156962658219185016713994800732070426631958204160614137326861771959748208422132056731909191286409193844437343512563646165056982108468219953089706510835136930904028527349864039911517422993863964050733134952765812985753142765265996999201579299117666749724612000553335220210538214061013431967941550622942414450387421515440501000146635125266102110998470752372390221211440488701562185401022762814006976958976586597354259620262661475820464639664130306898031701634813506271363982379027168584614876852717325899103818024736446674803981203737662295417512033548282843640621363365826423394183247246778553056929125705662042118905279446026642978207193878190202851358740943065823156618587749459914604420922044944463366797492491857862200800843324313310913364880505775127804022946608064469994705348524972615210592425884629205505415563999170672437600740047858915059355223069262355637255486595061483694788139902904731720968971571798104876613338951225085335020432142347449068064205827847472227510911115633124582099151144925357863549531266089876846751827238096754427432800376951149100265244639756444681518207139492143796509087258701048462418334581926050277282323751295193427389838616621681346178043247953554604836440969243812800751249004573039219923560777588646639756022690702528668702523839056483250955622564613831122096848981994341066009145946868669842834761524843893539173084743862187170356531856465134718647111810030976667377963468121996755185004146877531524581920692199301273587966557039603274439725728277722145529132882387050069259813749437347791929591077631109713992559644568500262734513458231509299560720297334913433546211001870217724022830229139231245526069329242283106342601289479092054038607169373659724573523482507179008262843591205497529619741294432282191501889498493039195026974190327261366846044755254384761702429088145473182562498297704024528146520668609682182963240130671666596775238372765564739435617976825016550808416090759132086216161475848446421261748900535497426959084137104617227303022009800156838899801715521381634765625285877303370803177746225639927134909691961525134089293385605126095371424477305659664869761177502259016383681534836820556583429419774063128242125559346293232749938144466231682585806965056407078688234518125642925967685021064559930984803111989862605252721913440211545143769933448815325919190350653030755697559504016489073126286046992200503946077283737105913728157957786715980835482385654407919539184326345405961693488032330243336392227488776083330936119991589165716597336428044634054000966018716356485811205234805031052406993054190602109525361742793640028164560518829563600074644300504336992023065098720857395901598613665117295159608910954657991610743530438890762653184326074040750315274248487595396240996913631544417841927974830847456605292607779984701043119900848881487755391506673391377285448431557083686632392147929061147635708670200171922038945317396226888357219509921272092766867578203607697819657746424331273357402549861603741170354441337701935932343236576112630656121915314209048990815776150312510674861929976418831095268785097526892172468745693458895187854486434540257008158273808246469516907762429455409820610043080891512947932875834655825977271360836423547061369299201763742093657627288907456021191206450653684818550291585036354736109549823974074217735090723309030195570221711373958585074545339007885227286949067462312962081790521056160062644462324192587681716232139875189975543497309720291710406927365111522666763098102577735271326216838516395322201553221423018258241317433618610865534138150228186644206093067532702535016032957161512546660200991755261498648398046806593910474397406556239270204340186887145363798041949484808236348554174436427522270015671575078482266602390139663156145712229628151800325186276802525049793727824552828061601918197806447458702918634938383676685026586687930063611844433651763516694093652881183498782160628406311325957566889952312353344743151494851300350277207210883693562605436852300889193861295154861957212005013401596077373353532619350160369682364480819853852051548783819889076116879089164767140890261472185396343294699386243025561292642549665145026688938140050747730878887762710592946439751538380783165353732302217273460326354172177155614154317037489951080176405398327527998467971660659509299957413335491297171831589980286080235424413550282284385086195400777766628933961228177863570967319493119841241007092798017802516142530247482169237968630959983466663930632951937554634833843963039497237328777745916252097334504628970928102670885089779448254866605824593781833389629849028556463330213707573412421066935603165709575215419040337834603961807601349033993621039629572122833579350888528512437386848059484447078639666990550570677635132662730861262655370840591477158423313961801721526889284788067203753810427055134243333225124209439114757183988270481930920439823137773742628686165737638221286437065431240168911118711624118947270603438524224680734682578571634458286672533203798655910286710095769100449064670806420771000615271169343491359657539581691939794220921854318976036939542384267742507094040865355110064173716648058490260117508490695759564879960506442961027746280142281276394379622794689475992649698379588445366859983876551987407327113697002020389995457616674921754832087565147483177461629962230105082017453865732017835693574798007552242562287741588841471826343516197342845694068279057473091299146541357573021885891761504142518679291066429314798656828400978268799178181648415216417489275760123723305552074842147839862738610164207335083960840417361059580845714919710856515686668737160417103272663459810063257610732074695006613584872038875260531671098428335463215550106540512430274054075980898029331130806889378986844216108093739397068752865702258276016945772381066478793578216130179342118377659077513128203855697944131318991059991087787533079706425623584116016876416177383355312411981262348297524464541674751986557954395828733951597395556330654557534527776936451854565208873782355153341053976447050333258569733948821029313789997742904536166260653619738367320207937781937244047807963231602076083702532714277927250061609538255081133463952634169598525379316390608591584524431238840851869969641107656222526835299052468140293499675989955608008663874872335176242092644921788354454618693107383960070861313703685814499481465976092062821289091651751192558996623628659389196957901536641292038039940326271812102002015576625685927404842240157080893910352788550662747758295373352177420434971730740879620639421423573523614203796681190560809154420207143212667344692582204064132043325171579041859022152208019479411936323558006783154032518923522538786922437459416749591840328700511781879061544415828759174315763092761448303720227457341904015489424046580373126166419505107235255428521464435006926264003708525695002703011134686216486087380107449920409695635224294648953738354028080270397445330248102406043677350473491640159797199237523190311025791000297681402605544344330367026349192139308604714266109391244184937212413471998709688802722926945645622600740699534193818888454408004080924291605940612860536185185662413835399230125540568013781989805640896201510129507444503327133054426340141871000860815956695349575277059727290404976018759911870778666482681371560759172044751054290425875516897068330783402835243083221328791280212988741535010610578873592998368151932249980161914143458341043772283079275172014088171923771699676975888098704613184243698497588427175818867144501824930610587191513037935745376797000363092786503150699115186434750751704815805815506521345486653292950983860690522632996451576699237123540452780422453960439504691535668002503304366845715282411233282314862857969348104983034619861570753944036514120387429743665423342179884072617189575695259605602513804069504363080027057402901707425539045339809771777806077284079348278137571714472489466578394616892762329732943596192697729778748340471384580972320008870547353441179386399192548595830991256316954493845062791525665901849867343165530247579737903349848014701622805231753904648665139287075004575381496789203334484263535999755422471757418872984922139238260057430909456883379495300275176784005392835415465405395950387445289887010098629790347349788147857992334100865166504723730139571603706028261019326514583885853390499009538485332748135574285237489340622717262797309898555119549041101457581847697092962795286518765182517011317289886405399615800051774218456092400925557190275037746398789265307306749482357124998658391127663121199038094044241889447618400804535835151725500307854284122223899029571116791126079489007163684122416958320439723557300809795076921753512171293959796376014226312145174848557021174471705057599213302820888267172334852222998692179301411177440560959843614348305341172713204872812457012139169835691454909107160403384867240436887726504899040220168140516079582137963028444971532693674482289995951532843350990354760209493924778714785715522536372711000448993649678809560969073889717386364466248468560832397361243169714807265484396082902934688782607219482475990241987953326643051024668784266370844961546479191638902713249690560676180285547902949425709055106877097011308527196716424699273445423138398940428357980908913642844108009125116592209115989524897808059132955614016078551398434370949241042494234769455584826697317827286851600299525244841019118425610317680472363769618517375350074657625435076236537962416027100691119316360539674858260359611608372539238623942809469947051127393424715978400276902484363628158312075599233347819910428155998197997952351966383813757428808188852614357918011303929522956600759802517372521782441440023642364639795002793762345487905748632375369901604412029732831187291270834634641326065454301143391072576307990188056685170556090006541975264563074210515826142457569747171858818799541352491236347199583044222975968139996621594104231619020009483215014053919019886647183592058633019486728825775856993717180326817473342458554924002192579149654111504529842867161638525564941172566580074148037430054289773009263757512657647078926082017631040247799586046109694059829737416016632491914078776255532191073238327701537824212161691469041474296339350148542948004459891647300571464358722887381882613382552428234907905571944025784674382443381989261194529290242066941844728490775108745984642310510837982429871716810598918017833650341583364568189127763859821639608909070700878254430005392943589741732764925264043649118721043501354677678147578301063601828025207812047878261833633635468718939106461202447614648041047105401074255546861276338002080865798039854999199909220818242443227592324704081207897244888568681256950020241968688498094632176886873995294805548521186569586423429940539967368882593729827631367619674731798497397246121750422867828886444080387780161140753575431868136077255621298648224197732650189237644704582741515292304222892761497599225531478202109562561596129386639694486602810540726790009614478134132192451884401597422018060134874141649670792716623697166449372472499395890783987944374535900335178282030923450805180930287064088187809926775317565540341702351651303532717465097373155037171440299438488555770243117711235906104093793668281474881945509427326115482982328498847461597261516555938125566799578462303751672732298966994649627593729275360414000458822592031581747568969592879856121541720190248684920298979835039956060719859038630708943173880354487587427227417063960679365191821854361476186626052087265314774964409304187049128242765027950863442003950702519500088981218238765065282824809597407776751727738834735530529231067602164124870958717896801575529005860229341029500903320222070612148816946812770653414717534004917951404372098728927114159755162486276300205053042982400154844724238122109352478336027730449872904645680652724620234723963559564031716491933152976986736851299352139840947965975465128218956202044127932046309783943512041565940113757093431533896099427337203295285909682213462686224502818837276484431438555550683936647526141171441510653722444194467287881482742109316274150016587711054578534373881959352560009552271284821283298114571066142765435933467340173334126621567694838475443746885852087604975860434135148112131385677369275102780481683627742817333412829874072328281963235622701056907376486268825957602747822269195351339890027750979993549144488339822112479798179882662265871243691823109743905018599490931592957805519390618840534321187354724580634647244721843666457581150130885922091778838134953082223652780063539233715391422150308630816887012948811457879100638074357632405281163619362075999923195582185935164819385747340453356670934937814782730507170997183006180750877209284096693904020657007828307538854467325532759862926327120449001078360572960734684843905612278332892574403620912965620836369803863861984180261643034160521513908197542497151871938982571574238087885444224651929717277054299393093452274164080746507161899385152563874762674623636275684097441120887833431675721282226124600078856668457148906100399449457200304281043205534887099569108653699529908176362084573535062058956671762085820227491280977180962712853777661266776561548218973523993355454405855395306784127620460514224389269638930163560186740701622215130848560229301676595953470772152097517286738837090326603712443337495366678939775027423986099443817981690640999696414896316458705458775803187331250028600197058470563291535631390436529621217279265702786818362188069028555345567004541799984371269230889093664191127234697434269078811289462588812222674395936393043766237818249810222432407034064125569944040405922804823561274716617585034956059068199442116454212049919792671507196366617810534918644286294062861293545865850155923033008190475230852309804270806353517801550642304763607621421776250109874470289941344536767909434117251486917421830653699299468026006164395931984216828161775560103130622257562071124819272104272318743361171736550058767049441573891495997106292980674646738589090017690619327671201676687756589636539449634449934949095310714556862038808132267149995230254726242731179133393857848605491856035185199135888243110538539311898544919596906671082329565152877008469588484209909144639093184838523759065467384445909686285900383372325435279994827515201010237167311220733734229254008719034727647507024346014826598712386092149599896142653744188677831695893072333907044665980826243390899515272296033055239635019181105545178091066329770036917956629078812469972075124352255599274141252151717363069939534497975921375080233328452513350786084786694990967439412794397764185455627509515144059232806904037666888697131139070229509889721822943149804825547812869841415064954802554644878927927114970619311287698096126196403516388103451848151402770244532759942994748675413045480767402398827004167479288536948795644768428043494583768253592153865655179932127086646063029926515200372117349446762040162712845749787050935626963200960281495012813929129752482163439909099333738764891714269250537330690500160177078962317082232982978297977020816929376728411118240955575608591040087638237775050815924649872844683012508411551748393179990754811391184818298548533322058586492768916961614462351748562997916186493273640688267253759939738950049593616159581634541285284808500073511037738201831537137408963565010449239908629124779829632814331595458102825203908673508072262107134248331479547540902036613357084140526137217941514020138105484042710805740687819920666600716316502956267328330354571108425790812579932987131390482901617111224311178709636312211481164155423787870935414016877529902539974249896980623520534010046894146829450099411136074013042199712295216553329366766110520582327738207673730928113043209722756101590066804536718385353694097120188261978090696526599032188999542275478847085079316632228503383206347982171523707695672883437322633592612868925682947592447176896032598801975011008891528149232901876591439355870380530303306492629977712505076996381786295086286776247246897310561603874152375636963056302733791151948746212401217664134105344630955857518441599270760011005221566858870738241945559339700946383624305348605672532631004258245672073850558651056071586782984274437000902332880021858102475495320664076748382781506254439354258874560336443323413260548845339082839584898516224629446581276307092815026774550256497699308734559442677900818885195976334764502080283733086183456364447632087011526277880338532672333784295811064820552208293753393341183453352687433491432020880555389391755494102760027243442908206691324444477722775733964384982409392773694399753898899873766646223806763105323019691660210889576970193234636555806671730048646575695277663582495820165804619842814151404059328533877887490217147942765172294407480411613174418001641514902966111665155405368514537156286132767917449922629523835204384429988960077164238904057407812464795659960937327305604842256002955392997395568453244156152799708576066907201837345544177273939060775621849262985722715195069863131741809182979170160860631566441887331613425112779087910182456872711454459544191987324451645060368509593810824192507878859753090452470971316396065077626131606509701025249037097870772814239230721766556093991509956229970201740245175501190741001667759346997666836072542373728097277967394639439343734450863376274284457630961193933112438938537918220813106905027162324811336170409053602089738878542705981458890658091139678504400221495072796898905203677921762949234319774259638371232165552883754420653062540232216695752787550999438495627007780415228860408900711848777485752641138295841103428736335003183342825402624965772999713418219656518856849916925208826144840648263024373126749627493787500599384419760699218561318977316855451368897504282759446681069567515794285913280666866012279868752217491936171798164270858063795721505272971681650941461872641981608490342272481155187776077295080647175580498461128331779399667322633771980754736085768568916880445413351918629878226292991333848704202202048001173938708787050667321740834627268534065187338312008222988799159165345019974297393963205462130606537483667496626334545192590114542933843912463543781572650517274367095969535203860248337672413481081425866616753233787168456329873099911907596685989721473585718340502373058378743979741824571304660984349308069012248503628397741431139317255324668486114163145489366385664265512693284973318229644334659943240558963231164950114192609933233041132328647801270442870774973046140281283131742289928367886358959163605856135312420876218250492886301198347499372044995880867891598740318983586823417798020430234686597923352143534321913190528971869196810797524237235495350114283330759529254537794041704175063464671930854956588463507265002047585927007364268547679738716128419034293477849093933751851841634507329075169757878542343546269583194372808606846388221913364157885263443858226825117670657236343244215208918575722666227180929646944498483876800071758800679169854391721534474257252985868644367025451777017224376308468688635076190924020371215159348169306107038402636525797458517970291030036672655485969125609333073044379195447630409979192268213292881064678496648324476921377057175604128540277292890536877053111531616388717712755018473529181043188852872721229859675231981553672465837566603600292593615318403136366843779285665207940940532924457308188094799623504260319080843091377879638279838999955574822260956679897860204543804502311166426557725921049437845479340137664641316806537544020258656113779820007718050481165406308567930334023902171831463174068986615526578919770797410426587814464004075391552303926630787153064013965039612871588536573769700455814951395205521229804457196346454499754354360768365073084298887504571067116728716360461788308950779465172766268425068369076547191016696721829554916841492254416396308649503370448329416538098179440526043098941389530366584077968694727039905897869100354905235287480491952616966884088427730969507999081764157536440077889633068500440527449221744948902934562332726071642652569077527008223768141705415605635841953766315321604699399994254503589417143750291045383069790569951293963040850447705147102200838693859623791462017487377167104237973183326897842485071257333158115499648962232475204924750060495038499748558680473640878076522774077615716529618228199791268138139486121708597963633145119222455778913397441742275482156285091782182211065373163901440008679462672726442912417388685212767082318741827868612528672372705605201385530612731475402574683434792149568801917735092631920086767649520599190054785719081805123436163505465957610324218590910101347161437535157513609533698192917457360728382956466786364125565189037916777516813161394881046080086257604464130951864157753488303438765345804549067385379775131708712401203534628182655172994298058133469831200883078321137629330364097797305600084151785313388602390776908506533392225292520710853688478624934153210826590505969408528539716210456305711013311160329203594899978652596155877947933916288628409789448542060116256151780785472728081945640350865045595017308438279071188102681756506475343058899279176539146457152118656189763345143