FANDOM


It is suspected that there are infinitely many twin primes, although this has never been proven. The largest known twin primes are equal to \(2,996,863,034,895 · 2^{1,290,000} ± 1\).[1][2]

Decimal expansions Edit

The decimal expansion of \(2,996,863,034,895 · 2^{1,290,000} - 1\) is

1482768770993182204464136244402500833520621686714264319384487739014921651892992193677113233158077901107366672836985801761619288027743887340922464231442571470205417497955212347994373390433206793280276025905219477405683021424325938643514128559487930041441291943243470927933980415469807891116330924085470927563286088754072044740824702569660538679171471934614988160960553539244848288717389246674421293275304674209543617184321916701128185588041881494901150955153900347511825651993706454437453520759199822706006683409045695666594396750196633398128185804449271666005550189586475943232487924336522715294135130189847123366180039317572125273943502972123253898479349668302828083061842070349085026165261498374785408770734721502864894899351335436155316076402201156034591701555330472106117521603373486226649102951451288591207732543061421494500160683095568115729123629747668809931663140458914905344244715787001089333196096908872708061858056098499544555287277799342148401869154315045745921604083414408300226708374552415053943581918993360140195099487364441621936076888532210387951703917699038048793479065298321605886848766542057722966254964643496535271112339062800948431419342145399234919633489895961368102143190562713708766981132180181702663359563762686910033302303660906885279869537404397619358911825963848120594151959226420288123223542036259811355095570731515988562894747987875165040361603803979967331797641849834430942066896649275773420599847734767939511644545813527248689930562528771146956806543007087828408237164386885532768938435544431813761357642003760250301514112550443529949019248580143244136035742098832262825440446448444087448284929637184497953975698378702041051653903164404505499126135095052566834480477927620055612181433670432072594265933067935123892523248114610570874942837217666481290184841907159285939479210213046746316531052696115257578094426138462570985458475311371134565052954841545187601146183525322734747091550032228037398797830557796631270019642149894808203021911002437850536291431134934856684860737964128098122992932086794030960003220640234693828926273570605306439590285043727751539490189903712328860714825046918576289195679955280550599257360868650889674034576922504951229745862170897294515115280759641491490047795093994043123108373815458782593781861766644194551234392975712569861292916127999077074816868336823924928427724992155057547679162405746867609978985171843047239662458558986692023572015939663499793917482757072247854809344506355421535921892001464077498150085087478293471515380252514934913328495812957732263056301852765476061372945660858511562502452557537990491970854924492999330551298489225844108127993496142064712497143880266364347137987214972717611915299132321650578335932717711311926838821647372457523312557357328691181682631771325659613640153550109401596420861974647218618810572070242116498606664423798798636402322173764123978021119497529944249097865772620004309474611094802005912754443583730221455151796158441051776512481724279741776392953777385326223778789868982654391155879725027210785673760953588324789243650308608792934381448740666076184463401536661106622540790242791796801153714844867632883815790961125417443758940735157478516705903753420180417229550878244023860847035844893207441707997379680371291075090925140046686724009710143644130035038066093856650914546929608918450324333549960769898758870681364585487389937596120523395436765701285086303766917769995279422421055999473306011640393098668861138932766945952460210738568370542109069798767144397362989460506354417600164821692059677777380981141172562829893865932196554873317496009788026954324488101223382859069301960075614893654029816321043707352640340509683037899470111473255881878572860413617770156758430066972206384827693965071856595406718625242987265501069103820131167249862467474982638629130244962128239218469820267678775342413440553224171863663152124246507284475312390403388149753550275798965809056013402687486978922603379776192240927558107530360413976691084135911802608039398282861586539213636147998335173647535564693824665158015214284602546163752581595699946514865419547198585190652788325826253520977059489179188257072333238279204898106997709937979321420944779925417654901384843886429077555862825988932048146840450524862798708582783158834037648507294423988239735917298142698709772362905831309414439998817607945307426289902809513417294258931270105984968166030126216200521908278753147557176205037524587455019636469609549338913270851892491910042899686273294802667750014935252069556125191091099919091520873497394155863851180972970358436362729528026544131410302157315890147487925375650134134610477652971481432881289359414804847726211799505433745598449749301361633644773783503129185074824019059289125140858207282515022342021435072094746696861416360335926244440717501135664781920152578059636086306267906434952825797891579777346042067046105453526623933576609758065005815069065554606451828052147596438859288249034514929505983856321102683317295713234335005382132809120617327163391130310139565605489608679696144083937012805853575850782787417679449138004005155351840526852193892076654669000744781922957626649316794797966086340884943143293737826339628506841656376485975393590939948605132836367844404190642948257543489090253952158384047939067272844736416381404291051128744225301179286933124515606078831787213288197583642710936804039951142394971534330740383009721032103974563774379312412144622877689421515584552154592704039116264049200908843810187605237417839389362084109361686126031902638320411301521662288375936648905992122915681916148565832597528775247297824452548497670820186561922938967185396817073624016729058122186242998345085660946482014534382451662427062800911075050815306045598313084866795103120151019893315402693346444161127410163028621295569633373271513657568222874121270985933528147201063040924250137651833466640931133051016069290414953849674321485403583044628427122269118829308648987320159923663109909760508633033157926863314594498407168659728943487067105258550912731153481724898541442167401397648594613217002044508550884943641318821212004673551429622829793599241382619275976402903661184315950736950377625971758159944971980260801077431412398559149309402874493517763330030648768033470290841097536056092279257683600661142787473424467929797286412647864500648104895468505042602995802765443156652654886627233314347297852666193060945404124964781570764470065482090564946043318255178236206036160356202853893450401368059769671634398297293235274598288694356581418684693296306667196401560683585233871667510892844758071351105282853660789669466589307442278667471476402991557387129151024440836606757672485981492994816949466556544545908717982535570921962365507861692976129607263243153411733661631680541572937808214940488154970725528226473119556784878797404452448204474495446183446930240171696519922763740039403815639671583991849762327728775641221116986137992435294101678141887231916485341337746312923547344566569547266662618782512158082134794293204165358657193018642440303785954610793098223859907297274068896890399061843225357589754092352760951114412616912204236103531940733839957234288110368846501799043177363394926517420730278188260323066425095775529649100437578445116700966703557628007926383024673573928143300331280962931142315015056798770870735533941791235337233452257930334148203685650466371633503361740501458154742039027762791285704538335781853506933770880491493923753045719605397381067265743380890117323892274355584619154582220768805527075525532080908664522296866209596037935966122575309212543653609667571915507030702930943030212364181875341371929451078781951586681478162559168016847463091562377123676651985082234976875794809000003971570288172337545664723972325740316993060590866995277883598619975124266892176399254182508801044511505169486298342254395862002593621409589556705363510206198939187768758390472723475639963375414534328940634679619079193994333041343610467143708213141406033738575139515505878959797093969018157829236086910602533758394724459545706593216626267192834445477645829423188110097094079652737560198135706329039523436189329269214085564223036994338414465225988744317737817569698814561640567407495944683931591434233990145611974108158935475536782805193018639090175748448920763945127887618475127889216279419041631128274032852382502535612497435520863434533733603645269264893738563373414407459040198826752229251490017347608759899116700127799126571650811245657165668533109038938470997840969785261974153315206721196903566746630436205997261368488165864718799030998835582916448938557433271051347135988523090006398485288497859313559233721498565472066563199901082149161603010947731833919780602721562285130436206302539834583873157036604196694900090940580872468624245857231875600672134207131256868735905477318124574754442637558319510443180550319965693619792139384330187921524701956712767036358457180053700953783551876069919602945749608953833463418538269613648311797163663365413094670559570124665285844463391861230308723945067461349993009598232906645835921747926846984136406484147492066100977498599441444102994424625066569068054079105717758729166337203093309389737406943064631935613123479789646643261407207392939320967295475905828110717460310579100951647951785333741460614863005088464492324688307326255102556081716561937236558882696840217631612182883448466836901340432838544396771403347452132681350480293497897028703993666696843173711906264580079387565382356908345058960630732065731845213006010766329001684504484642255582443490554755678776170749831244557427244776401181377785458327851554061950483555649088129044161161095726615951678572315294865546697050600806892400543575105972601454047095580858718283452907168519145455512151033842689290490260772060228162790245177145041274824147496053094143833968406260802870547101166645801859656232980357677299863260951278228989036091421670349694362281149352118889834338532532198029740300486789589939644926304637036217779339524060918346794824487915115133049115494928483127873417180913046603059041198255807519318677634471915774374297980548982892129564408711069817239384431353821130004199364698394801616233346300966181734255406209114754533970450987472401540938725439601662952527886495064757515533480896442831956403444718661779081496890063695895655395697351008743038418489226469198758022205725931889328331851297802068783748649891702189207947767892579560200893548913465838590607952034208341363227287124964843832215943421850823076179892752817599239718384060877046703769731995144693978920404405593080731302403007459412651553589787386515021893163207731775025095166798131640366796624447577437571688538344912174472614986815372973791132043910387712992961806374140277152777263371412549195767573912642506631426999960224848347129598649687260321331021961245849155799166530917052955963478190257842256260751155682328268417160454982458392866615287563031656129359745325827594261494855712503867923825159513733637347030107234704988202501620433588372399184552401820673650684348837301253141993167768868981047553466294453895249417110753088449696491198804257807970189701498025199728142700081938386716483694249044217973100415792864253644807143078218918512969525497163661187910904526167538834996708964200590856514761305687210101615854678150080327231697398451219522682645699962602917692038476982434771788030616542274447172276682549691043472354566691235666615371823501859323822515381680377712205027179666560515344122908913596675509110465908645208626504368699771072081612481834083759539499462708312627328090794279477229890252768903395984910032667594342250086428279649043952621169035023706636189028883333754879239832332553983278259994505394289705315061385829515497111074064265020315835145580286560670688195744190362347974812541946564240341193086779656992961299422467655270191545528237704439799525477260695487883566802696925553006672837624159293116313660682991228952788546964610412547634951594008907568687199168619780601427563727873699314339706295293135225890862013359786969793583364753985682217702366247656807479369735159689014025069018181026984430319696609136247397666407473731384158400808208870670952874794062333910879025149315088875565665555316182138373289364717165494531979821295477034003460993793010291020248481844339651955458549386266767944302433259943151247814745243085554594835216256173700478708219884808009666978259612975033556010056095001282890730412935026837458144098490252012427103683844920753295959303649130296737682735861417950860273616739492718377648212423995565279216807609565265906544774128328737052973953906492614078214659200308983438101347344111450575528730706108893282635078918852199664481716466363349739240527993013697629284592917139700584967388316751550022315372873798226567160369186736987989343113403811764946433951817759307226371214732105790041526957365479032163796410590106181203296561388198833435510635518778526614880350860178504506288949328640830604496599883858689778403092757296347259473655509340791799552331547153900974912728076243419817992253516488802998489375097700642203014011189630999776371160988520075435862135757598932440969971962561884691429091175735758325103428136516972388962801146556468448391676231641770609095834628628424404517562720372308866421069771669720841939093060496382873462081313221626537842506817419854480219622009095965915596371431973372808208925824464621009328049424203463746788813915707875666219261141456405535758218248024197555318205158080985827146651551549852603942765031425697758109097286269117046631417635031100504894596445447961455896290937092726285799495243287868787249098000840311646059949777911995527362370555252309884120829897629901033318040437018966000380106679012851082452051718038638359077995996850642196733602329143101068939493432798025009353144752508520931325710267548367436214660855221698466622502956608045658753347008473320057249437109896042105357980833424388681143487184159491467163217697019215466529690139012989369534520403505692269318312870847005203782968055557485909894477417024905637652533770850652639210261994618061326839499629924372851896431200847940294856497794970226716881354423766551839307870064172637794900298745046958251598425787827173615443169091989149866064100556435868641864101472377092466057058812166871266900669741346303794282878304618524130486438286035123035660979682843184924092085294785786900045856999817594402376741489819798652341920096436914704188613214047290078153951755470697315324881948116044274461843700196977543312408313204643430146626551031984793797120632202361367344837084481163757270186525636391169919570429085134115838686118709032737808344397149775330548835348185536809398461247962653680239000744872620453833257097266087622017339553347964626022880899885509813836620792847654841561596099725119247458673147015076922281884613447154007856059785240864294882872754893000869002683410582873596007069018519463801383040433569281492449378484458865876529957713802896730028496483522017551596737256124893649609474116297590642820039451698806792092420774796749102115871381602340969150013303790444514606047856428302619995084028270470155915875834499860801634911529576300173384785195809391800215009139716454757394393249041831576541773920210038493467539657270672377160445627286909455548230787407178104168840601093129917783978030639483441444352120925948146687465682378537987619581070981984022257084761154456816574575990849115710489045629128425320844725394405722372703926943373696444870477678105674357283305442030968151184431901531029749791862785029382978141309566805856431068397805377622627384732439717224529975435173283636729026046247148526943983850733541239870019684238817554454388649427162546822311508548331546982422593916504074322913059017877682772058862029757357159747072232392107482408538217682920641753367537266965488143822978961907639612096182342375565596058820016379308631828914155074750973177413798741823649512935394750271640704859360993259009521148019275222155848596706984395828623938084975135109202364985976761600624457379293991892769482816442724709888334827879712636507035640863918287264569840558742899876049557650196166223243116617542654118891255086841046709311305807067319688040871722260484789219719513042027684228022497279495264095023472478318894794331493281243448802852478340380804356200296919633748101397845542313837293554557885422349827944615956068544949260784088968035129375839523819340543018333610947218006454689245074816204801731387859760713240274414490189095093511694385685842745931694773554041794784133802210683487858959021404262979830980554895268790333634900436773733587580019264611758620267024133809369928855667281180162645535786104176228002082883949211330423003856931576365491958336621174970642767917088211866731397332832539688657439868510372906508061143425668320231825667934400439450078036970702205355331544385172957641002723856352923653710528136608854563125064243850612650966173862335886949383080398506935741040452769120718908551190992216928974014787844407382728515950998971460464027518224199525861114921522597594085475583369141799946356234070093182446144492727232352421601982454025105829572746582350805968562580974055067360281634393005019213813936110420925100310052403465345835963773118637383083502936111294165610800303555593628335832607411152082922888167419213291592638572750667798574824741743175739739873096275320841859766562867342272294506175223651294987243385931948932045476277098858691904929712156261052411300810022350331805001190664377159807236342457247409709414776848717765654147826825035991053659052575079779928642684506524624550390153778033196540732672511852739946488165918987211320955161219039269033730198779003560530108706774033678179638758615069328667933980837554003807964616892993348290119170282835170502514835734367055933418328922395590992018536286228374730023945673167789498833771134253031511888251926234034737633296886768104465783925096452757375146473946484311324978301911102048950015318861659395430031419896242098047274467435676272530138084430811157678911411227267767257387087453115566559377865178534000969170876356251343241230864433847689176123680157314443384628242389117563152601410111282073841098846353419758423361249359453343263736201710164188879797552942228666822714236313149717851723902470546152812660327590913405601901304843396436420760946074521748029231559162770289248895223178141011903371865156098659442205483069745394504427289591475823264300284640518595008789223087388959260641054816269806904928625414697674159995516189089516493093641868632524911113035739285729291072731154175211876128613331433686584535229936596665219228122856197321564369611468055521136355560709589060996466855954251414312999763131676031249950561690132462135366622838531074711246519331754682579101171210115547550104539504220660840533926013577259108099258587616794520980098412394617433061255784613240703708623306286363798064821580348938806669275081045529263766759827908045705770943225915946183128890264386820658919542306026501084795658449646885119053086043187952473217547642213928274348283153208279943268249921957087679506962142733717689295913866276523933907746282921196128281858534277143530732223170664256992906108809250551914650261427556597716622797641004738042687946779762287323116858700559558586644984514338678941248541329378268548491553699209946607559589175731264032348608673624016883530121206998567292509741740690999378867806051741872816777525257101853158785225268749918577252437538331471824853231457160686071999484395740299557362005463262113481438165674580837161915325521079456876686325502659233947471583888657960715426595868412655204208032277948610055954639147237929945702467356725873793345069102218565206935317161981045076665318654620826073046366752815082655347825368093964766473850640449418714968022114250982202238955870104339961784184681765180915799020957530203133620271080006271835321126301424319227609228980572661934620563343447337529862923352648932752470033967917369267327783808344528907565872534805280787153610367355520942561697879549343521104192676354503800097180227739043341270177885660068920055678061636402773761948476625268653867438244756229658721062938556424364722291721933950663508987892743321636822184488918649349852440971377778952061938351174989647177257760856217507402114103707274642163390394844974361281891714781586025533301493067187300219686132348351119188095975967500220754944771907817367494693013488517812533224994243828219823164162412188015291955003511731247431099995188642542305931064238480393768832867563915922952133783150886069798210188829968096411018812503349675060403370300078069875167392218433776259371663861194680774932879874925735884313904533833949859641068324695553366663585724988676156090263168425003525718031757687445964441433412340497020236305684864807044942788944892250630428832882056141622552893695048150905753199904221582191981790748632597502157653028596787584447309530183504454260712089479805694281124297048468245830235362924935299543125994414288516683527290872396078661618308922059665401089997858208500138723899887835175959601310559436167082647283323050648080210856579745489705653566298228980723871969417280603247042540804773723390138119243505783065621126110450611606441612599419720549897775944052723158153005606347634716937563448613719547457591111358945280320806873458375102267517628884916156654527713703618312329259126081203281794528635246662326818066064905259884327514411758578890420557250371951260941625670626673200671976417966925408746088777693621410547123701226414984262774447181566746914332167053390003411821909080813887262830147454738815142799345776924765072223232072959070246857048004486138880681875254231444510661615333920086127371347773684919112596583716334095101964976223838443071279218281568150424505190383898542595630885326629175525744349623777463097711327357602067265291089308077379555657574215261346762916793068095632866956312753146346127957286153212971561907018733444887184794104738932436825987335875354350359372140421844547417624395057915351949116313539074439702015745434516034013736003661635035910951191323398333002652086681805322346560182891260968509361279982046968316341448035261740109381910949880053985688855839959792734426972096230627514181943381820011455704778187975369841071912911034783573192262239439029407329656785281221049237039919488003332504291861399660597928693710183734358739092527202317494204886488885579901940871812932189882709317258622391931827105098744039415320283598867934751783712866344379796838296248966843135296924882541184989559893238300703286750879766018820776052212476809112753433096653317592071845795188906205629446805119915698058790014555021710522199130160305936306510538524148619192434374032908532608115997666687473315517169966852846419665687461761801867430461068154530939366638802446277287793249883619729520398975153837800900264750686720335222388990552804528333868949841207136782118805265872326323969060718437309378033987460417262050978490031583792828700942613203780131943389929565364633842341210496384921583726122120727604283027555691622367826078934624286137223624484273300796073807058842705446370014491431870395514565506223902826915673764599438571543631853069348931845806098914056995266934831753000692788495675132272651967248389843556466832662610708839629614717971342788208334475103544311167400189009052130283353620562458855847766673402216019690311013625962260378970496245842907064291401065554421116616212615829560657914676341247522782539071308435595889299405002061857964339935445374176536794397672383835958592495281268582606178033531191153026840330725039208716291386168502330519989281758212702347685633124337288900509904487019145108153161105683735308521647771358922745138952800926365127903595170510109693611299417511234906930616524120265209803557001204576557989002460434956935994649055388373993423245298310422875521317011898374218257047349467262390074637898940293249202316749527973857916010928570670925665241059996174716331460194354576494929088662272691506514173240260084284294634141432166308878139305880243946537933935800943804990150018790183777115106962255967647103691839090508930274091351702915265955254005666738993714784796355527268956826988559896003293977844878431195919217050398443011923517119899447065727590476065692274398542059878679114235968214223050260574976032733422212057966931874275364464234839362793813289904793353946950780002930683205010625972030222614901552304124006863245750457286159537771926446398222674311788633133126522514406161256077196020113977318170708678531550316804031369809185620278352404872834382103067573920004353081317953309764809818575141204762832245634600909206209928582502799971007350060180189624032674167760825198970897210745512652358396922698100956983726271019309935944553422125002218516096178190191968507585949709961580570793752372550342135934964183328479683907119759992461030489433278418463624706130908587623201357751630130240286680347378776724317504919850763090831685345777212667491050308590710968146242787864332241256900658659170973244766745221671960129510245268157664479753709343106157079795864336591608457209945600523038988111986736312084994096754253278802587860431439927330995538897531432289593590306158975530750889886372351070318641689318768933506795779418797905669567393202704155894025578903926643561368560775213375591536922735627074418075734739102054499591375337181575964635083055755941554131053174586811271081962109422836074619020377582037534520738168490544061900471407354840384705859725300873095248276187324624757021802507131815545073707196110540555665819129651910764716736611841313053844899967805318643636661211058943192704528016981685522569115482139148257527345965320934193866522428600097577634724960400202032129300582575338840000877575863029927092596892729401700669586769641769826240576119517111242265048480335657130553416070737866710306969041980927128208017597479393861966576770663384265074727252246044424954778800295744271901579317940014291633254008044004200120423714733502089206472619458699215078381259567299715496453642858896080372652720342123460536470611798115949235694476357153398320114194273545382599626207408346521749078315923713651730376907997954222096404910901002439680001918733307143727891123573026573469958934939516793751962761294714670990699725131551367398563612636563299055902395176813598805199317788616173320112117711607123398132379703961836712631477709991100860316211325481322952504508900815771381763646996146674669569598008520385850440548240072324485098288383878756208842439236406292330937949064882017538389236794253376505458628528744123174870731240385055861168942745049404411643422271769967876293478846326092186721001805322206187102330963748678872145662228889652648122439950666915789675208366272244308723888902873029426411506796586909608314541486069482992540026678164529129689684519810375949849695941999862899839472512582492743266397087795362683484341699386649484481525259638339374093963594447447995194957921877376174948305527244987960865956627786819672057381202610288554157141524218454131748028127203988371295575618161758704721768271785647330996534428021564881650170613660900068070209251534832093730908955503506367758336416092636806413242305283235693694231937132128045965070493484374138799292223711154815467155719120393819347046478515748002369783131301310197652172123673425085840629442216354094424202154396051988624298698746551441479469652620852011609472340457013188612128662262152119098736812512580770373164505334770046415268330585446313888172380487572629917642170502418351923367368733513463507538805491337105924098372121747727924267236893378978757491141352501488698908978009047754501883949294949872967691079031728560529611241868231171177905344852593853068966977137398825010044317745738969392002839801036983442575105037508130770420048476342398381846612771953208609466462577292831697437113224056976314549764112239557964418316885297441083165199082636672258243172836270004641735526661687887439984344719481187537115147858845450650372843045317411915394384092609546844509524313569540399740660848586028712650439762286220655932390800684035966927056541209344215392093399977909239622327847687001156990891897155868170959085291150752950082252907722350296596548035185372612830537154596563125864320683367176564187081462035008460941057325763261732853923719518987438071329385440077268285395831569140700371795038761871713492693544566818273635807203546723096541707609854138492465911612458586918752397773716612575401896008333516101382874868610223530960851899036516119048441510697817848309205302783066613934981967507301184231880167874454824552646470388585381852273074092128698012935802574159319857179811047138244595077545298527333311961189891172803009713431473455796568270534622742794493365254849665586414442488725775581703445403883020770728885126456150762829447258246714635261228109703609743140405482273179490170830010343747341183516486148714347922678267491043792131169763171409517253706206282734605140965798140377087387766316812452837082938243830728445819228532302079539637020951246810036505156860070309149998216192209104703475463440695597474082521634376791183533866884736876332111400900956190636976102750209155696431528703575232435384563895691558461364781440144443915547080583407169444541559018499159432656194890756869036035423310048572410127756218891645025411719814866767335603018652581084912585453056879235668961382101244252206804879895447583533197456316322769696053249109620295689800878513278831410775341852922701500894693853466107640257330017868165618165153964862594979827642983401095733460275468781951410481210437198897215121715003515315136021738361236300097276671248952993965223551784008798384524028654895704878555002169813115391554221870226156261447937236838888702881090568450278587285462585245224563464297700011959951539867694917621412807558440998330538263632139709722572926162628684840908405160624974059824820618767274157322806157488002146246366386968247274092559512578679608623720606485881976034457665943996949549630476568530816977126507302665446619068543772566970243922403417637345269175952415948943446352363182708923484260703775250152668538526741919262519016828934988332858252690493931445679208855066328775841111833565000252433723508689124512275796690840863042607011157791711776963594386750864811384256609475243696112312374024550910577450926641418424834685511935663319507874036402205468621876203182250866657406561171296036823638637359732907841508749033276347137718202635007455895271524536566628633865558957957940162135942872991869334805397199603356350224280976192102799427075773026536292861452180659617407759737022235161787725195220345703215003990599359569608671141312997047609482725680338448429974034710341758751694776314513424916044077136282062224216319094862034107697056218028680678194642769556943968323265739008819998826175243613033765968762471918022270700347413548540008992917352775739598141714737304473850189672252193339230153270129878508494017153781704468606516261004980433201852128899843891579471342552412198302152177662259303339354567133454300449713771005698428310069375636627661350102120655471130023299002738118871308238409964965180782736690977098531047069697755554385774989634305230532276494984528174076303988202040348901846060894413089371424184737596468277808830202819699730837365459418862066702456909061450758040364618989279709804185308953116487493495530525849370312203980017277327700829287315722753367673083876563261891337813913920256162259195550140735511189951539620224920193167201465283850562723092397839714075068844431631925311096952805151079260318349079704608675656065726558454710430785950620695869041962977866002639099268715430165191656515409713015166748050500764633792138014562640417961865310911304245702726770024782685706029582627661169881739945234256629628953682715876003595964976919843543520131937409502970556232370017532859369519154501103652341744443854450593828755437807810449915460580182775263749565757346431876787238718688312635394178857759058113138035614052763780524590408197473334727708506850632907895004078142014144466259796265797420053381663128881363386406622154923577843328453086502511752690558220570865455640332015330041796892942453967757265680457504172072883672873182383213888950660588511084757944271858718024261612917637884042118634094081904803775142852367949902481009180780275493961086508268926005389231163122365986729319041680189976770723815362805074848703976794808353866655760015584734128424583769070392281996032517867872409374975797208283688893714298118261843898280689133732793203376671450373150007700486834217503744030740681743234532004783942493784069908024873536292651703087402395926299866987794761408615207594766539338995979848113565424106505079956104658263463037327021122506316903471508910967245963977917016750789340169134488402797872340767799200594286276067425093140582329491733699679109842044116358396327792380988882306573851898664069899526065806598722612990231865301514940558731704289544156068790848274680695553573797638483223609545058227348172608317804527359522107439488078065071142074823824137084926926368452843452068731079927614526381633628686694359293788200989169621332325137868774654141507441586698070524980141964291426373094311905845823485784506879135279280547042791579321072920593082229554267557234182699622203703202764616471798275997479238773699652653545972852417168054960939465517858640849188114260397972463969318998515709506107054290454452002307302857325572539273153103452382018404753370642990094964993750108535073400639391059444483521616230286709964479458336741766369853167047491855106841221855328552671226712158625899472828126649738682957307847675336391133964853343313093793107058504353115565897837931132039944582754044287506300325341121628908395663556040491802127419213466376535058142645995383291274052539485315604533401245764578111701607083099834103384116833364894667569005994365128586854678501552855679002005297324435039980887873598235851722642204103098369039276206272583656814088308766992366027124780085010589871009637614230676064812335507538163532614635386564066586619173608123444670810992683949184466777828149966223147804940920947386543744749030306398216008201690594707220844389541590125511091323639947699036459418943549888444737013982397063250679561230342420444907030039094388928102911450119511046185456147664301208919628826934796690625083575661640110848412029760806046062159582495526195204216556638210943397774417447511878250964657960594164526991454765273102329443947928317966529167220830007113045421080031293143224853702067162612739532788947592182912937828563597897897764681948647859999622080961890260228835811283577017731982214295921809218141610538705618504255076251631937816002385643920612447990483298504572851504819949485982028407468011295653288782325114756940921247664777677187378573236615043096106189594660046404734153675396798783650434147814088836100662271965554449773757124791965823262357963613946408636582531735712948138234099199061159886431501199717517360116750718941220638012408703669583327135559344604497917343798562241877837165678456845194888208950934786351707521303180598665867686557964180069800464813991724095126030958421530396903736005826235403764746512543302588193914316870120071483573036374536965193261117139730852620486046990958233390976458662351510403956968921266095378856627660619756795348547687289747909194433780293146143777967175673956170407656500855593738204416340201521932541185297787651684287383894430125163988783648868076341055879293480681627504872479313979095992065035253224053191472095104847589315461451386179651971757141303398110390276497511178666872808070438157040504718278989409462066897809902613368639335264805356872783576131293528819297227007562123966274793926579718010654158975861080439637180414060790597924643727188540404657665697383031247450718318644428661404066118762762611749349335205764117215385541801620161930218793072474651380978526157946456881342935419191370104572977282700352171189875742063309917661878642033445967199916649460965919911246731654503678734059651177073967822165557740860587937853193699980423006020629875912716234203029775898997914129530874577964406976988393564217626698828217470374256109859525556285150119259470919087201872622450870695571423773470517522977945453541913964911210531602268932598627439915135474881114429316913030235279148058112725008009214501002090666151819091218788994392430717001375674682419924941151899092623497494293079477346522479507094809582114270038424268474222861593042833148624356090984066037863421551807951826873990030587214017995424843987980576914337463667886237002833568426457689714514729154845108645686694362697949917836266415844905627203616413640583920859671233290429964206603450492653169737390516686224296933901725474530711935270768440380283121790948344736868047728473159870991415400435670853317518915146872923317995912044404644197285328229107414310676877068136812896125846403897180203155768196455070746657038474036005863991646373488797810139783327186639511618493142796282579110192040989090107513560546699688030660192240896760518941937466391608887682748269604361076588187683057370687844143027699460962646052288192197932507090206598353843115150828053809796329967473328997601694542181009481430778016746663519232229870115065756256786015541707029473123949853716441237458315053714040772454095082406771737098695447701911533200798703906519193036741937188545288100433299779053403750756112299907530518062805119854385134371790133268694697316844727003296129062951778064614502503564221933486359998720678990936901702034311238502812930411792309922587922395277455739949019388632205325450012913613236071317214252645026194643648363685819937555809628465668586818443709997051732575217948138054117876891398520523869303647026423669166788612960756962147554468936934709458527102994923108523934892683554648330856325803845438355750075610033218820003268962604531238345387826242964155381998667066829916157903013572277849006537937459266053303515093924592800212467024707524780570583818658436694524862445296037687362152120741505894604598078694446908160076162449957424873021241898867335329350290393503273442876603258144976186132318641891251118511951257673590052983332575901242834816934721012324859976143977222978982837750857610512223618004597858121893838300729096012592067746300420515700367109545703960162037832288569039803960055248893965200082878055186687899619866822929941591297163568449107595951084138987760794544522471228655252575618307090809250194927790947132853914366618546830320318007893541299728679281512108281676999188482060197984386817999855400820515900662854462707724061972671097811995960893470692712380052131583687253234193970925702391313705391604905392140234751712282155590331794528672284437000809429700973485753072505318337213678858389066719953321812538695039532240920924017042842078877723508272528600351574994667013436319632885836715782961496643419326079194791753236557912246018852860128801077985643841063458625690908213923952112356336182595217097926285765544630401883147631627151109649094551643444379062025419852663531198440147596291529136789349372147588687924174944450085033710141360598539533684946844409967823376189887585960885054405008116260973407944826713864216235041748291401829912106563399915300966267412747529460736664670146123123676918948447807904207686931775722906893207469971777517653835261292501853339351082807131222147168970186801737019873120215168557483267373951852085658118457663580168545760674760545861338543775992432052711173138251384306497257655122318079047654386284973274270067822401040066025665836853092903981569564583198903250624486629856821544412038118797389909271233795165045348787743950623971930236959682949265880186661290326468999310686444902097659103000847058024184402183898716017681332757026623086409776038634390053239810888774331203358413362855970537416035408748514966790293314314760337437500681806239492597071971817912507862476697076422199322982443821161177980453270366691796346680210675295096940030620536873787553557627818369117309166021670603645938251300448350040572843495019012187766441776991888131624952766349224969209586670328047563266341804412341780958232038274770595037344176435648340448238232247901327535847057670448621850835050938213144268410607253180967706053104319409514798430788304493157058500052193417129465643847801415139539122650461829690548623819457818290867955520771991111976752209919597551304367964236522581600481486219177017685255174123511804517496925920635818662329069124547276309835785777116759216337528995471791317992509946532962602186428727439336506172212428059086786679503734482468802331528058675640376141860044947183408008230999081671811702276958508840244853100527949501536877629782897364827111362273481334112141450048213594815586788100518564613012631031670996304885937964982133867025399162789599696001976627458121317346813507651238343738650520570514766558611823171687920084986415412960704673957182305792588457044240836103118494954018167737533869198823068006791972960239752300336632519629539785374222460303435944180049958029831452166634575697401613864197029443765515898144663543987967573745966087819632097709366966032969179677052465562373323333644719938052051833558637259031230178220600191225662143596419050713515979194399441139441823139911986524947310183584983169440999057749646219844125391210250915165808308316929762247443513871529558332781167781824873508412303216328862944793831350249047248594815743371391655281008281501396392678739893539602799312694529648845443780023183772676002283528691977956977925094664975543367525298342433335996342992396884813219457679091779923721973663102467857048040094115808856407497672692601097767811965553265301719697265748963710767559799253894830698077879408283948919130955403483440995384042734182665612826392654564396378469709274845529398340760496876094879365369074336868195035974925471855674909966001512344501020382072504899949578391917791629343486065244003769790888735943001993767088760462016728161865915757455303314661306470326136981231406163798106049214937828744568678678919670221691520112036422133849373119908872528692883617849952802454005545738559015827276617188000455131680101516328335970489151248196394308833997453259583340042683492227073915358321340970783191665683855312086853059592818407183860773110996013128751820077529371539070782419620273232102776998924184275983074554098760447088033667076242616655659496786955872845230859740160269161587958112152265292464651042712170787626887097010438088176789754306028603664966872471889840458042843423808419491927949065586443122611981610842660190921243292540114429502408612919410479836023060665456685221177636503837994896058500198559219551232937689726697102246120382583327200957735992959429440783475064234562529556675580456155140076127508416221149412772878659848017077660198817666653464076825652838340010915287823387071287532364865981380189511016630828942861190214633168624406057832887967602756135282249167763761173122777964509177403188036366504022430285571944088813926424112223927293919022645680861432980578791311124552358413694259588849035979836116641059748780986094620734087510868963387704456551510730252577811127922905521076263034697969494282983102101223898618680647218810446735602656774727407471113279816347943256640271379197567801629297064063150414632698967305827392614539343155804443392922725343870078785728851658560914446786602399683386115736162198064994135617050208884046753251873973235118142406844680888186317923947890510330855645286823437815377231028794595925350595514292700618059034448487505373364801186280864721259512417173983214014240273571647018989988483554869276692427140962061574155582481004457953933831869967580267661566026280079814834747883693944892439214787807261077756574428329569610762364526102712293956419306169900206757290960510719718307128399401597356537943796961544115873043038342113830479790846595454227402189500581437996315687554471092085561480137317796693712059522079852150582225798604261912827241750135066126881987111650123564795843337828890105826516352912204119471501086290568567269427816648038297632616047171549269073070869645979479881206324967670676090513313223144156203452052208241025516410027753390187156739694663722731198536827626344924937414996097253676416011054619124475940835952831280552770076730665608294807065862508288892733237795155009894168634112440671564791364805623683024247776113099372855713468529896926634352697886938946362065845006900610178403275017325646244529557212135544411504584294459505708725000902437750235572312387123155963260454864853355658582632019877503076446922926911425698511131836608677396766723099854141896117368277010788686674284089410457798202254632879609756330251722571352593844560417343779513632164229729535209896105757842325664125062301916664405825667198431326319371055593360175773950476839346543754509817757497780936714037035888851474937996596205634933984741079856820990314379161740681959718554010439022407024383220071508423596121188684886308857735797946026238910376815591728713451657026780319623276538468529719445744488936480992672012073977430113753971315497889343031901198812168005141937042186552697787472764415546237872775966450159639916734510634354309576836732837056836090928309850979392769583492304649182369059748427621040424834598562501550641869116511947493069028975989357549681167315536405240231578180673173300308123378019221755006584357508590659064001932426473711178515732280910380829116082853054668578904136722225029766776263565436057599532140102794390900828439593625612620587013874782747892450795978778480043779599570158832981231120437637388478976393436699049937859915105918276094512062158059843747180025944368017766066503743627966589526548229971294465206645631257912775150192066335583471662121299392688969695837835803992011838592914353930519058223870859601715532002495021947731167470168477219152862319512060114348087761826916046353776612883319393151901940343934426388506636377298236512152723734336627514318925418929338512868417254966983433166852301436709403474409084600915500786474427306109532830306583659668220548401287434849092305804453444940904294096384828470827134449085852924175089818733362658160295258532013088862258838212040308726154084246090041334250627654798035596801721386168035831814894911367380009971281179380836405667472613469679819012920511609314571255951309303138818706038542397719251851536690104136618534623365819579769367734419673725190164561024557624611177516156437372488525466130278878230280619279450726015608484488768565490148696922409741607034907010186558254553222826884417277894683812619584491279410358023309291798858246289707425214215108533798643883579321511610024666783766826094373991615142345139194247615545184869121373116216142433471329119007721716815951543069660069086181274087971289098080033747844040260361306884431323392345166165695558831980807111191233795893363631482010348258859895046022351226341498724143112049927910940750619265712951676142677877684343555713305710871238664662538404342132813129775658847623427440267680502360313893164974600984742568004005376753702426715601812472606197168072528434531992965430747921703477609478003334516158827829521602470607616731063329694083225301300396259712046514662771670505785679904105680663060094911713064361317354300875274688914887387966727287980394828358282893511115263267646166523676554885328966612786211376569777443252986537030530105027171831070290928633002191772117771866660034993488479439984484633445091514998277757590017225863800350924663051797678012711134483148143456462262540402890430254687356207110697011500602223029059143607771788660902692257499094227717725824158622767903842919703863812624049795852242413090398594726150697189629870160869354603060134918751460177878234858380943215199953192178600726918370892803574114875335432728653678630561780781608733622255118878632308650520504656504284471779380681339587056948351066299609040444243647775098909760489335600660236373698234115497243559160353173036568365821456612015116586224248567562726726583166721354519604027029284486123013597868978047512479954600940814687996684064756069748689101481389203258803398416203500061942434809096696853246965944106763159056425405705092473497385118761951009578786907531561313558771120419485810592128643121753670809794406986398024323619607482101085856655733214658208045317223818474886638936408317058000600958548449131796260657767562584076218331415781825637222546716413812287175628669017963342543764334177813985012770913997058715318231633810338385344954587061268937651907529892820840744553865014559440742668512349053399532077881042010956089096840882245026697892439040261687882103386404061780982130606472957280325530248865887022897786877272048619838366480497563781125775278869073320279151641009691357062531173674392993548494922006544665758343637279142964715482101966385876901148894222467963042898624950100282536485876287265485066720279260890833771836811104264223680758659808785985851321229629687059949731585315843076327136649346393964421160501855252096265531432403232706401909645758331049303696405000580793308367194328679769318047808791988209869601929738246249327651727919316377954135059394919434201071594843104800123304702592418901840682542582565041555221835256871456505822676931247438635201028512840608410356759815757426255341208441355546581411173385582457645664465813992957931570777911795260197927269311002555346966821508850799318442395602392053612984454557629053798221505624723623829702184219449283661487480903273539491322474667419890796084460455130175690546635394015958036242213356852944147504544177278192137078386256586299244710588372737082767514924829650492828578634330804726952951968121792676138557000477651801615441859563119283165356550897052373395431721909552204284697385775201998541009761306804195579079378714843837462679253145504628743360935774950739423706487869177505310957888442649697073452378377340148788474887770918097702783257287107667030795702353678964551211167709123395954597808056817966563953516281912410204081357260800546664310038493337256543980779298545842217663018387743755579379819767714251952969944228126056266825128538423031390424097765687785110597853107210636150468128152030950464138078600637036386894116786624575920101704833509880137784234974140612205353879008913529922428911057873502705134047806955724455003136979545370236472753894729911029391761161033283404654303288075125646105486957325669758508120997497895042516062561465481034280140871176786222732416091106638421445159645245619677544942609068629702335741230897037791239138145621590699086126904611788997473611424678674524076666825588055891988720727825745426794282812988813894024271637686641571842092636586773914357502442272429825696479224530048810002557197300352424220983280465255317615527810196624247779840472101147759266891048308035606727858049413004740753331195072845967929117007588695860603944260281744200849596268523613649065198556071967224822643209257629866350246173864919897311101383284655363480090265328509863176410680067159069078745534697255569640683381536659548656807996634491544665508773972118947735699753134069024947824524368639575794699971860126893610369280386956453501901207287085021281954788120281529924466802365674784183586751298312462700079993737752284306083057872641567105614471118434829491437370035724039129890267733378527051568197983079905254637729274028244508709620838698337418694848511041289146318528876857697827347948635345739345896674245429397017990238562385378181682115800255967283584301966890441658608778784899086277541985288497928446580868509315654754724072889571066149296446908453886310617945577533289983596260871686420370734280250861057728136598381117224599850279621094177944136443124479334025102208012446628144795846015869726239114745573704996884051344425341477365190041614327813694449224985457816181352662419965127740693683458093188430140473798308440637169650030351183956173164913204052570192828419799783387143046896516028807847197232437523985747730913903948431532672884979951113305612182962531557501738506571191365105636965747786071966959337874127550885138317274757821830490546270197417169912790839052452790632518530253201334315144078306377405726311395041062077783058353130229580640547838230670585951631228493642642623325643378806928275369333540777202635710921518293715501771177427879814817960748448520997630921767195738230499207333157851706788512029821387345928517723693215460567827746105818923739814192992432547923029815017976255276773367334420439537194283588182131752284806938442810206771083874336845178819895036086598489423894371658166792233599136473883125367262753923827316859913202417774106090663956866653677628106614033517422818914524220073190022185940573303325096446399161069050184187943206124595357989450451950862163659137644843191143373910939019638718847716728797572833116177042930141633730959529032361305463514951102861104759297234771327775334314844556555846702635025311707098285712013297675104429974427500202867416906093416860184912404861548879206855177084680941931524558944362692009420655894219990085961757601501156802191197288488350659653550446894164967936180805236947100965598924189927842010021012480305154164523032829983431900118788933014996433880639031539191795247990872366247780428770016418153992674221283294166874933114903570831602179211073242315147075230299990650746537087050435715447643831800615779758978599016938833171916017586586925890386753717617700639950919757167257989695720318698799405816773173751594409697466065677987079768138192266767463739901185157265561369417126059851949950872257427653316695939811171139334952004877971913855760950175244557590810074002000760093589014719904837576203741252095880501727949583639154608916047145486701784468183659447360674343000703789275219538698892080680983561103123894751291644448667304015133841100873622553052037952671187782402449922686114627661876675429879644398768692407669984859600787136770595099519215932046739952657320096758501003539667411815820432719961380441078628621474017023210260231588873757309981399368917463607890279206782347226010592816427311436927695673595714424111530748266445425481988679845546331318865014615108042030755867090984381483955118796702611336770357050969487806993079845566815102741814210207686839353499559335675940158319603589739204005232445806224964879325079923354487852717182589640928743714208752367565972328382939244948971777563777944211565754775214140686667555472856917281337802472269147326219683729064251508089834338166247601215515856179066434864100766526096382534377803197255621405568523128183468385760801593356577430777708521428582723361987661881969464688907036921521274515256610843780771984588374337419761165900557379707233802795645823922602960482593707398057938177838956557608658639526813170114074348538981689707468878895964066705124934573677223658107266931004779029851199941571968690625986083881848126382210902857136809992655948352988959256925259017161664299133940544660443728322814700924574763201755070482610019541718331668509103138876431376548058565228314005188173910551389237995435963842991202196678792454915681050671161793614287065475453125382629105428628559957838647826217850607986170548598008296940522304726903017287357057067522188321577273605195722674578385981195684689247405636102509857854534493024936229515133866238795171668559160829696471111309988358314057391450457329201908570994670527914783700721772170162227112958798496111615003280256266381555428365357152326750148667951191589858100598953856263230426966477548604031884144290105901188406312857349471400024783400225174019104410690829893058847495547805249995966560805402738349884430408757424548480642124055913796029313331885545847668210158695469116565067455027486929915377602467054301950986347519094612408836787870022914080932540602563671103373592118424740945105049819582452575111109162456678980867594908531761150893047279699452868677007127174967580058047045621590002062726130176952682127676784519521542721824696594972448539165313194141000755875038112069899090484310534676495141952829719879484580860982277148641733734300896484960819455169218047435043532074766219850159098870935696224099579220275195074735856140364607761236949702629685061248900232654396438435944473578890124170652181024215112434337400401954700885291372885899918377353835880629942671884047266904986546220709780791327813421170715068320994813466339171225591459143404181962088827323732209008042801871074727937622499992921476508597004636379259116601864663522638112586722695574975048590052577447379691609385931986535335506444994169446589472031511080040048052373487473757470496835819011626849899237525959218722756925302064347223338226694143498025062797023249214952615771664631419308561151850456583818968819030723651617069299803710271936641532057632634951240217154203563105743010302276201081115357935174376281252756352404646172528662184122373043577181550129187048561102398253407437709581926613328938517282052859177677965330737037077202288491259972672665929413019235511719756944657955867978971480969465764114425022802341890051983699796378398740347932553476262640117960009786769876374110856728981997583222564651191369451187124290572698985626237327050704968282942715757772897528203818441202718437615096509143111257652447963592976890570133872533014981688837354078773015256438515474736784660113681508393773399078728105332955133368489065640413925384456889298183533139848958053261180604651357726926769178567583932548138220489805753598632659761007226344720564834939246797921839087521299445351131938703382678833517355111798134777851237781129224478015117410987594798512030244178105583085249756335735279020114651371386370747346015785484678276607883330283859773091524413318829256589283992367825759366419971588854916741876672819045998429067330645829855189292694884212060968867746409172573881382641292581366126411819498370381269891490473564515799075040441748529695411505902125835679153447884894504988651566848811916425809260394608000500814902282630209619338596759160902697415971573537127603315854055714554749644309506411841896810558646279262161035341737312769590301560720237745818850763332248078918379350412605611514628161481317665380446106661122674388638488501255045541299000124662760569297223205048885595928273529680490014033930721882359683000255709857259619021654285903651295835026233637913652397481502632712906027134724910549067064030099375712789039914801840625094467054939196584872850799821092173235308922093727267897894994329099013638002504796897982786981188964701364418537665087098721872398337474246308007473402395215089212255356079984284130674453806110533749836685835322974198786733803662955695231063895745914747262701379891846749392023007457403689858716283611031606949318860279052472238838577008714952802990910710502189167838558767685589109567531664764869364000826445651549950201282360103485004883982140093888893257825124936465812238219656558658664563285443660695312561562098741951529707236935869115682279651123245137492144552917587202499963306203750789688003236781228065431202642242490843890202646113029170632897170927343924562100341463091032036470813318713230162563370312961555438275305178174206355837233358382099327557065672796238925295016491391338076216934543973601103269064490970072439793508037305071791499288626907091252811336585909540647201208257184752865060885839187739243029483503291518726767722283130270465887095117465792511249940101850847160132742171434753399555666888825750632298268077911941380165532570579395105283971082467559790996970943558930521809768769412268106957535828218768685577862821505858164582799663450426368926292647112622018765423206339828980142670604442105870344765729491026394139108042199154907665667594366661537220372374021257232768208161531304967793805618744626234337357606505382349928900160082362090600939117349674085480880995873260880445105707025308756259973198529967962079513675941301600850253122147434737576585265422359810962553201175631001550464524062023230212713801240716253269088353552250549212068388562384005472744239682895854375393544696513402996410496470521113852181260861150815866947669812471941150701073856455882408346174380995775001501182298095151896629665371730756794540256925691428490786024519926616003723768616539118488578394030449553005565650312909666238398034377868540454513660550891747769214648009750705656945698462806188669675025489268885551861490037459717848171416791070069829322047703191380116501326624218942654621224188964077085550684418343627650351937932029986685465404894743393411938470848256653226000019292023250224336378221418768953137698171763770026237347757284919065691235758273876708535359080530725707232074679933308260007029821248025774805619604738220643036849616351980987065867906369076115973156371734487078674628946512119453049997061130298799044149142039601296267800196013523893409067568170383694935980033234874624107011388063315712716340432338653116483928001187728775732663652679923626907497225535867728494484204076779798050031343022787169052441949315951518706892637232519021989139075555684815313715983551109087079548239545812737360697771623653419758311826921287781372326234583482941336718472778058206768948829138917577177066436389297162319148299870955242091786916978878103476652125704239629373765459026498728701774659628714157051438842287136017282125887570747952670855710134682534592134034546941133923191366403339682127543121051874449853047252412958018606810178951982568945735145191771951418447093880385768645987597167162119318379993100401992077523465947391924904569552451385087897670780945663694879441542307621609078143663321007237762782631820169463583779969595090030226790291014746979512538198181186163175149339280425339506939144937393168439888099630662315876796825157200760621288144990277882857774951588764437695164640292558923695969698927177244433346140980249829706763331738502391000542723236567500471884675350170218163624920180767696838417634288609590114459823937632524669191611965762488237541836884232314641224662100632585742114469994537488037727541674832181288197029376614211442356874546021532274594625448534919188435899263174361542809634359310645708069192427271851241735094130698788556482345005766769833309660591529606976107907901427359234000660832635803799975582735250811611118161246756036949729237636096832890618678148771122652742579868552947458922981609699236694322041309147206756599616261839390869337865160402923851524484323945840654093618349739994456605241072316330451486273977040136544762280825652770491455881846141922687038716299637001050252840135548272891223488104677877696881988078137940089611290911519817977114226057160429649596759061549296194142653341001081155556399964921436806250762610402281879344483056488007162751694384782523870369454330937038609960420662572209722246838330653804992927258292993901285529481902848114904648198638978005104554016283148662232643195539199555440764758151090637728126062429688568935222843087624494617074815082738435564901304572525715992142341034014121738552543218757126962783813682836213404980674177950539080164485622816226355415536697878278594405419975241076132509531587674747247206749102060894395933689567388045079083087233403513714222605798051596422072301025463371755785249596942651818582316348441295750387354472540991287640829411889588086088230548565284403348032559044272053204491809255397838398824100037275843479823490100906974756717881743086182312177374953168226157065603844321768035788707194440322499720451716109353507434735385634570702390899644564684341556505395384155535883170598560001554772815037815001177097024992734031009781194145054348596382587787771670098149820061727247230218828020803604332065302786501940906744873486003605250205687227324149039976323055089313774882073039031728162441416247807318951863094041121968372629724821434941717140928401301504820812621154995220920999880436376818755410680187781279441305851507075421685594223717557768379824028297585192013167506454828406875184545810931862309314723938274348683705836124917274060325238857534889920404407660830519298641189643006374199907463871588203879308595982324168465249494418204825592520723970438071512967641688577327992279127488338006666871104822484833282474413911342366478260071855273534095939442249105426297911968086579129082778375881015034192361232453378307080752995867888480385698289918587451256018537463485571619919450767319621086786848449703030334752966012926451007228537075378124368243610561952585542403098621611206973968711986205948635034426917028199233757242799531064920332036186724743383007148424403890656919886204041393062705664287374073799122999258197684881509012724046782344546958288861960918426682010757199190598287466757924051177862497966130474756692269722389692252212050486076687972142543348361307390937977472353020510155400737797469937392665493835987881541943285021636585043350628458577495125792894322991806185993480989421464256376227471533064251325042927156936322528691645885148054098422872795160958683385155984294623775731097974495464117080991536889827270113539626742462416485644470608616749772404718329464561002973007595947581121782307739333939586983191971308459191278122985123060627836453642437170810027582541079064280662644391086604778267146883962770189073224330649232204455483083957658344573175525491895022594875059843740335540811842675131335752304062941874052526293789434037037796744420903945619645715643322665869704958433675087367552540915622562472959247424205884198218125443069443780130860662153776300635958461347648867174176355133446714274912251190272518923260926847629034633341103084725691697217166663408894436011727103408821964747531317908775760652030384803947442996848662730417622685081838185766029926725245355001433206424973377657783150684876432133553225820043980223561768769964059430856243797629531334064706280594977059679245892389794939791407413653020136486743825359117611510457856086876182661108026051602981778433217245031239333089818772062566089337644159036627546827061521578370495655357298780832412470890343241423502474727533324154014410079468265365447898512685715111987633681183682991221548343910584092716677104325569881858919149144188165456872358014650359728082351018823975846625390092375711969389380597708874539657633011387088470144401425510572596659909940965429601704038077284906512047569775335328500128936161862085557138513819942415535500834682702000357709870220266313103812445040475827393279063449682811845971144440856517010850581622346312210790187642955682496449719510699703997260424424324461709164967891423841454359065408810203939880405822080676381359139458678764457237402835823752083055309559714239813522618330275575483187402794396509073389696871041196469527632798565113906471215479019229729001267220451501124399116240142873402146913329172970382357141815608774864746100392445567783807528890554054339927611658486389429360596495667414127838659927539487407503199985736005896119635777922718881987695770968865907293189040723424440291116122865424922254458003610858155263056449576598120498253336547176767523238045275797408899089784726972262272230682193632859800769662968419311207225019154891555234094952164883562018188137820458069928761903782453248855012773841329973209516513636308848362859596608266909909795289096832896116714161794529509555912616015016542071597016890988600736297414824011421469745438416174074097705560591629738692675358480373667470556115129746502864074627110688004978546208178587143356554444286879377048760177540120119631575132796746399324352379459061221789202374970381337370026204083552623128724032714433755963178475050127434043807630218913145772660368014590384864841986136962704414068024061030524162225191848752824495573902447819475334374546845899919715879615208721092201777005420457479305369563961008029126395885261721824555783251043452790712125096473390771860314822026098120610828101844696923253160079065776851795219641345809311419882361065543061158700135610490547733948842793779718464862309188880553497827557072395605206877602838244326830067680128898738340813021809622827319433172816480328658257927011882990699982821852198105159541586548818319074101174459132582208797034431515933923494467080896036475439201580612988067709685804655424922252643977045252884085981439718614594026788880296090257054078724728797067092087042747996667634536868392284177085356478872287129594805711995387266715828216236938693146202953901058736571601657015665878530982027224180973155346844552204580156274921766863540010252683911499508940900331516404275239427769474392816552810996421312728473086290037691973490622295740483539136329799242839125552723794049111222922328988897793589114960082876398463916744361976582209391764318263358679666039832812314515394390382705228236060725060340430522235475750032020474518630236004521254157848845861072909395478753175626936439410761245355144006999628538815806389142859051142254106751667446500528113300258166696851990837234532991440245579616985705306577262981087374586512587582679419286370516681746861780534452563756508321170554085602323683507114764762887445634874765285660952200701744031176662887392867281193637341730938580959671787557978373752325089376525458338325625677456572836568671014859353129177778059432732813258323445070041804641122029909094844451768437219265123282979861496513928738008277954772316748950682504451552908303843376017855807036862517063534879711368920078883870832391167178944040354342669202276273548734018684724935278104807720807343108600402159343951151925649039362141506730092250123058094873437300546356471565955762900912305382449673203879641024073852451485927795066734107048863204454085811131495160340594194523304198152250674290737598713670080348613415538469668476721813434442265148142855782332394054701468718547225095483640708046003514267725514527757534369026589164738454450580675679226166462150776008920899852978933361738818769981606057850907423125765226400035458112744355849718519202398802627313602142061202095981680499370534233027748605704471852343580139601369529535453629327960715236912252964795451356180586816611488816666187948689546485463255855082986103461894585154551333842101793944618239833309191351788143211391161724672984057927344216201833518907867951975332671772364977705137030812647746341540380910414848753491089989911292094064610362079296959098565573261933119873031755818454985619283683914399202730284417447256852122017347821500251997440187498944179855933046019324540077808141052684867374252950445925076142456814688880707353341748572062964501199404837358482307144492329514025525649544239379927176834837169680785366352613101584286846503286874736116072493374307166253567468104501407246391144099440247683091761859128975977550817553714962110079779814727936311505111081817315465954996243963179944966782304406515521031871384565652352377958219850448945601564821136339679375348754927818164980011260248870950305215026032308595882379535576355202834878323158513481599683956031814652303500132985781297828177713940909973819591718517003771368132819434106668287176173777746789314976924020895298815742819966593929011960877256044386255138794632401413642923196687936252961011444281310530369090635341208281911778166345097885764893673447412147688434131706094291270762805043624869734745940981834570303079354411377099942806907985675206634373286068985588650142553711040343223835244479447080910304131404417262410866589672787189933157907471280477822523727962488452454961584248164975183989347547833383252375187575264823536640716951006447784195084593820296440797472129180335816964641824612143963546019277540690362601945620070722092023770268677544459981815413635028122933626487027221781214833797999249252659693159538906279507385622376017777378474176469771942970404631074309888171271924657003799988651198726824477955850911022096258311417010428310969893915637749354580564184573390291106450900408859313384774995459417004454395730316947676240030404077816197705760841339261934777276633660336351746771444609226846020646547712059812877411698093920117639508107197507967191527231663333118337544633007352541649602393832687816302204014011556498072745979770709988263596656353088989575246266426036359088391100460297073384576772515422013144865071246939051160158568984749951136615637223651919110665221620011468377302037426980928333738078596633547594851738563234794657472042641144309293694958822231422883055650268659572507431653923605380616694492017015773015108254325738084846960414897939512811175135091421362262822633794905467325438645539401314952483235852687491445681433769926473971599162074503073622451613117602832400843232465620366315907920494363312374515467944871021532895470817394980826011947957306490494074267856822340431083933859253977244015873468999475301954072247164785917967885330117628849553061752401414153900649742489569312992085163513554927650932543339321676648707482978398955023510596199157939472051806379423722561961763881527373535214648818246937262527423931689502889604912014114436946065719324542519389839293717544991691407606922062364248240984969141568853884583635728299710686864949468772926114511296374551171770164658876215041229552272083622338766054295309460219407895381524418722728942650618040473584773796467676154708252370815618263786549203000087084612513887521783863741353111098065359904352533737689356608836199787757999116941150563971016462387832623621770975063489617288539412589923616617725293892615816543824311932206558926197965509043889805004912973427142117156206234294383316255448908530394052900918269185251856413146622134868003304684824585341630131044343314837136779030595024996251869755918232298984328005685215292392393959779213622517524638801093359279966918198774936485101805913967477390865778276711267929789684646249106483287126441164582364451444158934084286061012000121969778553292159627040686846009135419872146665005881364336892890948945353969934868988009256826866563094530384752026708746018800603135072443322019353267026500571511912567022042236290891289865050426686752728277784125256512090548994195789339713517046490616922604238788929787377405632976509036357820445610521222005352741930065040456899452281601082315186530236907399700630315021883780155365208053578141500078711972718972364454714263976241494632671045954809110154971548585707027694644273460683750416094935302269206802865395351584898479810880811447705614002088321233510774706933028050849965814210867943527950012989513446694012688902381063526680081735831156253113941906851767081792070495842502677233127175843070690763454888204700821106818960097205098087872104735432598324636414312158805612110097393771974853586172525929673370254981433432101682188927470419335896611209604371027579213866948492985735542050970088295162003135529451182246838423567316516879150962307456761948397224129918913987020426148753729478999063702595421093623425056092792732318141551746479844508919468988038336167505289447847669746593021333624184649618933481830167345215104453823941878064872931244000343882907987478355962376408664147242864119957053771299437191738493987777471467390792011220919470752761679377775365939468696962606571146428348105267053757448371281980732355928358302939239460274568210505091867660077710679548059494765813464557852775727143521900501056616305387254774401917010066972018154913252733882688934362147609353675300323246460401386652171620178574323014047086384475941958891184353527891997345237123317612975828561478886594524433011201406787692446388097879170183188317107718450656185177380347131265429200429596025420952216805185259482251238486452757943507948277438519225458771923365682231501060080054730834570100622676917812982037049544759651180765007293281827349424972178911612666185717352953081760395964662979974181177270363558028840472417990802712441733653189806191100723830881724322254859737836496905455133799866400402607800274217925278064897786745924418031464207032869680746062270087733141305375187257215244759541492551825674177143207471235620948700429001617870741254058637103752707098855432767562022243250468410067054417175181960950018241228394753386520771408597534898281588723251841329571988274207179428350249041188190301140254758053172903017061749525081237602387782187930679412003008608132398944056272467300574833807271610955310612031799296957021737198891427782538303729341685525157198546708955971025394220056617971435875096654140713435233764304796272354096909365143415801145397630154018573902265434529221036188623686176097283114640428047066994827365626492807765024095676931733891916373635383393865191766367697084056836784721693683926340041928405105472447519134667648673280738224528384493044879958212925876380366967225013523493107392528077798325243353257626151410647786030411410862260379060218385652010551093293477960280877936871106220820368374839666173388642967845953326266572215238614089454144429471648210668770985569205381749576917621445267661902020096077999346267195905453537399959439354515562508757396715692748886998144883255806107423130036152732207735194180461211016227592383552199539518851343619624833431700829680017426161839333033904379607439124489198463298176897676625690180983349992189037760327375015412356007033492208214318281833332474452639048250128124885244785146086415595779127050061286547695013794512032307195691805911854020209796065713417891455510332056750321868286054620467049983207281969705742923900516603949182297460135741579389713505156043308803871916117856841761286938883503993645243268281267343666253387025850589863547308545607215402519086309027825137680161050812652419813880816823115046370518419002272219394905840463075933112393800409649076993574634765167022336505975302414324602167087509455100027020134336185022160553142460776712057065494881086785749967391299583536051151702488038361209249584850682666445973737090727925376894353211790826786212330826522033383838101117753285092794974442224449787729816879874777863327811263614424563490532669357705752793886335839240338056389819249337158577681673468849677459503509741702854187170515198961332402542314925929401482652943373521563841717191651190374432324039153006852096451058920247908317781442668135450158600827167779203389590253700739982447532028769064504610139249365223826874773517381366054884488612312632350050154493319848067993371410835254841051538857917002689104869195958551548100879812134677073760150564102415533380862239009749568603578562310856475256176408987081244698152412989156731369603332333170832149766116187808788051730805273790741135045853910580808834614777169216856832731323047499174626856350145776809904181454872273691897025693051131252534775761361109982390441073707015113496881841435877770722932836738931021210708751079533546740447133172291898802027659384414750843889497565246806938883120493020714400386031031550733504077767010455467624484470583084450481200125843654674358328887487715796937173629026829659307738621664483535009158703141579870567861908586325619226819264328840341146939209216269308379345633172136412820884883234804032697156828774574526652652560274761015948269407704768806907436817504480798592400986948091168823693497439657370547076042500950206395787195615077941724880951490644649353876906788659888434810453195412637514646384633753650564670460563166255965860443352492624822579998143345433886513463648505392555470899121338010226670941426441063119685060939169762490084766601511756020390844065147991946841469244784672330443489987319729854022127302985885667134746780147100101711073597819642908586543554895463549858908182483245813713532982668112733311458863564863654714620962032432801679548724893593978246362661611484837650447852087622192692237597500998387519922719013084023450483953793747856105964966427463292298731477931305829122023831091128889120796233191043000735557227462739432895287894810905200528254562195687704952487140967641516520531674931935267069368939998554310031161027999258898128483118192999925068937400934642045635089984561600822195149760633732802053741780611385389080835146205881106133657863578104342316942902180255395614732912043858608687902104937272037430464242643831261222859165788847490138694547458522522947578315266722848901589352157384335940507541499250637077264738932705060181907736800143563919526958417916346611624274087480793535887459615139632982630864533897047356578421815128129524736080766572862908875364095193921963756482936491575624444941001242213373183425709441841651646946021863523606469889711078048404547309045277476061408347722478862920477633507948509002803939024523716581907092365082504864004270460392797875314698207518801450362493498270664118896938846524995325484035458889206494459072705124715418366511717903427374155439440125564261164588307779259479071505749902506917492585760693160056357638115737501870433249013440928576894999670472053404108754134546025091383154340272560827133091868434438611982331762504323376286176322049294344821357277307883558398099747950107158521117508660040295585804457876520515582179242099381623458090318201336814785032184368860561812880199421665103812882015138490012663992851476379149352805060328447160255909001377761022061862288340360335471684796832315796958383081225624040319255201431088923656815797303952272502561905857490617994833151499315011157554004213678209897364047071489860444831510396061809506143982007320990219842569830585686215717112462123174046672029291621998901595386255799437662695061797773285175280168617467356527412031747096814973375107033725080660931387670442639796284960442583312408400205063555947699428070566554312077874197179279554516615935726053423653820420883043570027400159278841050488282195364499915543235691232191250394076253202767294935040722453167292726307822598802236487080314420094400669150259706090531139692086663221095386384799294008673106241554941679832481117764648637604832095656516002087275944560837791614119749933132397755582188269462391448826973550655476734982424437463871989244425437834699554234361166215206487722776055187315247430235526426014963198940744808643042994122828258005529280381831269171482180314746630866388040931901478787576031151227795607684848346442179074883895733794620682980633730231219681045251027933888215021713285687696758367527935806151547941623398885120558067113552080877365101438333070280993699493501872960335357713101246608131823555782702154060088813679472149201179425749476528418619218971501958859096359699310862714929448706185589695152070091938437179322876202843148842068376094424494425259465282610144914830268468670846500682916927619071847338138724977885465708449064815911641253318311228614574159791826533346678939282122639671708010847758742815616728383641062936384380022348992535847905180769280732316574047299472993260105603999106345101224683418904622905465629739521662274012479846714962463003145587956641366742764329783162784347921238481001273905353243705029492144092160281242085903459721212264430984596528327021808654114548521150394765130613598797533071709526462764752489387885223372796276642582123519566095650707431663260546205069938940595058303681124071750490598627572549942528024260073351607582882724725928785660409006590731861704391517215955589976415363832385954237915501197106964041566350220094719627441345372841993526037689571472705928650891119402064595083248223816317586092659075701785922217962080117199058030463134004047401875843403745335505819966903918674026955700814982799504847884390937877015781848501876793484833761144407560396930507446393523087193152508310338278357383067267329610323194091357999004692705605043798066240444980289762759012511524145833488928164840140742047440280182667877345263150682279849112823310849557891887186459603893025513009645533593436212081828652779475958065100571319854156453320550606239338700637054065700026916019804052200367266286324644533094099694930154479186179826502589564863936998940893244376400022489519614538100209817926431827291587250789917742098292508298499983327725632442718132082826872694887649505760290922071782299103032535979350964727568077743071652601352920562739571805287160699195013202661696102440687667398184060674329601538941724341400849564016900202820734158027213812904845040005029326001300506319206894246005180536567509520433740656547074140296066701892879816611961167933458915432765879767796556403696479434813322829534808687166620461920088404955225056736140551899301613497743575207859065038307545889225906765221472761412619080922805381240377159204298320608341207137806112917725254028916524538713165205258575976387044394069441352053237286809756582181573596408187345255131010685814809045861623631027968166399767488770331326833183100595305149305899461526249283069097964509747779348166113461490739687769177008959591243316648116538944938779519795157086625512264276101356186753722284570122142282334150888994854698276670050583724618615147878015785522508711257882882742563270395050577841755934716908920066583950620319165888066336569664292222788579600864867395035042624973788880662914917270997018792857283555550619829378750743977202032092960889814062846026126694175883332003946677921908180032773678765702627669020891473782503272805250322511406584155828774608169340477567511838261143056785347478331113323257835553310596503260823015863639534866876284519971914337940044311500036175314127374710670891953915276047570822385563838341575221628816694318262522876567382986670241381075750764971444218338961794264253228994345398661816359089162063937750132891099774053151849937125921705686150881544229343327999985210505734041288067716879367423887707174424113541697823038879425036799345949548107859485103680381782419212102043192386814223216289320335403939970052756252576756481244846271767645066710795211432308816216871976454682535497859898142338937470681761921503030379867764988699703412656682867636176840427438295670464868964140787281343655662191287817833348214628194132449884915008091388471093269977836426827322592861137959845072528639947631484232228205370864051937633870910185563092428316971475716458306123709182855040297373833991071612397973734529922364517149114092257606229157269378245738882683774540169899021343993522324141211601734573308236478374839858400524591795616938548177227735753125229534450222600464543929883684336156671535484968398479856022461163587649146921836487721624411996965981880295004906400519838409517150757282971114239850290512796204520480945949790230836650160345433788746425528077205084146485687902601689314426435438556665050394572854764626474889056178372192076497969344315439031593985477678755036924531260715684842822931020654770282965863798742696746469356754869880209093180227701222451143541577963871677205151724760508847809425943779842805401111349266104309102521535571848099440551230695070681253243933561576388496332414974553850524695982191407390849752572850483937462015357267197535236280969094365003676704331253150019719130146445957395523114869269519927461231484186314915551901929360127446280273192628731165391985843463836427512292000863229749357810757752300550045004764725629841858308062388821452365739812846378327260286851012753558531496262069724252929251240619285749668395676930965639781215968579691985238708880934473593338936251006108423983992417185339550354034448745639198091889132181227965466944769873987558856039508260054101543129939857083462008342587320983504423004001400344482881882561586000167710134714427709717505325604088406142765825974872663197136775189815964128839843080714464030729788108031811570708989703676535300752230126941702672584390247703271278972314263079726608393483225544129155154514298979787118610032106323153356689310805892529210382653513016188047680393112043143244786078700847511844798401354081877593914848103705888296229880473713020773616765741855942732669223741339706742820796575225278583773117803652590695140459454405524878355934881342311477714160008365689343147674505755786855381572665445221623565009947104450063845419427467258256960073998908187525594178392114580223760570898017768373872401372929868301024809298511347042248994013213937244824584189345678615748890918573905551209270562472764495370711847130449678335432077688136317525418006556261990189618447535232597479481421114629670041482717963893626060618187792954023842710568088677160817984144501968794166195997069598160678208074007892426242101298663667955132443362597755207134807240054720326528546271737379157229648874792364374537660316238631888316582128116057793719282979314941677851588049985193637650892041805440931105488798208573958884712986894790479363940195467588090909283771404793891974840001715240381220024620953796439146888900970181834477216765158169005121677561888077923138924541952304007938432340732665265623770895980465449250763596126647257576875777025101614812932922607442568549511735116257323659545233407146654138517044155803097199015243921397767657107822972425251577297093808871987517450078106765760751636710927942385620253212115761255122146682465608712781011530775206443610620440006040474788681054631223049590345239347772990158025714964842025658974005166608300592092889301352523103224167330328520882219712319640057769898421660012630750426229421548132923278171902343044565089480487320296706740954526993208805025380687237427464390418906188186140061443476036225357735737194252042383736757505418015424190102164533939446407581368149018106249306497292350228868163867928787408208174935961812544566103300641936421312022280669279393565323762660510903127446594646563274830362861040864543943117580373063181148494747049988270522605481799811923063224851509919765275697463601589067783000514330676346206349137092953803590332272629274472751799101373965279057280291705716730004308690852023004215835628116608373921522222796343732712626151062687794850123199420089956369313433435233390455202496633184065648720257870399589324917334080568312148324256798473058626961725162887632007450711685617204680991923745649294249924233441244060791508832300660497313106664608572385303227658956797213851154068323530324312942229330397210568900905864034512023672136963919685994579203303713217777430362367668750349312864620377595924508275030746543300998746134681888215539916839573058197079711461099653602777166863856459595422656334904001438350944150109178607302410994897350349442969177634042905428092099522409130687366669904400454437988657833620276758170929043646492153861967717480083717207682158322002953332737994577983692330610018625770481386870417735789318794840347274127655932033219483699349789320865703157226826874206018397196431667677860961885367436995987751997396938729993108313885340302111052032543033556950040599580884695985957579845563900277080175549910214171632840351528617326749376005659837616702987513498752415784274290774138765179065399597307533034120349356784649229801792017295845177148752370836012883310906014094347982593075368141148317441855597099489805169891917965208841942408092305077346555189174924442413216468318676462931572844801114579195768673876463484876005516813037528758432417291116184592371009245322834553291495414869566224136668375117844828990637845806975332630694774537029040742879954850636919144900583143457644966390214708487328933039763306959161847458580913735371156491248199560814617049945803320094742601754623017566904924621976144968230415169514895303938729797345340162266327186026517466396964201772733018604537689837895569710136356864798351909361452388409477151562617667041314834546516640204441080639412387156163494789325811093144749851950185829922776699837591758556706141226735406901677101817412542658357158262622673283392481017603063587035294451236626251583751623043329704825963861456560088765627968569329126875890363955685649759520997123185508887899464290747191507252866732739414843500469877841190333557267322671618441999867745986283190301549998225960017252068416544307859214270920833326869783989369321849029633653940116169691862527125562548670147397945838517502679677927086045281387315724722460261767836179650022390901239692802289797667328747875530948832894100204542016023525581812716701883319483404085867713299072680568650962081974797911684178791341497917407822996394112734544023780855342644613548634587944780985964437893292691654679341452445135275046676217117577723905594696742756368965696784360836626584470475920979365314489099157384517924729397443344399923665635533699232929050667638894840472315153723276478282839913844519144374831293574009402938328656191239596590599302885789871592324793334422594756186425681218324930623550841283136527280736415662936159205279651034482078011181975101126649426725371890040885802983850416820038208232242639714201376869293982148487769728131084879466949917736562604264119590702336969964480476920999989171941168780100374640521586177002019500347984250494878106617478855913715202866251868175940646432048595776001598897500673185349444479648043052407370554343248633681942458545988304012101730785963760560184270051454738474007400884659057279920505730221803431242478942368772623152150343819039845182416012390338576640384208924377687381747409932347802720675508040239096850387796148999000048621155145934013382341009451744947766295059170820189785901018486724012811888103218876262038453452030942109898730808543269319709037229089272163228785520838884619815645405349845086762984070033966472387075002747121238713089991997047023855797676054320134395724575102135113505782288558957017707607127415309734658505012768844029481114037969901190675931344035917304140891210602254804474410313275587560070874938442283858313943995919491611592287338207504863121935713050363346265567515174475157318648832680892938620439572761963660023542099924671418692586241059241186252388842711583297962038867004719804729883290533671351676646762685784544539670915725344771239387211996770898574357995857403945313555881973879962496317352287772565669957168404244402818648867986194549376079764679097609890113494840288361804454416055439843646840696173884970497200966450915583458798633801187974305686961691799515251313129784887794964278085444565632388012652825816783532737130268166957936904171174649892981361527113773494844376197780273760839305074143863059671324328129781902236689762255278200113359266403888057457488685766720977502306958086403416457098027172162418230013326911109218846407446578719050506518289662688845597793620410322129953245325147909207432296209211131578805545799266759300896523866336472179972977308642114414922340944982897014904831184576465005652914757264391878953925390600242174481284832498688043027457254489691076837396746439524632433266897995898353133857019166072250925243935631283586793005408012642075387681561095476059440130074460237356282741972073052527841227462916354683894622232271103529569043889916891740826531780085136263525041195542919824096339231758708450743143796328200617219447720694770006041920774596309744005441178020969242497154754600344710659086021570129016174330411971428668428228628313363098701772970175892417444072095760780402102950331175718522097405957518293191080619687421818102141007740588994940220696434369980161685556937397486867528134606606622636682794546796858347555530870509837176524396108650707040357431419079523939636041230387669256138428043901695290258404341841765542357521976734005696799120245830371788023978195466474494987679649056358066425557163374814694637354308086213538605864363206172447651252662681494418227668820694717534732833243940395348847061971381613810470965530806323730877647759464075532658470588380685552352253175356274012349890972678138065759740779754673686319677013625587239220787449934537804355367279926368956239110372858654687005525393939810767252139667795698472160814184583339506320101563239362194537549983963469860013915484130578950055069830273105222948122149365355487012287035155224830103131627395971349698088235411278847543271564353463644640003881260394402515944807632420105087943152558914268356395880704191429413811143023502421631336130695928704688818784074746520486087099524153855367793758110205150239854288525879686249545581823329051924613310745493348339419810906112387885619167120853929058521407482502237876276968335624225038888423439119999052144320386960369107636699386640957894609977262276174803785262831609745779037003122186049868837746310510976596069130450365796886087324404134284318184593857665560556961791313737749601365979597636548550972870178630873522108450861172410475605207418995226772581295138186780099305186159190518562604029965428261714367270026281786927270059000207561953324663071527863002456997538071426059638126122378758799320886739143337295206214669835760626989501255302928779773321919623452894766092457874146896921912005445205340029286213666452596852253872340285263638773795175957400316621470570173369670635815709598046091618445126713223376823403969808980445771433402702375176416991464585371180055958679354793578598265721241319190878963595948993523403338956886670653733118931614312640564374784144651447621996894475560730499347111542645668158023111132936326399369832121557207735232196407105000310174580865962179688294875390348893430700883477613498069189275763427333553957927372509305134545347202619839467047994903897055775529569816841619854192733639522928265755658914798846791332381269106975132753985414945424110834639128437893746776676260903424038003255709778461937617573699813080283518321489518169824031089158079692756784371128760693844470745677824974955586748717173670095014173402601453185396706698745411813345082096267980475044939372523902603057360812566222606819378486445201548743818863961648142325565084572119705606913413974059699323206164113197464469534305436097731835364987375452965149325195946481836984779314496411293787409575557006835753466197189708405879976066165470717207930208965989226079275014761313963724961925968315349967873812179051837018481598745368648014167943792070317182764912831295227718043066808734841077209253678850988151544331694416601942975299313704558167967075610965247783193062506712082728967065521438466913827714330585077768876365758960574176592805315171139701701793160761492370443748134292483289525194210969157832700241761437838205340564559702645674086740777025855180633593393697234814740848727982492182169561105746430404519121187544366037944122000238324347689737479907513554155721070079267003881051344140013205152171835966789501260450928316912489315394802481533994904036047449300971195810634498986283885024685676368855016365074074934419108801481889182650056388426198279024398564033735160603082201399271346081396858888723561707110136273125290481352352539514666036175938599330400569378522174753452801201040481750585360408179595720181038106882977358556215290216285626205201706875971982583639392754308252164217096108949296687888734433364336064818133442621118394817530892937409691472290703927849269879404761805870083977521048170995563380448388002645140663398446584705211018048481544784772396049784565740413452111314852101544824361028724856217708509461277488606090178956588035196365506557950380335587663073645766531122721106327198322321207240447074510579435794333737927276980965500900432627097354302062606435733744892027846362558825268028665526677460750107090311722214015519056872987371774234311126647501155483795875254071064814567297358929186224979330395359956712361831715890775951885264428050090521722577828810709116572445766469576843714947610658591789138971947170539874564424859041814025057025319538377260162519323812906838766100317795854432788021949413161488945249294220250552635430586220324286076994657039575900854090240924971017121947493092882286508123766613710213297769294671709343260622254401132197941807898361202123917996796516608479707750738445113969965685219879584569679090149007167530187711466503113278378838034708618040424812831480411541435426404806520308472397181956376522803746317467664917994219259242024339590919925507853407971901487407412968089474109895917217823091568434140133040587613122333660960036639411690436723109175125791327269438771054802537698892836602495975208467991879569572611162710543856772443205993180163328596969373287064275363887516939911365897726870540380573543104555682606385268912937939596028973590558791158571660619863538756846097365916568431780936678577993906151500890366254181516176549127468253650547886885967019928646142238975959387942473814561420350832717245285066321157553789047280856477263843410066503631865184245411536206788401454660950588232095926895154330144209712403440290911365657509646438858486763555112770488824589848597421065483623409365778276515411492689556272016225386962463646177076350939282388728097563301757066803656151248579350288549509623001583978821494946878539550473502638802255990911815034510756388235121020984282264361876762434675948859174630621593426101221689960330197042886243181095685708804919125174923187213473917579181451400396300192914233905791295639809759093113339464921867491868201404293834738071533144182546582863972812517189478132108504135916633621228018392789946781301384639723455908253163238868135232538150495445087676537407012571478215520286008241200126585498525955960978781573446105538229043093738729016478848436116916865681080487065437009646277608805226533010857490290189098464973078717979075612114654805556436900464693594613715412273894883500923479789852992252390599688058388020082068966743294483997357284152533048334227533058793834707824228796928928572219370201531674251211760644536903874194138598897961728781177512073025966839892414213996177866498479578903131603255883342882714767979350865237705314368999999699646512521721912196671632683788333417185369304205704455343313416086808317285922562816026953525752121413697923314668447103847537035112326687819748521685357929496341242426330568041702152851912607066971014828131065711398242679407456598355129058810053996739953313613958075482112316428549643260774646452135701436934355593817296669060765573269432426852241934548140150438698435769770253549579764148426460748331957744762300002083313820517882824103747217139771134095810329587537156485386862467051074035483899820508895225793963682734836458944754088006219056020275237120039903755911079643748072567933965105666270039824133317118736234917493565020320775364758304664913030947716996098173930415195490319892588150277819480072201280120401233135350450323395319018755540839244230515625265156616627371898283934155531738941670164699743923735443663897728647824016352987957534184900215220310607550511898022194688822596959349946930692901278444715431670981904606730678669575314605770915647175264412890140036045638353651715208423600364620314107970075375481257740192612909638660819201612741435814983828317501536963958420781788099799373431830109632216179418649678075956830439684067148761438515475896039908971372060954137778611615278439825468130848766271111557409306748495200205163769873689811261255128848698077535679808488685770827265361626937701707075484714256599840656753245867901349176624395253397562982082289131302226222003611979642623777565878419679537320290885098460990857645413804574019904483617262013127953939041567632892849691011730806903409931209772448415700013759182585115571978938991354667322917857645629527368455462832652394544433240483565762582241571944164666405720162862484520657593654353999563674735084773379933117681929248121702244024048415701050283189237134332294723158930316016084598908970375056032572172440549399364479953851412124409454129544677888103747518108516418670095792007435242669086223108491930017476144577994199760060520158605223681268488682340004844874462346432780734973342081618594985627972338186315497198972285477060158049231465774647961217481984324424758895284407895418664973101813467300169361585557361161366285640165259681696873716227862287166223517887181082048985493619396463571753166291619509676232132306967823910857112651618563650638670916388829972398755603405909462866977820181213736384029276888823140842803031585065226491885038965515652269439283953895081858542624017638521920431329418734217335749257898648154871213178551440732441076232350679715260297652690918283553582299055288297018576024379374486527186329510495071511584536071930981883215756273289863933611277720596646361627487056201410916520412385796448605929254149680690455925724459013664245700752358024476875900082233252963462567496831269701065224454385512677093106648648625721254011843300958547671607345780672852131878173114355778153446946007732241093992385214823788597831098388701404294786916652659581246970869021046154462999374838673512647100702181454645394890230694806057853375196237626092611231560012201443449901798264847996591037347858243840678365094904074354620343491540374362782100716857132874177913468344275145687579614876442147142383269795528952760720381136377824026434071766505183550265204862935964050673897342418032621336119444362338984511237576991040080385206686399992301671930671631305317968098905637128627503106255640299076085846178829348086060691626683820756386292630344883795807630254324103168889713803981785196026457892004007566099853887102274063976634607884652316111575660860723613150874740545926522365290685167445062514211007967519478070473034381361752875633843390522754252997702834189297478591492872932039948607657055220449252294231174773607963273516359555643223203218743735236232636297845704002542479033037063758822614681768963887668062388909040962603015530356978384583493975303975858121758508219742733990886809104758195044135296410979770518934236474356983812500860826035938027919433025085059656255636692402428761370216771757052663042146484298638332888296346862495893535856790964699693894873549212793117798934032656657772851596246869836423757292014176605514875568404404389444901031879455588775888124077784375735915156794738924462987795369908202962222201161185638828631749963243592210620064865698442667589486967126839809236854060384559392126802320157873791534878688471622350857715710759648175498725545281817671854278329755087960301580538306620950374554414850276310308446895392328129015368867878034429316064975311738713446981394729146368296718800487009942209697525686937775300353460915116679144760420482709530733293966297215161587264895000591276591229939702386344342272499976172220585714066147178087217850365438275312299820454227742528534412320292940909500374789177600051738922574446068627272038818501944908609610563376468612877503570347231259351376038430311075147906548338280977797325103505038945087284426950583871036015489664701067270194326030870956069505847655020520040692708022820664826146651290404981167058643746679595818811659032589985265953951671320080802293776872541999628475531161760110603256837000533395630851050122374140400858862935046082643176986133517509109817498370786909189451908349690283670818284102859375493697632601237361874630567199782101804028116075232088997960817403427710823372882152188358598963373796694602495310620346674310528684418512785945408258101839360659101898171544778200748775671014928259249735990888479268559114259835601196845962197136997359784591719854464270220527824291638621463288131996774524443251504781004752331888138881129912331721584486699034247136629742330012391279774486709047255309781374469728072951871921334200384716547057009293977931821496149931902613065057311917180121750104949579173260458259407588782448983903099130271161735468351765924193291979456743646986510335127993802808954288126378658922664651034172836239375851472065011928616304139270070172726122353446706712216756834076687730944957666218180048578613742917266754964122057581830164102537224109895373557254608418281702883953054310050390345261623410398257977698546974392059097410463766189290796197435583479736869672256750414823850283349296207185257550848569048426053376588479657203439967425128579158875995266039332842349834207129824399953704691062655899878191947276132913837073027038631333668666638525104661333653297498261367612109692622572602998870410912212278638702811479311058385749103329663906464375816554118596417886179630564081828506888126705521100775612648243932779151802762580891193021497069662239947111026622259747554068688939308563818049527372246236162532839662755783734719443662028841303434448139115683601446778720552524105248822519803129353332551212087704937655609224499343229216260682326789130420439274324266961505184491073316345203310697760023953241161697294360192328062371283757961048556061019636689909146312362626468394530260889155429689137265584047279285374701154381108981824456228648447185281681965408303134398114801844339709063411677851910647453003283094099520047277311188146092522846463248431129527000875039472039952789656377240084413065618458891059354755458648377359101840675864642590478050312454407660059423183308106524216994793694376815683103713053954846549736866367923000045860144042407296790433422629393715833215459288357466054976159293270002038084900734969937596019631672144700276452443004567289671126421945033500129585207864132998782608224437936506308215644505647333381545919213238424310333020871467881628011248100695600870885427949380453632448092506594327000278613111045022454033610207800243343866135277145646885667899347852156281884352264889149090813068117700564623744034247489458282566759941633387303856742993280575166010924778917390982771738203178905182601606927977952208966100824801273231492998028665856559234662471163461840580882714769411208994077854637717645835141942628284947245038565140074305583055117901447204874468586260095998343878202985904708807341147884003504501741966910803584838469458602257155254745780245848835677096256439597779951697406066651733626256464256925765407511575684754956982499379095648787940211117732394079234387523231558867733460239712795329868355290823785430022404269589011102014225188920358573651747968936808827245959897517643389067106768272776575246319523077342014224615915737841520358098224841970230771454449448736310274650680601057725064989948456669689349563313070381461293111872412197269905418531035087980620619813655289548781800210257146139427778476042813025862198661542579144118281059157593180197974894805733088287084685030252564367724899412108209283335616229376264914637841009596677923721250088562176663164822523638715896682634536727090777351208350566786039625859869436375605132017366688425429761801187564111410180835030317492929001155959177948667769660746032297594593647164479198855131109888310902424473473521430697913371783876833570041033542397555141308806255359260040457997258890143359357676901479375358314649555029142120990479763516459932710366534889990196050062842865993671797041870530989801636787087881108481242794894731976314688459897552107617248005243701012840469836290770271425325362684527845812194752662942237742902123479208076663242178892740500692772341871659452217634044001044048277394360193601139802688711222022994791158879100001415745977220246634653821538074060651228098184291461756541229484207134247173989850357578795670833143273318399676232341960142534766503773138035527771852649246768968127497670731790903059686512944386848375405469715638044799666954845085635487451955722348954505549949641933277833103817581736463774330232777855330955555288251632423860954547160096039901477901892837766458473409565016552317475952540860198277638240428563066836067605908843631530693896611283008611210065804521079027933282925600308577200854180575493446725279233589540030864029917616925137097183591692785718897751559141382102490239324701367559981583227912396048122368503462381780593396314701373060236995615899850413513867403012763159945965320269125088313189978703143926953819111618343022474687476001966253040161888335706908415098147525886629306502136210483121121388101760242746531653450423737435021153123606527838171247106087735809963543169869151137793506681816774413040456496655881942124044941463515948321472937619078528354414115289940935919714300176345965402900228009665592720510925469986144625804625407593362415979476302570990776669051441492557399215717977845614688697585801150366761120372396076478987291822861883522693036080744458097018594244511817875718284484023481652828475675520260483745904316967840153518039340939938611785559345156522670616021286365024092600274147978737601313941313931188211668162043207881840248723450896965722262135621204661403262442935822820717899311076372538540685020443493946531785846422630734193165279686395389373660481295432081314660001541092551960401071330503946773373284151501764118436217180689846214763080732060717537086044353765944993564353272070225947257831351759927283755207124340428208653740500418656152041901203822112423918462642761973034015682581008800522721150028631710543325296956577296797887546794046638517283647820457139734098227510793028276155397662228323899353739682190826743342889902881251978572816696146721103970791015329793520383749199115347363439590505844286452715637578459876568035199281858476822605046328268782695471241375350028185350192192690750282364306381143038194920471868873964385228573734320837490274765434553804557553019402420574507248456027798746868068662025882857894661158263081439305887614850017841626777067605835631508605155064015120572616053447817345710858066838883661810232087649146207829607730152454937637491464333649064503555542867950595751918617876061191424698487571679143591655170884905431476042361200327907933038755664228016603218371946594365201680123923765388491563025396749395898071335706673167900036102006217238751387481676939683868060986076496632948487654220676968720039277858658208413440892977900644901915141440703447931556662239132997763979582176065179554227966572907680568490904801084071917751733190888274131012926111892249442404380485119235970591524139833883570308626213745228103038220555971815195468616437956604833465979897707536134888337615515990257525471339012807487593449953348172102773960946406713359255481017191625855268519471534694090814316360544549156888903769156277870467223968122406449540387000932740740804290258881254867204829191756923164951005535590487353332359399272381411756977569008615573332348361269017260506291614330053534933013811481888728979297565863075212520478497730168632363224434560816955471938065726658259057584634995693893872752444321126287137527945061671965549290685800644535291027548430419050146250523541595815033143129644641619984508123681015321031878539788339548212685866236613280071338513754981999732543085408920660988330370965550543377602734917750303984644066596491502972309595413990600107824967684167529204651338496185206522147719951794215585740489319009944444956482994708433739007904685785956313264843337002130527994890204401877057487812766808575797436652049024621274747541124223744673907181515453518346389984858066860907450352183356399784299958992068493148403697222198814649574031625094292942664863434514524980316092127863926215322234342627527525367849454934830708335637741296922414270346928880176776573617558671688357714068002709162575515703488079538153488232384100129418780857932167175230895991962514127915407452425498262349489410942892619038577383979251010996223488363739088437800463977896387249200587005027474747631851968946685956175030053638491249473151419485869745103717285366753025464080220371254506336437846646177726139193936782425805021006048391124790349552926707966602296565903216863454189778490778574491401537415864551124837510343958214484239088642340558164147316614849883948373710766907888213438659805630517137906972461313051899508629448400517523680564358656331953984783759851502493864767783445776521179425800844700308390200316620703490221158104983103012024050282741455406417058123461126298930712341966680193957442598579686409800168648373624853532670591727927484789541252557157589269666175403804932637995866661669732069797834682225663148688056159735013876893060836955195653441977096443126086600411315307878794898405947173829347660592131674044032561129177587149785507417203721899767186569130539802942058212600082541499641820774230341940674970694343385560510892629689054943172364634596886764842957091599280556945463962276503940417875650048219044852271531729862300120636902861158445092917716041528137729401490139815510963553185900989529670138813786909717507671652548380444160324150517625598527338562565328575580674039853318085987231609233875887448306360648955278964831201730697815078247486277845092911177306982849470211401902415513095042977024197389856298292729134023377188614913106427610189846288005938302768798376521310951339437914559762035813500537488476436773445762887545577634181501697289498315927668875647875970983192664387813091810050472808563514066440009117301253476145147774300050212111607850120677960153382767931122993961679606435349432014382234429563581103157974423030219540707693849218922629362007137115626525055245108555059033161212224468083276992708109796806379106435917546543505948461128897977911495752724613124544346183164197750948522664520278859746628260792829136486932434397615188395513345465714477459613657316456973609192543026680576727277754699491575589952425510601915201848441485007007005640361726299070506414331939773191272766656350696724878880803839647114276417576645347957555374700335174483398644754278186967420399518742616939139321072049106205654970385998784617411447928415804553030962767444594136318356809613216028658867296134582920147250724878483240894607891239619655038453265923155224447426214415829050324805276561661054982953440075809022084084269458789763277785846432812393063017257891618116153632736029445180837592348746026907499998567395425707291841301786767758212168224804593462498936151303969657981783881256450741162802416628675855778007881837918595483870463151438426074649781585477518732183616654049894892947827012672722436000990254280424120434413522548470573306825386439906339987849786832976622027921351737402862327479434370910693786599217469204754692453833719237477842337407176826724922806560063725692431250900163813616498730474728997266252970915583609702156573488553101883612710669171007575981240453086431507461002286274949197441601455941711108308094627157226411619617884849261409382651349670593581972650195385736355310431731815707485831454211060592102509690072367025697550549542196775612481347199176889358948795995061258904474237058756074804040774418162954202776929744115665626415042733423912664555855105842985497760145295776695994407684308695600617553132705812563057815814003235522049019060269987245730448667647904812739315497193059815660010687363381742154194366652734322288695037541229973256582563695342888851559134204175371429967926891022975985741097480331365896406144627914629755632763909978038529910777786993248909071856112800629152285879987748274909823923783067621782293751828767781150851435170152815670126239945523130067514105066076164465592224902995867976216118159240955063454400114921585360532941317838268524904004241055461448177555569017816936653398253748060002825649572317518455683670800563740464339354719774704273764201175110375584257062916391003858202063549140430316142563793169793259985888968225630261454072203531255248195260536190673189319924121541843209502989419922776756816088001253566718107189519440070893568488856114643326314619240767650153321882539670275547012297166497073950661423422789199812340736247348724192061877974581962038485734676170103534219911608631765780975358896510187951152550501444372470290205569031900329593747443170892617653538088340394451171535408447009722414093116338622212882044482701365467156816865427410637974781914760802203193637000191799691031931458826132985034979405879165702276081852548725825491760027570070986380903852627836364222415435381969250693637728672119354987982173060884135606654172709389671326692526432318691437487895991773302956282248278606565737808798046094496521327949031163041020284089446412757160557541064256745119123586305253710855168975854731082488860365424491134461137038838262289164991827170465350449804357610167493037086237524092162377681012370124739664060824718462168227688894759554187299803355891257267307742754447645832068697019430345522470071813471516065259149045226903590887366723656952235910660000544936090784376726291118365178963303041428792514519155793891043053031855875944067619663397496555742643772129648230193697625211675413733375652312898064613688803153252102982527808113573170369042866323651399407427550940963521597284705974270381831515440208853021040747997100151604573599300377915442507185005575333774133617537154195001176866755690508935665908101797832360757168172921419357048321785697140228307871859865639636130481833016423054558359192577629147085288446845048948432678309224976981958088504360386827701273187708642196398126927137152319514718352789259942914556281596895393820778760106161178126080985285183911943588753626535848220211667858788392933649426724898187584648622185249559082246958470804808225909124458267390392981259159427443242297120717096436588751148937745284000375018451285585770834657467799810919305121099421398396895188655884873677847049302342156393874915817508862294463289223797989645278605272932279842927080439192563989122558802181850913459868019285516413806442765145058182944849298213485278669614556228688700165916438589787722569242826947292910732193787414418763895014367053464581916330457413514251286652714196445092887584617636324636186103924032016257756886023995082147034239076155121228824523575507951042158593032012414583214253142908402398310155519805249460775405057800189191138277611356548971958694525134891271571044124486125762998346510068244333420542238394020585480722075646410837655724981549764348289644023740489537394861179963276228189454825336432552496975160690021131634462454827755070736873620654634192477303990817950646279801717297474180281686067191680827258000041407651585473912142126394647439510031687807102331284540184503218351325302268307679404791962097726264570639927152242421153283823920464554636321841386658077554211325256127566108640741371690628090830145591141168262085186544388605309076563453589225723674834507747186626659284924702235749218106705414485086329649186971893137380422529981023151806369235970427660261891387112122435205428510251161973594477175883680664199484200133217251323188238760684916089254776802074672201538405804052367176019445013405261524655461729980626193465910886208338429800408163562707179693146453215013141914117017308839477674728491399272488904684969357615579147977033445671360262917270062541808973629585836960641880036309960651002530484379061652582905596817008167891486652464747926330384029028282015401619049025143665253920655807799708888881944749114663700424647216291298641919092449621125521534714237935811790401538604117858143855943871203688511350667338053920635284259822964673743835308586860754068505928492187914667444280354703269994224317713475689708479082911792532604072466242659720985437289085800892037143164184368139685317273042048883479826132067890995178545481581149639103610623162148834145808351786991314368379776596677834425726362451649555958356705668491695918760485209658366925406446777061176999055884802734975082687999294303493459223950598556994275109283862445038498557339840019511011932084391574032438429661586687857400627499576237262300297083039121957204158284317942055718049648250743169276372374249756165864439177369026738327158613805876020080875433132659531832067234985758376458188344303447815188933521011146997140825997730435379567639896115437562654166572197398981019554924795846779238834290255790846548787690631126522041628423532506815658756353599594581924239749286636496419617832115757788996121740015014952776600455858197770249238612472338202398090747107592558333257257628966017687442376760934818047194001256001346945656492258672868125391362676009208074365407599876289388956977402632931861575836921094079501941816669305060204203191574148737926738890998962898057836599393419862107344439511694918030058030263744070209540294213023408881310581439607981521420864389798853429828999828686541134602710656306069460589857814511144925410622614332318030379550400565321503127100515640680655570894006967945943460536534579629463783787135723744204885550871714898642704854041854938551985356450391667033895331314187712293389177333174806584541857895542151439738681219802985136178646038590214518580801229499613720497472734275707830037240236417573901880856355222540735418184811402183016076258501808399604223762457243965519090744734247126481008227121194912897735804144943322072549964642930962947955717905414552921437925665435043562462294032061356683308436967509499968659257962699222815259847153573354240676153867550648275057708951777602990934240398006130889743574215497791048543458968037347639402472013399590050989837150802715429367447472538440776343059473320100009128110356497746059053369520045477485868825126324027064946093004813190366372933974871205295544403374562519797687793001974722856688831408575250386658140843045352064469876935616368344617730328457826740498307603149105828014931489059918059565374569730157271567628016717230266495932096786005317988063995270632696941862719107007661851790455130236125339845574520941722766501420040227731129204828597556638122990110807815738206321806830442393626562294966061515293663379997357795371435511149184677956207985458347978406544938220181923706324827583449311504001062018204644732725836943615586365847920328556549911640189241278866398490895165376287071228276273753280081573414286859637174879039379039672606211607039245528326125423573838776055499542265240349375650317951602479001848411601234934348146308680129468254421589183865563240747481818828247827859366231042763792147935936511878186556703372415083514841609116045946046621808681022529468981470859696638714241483776451696439516273416880738680522456679431218022993242156674026308719149042849215912822633831935267897055670605306594024166185399072024409245093492130538173555695581620167832752773008782804424195988344999688824898164734320544180957130325258926948287729219157842154615185474390979690014971659586475589549806510005391167127727610932750247155265481280671297798306095725073897367499690912138197416666343080495996382804291537164625377840741717837969015693402899583433954213242720568821227011201919337920488735219072115953096524020623869895340783083424095981982733453402386707887116745443358210037428037507986733133558315426560783799257269490212763591286606307876343258036386830506329152474243737303348506401120270753241172175387965144404184075563998691896083875591611940216864733534290815988266915297390895746302550621411827409294766046769075473822442584930356918726128912323399387849921953429586566645855442663190896865159879543577043002560905492185385876908866775590569773514886402942767801864807851343260802787622198832041930248105457770832132148476725656441775057664760118738932782750145739113338314300262434798280406566862333144950320250190169799032506649580264808794413963511756908095229435921683852059453951176301923118436414666412973332219740755344796979922159976491396796914578546387701830623028558931599306690739889310804408006616560088404090564991389697163739891100002687292817237175390665836696108924232217990841367766978013089738417432203850209170246858202992677294776394149387238907002111149726487741933976302485611274597267792426768567706999220688709431040049695172040182345302038882432145059328364009033606959591201366171669889804996982784203154866610359771253382460659953432573615623433967195484474146800213171292947303653321632549330988582312689381071256634494190706809766555945593991791018658869408486873196922438313216535222947179750267642167986252840116860265075693542769874081487971805483096103648944597007954815942713792551086131469477052680009583627644625422147827432883132170075979616885033641577822867279342520487069389863388518026519831159214639088634741331590652231584183658213337525232462774165667336448214408296554518746220877881325754089795011725752546301698133026464169367991070206713606324614829488657777578083923222834326641013953259786004250541283581489323064128243582274284575782953018514259939498998496735687225421392517967140376986687886577944558630252784048651465194629369597370406643956591420173919041439159001306327154129286968480072985589158035723964418523627011286467131903400605571264047881551903860925177639512142302842546300236218007039745028497613537595599035413781095491272300937454199432955703822978547148600529510395501475171403272227459735250195537441948626331547152095080271325030084193931094872597911227080014429174887084500804115834387433257082400427810015926201152296499954288628478875680013967666465244268923736615763392494273353031283341021229335344241907844376639064085294104064302063519916548559530426569665359208751975926826898214965818163600337094334328213738795668411473398949973179992883997681075926882189151604193207337521265568370773263278195684387899655700559104135739423485032271074401805845883560351588680110707089000902145683807396878057534822070897592076912002027257649243154993164741439843355057731629796365796269995717874673790192445800805813866273658152365345240841882437919513166477796301844729234453662164039543153306222851201810824122208099765728984575141191167260561621192744140114345274239675801186950411738171564700370804238085481119334035370453719051876083744517023622824020720937218093961030407285237404895520762582426712324387956586811499285248605433890248785649670896061371519884150078590850313131579992741224256527169500118566215276185359818178791443825610558341388167662400378843468740566943777614411941362935716056787813660977130196409394646977410262252900764844684376678956552763509764492756441729533712569474374701227736385616651798447327119958538649907481477589685744363814105720935891603013047220789121775787095736112787078805816055982985067074675503460022034386521130510355984357415441418609654120874284972540886568402354220185361161584082117255635110824950932196795653015553759966450304364923391938818151920046316459463183429339654079945594781085789147706694577500262147644256141109008980761364383985881838170398521983568731553514667901199175717659201789913170920133847372093482478632415591181422966538431868634330433200533089292281456807390237175050666386592772180753590082804584531937165405129500915125497851149858675433987330936433252711093410102828201965669383372168204231047662840948931467074038094321813021547039788501360011385773043190726224479645658000711192456534025771502561903300629590798472130023915194690360886830070255237567844065501724808031297578717227835201174731511046734214052499683057782887861800205756425548545543799321143397578400007898546076593406201010047728779815266845092979056865311182143453003793433124888190150523073716601223602755602427998445779464886614298995154987944207489610875649817673769492961059897258860912390454003263786200005835346495899125230538257486537786781824953288587584535007233498479429408298515946144937156885803409849329475553768350142886809891170600573702632935764403118402248700081091954085554153130293575374054909568999530120045568603012804845436783710011114856642614811022887623473431749523561665318562810851601117590294485153960862294485899928558888017500931859915815033099514698885809304070336643250585894347572000534088142553916168918628529410650318224957642646651838725573466946599928725181411839310062857650942270237517174001885126277894223053147481158725055821865720296735127375016028778300402310577832286694652590200337938599388799724776621162426025784717502037410047379518928458477481844926541565508740422007790897237012445575480801520197491588886597995661355643889897718041085669239148770489476962452209503138922877420273047069615519471469888361721022057302008127050116335491516740351735234828641804773905054232449813144007069659518818104426132326474460296962218681688135706477783016236223144568857916564831588507201446003508972325385260709120470037603663012068247729828205114334154833091096181838826417541510109108330967890339474341484387478557789321442833091727357371279390532248054170029617223972506593219701256562553880422809145997345420859728946668183552001131126208944908932906276577403928204983418128947462302244585739933674846530222083358439034089759029273177815705017052915850549796196271372183066098456104153400463608273617401816624727491694927872753073587287463641529998963389109512966690314948557037189177333125413741005744704259919265382323003039616295670847944149322486558019035618395158182581124519988867903805417759609007203517881726500778215432106244605912653585929750489807534653241011443229528800656505142124026135196061696465785788571539796213158993834508903392042352213212542131007277476499965346918231399482501031725442497027122828736516754529507662704424279611729045205655742601836762786559007462499818358297254989015439577077006349951356742323953473918107025747538071409171207866797091640886364066639674337800404125994998813399177528747227350527549858302353442410458068001783598547431220913128609011962213198324937840943856297566725210205051570195903196909568088916230154587807851266596169394298189259098197265245130411053121840630426775152216653772957751408898962817691495070485069320681167584747526331134680778806167839672875161585659399857606223475888727728128047506171643379358667155252510922432089229960154731836271767463593235770295246343752452455054699607793119833419328528001019099273280407444142627839137472852031725599333597621001970018818951487551538883567303932869751370388328101256054083610084445112639801819677451363149195186431483473811468749023348583739237404085894782439458143329405963159124807839108595447633234042483158669021616583258395504529241822867473272532348290561676812338187083280435038060334452694994611494914340097464857954919758780399468864024376787338661776864778375937974033562772451530060643563853146557089135976660377774080989271433832127786822287615406969837574335995504690481778773501100964117124447516861521222576677481087022070549135472743893071024318297094594925104444408237545552397752171058627769083089162865151209901845274362868027666419973619610072648952568758374726203780484151564638092311774137857218153977518642173784339329010469116029658276497573560028748092794885975204849115414973583895689734624534040226970434549895281723612544369514257787149738961805333581718471013879023822194643512686013739808129188621582624282215818145024708895808166150096248706902435570711032498767011794651741261530772995964865727512065352096496391455404567487987324040643291200570640488047488925270391660193069073690353326116968028684316458590495608237766665128303153781200279247464299577014985038652796902884759840935811676597186249936415696432868339946064097791322164567868115434083452105509586115287161700546386065250656886929334277706087093234353948421170449577085044880086559046946302990552194386494467549520037540318593733157439983619240030155319526445118731171522489786874544420553859709300123984974785630171516779629218316793291679323380819546199213947379988374116997965509040932778708574175150755773708941603279728486481827305979027322742749486175972221794700900505558609886501185867275101622978482835504694205357611167112901183322069799837116947305507797359988462529783075187740614716941649631979309391244868769720368365142157594368639843163296638006618436261738071976840631354497163020404041959135742668698297019222723822187770832577061055094877333377152233153861575898466473485578767194435895952639341756898052094223836665348996243975947704534436958994194753707235171671663137884943480607994425368148332090835634530509657558606624307678096723400801367520395521149963920998743667568513930774216679127203679270233910476409832531283067960769579833725030755728535257729981128896337131567480379963750442956623247245972187937585079915715168900649403805675752888834759757150983948840217788539183227044258348124874418107012163081446822696549527384073638254311284889971661040343468945810287974336445788191535012822921897119368924594504698800696283926444878347245317024905292712478080303770519293982968422125027395733782315280241745833094102122370547334324278726519023307116564726221969971246990336858262590499699818847542569381018486240603269417720948501145011696116632478030573072745837157900661242525998115894579737705042244850749432667181642699140543519400721596685869691513350433069797816906912743117913346213373306618925891389361684763291365624856437845550575689840478397853759143380942596409456922178579785630129370786910718580092347426327018242960477584034292047115933719991314737707837545473174990544988480070019256582035470114098587348348201864058549018677873318260348695205315498008089863027523718038722265084224762201461782927306003132920110187254258472781293792304612230761597014758653581937507608674553631512921730120030310944943329687856628389906700225154626236976093294657376695940522223446408466098764399392564040582835903323337305550061181776432412806198221973898852602589535687441822823722052402458269900642183897221917215652109435623166255538256184777015308042539695260638287111837205171212836378295927310478191595834169889555810379569794534199467946555705339508298076145054762792686480185881381487885231463741302065570383557028287056775596725606010510095703919288886683508540083642448066657865807506221645137458087779222627375576288486240455411903201316311466362719607034808537392148893868427941827529539243281953492941245009720885354929050075322339189256511387963996856655318601521191741333438903509008904511864714383860168184768098797856599724057942241130884689464317646928300105588892705069622012278974618775183243969195458447716591088141212890030119161918695218367301222225154549888129504394405139966589305212170770438945166370943490643673669271558152652481395063927670127483597402958341198603324735940614041049597966291905893112702687329298619209444163939676066417928643993980300214515253220536053139741528665006360306765286574415571323464050894950343560061828733246157710949701889138570786585317710297196224666016586997483814023323674870291807257532447053996566104506090195982877293450487444708892117467143435132379013011049790139722837818033367376138955928078634655860950789090939195133403446455878393886779003202795790819325760128440050474783461734074922770675384862368437915003114832808631546058807119044917036098272602251675257070788415470159632680119621169261950654537958406386383458087118944265835608323906180545668148616480669557323644227836732044276501787369693655195797223750712596935376895090062275314297569005623714641393404638455175658925603726923758765288175233230219450212259551718755933669217287924520832457245597618847448119159395672182523868068133087919622325170502369492324670858394396367014748785548351339730816390198317859644286284362305772352641861125594489703674088169616330399967180160450887105694828806389613602031724434584050531123384914908031168466003127308470358477413416898233766526219356536993910828920818300132810894556603366158150109453936194292873829127983105930134101433031303302174948492211067471615341912192787807047240092499886106677585480378233941393596861647420665414428585614233428179212464629868220897454993306650715247356315002792029771018637999821450715698268733095665843170941949877431652393395637902341136528799018621278528034713589001742312132689137591970562270382095335396237202173490359727612917118799693639597140108143134438705311248461691160829346155974097223578050407276609062441529236883725197512302358945135848110783758968514414419646756878602444240409352472049435608095596782290527834003177157423912897555998375312693623475120990321550475597387102718244797245291411171708298725730973106523739108827294536184523413033237036265997798844922261624565294974718893861877101081913186016272708962302363028112453127104709868210832048384779339789653267179900384364604153744158777728868195779553193922848235160790107694487691220564032953706740335870035187436218649209622151144529482464086711976916508858798424882968555739612916373959215158417827389303083783574933672855344437535016781649295258115889252102695030840636992965631344642542421984020674864000409429366864245999705977433489678797188440090245216547186874335268999247945122084580650767869284551460484160105576485708985812872069509629450911900298429593276508394766880912087126724818734833358028404179479094348635289657285693264713757997293353558662189254320132150743926066800414755246863465660578254294687455309047872340050738707542563607851083235358016377009987175058507297843046486686580778266088506437326017872964042028119224070989145920611844575368780457951556362853310644501569163125315272625587113121308260088454071273803318524330094899649994914194101825761539425251244805441814532652141690453187022137988753041589426406155297318319474908709927241192027132026110625214000485763344324043412210843596530275519859143853638881380108864956128352385019931881840639282185362057974904274376401860185592877910539041743093019726032146229308558298895311740873159251750851714798318367197493356239625147574487503195127045904962278174313082559755833348493875076513356162776274661028186447670205549284212178937937550403360004040518862018595229121435006443733156978239869364555797573622099775310770943531264920965940399885796141598000721877903686570733693298787611565078362647156031987544446983582219019999365238965673623992564371198833849657629542692157174115725261306380562846502251617063571376141779561774706556202179538908971887109132251882490926847508685194256088428725383062766784385474219043352886721209062928024744704642475813197301907049817850506730995633621135201685040010371505745473950721627568789103254137564452134274676214967220654695348253561462303942247410299374543175612924333278637395974560541861970349819321037809427647386491353653102625314699247606816667602210109656028086198142264022896133708694275939574722329716328312259886938063038131259622028705624115546526322911168021819002916540148785518237507040627000842794566537033259588214265996158544897235943483943823025502882284579972323466946387746441787934636588262958815968393494886570126727358406047212078957791055382342873861020351937243481989811078396656388357254919056065079877830264327531830944847658035598861448084317192991733501588081462695831795783865782658654814603314404545875706126120363699860378242683965705062099484886305955959974139526760110272711617452044742713951101062877642967555183526761113217074089675886502483480129252972914607668885762203357305741153781068319814879181494989854070578187736430731285814364283740819431200253514235586085989364413128554910306892663590706874401610443605250636111082120016865365069466434232505181094788400333843663048072446222150590911356909076015264511683169336370804130937332008071335208178021168875140081281023460496388232831672414451966362221071856238942493793158189763623334926815525108850055023748905460052929109414458075833517483284971743817761938658927389169543594558939738639033921060032485564574393966126043575002620657971396455272778367525645003762490952307766099531525787751959565029799302002640099143561546455430122926138162216299637974771949706439075757110151816155550946665072014952500112012460105673996053664344976091788876512241801945133086693601378040504556879044987510495360493044091755013366085805267304540773993334098004729301462348786017210031934050441673294589842977467895817657734715110025377638602765859441887866184288483494496583216151601814828213177997999459255626586771122773548333115738937541490920771182729559662052046306849968139096153130909480106823691205418813522103196068373230733881818008674837185106192350898539130166807166433753109542452433129839160534848064224933738706075106313566610639608548169169442231033115581169248370871596484849109900196691939461967351272529704836335916883293733396529104738783661909521418649240420495104617872449769905353602415120240318129134713104847756368034661754514385030816899055154894943006491231784151026382540613091396423944349727210931473610404565673334653065136022820484409645264095080380127552690457888873417057221192469460171545732268663508622191622703524611544184482952900552194648899879315977771204402554242240580437158525447828046646060222081979902475759695411908876802230298305663143079780511752318589568046109719668941570527270144206130115824881347576612853230589550688638370390733034018317079304023937319782156935824801194764133911609952288624794503200036687172879930883554050500628945689119872987627244095251369781296812068190165476247062530179547830936721759506268336989999170377541697557875559150026462806815866301376728779493504985272330020079179282267263891612147453255971263123487372532405351502448809378430497655657288035049587156149192072044129707836022049920339310815366234192714874912383863491395235196196642497049367222046429527359390465580301178876173433762213662630986265050727349508376122164026883733258364054563260425687103928779490821931102700394431222078940471408862619687123660181171272740158378596778808018008032602328140517040783825977193715228508821736577338402646266390310407910216043246612392321330090458210792818124479689404842279571617885001880953170702533241856822416540671883937041799379715256893023939042011509150459821012631851793691703506688481099058267227402814004675985746079287332136443739604551833753347654828422258066979747604991823169536887663784998016294545411520982168159445100180116539793516205880762586577209039306702802727898908917302123061725883856504491837259544297615029305597850810426197601010715747141004363877220369723122023522913987380727368610076046710711128427677661481167482776486080650782395298786149851309279627119698587722786268191064874459629091201124606799483640856921573272404376816337301457762969912397082885106373979449776368040670360882151586737498185426209341928546290546553803722627796159558049960145447229504010026718588627345221502370281635919665887773753649583599220079489889614119613124009104405354882183715573469036075532189547425313436083652292594730451410737074761143967300273175686699778753966421258386223290402149576444210257780390139159872283388411058671287947220185589025557315460987464327495932756381529437008950161811270445125626531558870899474682100239284054534976844589687636213996361254097297276952102009741249378057908192934849238802711375181152038626759394893333747990390501171744203531709772821943048379358520993473691744416301708552542939460095435860024943185935392710369093806011123661440376964648347571932932082396935642145995172903647641475691200393159067109455832983520192253004946519226630431864364697714178473134930602123811306228735596643243924285185001530928821719084240073834441567148939177772387723871226795125816999451362099471123465108173231332430873235902699528590753668794953015733469272813970045258855736392844447821984389913738098736700313546523982977205225170597493037466221426851208701066306107995528285275585952862379230205903081633439162916729201619683218653878573767847914089776290561001618442861801000829440511547508882676431982697148353337071502378072422877613287918756096266592779604901131484667929453082842961370407546956153149012363539360131887652640117804921320464962174473005154649005699386441050388334748006921562048813688036060238393532206674974086783783797626823560401851914829541276726166153554602796617197207607518996476938830727542332730150867307554787485940945086246705783094266576913309461768398263800057708595803855262291833959590404961920320615081512482919422000300230061456558766799688815537039175341672495929493398211481859313858002608118266586739810117416204216628573467652686506619016863281174931983772120147378043456876289703279762008610734021266044691100018355333545570836441973331341847525677822996595682217822803938221643096253565733601905454894888726804101794194508504618754441346901995298611714267204028106208635800253721752324571731330681073486565382630394378272261365029053204852911873314294610999108383605874049815258102950347923778413499052279042799849636116367998780519788697665861125795058169442289040197678661085545827756467844188978275097730554659093604369675886569419268875381213714234976615303701942372486634396337929100227868634805059932743991567144480610665367685024059252471559730055505622997561977362621765982349753358084014013892487312869624043658087406670389240760971529558280870815848598110166665805216998066587286979138278302418269505464974941524869095231516988578998885822981954676239283324323239600548455162936610696977299431753140607639679961229496187587670065230434087659929050279730111362341219922709637386657909322924147725593024639067929811008781680626059614107003962328078849379942704986153142826201634728817668982123575296399500701918012416527914194133252465535395263981303182284510941427498566851115143791200836601359653593334586159983614380677136232127634438198049445154411564977301529001431192858506630693296520657617660904004086824279859478883956867586405455920632729931531930170952818065623676118675320743878135740891524709900819629235988966604004004432793839081308797625701108055125036264102240799429694945391696371983753849703809789171742119125368288049155556617540841002044797620056712903852146632838710690319869077533625419150444250918674716963294930483442719006752257841450753947012151019506660147714078592680806304584228924892209359853524396305219116164426060666080136676895761565002890183439282447707301951932363622716012334783120777970046728957346441378771067071232040557843315638445749332330268396434804295596493166104984903614562879038649317695907920104660000827916372186905924943695728323078304526728458190888853218740033172369348106027245472900006483469740624693876232068730377042738358577309067749799490688501377443537323967558890579025487063558851978486652108878417687783194087643353930102214093937688638870333471263902100845767843435989454281469522731404343906913605746169049543796033089149970526465082695491176883003444343599026721980681881024815081290188885778814053085678095248232640165648827478354458921864411257035872046973262130647690503696776273973847603735570092307753776327083514044952799300733565337663677233893887219441598160894606736487199687929179610635855595802526567013648345760717023811644819212252768117140117231891024171307539932074412515403533948517061559360649694730068582299641736211579302818595524489502283338448578109172531999919422405736279149805900365999465907016519146361293397776804206927332678163557654502611363871882707654991136382715068474616886087880738792380573233194283862976632449066187233600599613845435473655966014182807178718339182389692766086666825200843157240116843778307018639782377734522642653766964879827125416845151035542095769685368487596594649212997275622819536123763660128381921709304328367203514734461919541264463574496335628538011971163583596466003456461596162574852621750703821037443121638251284716541624009363991456048378642755566388573123064642356165829481132587574071210500898055689640953261236809753714242785103166830141469978650578843541848728010587634691990807476837854735870492314216725198263149836699737270937323225044876122574741344097343697228503199712837457549220367608096341460253266910180876963842269915065442972182291164355972533259916643111710074385710211637551958821076768506513298164535024541951346004926635760535395269884165509684896158206295580713554341306211899000883927943776323084717357194006010246710395648634823556915609489316912797377566419795965447526323170669289629675033068327954061629835807732932710823869011460100436518856527511566635680688628956315277451544661451348205205898209766890948732287509371954203938675985925418495209092442962107408621671309434199868065887659787394365540218173572189044198071221916148942484762334632955286660587737251241654402856063497245499194239256581252763458543312961497670181198725298738560126437184680938843768483254171831927138897103287922810577143134387147411258174316740416033332840051846844565384577133946734768220900320497484328431253834928041503166706033872762792383415735932864609669200522574289126219051182575342328975999946972991143967182738155061292498678165677354934721459928220754334070834984707408878515201019289656886492994762230775041764782890372884512618616141590500539185923314761228159171437376354485435565426407240728288342329482153628216823397028894126200356151622043073836966887872565548761322312517633770640638461224020142289833476039620956595588967429070032184107669560371756805125321344846930124597514802075350728617054687435830387035733865387971296568205444868763461611560021776517441411199985306632168471208122843760841487346507381942554688123493400278149840520228948553291720138023552751705362797183137420663794693914341674698090872588357465238998916232230152005310016015995647270735769075656043651846684100777611761759731465862802186279057277007432318918035179086612765239105178896197215431762595119485822354719855515106392253137907561334866576859506718081851052534239778938225105786242737969042251592203197983228446919000606901890727922805618208214800065951223978032910956059900383545844106126153070141325185737940102490189317316529145982553200000906546394464715908578755982596580401023983973027006993232128207573792364720716979660031924978998371177630016010182922168551424882360900773614548499753915752449372732389370825953572552300106594631382378520461495511835582394489383613329835987613713177191339599819951162924345774909489438642575444287173236916058553419131475922860084026380561236205665050862110843404703128892903959696458827251006903583640909245846537192888091512948451927402239916610116369840812278425864139598899012503756711055707164414596294069952317726844686576930307773061345609012589009411359433561966657447064204838045692149489516130683799669151371981891514203937429605099632637232792962808553852808491998471964061120885467720448194169410464929010228951457429618166786818272470244595800627532989152931838648362753678558577095331542387726920616590158740891303963493367493880139889269728010739308086511909756585119074589148253090324953086859076298151064279456948692460129896862557204761120313340180710012603793603626380824121473480968411388753049511077524386191282176235724376736775228157123323732340825986660663107168475338996806126123710939110307479134200002158104216465246748638711862878298402011200238050779120212836206097533303286802597203876074563824024942666239028458369681205229820077336763113961024220366916178444476783819534472189190334240614910284921738288434394880029789074580934798856033570799731050230242104866617206591606698258852618850179057922845831535129809441611229147789818999237597471593994209936560463704835014493060200779553033982210556997833699627806228006008189016413088660466126879691922537417277970978018833942180974880165574941167918907474902429240436611495656428694090007504582928703774201261784108927880796333793977285140215011084399770507685232960838672731749516718217486833924243529610302369163232422682737367350159086411047462154626891544253944986158094741997527353514241362011034895032103472321650506595474835446194304005487585240698970991470638582789908930497980169740899466800975271272904975045901407221098387560293351565411005119617813835458212027650944063495975519852505220324910691932671843956286922589230353155129271233615962065624822378167854153118195107181775905663866026445184403373719221416892247509356306448247562393446515413837810129321437154715386984266104633741846052967265760430398223538714988631561328674883278068837880112445642679267427032603284028745267962878297177610884341568795136975976494930232590901111866593310611164264352829544359157914616275524190026498528895439956273743755367243363345340878931524288669533832274029406298049311539611243344910856796309244342314729557941714884457977750043232167338259478264544150436697990859085657757286570094334194827890675192850463724153522665602061150636696709775822106890269946813983416276637723156385134881227175975297316937024825123294859275356027475255093485274902429386268524794415597523704920856693720136932115335281316279870819523617339773135015548566574278327407432473108326742614478553452680904581169427753886903214075043018436216055720154428489773946131294927156210738761364538501288569676446215894329140885814228353313167012127680667669991221552972068647329653130824486423978793009779538066708310154112235412220881854336160548810364663673932535428504698723248539689096055772790163144046867229387176668982822863283435802959508360346149687581506095189322490616152986415093588577276031876667746499004273617242886042778843840045144835479870187142424866523811234588092047158075611190685240972268982459392363952344050180491445719981780632093260974112733074294388508683837637831812149358614696782391698226228376181128425980209765922806450583608561268982490223962730357225650076817487439879963923646513205033834075596612326386067278949637778936653079966655590905884537105767310257741094754002056394812356249684803398341114677471298469019515817778990799614123625465683825090353581346524187680938730282286064669060971634680066713811950718999438777976986372544246797679893250234031355157263714681351030001802294608240718049517830748848553707497760197369427709886144682035417493349922161152376675314783297477372825131950598648185478454316186715809519862407237677853431187108449177071541453415540811895139185132459595673946171246845023714413663954644572580164619973912199766949665986423797800860640163656875812038481738982999018280378601626728149751595677151183422906164850825109508959604175200710980579773998656419296697066011565807151582067595587617779048146574483456845275833758344781371938296344452009267945005888893753252907563320870994213271745326807920736428159940820219190821685433860152137036575325843786512589637565712307897209387043680017852593534912134867854131176953725354062614782063841141518551569593722250600525564789858459091045607253463768037350193532223831871391298024047542721520186873270467261004359591053124980540253764846026592404608653878040493409860492497335611306744794612636795753380637235237365836586922164549023981609902668097444380052144997194948375146870083864239210158995716816806563568709887185556679995680395997666451159086389244578181500520440039342577111515229080460989735547031910389676512661114572401136346830891799681601021080513895624032835134030006731971332169905739544523643784546727739665663717758121647076914281927520401336059994243797161657183093100200606613441949028285509370328078300034955511875555822846110262495544866313316660238013632111475092092611130957389766178631775418090732348705615153606048493623826349476608018627970698663472971244964606800775944569800017255533054369028305360930715402402529702520582290378151505254442095260591749997357124860753573557282227497022842844874821602353081982712356663152076003336884465626252146951022578127929541384967819587426003804803024060394543810730077505988754529880655394901530226508822499337359847640881641446432954337358827995163006424960875002779547376236288295540245772337283448077805308641477347858322929259865496524950837994170893107214636941072907937249944702705366692004531175367569898875003242063390653178625328155836612262820037918042663514338617769040918053925358854904510865737398112716778027007676864905144630603546707233748479253939173596793268127195170133101411553446766708921284885558152467998227588026957325967105599001598101721540339542913154064420651121258151298336685013400929833754290773523722847776147044476930601190292870947476499394354373806987878745674859571568987313587743363275314197821409115611398180183504590261521757192164872655585746019981694568486274610270906585389668810150645678467350607931818392427282260892980710068964073577508938030630840521879200086436619793192729882054205408634995617957927972611964687885080490074400371944726043015251842080986216721687085170965999611554464837806551928171109450945604764090493148707941055678227293376436085280356944964269861989574961836957058468865993451445136392784407987813184876024668740112644008182612815666587643067332948743602871256813422291450190188355865277210074048645524584755562589117124176299977102389313323007737375994364953260441787979386452343511007563201965742603553403054816321166684341614839311887747672807008449239944300364312774186944338272829334886371205759436721669925215092883717284925360190428614873277998568660740080152752126447236529130909252875036227084315794318653949902858267892843839299444754369105972267674201745025642807452739236450290929887638576635880643806141405061473061782752873260652575813164855565576006068628495881192610641139209940459274372131796894640482621078479500572257217039240127617682562313204022643026819030428923042203065255336312189283218222625781437948970771908578983980496521839685888465184049731322688428250831901999629587396991108804138456720995597941990279421653449699757452954012243408098217613914723586791629454512716014086600595140925921807729859230459867227477370852010839957701611948911824214239054666856773966884536349132294805232227098062158237121963928766843910095442411771400482971880119860888775971659412535992206671856743045576846798869416185534845725417396806019299351553307212144038587171808981061472861190345444415795300857522579885362454647092748544906621519403495767511985194040981941427476775480267031112654449332318013959962753063234878521512923914448651474813742543937901562304221294381992267102706336072980731935083633171509319657968930888563242292363213053087709154948616553776800963978597618487921268940430352718885466541116000492695029617196909460502564559077063826165159068234222064203504924067575581672096220731453551385510451063420659500096149193068875267403179419275334620138339991289949619188899849117481767661534811901511858842187514284873817088509857420752607836113424472798976806027631582009219647602104806832042211349086158379103670354618388051840243488046958986167393790461727868902521169842386836895789226759723968817660174454510949902857671838411100653355685074974372567091716569264107069241717998929080257681328435576019279610748542206403691128605839729631639880940654405844733207420824380605135446588008579042722022962495279959869530212084020861005076818777407299426304404160806660733702876929056679941581414708771850847402540141665692160760597209031836762570765999738876606663453945350930948589150511439461792933554177285207130952413706886229703756976731161074259262694840242695565405966874006558143514536162107613293621534597610048595026026636530878928751641040749231641691569612957156173050863455918655237166348417783344976299917500644762894785838077781918538257845967634248119758751689937928526020435005224926965127684298343735134162834750732882154956975275140990217528821707998377330756334020163076840416691544379076369737706199844398087721634937978735639906980699409002147116647578574779568849452348654768539470368308580011366238159904395239844746213965805321745912104698477378959797020332470770138921551877619452460166828776037391034830310456584229745926462273101017995745459122863522778864717498598086147176555812271343905737635795214166429548936588685894793103084267836824612655502637258890807461744462102290063006018815794590899909874394474215076661708060346410473005164308971517717766113851591044960139637517711312025424773205719628027171752947433239128289803391660412763328515041069482114756223809194347708282255948081455414597567855562073184958339176296375614027372358837222172310834127464368680418148930221473753837732648760343017095950058351485613795225088885228459257223857127499607015506082610696105867987026799092941666508398084384329917814467228678044480883097021966072816901594128285188969121067455347999992140835330389741564014094215583616325515926111370632815113737289167371969858931868868821983523800700229328088901087532160878224987637784017866944605508965089477900074872802024519855870950713094488619516585902945624669760054470438295664035488268938063066253736936400190756506536518260272803192748540872302164078693446821036617959475685160104866242005158031932631188234261568897774534937203500904038409686866346413385998308276637510507242012685010363675974149436845207734608893770919813795992079172514287822962176758974654264622243018949587213865742652191125253134276648712393985032554813534820168514536528080816372582885060095604449015130600457064344469841627427732414835769815756624469617142719829162753890330298755123172562139575025713603598018330919999574680058824187816207073369125692098641129311164137651614184329916086135108611624854324936050812890117099187411595558660196630239748414725601495865085175478903238519163688743637713631270898370237895341220386713762822371525417256347781743969111771769900067290188348210429991270714808762779533088088812253234117256224238885303477738441160228488923968117625501751419999787693685852295375076387603434074521685732123484723775688344901611313342843124194948633912604857622983138956254621280108102192821416968121528047843076176987702722686589827632675273926012467533842269423973589011081975193481465774610748561870534267135363880872606721420228334269393595752079930474860775907885888015293583814797980172229370880346074702802808508926818873101679808696082530209462660476899918662676979008784237598306467948346848326369842104043199404644255144328888908813873009440737379343448352806628695428822224705700054237282650189681322648076300327898246473901960689839052750019716961301177046268259423040484055432375942290648290957861330534482330437338921362895048190158984235128807853982438857060636841594889353985210610954132354584751319018637901272324164889730221558743093722332115510800247039132092255277805888362267248561982009868703113899705810084489968009834496290248553019006179622509073901569844642131235992380837101365361874377014730559751646361430967046173999966460327276486627183489157999085911978598416846930476892195736618249613758402234418517888876252539127632288737120986158920392041661143708859252372257897983132259675961232674242849887490027458317509346198107206617473196024391736202250611311181129335649892388493588034932475864344001323208229068994301544611300962632636767027654010072733809307436998101889450619762172037887614161323634868212480836752567070376567394765639564678673985918795224771265308620081574741712500985059133568558727260836109850694118207085274461180878528281911408865969396544394595507000092723775512530689343654809436635413738323856925647986789510792334052580788346727064062222230512405711749772795892897623073384732765942433254499348263606344844509582553803790523503567392703072035644555334845081970407543518101646423948949679696215988829394036594940855966411292363841944914028879498020918634470558024282074495130941332986465467442457040571382965151773842987844357879889893997534300433752265703453481522495509395428308105344481515030457943971507790281685035967635103958095808356317964331302536301555213213246012875530727322899450955393466674195951714434674065423383990162014706292581943810394565249307434556525341425883702222072102823795887919516107658228534099862707828535038301320751520117563393485570527249673506985039334236459500518989515395523559590881474914458579281387564001626177595501464955734694496045068200485192503508249499412904067578728399569645598117009951781797726920981054088759187040854193651373038708781896464492849611289839667857765106738450926413937615373778267604673091558870806090361987349133156255595684066302929320250711255996139766203530489445658162062151513059568106973085405661721014637530492918934087844420203561462099324862165544500065295994613441413861007787763899746734893761250747174544502385318453286708607558628590533771889111799716041901817845663526836786597137728449256481734732120666699761151742941903044907317876828153086778624208931115403613601897153921960257615329768521377776082345916945229018202884791409010268757489326966546878718407025241143213912293036031218702374759791313915682237534335662078667709156277566631742371723766825014051017953525652858878930657891267463537386887921700100451767758023788918023797610652491255222359089711493955598338788700083921172901942546651820298819110000914464850326230710847027356442081399295967815541873355546352082079297535330420741208348546727549691123033188438351491895517519704945668650478890167898672336756504636332638940504290859616986909488111574961893925910553720261850365884845054185020083314510801678593235783326884573281220516340068702537439006621298541102718161878190428154464705451728494392097685900144545397029349638744892025128650341537042647242939003926785776692718455817951862011821881180833960552563539076902469064687634175957135649078349594053857419594148421958615457787397263971721031744674235402575277406449317230057983704700101816704169294612195980326568507488211692931092715239673483043135444927982409283733869509382771219155435787306654416500916511071409455354474282490541740918827168326515407480703752637490941507732520883308497801259873278960996309945169996866448425247883153581213522317392485516464210341685801635334198764238105150702980466563834361679994406365738690322384902984017096961909880746667453195525874260535580203079072740964764167005072431407518017951452445575478426898404105477351047872316034654769262756157354488192605264801396751999419300434118408595587236661243907162518961989331164668036303444724104194410267784441376999430051909314525349355187487240251791124177240395005117367363361611342211190305492865429036301933804663603586520233068394957687542048536233466528840064995279245479321414344315916577149613297363906358029571661560373202030327312987635085515041649229603307875559176059447391658604469288511905662985478584493552788187362428346556453658692109923073433741902483693234258902902939938504099033141410845132137697277623853323426635874766639505192165944608459726495154661078064097644929282547326817567185002266063174910985063416597789899811815778657509875016950421095447938090306798707243261895015979822858966602668695680765628459682484885868134433668538745752861528405010831582554810294092854044780203697639575131888995195245501468249670035148684644501044422679539941578221129507096449407058216956922342332459511671470109293428328666230284262341906622722698911323592067123696196819601252715162138657673285584956757862963619322648829952403811981443371658504549159096657632920078788633714196855633459883983758914183962840531670252632614706697315136347048540307529645012752970473139520785048236063086623672934186573428906254932509723174639919134677785300637634512462453756329411996136289763980271552168691435609873552407250898576237778176837496427574128472770308192155218095924385788364341678074113591276651668779349114653470653325176849578044157602652224438766946980276022704583940729920316207014709180377817395894980362748470070567191654794425501610109788302541325038912740370737082062956777529591841100840475767998825378179664964789101858713774392834533687586890769006985070932368319528932343270162777037264973478698970955816975730396519508396852444069821067470278318079035352289568383410126814303293205945630997519308969770105519586508718809122352607093299490931377868499309612603836716630671718369345824286923732217245525214918348416453556559241947133735775036069330919887074532514644317635602323475176833186356589313852194496758425923565319721474855057294017829341518844731824490717573188834205921805815061474510575026277420236888114026416426102072843254215915368449461005128753703708891335261839134549476513176535166186217028674844450974620146073712976950628837303296105222069428540436140363145558265075714446627749118563420902326662362377456441946835112805301036796242398793127448472532192476549761692285205870759476987573387577648509925661859850712495337519838209965507614149761431205406281824464466437729848427870412925615920296471859648243312969759353010956731548149089465186549864483662273590572909677680000949515245859247273462185556093510024515192611989727597467599882263829087032472961736509115276689541067365221662391274577351882799892611943624724941113956953946405365586445071150638201579879945010758570571258022975499696672728179079224864234225393078944078454654247312165496544039160259687151009413246969490351139489777497129444844816562603388884448654119299923157003160438820011283592387766588069975034473323304688730480737752588078338879027249280246148221477368595753572182669773571711086213053693414927525090204243423976573395331870582038910710678298781941281753647285001190417289201815345878671461262505163459390072517930707461538019195228968460982571950182019478815926690178482604584988794706443423714306142471306951527537797307939109799790854533295011530556969511946052186195452916156094746788034963416382147551154271277948598642773266517948474544731274965688962530486648901389463718509486302280837523981223553399474464238147972210599847556771057034160306033564322525537346190704613845041754297340781178288178327194121030050305068556519015956480377360479829185319522766687705914248432371567997193660034360192842855659415819385800927081034762059728166223187681684189898872048059301228131063402472667593422304724796473942186036058950890131011938831035180877788079975225091477766942102959244351238745416261001910458648595116006622095121526173685700004869561032834294669122733438750413211286012707021249751455491616277456561318019621375105571775642764348842660652327281221922151281188747831727636504882714094438255036106818843540257885446336033300501774026548278999786722380972071507195586603014306266251208793670825256455139038006007194046633331623834475685812290085421651273493075862368460907964383686287509204736028446278251069598792344678301514743113587027974614305778799887619738482519434864702961306521429891891848202698057784512539968055174394196971336447857111969784125319597442014833136896062606910446190557927664762304792946140299570978421690946448669281580924292667365739886270708939837134662130140071849388963953136205193672414235473226006798919231033911031879369887166632803850240508910099083747239080752443620941256083945790300490936850938367139129346708192081817844573501993053111223464092959389840538933330139798522330954092532351183160063618549591141114590635468598988624070539634659079706320344278639590778372273662820370556168030113959264768148722385342657225001968504711933483067935142972071188861516513990129487354757025075410539945813949070198268453720657520652321061909771795091206548434350034778851780480028655394952787823733491861384881194931772536262623292151195430717692881955888736038038869818642825282189710796987828295841813462717753493570940675425446392802664103881371002636159000132595259694038328548178103390879221821249431791580508851004506155929113461580808907884236118835216545111964227976465189748249944634181673868628222005095977225947781493514630275972546299581577981660568491119583053381544270605621926547781674296868182237303644123092300698102397283941490336622315106846591642133977086035723856687185156723067034368166328568333320750649618220429264228221035844534948632747248944559352235278668546929199563562130261028110694893095313532133448944236749714059951879123427287260808149710782023815002425145623611749948807879886663770327000328124885215399897783648531453850308671759680655145910489663169668637363122509950956118997960709036868012698080226435508657545703113755769029978776329027381086650762948061841299285797180588723141620039546204694300557702493863853428349417674134225656854632345739297739400387152385820573124575774181888796602903449755580522998311715235874310425804460026539140169946663484928641287803007358453442647479096134760729976339442576692649973562023275331074411982727423583659186360851155679770455888868414561428278685327382543402171466019875280934795926536814758359219229128048761029010852598807264134251767607272360462904721131679720467208714838533109759247482882340432972093784453392388736636919041171803756762535764457850912361503577568386005410316353310075734236555517423901756071494973853337125107885660408722661574377166721815068914950931320874106297960773090384067154481131040578175754741767944086070037763006701372230025275296592462628227560395166549842851220019627914475171500856248684232896705464478864321869729927897849740468369195919136130255375024232399884297068909993525805394975868574425859086771745014786958921053362619949489850683901588063601439661250592350091409722926117636874251072618822993661371475660576718825222627615612992601525250718168490687527783993682315811911474645809339266803699167267566984876611801600768293155505804501192420876858135188332437830118971338918141279654256515267211429646983557863773084946372712931147326301687788503224944927529873687735833371409991406601970188092169106610167335326396408902678606169010903161484993749906870978645216769660524078438417368490022061809414821772532930674126836735894315108315531275973583367822120888150357161868817016467040401009960953261130367657466413331574304510175871269633870924279997167311905409823177039917069946944394560850470582583035980588409453373556572430163935829085886432232388932561350250906302979430499270318501113362388291129446185777401281934730027526747489530157948008175273307215664142407471548207520567153121147134545051458503995979641591176032014445429701558417043353673988731800225470265765714180259566574323832182578569086578281958710338930117715650207821157557847317038012541368353034858668449955285239947959420135244568143688629587513895772603634557947570411863375288135119224178349069082532411473128148751440877350056515424016540266408952126706891927609341710269470965470883919257352616360532647053567446980499787477618619592560634217880950632609126691268241975030077685667917099328385611208854542763581857287945356969206405623740175734364898496645224147819174206626517660163544712168282560318314046084423362338964894650449621342316053485376460785972365177900452803904153027536941757672836463558565734708940124795739580554346321138794387420340384452003784888436020247514634453892370269392122085930873770554006991801170631370438961426194553604177888855262439210149583075746512949524553644685800457076254047916104562163653857450059269744100004137792688772057260396276741127821549621235926562807854492954255739761677176787402129979037723764045370638399188686639703212723555774115020798131184864684191615056112344459072878441987322122463817162240355314416207465981630712219156545138163700035349426413836623167329081671326987490276475991647969445756290249147379281556797524030862140654081074886137727651692408007001147313823263636413701048110746919675130410799175314753783228522116371029732516532244850617759630753541366396214919480992293718492805023416122163845469787547145896290484371562048726522367129640952878077391897462247339155991559431025849464030933679457768503817145081400750771542425566457383895464799351641034335570052592742305989845742612071846278275438452012845249285036692792860425928130827008553350774415560937213755696007622299268516305541939747612543362142151242250653730254768839139537671245897957103757243500875477777385465667718553058018484347964385243123712166597624170962435053216077088925108412623089632828294773964417078052887051232108392548605905740512576262335848823990707365297359437913201823625895711530440306803588207589312676229504240855245639387520161023876602220253634128553264281440424918854099374741777069414560175082459827855810747398286579432373512252332537936118715199233505497501245925811544579878621420083147830101355203853858601186241653271014087627393931432448099349689588974104974903257488428450313094419022044433264067681037728709587765771857042832123859459137913569024154152056840684079240564577997186616863808673601973213182174265342695717337567310138571619924938698408636749407754509758928133497988254930691992370042065123283588542303585048085526710081188244112509338880962650315252547271167957096389469599218918913381955384189456555464087286878476370991468413080411566704752863194377935541817243245608997417431312638139640950367279469254240349472810249472762369934046345710734323875427519053772084246688324024505643441140280257686145000562804772016274909019446458985924479712555695685084420274604515368038923116716919377017081883151229573236535851403351456180060227197027286595879566814533083196552411221708137858772746508109724851146744755099265891597697176122477971023728096636531436278953577792018035647101253741401046500843810389397201767245169913039861352447924358333691977605068224381159782164375435085479503339505283858093979808481327710342034265897623735276849586587003705777358184716380966167687943211268161925811868138718033028587211068621082343720997339751866098565464563337598943365962543891918322055699919593426936340459126773264504347833192577692161270488045080816885863733044130887262029957638023056323251934299076604510475058592013802525169727381447061222073335515259381613131454981327260657806719589476108516892446905112894594327204036649490768621754951009673920501167666271534086970696184851684205999817061240482219405452107288842509915012852487503055659899588088835901176593051964555722762788101069094199365233317766591487350176430441639423298840430306461157157189704943713566769213469588890371922571548923618140275238817585884264331263257541823541765018672723224880817911356663755419903328342565013990947769469942426892503780482725097956643687460508764344374460381845964380861321693056242134303146132817520666808153391887604274725128393060283755040170845073270999003054241885140261359507715273800847099128793052099156827518350194369709071181611511741077851405587796157944066309347783061790147619528633769446895730049683420597308475593494794199895987282746402150457066952870113549634693666831183124008864300632115108819662957935919930736431105199507341952685718656833484832134301816567361684389087747408611224575736893857860345754953893675680431725537370064893053879249111275977732008231457514648909245905997208561122121236593694342526038542365374325803941638765735306255881121901289947370153214168951826192011243975033626006623363717797155458729723676370829880655492718498461392019428692581374306550325852257611983740209803242475365913252190104042400974303315579022640514879446117041642375807515180204497337328245302934227517576630661422425669951001071261834251487667868399897106219935389660183939881821862576062211155317263647338009283541454393742345140417200571808000995437046886859327813944729153782582531460362828783488946549158921552318188183407301804754881090230718298047870853496470912747857187638615925646317508691802659138397973675769073601171730095845313249610717880388785130795121475880957782104390261401988298207899062500029603326905703870772457130576377172299340017004375635936310807755209410049891819460292416959247147197470502619159334781599070424847272623427711372133162106113179551362257954297997495409220525666769838157070158525095778030647592002154578277580417895818983990752128996987913179014549366896314700835493018069627561625403999855643406534695115450021514162319699285645198578690295995843248039571947663358995928850615523471359443913189643558740417493385225491556508294737951440362609898036223523785039571033358283296703288624212087543108993104162112290347074643982386925528535771051029165699693861409901264065498505948363707531654338693836799732807720624027825772231910225025898390192371971232754697223422090219957027506187771508530601269941080384564631109847771367145293545114635584033526221627607509358507887971430003634298589828405022234707542282625696239358206820609144831989690620611764654755802419031266078130400420284047989880713415736690430957563156896926830921717949368016073620549851361395161503038200792711656413083933221097871938503885458780002751760086694199492034618340631296612287198706971354484660557619138275517100361128607359750767664441402805697570637707576698866745500537115788632645606906263586167390648040319798499900068192525254041670492658427337735353164880680825078689353900360718181958042615970204041291373287940207132431461599945702399350605434275633395410373780580162397955457647448588967516237237608167221232802019092653971090305296693123010113845176507789664494911380626106094265425021784258708876570220469412764597095481464186090818656121606475854180322400522709234818663781100708494321920320420898868413377149841967310149465175424234360198887593168090272156375759279809663754462074625461378149827229627597113360798707589710806647356863812476775348578299850756224037411744157155454473857009084021792246311615263517935524046339491312125531008788002671555038395359103217875633899401407788959272863333384188040565685662334673000012576861095633764616140955674168299559006589284500210265959351645016968079042006362877583395991973366813685700444578997284434041189637675894424329250674508038731926882309538401953525510139504979489180520312999117528591372405769117930936356503829646036736216929220705241088124621366901886539226898937893220728625022241514759709162221910524615562982494263107619854138753582173804329973250943093042592579438517093013610901263249441978572975590880654237700937563237997560058059015684306821228333335606622750287586334847040310869134898134471417324461594544173376872584134609302926132912833438839325177972597550885587158866549095516245210195703803216409937787780070024464031739422279175803237200772726837904136948368638767665605776459175610115863329821132530503204848452642626302515156925100567460543376007541727261015628207013830320754474564866632000507420485356339432015615623697147463080198585749222894591415410027614418220316881235111647085560255447986390985273024454433532875690071254636548582648446479464165969953765216141457235786648502801118696637517880928346418257555008770600020438877506627058835305608251824230952893907299985003706297241697005125284503001707704569483487985925972954339157382039401520225623553113455693257599014310866243562310146186287459912706295854112725575736708849622130315196267041285259389534338488870967676115539757074058341028736696796079132227028178910016551414308122115089924844821167704606709498398526807561814544783793203709895994563307773889643652855479310755130591725502053710915444101761755450668580064321385561432632466685170023545523264840165793698851677910078093158312394160428547691766308606434015667406915335054674596735628166017005376554708522770115113462164759910167270998152520161586788722449376105391581213932526152443397982895519767863009058944149864071657759005569581174246116881427470923344932085305213993574550647248118269423064535789829015342598571293640580460171288292515668467202503689065779395523299920571728654557395584512951861318027584604035448093917493265483860414321604209716869417169170201652590443635188448170043226594760581205070306500709285130859381352660178023367073684867005763383611473448845619618455878438900503374440067928538884319135926335346464370789874996708458325643722461434021455693261064191694383641772454056090844261426721609404651985422622217479628741164921903184895965977709712721279887270295675514757473769127462850012044470857922327485455862147451323043591874841992892455379423513648326020729836094347220083420597239329251529497115185997546295066325744891325001673785099665258888551078644870191524770005314592580315797158022900136900724283929682340246129628385940319098590313810595198073511901257247379790629714224309951934438132777168064358702379714569050299286241265034389173207040696450327407584253289979375626651957138036308725557816523950724185018912459055886599702196294726022251810690705275958934135227310191008530392692395982713399058812815098343912043651571236937748018121567761077918879602314973448180338800181682268492053505642762311608079131106121864551584526088145816590196401224298977322485577917105230627963079799311058281407690108166298907501390357582002342358202998186213507654328300114927835409769517693981732897740590411089042847876072385045784601287655533835584707264157030994833512221623475187433412321412211641155914093302063970259613907563803073146923527321958785908963248737533779354483738839859046709722167742706399338122061413760237597904575317666305996458967016964667550620442779984214045084767661340691241761893631120749212361414641014894437488381945595600142128601479521514672805217459103232258911697772317832131668339025284053274905323338966863985711166487707354143039635970766904554986440090478975297728200227775741095237979960485191585829868184970249559632669732225448986563827526337167763410153273586959983870368234198054306897030752295963067016267334270798215256753073004754655721942781220123078137949844707728641308035237937070844361101403910558858827058542574780875731392225121569981476603500161054796709982060667655685699329093234043687280611167104888168957746195645718325986828575076788672374084105170756387611859386211834633210153883417437245994401264838312223192691855361139943361174856741282045712390576512611406241300957619769631307219549560123105218531353313498052833897549688963218719596231917609107462714986577819874537418676465341154645959697531322358049926750651699990982530060271705620320615902402488914158188119911088837585826109159038848699221051342537740813200079526166727979538905419817202991058090013322685954997284391827359031297964633746755766919262469032096147211808437979221089040743182558669059102791102085813398338999728438536943384798757643699817295900794803316108675513963251980939425381577237361375633508657306731665470127162551331561149835867287023135099864969210607084138431896272593375813539554496886220398367337409758545792172622274184670023876251491257923104118001411920112372061650621178266555656302261685916704222662165529440590936738070849475961252661753570594898894342305843567543344186334299595287375111344778287669619050775539291386612727345489708486658554172378708808423322338467927243533207373455684498822733271135933601506887327903392947895182736512636752723670486663516097629348278384909529981968064680051424348235029543337610215839832726177270349096511700492475993303532831518345060951427180807166476420895360553430402360666186924018956199654554986759313207496238756399716499920262202106999781624048345471044187429827068450621575190141946681273502605346068047611634487745375404004126222556547324320487036810127109736832768152765090239161946500308883964838219131300627554258157416173300314990326330072764322217933494854627666606034108782295844078324977990953066147268328083557409292100300163326313698947897275740519475046124723132313797891059269672970187169599523829688867521053122309188318948148521696153363336717342976693905493408601825748272317554461615636894123238303168289545560765619442803389356235129667324247653761416808161554350904231434414622937110550675559280771522514086938950835026009715194412350701407979888144178019895390209411138050829126382186932692429435268181522029312777137146429068024993285509920861335592871785202065887982959439632882400921304421137051369889430770479897521420977294170861215573855297980732529217690559620021539177523922005025481962457065632754429694792245376068770418244965857251465486202149118283658985594802656732834113418002243987049591996387528644537157835827102847524258101966984166670162409189367114165046876912596012288856172346456103605472647365700447781624306971905839873561136327058502056587879590551481531335188489223733808788058820661879386187670165355391807300551955644051719244746890855937984633542462200003846018195863470509052292651561551917285254747042064150440197355283970555816171750702648620278169579372777561634375814207020549973165010646052579774899795356342083723176651827868900537785382184694306857258624907576347352969751885317201050653809913051272705296596890864380970879350415061808838096019818337204477400967918229852142248315300878863081750532746640711229371408574680402817289027272554230529692200855720465851915198324218520875536932635695336875961984896739658257305546854795643771791053763890956501989100106083104830687030754143705180202843072512876502404054420697843434511097959860623016559012631950936285367613304109268817728753787070544396792510990773657040837429534787046764783234175558349827705702567650799081296445673370578040656620707809125696954381290037583727855071830905546961085463972756574446272222407994708615055816305990399883961103859328129921750263936057161630791860326938026445801178971822060354467753221084614972151800019353781566119610322478885466721993655075948830328248198251780311402606548640745905678992913400552860182081802454420546019877365072618947328860358181137143251629039205751244959676589024808222671383278039704394713732216761865488451714411245481926039000967222511798870358990897983611103965470038101409519174231730516170654174029137599363459318340630881580705645961022146349254751171723579206469282584883712588069541042251360787927961205578763970409846250327211696051341258274437756923973601409949690289045892674433416740487092792709210617864772913507069963498124423684800390307985238475273200825222419720485226710917638694391798764464747297735146352478847059365294658988956330078478286606909237455997169463265223118578983931483689971168584163908968957237320834373851716497894020395062887557008498074415070786260379799751160899554029989341362472511338024992480890804679041187653686684234011858576335830417336539430574283594258680609790553053631337123747683389494346277623172106107288211032289292717760164333640274618217478282534758657676578083120688484088881187783763672451351388694348416075718576480556674539801045421772621995734617551273029026377227729802620632730487567694108666793460344135214314529632452303555414306803337277369784241052186454058032552262118922898067912971979862256368426274707088813392095372403013345918604881075504663006669900763222417870773561399441916723954514445057850400739934641727071431767597960078734818602832428338307337982308849790155595325600399483349952748540460264037979230800466810124846082921347220671097841722965522958001126368518909479800884713239918621337655886595915015896969574637720021163008866021359169192852594218893787269410744066594820309770183435370452664810996590010034570012625379679461520974645426018735513368462400462288784364000331717664552288715391395006931612466360404177482102661247613026498088079588803779455771174071575673941141863571752157736099975285476526113710709576024869892454066693809345102395483654204733720912837826281594924990844774180346368015675639109403768275202172924339597519014152715972387933613564880285450884612593652038574445397226775087847579541152174876728705660298203047078092661258000363437906019707993031330234200826568744205772474323604091037458064133346720167586800110735447321424885426719053197588799876167280684712472124182691570727946562892696399302581442597346958476132878039720096800506045745768866939808798994949426712147180342433789498252955188401847514751477597543342028175796000082653097640814806163083867472950118098332951131799179471174649569339329892603505878902117142069975796296125451549978412719431777679920013422163961898058117077399790598152309552342425477710738678108620004910332017387153255181782248864185635765623198556381458178112240754685230847487762642376584290233407515180907211546074808963388198046074879812633585753159600273365007560350226300400948679223205345489507817403159896493004157224585931936269517153869411556369146232602999155665141795329133114213519701816752281448284997912234644978299276450383268861218344830339782611284354514050151056705638221056663552921133210528011090367020905390664044863509766054216916186090583292444113375191245019744103868053801350873585129485196507549210345890815377895378620633832498182256210884199204056575084498502769569543127087566349989746510749361855218928566779591825589599600965611695791686027225408399658916556634524885396822888472671092884930839793695583982573480155402875621273821823911066258700742273023830236988119217543640417431568479000472141402726331868411970304392877009254880394570948350445656684219566427019839481228296649417416470419471418706421587189693495132779836385575944673922971769233481457622951569350376504238200978009359485019441368161353097855348982168297710927065854241275871353527202083925453050738955977195012093090935408945021131890955087606712838977933502748238303387516078261871613093165150970047115786051376842266208093761585231564498862516308306116925366980426861283883906954775948452028862857269929618218864609684442222752140415787954464970849916971370189041204067645348832626579261278690144088693153752431117442165309729892917747848793106552190881979436419851222597791653596559113254853178088342348632476391577806811886248789866002963047542705690729212153119124477569433579839284507002737850707308332493721314517883693108311979515201846168830970668667689197094535098907625142020163301090198357636685090865878263271284721281970275249479505056409761546500166628692559266351507575373805203264875190747180166172838653219574082922070255776493696081639930285986327215584231080338763260339255704870859232510465827386633482031834041791329937982011776747442387214439590894548724701200760587629859427304262411733679783199975607790141212039559596728533191329156025814340895242266011200160229302014976868459698994763874061487809683955265875794094409364926929187908152900495638321436163968844986393784698274630881717990532194126234326647747818067017698041087247950059875808175457911031005548448452428044347188645945163860426760117745610312402113968552207473033241553347289838761531734713170041765245483749945095395377747285888767204038079462013360484766560084860425645660109872905473607827316148401188566531302723225852789051636246686382701192953250585111407393355691291632108751857960858824193680529002668380144562854493877815466272846898645876317053404533711842192886256527307133316074265829033655539140441743970419666789607012046588101803646149467465289783584749719264220179742416382895220574782538165844009325013734862631814266326039164740906518575356527324817747713451675497650775459448797185873635677717399615878195027936018762647336585080146338702921547373819529803866045977422254706784234581315731151174756614668681768267279936546399607333782084224618897661689729351085891451672480881330870675805551532026127142812130300966133324713353987729402967178920323820693286455625596085890760095346790753674043765026644119832224515456411767980036837469970787592985746271323438569950534619416918544764811646529407845638032168293440095174633281657593342662820480831856399757005553455152041062968575964954317503745926102088012975063499564342282328093286459941872086297102438374303698843939600713310858110865297481817926131522732402157074532711473784589894145124838321688554071724806849116975819708677027406093378498119427640755829435248633366539484028526956919516434695863655173750974779007909155022072830902018476833749876806579710830797011983702268507997626134483807034114900897282277528877945858149918029325785375462359357298641062120531108296567248123051694419495732674083446556419727714751393594206378321646825463946608196594368258964902853519807641760301520968226335510948200441554974056127863614861437925702471597038333374236404050906713766751502971040911123084357624339090390782690893058951087275034416209264098252415372069399643325637280034928356278365002300565334842084330319507752147698656871760876717107482194820833044145475146600558192944041692005705484585118421317213329042259529140021121711543849777324161676557081126192246758442265798665721597609176450451523078941615052567607370611549107884348927355128038889548242593558971831891346015898047101518736262319525679920757414551668005434823111201992062491431888881474779993016348113832180187663362118877007543286351627900189796589749882298789322634372043894500870249245958941227722607045804252656741796671456624998029426685052158526201035989983796797366595029487165349500446752728322681740676656722135267201751651835065834060824943435798317903895380020590904166715580654708468077203536543565307980293520403331511872299312054562118621889355520650315773430958328548637274222769603620487051694537841122857734372634603570779639691876326589435172739472016765721793754447781885219717233875328145870836840319130127698871217185111583984112676802901212587147171887829545430295339490083226102288092376175235531328309941702201338869221442614892599434223806467841200453384636804003717624018420300990645227973739680406050895664508031388619922826667311313792462137916131571924896487563775314645630252197959139831747526117689232164073958241213586736141803071116589919907575604026742905829993544876777978256293622217716662741726419294476698955618496785433702192629955821750105639527724202075239151956798505742649908172440808603538041346328085079742257736517134072377892263934575719680678644104565448259466389962435291988659207229739619961699929726586475772232366393335095041110846045044385821478418059426506160385170295920182054126674287506078827494958963843122519013721346292540125747176051606549336305973218005029960436371894400727877274190172320625655795850703918547531030810275077853951716880078090229291280167016760295986698176306347150049975999933216455845807810617941232735979216333213454325641959578933262201085081092907350311962101875803385577199692591431423770555704493783351923223116569448029751849993356280133889749625236645559890192907167613205946145142604102503419341318808495892274979641953364940583700554667289716111029098064415703455214732868835472360563989242427373232077961968077016136450595002007764647558535118731136117846597351063585437531777483021185374694672652901081424701644332266228887996428831428520664418346889605599504364498518954537186602377912474905718984159723179858735301686784273431831045490048799198180576345974454353345716016999232029396596004400936719494999972454002012361761543883707456985688835866949903926621110421491863571081950621667255871807078288526805554606684791959732634575985443564137830094207469715745200916022411937419639280954378928255700869819885662601740131605126066077233645385759362217620933838208878176311084794874196466316466366561110717541563515091022901689054164932560840538921870558551570209457827832537188665082495815383515085030739101858459988472768479252392198903531540277656527490199053983838953165870973272090621896668526385771526927555957503631269562850905715165821313473975811026690719006403381921256493406488095763727837961697910954175992829302595948948894233049894896786119825500897609367473452862928897027105064293528290195355021915074756757984997986257316207842161992340974384996760214149673124431997313969890016759205083012552107844324534980497636562177791671302390911238733284993550532638196187285795737900975212486292817219590618681427984651300847189438614220809217474496284564568914412383071722376006876843171336509230484542435573077594277136624021478312668059227934234552703538749960822727271821359814567324754968398249928213983225472139923571479702162686799170374736812829218147178468708632658516168190044946347080690987889755337968290176053878194416581387556770229503739510916598454651932054486173713713999565943775104294729890503032274070985055731686628456960571337454642422539906522123727106465625504996303935684288808431264388841180586578283700649303852921530765694261983559829843168540172903062001147006042955256493060300334383538801609461756230462517511983570229832441556818800311537743728446482884269201046462188089372368444934064954932770435177732814326600254576881792148434432281651800090434348019163784942133681600715345027003685151645548293402114875918809156820820569844722447250036905997246621604975912155124061704955601135306069427343955368719218317870424006551191778571729465923514375808984832320723982129345077924803519295222159647789621270950332617879283184496067120943172034865415402262113694738170954444154222509006846277089359725463084560686573593994006946980332295747844301817068102884694603617043276064232797346632335058892659464299176860283484575479579222778240487675177877037994523328860045556781304179591686190230885140277822367311184259381413338350266486118413467533863612225331876286675947498140128462775941404222397880973624556320475150207333440029864303633371432071435934894017227930086825934892834570280501630000486058811892783603796866852487336637209600693129945137982417049367728153745751464266173954985097623863493083485411818077711701451043972290804583836328486474846220401835393471333657467208259793412157518406942621232140699950950630057881944751809607103877185869742212537161092217507616239116646351474343594263264531587386677368834685270601437006106825135216804842365495492843623373216536249062832794308170833765485091606414736095247185391761813316395066601000298088389440841324591077816693497091759399758884993285679972923156799406283319781642227449932052674713483505248364883088165761667817218993389106481841413606175968065980353891598829658276733244475864464433299856165608564640020030971276132839468250491264998535877242467037642015246705375042500151489771847562322209457082848312226728198376094643438979266789350334489576986098330971257497796745840754530534782771252990674064733980576387938096941897343882739932543278906971086294930703768599682392816288050669859495230406189493453642961907669510080942388655409652659795341414645374153718718375488301295948645955589509890239464495304699847796539108894737149802269144207946473613619358164750403575677993082618471063625342055258003330983042398194436243103044333198612890602736135531863214645211059549041377856421928851563173992956618783479570183615526972924421337861838710730959941697235564257145947900446001884485675575163703814424761765230218155054769923637250887460216656693218117857349971974430673745110133213958943331369281178779806826484367554523309656119572195684197551977678143070916201580908532668071571759158432544712596754744056095474208758291694326614500248071639789469627844985036518732083140699347404926930918563522522248544517673821843415633004567715996250216827048347851925993697897119159596468256538032116010239739314363193725453430677265399740781950121601583147849336644348631369183228001307468066091529389824546679139267827162049535838955884676389984627583131636903738811112859525300913418484135330705710515240059327678921563992735102033271190475940514588405569193588474888833451770055896663083472818412315194865288789598222897898757057502343554367376626295823586548987109871164315895216170225643991665397819685269031923734990473261332954924435872269517773742385492978050736400347221431544291221099141085551254020629406568291663620344315100367391643530488743440553495843991390337690496096249554010799349004029600932344397897501597712553637835755731484080304577185760750510455989424590210740751928027887694792541379592750650904106727335161597363710061909196422918774601611406146761450199347675477540448858157996606655036843655378846371783182416549435142638073534554317594060149446922922240415059043879315188738761087354964723684676485168715892071091172346912715868739650544271597832179017423261665493123101963193726607928410859068335306278351720179409939296451536305771387854794442408151350344032706383447119636239191269308080281069432106474098959471971846483850091860939363149857218936267289485629719255599634079706415337244451839608379137114029070855155222739935917811973143923355187832690160198693030611940138816347306704002988370911731732629034751713281989879893354433674858487944087803096460165019587552190413609366927630020749407010602355661383589107236128330881678996312808761917596449450289282460204036480333568471095771624187795491094009138101068121940457839207369887767229887008005762020036374237725926965054242585307989786871986742253920928359663089554467531082945969820704882865282938207680363532717770658405136617642477633119445460718936970523473436632771591550564890805763245472379755739499074542423988506933978079274156257126169301706415863481334196551085651140285291022708181842613740996354478007023082838577208275446651041410281125383488667310269541022756325118562612300501912763905960371774327039117949974965486277275978362253310167398281526679771310189633490276485669769253783620855945557425261874334164319090356912240404808706081359923842280501198448581360051388796000621398841049868009779628340142099348207267308771825240193328624564217491430581630085772946989252638679361173836087332627097196033742416989684657407631030821671321570209326022609905431892439597220273779154004128224112500068009249749800607548320495810978265052330619151851352350910443498078750770311551693838313700493545236031393782206867723603690653064465496118104659980733003349336311895681968187448785173230256081588027619170744941583129760551178606736228965894904343988458909046078904944273295255067672680805410172024965355331149786642178896383069276267692949847332743365468075347007446105623677610050716217886695722302266768717029741622395696656437017112062349933763705645637496686012132663644299433954887103155353845341370248547143250876340249018034701646298030764733553999904790517367088284317902029999535926343830388653707430022226241295278544596631339335994377287277394641736817167595811866110536877850451012802681706319366891509550199703957192438052895391638593223876220939826568277144493216199543644109787782289426819604762475138251159005490090719966985544579670830342233609559039322586731785704869639342454460216622969174310455471662502688787280359355668733915105932880416621850355580806014103268240391494093231769818669728349579844741111391034005177521211503043381107820006266243792460794580063003752609712077562125860919487682125870528406272086228930275620914190368256960479979043899049384751826242258818909823039496143027450632620149694631724512412476769227125971867768586720086290061373288241417911264219875268607045039476854193599969288356444726287925689816155693346434562077479766380922464950908867889353619590836388933865556208453012948156626768483098960479092594549613292514276018386069998388864878688141304716609380903593362980040581192340950518149805041856190301060035683741567057968951166079874895330295984571156097370766121873923086217701233098632200640782423988692585099619284712290992542247656272829628983222083160117117208782579017647878708421919766548589866612405373053484418450391741428881483174670819134589050774619017007175354832672534560105074365589394228416709846598733050929394120998100342336255587271291806932928700858031427734959758736741842052641969767949066503178845494483740552208094376270764348703468241656349420369674796952191395161688858089648234352092462412067336461365972070460321699122821579221828518065673917010445039630809414370516246373286962032586009774858710312923125549895764162285741022278949189613208181394176824331838920664701928062522117568420485006377875667312676324216375995177469190535246366627274909091448168437481349685234642803510554343785311466860763223734067741490976866204564064397957635605734584573727440980671037695745387224563070430899450965703564028613335593393486307941183926598507689383719821838093721387460499580253807573398066089853867014561036444200320004245452180886110285619425691160764382275130726625206678664297077196420790158746840563803438534287743962260621646538558309349919148256957878245355370710975239119590065661288665520036481805054845252575153490558487055293717092735157554532161542136558562775376262934855351422683726759220181218491658632185418030978437155109321365122115907723864514091769346317731476850702463957464085147961383288033532343807894651119662537200726841410564230471993314910143340361399928682547563756830640634964256503318549330710248799144336182888565472656022772847954116088087286162975406845085077271317434136052663164790741314910852069993406578903019106570775716342658046807805944689001235761109788747623886298257024517637896244208353785259676567565462260770934988007521937837314005821198605059157099200987984841224506977474955328883718516826412024206029767549219024712638321313226888672890623491497484880402783036117298154611055011796311512118055155037710355482911013602475221950740408647066568797951301784247512570184940883815495254109077619233534070187608452730313287686505061057090362152164087582317678660872734135416505053700604878541891369124664058398370901768757280222415411418023523930679488714619752065350895540371497241470883098007705383689788727001239781162423152479286564778244373350534246800038619573123148702882775119524513723701524175761474124423167997128103486608366816065252026575811417272027471827506288983452585992098440835528995308868504434508135257849373972356217363835925694001509715875192785611243401146555351665288126889600111591217455558695515489696285343231500183700299071215660232463834131069381915435996345701307473886748594541153775881715580466497108799480467271859225533288697800946703143177271442167813487068810242545046223796869453942333547787656191276545072099434653537379022863038040628120619726391453013803969007736576281691513779957502199106981693202076766379070601021417143198883520539598312952403279107731732964130757166288791734964717502979335239830545432454771787257270972535560052339620342514287919820686302336535528419180091701985852822416627891388578130698003625884091805497738998461356106104746720412912126505915146773219906141115969360041948027929538008429281688634050013808303365979654361676412344220973630786454937250972226624768065173533961363128382302998667462767786354541454759604468436384494975263056141218099567036563169855272011274263042329572086169433364952226462134492017220983464265793123980911551617526650687734942010224377153065636810148628196164335097653325071969322751256599647801433237575288996510283304968450838200723846911378502827683832358045711450655472016350734013795696597793748161010531716820663405570396278624860279628151550038557384083856902432935211011675141294832754989016608621260434517801884499284468605688866438397159991324609089736905279931114931089660171542849329732486672799472944935194434723435329257611950356544005552656035004911248109586477466537031989375649751999634923668301914104348460048990640513907865030663235243248632877446243505155246338898871716410085616681203596634783697784675650049869312243566619620635027732388437927081132684397915003893330694680787029521837665477651096033176494848117148359991387211563252299881693630962436643569579319817485494872636903708979041350457209448653024779957407218912177740351855047929929835750907932493427955835535748010689666268513845145262306359724150409331292498229461755876093889589670330721274409039409813416652713349703261294298081424816172940567087760070595652567102247500965956052473937990648452294051021036388633478003960727418542925884070890361245951307510154921814439685054577147473399993176701403514855810241734345908930104849774136676852343252734427050118911665593331387939993812536889568133517062990688181024282595784188741796241859844190722028593219143309612021821692978839782715304854280403863244816204212306332765231007461868066545783107622512565018621928512582115185957359590241017425588914174043043130330535253432479127152932648890360654108995912504296923756550901140688326999604177855450351915816644740492452376352584813889060132178481277979275005393955960670364722499847165441451247587613073195399947292676564925048527443571635158328786267976950962840443571216154117480949819938303387360009143280282993127725973242994132898439270516453608860407550997506087194892719611078344384769585071872082342880292363804608215078824718904021500589615100842750983518591209305167943691896931582301308508714198017639697369975537891924578108441570929204193107016853457606503240700226398133736762249534717728796123488237125871527540792680812973501278582267457435749732641038574031272446716511954645329498571189854980428758515236792990245911164510444224564947585270700440000140728859558280395382410187289794798913826749603430469304756765726097751945317388109693392117630165186826121313774664647422579171480530488572995657878523069265389895643913627122689860647825915072766691928353564818140449292536763827250498887669794375872534967158054524507767869826156416778383088193844028408569025372951076128147514973171651467467662936277617263340418562750373890422304505885816184520961121605105618615851855039296535682492936956742286971553368190909348956741776063919469805473668812690634923426213573056520278755367313839403446007004103522093913343227774245629333592164161592519238430526335830498537942536620118249437564743201024168296858689707865659697262818197263466742443664195080142536868953665378913762197907768010886068755266860345471097210643557051203410242117053208957773685389225116721412010588158795729020756640539161929080067410604678527773067475280721028384349390581511596638387131782796030653677896956054685178474685810717915938152702391739873389921307045815028174528459891109259101869124339880894588695929457098637779741164141709782855988791854352499300051376513297656755395716334540320758170772375845705099778020463825041795353785374042451950591579373204625802373328639161213302994208004797677916850705612084232313699942272102100588141188663122686426634120723641490578210607589067240341597922445899144738800663399357327375400434605980768681706870354435408305329155410653630446249264578909471692201005312682615166643392075798595075423069834210779514383049994611214452249953780833361373928622328015130533327938926073811724010140645573663737046705246220800089338732899187911967818371825938847883685330664855226326326161498185463832364131923299809417479726014911517199073263519160380466989588307985332376311950340185922247388382642039355931163122806133389143915585939168323269562830563511507433221999051729428571583695107218944489210540132307187795588809590716680421774535321801402152317359797458753272717556759688673250626409746964236212822249498893848415346095918342496110464407035971314196153550012715507876329556375907433773449553210133574184486208741054952040662527332832108850895194263349776670039777041146252568270366817915966745287084186145613161584183906163341360099768813701723230544977199528783414723894385434217740243008259202343231670080522042974502560478937401002084274640895642829100335588043253711323771887205023493734112500897309885825240583009196675810400605943649278865052450170170169523735017327091064185499857869231156681108503231938520052984182287692351171868933051901935586112540766646569035198506772939702961805547198254767593155526984831273166532377310061651788930199726874064611937888344339772927887990370971102007328644136044326666076949841736928096466820449748306164276430618985306534633866311675114575239274700111016248251047252775247156211784549111607461740109195752778543694740366000614265751099266254595434895188048139251211621534406018464403730603926597006628215637814840892478593801863991498987744743921310220177382175591466793305798808034684551767779239634546206637295099601546255427849395907972188553356701635604119340723901352740485304341893051402829537906514260342357420433537348777403249250644062312204652180608534025488380079170295844339597250393487616247232248172545413308419492487167720198252567607731427941515830841941732077013349622010233137022510753237999977918994640547045669494475379855248357170199749199121164354178711819007205080873891806890374876019671156946853370979265831864150464807396656502791536238260843677672681499121072505893700500353498419212369382408352826297654068003149379033845915390920799135732189309044739522706970167613508254151611093266163530459219548751140302275288357409303774175490127416188815249630990092156095317743964500891690632961399611603318614083144911107112723665654291736059877430735857620128770462763080815461426216165691329810930900275559952482803526114119210713319123946951559799204497653843085747972161500960879549176573224270214334327654700809458156222264316794548076105583076486932067141520869826300552407109342602952716172420742915429917963788634354115514380778595253866278322176384213302099487841982628079308376112724137862179670292342611685579084164414017919286995510694449752317193583840067911085766466194256630556378573818418239118287891612217845283004828457836404910464861134551631034746302218403433501117321695152516008314340127559314423468059662485082421320660391098222450716197203694873739809791310344414534919206897900136172079319615419285025658414003451992868373801013808286073655864331781020083771951378427491379534634553916269503716601687302871873909297432691690633562922090007608826460293474287144205069797350467097365664664292801333605552853589611565362099450750952647851527563608764200095843116341714234779981276602706826377363122907483278856859485621757561655514558094560617971459288981289789254322318867909918460423290092107840972581511598435181843445211308464701789847663494195546077909931940647922583954847866854173083245742816705958526635359007362602394489676168083215066022010674400665848260831881122927072177498195783413275641653525945113498385800503520579794235852120006190071725098297157187157004883260507906729700138254654287872915950714578405771366095185793552121250469801124133671689505304104109858248152785563399833310881108448340200007595047415207640592618576774724803654115842564833199480020198692192408008091530365557130367451740116784195474661842951352014619790459398324582180288059058557550287228658965184885410517902879850327647132306013285799563278384939611395047813838325221167384292002996129658890606760915089088710807979512263857082336285228968689234091261560040913458764183301931933036336849571548528377579969251348181425991229405018256051542130312236665675459217455512041543239656939612883112482788341870884356536419365103737252292021245504395590385524240418389848736696785422238028986311268156631542278738405739748627293562731533039877006907105925892524335617376741987454019037892072706298654554802807170938591396826681079726044622979461511071437998188086835767018242118113108571341987380945454503001402684192990182361104867061563885255074137020870903174875933785590682399777394572472031556215859538340739071699002684130319019902557400500038699702400550134790472251040463309225945478485401664976569452940641830292643456767315089483237417965086530743883951348993112796347751271592633202834919112387875150032773555880564208882567937489747775297301818893201145943679625785014705923855076318249671676089413889803104027817954604043943745008702078265612700734737454952541693262561715839828009271788392795998589960190555368275020361089685149565310486215636571244366058421002963533232700515287012669251544757064527950326987830059715447899029689990540007389566657907262787743521280108212918151654154696354562168125107266526974491359415690446216709292183575627740453345030224048534189470579059893691413354668925835652383951042926186042707729493731430474171390545097695679906792854472282019616934520706558673103906727396929867070193175563110461439034087458870768698125628361951912064683395624033051941686160224325621057735339839379232075493962312135520178604621586835754060276347203772675117682439682429911902234848417202137638701862482871396477809265505861998749207410838660519881040311456768921205705754286546503799198021129069961417769248044625235973723183611368075816461640707711544424237914000434153166436582869928242836626961803528998694025078063880189723628790448815285871818985363652894371330035375139859412753686188994258129334705504182626144247521725301239364064205852056470984668426953995644177701308171595480260355371443572052689024036050786681359680396767514784490329666880270778774560775498601507583498711863512485719098511178117798576285594214153306220243523117525767524304208417416547243377646674787992322873823404334904350668338848950486369868028698705590078960486475821729883863114357241268653609080667250718364454462154108031789024382054888115151810264814240452405974627076033288539362889571750542184350716161660775764586509423941774999589254317416472115912160896674741939040165843880877745578929148094910327227256266437258190174953543640927302882232262169700275468006817213987806369424150562512260372743500860374731258178652696660801342885641235150252802543848954096711643389160227189350900822507934697829367353949099838908795644621777577883564707591122739892628184598299709120698817268471661650384908020599038746966575953732946269408477707464653486613036226840057944047895794836913927464951931696662685832239172653395085321005068473557194638751385983610175159532945303522324681018608710241281316710360604472985937473317344478305116815129789536846207517631041576707933344950754471280947481565213846622911513240321408631510520470825532993703903749924347461681775906943052629630644027078790441506047047890839462560977119408201526014222968658871750981788670822714714745022337873316404712726046028211171143130294264487685596787928332974448807763273814396905782541529442256739844595837903401051773551602334086094443806117707865611869055582869554484353693117910136904111024874069861204981980020650333979220808851049391785991444831293925403458633791289142887046990069919982863792506510824747694588483145965536684790292604058946051913713793161139220724839570555618437375935357987447176292131025528480628935269508990699125040196609998373124378710176896888727722539642812407902851698032638020481621723662133566226983505495470559628156437581481748350898140518204938261369217485397827630173757889857200021792452297877790702211093224643839149169098774869787958455920013378613870752382766425317839306850050135494713206199393871575538003442666169485958319131689153497260033600344370368273595148410281288752407660153002890756551586787557133113259685318997076688902949234765639104641138020913309375512034708835160263699317641710133743849027377896931370934037775976102757377125325280929735076021953922183725181511240679454425141794161398370739178767599652532813011236493496183583449586190353403108716313835955539682126655707032203086346365931313323549395022873934791208269019632781497046384743055923891058408376430676197216182764710370831245492459666271056975539547696515225416381486570034522487216744493421131755875065917263300958868380608660336829982287207720802346183069117008321044985077423563983945864903105242861414193244882819948101504422018467058075964049955261215180774852754584085730054899330531595917576169414587521331557321080856716139564756260997572324905232324698816238272386396662249919860369900500355665088426709744847895782778999584051476677854108653273684153709684460890229685352767135630694356049647635661586260425025157459565250479388581740576742774987376887470660561141123107048721396496450180960740058342437062872144236068227701595541472951702673772843754647632057779645243730049990486562942390243839710549199961100686463025810015249732340452680844658605167222633973081223360809968271133252828285164448940940581277702386522260520933416044555141342375246372181079336694490934001188355647275049327793981377989253818745747109736789855119320622589474960083350266228988640194359317883605660766576155774791199719203282811522661329107666544849430718767844123380355241081883601800688051893545779525326563968386871947542077966720769881695505617447446222528027981381543531063410089310635326491539657372045989424053901838743890069692555029062588344970962181540466670249356951073900742383444214651111874804249390477772937077372907480525177617642818660621781467952212632816166591460893879518866348785799471941836735575826439451228830732455265145277683238434888600881353949266107704774956407777602446220617082309635195104052320139935775257653285608069720074913106074788633726257568110202726335074362514208178499390436729471610776203421225720162615175527455399681580234970123487932313549505474017669180172070488763906917043446439483923637847755652176974581697043225983269800609506779820358404957901600927212340096532004613567630958727235674077417001735426721306764470196584448980686057651351473189798411199437784843137683823087625853755655944119810140624580800576564462371124481011706578134586595512404664137862921320238085860487524404149317324380483329151285022154587991332655088247485694408286324885474267240113133404411904079527913700090332920053071148606043089134475779236743952859333716859103968127657847078277843302699975951310053608676367703016119539541235952722204715997401040634038576027671514921214480499817913800612228949793891636733469327041274540832149513198004302464231184654874561144065274500672000858189376425856821134349578197972946381856971553074260170176312337513791081575482780705962056809075351787694478548973295577736291835474940588501432843400535558736757061992527084309290040203915454858189526121919114073909443502782196778194675375769919998377466153416585704736682681353479084560757495958948100643087746435735477593154254584807453035550170024910044398856721830351180276076297300064687093019902819133656861089837609776356210803598397322763783520984168878849996647740030960077698421809602424795991501609018366955804884407014301798844051830200962240599388200873398408023123450509372281363251791511959637630840803924013003291629999175323107974860914476469892721014911020449464637328983257140160991730832417564349143044346255376226645918366607865602019695725694123341892271072585042787793333009597492111937226916954217239336180396014184763098535538671876173641611559517458322140601133970014878343130038748931448115536167178230060885788726778399823130545731271489603405853683344484261173556714665983313573923995422732471219763934046677775806096480821564729836594266753393966696921596904792542205834075967611646904627142392914790011514675530239762901804939477872695181623188957933951360034837075975872969539720293113383655643450858922811467485132507370771825604410562707264669374652991645006960876458129805547376036202948159787458267474127355732569919816680731938759739594863528644364251876077322488537821131024553529223637933201089463357025196553992958109731737722392889729736189466500634125146690304570296283934018974712867167421186944994852635443145758927318519757476102323303057879001078097741170846625745880528620764102944980171948901419103849839387725147008250340761762048119060938361993371136135042233632132843330098575218430092395765493339101513886838822147831037341172906026822513263060164774607250573533128593552273404834170699017347083941971568233532384881973458199358626488018774000315346934787446230272192308865157713160176752789870170243769882236378134745699188223457044675538215365974460771894272262230634988041667313519251201548521612807081998274147998994194343581775958573806805119107911132732131896190544655436636152038534187900491277810020205653490474436939414569122622469957382695528215823819939526365493711710538848890552126094274010808178598425847455358779764680632754786551897748352127680201608198563180334330361283636239371001283907775763126484419395080054534567134299240550401967341656124081681792086391598027834709385277003134128134633816001209758949554361870749406633227913220789304519726369113057843763363361127141334629680075929516676941932236402565161792408010526906535521715958411285050380992343982866865996961529025183502990250221360221032890750148718936715701779185561706586931862143500188979410332359019913302647276599290072237788527674777826343878748818196596053337249787848996460496733832636545614824221989349305651791415230851771801470081976816034521953056550655559645319248461130327425850297665903933651922687116048454867790454200704983891567140681978437562583158039572297127107565008786496135901065269677727311809645706805829285841885689688283820636625297737364687110099673568741077852798823960906701149915439142140922305988134013167254981243959717963554406618071446859723939674994709959190919584390378586520983603642344098284323197370402345335209314345524050539087551600507868911305207923744542140774549700654819011497345317439505164766265495883557155664247564508960016591576187341136531521259593753107392474692705207516211395534346042719341035775274790576246723020035396663839859578463133535095969562207887023411709368378669489686069994528554491700399171263071173022229214560359937417442742905153016231458737059562499512473357875321655027510133891875445801134682149866641081082032579273026450283652436831681563963089884063168702270923545480868653081354833588136870739022591526974489397945574491705763176096595836612306470664413822533792718222759552995514166745371972077705818562456655418704409227593022749583377716677436143900778015553218816339617801029627496320015053805788713748945731870487347588306490884083499564895149488715070958031161679359612191669599658069535725477446441968393887219216239662691378978425008172191662615921266100829672477874895159171045754945384122674590878381560573280990575730243850558052362440101532072710135533817740859410819014004843806598399017599577601013847108018913695000519865198614484773258595143315731386980900278726591248910452281044189010340819612750875979776208617082193932164805406264721868225760343096067528973277797578064746546076395106429596566369768883280962369571224885767280870142202929257356663453997551938250567867446763127440475849513567817692104157309572438754159423974411261241587099301977142939314210914723317001332337740179960876650197165765192601327552694049634512106968482956898058436892659329979033616611984924031034331247605894239454848504165369966553216201697816846768399400777648555828637792557037279735012998450805135715972925526877417322654861330484634663584912541081833287409696808598789714880859479544345183573057786082419635000146247210734218731909043203731167728439925190362411565080250646613380853538954173697273277970475899665407981512149257272165083148594671577226826884826943949811831493586132981442422910927051174901071646326111216174004514936394111406091807259895925378126057539912735910689383025084375432024573788201222542134862529380708350546335495897218423732364608250799029228187029095633176164600279214958913009016838642342435616312335355947757803328279245945152503560105992396809378735913667340946526182231841237489110623892062291080718562419684024485119400827090229743928600655972194704555888245392964479552116149310054956017282932679032946998452111760283886068293428902175847860265084927738068556056343192282755351875726502406936718808739830215636293094244997393103914952171914422844573649711845159098622485318550916800083769864244424838432086356914870854810586776596385095417599465518464975839359816921258461062788495426004539279525650114038657918561461393999261362779330824926017141376297762764891301674264559124686203614328290712825987867456207034404454934612254059427007042664912554754329797763932267700413809108549415307902371024503365008319970444754561548299903508868337426849762471621063463568440382925134207517971355001286874657571696918240316431825044229684275816404285378835163219330875283211199830190632787172011786332152999842581546667376298786983211775740730861432082260505777789282227876241504340691797640302038675624120949940473624092828486200578475003837456996898810570942952172948491081491339441430708528285375453551004964392347836691614875350525792775419797311205385633447903410222465284718497006273402715715838021356182474843302452993268899281782652531414095495226302425303842266030368293983953137392100416780151078934101310085747503301567710229478034360271326956227561847835913130151772736885118264183065554988618148294161055641257118442842620279326167615486057196942714661321917604575213984265172944599180246679944499354618889597918139581492356005708113750170070777495179359301812613473685868641615814260371873550821580785229954782574686152906816778888072018749736039581372059626970117308569919546096264966965737973415111315994148786798273649271519266339172272460301153786177729769239799617062296306855293383340090958556190933770405206299870972022632926739609448409042282811834417321565667075637794874327669025757225217824027674434329578947109924406745176732885607277956071765075982722132906046441139561338619727616196666919114781538499346831119896151127999810398921412168127373324241485537192604390878325761823749026952995157455535012024632452483470525514427073251387973578508518294282746975858488622081552547412314606038638433905164610899907455915723038427153513708686000231265288487240408495250149992010912580102958592151730464456999067048712565844203423123954479160007671989160146679911665002067963672014530818036793506559437638254788491401286158320501421026866594414833795403628772848170627689116282185388587819387491684287218253396122255972548426198453042932999359073609552630969867401391443764398396918640892994517033308079121326850038054553028824288669846201612463930700341906733005518367200496088756857875431170816931800071098390296168426557032622867423130796554293436498665717811299449182218938691657911297517609229040372053040914278363724642645379827893116660963165754121630440292623308329702240185732075549369317884533309335710169553476729832604883076395119698744000349703619075256087301274880613073452192757585129884832701224700773208235704294192866311051591675949145435312867180244517519714538668245746035069316692342314715332696158960691914849749547061951969256222848404362903487051755118605807361796463992413340551017768640263315500753485945312247275090254965104248188383338069031801859341963989353030698426018443303704791205018757609578844614952937978060035533134061834309005002193276130938205067358896459327049952294179821809718273266413089010658331168123089978934398899802953807342404404943227725688928627318707663752265383197493064630579165760708454784586010621989764088959718472867447658316081715066031941864520637694605834112531474238003499264450302485218750202753503495447657809423753120267692950442075375454224697039216669452277967980422265666527670270211956366340474034246399593932041642788977850977846667950565555522081327791830601824240614952810878015833379633225266063939096149348970863916565241509585091893453975110040362446086908570133897793952678461972981580090393239100501480120355554597384766047545364271032381434431783001254149670403335244922775647746344465462179527263648729523770186824078009786611617899815931339626380063896667720027024508549977596506564913386124952392926959988199547389952878133840785736775589011484308464562039517900555555167695175550837539672005469103794913067571908060937199938320792139727665551545264947931403096618573704465596204443331671479658526906215870900818614139360698544557429238345386314735857064215868034712290987787599975549840615691223360661706998440465787388962644183736523700343146317909342487899275034087359533605479794517542726404418592026306735430321237487465457921295942054375957312751405603002493980153798133056103321335044742168350236011496554481689286739230028917814781689811133311283944073562042830297789175687907550220028828486431782930618175514448475380220080433498000366443472791553503434749648615673799178912830611889549222769876250192211347955228655298417537168924493971706484487753804527901232270797285201038174207959570204856342102804975719888732621279436918690977919609665721771452371392440522646339255200776079758568372206354692166594482912157714964853770827070764311897454820136044519812185804616864735662546298765444106057878550784877604666758721179037029045702253417415002345928685161565389118093614044659088840868307359028582584068627310100520252588668788209354408436644738470127458925334215841350219199097909280550978309473441027809796747962136617936581661071930476670490496689275305088524026844298670421013180054910498267053655069887095055318618037350513505360578788668020707490158064840728823513112432538633315660230041746969107624148234011545673436546495712079864140470636858677733707257102076443810792276430586083215436584697563281019509876271364674249010619179199523980872239691842407445296047557341299120244605422033170302757142076445647897564494051044131298753355120073761699700184799627393909790922345465203675775013874771700778518991302002749704668670853825433431871394714558241685195814360949026955040810509142608054835281929851105116951750188782468418841066742965529402870792712478825340659986319375684250525341874742881119241234567323846143905950325992033934466566778973992929963669867736673343871941007826885780430605769060753019833123750938280742254396695102965481630525727230226324402598379225537508577968558003258742297735973563655124326242961220838647832643010864765709482691422540999133333099653059232207955765719042032101480613194263825119484195341947702025336286701574317425622663980310503947565033388626235653469750707986938242793767297268717277538109109753486179381240777430887039876010448455567474676813170918620632080391496876866889381745215104486264407727318898923365455252750539239504626806675451709111053624184826120925795191452098576070044174786917859315552001001444497900903945559032314658238679825391252815079426685700161763781154118626489430442555669255158759855531861398702353342179885385603065918579377961259232362953258713144044696223737981552353301793928496474318302049600179827916110307877319084711717414754429043878812241537059112757891180016787884031982929187253061746481495007198341949674184675308752258029976335649265970570511318099410973737333606166250488497796358112677271701530386024798359676271615027203726693046685215371517061824148921171892522788169845822571015379794299772025998446384695225558848360747643126236151043794340725496703136873316728233911122109613533983303250923479107295066341834624490396262681560195624429466781178746513665620293550689869570757507712146544177458311514984583898158902498298059474130843265536813090514123334413618672813162814336220829843724383107334515870500418898443759525935966213444132147812917874203128766476688624620593232739354393379429680049034377177941487905628274733584318265285918552821270919895016822333670762089193004000124121518511131351680951994200771468058860421042652274285507383483093376393541850444651165299885442271429444506697910869788542431961321333476348778874608767961260231611652323060187466719643308957824920414968122086590442485801110934578280621529736323455379376006663625266348486967704022730657034983020862004287523810129089261774762712889240491974875086723747545562622770234067221158214440768204588488588302946024190741505033756086060051416477876802095103497227414298836973137824648464376153094883900817000664337881438910795326080170844393012590988516557555210083530765905131372895284432501598635712742274788745499802746424378391616966551601140446506857528928090273351938385885476037023557822826559288025815060652531077713633378929508991624693780761221701460713671775770129386200379866093185520327828263266952501494445214845780493049881244925892988709644795876872388673622914419912867058573241591948954522069726004352295560992496106981082267914835425976841517979913690415404823366597014314511990812843692226884314948937304544327427926882271941473080079006550044186886733408624714471001028045136317636471865382142869262364005194106566402666407119155308581098941629406636384255622513973377575017954090264136967119766076109458154896297355165927274322808324076092717701611195965298682411695449600798485959160168360632658229445548897909423001401755458407091840067518576482722609732837761144300391215154956547366212915754158392038306144412128946974911162666188747596947438429124807713950515480918519735460797141747197825529158217970478495479308350459280755662724290757011351751735959376283073020016204455194386362641234039480418347876909851313328357673380936384093923504230588911496278344581012779855103336695355403914472169744996377324701842035530902281562806172776681199791092190544742854443889178799024793794391424703863374360942565316833366911753596488921132004453030108702188764926718996472603558064416415820987251506454508596106942041903984484431963650206809053654370187180951949763090784396943986154483904087589903278846957828217498203824180702397768540075906365259675096039218324736222966041049270792220449074815300025879030338264479834082635255644292288440646928558895680320276864585799741805477724118564749140148032378052632287370832306405032711553405847510112888230927220106275184431060687151169490772710029443175592347442382675629267546697832722261477337884485072555725908180579752931820380335929697302737661520906475657564692164474560797710262404130048680546802355113707586824950310274781289996128258812693612274768185060013954940972762637747334503248643427360878225910345208667615428798751489306945759886084151943276047874864767968950363694315856080900632594923362469608781838430790753738879506249653280839189369672016883720986584435581080691096800700857382542907803293579950645159000232159524441776737618448062321371851613854066154228764580848991266048322935818026014846300048857487546039222862481492812873063635670332603975155027647374979534923292274524228688214526089550187815261544489305101463103779556966128507888702287678339887628677670050630833602610504861579703418369644226414959235986461832201622921235394145108840961208050283083110204351243610669519255637596052127280428904537361174190929311212733486625083526674074588418759456377366109304195995684602290621780939204982707597060048057826962858975029970486079074406924810931798647268385103730409651958915847092452758399420107589169453673241941913564521494969402775815311878439730709563354234190011044172274417002430237406199083608777994946017908409627746451559738568793158254035798776164148980678150352471189859037884604043897477577705534986244477469023832045931384276181710065824512256815494029577892301236563628165333149983839746395377336260956402832481286740213032043077124908156263540797994825269384262374641313486155686970123204005059338575969015361461991325349921604925655946234017056397939891596491540478587888982369216509947973178046694589973123502916379842959505755009893294636631752850954505989442073126982446619477719709598603672257579790685447640516385516436845515514254675487399426141066687241755750725412998087481513633567432240783461075364594349043364899396288596194616826724412108174780447291283365959283038257715543522613945864763616170158973808117799490397053188386999607169715700208165552129686387848991027129549665651926829412339029113007654630724403682447270915705376117981334438388972768080326600622049716143640694799318117645427090712774928351123964439408357157782343564718824456812611423140447205823636067180967791064682139440967600533267032220130625483101808448164101644534640256511642759232649302875963750142155540570372503610004564591891950122780053210659416563178225916598466251402886899117615676418630968495692648765937870946562662416619505262474383763127546686370316288124211356591674767192985656253515259089486762932477032429758433274995043583153046907974573154789288722123439063542797443924483625311708229121371909202194828390622082996589106831992048553128472291961392346871103320148785810151870890524288828235252732807408836519716703046806046090949372880925255237846882574818577346421688195529814790628455122421164217654896036643232514723725529987676317497976129450827810986662121260824611659378233134787305101268028905940174055689678770200536899613209055555989221332637144572113090686556314936904141748163209873668243177134875017328049311724483545663507427205050002096554434131772143987378553879122935404880163612826067485588973458225805255422799692018885977089126424255546470138437107387126627819610098769642031524266730874596846148593409043927436973236138784842070334735663098077593326546269713259054414207129418922779331359201275818068652797071845592437433033314900953174376412847709271034692510821251827128292075491197187532328687893445861725342469728332925519771208552706358582035906213887353183745303272373236183889522287986632332682638735309922908491032543132627843445097210317178521178127502426999733904878704696576479619825275119103008947670116861377357807508296218146244655112700701642355492874371410654253774539664353845585702589018403571640226512951629323677351774315977030557813182216782159975070800861551381602350198450117667985186279471041531753869342009442425788785497653901076454824489894848153210283921710711469870428090829349705322923572343049321602217142743236702431079638347109295023177247143690018520199817341551976443588587310606705206221262422889623093923695514545236264774661865279367278356692787541952533068293881674873797501467002582617814920753782115321281224664244086352149704153377227719283018657292453766404883796791893018314066159756175940334933832932488614991335752375461714624342427783484862576927567118554070503595856893113958301398738017719231117409635463851486201831203490266737787741348948749210072888560508513610971973540605267231070072933720509715307300084658876173875046620021395787472686642793330051624782151641285435257140263568604620361084139148045467511950944064425427104251034491587893891872918991468515548659883864629621795429895354321166391052390232790833122708904110454480272443360148253167760875297963386502776760315994704043713643043741654859713124937133932052795435590226532270042638658587251360702771960484600611140755782857236489510923405261350173933354964445534439106363487763616721625145528423910895556046139093640139023879251146590712843150652934752527752200695907994924449402295005631134617354048240359104330233906402880257623331844088773383506879447287343228117769728280345026138310567542204179336799268996763479622407261377783932800250122500870382566501570387379691350032180664252670574326960361752275248353768473908466718708019130627134331458517048154799839474570679967236008954056490160729092999717239154955107033398824600319306457901006310875188855051062084096019741787836436482764383109391281913794826645624124536287290860816539609189739414369171314021965880468457649671363091933025071275654178228705604271682104611682256778476030549840261494265702312446551408415485017352394118370378595615409043288204788409618279164805054744564978900648915746738016824824721157391215441666656338114942074713601502213932063773446420692549385380863080721905385198130500173225155672916173228428061773043092832609151832741664129233478531696802086634700042137197763848354094759990605137110547270433472308726061383119622124227100549354293575216932754131183583282570116511810615386823445928993028677985795598633044605746544491787096498355222087939297530371605309739093524038030536908513282887388563107207727881381814500050782405260538888549345912907614345905979465618642304281384075712902173826691637155274077703186789270549528421608232531486803704508559573235757502864007633129880850248312211574449481073479313952505651052340734759969731982777553270835548244081419122944426429146099559240186096536716330460226305201770748002071257304648228219463185350131808989951863212810028418541770160649966884832954785092289554113999521138830644248023098360875238375981017503289762729270034706337071469550447412227288992772694378864008350869229225725769513465718131373350641967418300398176608707768072490833054378670549253244898411338982618552085848435985838064348454111666416227711113111988674580152224252922337379701714450821138288114439477686896690776714896397740531638113077414509958652392143908898581063057719655673110823575480766691426439684683118006873179330495917275518944845818645034839188777466695968757140126626652259672714403125463277848264559084248750603967639143034178851315237549223011152564133232554835294509360323350567940836303633219932973209430239126293760097459296475124642381744882003848738918874693064968900362893965715689038251560919906380899876459347550680785009165626621922916691597451887408522589950392503401466765631803093786063124174415571795114778646074197477143834409581557180507127348507729362353783605435240760455914740006503284852962569799282002358207186945906255588946172211958119359284201847718652532373595009192779349563864539209345347659356487275810611809311675664989492064688371699628209138879236014495217975933278489648682555367196523917049556704218527225734968512270489232507742030428742640509144531868418202286644674333173431038447808072319936528341757843351397506340328855191011989452092043087552612674632318968622256308559701931715340520680789600276620748525213589556505242316891967052093888319890445525549081702938199077700537161095489164185684954138256277397948892113122996560599133362977113755968941070208062456255542925894708305276520396937470876362773408305164407024434210538286706053852749900948687072667808640042889684514136272241175001887451525179118249642099358505657509364539564366783604781872254080943857831819448511608178559091032437416960697202829332686887447221747181630561843939719911511839069443970690699207880401155611867459104535852073692566883926378968582864751674902046243907003477874724589592530151242670225110466661467490726045093345077114190849778552153969936605037003764813474482885160012832281089642495176407618582567285389033925575067995120968243669830036221195995524347371541420466983902251363310230991682366193867655381475158583118254139633937688397787837385720566434246344452881576515623051382219643467588034166335223485531238010706614851225686379238785212064982353959441438323266417058495723676738926856047643162548315666989515099530478310048133794412569562951193193272294935638324060714165113681566039784455413564935632394484050141693407949226212411087901956445247207995307228818280695335357537083595612090406740314285863499984085181604963240634888419127099333087723101053859105705690421626559258526628541002098613005900378940936832113785745366555379226878676369603617942153575504312217277345586065241916967195658785719318298961949730721193589666352059451786543466829198994914736148317493300182183235882895535594030748415159917690589226046991970886984514594708547006555478678658691361637463825919398238831877181145784587956671164807637071271269273522166282437851262121730651183700025720368610585978843509903804372219428803613980048382871779062846773497102437787912136195556788388210999505750892182948560313921690051994870183091720132124417576140198451474343028778157409975108077935971292937879788804366890348706396439075727804317005849340055399766223496266157715456701669271820268915476641336572677549981913792366292952612401580042254097865932540734021477203914719040959950097687919466152046413233907368251658506658084209603811411587027951779848445101171378351495460901640285261734841554212446053240445456234351509519631226020740625757602363800115109512774076655753720411763569844112812294957545246494027840123182184029787714496988938577498701758172639148710472943206396824803085246250307896612586043493289357298851399561303904944410094959593012359066118023390267266682014221453541722415102786532196922436396800373968288824081064420840649784472290862682768952952790321618260140832729988139249158128434004697498084736716365616357527730101770382913928665787262164541010272778621947345414571583059931487344568473719284986309337169629846545380073830098489585671372687499062273782807421865803216550078428542494898538858444627908128409220377679113130451057525443433392791417912621303716385050831679713571704425681563446623210710267824727909693292577581268137948104254232256067751872432402246064841729803752190928331183638348005978191038965279281159511010205519922091453064630858833591208933500819025303551091952274681783258132943597187780866437372095716826788111732359347881614648389869931986203858769694399587184340602933598328391349077890271855083770601222546914857436900426345931522832209636583195229355828447624352498085275202990174245158209509737386404887072606525086702262400612113216307293717239266225052668206260220612631047867327720688731565476047850024022087303284868283912105730123824608250384469351515727220060007848907234903903778529590724775694470582635624675733379268571549592357888878814467428136592536122998212999376182497976922764349626152363154255812575466930200657424913215516989436944545428505455599035297584699722842295722201939881584178705356529429125775599473823802820959462183549590727440549600007878263249560653564249817549141989123303932522302216460350001056138144975208145913031156918896869286120555271222000420003435230389052344249171969398188891214163495485840735430583963294100291573681374751452809154997221566303871935708996439867302729371827691291570394020882138884483203114023677845551114795176518978458992130820729284984548304577475252909128666010564594371269967616227613955830282725916622197538701159834391849935082215970080667595388628300738317120259363563059249695655220996871032940497259508402021299806112035058598358301958181155786710147899337119345766159068836200395814600742009488267236586111453573163160780085737858966450967106057336845697018561321248989062572303541773528927528254847880885173621622494930277929844483541349976039453629349199239651917707119222834863984182068864561116435054861343424454533709379473495671029376958662142431383654117035897731568318060445541007618208186730893374243364814822465803125850166009963103914923932414131375182599780221920728234572121397839300091077698888183979385797243641705221949351728757527227005563150373899776961012471622994299201293597510047637699142881307568130276153289182968025743198071441374920679885813867404719487417176907422464345926451519706250501427616032194986165635834560830185356983324102670934704571296822155134211296397535282238424854152145342673867706567748863606537311903247166461503949200158818683173566167834131730606420271416888872828545840805149933988205323546739713207342484541496583930652904869335819981279426164525553430959986604547779970874397033035191653688794461758106724508464978170884161608364940443588070851539345940036960315597557187241459781992326899978744709024396476246499226049720663586958411344618892649107301977942156124734087075484375456114202984424488990594545022835266095318177379000430091849910580110273859598941113959152335870833865654186663048519491525186486422221906000223202931317004881654770540988150448348738886579700558261825017062572007111763611264708810460590092112212996063069320571329800021224775190176308433931952772839164432301015217352426413791235738500693149684781324013935846609809149625324337602727521775234207836691924057676928967220200954331888365252017838576342405158760851728714441438186915203743249776589452276188698444733957089519779362844960096218966046465022559583794055058978050382450201832722129049857134827237503964131534546408010381536277505285326958745164320328587186516543777394451379125571856604746090507672124878824489345257310224877889642226824008629784593215123219631529988663511140652203450215209546163632438189759892169544576127372709072286369767143581884608748988820473223995758987688942195664471825822763872316453630792737188149676122749563604113842423130398172118285457971198862971710206260060821519258426234686656717694499034333094061441837320558205818504744581121727652192805458420254357557602141052910095621708377440824854436068870728936473614936503403996790723920701030703291468361325149903626956726470850670761919131152398572409609027325935639736911002999276773800319276460362552087425814199146417676207801134432749958647175521151358489071842439061789514635027630902969467462535889527404409440070351975942641347630055162470852847619431764664631288387741369817008817557367405713285134583684097448046624440432500524581730310321663973018470348002464024012671346896777332134586331806829832486994018445619250293841041460791302718126644934639210832748800708953249895669745520848914718298898289797423212517173377017528073019063999089099667415680676449551637401454487016873588121662614097872589064236175090800469840168443669607768520707465327963626334591880846817527616089502294896205662904453214695272592072774824461313160296593942391768889356583402673190285731123896513876963958230675076043796314859247086643680452288296333514642282320156226508019718840379291253045022561694009447425277773502738864202135784753500370616652920840258521592525387049319192632711114436354979780197302793512663655095281744410909270186536205734133314549554977223189559078678974593493854058923807373861150553696148918024258552928938719417892080672709835509589850511421877470865787440407798662943509277182526043093624618705202290451004453084088624976861644956720923411539229658950776483392822057305902509832324525475312830187261058399927067448911802865782181155915927705883693253074002052166381846565166673417037721913653365178606464456187433057250324506050911090331864018386199091578143629558653972363515083790938451158305395927506430934536476052187265972564925974792263823415566975004850446975540962909290705517549765245610349619423794703585226543182992379753241299548195425421942839806600662311646146148652663500093116089460161621865155888139015872954296300913640552688520951676760334153376798254393552037580351149396797795326344250841431620063709565835652311688796455628038935011457636359043372963956663057377172176454418001146290273364495398565909691504676261590365297016314244816781310019055439993499814265335102626981769185333385605176854956885200586226841475099888933514498836562219202211183368864293017354369445275609706609153415279046650824581623954299062624152541039662172320216044711631561555038737538255923956226205490827862111136605529738509588500057400575307783107536401795473763260181507036805859457106878126847877607360379561010649670249927880269936438927553000076095640360749429863047686581469134848135628648327581438195832219859585832003415023155348958247269735357452996315093990923277732976552305872776797694150862619312022911454814441952923156835149976096533201335428023371184079850901131917981116678041119738875084046710345039385993254826764248488706348812937348665861198017164023775552305185806637577457561678129234528637318274085502069146263556101092457644055283056980755729056683715580976625453671500307291667469015642471593158968230104934246751421300599308678731560277106549920420517365898040054799463385883079937733780076161411733003935459145849388875212236289403960977702213049352330689694174714473432096056390196477815881096256458597169448840919389819354630513822144068796858953693348722735715857108868018453276639618990065556399011771903658557148881583372985626563777805594997084899442685498937724971709222701013492206996410489180443319083515342204880638263266963460591567835064492106919906382261776745385898505982760297433018515870599497246118680651885514720164018536760796430760109836781382733649714273892154186530094417891350537727464164486858302565055635206499612201349537472875481709229758711299787639387516878113447234209317810369856809033576356214391345876733456305166269651451308584852927627383145190464162678369724588038522087285227989313645067705131187466599742689379739848417709757437746792676508925119723690331924729448031451997367356870051554900871791336221261893745827276590161731598265300865392000488259552136603642097803627824079990791001938070015879086832614222815895470739481463887759642586527173006750478104684958408894417507752738368918020183589343576444455640934127817022484608372740901929210916150157991871838561559068677596671246556912217914415025039709172304553623044187172961067078929287621887375032184910196647239497911973902071860176169416918924887904627833653055335491424952717018664780493133389420521723689904665709648241348947466650548139301562878625371418023949707542702642716207851332792907158763178711962638525231806292553339488375018997350871596205034669173926862158383320679698058529160411626930202649205545789839229200959667279933405954134033879830654045472741182319342242816453035507937958415220118141005442574581851392345924390665211886412760784432896224315756099084366704447578264701358398551755308730670848957432681398540873114299154497882337986785179067411051304725947357185537488924091990915007747222252646452160724114998753647514138119645944920978031859572715847464384493106079656979815455813416947325950082291097757513475524645017577990072739948549711203606387702860976406352706856205961681278019024054822889131989403332504035166428505698278090437500258668174547524571517051879814576602711943635286597496616540700560317437674680131039730599246557917628982957705613458797395979047864669134855838415836316419255934050427994794486118350287717390277572977982283838838951965758987452895991003234246908591706394208806543993290459709567972469889774899662780334432693162403373393905456747308701105250750587638558925294750925056129965969832897164459146270980851003041607403880353679032743021262258714348523416999748791476479780652335444931698239888672233079559483218695161032818029329898368179203480235727733789700084538111303920419851162266645448520222433185858563333618593593782841490642199534619881958656767622929272589508327517405465825949770946515385063736227822319719421231243247058576080175707558031245459476879762545436997994791083468339311275417185935202881562346419895927493392503090140792235110234633782299927380524643750795805824279253899622965223609314829553446685276949475644705561596225822035954728750416945951755673739035184397152960156413691888902660450171334053154415275209989017165084785824861823012223877798134937238297728332245649025482253970965371963818118199317042760636937374583261617131481782764222334646432286893521761958853605117328485793886365102604671798236504202564569084631988431076098343730619060011812466866020471227559459631776812981648414346784065729470322845269051374102304169016422748031770332721533054123127609642104612008093911972915043918932473837399957620414377104670938876389680417107911574142279110617817277723290648952961305471156226138311656346834060991814660276738275634292276043116263410619015205020737904146669107924188893074837506113868391388029751056024459068664133068556296539642873373272481722798046768772917614847346016920582779446683832669011999612623521603168171851000187549212740412510448132308714885354002495969224600558823838318142255144313262165101404439143674180671275289927863380102091531499069287251305950251883255549253293070048985019921546424822459563805453736042759678856227140141078892573655293247439041926268957077996334234454144140440521611429511309929814384682542494686922140113388321155083334120946533613143653563000071557472106369797613224442523210914396424962532631090435951710350687044882772790599962026314637614974646424440212188625160044320920274451492337437837174727191898847958006200088062146378163034324608725925876556759652833636423690589632212224381434497456832605745182560879619926429757319189863667047873475179836656129968716581888359392787950005725630378646922560169998080383295038637878828184848187406097934903239467193894363628322490850052452799007249027002676453420162690206370122621510134814151886048627237329507285571091925919044137797038634292595228524225309275371440810434427878702178204399702001578625872654012240623721416837949749765730809880588335133705845714398406359852317947712912257908614525743045507343465162267299272279402971391741967513176939299578943076721264059673355630749792291628303164363934123099345291071049563232813018145592026638618763879501984450402352467742343644497490285787803957872418754105678951089384237167363310670398007428401914488047873082917880022205282997157309981804556424135420986885652465290915438650593569163310138872741253622913911482495995136463490399942992416456415916596830890978120978314324027829925942453773318479373498032180145370622760815300649417656683457066400108125497499055298778920854063575597799118209526341355019346514288191516113834635661448877501572097610436393184278667591597254040770014523530480034879199435326450176568086226273069404508782125611039016495393970553035351978175245941322548600007771141807070386894254551991577488223611031832658713614655769273829111626405528174180621314670439643247164978261065484932615956437255862329042948812073473178135873031448043517439113539353127228438412894252681483618456886448516771117979687820107288906018474127725021085100377805757583606141930838958818957462881064451199741593208342265089599142622161196875201019123007911494694332831377715819088735542252949620302848973740153746364125918421307716707857428387518633364279045608130600674245794828497282856111018268556529052100146299817697329707781845443203217219033663869065829673697145622548564424012375024761736334437947690641267738631494083637172880792562357626759218660940665113631616381293937287423559661757665240072997530495655651451548922807840140430706845410033121139895375097514827619576085224714618659019456413153903566766408580991298108526215267258883612896821505681054963080630403966449696276206688221061826916371604490986582205819595747091864427228651458350686054629164415743560136892478851999759807680018950107424433212593571066434736708223868409952043227480205788003207384354139625976711807007473037882721214123236798459144803047133097321536709844825583253849622590965145854088562394642855720891945330312318391406627618896738687985346265601606633366388779026612761130430597592447166247980684343685669938097986526170194911569155216195504249028372941424330141877781028120806320874301978896862205887727013162589391552878121734956114736645991696968129327145083364811598886928513778095356667088248952832638127719929480839863311983494590847362025641048266044815845082345763968739909833202004438375355433181211642932222293181688646606118392859761623466076975908137405441248236011678678308921123302497403303948390673244962016842011009828476452474857958705426563568723117938612252357040710726222793886754027275077126554720793186138721148157206276792017214902277758986226288414728268073770943315345200569234936602547982674428320023245073574272013064451702397425740757923887384277852508888267453073655795269093449596542160845178500538007942223112142423719514690249520662703216362870986500241781288556958305381444941922288167723476883512188131394273676342192481481166795952961588410372316960857749230852048333401450908033465785056583385567676270476877694460232981940343537119793471543455095387786592074101184998464484763583564175004057783255208483467572090944358911954062376276511363506696763376516284000563865093802460997354316971009633432837151396697877970892639329104602235773568760069795417636630948042065704003096592314106380192742378762641691278988901342647843845979468958460333434191523977028247915536471815469150462224181764421128291429431901280040966307687347357266758009413217183410089154706867654694320389520541577487299304858539062825361635606426969821137840370768423196786747695489055336308871788384330856022879759901612642464860691816674594574846559969637582278049932420363085472965995322065119863083712629288520263268325316593226803201576267210638124196211744391000163095417213300225665485273769327158600534222765869357897045329618893736448680594579071903740706119485927288662348192105351958602863587738216770992616693228887434179409449683366640521629705796008074756682113019341497328412686890711667586973307122838491093888564223312229519383318562875510197140631166210855456385713389434783642588689454912286816271493486692302071718696570549262758544154970021988871440850829511382623003000001620536343898991100417110390834907243907552305087051501065724741416249222239325616103055035155481351218508056571053385957382759222206209945569124539314483428993344396865512557216701380718869071677571424066291375592856463256993904398489857305933739760344897048158970314060530312008682357147817708309659225962102199124602666505950656978740928874645753467310613429790542886331718557117513397401081942507751256305112849737833729771279831275939104260281645944077244809703398199617810362360129561084478811928364703902772221999797942265142070226875768929807995598807930720130859707527637955790688882795644122272714958282097592374955324664388531552008783314358080410523777401587771399556019845497006789102410387572125526313689760807850498519211008581956401025028973270023641326591043942128920122430609610763508311970290522221081808956161466070573738036838964605196298478131837367229840941967800850006021138489738550881310248488107503154257359787250641355736547316156643475051101805147164343313180222538827641057147081639285837432420599252865574337764402830446957560790836027811987893962880029005798915762137798619614951795087774228017548075939157354606612317743801806235602155926029042386305102530334315432181980197518585910870544604579107712342512665570340122581990582726394327490262777491798215666556397880342586435824103487642058209066694024019581820240233895354520646669178718791399417478553535219317655468433384965748204706477592001016348197803809826734879296927161246500728224428829013886750520558719788507179817809793531645892830206631091286072324175608205976011174454121567967890826956150452912936906439069301718807600818785985376564403535672694850578544494151535045505152236006154784797816520190304437368285564243094778136383237136989046445844813886024277493959200467818418948045421776827576280226032932164647372282844521673812962685174237096129528253923033944356514574764125266401841761744158157186769306570632298989470911919046179027010548808595651925946080351034113609530859715067220228433009456091468702618194089895285577574737031502154922413689139048043261487220062737334466207774434390777799521784965318445627330156749081210394239430838859380506641910942949053364597476248515840170925185978747491393240511022401691327958381636811163630671164281176774707259823195140017503407943033341309904874608592980241267548788798569923036036423098296547331393988314619796834030715994137890260475106369333933461473504759278159265342182797530333553194571322000223558820565212810567328484674403047630653918401371097871857273239520933614016795628665978992091954332661244554889017975599772189188600706799912030300338317658400776504817983678370461106146287801377174776185980465640445870539000376574099990906546630994906628166999117298089698054441147315539477939394753805545137069623895496829275832902088863366556449843032599458182627478773055590757422873020823560615631333283791171229569434238468953031286318875865516412278409970743332504753791579461726660539687051459789774069285781416898810342312026553349935178739346006800891327835399582833985412919590373879718768321549495292519776167212089475263274359658734191113968846650099966357334011726113361726542726877436365222528842073697355777987648406402984903117553864620395517443116469004835188872821487284481607632867902208606687785389901564605446952727377127894667296355628628502101035120818447959834912959902905546087761782851952046886234070721222924393955912535496830187907123852211735153630112960697468003593695996158657386478952050889418858178191388454227963007017098512022774784475412072333498551339981536018642520212233288341496060673346238079373011651096717578415638204295088032370441600694734536077918770463475979315748285379962328482536117009461860582887194073963892827905552410701737466901356018907461214308366473341065888615700070825920980534981014603528139428730288262687281710799212649166586356686934151800783112143372829774624666381611989398797332683960740242895750439798538313610939054589133448356757000251559966127149790405161842169280092105479850753667013471716209732191175380136260328012589007521821635833167453566957758339213754079525779935988979811281018205783303714007736629256455076130913202634139273857755779671122503172801794398253234833005407527162990524761816722136747630485382105063192460211800644676856719853124911077832818256886037535258982553921232709689516956209215863020943599570352833528837401490643262285119616002134789723687158049621766119026326251885731450024805242803234985273914405072793384310556854037485880663565765287698133320981675583206933168094345881043714179116848915744263831232103592655315531889766019080843755255249847129602130808330005213544304332550617676590462541994171610296372520286915234278054783862015817097333537565179943749198072194918487200373525980887672897896575590588085710131506733925938537240644570224934347785915906452648245614607476699434487888967904621792478303938805882161690766715905648661956043381366046420772995677932452447982783047621028551580092047661866207252917566615062104465431326520181575485861435333294160429541027976536819833478959530949443834810050521975239797933560401376424753447250687938247902244742733736417086759852810946467123356837975391208797421942068500878428668532227595058330021926319947809372110569776150823715824762098309681525740065232393509976228529570152844537896732088826828908242779066542441459380450126844678276552515770674477056165000347872685490543000008947025455899064232938024624162528632772448365225005375600571373592186560061691696599407678114410087064024788362893904840012068351475297487386608397921737490889234403392700779155682054071369543391746169423163918454708956343005803237497753158658003080448052919419254821422945748064205213109281081359485327507706722405091224878720740289869231382603205196905527157370246912440464687949078548224631415075765351017575761993917648031552067481772433510479747821656212177803102937687409007037155902830157640986886751522774349488737296128099055625462982997219361988802852462096259326667513208314921076219394303718690728479778201913985863001048329651746412437805074777613751693580423606081104582353562999639214888260322746611052591521991758203384049870606676970871354437305560315683507178677603986953231273895233204705158616137928094606204536303606432681457156756715645470196977844878950836542077478645316075599521770401397657285724479101433487763785358143641806586856815710137079819104638347059275308955651917908483143522098538575896467909679342105056177041041317909127872966190645807483056595638411858760806474548881660045334352840285887943164467920343302775786121077068772595405936115482590343177847594455046258141279051349990350798621352649310412947559508223504264444307341283797031277809767842116623616533976280228711047641214405665967104617519756294894647073319143458829682084458595636384490134510339369632870176301531594551921112785091439699203692477782536763603207170611793614945063001139681493479486518878009398630914988723254687331420279596409060642536571901211412348324892285804824048639561161337739355307966842009037783646880026279390269044039126515662388627780881708358940184974264878301808662288846398312787878463352151883311236634177851065346112674322620522412967520284043273162874115030767696001089437653875863073936318442808322273705110428893936787807847691646320928441285568863567536399612867992950910802972854629591325169507904754090987037332776244523676786319162800200241742230935887433360744751670817828174855846561078026400543334817745897640757985061849726069580798171996647257688694010006392400004341287732479539697433524120054807211538829141692564661921075100001767285833981218528590588512619173998794347224007804228023974598475747243258176781729823935690003269639034839410642754424014274132031104916678311226797610377535427727584346217589524147667333521870564766904990597381039381524114993232200629625735448572390987729529868150292206639744986917977388104696545381032967712743272798754491722931787314170968645334962381445221943555067087727551990163357756828532837202536626117933341403490303547928487870610164697394191248211010665361634254740451064901598796767746260618058053616273683266275560500194874841323393869993206006118212496226281009709486992575049775401790301477989005808683259190386394401801436895032831282410192841326583396273234166225981923587669854281052708060719975905353054995648962867525956224164672918912898071745202411223128838045055351353405851128504027499073400983463833441233532519986083674963139628053745946157969616388031091057999703935248468394668291549263234990709124808244925147338055586437682323703285890205196889127970106908572738233051125399071010606801794641761075969861360704015910002145991025788556283301693398904070763273888679849816997948295101643122496191037990379867467022574445642003385291159167495576423821199258106415687147281995547683616034849601367395536540271090959681206473310382047453335867263364654010181987852324124567470092654614878978342007541734844915878430807297409451769653096355335264259908538530198954318674629055407120341990833615723540779516910755409848719608498595332646160854623866679164528437747189434454005878720596214887355243425668206076754699545216027828139894781242252256574764229123105986207421039414253722731205039845558143727647413357781156067279595263736102611691403203732571299410031127212245247709483339880006540196608576971909696390683255231810314214944773381438744163362709293875021821995819636312076088396901454013964476136860801826825963013470465422501742577287881961104742039344319388368778396635977184170646054182298723694694074581692988232303957429454090809453280466304045900432087957701331940230222396564877480233075337178778959202491329758253380232405317713958932403624707267316971314311379293200256517211869560420030401671433510705690268026584706011765482814072776404377087223526353360966871224554042470872646199370221551756947079914088465922439890347863401409729721687415646274401909528465913333849512642175181088715111646079289124594964526465512101576034181299043315272158512243375101707146457938938311603681859711825779578375456235133819052953848456178146212889916348601811638860776453840766913444470833657836396012800766430349236189690831351710343706797996440607050141947067175123771487166731609997452451580367794601972623761034799311633993282284666138332753908344060199132194088382604466970549052250974803418967387398655385031894423955254281069823187474823108626591189367799719845318469245098347384674873255767442240369062030614157318015674518803737424065008258204969969763389163176912818854603261184931805291900131601187785788150719437412398230057234546365943845215283067697178765833361060711679625287249135632502248034575693744011414138720588032725801415564995039752961239410786676781353509536078525750150491596647931022418968307994717302804068761227147768298437979776299686156423103817784899923373163652627921395713015949254734261328902901310269010798882844413507609397035546686750018104928508891497773199400656294477295322397177401297916933628022899065595877581174816961300388358629737584012996792959552662153203394914608368623072146480979078116594696918323995472002547538224289483496120025527743897279925147911144809100230921589016368427638834949987730421833641055289092237793206393951817079810554380239518182339240254048569097015925615653208208242336845167145485688804175214143997766577336409985558740961575095676565536151308725294246609124615606286527925427825410483602311441708939864268566036382347990518584850191200959497198553217213331475528660669140285675636055320411988479615145118549771680497997981479826264313315624795538527774474685930450407154644540823087557258921193379733802428667964560243593438554894158462460622840564894552567131062060305483813072180192380952896608693285082045194537122982594691821609528786331124878079599582332181103700811416541318046266365567208557505611434618913393303485789333458743841736341590031990853507376231985456164909017479499787959321820830859111718330247904153093525160446572931752003967581002710233384125879936425159039177382087522370209542479199825426463342345502002065830178863358366123213026863977002148486730442434449554977525477256562065430773300197027307925915343554008648749954178708831081001344149641348325560555713792258734332265792351615022100410182879096718868939804358563431480702204480583356693552448086549857422400948283485050880107733385223601578038000483915850033395721697563158255834137230238893306105143904095316098539959803175793528812213080719037867161537030945452410469749588603785250904489487802503561861439837888477937228322500234411687831670097873688123732893004199426169070218040552137359244172556476999438071163017923275140704530166058445686806285473977758880532758417089788581919887395940932329914315389361611091260616265813940728790886288491862971390878642833192495044979442997912778409755376636090503095608035936933940612482563330791562423762844304132537325122887954984421861405478666899153712700965383254534748081192979597887578376334290363760756766176752465344726685539119185378850266883872131716169644085605322545177964611371154096428894368533431960437674353828530331478094457966818773011304878903016942796660642329416328460263460596562591840222380745344152253809457412159155660314658133399543161015781001612506327922830644735161386941945434242175149306181890657554293369472065048352757790055744375195854298174401756358969204005767808376959410601322268350033574875764931990911546714271139836671611341918179260694485310810883364128798189323560785212570219149550058341487300675231484386618967591940078023683554098715111301014483463493069956640882479405535002269342962176253731026353839024081614788773813270686113909539101951892837646379162823055177485486207802491237110511422190821608053394192120983646987102871873909864505774481457848819455954689615085042443175878510568128118191758049462543415365386704873501648819098916867496739183740935074323393678418036605763751588587392641289756260584150082493193648539562979722795572361237382608281210100155558855771227084928592975023464325558171442966397737190334742993207872579112976684856510264884397202264363385438712591133248093567159290545767395440919940242333719910213233166617961534549531559009609712636007678147693583882540498386558370672544594559769173006771994495267155802685235566266615618469606249394035976820849211127838855572605287409894983559979365005814922301406862981645268923184749946141486045619352130121824198722004253810114584996849226241649177221381246785764229840334591526322593744629558198738358251226394642276266494939103714446040347502138410484429231387840667088896519020504225090865869732548215686092318836752952124531065830143058398691584656226149863188143754332916072770974824330702540178918915623744621829577797847192463891658461596130849548453276463256479636663383420369672698294890816725750260111367379377586978719580562204231967305892221743273575129486137815294815393210416117473396454839814063156965862399038658630423983811361191483266029233818618388450585944063219623415387173727127740702365917556290804119601525270569777731223072970066991164437681995542631377866322218890363756555892452453625515324117364560926484926198115463946674233217686732084871806934974826198757571211973923753065464201757986834474719341918970761138124529824581005295753691983625100133226197122167174181813249672211549848068277592979904891899025033446564298827423075080870405496296145735503385962192545979009519787517684604364117873731683759812476926777856948657522944260664256489978643834759474467272211841498569599609063662756705942515183702032077949126578961450652387374007818689024646321631860288190735981034683593922893772623460371385350411659819894551765160119608759378404035174016807880672127730310349656840852534379203385269491148932302346650158511133802077044615759374935587002571336040288843798823279941407672693446075769269996124512779381705584572939277261680214170711680113763583561280654976176126840541334938564307094268808283987962705734147067427498116512139381736982933381755702332678060061385358643341027135543391981900222649315853098314174548122691585029865579798818307025144573039288924822368201991763617149361237058037586205327921916036910163847966993429141923716795227549805050051893542886459427434190961421117833708736039030869162687848710269345573394368825471670387035155040204271077417997576031100182018176041605805347493063041873901051751087837358845731858258307122593392558877066953542835082840956772801194607527683431265691272720622563174212339634030254497085262278299979146052699609542614283285862787815750246517022348209576676728106353139232630232710511229587566544168460683155590968811818365584913588443185443879572080081178327976695181683687785647479617089442736779891200120812722087946197765246017483633436766376606265994785548603349332377442412733145167671061751419010221418674117808632050360625820757712327415691580696547378089018425641703464828804188964006695076157830684006988970857169906190242631713577125229379123228044849356355459265338327512872270326923809386492099972447143294609951309708693514800924178851842897701644118786391778475986806747688697571858601132930356116982319024403873229839238629682302283346223483241939864795777172289713782678880528410697887218448130858499998224747144000224602395838552374621240626061900262688375557487415442599681552169248422319126708013519105283388542104043923422920730161821512225334004800433052851393386149832480239716675987312879905637521052107561269028831774387940834437823433638876756976247710723965527330144090769273736029594113034567305282914554562477098735219861794502023287566090443723434409940995978996282057931880922488475893569100847268680325231681142163772877489306435937202665778084020258974365233972049000980036827327981758517250642764420673783091888667203456319373787860155661430297897348417783072979484456527381726668612149090156199040776896706264687804346154801408917012484255730243204513356852870655369483207979368075234346660877182617898012614815596778759943217934339895244696921563455051029992691379790276722174825630890244229142391563489261415725558062827030576025881867225760520885163466634271291284538182453298538837872104932658473124299658594248214065813069839955853483144771077164478567944748453020158068809739664553793535839698541625501717967321821775527734510693889489933860193870468819746815336509542260219392976721217689663008680887974024759964991815220831260648727798059595667427504363318070742516769520877529453200026069256325156245155959446627878705677978408525539533446840495493558265802826424928764863487457875565881243398571721296756563103261094954757517998559234255087882051783352990771550752686076081104534309530022201378159866474986375181510688347638877474898332003739751371422704726077152321772783747185764182795454241747415213326638120648834652484287428267385702770824252503427503837227214986719743434402332307721269337560778799246831616038080423086283197647090619479607884154075499287451899584603316360262494744780230645615421307541771544850245107784696134278219510117991152423044593985812618998917254665545216732572012179498431019714520731359244027475611038090832421809718487855475828162017442423004719116520996503959202067892642008680451674864825160620046374496391933791161853057946797740781980393052787692262784008037979044688830102260886857996764460761001327542012720895807495418242090706774742200457559401105464241242693023878351613268198707427851953607142746903213816103097416266218851220215044907219514146951481711097479461756447730541437246826616154458037953391794319682580095784212711377921660771732944344193359861182879340303858076160125314003993235083925305988311465681019328182096119831818061702146352472699251427139496429812459288641522618343684659661988142508262239886591973852862251265856239808410930656443645362271285004091158409483097302063404696069246954926230240294095174714774080649271207697479350195912658383838872616378815186636645573617652094559585318538738581189727001985624763462816137473371961735477425604093103465112378703379309671056580035941373440308197888983657146221936357886066041764114188035062158322181427586014625964841187227014228087662386161405530989277338085118472917327128323178028446502497210631858816083526051361701870028757367289714110493582713297676649684556869134663587100270619508639172226420291213311212276443616225508535264378581087358003495294855405152699291923185603797879513357645465241511053443855344371068173344435942332450431521304672347899659760594063671140455597995723543041285889100889633518185487686553170376239193553143665791163827582902352736208601326629652328267933230228975086259102124921759407816638783719248133060009060162752173908635700468708905596093983643378582444228335394291677138148141145693776691935564421999335945300790545343201462088325523179052718914501765849020396851397016002759376558654488312778002567089727722477803289654493643257000901917321734862547100319789103134229412224647214357542741092560234667315423499119570740261375966892069625472907469356462231885793043302553761934105969076099175929645673409034800151890626345406140567776903928301957284627520054875949334715124317413630190417440416796196737197132990376244422618894424794549885065400777109876608357266254482811899242812432572138249488773344210073828345389039551355502701586740985476729295749109280312263609905557319795260454393348894691131626952136264095982612641334976005464102988109124946841327676205387229469126800808742427307434634862245484421727961903063173062832644897122506129767775676427435103745965761930764255424980226254579925496316399303132103057195969965121728867805825337994729661880847593015512806010694064760817855806431414466543367399582325316256456850481188534434340225026373147349323332187692402149860073636266915011023890665345814337355068159491523387257378035593699937590832332430632950014964689940376201648623877661793149447729641249250755986394041853206460754549109679800462035208857659414222434776870290353070917172438529988775323527747814102402783353276533614706415159632032434058926928203784934515404292400948734613678369761733540411794269507316260790584454286977948039449921646227274347533042428619289495501966007424139403188738535393380966135055940482059825529110952790674588412327573710221555294404181378946231782758363121574380665507397994731563948075218977826765277585029899268024966972675012979347316767889598575684509689068958962045687185007164064732266564984103979905079469144073658566435567292080266786459695990826157498215016331223919772255833047627799617150256606955949333039802635383068811529680277470451965693292555374601132413687061403132850918360613792191580977703223665857884900008378836096157810568498853035628124592619952311399940745521001536376109197865744596217167675661150970657818663077920343131175943028646265567472145479621015548304834609842483077447075406947604870208501436949440566633700483242569129136549544062144270797314068117145151368017438104671050395642730706647198853891495212325771658088451916722067216144060019454831087614887591257730473225029427368060652454479516672127865165481661008618550865147426401866429464251479263515794635316199146753187552494039183392178369360807164132786604131246156901441659162590309571981796213027207889022363103240280795117733039707495744832287407537215875048496650279335281920613452414063169624349654590631565071094249252324588932813914540403613849930458945855316183409439184226649559074138139789039987912167011943738275256031191255436403821006157290256127644319157180536650643561113584255846891528365554213458996018316811735391187851575665408431758736798521410112507215398546259696470729415667524081781114847721830798389583731293702975164655675701107701541886997582988068881510173570953647402471428422501642768568655367785768915030497439995803920622441067719182588159797489666242143480281148038166796163197312814263523558064675263113460600941031225715501049171321119912101430558948344341443510669234859312960535722103843798395200157659346282912789049930498408904425227924292574742942654887233471336192180640194365311316585010673967183819341895785885831012329551370593459608874970956197014175042701147699745491969136843362536986446858890708560686063994571234008591597785168269263405689588102868937738091083061714892728355869562002371006464135894687335882684194666190608680437707461495292010640042902149046705815264789514529191077014456694351911276654652890484532763313687936962900067377828009355014928166697428951357639349349756453561119066630066682406051583257820143718814973923286098576945563638911817531963408662999952163292340808665467397755749232294148320498551210398150111928542231630825135314805547478803841180327098500862392835308012789257565775344073674903769840086884837133938668673386421020901306246936008576384111139535661115823373469763746946707300555074574039619169001698830731803561321631571957671891589096510614256556419454761629491215845134747704549102103941308589079371135180559414688095458586584274031932487632285136685259060777514694621631128814214580228071570904507587147096820935662839915455255909620803796763109227749784997741187565204029252929390248588723584976797148839065318713820757845819478247223754996640704150797536528388928613187102250768475978770272154218455216588603388736705726197916626504567196128903717278869705537074383393795985462819618082703031493843401398722251641882372525379284261773274860789614258069134107298454167290840873729326378204508652837194009862893190202181543789324978726677092675781654864866217320334303337945140695671132698608885514066297836519101226623393090622190220803540375051015496014052129544418958765965049542024204361389518478802736116461105148256633148814642160875322226821769906459323312172155470153651357511008198642554434862838420456552719571852882003343208657897188403439895807982731496643854559062095293916554044687801985388784375814862953954961091318286706501976320233555693297152489518904721015637604935844775146162755446708728756737086768731620574224130816817720226079470875290171359344896316352734978146071393627208632089378667957709435885043858017807531890406479101379639279276465805005937096294130403544194687406594923187378657965232785122055569941945057524672032425691949838344508071664028119255317599250818880600229595071401866719037113668109760613883250288556076304709904072507199143287655226912534717503351162464411215401523840783127913882505263309383430172769172608439482031623173019638096362215508729648070545351219641903871225330021229080096584820212545842051184743952625946036971842749685935766051969218176618046915433348207101689095624047473672229879244750145315094163737325248961617374554684174767343976241369958189970312189931667954270456837630955095051740662255285201488577370431686910220929250011547546121279801577834302279175874763383360618647934559920155044039966490314764190315410097737957501874451689445112145613812967084459174352226904962026353322420856859304018926652834483277250821007304652934496581674368322988628316309175640388097605769795107205755742885252977801263964001837068909582898957283162896322039398932888335919752746299404186039025646600664650124827500328933583788138425210772343135646289713444040062641086444436626276892315831525379088536748554520538134339858177918310874108827863397748096965257217360286054153834189740288374178298098225840681565495253851363742389729793423037807038054020248889265502806696998118020022520360701870339957920195376504254025460691076754919994788673183395385511820041486575658342229892155755211732804262266808694854319931854151539622024446926553632254220307761618203306637759542188374955076195099232078829374963489296738403028970116076115659933745622473499368517141631708962972800915887547373440318643441664090021605986550447165697198870252726043668631515803996201748341014557499980330965128179744547623697120010241092229543772956978781060680864087083827433424944544437216598662731085889218811862141647062258020156519089790584459045101868343751948177912408048276802816028473027441805317807607831683080081708016519421185406480298669047183883130815650999748582541997226750784724988647185764725978951048968408949264527244111600692832790217361447603902426712051510213144660372500126491394214109211840754698517393579383606050508824111922503361195461375668088618319224163705237002381818449116986225851133471113525360299631562271420786004166205363742890274861417679784593182850800611017817485038589718531782643334362387750116342001915093633487053750709154155590513254543925012694692880979043250466834420357249693969656933431891634858477629134318625841143222846577383166339648730520258432566241694100296023562771591461922536860282952208750620162519804997969662785058482911683453958899772471160321683478720991289463544138434898137706799192607572242733329978077442805941913303787362999675469388960918156640715299986756789671944997844941108127512518404117894784041080764780054661016527643500299539943867322186974116986813165916119334311673351299782498832517650763527028001706608038140581330059773736757426037192358882310535930017986240574947180821956181514070117177367226585216269369153375513697406480521802654059629909012428771076591687665426079180312124022056425491967275934764506621093377057331095207249310852680137259740292945426589454363559960181781738558651121561165617000688389830972496695278785996927212948238219547364968372405545733136798259927134351096253213412153440138649623310346558135150480869824927976668122725507447078486247323670308057935246697466075373089981672326382622403687945082336525629338311302282673227903824119803346544755801299175803948001653406517729649294506977642594090688314853783133606829637915341773082785527697123297231457668038486536650092572821692178682175727483159339304898987711439023276272674449439883460417365610679275440802563745929165222313025394760857850628203332020733776560244671780252725026024825854490837913869145902380640234916655618275930803040882507589423530007245748648555856709896922029324717295120597164577159767043957121262937788778892804562260870940473162100291517012723017414188949797117528385651867345870680949782301515791695657109456588808230939036655756021152367819020373534953745999044859349575169930895622529181053195441952162204273260324273428418293647508697277998339872354764870204021769157932974106182981476909274020063127098804388691275347665609105399146393043113259844834899317025603746476284163152134090825005170991308020306890857192666148729285807709797182763041006827419978332839375843296339480701494335959682073506751517860049456115941656520728586627602658922598439741577519531571564113739202051114831490453585868131788744069988229317642770077012937812810717602974345606687952623391749385435492068421503794556994090869975844915719422513104283283489356541730976306670789706299499007213354647366600765176246692557047608805919575757226798163916536160091677588837215522463890485799777409332123424313711503470119302736946635480764315714922548163753525245416498180036149720083382071900347130544164221218771635897003161330166659106043212468033497328089058566977243741771997712045243135533378791851899914543815325216366864065850542293185528151138655566659667971711711243457878233486395882320053075093504808552070705923823236311677813932625503183233401984236418292721914116798543711336566116392062712279880529989871935167147333587430566500304404445091211659288957471173246167027543945444864904117497369937929083413619173710197177010918824758827447857050492312555402108854491306818545743769461956170568580719823767421912374128425468260963208204189869326964730473250035205007561743367354008479674834439323785367911254999138099159551348398884608022859690454853149172972025505723931928934704206135007493163968806295321361036030200738326090935743369552331491228880527984764841477458563182848961357847454699132983536026029985640351107568168667207854825109250768822115727041699514673514341908754070437988999207473847769267922187952476600862966625453250354003839593977819058173045505080758891285218601327212739547603438164375090964508184933848912759887174885683628334157337410862762925221930957697065279235597249319755902084018101847652413334119224404071257630356035427713612935379464105708795385765833929867350971699145718189481851414721664011662384895553677399303211923794660276984984151231070688198278364033979860530158376110850857499156767957690486123956803799404686578944031231678707317296329483949076705254708113534856608168267515754595975018381236103493717274115022546761174010523143510506527566131266794641217490024448659014008119367168757495857170798834391623293251720636583580002129454823813071414333062293126018173349187818221008938471688218706139752050105994134893202494524350612242399448213804180792530809717433795011185195214522380356907809616249559953415286705234845702218537903983157383402274715372631637691273279377750959944494683823996672251632925496829650753480321995922235818150793125150651560970549119816681105820867443856763392733327987097316459200939593885985858433867268292747003959932833375323789955529729893964520342570644653615161931193154474424124582542661800602129886414871603326264954252286561863022549469932200879776162936652795088409119737434422799704022904689372005172715821482877450633618311981752085153781244846824274353246636817994998226922831315028513053914004711910472216577084939419912595812261511495236909831917134846599476663903380618477990562915888473030772692839197485491358435352759328228681609967097986731071040246487644423112702151920643389208133672162355437398787745165652406821461726321720442349954506650057046762617508328908231804418173253688936033909345269274088609135090516822033340110798660536931091785944403567484822719959116431482211716234824607577741271613629189991399468652075275421097227042661724235243472404974965743321833625647796220308069773843623821090388309986898900665610799703019199820310909791978996878153147927215347990671149466009037648556835980316026938247559920128451117649726239635102035002720433484478843354275612359366441876498751276919175475388318302737685115596713139878555038011206366990924055618759141441305558412980665958957924489179048954153894107579860554029245523601876760275618647497126000568976925421141410964014265418596773818302520230133331353001381630789413789392692878671899557091476613904002345889218860707836205375691328651392727689553286191089285664874531423036241519785491030360633445304101882678693487619006828722236071073594076835100692341358909571940925985290870038407347281992569747953438100211159451801014195761938386539699553072272208540127815530032102714287310920595154363464630584324588801913168559562693471683638500824796791844034141929619999897874017593640031147896264765256212231832074732528565910448601010247685021764887365053269578432732435605202514197333807878875867245163699489806939217111686111423721273325645090005202837241529653505805687616295507442411829255538099096390863691973915936832993710148661679337258332300174766529580563878641827953912593587472226966221484556207469454326384403923652579408829408664436869257085816199624677764180403583488511170387612646175002792836861973967521728673146022143016774374668688712673600980129519461980948869982093442267555216535732908612271664481561220567561798871797292973978275752354535167297195931869344502780738278854060586186972877415037966971779846406884906461893552145395389212932484567527980356468305618764122354621743481440646701372446462747017958377882727326551419593650056897131752767691438071361497314450231530218591929239293105251992391194692540786823306637305743290021851192488050681419545822868934176805032233206517877751503081587569419842171302704481828552817531700441924244218815807524468651216641827065183859281018424422327042898381729343645555162926573037820675098145273812534947131063482216219669309928104503471079104684985061468909740549070449487454545196372848887518955915751711444569975725582628959049628988156277890297367576094227361756979027659002061567523167527492848172031974452050929379367497706053033628666647187997049361558320978195946966839212091494700461467650102797573110857842507745409315369410171517151981093045984761144746617520309611809491090492540677053727860178753568788511243727452127466214916240705800819999507643637970897031185051544443344421627425068753497353471514174758699904915300015451594815124697532164295933656576789528267545227540599607820261096778925468279563929373860862984578374098133599817078543890988088769446391471178429621631031892075522052356020728544322630215019837950945353629195199977521534556778913219484068668114058698096772570880404658444393538654383117638818437573881978969705141737452462429771910430947699058473070528970177750580618039997609577262444074931881534883933892250669676136383551093577090071887225599619054875740409799427785314443926330378195155764772646915078000760801952886216649610408420824303133209554385616639958520947144555967952532868783806213342844834070335572126840300456898952000626002453624981576767227949868164785325441354813478471809657287596046077621186606698824832175064647201489985664003362786751646450784585179634235460884427430473041349333734930166029119034167540828794132625892939286908818059196822768968476655204581149823988656756476318319717385707648965232629667409982715501709621514575472320761411254348211715806686991606132545308935767621276410732151067351478466919500492604824265050048799163378976858375254384733535278434765201955614065397966945306490331092309141924768276420150691605960563596324257701593228115992527981941962730728360891238416343651930410154722546437908231692392387792991578728024887611958229897330915539994582535272059660390984467874325736136439772203058193673313221468410550296241048067232381781703595746324371101270574449491092003731260125601851526589345646664392376202845194711746570395452989103732288701823620942367466435729355820778036348734550320119782258190776502981690452059225253224816895644795112009498622140850810576517614522069568281709866626734846710325172507497795304623572923759720537781089371854516638149142535477201274060745650788847650288987731243722897419822474836663034939338485685776152551620414878244789212937904694122145390465785498395071785177952315585406246940302231875689285888542511711457944983584197650204769243603163098128465537829225552188128035981267020757174006285376054765873508234053867073710824497243967312634544509732766452702799495891671703383511937017584739655298647360176897222178896518405444777685829195308124016457993679273829876090141707588610293745460685874359980990943274561072823689263022105927129585361147817119218059931846977049505356042073363891541284277672951209649116226597482124035123299428157453805900512576896989170706616163469676240287151550345518668602399755729681389162829903773511013004934870986312632659877948392170483803896742356024417561545234543110549980915920189923028938864198145634920773192477860289822242762056168922683848794194078761065347189250183169228065643191511149211968950090644602468576668293751982657854572176670116820221824405700617588526284926057294010441679726087040392523629037653302954524076786714391477707924805196646245291342140419938839412165149847738476784994288533128603485990060177648437212207657379297039583589076312076539950419727912358478783282300086357057164713398418481028585240527977488628859693285177129774615925802640966332629465395955995385906507960281657622450778196320484801919308603359267942256899643292405975034642929685603350670993687418860816975650927848554127921198070325124173927524469853856119922103309414614891447548212636657003658294788657230502006602849724845361647327900280417975566791863666987685837123705300476480542758802397931128149060164849605165578657085414927692752577053651883407012444576912800727825113095361345494801871745576283664097153826753340634095220396975452801834040853671001448852575829692960054660037241528464811227763866983207432115356867402661919122126614212932209173046051919544292264865870404449832804209391257815021556726079508743094297755992450881165741517454193398334765908436940192711991562151198042533880791797653494397637907752279913525213965619951896791923296510226546909395482172611688770111284996899049827585868940772432725434317756505238345543919612404974793046855704780151694077827616130578496533024141981172677718711896832917788600406165044518432794468314421145702460869452675321891308103360781355707767664651296337817088418119220014350917716929801149911232022649799301300709235035917210296944257405247786733039888456631838749544875744479224554099425493605853347839945094335289019516845828443310233327404196263180509052111866251911363648609511714287067440737833260449373545519313270866649639291770630017521202468857980797665987775046962958658257409020713262820266325468918283210589711911655369011207858179805784346925502977291711497525408668756182876239417686664063291297926843150409720555154085657491004942828915243973139204633060523176904980332228268881038879124808608682176476739107800135790473895370742322163911941450502878601045461998326166008969921951071047092569759668773587133499456221845804126494713542430235607416431029886859337524427003979040544721528205617289957246542036437909982293433039036395637553626911166095920974194083327171972917563081402799491625639411889607202219681327505663096513356225576321203181066426691031750721066077309826921216349376683253145537857371968302889988373460058030937312219593625078969734368891559650823809369235720626253131280788570143876269092339585854712036689126788917358982556256453394780757310297841344078712583699715021108019278727049447314380370482735991375781936045287848729713058276014733128639301962206852427182998586720952759646906141080787656516779173499439317361258121302916460706097432217493135135201484232908480940027184672922713922933812869484428272763446579467001185869507967246406994020069206455721171504660021656021250317120448952141001490786144667345539131959032785841852976924885892168730714863273338436700958352685160435539466370100742045371154466168197044326211125498330379510610199506297460371167695020865829375589776472428908174103768609888171313333190169156377837555294257485330021077573799994058933365960157700329796562176384537016694655850176287657972479745402853049924717982377102441021481958139804427939362365300799218218015041500268534831659415905539635979159878269745638365094524302483949906000716070075048802545683181993789818726946312357238019688987107040385095660271833543518115703500375639973954163739601481947568754815319365131446638643883983658501489389174380844083145659912451794949374780725934800993131736498329738601554098914930298731239100118609962454203604080118348014557589705496045161343348722453689355852127258358205444142814070402566469355639624218684649286139917692798208298991855259538024507331854318627206125273941047987580740609384497467354601526978151501018484491023348581646943325524167122863446327848288287764233763597011678537168160858008872548978561803875891312820666309179384254308785129034555201906065148053256826650514735426653977807249170032745691131494434483517050397606384130621553556509459178142861462760915013869258459770387459766701756026589008860961201054102915817854568333012871114183843602065646452698676269586578508419849998386538347430244264170479255990535963840678394976979734150842798506115609940473183458899146802199010451511290397045256060555629516155172277601261899883905798082692744633580425369579630904399777347368150315846834054722023566429245669264227054713835048484646258534255940150164090675220972467207634906197919195083295669096443655311048309090788507181572687510519067134762324651281727151564268541022310265396418669647722606479262284865030952702176394591433244912231703061968070916028724054991788235600934449317780606640598965814182041759230828683706543905125503057629531074741811835147214250629524868025063038025139588971737360843079643212656843767965082762701381548276209000720078916246248857704064606620311412727003877351525422882810557806915202456171842109534882623266218212206810114523565161778549030744175305919820023480002718577727432298693874573323567463583994662672821441636964872712301359718581692079079003797168622729386797080497021159952315211326925141408891727957064693804733630280871843185132719732818206682645619185689522282011183893293100929080886542363533769443175140600613501969049761621164745657678311825656199911755755084864960197343071555173004502990527007485822251232355704783772141482729367755607022454972049983677584176310176386451734775791858711829072906603904425847737707569687547234094205224125376029378470335668336342339661031003453754143754513385248762512395807364818013147583517738018962132388457276657053658494614785569585882812412021855878567145432043900989947821713621810371687592670739969323626369384744698306424724940947257397847606392501653649202491437757768740543416705688491020045194146483545659034708746501981384694352341524707618582342889314412192886605003635747982866172645361701352693382004359744786297796543167735939266752519028254497504290269244996164629767542580554309452603253730383066101745270178766797677143422655780605515031468651010610125622636136115566935021555321310639086295955087745874199220373084354835185353773112104980929334745305857585599387915408258724372769544311935898056600301870924317313036367410992957112974346961096726885276557459843163790941970016528934220727995249931401554650471173269976396298439606578397126033970117374682575235781782760078808495471840417033451985906193585504880955735038947070661095029359168160155593718822025769317492841250845070192243309172427058057734598759391582774415206237374455631217787833940595356731741206811504142870047507992361774575671448137477514482488943699772426370037237969229705234253279873912275826561827559107384885429756344583430168007344373374003156246585890501315679188434867022120285780380899425680275795377137372232700013318894953918932921761702035921658533459557570189930311489512938915284302113914672608388151473399513230627878616450109830238144634760499691244911580547769079233760003751145367314074442035645920806853545549575297618751492612274671432881886225872228027523724755331281359562197792988359831568126170425536840519467702311986881006992477193443277276300624680874664839712168706190460360155465609240307105283775995604706524094335641708691909858851919096316372273728949645750037955858723126761171367559199941962326744175314943431837072077137176559667505842726184553586621654993973795985209408875095789978955522700175343881586540984673453410364931128014446333961015273193650492239579641870769412204434731120951934484125856779085036322172338660528514991125997205666388222282907033726109358883948328217647947046746712673735966112329951803390248681921630495175587124392689621471939309473597705406381955272558535218352913297785303235224835694826579992594740925805042416513293759998342810694893014977998329127668473227214273049212676869457223754823035945531828095629602903791914054094899162318687810654496103694100085183283242092045912346844550900676080702859866714525433487511585044121021749958601243143368416264277004768850787041461644653610266774240960601720337835019370724479493493056400246774011986655735559814363502553395525505011034185966165683227040996914506446189335533983293155820585741541112188583230310117052559516583384568483382047435456649977837475705017041188007262647963895243661107591237929073502601274479168096986398032464665553034452183139745829283134173295253111031464013807431898239615647378266088681891620894098469304584185265381085737948403520168585573704642681835037815112893906442728422681468959638345738024109665568927212897188030557351736660415048536251012102824893726218569984787106362092538113225624019411749133557867749477000168132542458467996736154580481186344125809232080673513851400528854048536254530721615541121935686277103293194802644182061392151096431120276836721677464593055610598353336632219922849837641601169786826349243045282377773063188269197951336456340196495005784622830272768937273526549422968181717860564400501184469827938577262618848406973850066736170630161728549803042221184946041401673526948034676381275248119009437534653417273653951512412922917732595056502880814844272235087520951291113947573808506315118456597423831085311710001136821222897899086701451036192805794648877868104865631862228764207470171361338371167226613706814208115011929863355276946890749848523583171737886662153323814141015660082947806970249390273886902668481620358104710425598063056762581347577746687566859401185292383110628785149471188793109369583046400647911219858949287340395904607628821427570080612614782087225910027483903592800889886771073245572392805724505232782001032831910608288585785091845473393422522270903442081171826653850483110315183075540960774465321952521313931044800699336451780866776096868836271686919227867329354549630251500852489487034906449615587312295814564889220734998548142627302877236199744655036477484259446860842531610998259622010608621623971291083926185052974300786122663063550192610212002070587949560947305149249449872485880587932818460928537752115863760034291535068064827628912726446836904381684368213562653448942342323435750265893853314905999453544767151195984628668178414784085548239554981298863304953560249781879920781152973339469400212453836048455992046225233194762355004648763789316836976462359552950131217107650917037166815891235844043337031741238549361685275102216037712697647997184570823374000506068152976472540140354432490124916384141618549668242343070250902098181156220369497161939392793619766455768942368069141633509896325505700751132502524608677625694503673777982434313302522419666442885623219640614035343567165100372199830519893878775539156158004159429800342981580120881068371338462204482302287583858797762508969229562375111570871871079498064688368298164313118065069460515296426641255191920000654014598176261387730380403481092218103106149195680560733123027141996538984517889102035162897862610079791103782336715383391384788955858278664529497993738093099270916387416543435990516641427952912931896323067377228199346862093210673417071315406150922969725838359970793825292226223456751909554458623780257352261793925128811007109982483828919947302295820117480781572190058812092403193382608513624029610030765091963543485851226755664583703956581322180651463798269441172098555426438946051162275579763515532642788059722644233263104412991313375575246789432296219686705243232128233895915167889062441754268367305821512553524185201582510800704477911128375217128489645505416991949177935824313677889732076774246737608630975007665422578774382109015854778469319737317481977734840797830870993402508469492390801415139738727889422118296006800172243396107275720392593997269803641479516513491247462495889022580255400083412635046156498804725166740889860614127184752087941511191872297383639161607074296786384913456508029392174186406362819309950855197455206464618969456006341641394681938344869026406862984068931783142057432913718518083302177818240558849898944475900809419215064838528455220886123299101287598999463306943115327319091079289633014391940443346373756901000513669903074964490017011150936535964008444027028040492716544042873538671995411086139459452511057857759552437508248106392284200722262808817933071688268798243550122156739949179130611573456361159243079462938130318723428701319745189083759493617639812723645869334011826157390828844084375282253133328258378322322515099542904076385697291750408809538251673476503663947822076571201812273157903023624239700589960943869773258619082172845728928764870781425568414760959417266660176165965713557371461971412507509511106644831988082925194017078449263703041841259722800025964012011861648106369944071869562594915748476227849144517755205721853370134148672074341435903114910106832149669024492108220655587378827452045834708113536499935044358507369823511170617056496344744113299176888288329002175304102192747355353519251499834237406728528630772053546327135689949974490817871560979251561505576359418973693347101275691739871204183351947049602146287707928870610612093515871597925950066051493154628703515176389356120403534620496187231753847199714032802207039510524256580984451134420941367215595768238818584540986298818878939479921968388578562617292029430418320913067930924945414018039768946345239528667244350764886564624498633703238857846646951372918243496357706158307247043356460765256560621251444634984718547573082928412721406998697296010401285498289642993649718928641492084472059516664499164109488813567096222263089482711098114338743049245366788928119664064953581169030260386488830304297667163168155738590447063791146986784559219561528929113609983567170656571965003790338243086479603216256666803654768486884484740213642161395453911391014731549543414794220342830083321280314975282330240197783693300320043146993963101166852132011060916137793825217074927833912921414506411357869967685443170627146900303367751561327035097539626901242950210026863827261171777958473500037874016967031842367956288489584043472653489833151910869557786722055755766329396912937571832054864342289397881380148115931202140486775231972145636449077190875958853729250284587967718975473946984342512015439259441239058313467304822080284411058278020884441731021055628921745798831950783163660901680334400402526801007897301132177854970103985230588893208629221717330478441279271477594313557697210078791418088476940443991073056714604131081649723259800259676196740283242941267865666227185768039529696911190846266444012797274285988002858237871801399693861832429130821281737496452219492327398805609841610826251543492802825009701542953503228554883638545307926672112258406890387605059264928391220497099687035925307788926262749219044264295328059726390675262729602627508674789193214768470525466315621105296115999415763072861877115452448223559892411985467114678388808648887961059664764306728457123843756121506928408067005883032117355022235851946954761635489917205997666673205345982069277766163553574859067556217367182464226035218603119111627003279439533721113212190460799048420633072302963870508004470451608402327068803700642393084741585535257977411028354876318065585957287233514369053240501359949922557583025307126149052525631927918654374826726662104892973801129148163189992352141667968703104672417192525442954026474316095772162406886763486460989284370835062439317206000205903632406124420658556742524162111951014401674962066885450019160062614903230169218020625521590078826480195230814803955961319913125149683714320419068799299198577446814560417591790508773628882104778175841785703480355268237227348467801028392319166302483604190224707447644321796138528187912737322278062042261250245759974836967864596111674707567019655139511357818656485866506170367898113052104284888172447827189381062643468039056027648610936240199627941722576066259474607306607169479522956759600537841375580479847365083649559131241472105740286603509865455545085339726326047341872979109195728656395049726093448335919601580238184471474027650224912325639362424837303483763701038135482947793634408731370822554058731969694620598356833857023101804912104773746534353231157252323936085986524670213185775930453620811066825043180924670545164129336860423230840904326496497834729545865769325642902994482323417954448554036358257162632781730554407270940012458555361184596247011957809161476127933309459776723645203639999739619632194792784198307490582011180038084303358085653158480843376394971334489853350588272912901184697832099496260415856376541934791183874652130218205180819092979334693328676378447157298088163321179270627310952393006226561547946794096310843437997311067552695074462710863019551945503814845063488967226462857230241897968564586296928480385810174731497687716094268501192913094243968917339369514888969768028398812930526765537773316286391114659017709417167101406396680513245907120245053243484078647168391406937746318633493292116101992196536033674631152908784474340313150788884656876519185087363711467455326900135015515045639349731349546153811279581439403319038875810868700984627784541249950424243219987328571980819600104199956224219820257960894886736151979135122055471621224724753788638855959297236252031242311274660083642433010293452828458400032896097541890536937129778907664656421312551821442973249302901083407955129491190067762040900816284127689854978677564081564673870242967564783436824087620956297653098802450147137834483182269608422330279028186863437565209118627736416670494333292134705311063012997644742115087755196486938889300542134291411342766345442862502962906999305147979544097621688209909082449514034360532950634572374620806398370846738152186090024385800989308963985630405764558799076867382121554886981666166300188266853235275205798696275384555681020097989193882050318620769927954069845894509135145729991420191906447161920835075810865142746571166004368758911611031159227909454498995549433957270476750384027268193656955254016060708130477623313784568250985232369988013979731969103056152154964809952029049552588833871498390438107540439690228973903073554902870803212022711390978117834907057934606359938093600403238051691223182265666832971916966829853662711194404067600749086012627167702637265390333112921894908723536004439175025058452695165120140221486760575152137412739123273627228004120459216353959075995241193880191040328443285138771317770240885209509199388500196394796779497962520805922392777185368241193894852956175883328986945678157536629479031277701903864343460231170643877848452010925418961721027159990465479547941369636246112104485608962891921432563674882435659976141733544016252975226461401710578459491936752535182338754913487113856628300374478266866988753944693815103124254645518186668625304574300673629961151759332056412553495119008947699123747685641038611705617190306405832914717440710093587107124828452163507643540000698788537519841179900746693018699710884897686666660326725068615725068970455252219466401980304381351560156541120828153482441213762685295452902229250437621598629843993866795320312956633611781192229495111134516660423386915916466250405174773976502673738291075921832533462207053573009438604705204273173346234481726815997537471631507961326128987354980951468931442621424915608832605198467152949337523949578677385225925303575699075481438689580556251541387675095537781055690496786602807202535700255706565923703770427581501501520618812509797314416474339940040062366102796069495042063792169783200566879961719922395608503305639458260425662716098742950284014355136242727139196836669029317164144264537672919424182670392740250451115490774069245106173438126843831794172994036560458181346406827694806509224980461955840170632685102758010257923701056641316846731246164643491905745092305374110547994085998314668661032386747510713093111992622676736567100465032856936793580469457193827221504981793081985909035052284291550540137221516109103904767098451671057679174369321181810703439626741889572673780738075125850317134157991272216452189109801474137648463029142221244888652899097312327112520021256263765038125353754377364734120607961767173940656200822209096080553528397928188112126304850397140410916615758354724109970540769785403325797946139329084197624334842116373728361974070594058584852092701860929351264441992544419207456077339887263615667086639620168107980261063740509336594536186325911529013376172563246949657726240524427691964707300044874012661671549093129125856464587247326162872267455044944120553385590407864286808602937694654148589952940791722232204244068998610163285070404668254257818634678856110890034711945730709025122500111010444089788160722678204245913137478791406883072247186210661707280344337101627920270078390117273092876687117758109640914588131738810875966324746551678305114585333798795734698950421117343184334074445090991901119005906874621396849919519469607932623468348518956078457614762534043979499743761930650222794784888668697937763554021955219189102009013415089638495493836167221872317935899167778569758160621781764941715227863276335173377376158219895402188892186850576731923562026262349277991160513346630628721404079913784202520602247101047398651085722687663936679407732344247692075798591654271390923921142807699550394259545805284851903205762129751430935283342456154936750930652272588655775478968265067909031423165346785634091582970758241725311836912765555054291078515851140027059128856634822971022556719370532128977373575175243070745736057739457693689514083220667897998572285954173394604368370281861775706591652424701918991379676405259184318793742490335198817604729372766326599329311649610505142025174847513000211985153423238525577472504885735006874820973006968524893463523821219863319173351141055131401272837407897745905444123951001938662760004058973033599370120577061401344983243082651781753717274285096838349464109216804189971850882003732241932864542242450586391938503751855733304535865771875438439535345113208636890314467400208062376941940480581084043940628780300121527646245404828867952331705064442337549885412672479329790002973524959538704554136342097730845060988325359954867491959115707406035736451877446154435928139067483624398339460987289947691119914239843386481171668992149099689860124990896953125114493462482701477668990995027313192162857509864548441037671980059061399857058408232301594775255433378180169022348463789609861223341236688701439664974603144944063491953721909119141046412781979490537302503257159234225153598570509965279667680427457011138675821362924571110103632990495544693324977938074097258842388646226063001424083264141320847339844723741146242785224416001522177704454865864240974166607737666969044990031343136038616780758370380591055852457551489015013727287192776687500227918363782702607367624956408299583053716543337358144783326798790399948751123495044605914212932601222000985273517636915609092421377572880708953365749072016584692285559796070757773140153242455975865046559897027897851120382737823090880314947858315185617402188912800880737933563794408990839272326871053919076885738165688925677318353401858961746478059511015635433036815151206354417919028762760559956599373355016079022097771369225425302774299740489842131127293585368418709895741635432506034503754336685338609654455867245454066553093423326646250455615717288288171549414898943746456866154769588596425081899893148701277279573792370729838299611300053731041297667182521480785626147359831584403043277920797188591613273965090939306998576881701228966881966206146640976452684913822627585982483608125552471090350168536234117606707985286486726571340612604853982184429341956166867151095471489529345484936253745207569240819877123305419339411809265111031783722540945978842179021220843430797001737453794391316326286487361827211704669284694441900486670448282551936714300258452157581987810889292792133156556182849358186860881250292418550594185192714795841352892502675645331681205373074491046774987412892680895735880818382089658486123412477056694436756070317519708386429258465120405145286662066768369137299034760558271554212492518935057053157321719588919623492116469759063771819658618125400113988672552497076569187244397805132123595287437303358706983884874715172284957799442313779508179064580865278800791134814516145715034363442282415668269077024511227614075776035655716256692704421523449543985729971629777040340159389138403720568030173899043026060592826362039553469524646585952929193778358846037671703151864273641240966591433632647208138899827476452725994060511722920011104745994025653207321392945517443573597196603495397956992117668163223059211093489713485867254911723017777217290949890224314490864062266920604292450105983358198196559025644373941957547302948816901963453481660599170874448483169920766548848138745000705967073053236929628880027807436759929652601563876807150246776059429000398413568203431779321716884400969293357701222534836263251446767490680247245109330891370888382177587064223187076636595743119915763901303125226946771414278414404903301577894276330318590433868656129926324195815483817984829368751951279430076136817788733372235525732293676058399575220209692132325387235971705316059206008198913152485084993225974685326208529393710257573203918237165987476480046570236820987811418081665474879894981502259085226780914889591587912574407208455671495849266217795568226896758112004371391632501190537426319890310431508776943130514013914317046941757621144589595330458897440148104889288099276922230636013291229855076505000101035099725461334500602561559701492722070025080657098288651030584144501061339066476606962623205416979455418230795742175525853663603766877844880610472862218780269102954734579979922346771570205892143237535393673402591757221469902710625578858305488148571479270688744334751109274059696390666100933936480205690371142230092561110397083787675765146830530640532884616320827075953099127705113441921412172716201306252354300460704271883148511175530510376637263678352086244021187182050287987229480493551769023856917798369763117609864048265809085190178433248056701743558026397831176840863340456123857530956890869728609432681330100162999964993723552349846630892728891665969185934029722512215056228215319213057664159850746327202641971360845956187780235848756501298928500398463047535564177142402833022801689405723809383572021387631790795095166186811097552806040928273099265332124644174870961353491808805910760764881347516473615405633524825754073268884520519470729721114376996592891160250136809488367794193164774580019680350769589420840883960466755842324736959307020568136572224834156988057542168497417450998010614824898324077701875226979481113719104311501906012177303675401922662110464937330647385816830016760816202525245676280661875813176653755556925639863593123377983108227963556833501072114920227125944936638181151452182901160789413613493382555027955396813552769599800222146392195823223692652148991067871030092330114047312057139855811557650386839327691025911146239433786187879563118083913787864086585922511007068139388278915079035779585901871596127703025343146405250063651289208458573372696115064172309219558329354225257607894759278912401000766528493687405239409864400236648689976606187250549030546961951017411048699288115888530482524069867248794809626207434823443659330162878018386505641096754936801565043956811824596664251020593329305926130811667744757443195161165275106096792552391901587495510859827356641314488261151666525825782654305802754794035938920057198758140408735023887588598796183319316555935581215818405499759843694216842053005435635360936677649651203876662151676718866060388137616524724050359121277025421266228609004412391082080962409680361660115506021350229728327805530557684371258379652490161219041636975593190460484444911374931600338840003597358697327085943855237309016846305181444317015804696777471876987958482493009018336890020408178428076532685695335127790222732835832372063725578378627683427303957446860879888151736452430166695759672671602454685974831446972255707212663757245327324336241558197629624770312872874812487146005727615200578699899347378813766712115907413876916383909628716679375527590826234054445894568298881695135359943952914308688409207474474738334369613675773511641809865115832399454352340718011748550549741120787095935009815523477446559845690256812507682671803923117481610976712073543385303182143628257851510847455740742950226877524757495242616404174888672342168665491258864850342252359056451181552268874789116167009128840357135449192397759524435072667968608383612623047196468835192484506348265822582714664615454249598593607425074207451754176012576509049753369925028776748907988244336360569423144519895621982363444926198701541139423382053227932215267630517719541677152474775265832127417312603397546609580345757642049283308904579858646365154660078497705726028080158129341247859043273342098229663417800855365569076477656059264555340500074732918632936504598982089331811413912193870032471411552174504784909314532072077189220972250393179919595794215856353740503668395591793031391508962775155366934883222408383927177984720619182123218885128016804270109935665709088284139947322200969754802725670585857719399359730300350171825818984708985932550847130862535394082475839161793993098878337653563039962814101471786781880226778295095622968546673726324848725388638231479224457938429961245936565402356270981584969230058848106460452113767421526454508333126607483041544426080466338878782327054148658008664648890905703564764443236853351470370813007014262412146824730568435033896978649534168416974557664786801425018543743173390823266770652040313312439193482873295094909190111907125414814121249271601043882748093319243867315101494993790131512114088656619278146603196157305328885340319190211354352402184329383622655796085400891255719448941442037415292409236808292505608251436433438262246058526933909421814164299174281246615763383044650392807202994487249800289962637032786039100338038785735020315067796330280579615672153894570876202646039603222954536565103977016231872621663882367228019998421024698131231066740738056900589152542625269475840944364993912242728978540458800564449728292190372635713681795740868227804300747955057914999734126689844478980534302678244249640376083945372590212612548543432381080380466943142846741976707697325679074697289803363586138472170902373945824331506745735322487601283123841505556277645180146691977093201851093872545860455358720789773880219440966041927064786327634371231323771652204411154463171798064934468105668503612302797738525662842917539469320140683756362802897205834622834359671728153485215127798962508302592662027186589115588026684518457697185175103517322759814655812252039562088547429319727953459230978139015892827182846080676507271952449692653143360319730500487462662915341641291799898905716991315612248523799312875659968070789305958599168298491701551021846497278803929228870655695054890194784114259333427307939321039767203285320437791971373942715555494223051414113614926704797251725135595818617025145889406888179279471149212717268587489825809752454116241349249210870044960587424255213024403484827187027742560278538369243819152492403910285424519404524160458593924851955821460217930532738577693634811469845953338313670469762281967954739935622766536746904194050800934792263533515159936059037530335797806345365491776529179474194722093285143625927235867211667224706319149628770071231705190983562026798626137649024846704842939494356044870469167655407888080467056285004679994885402254790944512606108564189224323516877235249261594238410574920950358210382418919820204804207371021931782039943261325876680145837691114260614875761138867720637000392226915708593218643521928757679579541981029761258052380527735892173265279495819788384400623277831218134181509824544766049830994791953838483805633633545613416413537670066793188593716576467616361971663520075448552258025051243621746451927952670252966767474775235967082561676760436021864371382838238524913795895871978582866529133083999797024962110208925361069605077972357297362154960024566979576708693458762314068829800183880167505534053265795977540298306172933390113753352186923100395366829902891231227268053338334034519884928412234591129655602656000545213221224872020886604312589309550661612571285150647872391775429277088477097413870545102768037731422921691850075872271195767435935595189546593597954114431469687034193802582712368730454613955826082155247432358254771219026845535770292679243094457607519504178018906588876851052713682707488006841704848171019121059230943490192902368339138452266381614352712911201295928889560379210096461762220290475897074967633238141855980258158520072717936451004299986151982024180914944995354347117883435030231610973647916573272631472362777016109963071625265415901614322235439663996319477752114310389415682340658353538416537943176880723277219302830405682942918607899765473230774760163857737063201715154540079127944268803787767528064945968937424854315708138958614379604812502584779156597456055129047289452346435497610629778815891149112912931284507937610090713236414142873317656275357469340821972829065502405258602862966633629412993971877350004186303646223629750485359274749658789128374968917524146103109946329084999028662197441639421996776655366677081464594222134172679758505362724164345645111356956337869439775516739699469299655501442948267620740648915321858820171103124391288894829775626217847176829947844096103929203174894532972319753102242116667273518805045709665097087150145928135721352960410212663848329038604208777725191529684318596468229976719578789669775017524431976182560676530844544663451902620221357682882308882545023604180926854322889250115172999980649698569558637611680481600948236104231621960367240721099860769707493787193399094991786632060635387717456295324535600296326407603281624932728382592198356102345652673070151973244030001838162682646465168110096446714079091324039271986661243868918369058240736310969128856660764669909981726951366965941450206692577279909575942348462462981716898547419437512835936326429217585742401032309088479456894915673471321539576066533285941811175346681305478018458399809494928306391909893812291809437720649559209222175556740174722702769721467628259630721263443115111265037413894972561975963565017079520693442602429231179801558208605148920109988228913665929688676670145357268040952336654869734724248732882098317519139716628319782980486688643512160683572660640330013216059339717372538612278363608347802160958236318665037235372341244802576145491218233896839042655873912849456132027578920994194074180025778877047902067685903651433392524569844265060741495300457070125039481283551670928633063388570835708007965626030807176236565306532736256841968348416618766068668095204694977645098475153317302627620142751324556213994385111671445791511032527222121076893804328857794923095233456841999363189611090219590032617766292255686680591112369158210020741317530560626687310351923441323192114918016422286913461903518649990077083844404428489126252020881888747302711847460547897183890788345146082662671555211166402975262984188421116665745007853488218534810317143718774525255614273985423128679230589052558126866470748918722857467587904005975039796845029049925451462849812443844006626554289914436181473937688395913615112974501295662247967136935668717635368674071193414643094993879413228744008310524372470172563063646424998265375697095593220021235855341029321699599179441131873021168468823809150126504604780114477469057011987380171546540673466700993658878269334120283816538939943836074306055316457995549638181197761607486796935645171876876187573143036534711595456267684672413856068888612699246595031842520756773171970232115825051608507776715992524438029196229231312748510157194829197188705473660463775517636691136438305512305800428302210926867104697831128103902199691230892326099250622017259850439941132446741997787238512750558636186966940283771097613389199645166916897924702209811185309271076387372599681566315931563183129165511811645551505112807508112208969537594205727542800063387932356086485210429525139462295423730236537285762660379848842319646872569335366863722803427626853825386068487836377130816774488612028029186542074552732396913803864030511403519644357053019490769154170807741337666327323287874185659119226577974757314499225715332357177780084350457976159187536082324824028534944965863057541385955450400748119084911668244918888698316905575613841914293774517337421496187036997955722722088263911767543854966144256115113902679434484148287647919786039804966137106986122458793217895521379243447688363755343107895586563808455302785336580617192626509693225743931071342710619869550168499811098648461503839315383869555210273304178609097015942673413735744199333357348185432616549013944662287909331217534728853778397434938577396663148832640855416086228247241942373036563541456715326581612780304270787299748464935856205607151916830438130260711577768000050861820458740550627027617258191130419521340994421308604543359186560086342253179896327333822323077901655535771185795326302736347512179274302942541178053065572581333958083121054108399873326789446206872789109696487282426967789074519502667944774915626895925661493020201315116602013968627142528006871049736337978315090120372425824981104084398359594671695351375881304248519173193088566603419620016095797039854706271757354392433687171818031652330155293939216785332099738460655309057249914540397857475984737842145076140294397364468859474889666284832087347886575128485631927012751823031271044565534405994529227861358624706081034653477887374273467139471454559237984822377545834251350628517547819030783844309861126372601737953961543991546382604768549772252996786407647508658949678324186554011806711392014609109528513976999626817428422043117628190677043071517667954487614059324716955623060059889999354577320065174503808432357342752409567399705736931635749380725033977910299582059660918313508389177510534899643957844455820204798807851434042997442534207502530175698231031671789095634474284009815821619602974988307505507134267608811952878175757670817711037513304050258927636722856451811787615027687629108296644556271277366187004342535972673114471525697041653410681939567223659864451274598706494853029673270698616368231003113292910136585608198593615913865775268689297905275160926740002445847148981537104881474981620870534310530195643802353319838205252034164686752341056809174898408863192786908823131418479688185866351824713636948202045230749225604713449628574676356105156203171098502623433369284231428477903382576973300890185587801777609631175538584102369379638019497209095178111900125880063531878438050868478974942899182089510597790469558122132579252737393608488364954926460746267263990756567998472441009266220599336772090730601738692526127316650166419953989535175565444566056461082584298523109370910175973296964641122543492914695299386889877371699815795562843751966410236590075496841609708045043711276311694482196997045708597919208760168357671503582381049294688406632446039016387927617236369039660136077598439236391859559925192259387018494849946845423791178320785142030669140078464497349033850836826865903951527465459756766400444638575360734644153599397738788742116646173238228470368526420447379332578846863446272946793945544033404008684487474786593347284152863443078331779593742363041756125377393648508453967336423244121992898727859448535845380027203205956511813942832441438109625189904314677184168308643412920491873265935545567902792079068200386446583565976640410694734691046242182012899042560208914090203676861130269087366587333506126323784188332603005591627154038571190678124062128947530847758836019403434393199095827838037564489886247902757134982256054591393110353731775843678584180828174458069199127089108353922728992702303464501869703339130685003239017489520400310576774063782087433675828568323121249430916062114547144429300806560592215758037379585915607157832272746701928693199623906329855738917341447080186657494972125599803891769636585407478538810316216610444753119390950251978790005631219570775547475449932021594996743544060190019671096844808446546559624031317629873400030465412286516377957108023572045852201258894232647188862966464815256650886685703216316179669759383418134312638616159202848226068751679132715191033144842596057898209350147576765772906165647618401162174924074359187071365796620541114166424126105193070058458601744599881166864882188027975465649158481436928975263916171708328646268844853247999377054691869508252431159119934460076545397192787488508274889768481645242089620294857248445542440731358511133165715669292593099708221898865663503408782737022286020811800138936004416710355531308215755363391346730081373387421614604337782470931333689371217217910831745810627253672796573212343861073844536512310894843962300575245007292934451619297190503114989540255864457518746082148139470164542725664760255524514614922599717059431116478421919197368603738473486260651496699445549513333436315903558598011747660146818242596102414180323087748158475519642607545783277198796051562314216332813649821455931447939079939016871969219336079669919588113539042061991314559590380286866968448882058206493192535695238404188671643737864110836685793921830030695671454044955851448455946501098918819541780503455009484095329316296837283906404999792790886234729388682207591573942442904819634134650611426401270699398227327613445028680044541026432299488913327804964909620356378557002224016709100978210584611432872895382655331268478866071815544795650394904801154233524891828420418615251401883004286970694466819430118529624569640961214495996484319001076190408326547879502370576659380136763623609002537248877398207683300372052028419162911945939814316758627475210547434620976008221908496854506703532813566374448656618802307059381809877602685765068491685610511509743071690332471090849706710725652751746614146917407714856083547898072686061997327383850237884779695184100673499725361047789154231349593043600562807111588111432331305651880810255184950247566556119395164934400252731499664013242694700518831581532135285158704605301668613830643146318503510589534061723929096871885710446627545107210620329683029915734461045440103342161433715455449213773484065006285380842154493796159558614169235637829047161391430293168562540954891068319889072119758945289135060128086613470267433699001372508603156346101107331750892735371998622715459491965644673372733880851343423731838004421866195374863022394218865008543681497378624371464919777059335136582905023848526505575801972367696961674506711980136030248379038569882791156766769824231754842667698371384807397564774970448908574228983133445157471239702972418993898433157914738424534929001217675508688833589850509572868904640296277727243376662447521027972209955832621569336727667287564611398891363730239271425405938880576471152103523690699673417324997117264095191944193999833623381778282931134981594918772718523407644285044112906983698288305461894550850698379071337417055088125694314113685516866780663885693724064877156762041879602809245805495041876273254309989697009106962074873255536736420720852015611360641584458027895905074272369364900052014323344326779199815338187711176743230557833868713618939123951551424887232819042352278093866259009655890579220303908592161132793245129263693595465811969592358355071853643990641314679982849806125513561056374994294950559418390568812708435995624266512772865750118176270174639518727083813015152627220988082256952468652232486178410711973023400034931882191831145910202035194298122698698907836284043406436199813470816698939780512572418791933693026200276784950437981032537448534228496038661983993030718958585331443689787365511496454710129371319644063561376381064120300258037042826256142896453454418204283940875431379565827559578984255643126898373825228954236368013666906705737366478841495961000642365582907362103512053631622858865578215752570767131331504169527224970293786373943056101245677259530906332289898928733146720536067528662229935290369552365572034017897033331219993976001374707856978964623288187104419469108968324298136811378099955684155663937219888174375765510078569871517670261506499306924339113888520613371278524117565086018678505386008510313957980261672357129669028867031209942524998181185866635804260894492221955126363144886458251052876130117581595189372787190493749997465902313828613280929701753043705244343148176523890062860002071947608387427657887761171835455117782851135257479216447801409165316326938772744087795661165941199885640962621271992815810700934450045106650919677378198471546238761886348367414253084855279191656536782886897260766295185602267522183080439793294132553958437267957723563482052399526115671388344364889456480222850638087021767774776798231084203288336986579414029243309725644226390705624441690076997327337447075391630906940084672897213649573812274852225062590733907662236866475988288651449581279785281055951297507274262525824394846844430012186256959524936176653725782239288239299193401044140453051066171870642460105665615109880748919604735720035662893126227496094139705213529174350342341588673958111677398175058079523093172111426689153192765787515334448527166946451601912475713110837402614197936532784945723767532596850604401954459505626048576330641578396317469070355409440035015235334665455373277209116931124016794079847545591484852370301276062407979005227924319586077112206300152722491696504743275051872967343254330252691224990725636162309560398194167951001855449161060045651374850264272642049391137924386632730757473638095950011962154828519826252019164381238085298117984557202855895788646171358593676056561917999325022061478587226573326924903746228934563987274869152350356017281897132000679900011388618050583428875765461113700964355937157509799724765912139918292892451656594199720277357179107918538880923762713287991561061608022469389647586719897463792253208599996903492411497886516817194918974809198569847693224560640151149318169475016849236457967287752987552824801847094755598400066672351228841835308612967796201116874626254005690340000775842582673161011710448605727053785538415847790807487143433417426032126262176448759490224135286079563627403574362684114119616050484282444612052605565896977885013318590666987506927445228539287253090008615943853214903631420345472361372108672669100734727764132678076178173714722762549084734256965705680548886136301500161582539044583818622621006208030270910617752640126033908358459176555506238861871940011624918774048187484149393380334496598183070608550222395172383938678806440444292051373615274394313384137381875190171146232052677010505835111492116472420888043496794210650867699946914843447604742688873019756773274047445985077635766235814239832410062766478809620644353572718551449582418696444190824841279610648679879488254483528506633212014911795316383636391556511735012816833343785737391604152442264060485358492572956087735694812530268254568628937979085267551540842331229903829062768375797745502493030606748863322939654253896185697643936951249825740129085822044037936666650842298971220903498754777585270613799479993543051951217747358636415200334059841443826298562866851803455225704484758076848163659824214636930604668168389497130417017842280497553100629675287417593370169686372261575072418144339958407187944319494534942852629880460892663235339681718727785708404324731248092238009988917247599002365445163583296186362312810391376866737966434914628959752533956646762882086144446063682642917878209939187618531288971754075364123530417720905327661853041694608607137999735038801514982898221639004557632891946258464726837257809866122338734929763256153881714938351009968777022987228138151474855951826556492434501997834138388380581356432503206719702183125979941866678156897281053243806395145897380747723241743225403821809705808975538786398380149112992499531069403138361733524035710137595957600699207578560381685838768616941702135580017703830688117201201780381717156763031627340988608497163784730831132192163434107402626741233153427717688245574774420502009333099416229299211698507087104728705652726919302003168652676074972442225672201729027801852693468436178614271104914183721560328771454391957864460746897902957501163940140957269224911979104841733201567396009210485597284118929810770084573736609188541344045604172664169920199829755604461772526038013130383375696147419472170839921681992309178624412896474304073181384495602928364839747579882176070862466247411105627291132900559180986915709448278954445074677190173414757878690926564313116667124248439289960912105571876530926245800864512921243303874753107135749494407194478665665337617222707417221946739586547700483630833946093764310445722878642636731339740228853699362055836906929144719011198837365271988866696892876016044618238154337521756573577450075365831746051588608820059549856564359360080067992352054999142642645531835998465727274931664297248134475158662950208159014806527654307639544630723540757256448181436282544648897333241205596475951883298975646589971618802054183603091772826748043964720962520128804071616408619231931563416369881800827435204477455085612502162065399835064714987974986239427658720257647294852236887706745271806587007544312621138764609590773711481409106224971221835901347907756531207972207988135284245705305750432820273738212677044493573643097322745187972571016209875090897723064370814630797890348633073157959807900558951074156348791403946340036924222863287346458633566083823799882203044160404099531614757334288474779157816878960875830128916855309113629699346060792824014602866168295627718000061985422606063766988535660278789362222476434421207031613500383188375029783441489310240784576232981681395567556638546874465625248788633380958335588474744677255233084019112438529858003738183724897606842842823739666675539996405698008884889820489263077552138757656966549115187879030401961626693783196972336077020679389500325643174286467716002435645757012668488253239464563048418618960485262343730240054071352146524754791983100233539495003577563351337673192536542995366199189580480315155084988196826336133571277241257087686213300842675345975724946046979032570678481397143103945681072100461379255291772888589620288140822715990155005109416920300463861846706328302412966106668342820100571962594048289203128951361984066181457464858085269651603835114919542020105779792171758401066612731706762651745677230001240175614383580008163094866410029466997636806326785501037494574956382764557938891018358487592276215509074189251139745362746213293086763708521686372360839929826695855265180265067234428603452715742489690568545045514631200322909285074459063172870414485830778375468298215537758211508571678386392894005199256474952395056648749867938280222518849228927324937074924008464351764282662396489360325014104573259160712610709543250703184503893683806179812144987745360289822156232222337719225591507864314397575525042399394434171521482332661281613321560037528798426774041881624413899939019259006040612646286392693739714709755206370434624341005315736126219757142459979124619023783807417945003956173267796470021405812521022023598119370228355451495760364118497030442496430366993625341456634554601390030939698942137199366999880834396709106278619573289037311442213595822352019201794636532628978416736027475810590914229460165638703337365069628409551216003471722642613711444794664374165776573690975999372521652429987774324503266752161103462952095181742395932277754947141078924400732778410194253511492416512857612228822513487143373977979398511076401869701459743674783652803588878705766743875472975854755602030389110752049615441933877073610932709308547612066862394059902908832055713957828496859071450506265873962973900075684432263146434655179720526009448531196599787092192406511286980420435652925901226432557762232333238214082620898864806806199410673537912756056369031623072889388975747250773354102030349469443103850765761668916328316680668885416842400168502542747020173679602237270690454913317066712559257374907973480448872675628008058449530987663799440790036409351635656565819178858612108101178156134627283277028167430352437893497501659036402955835082077658778109878036348505417635997744182837888016984918569250085841876853022326497494552433301292283011790381759008810825837487833573803589130369345352078714144595133652546214922771465101992997885743227791365103885656759973825907096266017859408329626211025388436170109190371499985797828353953425300871539828201012630543293228877619972778527653910329294492338111780242881452890487570441948585136151532852909983853878759098092714795467584229593875521817277312436492039620925020475184229313902572061751234526310206391731743188676753983310777540122669472182668237892155486239185816735593049151984257322285737705181554844728777151982287682577530031346631403137222197453796881527890201017122643007778263083063547928629357846182017664917602661715770347478764301250584058278375724094613202061371715354106139598288296843336473731875398303354240851048545883596355278302133574626087302106297556503203171300846410327674138807306779481458987439480361534892399748073469900244288715894075058653820539198444606013440246791669274791960901831221768185716394744082260276387790519540119831639799693549549176034723205881072321895331133504075679057425988198493168947374780948174604639327163362040394805338390027248940502595982773217365704537750195103814251796652277870815540127974334712144378996180273759644619634073870833633503513282590115990449966497319881286707297792843012932520806385059134548096536586108309416033708250555829662499711023142629402620002209507117173298287429398895225469601527106725145553819063452272392223032429988595714419974226389154899929680988335066157199790057738852618381658447881500553795466636371802144953430633752208443053845528152069442067646508719165961711096107294299967299021355599499393811096911861058558522203572986634098751891241728852107880357734754810334059658292389103918134513933846499389663141988233733254773691520342544265155231373788535293186177456181239935673102434362114187623755919493205293130634294809779509876320354473811598416288539358105376773387580998974203048793744539612133595545572919561198996811972989376441338196675047499653165751310789163387720553758979385599994161144516480018339531585026599230900055876993237901789590319513103323111330879585737938596173694742670409873619605498315267042788202034350991137401906858730515185464427006776551088958404887323698225049381163333252432164739127373702759449304682925732412908565628779571536028168094716790262225597998984292276254347157965665198548769470752373623080525794836065760980084833398850935655508531201096662872334565496586732702160384178476956316522580041105237935031804707432339775081584944089651982786657262302049969090497203994488240374915115989523661374536897371659704092309725816232624073188776334602086218912865105189485858217550160528869525522312469422385840186990635222545757220621233493425096214633301037652509090732252363276638198582139154345142776932635555335065441107966579011834004221154246939257920499086157898384013253625889170499614834062682325138971612956818073204760090198384410858191306694141326869552559157987110186390120993479140641138040009673817200760764479214088657062158542091451344853370827391893211510059536998841592649978382017489891546308531809178109116739605129345388740365584255369406087240062116522090341977745334363636223900556569576128084341211981152855466124212710110469572468896035700822300771822309279863609818261155717370635490959110932046851654881100280570620453306834890694092059402513072204844512534247256175715973534756096658543492169945871651863240656005011607914537246007816430908050017844679850460111851142085298548580701402513310780598817876550758030208563274491992514072070658231903226542673387491314498536929502782617045934557515349823066383131718282862705728869200211603798700723326523522168616697825409185150508932166494594823169127465850122939600891835429479670128156175969460176219552109388555274484529386912930590368317515930360658332113675270454892219950997085037108495326342747087353283766145656793312258077144258774519729328274804799988000607177698197583776500817558028517632742325977743901983194739703240940191419400100860429674085402478324709212309279038981363985601402393793952887809635030121240051781068321838449338779790676835700428756858893975341336474169215713054390151947776925779594344283913578556066260581352320694959572053484498562920234640385541906712331107025489962855775677961586563800885698960339285745867129315872372141882084408367470819964873281001886381777846539650201545559743763806866251778527619944994521003702569519651731213330110470856023350821919502583431194070029532924679032931984581359286558974398303190781724203018575972299784440109286510700843985263626385542895744808942773090394503602548082131232029350735151524825850939368637912150817086899591771925319854794183356976423877214597563342095506136063306992937230340043725532578727823603369468974072184074001969278963040135438142505578836365418197070043037695365129118959087430945129391487031440764131643977624305369570300599019476075108357057457169357709074324568994906169578959734402061336515978609607176108558427444658377304377779633244770566875844867007675494171185797580268165816553377608726859867402627609248121638398885966357129611666346014556639485488447317161523183867748947668569596786212536681635826506751289220059005225657314191987618005441732867341249776758247079778350526035769780723327945964532359909588954562888639644006130364664474103086997516673849010802626260949400030150758483038886856157065735390230973153932677531544072440163742228982558966774892985895645254668585532064648075543338651806447943484325348025519920803170750075956124274250506706331197127275889997808126443251927531390548937368658926170365740578148536618326561858415380983547317842773160817315065995411745251437098702183884738086776357955704994708772260875164517095516306410265007836853178766773363502157937128847936195074499181625010347910638253496900836295808912597956698635351270261673174548549946180418385388019524764768341501334363590550070668734316912292069753862521445663760948535512905658215714970770944816202605681037629870160883331446388635270703575455554632701467553701371859784397904622067959429937324882533392584515728733894326667839495844929920008621026846612371732438385329624808929768847860133622570229335004747938773716172808474064153957755572867094555121711646335325149185070375346211172091618998207995814102026582368087188286616692426727396973798739500413942723326733160104815062616859542174154090219704146846400900424002372391343330195823829484207158905855868120740055451911185345941295017886838102751334414627161573102923607433090320179277671610300643404355071320574547978172804643689713658061727073583799926232447928084807271480907105164160218803436772120916769846640006994892963014681209474325126352918343633822216170465015417575085712486667049031156630330248483295378845977705768845568982648659663082815675862423982174439645808820112312246597885044363608470663062632140597054092953087086634469465946364094000250344434190141758451080479200496243682126594720025858320749262454548472214801242932157241717797038589730918598505976487226579287923250316024948190901401304012608064587197076789829169377403013728521603591052565993728476242775788920321106858821270793558317193244979487159374469040456731547296545636696152835462889704201126726550735885473876552519202458259370855974152917520573990482582748261231564253145403564832850020113348187528336104912473815636541884202140248160827553653248163862728074016227576688211927340962194647943125651762646405867075334227540158784523709504441841682077208210037707543953619829061705316717212951997670769766001476003988883529051111336500034548532138730658436632032788109588059338436946595300132823308606857650210950869313632788131147573286166940638908707474699361095836556774320723948569214625062856322652747219633686108745760144265940774906212803165926233533226011218180236185016611625523961907097487284385734135267709553297648456844151792080546174235283293831824081647853694046458244750892747506381932240097648014450581709585472254196496165678673010497168116237181173964516494358405540656805338303434973088145781479315665484040157762004023030663286923226017382341556666004390495959885588055717528727095726333953067717518713909923106201957282828237613058186994182890325114572043224398170727026830168515629307773397070490693073291061926304872146426003894968507336378790346409207157023659220517630383995915353491810896897869759941510680761967825409997665830114388832210357721149280475838683607294360492974646639658066162584370849296688910081524940575361873736805946385733290371560602685338342359449009343163503218503856308622211026636615996875890367310956820408586706308600985326737640401760124444185086558917114365161715585372863522957946829682328397726738052202085216855923195457961085199677324328152860857378234306707206812755387390004067475819352631122147631178429983946305053265601956040146265541266330332273165299100428982026349082055392032306495874795329920091212589129593985806758083238581085373679397043987210626841560405679853254767071099589192596460071658724171178690170771173887809346357992575637893325032918782625268560913574618282583856654520676887278488369047485429968229376515858019960207954674501396683330605712952228592625756916867558029518040454182995940336550018117981447884152908554506498243344690683660256266838014495457347217752918079078599075896253305099653866984753219428182738209718805033174737830037603954586260437328372897484310479776919437917505105626002824169429325000514426561492878762426376250246776860384864750763047817976336562984717987907231202269866186371536794140740669450522789489660651824210260902260947650923214839907194629921975757345227905229620115775478448022481396152066308336597676184048602092664044534425763161140093050019087552507818093856449394512576028212102853106512766136420152096705396424026612477082256697618642692436984165138216503452538352658022543453396310609099117679695319842150162535529516160411535370763529500056172455728092847490501223426918592085180571264133618748587616589255147708956693501272498801040184014685963785736701978499317714751961139789102375468971440261933073076579815869284022240323457874755599173701521481609789158202550594320866409196095680916446658318574076064106155847720547235671543100260820690487510173224644478184200580254838656604484297669010116001347637362245282730599802393622988874818268481094285454619300017539203570418462387005940128940215888302838901678675915399695904027017594334980740295582654855863203533177569641343391346121175619660776676713989791952641812285506981893784327381805050485027585753454375160154372205144593432881438642592828468499968800367487288983819124046085854673304748491670868227084318884771681716915664011219934940294879195673634330243263620600016567248722184730965528038819085019587550569352742021663564730893704158083116374636692133517413998042554465211680776713118202589591510567969634304765983262260908827010400236298948114458057749609038451960037457687736750295604029096605848849952867833771927682127198229223692925479817279486754341859358287544596478983583312772855463623198576791373389378583595739873303864066569263313988591839359808738526310354650748517831115684571453607195558187771958789274149493061599675689978890166230232050785079606629100957432340628356608999275031430391680699896243736269514143394103641085609250585777506638332541803557173446715907106669052202835059595761475104851301806896644559205836075981408906118696117725460871150590406458925247623228574072634330095316004411176059531602426630006028881441804521540530395621033348950678672518734610359888772127404343329485640269873217056126087380320169160269549184419497871291870209669298368446067351497303247783451688069063374018391089110973562873063840629959588626732547498253666050068728759928959744601496546713004989091442864326286746855967725315525912886847729520275701437774687912755442671919024948782819885569293713782418578450541920459004963812231113948298308885886569668650917272338770939018906956475069025584995791961063098408558351400616953024932754093769398273657686479510127462468699894389221403706461614677443781296033594504291953683403747612018433802042349224980410835993066742891439535918800999032765281718179108736946517902598149597430290757789861238453419707223019227284088677293753605914777957463636013921921376744748381242550380253316651003845969888599428298640114067642559386778693797066668180019329783312780300539380722092804069494974085901742605140669815275625030201918137853642648454329592663097567628556069192535128515686385701532127051621301428008687852852181973219237617322410074132105736769525322472372361487893264648711617619874216093344106649580420807523646778201320208702083186200552592283428911620316297313736033031104276400319036505344045260966763947291859976652963266384595191139363220813408577279587979948816200274463113237117805139556935313285179041894510465006509240575664468730143281484938536686693662812822531644541447559775352964014203872408931099443772138191317054099606236213837923284193946045698326599649684991784598287994467040637106567465588345719882216601932268993550131021079376585996025122505526831257454639739646944012001217199948450280511976503978674071776731562267457336356984060269865009322266038386928785608043627688079671729839578922100503412125542433694655846559073180132762354946467421052394233830412877377733625895655456121290770941848019965171035472723361863341854779920285400729912602351254747400940144053938443050321938571430989862219591090117621769093630231673925027130283639944651967901912638237564415425698153595502350797489768540918531982139441014554622554722589051392480459647774978373471855213738113280774299287638886472830778473737070357815295613883513361532185942487058094089768757288383604424939694232962980659691596311502412377564505098454867242171913239070043554256521886864290490300868758182813477289295011576710069064963231045130884953444365488727413860761246815110060605552962126634136413720420924216915208991078259916403497638727338870041210791287642377237949377661465381280037088051431502558390202276754166142190902973444959094764674694998638937708143740852148659960973326114928218753486490085786339717782499203299165511962318034361548253138646160122311784476413599679694932751573275661509777691263966649453820989502905107343943548868659527349898529182184059655871716064959510265381623069805460619342177709879660789624517486644493484430247006504760366878268185086798934839639801204051002980581268475364785173894684429348287610906254707609196175729321716074074321867743829497375826267779428649609989841701523143697713048567753851639964534053812994079333073833472658743247827645850272511516156673684616164954134245201473943825013896467392376387889855581329193360815448549472616204627994630151775031910665273080311274623735871279665168417753649880516737945714459391830192546131637724257966316885518731495287566445903266585188158243124538335480336886389595752817425175608927339249118204756957391463744260098918680463596133276899288107131865551466042348785926207432192049931045312309393848284469938526575413219225618118735103818651323217531411264786932188387487967678733120172493639509328284299617250030408898880273805429521734911828801978590166849833960878855638117142353090571486856602382754390483660395772262674089916531835840050313328152667553509261347787760380067138711713798097822730631220388118022777287567327446038116638567250159563489429742169310413840442798161344645386039207981803210773111298192351020019013157673322158740090529444974178614682446908873895101096779897399512387062673487103525877780003943896356905698731514505087582314460726424714235639650916772793127011255371397247318818397300925136187466209483375523091853180229814638062381389458740322848648168558941786667283456821809373767073974886145648032013789537698923062234766954425521284433072129551009536960854049570188656329192635514707551945082767422353719423739758954332607074684075613227259329760280271674247990350202268616960942985096385003229132425188499270983346218373178262801178545047865712926997884550670045140477364578290178086919731001732441040479925200459168024982537204522256416102111764218123709268722676100200878358411463494061938835602562543832487983216388274871478802637134087725843105741376446759227892632352789520434872220426153606043564830859902851974082412846500754687399881535271355436391527897700612620783311847704377994918296607629135356699881936646474533526680239449248348006192586411241988371400782593630141901046630175113602924633247967675452049714086371803557005431107937075774520699702061201633860155627135029607615726837231201638736259047735769039654266552373219819706549879033403291776592269800426367188680274105698044045505560772884070000536107709497774772966046927497919902086872012566141603970135000202979303910398547873167329608484763316175561238428487135385475167576594820901804177411718508107614790773930172359274909865497713032848908214991423621841421444375408717980133606669060200746552782248569658027708105050234738933580142104947292015531074735356846367324328998401727899709168131941374444412696839303131716105667206038741560208785255724849388243394404527911235243337697859674154148350817741524568221476510907423536903994428437474512414119488586039402432198680986829927044390927947520599421335511923639732540653035188088530637583104314959440568485065312105066682020026487491975367890900255011944372551864607728476368123382748092631835855959032833296228111535515021464702055407803791205677852341459442241324970429735234298072847004543890468585106715761890166871961463701642089062976307966683068840165511375159622384472499214698309578467181450989186972032014957304488314671870556342257406560006168048212115694692493659830101029678490088182407877846501543836628248521607578114606288787547521689253722818901695001996539434044309487723857934689696781694529638179647136794821070583245250395516803424072501294054933465575517660485927101942982180101883782836327320407599686878722211139853198331739669615756504737269981264636085471862807798384313254154098278488786793876056115127246450336537213100138754828704873379765543299968535571934482185382834275833629172897083118255290822924128627907383434640038439870114158582006478154424642773020196928026978945530434092407403218705574437914048730660043671869729499800068934616737859399259647602101679266583171894575750445690927151817968068235263346679376413627145227623012498682825135793358040377350762942556269245097532701569741189500653895740205010781191237275722279352000671207501314666589795578567998632858338486978106945433921109612868822546847568096489446840343629651261545648390756924781035493332755019810487514690733789604131450504750465634149101391495565028537231955612383719880226150466406852854087389341594095829166317725353460132097122539158259920693849653575283647848618828527275833481145968571799835961883967037638079061082347132457308154934258846036662282822517916459480806177071867168950895295851004055084421436782097220548458823174950329509306868861452914874633975545372009950317931724113927662397874739818717233817287421830235384888877948472458440302066299437808060120000631982711123479801100745043110307265264420162593464529789417666867922213590326981285587562375059315060716250157268872061652491053247805742018234393203130465235048866621326479840840826847962033456610489939518151300610479562843546462879218102178508589456309522469430544512424351356239138820881549994482202382811549395417637378068615154140329688219421220953749704810857065806846253239198790973429385596726600633244256257574066666720459825977607420345202732391769895607682765855340119356299839170059964160809094117461426071973222406583103529259004551704117136733340919498486879054750007305781693738499917828276098224915650872002886654999349800710547644501097791737813125836424791797572201299363611361902883733129939098507218237405166908834975521868003854010461652232665280789847665228335416121647291702327802933121189013692017012163158474753520394705526847793820793703641407960754496830736633794093622029770962328360306038220182538576738317902354679286810213621962648436088557785656578574712264255957784621554141899272324242957191913897068995682448175477024102533206583456904761516785870411513537994956923105209059266363156860012511753259267134624225521166332620964848547171895074820653604393478601905090618330586671493046158853503794941871645137792201927275855826450966041631726242144879310348093742300172806963827513871940702841447668095778195242787032489148670038115737928387270132038295746883596508661479047543846119491604054628853072622461455444322054628841480670857155337032787218714596600486071583698207933853263617786211682776718758311428953362817954865105738513260229716272391904450285616143426625751893222850740866421060348977294904739050778174771345004525660309546514224394913681815283427261822644521303766077448443151385390950514860192340604258812987012731117137774777651105834445798792533087209803582117390334881159627399054945597839193663722197652223838211848247012102124985427870872701549621501969361083596625538234238786510674851975105557500724850233623299881531494314345955482752757271010254568836167778743070792636291175991753203821582241978567300290405058500882677865074594607154581819379797512575096744577674236496654683763032855833627638140985665255654544900703329195663707459514958915621772790997809495858280112730323345296829206993672980354474125749975745207483621206850240436117772129756562199997651320904456768258096978928759877393449686383587683777176005901146053974602612895736299695979924736023486011646886178874651027735735896712940618913989957905822111536310101109084681941245765797721267320267539911575722685607574772326717028356614296481986814377283905677226013057577510872711313501221083434574535686821800968932450068825793902570226357176218495195864202910198681125483161823437432742111158394700260610656634105248323391184092970102158467522917785713220149043462975267238259820105011290353893377134192178967203336383394855411670775992220798011660851456791770127825484581612775100325377303177505387208483463735552902996662721972491471377163609226903299638763575963071096906956105190021521022787932249379412109353399345382557152103866148877792301666527374244631604611104173118345768006752925873253741992120668683462823338277846534369588965054865903952405324254416658121028204744066620595112632845572906079516403051318142765792684625769976223886977370101132657075100657665743491386804682256682321641028760962096483217797098757734472328330140792411095433348521305299810164840425399931762048150245600874955658375531592309193507848695143561127026767598487625979475876141797740955887184506513219312463653293202371836640292169354624015958915629940526731246080456573780889419587766896158198608965766651220031570653369782339997389090106907176355646683153031687972432026889606155213288629234844105407783703496421945886185545264781444111485764054483926235865940487814496664147096248468540202998295402216265646146504730730189521165732935415322713119452380431837530344003120450369214597243819062276137717066496648455363595235108783099261812778134168156198010025832952877254993715228746384160883771161696320937528622263348252467506802441780799952515847938577486534431336966065284385249826039560260835758299860669421464620095808003192842274289421522765393433612336474418663313824222216466264814922668542137589511833966453389762733500068721672004200772634344732457141463527192972875170265185619726413502558837622190274749686497517522858634002781270936589994742303516427805846866375226819464672104779812154045568034393612362325833037179402209776288501591031324716517100262140542251271197831193375528164005467233760245489098359950178792093612800444462694924433538647913473106594854286661193981637465728934174615253024423578370578438280678998879874660459477767050304782398665672969723993634090257571471167874905815806229399271081194034773451884582597131611948779720364622202608634059538935464870649564952571458620362216655193407034665458793131298375029022405738525049922330222427613603196737963857331721865526326932386128210803561392678330430610899531155904895426837945789883389579918876988587517050387498904028785093029198338183329154344850305208307466119237786298712828673430189148072071289706301941151833265376273932242569235030415334305765449663856285529987037887237651753849452247332788727479119945578535661993873912658276585234102352375182964462572429192649371442081684793908889763362400563345051539643460098726641076285603244960156447742313098878075685858662280556874541884974139384681806339322946817060615345753621861300237440231113397892910447445434654545080801428215552282379268172960772694980234551099740904305053634639727196433809892312357709316844718227167810317093930057008222477558085715105871207103688727685978937469915085595105429913271066405209590508288891919809593887059208693165325989696502961239256290365694368363993012726982242293838182518043306240068728202477915610307739906234778022329225242000906739301071436867969040878970207225945824056168191957120630013736742028282567227477755727298176102030743843212307313446608306820500244579781037981729801415368053523595948869970634970189029306248987589589356686978421632946178309632261457284868645738529579009637160951888077908624637889004931869164989606040146592756635481250894467224265326135222468390449302292319282045125237590350654430764060498852157439947005316708197148402898653457134559513247720407495141762367129525469564802872290035144910940157909181997316802658024063951395343779731588700161904684583893843747310635180461484957092155009388690878415099571794688139347365744132228746374614485307533614865752130992194091637059372147364689807769018288642997243600406101612978602480209914872742259695095476114250411498240483736364922372001224282858358936545916010749559662517272034719148639805569275501233059720355826405007384671119503028539365145481801558723669348673226397112601527314845965314998217318148176216511264817804332986652376198863275833150880194548254923223787532007975834275834980386767746225254153826981187621075044205582892847871883799314865446385055883131586154499526049010521366431806990726033962568564277391356044129145088892698601163162186019257994385274388120839977978675662830807175908626455687475371767125665928111114278212407959118815249402488324056348072948603496506014258691340747942455600641779843287074845472214708357760162021538842511905170246612685402071435156928259765986250928251153582805449728341051664466346174586087684795408709592564750960000659212266148142734839285859905485367096932530444486169454626960307851453461190009144366858094061919500835623246046037394775757947562793416405268773217883141046779432709575297615596850087511251017268641104122484492574272303151407625897250888017954660771867592515532509234892982995069802900832857061769472798699936861231498564770633621901700395938045210976401947062865426757589301835407865150880425762889576410902757776377012346218735689825855482865084095515398144346953986997768312136013795461483028061097472538611340909026521529334233294652976777545629904136955269251209717156669789059274905253675477324351711748385044787998613314779297917402962678530027308148810423221033870538043874169195045339383002961733776390418961035715271844908959451335231807553901511183144357823145174614256408614299264673221704522540987082741048848088974059558540240452416435808643676835829870746765713034400886690765378457107453698278021510374082181692016896506265017854866612504543505427695460233311738870038557114214756007647298782574494511300184307025844946372928969253679413866426098890308693553167906739209001459873638566090536041399182013173952616210398578402804803118728587336666019849410701075543424097754534737648484261119912069422957212070598534046952258585615895336917860332643038900901811473851012607297440941449663966729485192050190789657998244051121030197012797995727441738807563272980588384517582405735878919896024476096152531877103302782943174799133124648629794903478402980803036849229630569149273932718487509561031210020768884016711189455958950506769287755227448197584130612817791839791624219523668039085642002732806422598211231624123328121120619510503126195740100203616827911982686228063967060502809992156472312951538511702421557720416476927205032248942439727518030214504027474208100858253271047058862961699556241904861832733667460284169791666356713411244192273304757708583187482762861891297549100056696005884478630940929510041765912734447276688430287881434129308602924948993688638040206942396978195799204539835308770508931914760941271821837173919617013802602476393913475709275039977998828101532358843919863910158082969254440281500178936302618226825647371915231980368038070249553376465418866187335292023132384826535208737962902430989545277341357051702331392702738831069322341794790251251798650189242106545020004577802808291002952871892295224622337507467653526130633276324385068840484018045621566267146506131788106815529580791375755055199939082122667539847260843325512400010713620792579919832463630972005432660223670912844802982673820889205065854305565944275996000351170152890659269106218000383794142824318362294276573678533523943660155294787669872050626923408610648944533343759422763047326627261637623305791243805371623421684217087582915985309519585540332215428624361565644719288122777555858648521876819228173052109473558294688215754214944033224570637136828376207885248121893981430287358570322568171783042236180629763001976335631512550542004187350131522355898913452595090728922023870130115653643679865171501570791945153099641662645863381275826638447585716760525612012200705953150847614005323077988102060137517039390058919853065973324095656766694092595720201607393727479663618188270135183107268872952882762822402633446552865256079104084378860177512253435158465606831513895441802682645265853399930261004090310241588680082409758989382773831515252877251535059122513671213222339744718945034285092545740241646501366902558076139970894652100619078213590519756989888127299043638845347314602711215999836030382412372999180346529303295605094818359146816276729498803564576858365625484752376083995687673098432192054661255844849034021221404327060124921327852581427339149274801260875827018169481557995735182177109780721506775114065423959751005514357528443397994243660070149957833982568885770915963429621441725529197480389181338439427932259570669735520262687837695374123211853251365234737268671617803947997322911404589448358225391252786822603723215258167178263457313000960406512314558951577350371647611007465558108042097875580206921933803893348288177346797075712980629870235385746188102736827926162646913916328934765133772326999297559342392852433272455179656760213462474647615989674827918544351622292215163354939002679698160775534668533639194201188142754712111393895974364668595715548003081713646145420052222763246767963461092541479083413159064263975860418320665694746358424083084649517807906656482452052956631121073723359194146263543783009847972682827115300579823177504761263885218432672277183989194431896751123762869162452797186096327259628776433008961139728979014991917717595114224196256171569832161397868287787553556974295676637675519

The decimal expansion of \(2,996,863,034,895 · 2^{1,290,000} + 1\) is

1482768770993182204464136244402500833520621686714264319384487739014921651892992193677113233158077901107366672836985801761619288027743887340922464231442571470205417497955212347994373390433206793280276025905219477405683021424325938643514128559487930041441291943243470927933980415469807891116330924085470927563286088754072044740824702569660538679171471934614988160960553539244848288717389246674421293275304674209543617184321916701128185588041881494901150955153900347511825651993706454437453520759199822706006683409045695666594396750196633398128185804449271666005550189586475943232487924336522715294135130189847123366180039317572125273943502972123253898479349668302828083061842070349085026165261498374785408770734721502864894899351335436155316076402201156034591701555330472106117521603373486226649102951451288591207732543061421494500160683095568115729123629747668809931663140458914905344244715787001089333196096908872708061858056098499544555287277799342148401869154315045745921604083414408300226708374552415053943581918993360140195099487364441621936076888532210387951703917699038048793479065298321605886848766542057722966254964643496535271112339062800948431419342145399234919633489895961368102143190562713708766981132180181702663359563762686910033302303660906885279869537404397619358911825963848120594151959226420288123223542036259811355095570731515988562894747987875165040361603803979967331797641849834430942066896649275773420599847734767939511644545813527248689930562528771146956806543007087828408237164386885532768938435544431813761357642003760250301514112550443529949019248580143244136035742098832262825440446448444087448284929637184497953975698378702041051653903164404505499126135095052566834480477927620055612181433670432072594265933067935123892523248114610570874942837217666481290184841907159285939479210213046746316531052696115257578094426138462570985458475311371134565052954841545187601146183525322734747091550032228037398797830557796631270019642149894808203021911002437850536291431134934856684860737964128098122992932086794030960003220640234693828926273570605306439590285043727751539490189903712328860714825046918576289195679955280550599257360868650889674034576922504951229745862170897294515115280759641491490047795093994043123108373815458782593781861766644194551234392975712569861292916127999077074816868336823924928427724992155057547679162405746867609978985171843047239662458558986692023572015939663499793917482757072247854809344506355421535921892001464077498150085087478293471515380252514934913328495812957732263056301852765476061372945660858511562502452557537990491970854924492999330551298489225844108127993496142064712497143880266364347137987214972717611915299132321650578335932717711311926838821647372457523312557357328691181682631771325659613640153550109401596420861974647218618810572070242116498606664423798798636402322173764123978021119497529944249097865772620004309474611094802005912754443583730221455151796158441051776512481724279741776392953777385326223778789868982654391155879725027210785673760953588324789243650308608792934381448740666076184463401536661106622540790242791796801153714844867632883815790961125417443758940735157478516705903753420180417229550878244023860847035844893207441707997379680371291075090925140046686724009710143644130035038066093856650914546929608918450324333549960769898758870681364585487389937596120523395436765701285086303766917769995279422421055999473306011640393098668861138932766945952460210738568370542109069798767144397362989460506354417600164821692059677777380981141172562829893865932196554873317496009788026954324488101223382859069301960075614893654029816321043707352640340509683037899470111473255881878572860413617770156758430066972206384827693965071856595406718625242987265501069103820131167249862467474982638629130244962128239218469820267678775342413440553224171863663152124246507284475312390403388149753550275798965809056013402687486978922603379776192240927558107530360413976691084135911802608039398282861586539213636147998335173647535564693824665158015214284602546163752581595699946514865419547198585190652788325826253520977059489179188257072333238279204898106997709937979321420944779925417654901384843886429077555862825988932048146840450524862798708582783158834037648507294423988239735917298142698709772362905831309414439998817607945307426289902809513417294258931270105984968166030126216200521908278753147557176205037524587455019636469609549338913270851892491910042899686273294802667750014935252069556125191091099919091520873497394155863851180972970358436362729528026544131410302157315890147487925375650134134610477652971481432881289359414804847726211799505433745598449749301361633644773783503129185074824019059289125140858207282515022342021435072094746696861416360335926244440717501135664781920152578059636086306267906434952825797891579777346042067046105453526623933576609758065005815069065554606451828052147596438859288249034514929505983856321102683317295713234335005382132809120617327163391130310139565605489608679696144083937012805853575850782787417679449138004005155351840526852193892076654669000744781922957626649316794797966086340884943143293737826339628506841656376485975393590939948605132836367844404190642948257543489090253952158384047939067272844736416381404291051128744225301179286933124515606078831787213288197583642710936804039951142394971534330740383009721032103974563774379312412144622877689421515584552154592704039116264049200908843810187605237417839389362084109361686126031902638320411301521662288375936648905992122915681916148565832597528775247297824452548497670820186561922938967185396817073624016729058122186242998345085660946482014534382451662427062800911075050815306045598313084866795103120151019893315402693346444161127410163028621295569633373271513657568222874121270985933528147201063040924250137651833466640931133051016069290414953849674321485403583044628427122269118829308648987320159923663109909760508633033157926863314594498407168659728943487067105258550912731153481724898541442167401397648594613217002044508550884943641318821212004673551429622829793599241382619275976402903661184315950736950377625971758159944971980260801077431412398559149309402874493517763330030648768033470290841097536056092279257683600661142787473424467929797286412647864500648104895468505042602995802765443156652654886627233314347297852666193060945404124964781570764470065482090564946043318255178236206036160356202853893450401368059769671634398297293235274598288694356581418684693296306667196401560683585233871667510892844758071351105282853660789669466589307442278667471476402991557387129151024440836606757672485981492994816949466556544545908717982535570921962365507861692976129607263243153411733661631680541572937808214940488154970725528226473119556784878797404452448204474495446183446930240171696519922763740039403815639671583991849762327728775641221116986137992435294101678141887231916485341337746312923547344566569547266662618782512158082134794293204165358657193018642440303785954610793098223859907297274068896890399061843225357589754092352760951114412616912204236103531940733839957234288110368846501799043177363394926517420730278188260323066425095775529649100437578445116700966703557628007926383024673573928143300331280962931142315015056798770870735533941791235337233452257930334148203685650466371633503361740501458154742039027762791285704538335781853506933770880491493923753045719605397381067265743380890117323892274355584619154582220768805527075525532080908664522296866209596037935966122575309212543653609667571915507030702930943030212364181875341371929451078781951586681478162559168016847463091562377123676651985082234976875794809000003971570288172337545664723972325740316993060590866995277883598619975124266892176399254182508801044511505169486298342254395862002593621409589556705363510206198939187768758390472723475639963375414534328940634679619079193994333041343610467143708213141406033738575139515505878959797093969018157829236086910602533758394724459545706593216626267192834445477645829423188110097094079652737560198135706329039523436189329269214085564223036994338414465225988744317737817569698814561640567407495944683931591434233990145611974108158935475536782805193018639090175748448920763945127887618475127889216279419041631128274032852382502535612497435520863434533733603645269264893738563373414407459040198826752229251490017347608759899116700127799126571650811245657165668533109038938470997840969785261974153315206721196903566746630436205997261368488165864718799030998835582916448938557433271051347135988523090006398485288497859313559233721498565472066563199901082149161603010947731833919780602721562285130436206302539834583873157036604196694900090940580872468624245857231875600672134207131256868735905477318124574754442637558319510443180550319965693619792139384330187921524701956712767036358457180053700953783551876069919602945749608953833463418538269613648311797163663365413094670559570124665285844463391861230308723945067461349993009598232906645835921747926846984136406484147492066100977498599441444102994424625066569068054079105717758729166337203093309389737406943064631935613123479789646643261407207392939320967295475905828110717460310579100951647951785333741460614863005088464492324688307326255102556081716561937236558882696840217631612182883448466836901340432838544396771403347452132681350480293497897028703993666696843173711906264580079387565382356908345058960630732065731845213006010766329001684504484642255582443490554755678776170749831244557427244776401181377785458327851554061950483555649088129044161161095726615951678572315294865546697050600806892400543575105972601454047095580858718283452907168519145455512151033842689290490260772060228162790245177145041274824147496053094143833968406260802870547101166645801859656232980357677299863260951278228989036091421670349694362281149352118889834338532532198029740300486789589939644926304637036217779339524060918346794824487915115133049115494928483127873417180913046603059041198255807519318677634471915774374297980548982892129564408711069817239384431353821130004199364698394801616233346300966181734255406209114754533970450987472401540938725439601662952527886495064757515533480896442831956403444718661779081496890063695895655395697351008743038418489226469198758022205725931889328331851297802068783748649891702189207947767892579560200893548913465838590607952034208341363227287124964843832215943421850823076179892752817599239718384060877046703769731995144693978920404405593080731302403007459412651553589787386515021893163207731775025095166798131640366796624447577437571688538344912174472614986815372973791132043910387712992961806374140277152777263371412549195767573912642506631426999960224848347129598649687260321331021961245849155799166530917052955963478190257842256260751155682328268417160454982458392866615287563031656129359745325827594261494855712503867923825159513733637347030107234704988202501620433588372399184552401820673650684348837301253141993167768868981047553466294453895249417110753088449696491198804257807970189701498025199728142700081938386716483694249044217973100415792864253644807143078218918512969525497163661187910904526167538834996708964200590856514761305687210101615854678150080327231697398451219522682645699962602917692038476982434771788030616542274447172276682549691043472354566691235666615371823501859323822515381680377712205027179666560515344122908913596675509110465908645208626504368699771072081612481834083759539499462708312627328090794279477229890252768903395984910032667594342250086428279649043952621169035023706636189028883333754879239832332553983278259994505394289705315061385829515497111074064265020315835145580286560670688195744190362347974812541946564240341193086779656992961299422467655270191545528237704439799525477260695487883566802696925553006672837624159293116313660682991228952788546964610412547634951594008907568687199168619780601427563727873699314339706295293135225890862013359786969793583364753985682217702366247656807479369735159689014025069018181026984430319696609136247397666407473731384158400808208870670952874794062333910879025149315088875565665555316182138373289364717165494531979821295477034003460993793010291020248481844339651955458549386266767944302433259943151247814745243085554594835216256173700478708219884808009666978259612975033556010056095001282890730412935026837458144098490252012427103683844920753295959303649130296737682735861417950860273616739492718377648212423995565279216807609565265906544774128328737052973953906492614078214659200308983438101347344111450575528730706108893282635078918852199664481716466363349739240527993013697629284592917139700584967388316751550022315372873798226567160369186736987989343113403811764946433951817759307226371214732105790041526957365479032163796410590106181203296561388198833435510635518778526614880350860178504506288949328640830604496599883858689778403092757296347259473655509340791799552331547153900974912728076243419817992253516488802998489375097700642203014011189630999776371160988520075435862135757598932440969971962561884691429091175735758325103428136516972388962801146556468448391676231641770609095834628628424404517562720372308866421069771669720841939093060496382873462081313221626537842506817419854480219622009095965915596371431973372808208925824464621009328049424203463746788813915707875666219261141456405535758218248024197555318205158080985827146651551549852603942765031425697758109097286269117046631417635031100504894596445447961455896290937092726285799495243287868787249098000840311646059949777911995527362370555252309884120829897629901033318040437018966000380106679012851082452051718038638359077995996850642196733602329143101068939493432798025009353144752508520931325710267548367436214660855221698466622502956608045658753347008473320057249437109896042105357980833424388681143487184159491467163217697019215466529690139012989369534520403505692269318312870847005203782968055557485909894477417024905637652533770850652639210261994618061326839499629924372851896431200847940294856497794970226716881354423766551839307870064172637794900298745046958251598425787827173615443169091989149866064100556435868641864101472377092466057058812166871266900669741346303794282878304618524130486438286035123035660979682843184924092085294785786900045856999817594402376741489819798652341920096436914704188613214047290078153951755470697315324881948116044274461843700196977543312408313204643430146626551031984793797120632202361367344837084481163757270186525636391169919570429085134115838686118709032737808344397149775330548835348185536809398461247962653680239000744872620453833257097266087622017339553347964626022880899885509813836620792847654841561596099725119247458673147015076922281884613447154007856059785240864294882872754893000869002683410582873596007069018519463801383040433569281492449378484458865876529957713802896730028496483522017551596737256124893649609474116297590642820039451698806792092420774796749102115871381602340969150013303790444514606047856428302619995084028270470155915875834499860801634911529576300173384785195809391800215009139716454757394393249041831576541773920210038493467539657270672377160445627286909455548230787407178104168840601093129917783978030639483441444352120925948146687465682378537987619581070981984022257084761154456816574575990849115710489045629128425320844725394405722372703926943373696444870477678105674357283305442030968151184431901531029749791862785029382978141309566805856431068397805377622627384732439717224529975435173283636729026046247148526943983850733541239870019684238817554454388649427162546822311508548331546982422593916504074322913059017877682772058862029757357159747072232392107482408538217682920641753367537266965488143822978961907639612096182342375565596058820016379308631828914155074750973177413798741823649512935394750271640704859360993259009521148019275222155848596706984395828623938084975135109202364985976761600624457379293991892769482816442724709888334827879712636507035640863918287264569840558742899876049557650196166223243116617542654118891255086841046709311305807067319688040871722260484789219719513042027684228022497279495264095023472478318894794331493281243448802852478340380804356200296919633748101397845542313837293554557885422349827944615956068544949260784088968035129375839523819340543018333610947218006454689245074816204801731387859760713240274414490189095093511694385685842745931694773554041794784133802210683487858959021404262979830980554895268790333634900436773733587580019264611758620267024133809369928855667281180162645535786104176228002082883949211330423003856931576365491958336621174970642767917088211866731397332832539688657439868510372906508061143425668320231825667934400439450078036970702205355331544385172957641002723856352923653710528136608854563125064243850612650966173862335886949383080398506935741040452769120718908551190992216928974014787844407382728515950998971460464027518224199525861114921522597594085475583369141799946356234070093182446144492727232352421601982454025105829572746582350805968562580974055067360281634393005019213813936110420925100310052403465345835963773118637383083502936111294165610800303555593628335832607411152082922888167419213291592638572750667798574824741743175739739873096275320841859766562867342272294506175223651294987243385931948932045476277098858691904929712156261052411300810022350331805001190664377159807236342457247409709414776848717765654147826825035991053659052575079779928642684506524624550390153778033196540732672511852739946488165918987211320955161219039269033730198779003560530108706774033678179638758615069328667933980837554003807964616892993348290119170282835170502514835734367055933418328922395590992018536286228374730023945673167789498833771134253031511888251926234034737633296886768104465783925096452757375146473946484311324978301911102048950015318861659395430031419896242098047274467435676272530138084430811157678911411227267767257387087453115566559377865178534000969170876356251343241230864433847689176123680157314443384628242389117563152601410111282073841098846353419758423361249359453343263736201710164188879797552942228666822714236313149717851723902470546152812660327590913405601901304843396436420760946074521748029231559162770289248895223178141011903371865156098659442205483069745394504427289591475823264300284640518595008789223087388959260641054816269806904928625414697674159995516189089516493093641868632524911113035739285729291072731154175211876128613331433686584535229936596665219228122856197321564369611468055521136355560709589060996466855954251414312999763131676031249950561690132462135366622838531074711246519331754682579101171210115547550104539504220660840533926013577259108099258587616794520980098412394617433061255784613240703708623306286363798064821580348938806669275081045529263766759827908045705770943225915946183128890264386820658919542306026501084795658449646885119053086043187952473217547642213928274348283153208279943268249921957087679506962142733717689295913866276523933907746282921196128281858534277143530732223170664256992906108809250551914650261427556597716622797641004738042687946779762287323116858700559558586644984514338678941248541329378268548491553699209946607559589175731264032348608673624016883530121206998567292509741740690999378867806051741872816777525257101853158785225268749918577252437538331471824853231457160686071999484395740299557362005463262113481438165674580837161915325521079456876686325502659233947471583888657960715426595868412655204208032277948610055954639147237929945702467356725873793345069102218565206935317161981045076665318654620826073046366752815082655347825368093964766473850640449418714968022114250982202238955870104339961784184681765180915799020957530203133620271080006271835321126301424319227609228980572661934620563343447337529862923352648932752470033967917369267327783808344528907565872534805280787153610367355520942561697879549343521104192676354503800097180227739043341270177885660068920055678061636402773761948476625268653867438244756229658721062938556424364722291721933950663508987892743321636822184488918649349852440971377778952061938351174989647177257760856217507402114103707274642163390394844974361281891714781586025533301493067187300219686132348351119188095975967500220754944771907817367494693013488517812533224994243828219823164162412188015291955003511731247431099995188642542305931064238480393768832867563915922952133783150886069798210188829968096411018812503349675060403370300078069875167392218433776259371663861194680774932879874925735884313904533833949859641068324695553366663585724988676156090263168425003525718031757687445964441433412340497020236305684864807044942788944892250630428832882056141622552893695048150905753199904221582191981790748632597502157653028596787584447309530183504454260712089479805694281124297048468245830235362924935299543125994414288516683527290872396078661618308922059665401089997858208500138723899887835175959601310559436167082647283323050648080210856579745489705653566298228980723871969417280603247042540804773723390138119243505783065621126110450611606441612599419720549897775944052723158153005606347634716937563448613719547457591111358945280320806873458375102267517628884916156654527713703618312329259126081203281794528635246662326818066064905259884327514411758578890420557250371951260941625670626673200671976417966925408746088777693621410547123701226414984262774447181566746914332167053390003411821909080813887262830147454738815142799345776924765072223232072959070246857048004486138880681875254231444510661615333920086127371347773684919112596583716334095101964976223838443071279218281568150424505190383898542595630885326629175525744349623777463097711327357602067265291089308077379555657574215261346762916793068095632866956312753146346127957286153212971561907018733444887184794104738932436825987335875354350359372140421844547417624395057915351949116313539074439702015745434516034013736003661635035910951191323398333002652086681805322346560182891260968509361279982046968316341448035261740109381910949880053985688855839959792734426972096230627514181943381820011455704778187975369841071912911034783573192262239439029407329656785281221049237039919488003332504291861399660597928693710183734358739092527202317494204886488885579901940871812932189882709317258622391931827105098744039415320283598867934751783712866344379796838296248966843135296924882541184989559893238300703286750879766018820776052212476809112753433096653317592071845795188906205629446805119915698058790014555021710522199130160305936306510538524148619192434374032908532608115997666687473315517169966852846419665687461761801867430461068154530939366638802446277287793249883619729520398975153837800900264750686720335222388990552804528333868949841207136782118805265872326323969060718437309378033987460417262050978490031583792828700942613203780131943389929565364633842341210496384921583726122120727604283027555691622367826078934624286137223624484273300796073807058842705446370014491431870395514565506223902826915673764599438571543631853069348931845806098914056995266934831753000692788495675132272651967248389843556466832662610708839629614717971342788208334475103544311167400189009052130283353620562458855847766673402216019690311013625962260378970496245842907064291401065554421116616212615829560657914676341247522782539071308435595889299405002061857964339935445374176536794397672383835958592495281268582606178033531191153026840330725039208716291386168502330519989281758212702347685633124337288900509904487019145108153161105683735308521647771358922745138952800926365127903595170510109693611299417511234906930616524120265209803557001204576557989002460434956935994649055388373993423245298310422875521317011898374218257047349467262390074637898940293249202316749527973857916010928570670925665241059996174716331460194354576494929088662272691506514173240260084284294634141432166308878139305880243946537933935800943804990150018790183777115106962255967647103691839090508930274091351702915265955254005666738993714784796355527268956826988559896003293977844878431195919217050398443011923517119899447065727590476065692274398542059878679114235968214223050260574976032733422212057966931874275364464234839362793813289904793353946950780002930683205010625972030222614901552304124006863245750457286159537771926446398222674311788633133126522514406161256077196020113977318170708678531550316804031369809185620278352404872834382103067573920004353081317953309764809818575141204762832245634600909206209928582502799971007350060180189624032674167760825198970897210745512652358396922698100956983726271019309935944553422125002218516096178190191968507585949709961580570793752372550342135934964183328479683907119759992461030489433278418463624706130908587623201357751630130240286680347378776724317504919850763090831685345777212667491050308590710968146242787864332241256900658659170973244766745221671960129510245268157664479753709343106157079795864336591608457209945600523038988111986736312084994096754253278802587860431439927330995538897531432289593590306158975530750889886372351070318641689318768933506795779418797905669567393202704155894025578903926643561368560775213375591536922735627074418075734739102054499591375337181575964635083055755941554131053174586811271081962109422836074619020377582037534520738168490544061900471407354840384705859725300873095248276187324624757021802507131815545073707196110540555665819129651910764716736611841313053844899967805318643636661211058943192704528016981685522569115482139148257527345965320934193866522428600097577634724960400202032129300582575338840000877575863029927092596892729401700669586769641769826240576119517111242265048480335657130553416070737866710306969041980927128208017597479393861966576770663384265074727252246044424954778800295744271901579317940014291633254008044004200120423714733502089206472619458699215078381259567299715496453642858896080372652720342123460536470611798115949235694476357153398320114194273545382599626207408346521749078315923713651730376907997954222096404910901002439680001918733307143727891123573026573469958934939516793751962761294714670990699725131551367398563612636563299055902395176813598805199317788616173320112117711607123398132379703961836712631477709991100860316211325481322952504508900815771381763646996146674669569598008520385850440548240072324485098288383878756208842439236406292330937949064882017538389236794253376505458628528744123174870731240385055861168942745049404411643422271769967876293478846326092186721001805322206187102330963748678872145662228889652648122439950666915789675208366272244308723888902873029426411506796586909608314541486069482992540026678164529129689684519810375949849695941999862899839472512582492743266397087795362683484341699386649484481525259638339374093963594447447995194957921877376174948305527244987960865956627786819672057381202610288554157141524218454131748028127203988371295575618161758704721768271785647330996534428021564881650170613660900068070209251534832093730908955503506367758336416092636806413242305283235693694231937132128045965070493484374138799292223711154815467155719120393819347046478515748002369783131301310197652172123673425085840629442216354094424202154396051988624298698746551441479469652620852011609472340457013188612128662262152119098736812512580770373164505334770046415268330585446313888172380487572629917642170502418351923367368733513463507538805491337105924098372121747727924267236893378978757491141352501488698908978009047754501883949294949872967691079031728560529611241868231171177905344852593853068966977137398825010044317745738969392002839801036983442575105037508130770420048476342398381846612771953208609466462577292831697437113224056976314549764112239557964418316885297441083165199082636672258243172836270004641735526661687887439984344719481187537115147858845450650372843045317411915394384092609546844509524313569540399740660848586028712650439762286220655932390800684035966927056541209344215392093399977909239622327847687001156990891897155868170959085291150752950082252907722350296596548035185372612830537154596563125864320683367176564187081462035008460941057325763261732853923719518987438071329385440077268285395831569140700371795038761871713492693544566818273635807203546723096541707609854138492465911612458586918752397773716612575401896008333516101382874868610223530960851899036516119048441510697817848309205302783066613934981967507301184231880167874454824552646470388585381852273074092128698012935802574159319857179811047138244595077545298527333311961189891172803009713431473455796568270534622742794493365254849665586414442488725775581703445403883020770728885126456150762829447258246714635261228109703609743140405482273179490170830010343747341183516486148714347922678267491043792131169763171409517253706206282734605140965798140377087387766316812452837082938243830728445819228532302079539637020951246810036505156860070309149998216192209104703475463440695597474082521634376791183533866884736876332111400900956190636976102750209155696431528703575232435384563895691558461364781440144443915547080583407169444541559018499159432656194890756869036035423310048572410127756218891645025411719814866767335603018652581084912585453056879235668961382101244252206804879895447583533197456316322769696053249109620295689800878513278831410775341852922701500894693853466107640257330017868165618165153964862594979827642983401095733460275468781951410481210437198897215121715003515315136021738361236300097276671248952993965223551784008798384524028654895704878555002169813115391554221870226156261447937236838888702881090568450278587285462585245224563464297700011959951539867694917621412807558440998330538263632139709722572926162628684840908405160624974059824820618767274157322806157488002146246366386968247274092559512578679608623720606485881976034457665943996949549630476568530816977126507302665446619068543772566970243922403417637345269175952415948943446352363182708923484260703775250152668538526741919262519016828934988332858252690493931445679208855066328775841111833565000252433723508689124512275796690840863042607011157791711776963594386750864811384256609475243696112312374024550910577450926641418424834685511935663319507874036402205468621876203182250866657406561171296036823638637359732907841508749033276347137718202635007455895271524536566628633865558957957940162135942872991869334805397199603356350224280976192102799427075773026536292861452180659617407759737022235161787725195220345703215003990599359569608671141312997047609482725680338448429974034710341758751694776314513424916044077136282062224216319094862034107697056218028680678194642769556943968323265739008819998826175243613033765968762471918022270700347413548540008992917352775739598141714737304473850189672252193339230153270129878508494017153781704468606516261004980433201852128899843891579471342552412198302152177662259303339354567133454300449713771005698428310069375636627661350102120655471130023299002738118871308238409964965180782736690977098531047069697755554385774989634305230532276494984528174076303988202040348901846060894413089371424184737596468277808830202819699730837365459418862066702456909061450758040364618989279709804185308953116487493495530525849370312203980017277327700829287315722753367673083876563261891337813913920256162259195550140735511189951539620224920193167201465283850562723092397839714075068844431631925311096952805151079260318349079704608675656065726558454710430785950620695869041962977866002639099268715430165191656515409713015166748050500764633792138014562640417961865310911304245702726770024782685706029582627661169881739945234256629628953682715876003595964976919843543520131937409502970556232370017532859369519154501103652341744443854450593828755437807810449915460580182775263749565757346431876787238718688312635394178857759058113138035614052763780524590408197473334727708506850632907895004078142014144466259796265797420053381663128881363386406622154923577843328453086502511752690558220570865455640332015330041796892942453967757265680457504172072883672873182383213888950660588511084757944271858718024261612917637884042118634094081904803775142852367949902481009180780275493961086508268926005389231163122365986729319041680189976770723815362805074848703976794808353866655760015584734128424583769070392281996032517867872409374975797208283688893714298118261843898280689133732793203376671450373150007700486834217503744030740681743234532004783942493784069908024873536292651703087402395926299866987794761408615207594766539338995979848113565424106505079956104658263463037327021122506316903471508910967245963977917016750789340169134488402797872340767799200594286276067425093140582329491733699679109842044116358396327792380988882306573851898664069899526065806598722612990231865301514940558731704289544156068790848274680695553573797638483223609545058227348172608317804527359522107439488078065071142074823824137084926926368452843452068731079927614526381633628686694359293788200989169621332325137868774654141507441586698070524980141964291426373094311905845823485784506879135279280547042791579321072920593082229554267557234182699622203703202764616471798275997479238773699652653545972852417168054960939465517858640849188114260397972463969318998515709506107054290454452002307302857325572539273153103452382018404753370642990094964993750108535073400639391059444483521616230286709964479458336741766369853167047491855106841221855328552671226712158625899472828126649738682957307847675336391133964853343313093793107058504353115565897837931132039944582754044287506300325341121628908395663556040491802127419213466376535058142645995383291274052539485315604533401245764578111701607083099834103384116833364894667569005994365128586854678501552855679002005297324435039980887873598235851722642204103098369039276206272583656814088308766992366027124780085010589871009637614230676064812335507538163532614635386564066586619173608123444670810992683949184466777828149966223147804940920947386543744749030306398216008201690594707220844389541590125511091323639947699036459418943549888444737013982397063250679561230342420444907030039094388928102911450119511046185456147664301208919628826934796690625083575661640110848412029760806046062159582495526195204216556638210943397774417447511878250964657960594164526991454765273102329443947928317966529167220830007113045421080031293143224853702067162612739532788947592182912937828563597897897764681948647859999622080961890260228835811283577017731982214295921809218141610538705618504255076251631937816002385643920612447990483298504572851504819949485982028407468011295653288782325114756940921247664777677187378573236615043096106189594660046404734153675396798783650434147814088836100662271965554449773757124791965823262357963613946408636582531735712948138234099199061159886431501199717517360116750718941220638012408703669583327135559344604497917343798562241877837165678456845194888208950934786351707521303180598665867686557964180069800464813991724095126030958421530396903736005826235403764746512543302588193914316870120071483573036374536965193261117139730852620486046990958233390976458662351510403956968921266095378856627660619756795348547687289747909194433780293146143777967175673956170407656500855593738204416340201521932541185297787651684287383894430125163988783648868076341055879293480681627504872479313979095992065035253224053191472095104847589315461451386179651971757141303398110390276497511178666872808070438157040504718278989409462066897809902613368639335264805356872783576131293528819297227007562123966274793926579718010654158975861080439637180414060790597924643727188540404657665697383031247450718318644428661404066118762762611749349335205764117215385541801620161930218793072474651380978526157946456881342935419191370104572977282700352171189875742063309917661878642033445967199916649460965919911246731654503678734059651177073967822165557740860587937853193699980423006020629875912716234203029775898997914129530874577964406976988393564217626698828217470374256109859525556285150119259470919087201872622450870695571423773470517522977945453541913964911210531602268932598627439915135474881114429316913030235279148058112725008009214501002090666151819091218788994392430717001375674682419924941151899092623497494293079477346522479507094809582114270038424268474222861593042833148624356090984066037863421551807951826873990030587214017995424843987980576914337463667886237002833568426457689714514729154845108645686694362697949917836266415844905627203616413640583920859671233290429964206603450492653169737390516686224296933901725474530711935270768440380283121790948344736868047728473159870991415400435670853317518915146872923317995912044404644197285328229107414310676877068136812896125846403897180203155768196455070746657038474036005863991646373488797810139783327186639511618493142796282579110192040989090107513560546699688030660192240896760518941937466391608887682748269604361076588187683057370687844143027699460962646052288192197932507090206598353843115150828053809796329967473328997601694542181009481430778016746663519232229870115065756256786015541707029473123949853716441237458315053714040772454095082406771737098695447701911533200798703906519193036741937188545288100433299779053403750756112299907530518062805119854385134371790133268694697316844727003296129062951778064614502503564221933486359998720678990936901702034311238502812930411792309922587922395277455739949019388632205325450012913613236071317214252645026194643648363685819937555809628465668586818443709997051732575217948138054117876891398520523869303647026423669166788612960756962147554468936934709458527102994923108523934892683554648330856325803845438355750075610033218820003268962604531238345387826242964155381998667066829916157903013572277849006537937459266053303515093924592800212467024707524780570583818658436694524862445296037687362152120741505894604598078694446908160076162449957424873021241898867335329350290393503273442876603258144976186132318641891251118511951257673590052983332575901242834816934721012324859976143977222978982837750857610512223618004597858121893838300729096012592067746300420515700367109545703960162037832288569039803960055248893965200082878055186687899619866822929941591297163568449107595951084138987760794544522471228655252575618307090809250194927790947132853914366618546830320318007893541299728679281512108281676999188482060197984386817999855400820515900662854462707724061972671097811995960893470692712380052131583687253234193970925702391313705391604905392140234751712282155590331794528672284437000809429700973485753072505318337213678858389066719953321812538695039532240920924017042842078877723508272528600351574994667013436319632885836715782961496643419326079194791753236557912246018852860128801077985643841063458625690908213923952112356336182595217097926285765544630401883147631627151109649094551643444379062025419852663531198440147596291529136789349372147588687924174944450085033710141360598539533684946844409967823376189887585960885054405008116260973407944826713864216235041748291401829912106563399915300966267412747529460736664670146123123676918948447807904207686931775722906893207469971777517653835261292501853339351082807131222147168970186801737019873120215168557483267373951852085658118457663580168545760674760545861338543775992432052711173138251384306497257655122318079047654386284973274270067822401040066025665836853092903981569564583198903250624486629856821544412038118797389909271233795165045348787743950623971930236959682949265880186661290326468999310686444902097659103000847058024184402183898716017681332757026623086409776038634390053239810888774331203358413362855970537416035408748514966790293314314760337437500681806239492597071971817912507862476697076422199322982443821161177980453270366691796346680210675295096940030620536873787553557627818369117309166021670603645938251300448350040572843495019012187766441776991888131624952766349224969209586670328047563266341804412341780958232038274770595037344176435648340448238232247901327535847057670448621850835050938213144268410607253180967706053104319409514798430788304493157058500052193417129465643847801415139539122650461829690548623819457818290867955520771991111976752209919597551304367964236522581600481486219177017685255174123511804517496925920635818662329069124547276309835785777116759216337528995471791317992509946532962602186428727439336506172212428059086786679503734482468802331528058675640376141860044947183408008230999081671811702276958508840244853100527949501536877629782897364827111362273481334112141450048213594815586788100518564613012631031670996304885937964982133867025399162789599696001976627458121317346813507651238343738650520570514766558611823171687920084986415412960704673957182305792588457044240836103118494954018167737533869198823068006791972960239752300336632519629539785374222460303435944180049958029831452166634575697401613864197029443765515898144663543987967573745966087819632097709366966032969179677052465562373323333644719938052051833558637259031230178220600191225662143596419050713515979194399441139441823139911986524947310183584983169440999057749646219844125391210250915165808308316929762247443513871529558332781167781824873508412303216328862944793831350249047248594815743371391655281008281501396392678739893539602799312694529648845443780023183772676002283528691977956977925094664975543367525298342433335996342992396884813219457679091779923721973663102467857048040094115808856407497672692601097767811965553265301719697265748963710767559799253894830698077879408283948919130955403483440995384042734182665612826392654564396378469709274845529398340760496876094879365369074336868195035974925471855674909966001512344501020382072504899949578391917791629343486065244003769790888735943001993767088760462016728161865915757455303314661306470326136981231406163798106049214937828744568678678919670221691520112036422133849373119908872528692883617849952802454005545738559015827276617188000455131680101516328335970489151248196394308833997453259583340042683492227073915358321340970783191665683855312086853059592818407183860773110996013128751820077529371539070782419620273232102776998924184275983074554098760447088033667076242616655659496786955872845230859740160269161587958112152265292464651042712170787626887097010438088176789754306028603664966872471889840458042843423808419491927949065586443122611981610842660190921243292540114429502408612919410479836023060665456685221177636503837994896058500198559219551232937689726697102246120382583327200957735992959429440783475064234562529556675580456155140076127508416221149412772878659848017077660198817666653464076825652838340010915287823387071287532364865981380189511016630828942861190214633168624406057832887967602756135282249167763761173122777964509177403188036366504022430285571944088813926424112223927293919022645680861432980578791311124552358413694259588849035979836116641059748780986094620734087510868963387704456551510730252577811127922905521076263034697969494282983102101223898618680647218810446735602656774727407471113279816347943256640271379197567801629297064063150414632698967305827392614539343155804443392922725343870078785728851658560914446786602399683386115736162198064994135617050208884046753251873973235118142406844680888186317923947890510330855645286823437815377231028794595925350595514292700618059034448487505373364801186280864721259512417173983214014240273571647018989988483554869276692427140962061574155582481004457953933831869967580267661566026280079814834747883693944892439214787807261077756574428329569610762364526102712293956419306169900206757290960510719718307128399401597356537943796961544115873043038342113830479790846595454227402189500581437996315687554471092085561480137317796693712059522079852150582225798604261912827241750135066126881987111650123564795843337828890105826516352912204119471501086290568567269427816648038297632616047171549269073070869645979479881206324967670676090513313223144156203452052208241025516410027753390187156739694663722731198536827626344924937414996097253676416011054619124475940835952831280552770076730665608294807065862508288892733237795155009894168634112440671564791364805623683024247776113099372855713468529896926634352697886938946362065845006900610178403275017325646244529557212135544411504584294459505708725000902437750235572312387123155963260454864853355658582632019877503076446922926911425698511131836608677396766723099854141896117368277010788686674284089410457798202254632879609756330251722571352593844560417343779513632164229729535209896105757842325664125062301916664405825667198431326319371055593360175773950476839346543754509817757497780936714037035888851474937996596205634933984741079856820990314379161740681959718554010439022407024383220071508423596121188684886308857735797946026238910376815591728713451657026780319623276538468529719445744488936480992672012073977430113753971315497889343031901198812168005141937042186552697787472764415546237872775966450159639916734510634354309576836732837056836090928309850979392769583492304649182369059748427621040424834598562501550641869116511947493069028975989357549681167315536405240231578180673173300308123378019221755006584357508590659064001932426473711178515732280910380829116082853054668578904136722225029766776263565436057599532140102794390900828439593625612620587013874782747892450795978778480043779599570158832981231120437637388478976393436699049937859915105918276094512062158059843747180025944368017766066503743627966589526548229971294465206645631257912775150192066335583471662121299392688969695837835803992011838592914353930519058223870859601715532002495021947731167470168477219152862319512060114348087761826916046353776612883319393151901940343934426388506636377298236512152723734336627514318925418929338512868417254966983433166852301436709403474409084600915500786474427306109532830306583659668220548401287434849092305804453444940904294096384828470827134449085852924175089818733362658160295258532013088862258838212040308726154084246090041334250627654798035596801721386168035831814894911367380009971281179380836405667472613469679819012920511609314571255951309303138818706038542397719251851536690104136618534623365819579769367734419673725190164561024557624611177516156437372488525466130278878230280619279450726015608484488768565490148696922409741607034907010186558254553222826884417277894683812619584491279410358023309291798858246289707425214215108533798643883579321511610024666783766826094373991615142345139194247615545184869121373116216142433471329119007721716815951543069660069086181274087971289098080033747844040260361306884431323392345166165695558831980807111191233795893363631482010348258859895046022351226341498724143112049927910940750619265712951676142677877684343555713305710871238664662538404342132813129775658847623427440267680502360313893164974600984742568004005376753702426715601812472606197168072528434531992965430747921703477609478003334516158827829521602470607616731063329694083225301300396259712046514662771670505785679904105680663060094911713064361317354300875274688914887387966727287980394828358282893511115263267646166523676554885328966612786211376569777443252986537030530105027171831070290928633002191772117771866660034993488479439984484633445091514998277757590017225863800350924663051797678012711134483148143456462262540402890430254687356207110697011500602223029059143607771788660902692257499094227717725824158622767903842919703863812624049795852242413090398594726150697189629870160869354603060134918751460177878234858380943215199953192178600726918370892803574114875335432728653678630561780781608733622255118878632308650520504656504284471779380681339587056948351066299609040444243647775098909760489335600660236373698234115497243559160353173036568365821456612015116586224248567562726726583166721354519604027029284486123013597868978047512479954600940814687996684064756069748689101481389203258803398416203500061942434809096696853246965944106763159056425405705092473497385118761951009578786907531561313558771120419485810592128643121753670809794406986398024323619607482101085856655733214658208045317223818474886638936408317058000600958548449131796260657767562584076218331415781825637222546716413812287175628669017963342543764334177813985012770913997058715318231633810338385344954587061268937651907529892820840744553865014559440742668512349053399532077881042010956089096840882245026697892439040261687882103386404061780982130606472957280325530248865887022897786877272048619838366480497563781125775278869073320279151641009691357062531173674392993548494922006544665758343637279142964715482101966385876901148894222467963042898624950100282536485876287265485066720279260890833771836811104264223680758659808785985851321229629687059949731585315843076327136649346393964421160501855252096265531432403232706401909645758331049303696405000580793308367194328679769318047808791988209869601929738246249327651727919316377954135059394919434201071594843104800123304702592418901840682542582565041555221835256871456505822676931247438635201028512840608410356759815757426255341208441355546581411173385582457645664465813992957931570777911795260197927269311002555346966821508850799318442395602392053612984454557629053798221505624723623829702184219449283661487480903273539491322474667419890796084460455130175690546635394015958036242213356852944147504544177278192137078386256586299244710588372737082767514924829650492828578634330804726952951968121792676138557000477651801615441859563119283165356550897052373395431721909552204284697385775201998541009761306804195579079378714843837462679253145504628743360935774950739423706487869177505310957888442649697073452378377340148788474887770918097702783257287107667030795702353678964551211167709123395954597808056817966563953516281912410204081357260800546664310038493337256543980779298545842217663018387743755579379819767714251952969944228126056266825128538423031390424097765687785110597853107210636150468128152030950464138078600637036386894116786624575920101704833509880137784234974140612205353879008913529922428911057873502705134047806955724455003136979545370236472753894729911029391761161033283404654303288075125646105486957325669758508120997497895042516062561465481034280140871176786222732416091106638421445159645245619677544942609068629702335741230897037791239138145621590699086126904611788997473611424678674524076666825588055891988720727825745426794282812988813894024271637686641571842092636586773914357502442272429825696479224530048810002557197300352424220983280465255317615527810196624247779840472101147759266891048308035606727858049413004740753331195072845967929117007588695860603944260281744200849596268523613649065198556071967224822643209257629866350246173864919897311101383284655363480090265328509863176410680067159069078745534697255569640683381536659548656807996634491544665508773972118947735699753134069024947824524368639575794699971860126893610369280386956453501901207287085021281954788120281529924466802365674784183586751298312462700079993737752284306083057872641567105614471118434829491437370035724039129890267733378527051568197983079905254637729274028244508709620838698337418694848511041289146318528876857697827347948635345739345896674245429397017990238562385378181682115800255967283584301966890441658608778784899086277541985288497928446580868509315654754724072889571066149296446908453886310617945577533289983596260871686420370734280250861057728136598381117224599850279621094177944136443124479334025102208012446628144795846015869726239114745573704996884051344425341477365190041614327813694449224985457816181352662419965127740693683458093188430140473798308440637169650030351183956173164913204052570192828419799783387143046896516028807847197232437523985747730913903948431532672884979951113305612182962531557501738506571191365105636965747786071966959337874127550885138317274757821830490546270197417169912790839052452790632518530253201334315144078306377405726311395041062077783058353130229580640547838230670585951631228493642642623325643378806928275369333540777202635710921518293715501771177427879814817960748448520997630921767195738230499207333157851706788512029821387345928517723693215460567827746105818923739814192992432547923029815017976255276773367334420439537194283588182131752284806938442810206771083874336845178819895036086598489423894371658166792233599136473883125367262753923827316859913202417774106090663956866653677628106614033517422818914524220073190022185940573303325096446399161069050184187943206124595357989450451950862163659137644843191143373910939019638718847716728797572833116177042930141633730959529032361305463514951102861104759297234771327775334314844556555846702635025311707098285712013297675104429974427500202867416906093416860184912404861548879206855177084680941931524558944362692009420655894219990085961757601501156802191197288488350659653550446894164967936180805236947100965598924189927842010021012480305154164523032829983431900118788933014996433880639031539191795247990872366247780428770016418153992674221283294166874933114903570831602179211073242315147075230299990650746537087050435715447643831800615779758978599016938833171916017586586925890386753717617700639950919757167257989695720318698799405816773173751594409697466065677987079768138192266767463739901185157265561369417126059851949950872257427653316695939811171139334952004877971913855760950175244557590810074002000760093589014719904837576203741252095880501727949583639154608916047145486701784468183659447360674343000703789275219538698892080680983561103123894751291644448667304015133841100873622553052037952671187782402449922686114627661876675429879644398768692407669984859600787136770595099519215932046739952657320096758501003539667411815820432719961380441078628621474017023210260231588873757309981399368917463607890279206782347226010592816427311436927695673595714424111530748266445425481988679845546331318865014615108042030755867090984381483955118796702611336770357050969487806993079845566815102741814210207686839353499559335675940158319603589739204005232445806224964879325079923354487852717182589640928743714208752367565972328382939244948971777563777944211565754775214140686667555472856917281337802472269147326219683729064251508089834338166247601215515856179066434864100766526096382534377803197255621405568523128183468385760801593356577430777708521428582723361987661881969464688907036921521274515256610843780771984588374337419761165900557379707233802795645823922602960482593707398057938177838956557608658639526813170114074348538981689707468878895964066705124934573677223658107266931004779029851199941571968690625986083881848126382210902857136809992655948352988959256925259017161664299133940544660443728322814700924574763201755070482610019541718331668509103138876431376548058565228314005188173910551389237995435963842991202196678792454915681050671161793614287065475453125382629105428628559957838647826217850607986170548598008296940522304726903017287357057067522188321577273605195722674578385981195684689247405636102509857854534493024936229515133866238795171668559160829696471111309988358314057391450457329201908570994670527914783700721772170162227112958798496111615003280256266381555428365357152326750148667951191589858100598953856263230426966477548604031884144290105901188406312857349471400024783400225174019104410690829893058847495547805249995966560805402738349884430408757424548480642124055913796029313331885545847668210158695469116565067455027486929915377602467054301950986347519094612408836787870022914080932540602563671103373592118424740945105049819582452575111109162456678980867594908531761150893047279699452868677007127174967580058047045621590002062726130176952682127676784519521542721824696594972448539165313194141000755875038112069899090484310534676495141952829719879484580860982277148641733734300896484960819455169218047435043532074766219850159098870935696224099579220275195074735856140364607761236949702629685061248900232654396438435944473578890124170652181024215112434337400401954700885291372885899918377353835880629942671884047266904986546220709780791327813421170715068320994813466339171225591459143404181962088827323732209008042801871074727937622499992921476508597004636379259116601864663522638112586722695574975048590052577447379691609385931986535335506444994169446589472031511080040048052373487473757470496835819011626849899237525959218722756925302064347223338226694143498025062797023249214952615771664631419308561151850456583818968819030723651617069299803710271936641532057632634951240217154203563105743010302276201081115357935174376281252756352404646172528662184122373043577181550129187048561102398253407437709581926613328938517282052859177677965330737037077202288491259972672665929413019235511719756944657955867978971480969465764114425022802341890051983699796378398740347932553476262640117960009786769876374110856728981997583222564651191369451187124290572698985626237327050704968282942715757772897528203818441202718437615096509143111257652447963592976890570133872533014981688837354078773015256438515474736784660113681508393773399078728105332955133368489065640413925384456889298183533139848958053261180604651357726926769178567583932548138220489805753598632659761007226344720564834939246797921839087521299445351131938703382678833517355111798134777851237781129224478015117410987594798512030244178105583085249756335735279020114651371386370747346015785484678276607883330283859773091524413318829256589283992367825759366419971588854916741876672819045998429067330645829855189292694884212060968867746409172573881382641292581366126411819498370381269891490473564515799075040441748529695411505902125835679153447884894504988651566848811916425809260394608000500814902282630209619338596759160902697415971573537127603315854055714554749644309506411841896810558646279262161035341737312769590301560720237745818850763332248078918379350412605611514628161481317665380446106661122674388638488501255045541299000124662760569297223205048885595928273529680490014033930721882359683000255709857259619021654285903651295835026233637913652397481502632712906027134724910549067064030099375712789039914801840625094467054939196584872850799821092173235308922093727267897894994329099013638002504796897982786981188964701364418537665087098721872398337474246308007473402395215089212255356079984284130674453806110533749836685835322974198786733803662955695231063895745914747262701379891846749392023007457403689858716283611031606949318860279052472238838577008714952802990910710502189167838558767685589109567531664764869364000826445651549950201282360103485004883982140093888893257825124936465812238219656558658664563285443660695312561562098741951529707236935869115682279651123245137492144552917587202499963306203750789688003236781228065431202642242490843890202646113029170632897170927343924562100341463091032036470813318713230162563370312961555438275305178174206355837233358382099327557065672796238925295016491391338076216934543973601103269064490970072439793508037305071791499288626907091252811336585909540647201208257184752865060885839187739243029483503291518726767722283130270465887095117465792511249940101850847160132742171434753399555666888825750632298268077911941380165532570579395105283971082467559790996970943558930521809768769412268106957535828218768685577862821505858164582799663450426368926292647112622018765423206339828980142670604442105870344765729491026394139108042199154907665667594366661537220372374021257232768208161531304967793805618744626234337357606505382349928900160082362090600939117349674085480880995873260880445105707025308756259973198529967962079513675941301600850253122147434737576585265422359810962553201175631001550464524062023230212713801240716253269088353552250549212068388562384005472744239682895854375393544696513402996410496470521113852181260861150815866947669812471941150701073856455882408346174380995775001501182298095151896629665371730756794540256925691428490786024519926616003723768616539118488578394030449553005565650312909666238398034377868540454513660550891747769214648009750705656945698462806188669675025489268885551861490037459717848171416791070069829322047703191380116501326624218942654621224188964077085550684418343627650351937932029986685465404894743393411938470848256653226000019292023250224336378221418768953137698171763770026237347757284919065691235758273876708535359080530725707232074679933308260007029821248025774805619604738220643036849616351980987065867906369076115973156371734487078674628946512119453049997061130298799044149142039601296267800196013523893409067568170383694935980033234874624107011388063315712716340432338653116483928001187728775732663652679923626907497225535867728494484204076779798050031343022787169052441949315951518706892637232519021989139075555684815313715983551109087079548239545812737360697771623653419758311826921287781372326234583482941336718472778058206768948829138917577177066436389297162319148299870955242091786916978878103476652125704239629373765459026498728701774659628714157051438842287136017282125887570747952670855710134682534592134034546941133923191366403339682127543121051874449853047252412958018606810178951982568945735145191771951418447093880385768645987597167162119318379993100401992077523465947391924904569552451385087897670780945663694879441542307621609078143663321007237762782631820169463583779969595090030226790291014746979512538198181186163175149339280425339506939144937393168439888099630662315876796825157200760621288144990277882857774951588764437695164640292558923695969698927177244433346140980249829706763331738502391000542723236567500471884675350170218163624920180767696838417634288609590114459823937632524669191611965762488237541836884232314641224662100632585742114469994537488037727541674832181288197029376614211442356874546021532274594625448534919188435899263174361542809634359310645708069192427271851241735094130698788556482345005766769833309660591529606976107907901427359234000660832635803799975582735250811611118161246756036949729237636096832890618678148771122652742579868552947458922981609699236694322041309147206756599616261839390869337865160402923851524484323945840654093618349739994456605241072316330451486273977040136544762280825652770491455881846141922687038716299637001050252840135548272891223488104677877696881988078137940089611290911519817977114226057160429649596759061549296194142653341001081155556399964921436806250762610402281879344483056488007162751694384782523870369454330937038609960420662572209722246838330653804992927258292993901285529481902848114904648198638978005104554016283148662232643195539199555440764758151090637728126062429688568935222843087624494617074815082738435564901304572525715992142341034014121738552543218757126962783813682836213404980674177950539080164485622816226355415536697878278594405419975241076132509531587674747247206749102060894395933689567388045079083087233403513714222605798051596422072301025463371755785249596942651818582316348441295750387354472540991287640829411889588086088230548565284403348032559044272053204491809255397838398824100037275843479823490100906974756717881743086182312177374953168226157065603844321768035788707194440322499720451716109353507434735385634570702390899644564684341556505395384155535883170598560001554772815037815001177097024992734031009781194145054348596382587787771670098149820061727247230218828020803604332065302786501940906744873486003605250205687227324149039976323055089313774882073039031728162441416247807318951863094041121968372629724821434941717140928401301504820812621154995220920999880436376818755410680187781279441305851507075421685594223717557768379824028297585192013167506454828406875184545810931862309314723938274348683705836124917274060325238857534889920404407660830519298641189643006374199907463871588203879308595982324168465249494418204825592520723970438071512967641688577327992279127488338006666871104822484833282474413911342366478260071855273534095939442249105426297911968086579129082778375881015034192361232453378307080752995867888480385698289918587451256018537463485571619919450767319621086786848449703030334752966012926451007228537075378124368243610561952585542403098621611206973968711986205948635034426917028199233757242799531064920332036186724743383007148424403890656919886204041393062705664287374073799122999258197684881509012724046782344546958288861960918426682010757199190598287466757924051177862497966130474756692269722389692252212050486076687972142543348361307390937977472353020510155400737797469937392665493835987881541943285021636585043350628458577495125792894322991806185993480989421464256376227471533064251325042927156936322528691645885148054098422872795160958683385155984294623775731097974495464117080991536889827270113539626742462416485644470608616749772404718329464561002973007595947581121782307739333939586983191971308459191278122985123060627836453642437170810027582541079064280662644391086604778267146883962770189073224330649232204455483083957658344573175525491895022594875059843740335540811842675131335752304062941874052526293789434037037796744420903945619645715643322665869704958433675087367552540915622562472959247424205884198218125443069443780130860662153776300635958461347648867174176355133446714274912251190272518923260926847629034633341103084725691697217166663408894436011727103408821964747531317908775760652030384803947442996848662730417622685081838185766029926725245355001433206424973377657783150684876432133553225820043980223561768769964059430856243797629531334064706280594977059679245892389794939791407413653020136486743825359117611510457856086876182661108026051602981778433217245031239333089818772062566089337644159036627546827061521578370495655357298780832412470890343241423502474727533324154014410079468265365447898512685715111987633681183682991221548343910584092716677104325569881858919149144188165456872358014650359728082351018823975846625390092375711969389380597708874539657633011387088470144401425510572596659909940965429601704038077284906512047569775335328500128936161862085557138513819942415535500834682702000357709870220266313103812445040475827393279063449682811845971144440856517010850581622346312210790187642955682496449719510699703997260424424324461709164967891423841454359065408810203939880405822080676381359139458678764457237402835823752083055309559714239813522618330275575483187402794396509073389696871041196469527632798565113906471215479019229729001267220451501124399116240142873402146913329172970382357141815608774864746100392445567783807528890554054339927611658486389429360596495667414127838659927539487407503199985736005896119635777922718881987695770968865907293189040723424440291116122865424922254458003610858155263056449576598120498253336547176767523238045275797408899089784726972262272230682193632859800769662968419311207225019154891555234094952164883562018188137820458069928761903782453248855012773841329973209516513636308848362859596608266909909795289096832896116714161794529509555912616015016542071597016890988600736297414824011421469745438416174074097705560591629738692675358480373667470556115129746502864074627110688004978546208178587143356554444286879377048760177540120119631575132796746399324352379459061221789202374970381337370026204083552623128724032714433755963178475050127434043807630218913145772660368014590384864841986136962704414068024061030524162225191848752824495573902447819475334374546845899919715879615208721092201777005420457479305369563961008029126395885261721824555783251043452790712125096473390771860314822026098120610828101844696923253160079065776851795219641345809311419882361065543061158700135610490547733948842793779718464862309188880553497827557072395605206877602838244326830067680128898738340813021809622827319433172816480328658257927011882990699982821852198105159541586548818319074101174459132582208797034431515933923494467080896036475439201580612988067709685804655424922252643977045252884085981439718614594026788880296090257054078724728797067092087042747996667634536868392284177085356478872287129594805711995387266715828216236938693146202953901058736571601657015665878530982027224180973155346844552204580156274921766863540010252683911499508940900331516404275239427769474392816552810996421312728473086290037691973490622295740483539136329799242839125552723794049111222922328988897793589114960082876398463916744361976582209391764318263358679666039832812314515394390382705228236060725060340430522235475750032020474518630236004521254157848845861072909395478753175626936439410761245355144006999628538815806389142859051142254106751667446500528113300258166696851990837234532991440245579616985705306577262981087374586512587582679419286370516681746861780534452563756508321170554085602323683507114764762887445634874765285660952200701744031176662887392867281193637341730938580959671787557978373752325089376525458338325625677456572836568671014859353129177778059432732813258323445070041804641122029909094844451768437219265123282979861496513928738008277954772316748950682504451552908303843376017855807036862517063534879711368920078883870832391167178944040354342669202276273548734018684724935278104807720807343108600402159343951151925649039362141506730092250123058094873437300546356471565955762900912305382449673203879641024073852451485927795066734107048863204454085811131495160340594194523304198152250674290737598713670080348613415538469668476721813434442265148142855782332394054701468718547225095483640708046003514267725514527757534369026589164738454450580675679226166462150776008920899852978933361738818769981606057850907423125765226400035458112744355849718519202398802627313602142061202095981680499370534233027748605704471852343580139601369529535453629327960715236912252964795451356180586816611488816666187948689546485463255855082986103461894585154551333842101793944618239833309191351788143211391161724672984057927344216201833518907867951975332671772364977705137030812647746341540380910414848753491089989911292094064610362079296959098565573261933119873031755818454985619283683914399202730284417447256852122017347821500251997440187498944179855933046019324540077808141052684867374252950445925076142456814688880707353341748572062964501199404837358482307144492329514025525649544239379927176834837169680785366352613101584286846503286874736116072493374307166253567468104501407246391144099440247683091761859128975977550817553714962110079779814727936311505111081817315465954996243963179944966782304406515521031871384565652352377958219850448945601564821136339679375348754927818164980011260248870950305215026032308595882379535576355202834878323158513481599683956031814652303500132985781297828177713940909973819591718517003771368132819434106668287176173777746789314976924020895298815742819966593929011960877256044386255138794632401413642923196687936252961011444281310530369090635341208281911778166345097885764893673447412147688434131706094291270762805043624869734745940981834570303079354411377099942806907985675206634373286068985588650142553711040343223835244479447080910304131404417262410866589672787189933157907471280477822523727962488452454961584248164975183989347547833383252375187575264823536640716951006447784195084593820296440797472129180335816964641824612143963546019277540690362601945620070722092023770268677544459981815413635028122933626487027221781214833797999249252659693159538906279507385622376017777378474176469771942970404631074309888171271924657003799988651198726824477955850911022096258311417010428310969893915637749354580564184573390291106450900408859313384774995459417004454395730316947676240030404077816197705760841339261934777276633660336351746771444609226846020646547712059812877411698093920117639508107197507967191527231663333118337544633007352541649602393832687816302204014011556498072745979770709988263596656353088989575246266426036359088391100460297073384576772515422013144865071246939051160158568984749951136615637223651919110665221620011468377302037426980928333738078596633547594851738563234794657472042641144309293694958822231422883055650268659572507431653923605380616694492017015773015108254325738084846960414897939512811175135091421362262822633794905467325438645539401314952483235852687491445681433769926473971599162074503073622451613117602832400843232465620366315907920494363312374515467944871021532895470817394980826011947957306490494074267856822340431083933859253977244015873468999475301954072247164785917967885330117628849553061752401414153900649742489569312992085163513554927650932543339321676648707482978398955023510596199157939472051806379423722561961763881527373535214648818246937262527423931689502889604912014114436946065719324542519389839293717544991691407606922062364248240984969141568853884583635728299710686864949468772926114511296374551171770164658876215041229552272083622338766054295309460219407895381524418722728942650618040473584773796467676154708252370815618263786549203000087084612513887521783863741353111098065359904352533737689356608836199787757999116941150563971016462387832623621770975063489617288539412589923616617725293892615816543824311932206558926197965509043889805004912973427142117156206234294383316255448908530394052900918269185251856413146622134868003304684824585341630131044343314837136779030595024996251869755918232298984328005685215292392393959779213622517524638801093359279966918198774936485101805913967477390865778276711267929789684646249106483287126441164582364451444158934084286061012000121969778553292159627040686846009135419872146665005881364336892890948945353969934868988009256826866563094530384752026708746018800603135072443322019353267026500571511912567022042236290891289865050426686752728277784125256512090548994195789339713517046490616922604238788929787377405632976509036357820445610521222005352741930065040456899452281601082315186530236907399700630315021883780155365208053578141500078711972718972364454714263976241494632671045954809110154971548585707027694644273460683750416094935302269206802865395351584898479810880811447705614002088321233510774706933028050849965814210867943527950012989513446694012688902381063526680081735831156253113941906851767081792070495842502677233127175843070690763454888204700821106818960097205098087872104735432598324636414312158805612110097393771974853586172525929673370254981433432101682188927470419335896611209604371027579213866948492985735542050970088295162003135529451182246838423567316516879150962307456761948397224129918913987020426148753729478999063702595421093623425056092792732318141551746479844508919468988038336167505289447847669746593021333624184649618933481830167345215104453823941878064872931244000343882907987478355962376408664147242864119957053771299437191738493987777471467390792011220919470752761679377775365939468696962606571146428348105267053757448371281980732355928358302939239460274568210505091867660077710679548059494765813464557852775727143521900501056616305387254774401917010066972018154913252733882688934362147609353675300323246460401386652171620178574323014047086384475941958891184353527891997345237123317612975828561478886594524433011201406787692446388097879170183188317107718450656185177380347131265429200429596025420952216805185259482251238486452757943507948277438519225458771923365682231501060080054730834570100622676917812982037049544759651180765007293281827349424972178911612666185717352953081760395964662979974181177270363558028840472417990802712441733653189806191100723830881724322254859737836496905455133799866400402607800274217925278064897786745924418031464207032869680746062270087733141305375187257215244759541492551825674177143207471235620948700429001617870741254058637103752707098855432767562022243250468410067054417175181960950018241228394753386520771408597534898281588723251841329571988274207179428350249041188190301140254758053172903017061749525081237602387782187930679412003008608132398944056272467300574833807271610955310612031799296957021737198891427782538303729341685525157198546708955971025394220056617971435875096654140713435233764304796272354096909365143415801145397630154018573902265434529221036188623686176097283114640428047066994827365626492807765024095676931733891916373635383393865191766367697084056836784721693683926340041928405105472447519134667648673280738224528384493044879958212925876380366967225013523493107392528077798325243353257626151410647786030411410862260379060218385652010551093293477960280877936871106220820368374839666173388642967845953326266572215238614089454144429471648210668770985569205381749576917621445267661902020096077999346267195905453537399959439354515562508757396715692748886998144883255806107423130036152732207735194180461211016227592383552199539518851343619624833431700829680017426161839333033904379607439124489198463298176897676625690180983349992189037760327375015412356007033492208214318281833332474452639048250128124885244785146086415595779127050061286547695013794512032307195691805911854020209796065713417891455510332056750321868286054620467049983207281969705742923900516603949182297460135741579389713505156043308803871916117856841761286938883503993645243268281267343666253387025850589863547308545607215402519086309027825137680161050812652419813880816823115046370518419002272219394905840463075933112393800409649076993574634765167022336505975302414324602167087509455100027020134336185022160553142460776712057065494881086785749967391299583536051151702488038361209249584850682666445973737090727925376894353211790826786212330826522033383838101117753285092794974442224449787729816879874777863327811263614424563490532669357705752793886335839240338056389819249337158577681673468849677459503509741702854187170515198961332402542314925929401482652943373521563841717191651190374432324039153006852096451058920247908317781442668135450158600827167779203389590253700739982447532028769064504610139249365223826874773517381366054884488612312632350050154493319848067993371410835254841051538857917002689104869195958551548100879812134677073760150564102415533380862239009749568603578562310856475256176408987081244698152412989156731369603332333170832149766116187808788051730805273790741135045853910580808834614777169216856832731323047499174626856350145776809904181454872273691897025693051131252534775761361109982390441073707015113496881841435877770722932836738931021210708751079533546740447133172291898802027659384414750843889497565246806938883120493020714400386031031550733504077767010455467624484470583084450481200125843654674358328887487715796937173629026829659307738621664483535009158703141579870567861908586325619226819264328840341146939209216269308379345633172136412820884883234804032697156828774574526652652560274761015948269407704768806907436817504480798592400986948091168823693497439657370547076042500950206395787195615077941724880951490644649353876906788659888434810453195412637514646384633753650564670460563166255965860443352492624822579998143345433886513463648505392555470899121338010226670941426441063119685060939169762490084766601511756020390844065147991946841469244784672330443489987319729854022127302985885667134746780147100101711073597819642908586543554895463549858908182483245813713532982668112733311458863564863654714620962032432801679548724893593978246362661611484837650447852087622192692237597500998387519922719013084023450483953793747856105964966427463292298731477931305829122023831091128889120796233191043000735557227462739432895287894810905200528254562195687704952487140967641516520531674931935267069368939998554310031161027999258898128483118192999925068937400934642045635089984561600822195149760633732802053741780611385389080835146205881106133657863578104342316942902180255395614732912043858608687902104937272037430464242643831261222859165788847490138694547458522522947578315266722848901589352157384335940507541499250637077264738932705060181907736800143563919526958417916346611624274087480793535887459615139632982630864533897047356578421815128129524736080766572862908875364095193921963756482936491575624444941001242213373183425709441841651646946021863523606469889711078048404547309045277476061408347722478862920477633507948509002803939024523716581907092365082504864004270460392797875314698207518801450362493498270664118896938846524995325484035458889206494459072705124715418366511717903427374155439440125564261164588307779259479071505749902506917492585760693160056357638115737501870433249013440928576894999670472053404108754134546025091383154340272560827133091868434438611982331762504323376286176322049294344821357277307883558398099747950107158521117508660040295585804457876520515582179242099381623458090318201336814785032184368860561812880199421665103812882015138490012663992851476379149352805060328447160255909001377761022061862288340360335471684796832315796958383081225624040319255201431088923656815797303952272502561905857490617994833151499315011157554004213678209897364047071489860444831510396061809506143982007320990219842569830585686215717112462123174046672029291621998901595386255799437662695061797773285175280168617467356527412031747096814973375107033725080660931387670442639796284960442583312408400205063555947699428070566554312077874197179279554516615935726053423653820420883043570027400159278841050488282195364499915543235691232191250394076253202767294935040722453167292726307822598802236487080314420094400669150259706090531139692086663221095386384799294008673106241554941679832481117764648637604832095656516002087275944560837791614119749933132397755582188269462391448826973550655476734982424437463871989244425437834699554234361166215206487722776055187315247430235526426014963198940744808643042994122828258005529280381831269171482180314746630866388040931901478787576031151227795607684848346442179074883895733794620682980633730231219681045251027933888215021713285687696758367527935806151547941623398885120558067113552080877365101438333070280993699493501872960335357713101246608131823555782702154060088813679472149201179425749476528418619218971501958859096359699310862714929448706185589695152070091938437179322876202843148842068376094424494425259465282610144914830268468670846500682916927619071847338138724977885465708449064815911641253318311228614574159791826533346678939282122639671708010847758742815616728383641062936384380022348992535847905180769280732316574047299472993260105603999106345101224683418904622905465629739521662274012479846714962463003145587956641366742764329783162784347921238481001273905353243705029492144092160281242085903459721212264430984596528327021808654114548521150394765130613598797533071709526462764752489387885223372796276642582123519566095650707431663260546205069938940595058303681124071750490598627572549942528024260073351607582882724725928785660409006590731861704391517215955589976415363832385954237915501197106964041566350220094719627441345372841993526037689571472705928650891119402064595083248223816317586092659075701785922217962080117199058030463134004047401875843403745335505819966903918674026955700814982799504847884390937877015781848501876793484833761144407560396930507446393523087193152508310338278357383067267329610323194091357999004692705605043798066240444980289762759012511524145833488928164840140742047440280182667877345263150682279849112823310849557891887186459603893025513009645533593436212081828652779475958065100571319854156453320550606239338700637054065700026916019804052200367266286324644533094099694930154479186179826502589564863936998940893244376400022489519614538100209817926431827291587250789917742098292508298499983327725632442718132082826872694887649505760290922071782299103032535979350964727568077743071652601352920562739571805287160699195013202661696102440687667398184060674329601538941724341400849564016900202820734158027213812904845040005029326001300506319206894246005180536567509520433740656547074140296066701892879816611961167933458915432765879767796556403696479434813322829534808687166620461920088404955225056736140551899301613497743575207859065038307545889225906765221472761412619080922805381240377159204298320608341207137806112917725254028916524538713165205258575976387044394069441352053237286809756582181573596408187345255131010685814809045861623631027968166399767488770331326833183100595305149305899461526249283069097964509747779348166113461490739687769177008959591243316648116538944938779519795157086625512264276101356186753722284570122142282334150888994854698276670050583724618615147878015785522508711257882882742563270395050577841755934716908920066583950620319165888066336569664292222788579600864867395035042624973788880662914917270997018792857283555550619829378750743977202032092960889814062846026126694175883332003946677921908180032773678765702627669020891473782503272805250322511406584155828774608169340477567511838261143056785347478331113323257835553310596503260823015863639534866876284519971914337940044311500036175314127374710670891953915276047570822385563838341575221628816694318262522876567382986670241381075750764971444218338961794264253228994345398661816359089162063937750132891099774053151849937125921705686150881544229343327999985210505734041288067716879367423887707174424113541697823038879425036799345949548107859485103680381782419212102043192386814223216289320335403939970052756252576756481244846271767645066710795211432308816216871976454682535497859898142338937470681761921503030379867764988699703412656682867636176840427438295670464868964140787281343655662191287817833348214628194132449884915008091388471093269977836426827322592861137959845072528639947631484232228205370864051937633870910185563092428316971475716458306123709182855040297373833991071612397973734529922364517149114092257606229157269378245738882683774540169899021343993522324141211601734573308236478374839858400524591795616938548177227735753125229534450222600464543929883684336156671535484968398479856022461163587649146921836487721624411996965981880295004906400519838409517150757282971114239850290512796204520480945949790230836650160345433788746425528077205084146485687902601689314426435438556665050394572854764626474889056178372192076497969344315439031593985477678755036924531260715684842822931020654770282965863798742696746469356754869880209093180227701222451143541577963871677205151724760508847809425943779842805401111349266104309102521535571848099440551230695070681253243933561576388496332414974553850524695982191407390849752572850483937462015357267197535236280969094365003676704331253150019719130146445957395523114869269519927461231484186314915551901929360127446280273192628731165391985843463836427512292000863229749357810757752300550045004764725629841858308062388821452365739812846378327260286851012753558531496262069724252929251240619285749668395676930965639781215968579691985238708880934473593338936251006108423983992417185339550354034448745639198091889132181227965466944769873987558856039508260054101543129939857083462008342587320983504423004001400344482881882561586000167710134714427709717505325604088406142765825974872663197136775189815964128839843080714464030729788108031811570708989703676535300752230126941702672584390247703271278972314263079726608393483225544129155154514298979787118610032106323153356689310805892529210382653513016188047680393112043143244786078700847511844798401354081877593914848103705888296229880473713020773616765741855942732669223741339706742820796575225278583773117803652590695140459454405524878355934881342311477714160008365689343147674505755786855381572665445221623565009947104450063845419427467258256960073998908187525594178392114580223760570898017768373872401372929868301024809298511347042248994013213937244824584189345678615748890918573905551209270562472764495370711847130449678335432077688136317525418006556261990189618447535232597479481421114629670041482717963893626060618187792954023842710568088677160817984144501968794166195997069598160678208074007892426242101298663667955132443362597755207134807240054720326528546271737379157229648874792364374537660316238631888316582128116057793719282979314941677851588049985193637650892041805440931105488798208573958884712986894790479363940195467588090909283771404793891974840001715240381220024620953796439146888900970181834477216765158169005121677561888077923138924541952304007938432340732665265623770895980465449250763596126647257576875777025101614812932922607442568549511735116257323659545233407146654138517044155803097199015243921397767657107822972425251577297093808871987517450078106765760751636710927942385620253212115761255122146682465608712781011530775206443610620440006040474788681054631223049590345239347772990158025714964842025658974005166608300592092889301352523103224167330328520882219712319640057769898421660012630750426229421548132923278171902343044565089480487320296706740954526993208805025380687237427464390418906188186140061443476036225357735737194252042383736757505418015424190102164533939446407581368149018106249306497292350228868163867928787408208174935961812544566103300641936421312022280669279393565323762660510903127446594646563274830362861040864543943117580373063181148494747049988270522605481799811923063224851509919765275697463601589067783000514330676346206349137092953803590332272629274472751799101373965279057280291705716730004308690852023004215835628116608373921522222796343732712626151062687794850123199420089956369313433435233390455202496633184065648720257870399589324917334080568312148324256798473058626961725162887632007450711685617204680991923745649294249924233441244060791508832300660497313106664608572385303227658956797213851154068323530324312942229330397210568900905864034512023672136963919685994579203303713217777430362367668750349312864620377595924508275030746543300998746134681888215539916839573058197079711461099653602777166863856459595422656334904001438350944150109178607302410994897350349442969177634042905428092099522409130687366669904400454437988657833620276758170929043646492153861967717480083717207682158322002953332737994577983692330610018625770481386870417735789318794840347274127655932033219483699349789320865703157226826874206018397196431667677860961885367436995987751997396938729993108313885340302111052032543033556950040599580884695985957579845563900277080175549910214171632840351528617326749376005659837616702987513498752415784274290774138765179065399597307533034120349356784649229801792017295845177148752370836012883310906014094347982593075368141148317441855597099489805169891917965208841942408092305077346555189174924442413216468318676462931572844801114579195768673876463484876005516813037528758432417291116184592371009245322834553291495414869566224136668375117844828990637845806975332630694774537029040742879954850636919144900583143457644966390214708487328933039763306959161847458580913735371156491248199560814617049945803320094742601754623017566904924621976144968230415169514895303938729797345340162266327186026517466396964201772733018604537689837895569710136356864798351909361452388409477151562617667041314834546516640204441080639412387156163494789325811093144749851950185829922776699837591758556706141226735406901677101817412542658357158262622673283392481017603063587035294451236626251583751623043329704825963861456560088765627968569329126875890363955685649759520997123185508887899464290747191507252866732739414843500469877841190333557267322671618441999867745986283190301549998225960017252068416544307859214270920833326869783989369321849029633653940116169691862527125562548670147397945838517502679677927086045281387315724722460261767836179650022390901239692802289797667328747875530948832894100204542016023525581812716701883319483404085867713299072680568650962081974797911684178791341497917407822996394112734544023780855342644613548634587944780985964437893292691654679341452445135275046676217117577723905594696742756368965696784360836626584470475920979365314489099157384517924729397443344399923665635533699232929050667638894840472315153723276478282839913844519144374831293574009402938328656191239596590599302885789871592324793334422594756186425681218324930623550841283136527280736415662936159205279651034482078011181975101126649426725371890040885802983850416820038208232242639714201376869293982148487769728131084879466949917736562604264119590702336969964480476920999989171941168780100374640521586177002019500347984250494878106617478855913715202866251868175940646432048595776001598897500673185349444479648043052407370554343248633681942458545988304012101730785963760560184270051454738474007400884659057279920505730221803431242478942368772623152150343819039845182416012390338576640384208924377687381747409932347802720675508040239096850387796148999000048621155145934013382341009451744947766295059170820189785901018486724012811888103218876262038453452030942109898730808543269319709037229089272163228785520838884619815645405349845086762984070033966472387075002747121238713089991997047023855797676054320134395724575102135113505782288558957017707607127415309734658505012768844029481114037969901190675931344035917304140891210602254804474410313275587560070874938442283858313943995919491611592287338207504863121935713050363346265567515174475157318648832680892938620439572761963660023542099924671418692586241059241186252388842711583297962038867004719804729883290533671351676646762685784544539670915725344771239387211996770898574357995857403945313555881973879962496317352287772565669957168404244402818648867986194549376079764679097609890113494840288361804454416055439843646840696173884970497200966450915583458798633801187974305686961691799515251313129784887794964278085444565632388012652825816783532737130268166957936904171174649892981361527113773494844376197780273760839305074143863059671324328129781902236689762255278200113359266403888057457488685766720977502306958086403416457098027172162418230013326911109218846407446578719050506518289662688845597793620410322129953245325147909207432296209211131578805545799266759300896523866336472179972977308642114414922340944982897014904831184576465005652914757264391878953925390600242174481284832498688043027457254489691076837396746439524632433266897995898353133857019166072250925243935631283586793005408012642075387681561095476059440130074460237356282741972073052527841227462916354683894622232271103529569043889916891740826531780085136263525041195542919824096339231758708450743143796328200617219447720694770006041920774596309744005441178020969242497154754600344710659086021570129016174330411971428668428228628313363098701772970175892417444072095760780402102950331175718522097405957518293191080619687421818102141007740588994940220696434369980161685556937397486867528134606606622636682794546796858347555530870509837176524396108650707040357431419079523939636041230387669256138428043901695290258404341841765542357521976734005696799120245830371788023978195466474494987679649056358066425557163374814694637354308086213538605864363206172447651252662681494418227668820694717534732833243940395348847061971381613810470965530806323730877647759464075532658470588380685552352253175356274012349890972678138065759740779754673686319677013625587239220787449934537804355367279926368956239110372858654687005525393939810767252139667795698472160814184583339506320101563239362194537549983963469860013915484130578950055069830273105222948122149365355487012287035155224830103131627395971349698088235411278847543271564353463644640003881260394402515944807632420105087943152558914268356395880704191429413811143023502421631336130695928704688818784074746520486087099524153855367793758110205150239854288525879686249545581823329051924613310745493348339419810906112387885619167120853929058521407482502237876276968335624225038888423439119999052144320386960369107636699386640957894609977262276174803785262831609745779037003122186049868837746310510976596069130450365796886087324404134284318184593857665560556961791313737749601365979597636548550972870178630873522108450861172410475605207418995226772581295138186780099305186159190518562604029965428261714367270026281786927270059000207561953324663071527863002456997538071426059638126122378758799320886739143337295206214669835760626989501255302928779773321919623452894766092457874146896921912005445205340029286213666452596852253872340285263638773795175957400316621470570173369670635815709598046091618445126713223376823403969808980445771433402702375176416991464585371180055958679354793578598265721241319190878963595948993523403338956886670653733118931614312640564374784144651447621996894475560730499347111542645668158023111132936326399369832121557207735232196407105000310174580865962179688294875390348893430700883477613498069189275763427333553957927372509305134545347202619839467047994903897055775529569816841619854192733639522928265755658914798846791332381269106975132753985414945424110834639128437893746776676260903424038003255709778461937617573699813080283518321489518169824031089158079692756784371128760693844470745677824974955586748717173670095014173402601453185396706698745411813345082096267980475044939372523902603057360812566222606819378486445201548743818863961648142325565084572119705606913413974059699323206164113197464469534305436097731835364987375452965149325195946481836984779314496411293787409575557006835753466197189708405879976066165470717207930208965989226079275014761313963724961925968315349967873812179051837018481598745368648014167943792070317182764912831295227718043066808734841077209253678850988151544331694416601942975299313704558167967075610965247783193062506712082728967065521438466913827714330585077768876365758960574176592805315171139701701793160761492370443748134292483289525194210969157832700241761437838205340564559702645674086740777025855180633593393697234814740848727982492182169561105746430404519121187544366037944122000238324347689737479907513554155721070079267003881051344140013205152171835966789501260450928316912489315394802481533994904036047449300971195810634498986283885024685676368855016365074074934419108801481889182650056388426198279024398564033735160603082201399271346081396858888723561707110136273125290481352352539514666036175938599330400569378522174753452801201040481750585360408179595720181038106882977358556215290216285626205201706875971982583639392754308252164217096108949296687888734433364336064818133442621118394817530892937409691472290703927849269879404761805870083977521048170995563380448388002645140663398446584705211018048481544784772396049784565740413452111314852101544824361028724856217708509461277488606090178956588035196365506557950380335587663073645766531122721106327198322321207240447074510579435794333737927276980965500900432627097354302062606435733744892027846362558825268028665526677460750107090311722214015519056872987371774234311126647501155483795875254071064814567297358929186224979330395359956712361831715890775951885264428050090521722577828810709116572445766469576843714947610658591789138971947170539874564424859041814025057025319538377260162519323812906838766100317795854432788021949413161488945249294220250552635430586220324286076994657039575900854090240924971017121947493092882286508123766613710213297769294671709343260622254401132197941807898361202123917996796516608479707750738445113969965685219879584569679090149007167530187711466503113278378838034708618040424812831480411541435426404806520308472397181956376522803746317467664917994219259242024339590919925507853407971901487407412968089474109895917217823091568434140133040587613122333660960036639411690436723109175125791327269438771054802537698892836602495975208467991879569572611162710543856772443205993180163328596969373287064275363887516939911365897726870540380573543104555682606385268912937939596028973590558791158571660619863538756846097365916568431780936678577993906151500890366254181516176549127468253650547886885967019928646142238975959387942473814561420350832717245285066321157553789047280856477263843410066503631865184245411536206788401454660950588232095926895154330144209712403440290911365657509646438858486763555112770488824589848597421065483623409365778276515411492689556272016225386962463646177076350939282388728097563301757066803656151248579350288549509623001583978821494946878539550473502638802255990911815034510756388235121020984282264361876762434675948859174630621593426101221689960330197042886243181095685708804919125174923187213473917579181451400396300192914233905791295639809759093113339464921867491868201404293834738071533144182546582863972812517189478132108504135916633621228018392789946781301384639723455908253163238868135232538150495445087676537407012571478215520286008241200126585498525955960978781573446105538229043093738729016478848436116916865681080487065437009646277608805226533010857490290189098464973078717979075612114654805556436900464693594613715412273894883500923479789852992252390599688058388020082068966743294483997357284152533048334227533058793834707824228796928928572219370201531674251211760644536903874194138598897961728781177512073025966839892414213996177866498479578903131603255883342882714767979350865237705314368999999699646512521721912196671632683788333417185369304205704455343313416086808317285922562816026953525752121413697923314668447103847537035112326687819748521685357929496341242426330568041702152851912607066971014828131065711398242679407456598355129058810053996739953313613958075482112316428549643260774646452135701436934355593817296669060765573269432426852241934548140150438698435769770253549579764148426460748331957744762300002083313820517882824103747217139771134095810329587537156485386862467051074035483899820508895225793963682734836458944754088006219056020275237120039903755911079643748072567933965105666270039824133317118736234917493565020320775364758304664913030947716996098173930415195490319892588150277819480072201280120401233135350450323395319018755540839244230515625265156616627371898283934155531738941670164699743923735443663897728647824016352987957534184900215220310607550511898022194688822596959349946930692901278444715431670981904606730678669575314605770915647175264412890140036045638353651715208423600364620314107970075375481257740192612909638660819201612741435814983828317501536963958420781788099799373431830109632216179418649678075956830439684067148761438515475896039908971372060954137778611615278439825468130848766271111557409306748495200205163769873689811261255128848698077535679808488685770827265361626937701707075484714256599840656753245867901349176624395253397562982082289131302226222003611979642623777565878419679537320290885098460990857645413804574019904483617262013127953939041567632892849691011730806903409931209772448415700013759182585115571978938991354667322917857645629527368455462832652394544433240483565762582241571944164666405720162862484520657593654353999563674735084773379933117681929248121702244024048415701050283189237134332294723158930316016084598908970375056032572172440549399364479953851412124409454129544677888103747518108516418670095792007435242669086223108491930017476144577994199760060520158605223681268488682340004844874462346432780734973342081618594985627972338186315497198972285477060158049231465774647961217481984324424758895284407895418664973101813467300169361585557361161366285640165259681696873716227862287166223517887181082048985493619396463571753166291619509676232132306967823910857112651618563650638670916388829972398755603405909462866977820181213736384029276888823140842803031585065226491885038965515652269439283953895081858542624017638521920431329418734217335749257898648154871213178551440732441076232350679715260297652690918283553582299055288297018576024379374486527186329510495071511584536071930981883215756273289863933611277720596646361627487056201410916520412385796448605929254149680690455925724459013664245700752358024476875900082233252963462567496831269701065224454385512677093106648648625721254011843300958547671607345780672852131878173114355778153446946007732241093992385214823788597831098388701404294786916652659581246970869021046154462999374838673512647100702181454645394890230694806057853375196237626092611231560012201443449901798264847996591037347858243840678365094904074354620343491540374362782100716857132874177913468344275145687579614876442147142383269795528952760720381136377824026434071766505183550265204862935964050673897342418032621336119444362338984511237576991040080385206686399992301671930671631305317968098905637128627503106255640299076085846178829348086060691626683820756386292630344883795807630254324103168889713803981785196026457892004007566099853887102274063976634607884652316111575660860723613150874740545926522365290685167445062514211007967519478070473034381361752875633843390522754252997702834189297478591492872932039948607657055220449252294231174773607963273516359555643223203218743735236232636297845704002542479033037063758822614681768963887668062388909040962603015530356978384583493975303975858121758508219742733990886809104758195044135296410979770518934236474356983812500860826035938027919433025085059656255636692402428761370216771757052663042146484298638332888296346862495893535856790964699693894873549212793117798934032656657772851596246869836423757292014176605514875568404404389444901031879455588775888124077784375735915156794738924462987795369908202962222201161185638828631749963243592210620064865698442667589486967126839809236854060384559392126802320157873791534878688471622350857715710759648175498725545281817671854278329755087960301580538306620950374554414850276310308446895392328129015368867878034429316064975311738713446981394729146368296718800487009942209697525686937775300353460915116679144760420482709530733293966297215161587264895000591276591229939702386344342272499976172220585714066147178087217850365438275312299820454227742528534412320292940909500374789177600051738922574446068627272038818501944908609610563376468612877503570347231259351376038430311075147906548338280977797325103505038945087284426950583871036015489664701067270194326030870956069505847655020520040692708022820664826146651290404981167058643746679595818811659032589985265953951671320080802293776872541999628475531161760110603256837000533395630851050122374140400858862935046082643176986133517509109817498370786909189451908349690283670818284102859375493697632601237361874630567199782101804028116075232088997960817403427710823372882152188358598963373796694602495310620346674310528684418512785945408258101839360659101898171544778200748775671014928259249735990888479268559114259835601196845962197136997359784591719854464270220527824291638621463288131996774524443251504781004752331888138881129912331721584486699034247136629742330012391279774486709047255309781374469728072951871921334200384716547057009293977931821496149931902613065057311917180121750104949579173260458259407588782448983903099130271161735468351765924193291979456743646986510335127993802808954288126378658922664651034172836239375851472065011928616304139270070172726122353446706712216756834076687730944957666218180048578613742917266754964122057581830164102537224109895373557254608418281702883953054310050390345261623410398257977698546974392059097410463766189290796197435583479736869672256750414823850283349296207185257550848569048426053376588479657203439967425128579158875995266039332842349834207129824399953704691062655899878191947276132913837073027038631333668666638525104661333653297498261367612109692622572602998870410912212278638702811479311058385749103329663906464375816554118596417886179630564081828506888126705521100775612648243932779151802762580891193021497069662239947111026622259747554068688939308563818049527372246236162532839662755783734719443662028841303434448139115683601446778720552524105248822519803129353332551212087704937655609224499343229216260682326789130420439274324266961505184491073316345203310697760023953241161697294360192328062371283757961048556061019636689909146312362626468394530260889155429689137265584047279285374701154381108981824456228648447185281681965408303134398114801844339709063411677851910647453003283094099520047277311188146092522846463248431129527000875039472039952789656377240084413065618458891059354755458648377359101840675864642590478050312454407660059423183308106524216994793694376815683103713053954846549736866367923000045860144042407296790433422629393715833215459288357466054976159293270002038084900734969937596019631672144700276452443004567289671126421945033500129585207864132998782608224437936506308215644505647333381545919213238424310333020871467881628011248100695600870885427949380453632448092506594327000278613111045022454033610207800243343866135277145646885667899347852156281884352264889149090813068117700564623744034247489458282566759941633387303856742993280575166010924778917390982771738203178905182601606927977952208966100824801273231492998028665856559234662471163461840580882714769411208994077854637717645835141942628284947245038565140074305583055117901447204874468586260095998343878202985904708807341147884003504501741966910803584838469458602257155254745780245848835677096256439597779951697406066651733626256464256925765407511575684754956982499379095648787940211117732394079234387523231558867733460239712795329868355290823785430022404269589011102014225188920358573651747968936808827245959897517643389067106768272776575246319523077342014224615915737841520358098224841970230771454449448736310274650680601057725064989948456669689349563313070381461293111872412197269905418531035087980620619813655289548781800210257146139427778476042813025862198661542579144118281059157593180197974894805733088287084685030252564367724899412108209283335616229376264914637841009596677923721250088562176663164822523638715896682634536727090777351208350566786039625859869436375605132017366688425429761801187564111410180835030317492929001155959177948667769660746032297594593647164479198855131109888310902424473473521430697913371783876833570041033542397555141308806255359260040457997258890143359357676901479375358314649555029142120990479763516459932710366534889990196050062842865993671797041870530989801636787087881108481242794894731976314688459897552107617248005243701012840469836290770271425325362684527845812194752662942237742902123479208076663242178892740500692772341871659452217634044001044048277394360193601139802688711222022994791158879100001415745977220246634653821538074060651228098184291461756541229484207134247173989850357578795670833143273318399676232341960142534766503773138035527771852649246768968127497670731790903059686512944386848375405469715638044799666954845085635487451955722348954505549949641933277833103817581736463774330232777855330955555288251632423860954547160096039901477901892837766458473409565016552317475952540860198277638240428563066836067605908843631530693896611283008611210065804521079027933282925600308577200854180575493446725279233589540030864029917616925137097183591692785718897751559141382102490239324701367559981583227912396048122368503462381780593396314701373060236995615899850413513867403012763159945965320269125088313189978703143926953819111618343022474687476001966253040161888335706908415098147525886629306502136210483121121388101760242746531653450423737435021153123606527838171247106087735809963543169869151137793506681816774413040456496655881942124044941463515948321472937619078528354414115289940935919714300176345965402900228009665592720510925469986144625804625407593362415979476302570990776669051441492557399215717977845614688697585801150366761120372396076478987291822861883522693036080744458097018594244511817875718284484023481652828475675520260483745904316967840153518039340939938611785559345156522670616021286365024092600274147978737601313941313931188211668162043207881840248723450896965722262135621204661403262442935822820717899311076372538540685020443493946531785846422630734193165279686395389373660481295432081314660001541092551960401071330503946773373284151501764118436217180689846214763080732060717537086044353765944993564353272070225947257831351759927283755207124340428208653740500418656152041901203822112423918462642761973034015682581008800522721150028631710543325296956577296797887546794046638517283647820457139734098227510793028276155397662228323899353739682190826743342889902881251978572816696146721103970791015329793520383749199115347363439590505844286452715637578459876568035199281858476822605046328268782695471241375350028185350192192690750282364306381143038194920471868873964385228573734320837490274765434553804557553019402420574507248456027798746868068662025882857894661158263081439305887614850017841626777067605835631508605155064015120572616053447817345710858066838883661810232087649146207829607730152454937637491464333649064503555542867950595751918617876061191424698487571679143591655170884905431476042361200327907933038755664228016603218371946594365201680123923765388491563025396749395898071335706673167900036102006217238751387481676939683868060986076496632948487654220676968720039277858658208413440892977900644901915141440703447931556662239132997763979582176065179554227966572907680568490904801084071917751733190888274131012926111892249442404380485119235970591524139833883570308626213745228103038220555971815195468616437956604833465979897707536134888337615515990257525471339012807487593449953348172102773960946406713359255481017191625855268519471534694090814316360544549156888903769156277870467223968122406449540387000932740740804290258881254867204829191756923164951005535590487353332359399272381411756977569008615573332348361269017260506291614330053534933013811481888728979297565863075212520478497730168632363224434560816955471938065726658259057584634995693893872752444321126287137527945061671965549290685800644535291027548430419050146250523541595815033143129644641619984508123681015321031878539788339548212685866236613280071338513754981999732543085408920660988330370965550543377602734917750303984644066596491502972309595413990600107824967684167529204651338496185206522147719951794215585740489319009944444956482994708433739007904685785956313264843337002130527994890204401877057487812766808575797436652049024621274747541124223744673907181515453518346389984858066860907450352183356399784299958992068493148403697222198814649574031625094292942664863434514524980316092127863926215322234342627527525367849454934830708335637741296922414270346928880176776573617558671688357714068002709162575515703488079538153488232384100129418780857932167175230895991962514127915407452425498262349489410942892619038577383979251010996223488363739088437800463977896387249200587005027474747631851968946685956175030053638491249473151419485869745103717285366753025464080220371254506336437846646177726139193936782425805021006048391124790349552926707966602296565903216863454189778490778574491401537415864551124837510343958214484239088642340558164147316614849883948373710766907888213438659805630517137906972461313051899508629448400517523680564358656331953984783759851502493864767783445776521179425800844700308390200316620703490221158104983103012024050282741455406417058123461126298930712341966680193957442598579686409800168648373624853532670591727927484789541252557157589269666175403804932637995866661669732069797834682225663148688056159735013876893060836955195653441977096443126086600411315307878794898405947173829347660592131674044032561129177587149785507417203721899767186569130539802942058212600082541499641820774230341940674970694343385560510892629689054943172364634596886764842957091599280556945463962276503940417875650048219044852271531729862300120636902861158445092917716041528137729401490139815510963553185900989529670138813786909717507671652548380444160324150517625598527338562565328575580674039853318085987231609233875887448306360648955278964831201730697815078247486277845092911177306982849470211401902415513095042977024197389856298292729134023377188614913106427610189846288005938302768798376521310951339437914559762035813500537488476436773445762887545577634181501697289498315927668875647875970983192664387813091810050472808563514066440009117301253476145147774300050212111607850120677960153382767931122993961679606435349432014382234429563581103157974423030219540707693849218922629362007137115626525055245108555059033161212224468083276992708109796806379106435917546543505948461128897977911495752724613124544346183164197750948522664520278859746628260792829136486932434397615188395513345465714477459613657316456973609192543026680576727277754699491575589952425510601915201848441485007007005640361726299070506414331939773191272766656350696724878880803839647114276417576645347957555374700335174483398644754278186967420399518742616939139321072049106205654970385998784617411447928415804553030962767444594136318356809613216028658867296134582920147250724878483240894607891239619655038453265923155224447426214415829050324805276561661054982953440075809022084084269458789763277785846432812393063017257891618116153632736029445180837592348746026907499998567395425707291841301786767758212168224804593462498936151303969657981783881256450741162802416628675855778007881837918595483870463151438426074649781585477518732183616654049894892947827012672722436000990254280424120434413522548470573306825386439906339987849786832976622027921351737402862327479434370910693786599217469204754692453833719237477842337407176826724922806560063725692431250900163813616498730474728997266252970915583609702156573488553101883612710669171007575981240453086431507461002286274949197441601455941711108308094627157226411619617884849261409382651349670593581972650195385736355310431731815707485831454211060592102509690072367025697550549542196775612481347199176889358948795995061258904474237058756074804040774418162954202776929744115665626415042733423912664555855105842985497760145295776695994407684308695600617553132705812563057815814003235522049019060269987245730448667647904812739315497193059815660010687363381742154194366652734322288695037541229973256582563695342888851559134204175371429967926891022975985741097480331365896406144627914629755632763909978038529910777786993248909071856112800629152285879987748274909823923783067621782293751828767781150851435170152815670126239945523130067514105066076164465592224902995867976216118159240955063454400114921585360532941317838268524904004241055461448177555569017816936653398253748060002825649572317518455683670800563740464339354719774704273764201175110375584257062916391003858202063549140430316142563793169793259985888968225630261454072203531255248195260536190673189319924121541843209502989419922776756816088001253566718107189519440070893568488856114643326314619240767650153321882539670275547012297166497073950661423422789199812340736247348724192061877974581962038485734676170103534219911608631765780975358896510187951152550501444372470290205569031900329593747443170892617653538088340394451171535408447009722414093116338622212882044482701365467156816865427410637974781914760802203193637000191799691031931458826132985034979405879165702276081852548725825491760027570070986380903852627836364222415435381969250693637728672119354987982173060884135606654172709389671326692526432318691437487895991773302956282248278606565737808798046094496521327949031163041020284089446412757160557541064256745119123586305253710855168975854731082488860365424491134461137038838262289164991827170465350449804357610167493037086237524092162377681012370124739664060824718462168227688894759554187299803355891257267307742754447645832068697019430345522470071813471516065259149045226903590887366723656952235910660000544936090784376726291118365178963303041428792514519155793891043053031855875944067619663397496555742643772129648230193697625211675413733375652312898064613688803153252102982527808113573170369042866323651399407427550940963521597284705974270381831515440208853021040747997100151604573599300377915442507185005575333774133617537154195001176866755690508935665908101797832360757168172921419357048321785697140228307871859865639636130481833016423054558359192577629147085288446845048948432678309224976981958088504360386827701273187708642196398126927137152319514718352789259942914556281596895393820778760106161178126080985285183911943588753626535848220211667858788392933649426724898187584648622185249559082246958470804808225909124458267390392981259159427443242297120717096436588751148937745284000375018451285585770834657467799810919305121099421398396895188655884873677847049302342156393874915817508862294463289223797989645278605272932279842927080439192563989122558802181850913459868019285516413806442765145058182944849298213485278669614556228688700165916438589787722569242826947292910732193787414418763895014367053464581916330457413514251286652714196445092887584617636324636186103924032016257756886023995082147034239076155121228824523575507951042158593032012414583214253142908402398310155519805249460775405057800189191138277611356548971958694525134891271571044124486125762998346510068244333420542238394020585480722075646410837655724981549764348289644023740489537394861179963276228189454825336432552496975160690021131634462454827755070736873620654634192477303990817950646279801717297474180281686067191680827258000041407651585473912142126394647439510031687807102331284540184503218351325302268307679404791962097726264570639927152242421153283823920464554636321841386658077554211325256127566108640741371690628090830145591141168262085186544388605309076563453589225723674834507747186626659284924702235749218106705414485086329649186971893137380422529981023151806369235970427660261891387112122435205428510251161973594477175883680664199484200133217251323188238760684916089254776802074672201538405804052367176019445013405261524655461729980626193465910886208338429800408163562707179693146453215013141914117017308839477674728491399272488904684969357615579147977033445671360262917270062541808973629585836960641880036309960651002530484379061652582905596817008167891486652464747926330384029028282015401619049025143665253920655807799708888881944749114663700424647216291298641919092449621125521534714237935811790401538604117858143855943871203688511350667338053920635284259822964673743835308586860754068505928492187914667444280354703269994224317713475689708479082911792532604072466242659720985437289085800892037143164184368139685317273042048883479826132067890995178545481581149639103610623162148834145808351786991314368379776596677834425726362451649555958356705668491695918760485209658366925406446777061176999055884802734975082687999294303493459223950598556994275109283862445038498557339840019511011932084391574032438429661586687857400627499576237262300297083039121957204158284317942055718049648250743169276372374249756165864439177369026738327158613805876020080875433132659531832067234985758376458188344303447815188933521011146997140825997730435379567639896115437562654166572197398981019554924795846779238834290255790846548787690631126522041628423532506815658756353599594581924239749286636496419617832115757788996121740015014952776600455858197770249238612472338202398090747107592558333257257628966017687442376760934818047194001256001346945656492258672868125391362676009208074365407599876289388956977402632931861575836921094079501941816669305060204203191574148737926738890998962898057836599393419862107344439511694918030058030263744070209540294213023408881310581439607981521420864389798853429828999828686541134602710656306069460589857814511144925410622614332318030379550400565321503127100515640680655570894006967945943460536534579629463783787135723744204885550871714898642704854041854938551985356450391667033895331314187712293389177333174806584541857895542151439738681219802985136178646038590214518580801229499613720497472734275707830037240236417573901880856355222540735418184811402183016076258501808399604223762457243965519090744734247126481008227121194912897735804144943322072549964642930962947955717905414552921437925665435043562462294032061356683308436967509499968659257962699222815259847153573354240676153867550648275057708951777602990934240398006130889743574215497791048543458968037347639402472013399590050989837150802715429367447472538440776343059473320100009128110356497746059053369520045477485868825126324027064946093004813190366372933974871205295544403374562519797687793001974722856688831408575250386658140843045352064469876935616368344617730328457826740498307603149105828014931489059918059565374569730157271567628016717230266495932096786005317988063995270632696941862719107007661851790455130236125339845574520941722766501420040227731129204828597556638122990110807815738206321806830442393626562294966061515293663379997357795371435511149184677956207985458347978406544938220181923706324827583449311504001062018204644732725836943615586365847920328556549911640189241278866398490895165376287071228276273753280081573414286859637174879039379039672606211607039245528326125423573838776055499542265240349375650317951602479001848411601234934348146308680129468254421589183865563240747481818828247827859366231042763792147935936511878186556703372415083514841609116045946046621808681022529468981470859696638714241483776451696439516273416880738680522456679431218022993242156674026308719149042849215912822633831935267897055670605306594024166185399072024409245093492130538173555695581620167832752773008782804424195988344999688824898164734320544180957130325258926948287729219157842154615185474390979690014971659586475589549806510005391167127727610932750247155265481280671297798306095725073897367499690912138197416666343080495996382804291537164625377840741717837969015693402899583433954213242720568821227011201919337920488735219072115953096524020623869895340783083424095981982733453402386707887116745443358210037428037507986733133558315426560783799257269490212763591286606307876343258036386830506329152474243737303348506401120270753241172175387965144404184075563998691896083875591611940216864733534290815988266915297390895746302550621411827409294766046769075473822442584930356918726128912323399387849921953429586566645855442663190896865159879543577043002560905492185385876908866775590569773514886402942767801864807851343260802787622198832041930248105457770832132148476725656441775057664760118738932782750145739113338314300262434798280406566862333144950320250190169799032506649580264808794413963511756908095229435921683852059453951176301923118436414666412973332219740755344796979922159976491396796914578546387701830623028558931599306690739889310804408006616560088404090564991389697163739891100002687292817237175390665836696108924232217990841367766978013089738417432203850209170246858202992677294776394149387238907002111149726487741933976302485611274597267792426768567706999220688709431040049695172040182345302038882432145059328364009033606959591201366171669889804996982784203154866610359771253382460659953432573615623433967195484474146800213171292947303653321632549330988582312689381071256634494190706809766555945593991791018658869408486873196922438313216535222947179750267642167986252840116860265075693542769874081487971805483096103648944597007954815942713792551086131469477052680009583627644625422147827432883132170075979616885033641577822867279342520487069389863388518026519831159214639088634741331590652231584183658213337525232462774165667336448214408296554518746220877881325754089795011725752546301698133026464169367991070206713606324614829488657777578083923222834326641013953259786004250541283581489323064128243582274284575782953018514259939498998496735687225421392517967140376986687886577944558630252784048651465194629369597370406643956591420173919041439159001306327154129286968480072985589158035723964418523627011286467131903400605571264047881551903860925177639512142302842546300236218007039745028497613537595599035413781095491272300937454199432955703822978547148600529510395501475171403272227459735250195537441948626331547152095080271325030084193931094872597911227080014429174887084500804115834387433257082400427810015926201152296499954288628478875680013967666465244268923736615763392494273353031283341021229335344241907844376639064085294104064302063519916548559530426569665359208751975926826898214965818163600337094334328213738795668411473398949973179992883997681075926882189151604193207337521265568370773263278195684387899655700559104135739423485032271074401805845883560351588680110707089000902145683807396878057534822070897592076912002027257649243154993164741439843355057731629796365796269995717874673790192445800805813866273658152365345240841882437919513166477796301844729234453662164039543153306222851201810824122208099765728984575141191167260561621192744140114345274239675801186950411738171564700370804238085481119334035370453719051876083744517023622824020720937218093961030407285237404895520762582426712324387956586811499285248605433890248785649670896061371519884150078590850313131579992741224256527169500118566215276185359818178791443825610558341388167662400378843468740566943777614411941362935716056787813660977130196409394646977410262252900764844684376678956552763509764492756441729533712569474374701227736385616651798447327119958538649907481477589685744363814105720935891603013047220789121775787095736112787078805816055982985067074675503460022034386521130510355984357415441418609654120874284972540886568402354220185361161584082117255635110824950932196795653015553759966450304364923391938818151920046316459463183429339654079945594781085789147706694577500262147644256141109008980761364383985881838170398521983568731553514667901199175717659201789913170920133847372093482478632415591181422966538431868634330433200533089292281456807390237175050666386592772180753590082804584531937165405129500915125497851149858675433987330936433252711093410102828201965669383372168204231047662840948931467074038094321813021547039788501360011385773043190726224479645658000711192456534025771502561903300629590798472130023915194690360886830070255237567844065501724808031297578717227835201174731511046734214052499683057782887861800205756425548545543799321143397578400007898546076593406201010047728779815266845092979056865311182143453003793433124888190150523073716601223602755602427998445779464886614298995154987944207489610875649817673769492961059897258860912390454003263786200005835346495899125230538257486537786781824953288587584535007233498479429408298515946144937156885803409849329475553768350142886809891170600573702632935764403118402248700081091954085554153130293575374054909568999530120045568603012804845436783710011114856642614811022887623473431749523561665318562810851601117590294485153960862294485899928558888017500931859915815033099514698885809304070336643250585894347572000534088142553916168918628529410650318224957642646651838725573466946599928725181411839310062857650942270237517174001885126277894223053147481158725055821865720296735127375016028778300402310577832286694652590200337938599388799724776621162426025784717502037410047379518928458477481844926541565508740422007790897237012445575480801520197491588886597995661355643889897718041085669239148770489476962452209503138922877420273047069615519471469888361721022057302008127050116335491516740351735234828641804773905054232449813144007069659518818104426132326474460296962218681688135706477783016236223144568857916564831588507201446003508972325385260709120470037603663012068247729828205114334154833091096181838826417541510109108330967890339474341484387478557789321442833091727357371279390532248054170029617223972506593219701256562553880422809145997345420859728946668183552001131126208944908932906276577403928204983418128947462302244585739933674846530222083358439034089759029273177815705017052915850549796196271372183066098456104153400463608273617401816624727491694927872753073587287463641529998963389109512966690314948557037189177333125413741005744704259919265382323003039616295670847944149322486558019035618395158182581124519988867903805417759609007203517881726500778215432106244605912653585929750489807534653241011443229528800656505142124026135196061696465785788571539796213158993834508903392042352213212542131007277476499965346918231399482501031725442497027122828736516754529507662704424279611729045205655742601836762786559007462499818358297254989015439577077006349951356742323953473918107025747538071409171207866797091640886364066639674337800404125994998813399177528747227350527549858302353442410458068001783598547431220913128609011962213198324937840943856297566725210205051570195903196909568088916230154587807851266596169394298189259098197265245130411053121840630426775152216653772957751408898962817691495070485069320681167584747526331134680778806167839672875161585659399857606223475888727728128047506171643379358667155252510922432089229960154731836271767463593235770295246343752452455054699607793119833419328528001019099273280407444142627839137472852031725599333597621001970018818951487551538883567303932869751370388328101256054083610084445112639801819677451363149195186431483473811468749023348583739237404085894782439458143329405963159124807839108595447633234042483158669021616583258395504529241822867473272532348290561676812338187083280435038060334452694994611494914340097464857954919758780399468864024376787338661776864778375937974033562772451530060643563853146557089135976660377774080989271433832127786822287615406969837574335995504690481778773501100964117124447516861521222576677481087022070549135472743893071024318297094594925104444408237545552397752171058627769083089162865151209901845274362868027666419973619610072648952568758374726203780484151564638092311774137857218153977518642173784339329010469116029658276497573560028748092794885975204849115414973583895689734624534040226970434549895281723612544369514257787149738961805333581718471013879023822194643512686013739808129188621582624282215818145024708895808166150096248706902435570711032498767011794651741261530772995964865727512065352096496391455404567487987324040643291200570640488047488925270391660193069073690353326116968028684316458590495608237766665128303153781200279247464299577014985038652796902884759840935811676597186249936415696432868339946064097791322164567868115434083452105509586115287161700546386065250656886929334277706087093234353948421170449577085044880086559046946302990552194386494467549520037540318593733157439983619240030155319526445118731171522489786874544420553859709300123984974785630171516779629218316793291679323380819546199213947379988374116997965509040932778708574175150755773708941603279728486481827305979027322742749486175972221794700900505558609886501185867275101622978482835504694205357611167112901183322069799837116947305507797359988462529783075187740614716941649631979309391244868769720368365142157594368639843163296638006618436261738071976840631354497163020404041959135742668698297019222723822187770832577061055094877333377152233153861575898466473485578767194435895952639341756898052094223836665348996243975947704534436958994194753707235171671663137884943480607994425368148332090835634530509657558606624307678096723400801367520395521149963920998743667568513930774216679127203679270233910476409832531283067960769579833725030755728535257729981128896337131567480379963750442956623247245972187937585079915715168900649403805675752888834759757150983948840217788539183227044258348124874418107012163081446822696549527384073638254311284889971661040343468945810287974336445788191535012822921897119368924594504698800696283926444878347245317024905292712478080303770519293982968422125027395733782315280241745833094102122370547334324278726519023307116564726221969971246990336858262590499699818847542569381018486240603269417720948501145011696116632478030573072745837157900661242525998115894579737705042244850749432667181642699140543519400721596685869691513350433069797816906912743117913346213373306618925891389361684763291365624856437845550575689840478397853759143380942596409456922178579785630129370786910718580092347426327018242960477584034292047115933719991314737707837545473174990544988480070019256582035470114098587348348201864058549018677873318260348695205315498008089863027523718038722265084224762201461782927306003132920110187254258472781293792304612230761597014758653581937507608674553631512921730120030310944943329687856628389906700225154626236976093294657376695940522223446408466098764399392564040582835903323337305550061181776432412806198221973898852602589535687441822823722052402458269900642183897221917215652109435623166255538256184777015308042539695260638287111837205171212836378295927310478191595834169889555810379569794534199467946555705339508298076145054762792686480185881381487885231463741302065570383557028287056775596725606010510095703919288886683508540083642448066657865807506221645137458087779222627375576288486240455411903201316311466362719607034808537392148893868427941827529539243281953492941245009720885354929050075322339189256511387963996856655318601521191741333438903509008904511864714383860168184768098797856599724057942241130884689464317646928300105588892705069622012278974618775183243969195458447716591088141212890030119161918695218367301222225154549888129504394405139966589305212170770438945166370943490643673669271558152652481395063927670127483597402958341198603324735940614041049597966291905893112702687329298619209444163939676066417928643993980300214515253220536053139741528665006360306765286574415571323464050894950343560061828733246157710949701889138570786585317710297196224666016586997483814023323674870291807257532447053996566104506090195982877293450487444708892117467143435132379013011049790139722837818033367376138955928078634655860950789090939195133403446455878393886779003202795790819325760128440050474783461734074922770675384862368437915003114832808631546058807119044917036098272602251675257070788415470159632680119621169261950654537958406386383458087118944265835608323906180545668148616480669557323644227836732044276501787369693655195797223750712596935376895090062275314297569005623714641393404638455175658925603726923758765288175233230219450212259551718755933669217287924520832457245597618847448119159395672182523868068133087919622325170502369492324670858394396367014748785548351339730816390198317859644286284362305772352641861125594489703674088169616330399967180160450887105694828806389613602031724434584050531123384914908031168466003127308470358477413416898233766526219356536993910828920818300132810894556603366158150109453936194292873829127983105930134101433031303302174948492211067471615341912192787807047240092499886106677585480378233941393596861647420665414428585614233428179212464629868220897454993306650715247356315002792029771018637999821450715698268733095665843170941949877431652393395637902341136528799018621278528034713589001742312132689137591970562270382095335396237202173490359727612917118799693639597140108143134438705311248461691160829346155974097223578050407276609062441529236883725197512302358945135848110783758968514414419646756878602444240409352472049435608095596782290527834003177157423912897555998375312693623475120990321550475597387102718244797245291411171708298725730973106523739108827294536184523413033237036265997798844922261624565294974718893861877101081913186016272708962302363028112453127104709868210832048384779339789653267179900384364604153744158777728868195779553193922848235160790107694487691220564032953706740335870035187436218649209622151144529482464086711976916508858798424882968555739612916373959215158417827389303083783574933672855344437535016781649295258115889252102695030840636992965631344642542421984020674864000409429366864245999705977433489678797188440090245216547186874335268999247945122084580650767869284551460484160105576485708985812872069509629450911900298429593276508394766880912087126724818734833358028404179479094348635289657285693264713757997293353558662189254320132150743926066800414755246863465660578254294687455309047872340050738707542563607851083235358016377009987175058507297843046486686580778266088506437326017872964042028119224070989145920611844575368780457951556362853310644501569163125315272625587113121308260088454071273803318524330094899649994914194101825761539425251244805441814532652141690453187022137988753041589426406155297318319474908709927241192027132026110625214000485763344324043412210843596530275519859143853638881380108864956128352385019931881840639282185362057974904274376401860185592877910539041743093019726032146229308558298895311740873159251750851714798318367197493356239625147574487503195127045904962278174313082559755833348493875076513356162776274661028186447670205549284212178937937550403360004040518862018595229121435006443733156978239869364555797573622099775310770943531264920965940399885796141598000721877903686570733693298787611565078362647156031987544446983582219019999365238965673623992564371198833849657629542692157174115725261306380562846502251617063571376141779561774706556202179538908971887109132251882490926847508685194256088428725383062766784385474219043352886721209062928024744704642475813197301907049817850506730995633621135201685040010371505745473950721627568789103254137564452134274676214967220654695348253561462303942247410299374543175612924333278637395974560541861970349819321037809427647386491353653102625314699247606816667602210109656028086198142264022896133708694275939574722329716328312259886938063038131259622028705624115546526322911168021819002916540148785518237507040627000842794566537033259588214265996158544897235943483943823025502882284579972323466946387746441787934636588262958815968393494886570126727358406047212078957791055382342873861020351937243481989811078396656388357254919056065079877830264327531830944847658035598861448084317192991733501588081462695831795783865782658654814603314404545875706126120363699860378242683965705062099484886305955959974139526760110272711617452044742713951101062877642967555183526761113217074089675886502483480129252972914607668885762203357305741153781068319814879181494989854070578187736430731285814364283740819431200253514235586085989364413128554910306892663590706874401610443605250636111082120016865365069466434232505181094788400333843663048072446222150590911356909076015264511683169336370804130937332008071335208178021168875140081281023460496388232831672414451966362221071856238942493793158189763623334926815525108850055023748905460052929109414458075833517483284971743817761938658927389169543594558939738639033921060032485564574393966126043575002620657971396455272778367525645003762490952307766099531525787751959565029799302002640099143561546455430122926138162216299637974771949706439075757110151816155550946665072014952500112012460105673996053664344976091788876512241801945133086693601378040504556879044987510495360493044091755013366085805267304540773993334098004729301462348786017210031934050441673294589842977467895817657734715110025377638602765859441887866184288483494496583216151601814828213177997999459255626586771122773548333115738937541490920771182729559662052046306849968139096153130909480106823691205418813522103196068373230733881818008674837185106192350898539130166807166433753109542452433129839160534848064224933738706075106313566610639608548169169442231033115581169248370871596484849109900196691939461967351272529704836335916883293733396529104738783661909521418649240420495104617872449769905353602415120240318129134713104847756368034661754514385030816899055154894943006491231784151026382540613091396423944349727210931473610404565673334653065136022820484409645264095080380127552690457888873417057221192469460171545732268663508622191622703524611544184482952900552194648899879315977771204402554242240580437158525447828046646060222081979902475759695411908876802230298305663143079780511752318589568046109719668941570527270144206130115824881347576612853230589550688638370390733034018317079304023937319782156935824801194764133911609952288624794503200036687172879930883554050500628945689119872987627244095251369781296812068190165476247062530179547830936721759506268336989999170377541697557875559150026462806815866301376728779493504985272330020079179282267263891612147453255971263123487372532405351502448809378430497655657288035049587156149192072044129707836022049920339310815366234192714874912383863491395235196196642497049367222046429527359390465580301178876173433762213662630986265050727349508376122164026883733258364054563260425687103928779490821931102700394431222078940471408862619687123660181171272740158378596778808018008032602328140517040783825977193715228508821736577338402646266390310407910216043246612392321330090458210792818124479689404842279571617885001880953170702533241856822416540671883937041799379715256893023939042011509150459821012631851793691703506688481099058267227402814004675985746079287332136443739604551833753347654828422258066979747604991823169536887663784998016294545411520982168159445100180116539793516205880762586577209039306702802727898908917302123061725883856504491837259544297615029305597850810426197601010715747141004363877220369723122023522913987380727368610076046710711128427677661481167482776486080650782395298786149851309279627119698587722786268191064874459629091201124606799483640856921573272404376816337301457762969912397082885106373979449776368040670360882151586737498185426209341928546290546553803722627796159558049960145447229504010026718588627345221502370281635919665887773753649583599220079489889614119613124009104405354882183715573469036075532189547425313436083652292594730451410737074761143967300273175686699778753966421258386223290402149576444210257780390139159872283388411058671287947220185589025557315460987464327495932756381529437008950161811270445125626531558870899474682100239284054534976844589687636213996361254097297276952102009741249378057908192934849238802711375181152038626759394893333747990390501171744203531709772821943048379358520993473691744416301708552542939460095435860024943185935392710369093806011123661440376964648347571932932082396935642145995172903647641475691200393159067109455832983520192253004946519226630431864364697714178473134930602123811306228735596643243924285185001530928821719084240073834441567148939177772387723871226795125816999451362099471123465108173231332430873235902699528590753668794953015733469272813970045258855736392844447821984389913738098736700313546523982977205225170597493037466221426851208701066306107995528285275585952862379230205903081633439162916729201619683218653878573767847914089776290561001618442861801000829440511547508882676431982697148353337071502378072422877613287918756096266592779604901131484667929453082842961370407546956153149012363539360131887652640117804921320464962174473005154649005699386441050388334748006921562048813688036060238393532206674974086783783797626823560401851914829541276726166153554602796617197207607518996476938830727542332730150867307554787485940945086246705783094266576913309461768398263800057708595803855262291833959590404961920320615081512482919422000300230061456558766799688815537039175341672495929493398211481859313858002608118266586739810117416204216628573467652686506619016863281174931983772120147378043456876289703279762008610734021266044691100018355333545570836441973331341847525677822996595682217822803938221643096253565733601905454894888726804101794194508504618754441346901995298611714267204028106208635800253721752324571731330681073486565382630394378272261365029053204852911873314294610999108383605874049815258102950347923778413499052279042799849636116367998780519788697665861125795058169442289040197678661085545827756467844188978275097730554659093604369675886569419268875381213714234976615303701942372486634396337929100227868634805059932743991567144480610665367685024059252471559730055505622997561977362621765982349753358084014013892487312869624043658087406670389240760971529558280870815848598110166665805216998066587286979138278302418269505464974941524869095231516988578998885822981954676239283324323239600548455162936610696977299431753140607639679961229496187587670065230434087659929050279730111362341219922709637386657909322924147725593024639067929811008781680626059614107003962328078849379942704986153142826201634728817668982123575296399500701918012416527914194133252465535395263981303182284510941427498566851115143791200836601359653593334586159983614380677136232127634438198049445154411564977301529001431192858506630693296520657617660904004086824279859478883956867586405455920632729931531930170952818065623676118675320743878135740891524709900819629235988966604004004432793839081308797625701108055125036264102240799429694945391696371983753849703809789171742119125368288049155556617540841002044797620056712903852146632838710690319869077533625419150444250918674716963294930483442719006752257841450753947012151019506660147714078592680806304584228924892209359853524396305219116164426060666080136676895761565002890183439282447707301951932363622716012334783120777970046728957346441378771067071232040557843315638445749332330268396434804295596493166104984903614562879038649317695907920104660000827916372186905924943695728323078304526728458190888853218740033172369348106027245472900006483469740624693876232068730377042738358577309067749799490688501377443537323967558890579025487063558851978486652108878417687783194087643353930102214093937688638870333471263902100845767843435989454281469522731404343906913605746169049543796033089149970526465082695491176883003444343599026721980681881024815081290188885778814053085678095248232640165648827478354458921864411257035872046973262130647690503696776273973847603735570092307753776327083514044952799300733565337663677233893887219441598160894606736487199687929179610635855595802526567013648345760717023811644819212252768117140117231891024171307539932074412515403533948517061559360649694730068582299641736211579302818595524489502283338448578109172531999919422405736279149805900365999465907016519146361293397776804206927332678163557654502611363871882707654991136382715068474616886087880738792380573233194283862976632449066187233600599613845435473655966014182807178718339182389692766086666825200843157240116843778307018639782377734522642653766964879827125416845151035542095769685368487596594649212997275622819536123763660128381921709304328367203514734461919541264463574496335628538011971163583596466003456461596162574852621750703821037443121638251284716541624009363991456048378642755566388573123064642356165829481132587574071210500898055689640953261236809753714242785103166830141469978650578843541848728010587634691990807476837854735870492314216725198263149836699737270937323225044876122574741344097343697228503199712837457549220367608096341460253266910180876963842269915065442972182291164355972533259916643111710074385710211637551958821076768506513298164535024541951346004926635760535395269884165509684896158206295580713554341306211899000883927943776323084717357194006010246710395648634823556915609489316912797377566419795965447526323170669289629675033068327954061629835807732932710823869011460100436518856527511566635680688628956315277451544661451348205205898209766890948732287509371954203938675985925418495209092442962107408621671309434199868065887659787394365540218173572189044198071221916148942484762334632955286660587737251241654402856063497245499194239256581252763458543312961497670181198725298738560126437184680938843768483254171831927138897103287922810577143134387147411258174316740416033332840051846844565384577133946734768220900320497484328431253834928041503166706033872762792383415735932864609669200522574289126219051182575342328975999946972991143967182738155061292498678165677354934721459928220754334070834984707408878515201019289656886492994762230775041764782890372884512618616141590500539185923314761228159171437376354485435565426407240728288342329482153628216823397028894126200356151622043073836966887872565548761322312517633770640638461224020142289833476039620956595588967429070032184107669560371756805125321344846930124597514802075350728617054687435830387035733865387971296568205444868763461611560021776517441411199985306632168471208122843760841487346507381942554688123493400278149840520228948553291720138023552751705362797183137420663794693914341674698090872588357465238998916232230152005310016015995647270735769075656043651846684100777611761759731465862802186279057277007432318918035179086612765239105178896197215431762595119485822354719855515106392253137907561334866576859506718081851052534239778938225105786242737969042251592203197983228446919000606901890727922805618208214800065951223978032910956059900383545844106126153070141325185737940102490189317316529145982553200000906546394464715908578755982596580401023983973027006993232128207573792364720716979660031924978998371177630016010182922168551424882360900773614548499753915752449372732389370825953572552300106594631382378520461495511835582394489383613329835987613713177191339599819951162924345774909489438642575444287173236916058553419131475922860084026380561236205665050862110843404703128892903959696458827251006903583640909245846537192888091512948451927402239916610116369840812278425864139598899012503756711055707164414596294069952317726844686576930307773061345609012589009411359433561966657447064204838045692149489516130683799669151371981891514203937429605099632637232792962808553852808491998471964061120885467720448194169410464929010228951457429618166786818272470244595800627532989152931838648362753678558577095331542387726920616590158740891303963493367493880139889269728010739308086511909756585119074589148253090324953086859076298151064279456948692460129896862557204761120313340180710012603793603626380824121473480968411388753049511077524386191282176235724376736775228157123323732340825986660663107168475338996806126123710939110307479134200002158104216465246748638711862878298402011200238050779120212836206097533303286802597203876074563824024942666239028458369681205229820077336763113961024220366916178444476783819534472189190334240614910284921738288434394880029789074580934798856033570799731050230242104866617206591606698258852618850179057922845831535129809441611229147789818999237597471593994209936560463704835014493060200779553033982210556997833699627806228006008189016413088660466126879691922537417277970978018833942180974880165574941167918907474902429240436611495656428694090007504582928703774201261784108927880796333793977285140215011084399770507685232960838672731749516718217486833924243529610302369163232422682737367350159086411047462154626891544253944986158094741997527353514241362011034895032103472321650506595474835446194304005487585240698970991470638582789908930497980169740899466800975271272904975045901407221098387560293351565411005119617813835458212027650944063495975519852505220324910691932671843956286922589230353155129271233615962065624822378167854153118195107181775905663866026445184403373719221416892247509356306448247562393446515413837810129321437154715386984266104633741846052967265760430398223538714988631561328674883278068837880112445642679267427032603284028745267962878297177610884341568795136975976494930232590901111866593310611164264352829544359157914616275524190026498528895439956273743755367243363345340878931524288669533832274029406298049311539611243344910856796309244342314729557941714884457977750043232167338259478264544150436697990859085657757286570094334194827890675192850463724153522665602061150636696709775822106890269946813983416276637723156385134881227175975297316937024825123294859275356027475255093485274902429386268524794415597523704920856693720136932115335281316279870819523617339773135015548566574278327407432473108326742614478553452680904581169427753886903214075043018436216055720154428489773946131294927156210738761364538501288569676446215894329140885814228353313167012127680667669991221552972068647329653130824486423978793009779538066708310154112235412220881854336160548810364663673932535428504698723248539689096055772790163144046867229387176668982822863283435802959508360346149687581506095189322490616152986415093588577276031876667746499004273617242886042778843840045144835479870187142424866523811234588092047158075611190685240972268982459392363952344050180491445719981780632093260974112733074294388508683837637831812149358614696782391698226228376181128425980209765922806450583608561268982490223962730357225650076817487439879963923646513205033834075596612326386067278949637778936653079966655590905884537105767310257741094754002056394812356249684803398341114677471298469019515817778990799614123625465683825090353581346524187680938730282286064669060971634680066713811950718999438777976986372544246797679893250234031355157263714681351030001802294608240718049517830748848553707497760197369427709886144682035417493349922161152376675314783297477372825131950598648185478454316186715809519862407237677853431187108449177071541453415540811895139185132459595673946171246845023714413663954644572580164619973912199766949665986423797800860640163656875812038481738982999018280378601626728149751595677151183422906164850825109508959604175200710980579773998656419296697066011565807151582067595587617779048146574483456845275833758344781371938296344452009267945005888893753252907563320870994213271745326807920736428159940820219190821685433860152137036575325843786512589637565712307897209387043680017852593534912134867854131176953725354062614782063841141518551569593722250600525564789858459091045607253463768037350193532223831871391298024047542721520186873270467261004359591053124980540253764846026592404608653878040493409860492497335611306744794612636795753380637235237365836586922164549023981609902668097444380052144997194948375146870083864239210158995716816806563568709887185556679995680395997666451159086389244578181500520440039342577111515229080460989735547031910389676512661114572401136346830891799681601021080513895624032835134030006731971332169905739544523643784546727739665663717758121647076914281927520401336059994243797161657183093100200606613441949028285509370328078300034955511875555822846110262495544866313316660238013632111475092092611130957389766178631775418090732348705615153606048493623826349476608018627970698663472971244964606800775944569800017255533054369028305360930715402402529702520582290378151505254442095260591749997357124860753573557282227497022842844874821602353081982712356663152076003336884465626252146951022578127929541384967819587426003804803024060394543810730077505988754529880655394901530226508822499337359847640881641446432954337358827995163006424960875002779547376236288295540245772337283448077805308641477347858322929259865496524950837994170893107214636941072907937249944702705366692004531175367569898875003242063390653178625328155836612262820037918042663514338617769040918053925358854904510865737398112716778027007676864905144630603546707233748479253939173596793268127195170133101411553446766708921284885558152467998227588026957325967105599001598101721540339542913154064420651121258151298336685013400929833754290773523722847776147044476930601190292870947476499394354373806987878745674859571568987313587743363275314197821409115611398180183504590261521757192164872655585746019981694568486274610270906585389668810150645678467350607931818392427282260892980710068964073577508938030630840521879200086436619793192729882054205408634995617957927972611964687885080490074400371944726043015251842080986216721687085170965999611554464837806551928171109450945604764090493148707941055678227293376436085280356944964269861989574961836957058468865993451445136392784407987813184876024668740112644008182612815666587643067332948743602871256813422291450190188355865277210074048645524584755562589117124176299977102389313323007737375994364953260441787979386452343511007563201965742603553403054816321166684341614839311887747672807008449239944300364312774186944338272829334886371205759436721669925215092883717284925360190428614873277998568660740080152752126447236529130909252875036227084315794318653949902858267892843839299444754369105972267674201745025642807452739236450290929887638576635880643806141405061473061782752873260652575813164855565576006068628495881192610641139209940459274372131796894640482621078479500572257217039240127617682562313204022643026819030428923042203065255336312189283218222625781437948970771908578983980496521839685888465184049731322688428250831901999629587396991108804138456720995597941990279421653449699757452954012243408098217613914723586791629454512716014086600595140925921807729859230459867227477370852010839957701611948911824214239054666856773966884536349132294805232227098062158237121963928766843910095442411771400482971880119860888775971659412535992206671856743045576846798869416185534845725417396806019299351553307212144038587171808981061472861190345444415795300857522579885362454647092748544906621519403495767511985194040981941427476775480267031112654449332318013959962753063234878521512923914448651474813742543937901562304221294381992267102706336072980731935083633171509319657968930888563242292363213053087709154948616553776800963978597618487921268940430352718885466541116000492695029617196909460502564559077063826165159068234222064203504924067575581672096220731453551385510451063420659500096149193068875267403179419275334620138339991289949619188899849117481767661534811901511858842187514284873817088509857420752607836113424472798976806027631582009219647602104806832042211349086158379103670354618388051840243488046958986167393790461727868902521169842386836895789226759723968817660174454510949902857671838411100653355685074974372567091716569264107069241717998929080257681328435576019279610748542206403691128605839729631639880940654405844733207420824380605135446588008579042722022962495279959869530212084020861005076818777407299426304404160806660733702876929056679941581414708771850847402540141665692160760597209031836762570765999738876606663453945350930948589150511439461792933554177285207130952413706886229703756976731161074259262694840242695565405966874006558143514536162107613293621534597610048595026026636530878928751641040749231641691569612957156173050863455918655237166348417783344976299917500644762894785838077781918538257845967634248119758751689937928526020435005224926965127684298343735134162834750732882154956975275140990217528821707998377330756334020163076840416691544379076369737706199844398087721634937978735639906980699409002147116647578574779568849452348654768539470368308580011366238159904395239844746213965805321745912104698477378959797020332470770138921551877619452460166828776037391034830310456584229745926462273101017995745459122863522778864717498598086147176555812271343905737635795214166429548936588685894793103084267836824612655502637258890807461744462102290063006018815794590899909874394474215076661708060346410473005164308971517717766113851591044960139637517711312025424773205719628027171752947433239128289803391660412763328515041069482114756223809194347708282255948081455414597567855562073184958339176296375614027372358837222172310834127464368680418148930221473753837732648760343017095950058351485613795225088885228459257223857127499607015506082610696105867987026799092941666508398084384329917814467228678044480883097021966072816901594128285188969121067455347999992140835330389741564014094215583616325515926111370632815113737289167371969858931868868821983523800700229328088901087532160878224987637784017866944605508965089477900074872802024519855870950713094488619516585902945624669760054470438295664035488268938063066253736936400190756506536518260272803192748540872302164078693446821036617959475685160104866242005158031932631188234261568897774534937203500904038409686866346413385998308276637510507242012685010363675974149436845207734608893770919813795992079172514287822962176758974654264622243018949587213865742652191125253134276648712393985032554813534820168514536528080816372582885060095604449015130600457064344469841627427732414835769815756624469617142719829162753890330298755123172562139575025713603598018330919999574680058824187816207073369125692098641129311164137651614184329916086135108611624854324936050812890117099187411595558660196630239748414725601495865085175478903238519163688743637713631270898370237895341220386713762822371525417256347781743969111771769900067290188348210429991270714808762779533088088812253234117256224238885303477738441160228488923968117625501751419999787693685852295375076387603434074521685732123484723775688344901611313342843124194948633912604857622983138956254621280108102192821416968121528047843076176987702722686589827632675273926012467533842269423973589011081975193481465774610748561870534267135363880872606721420228334269393595752079930474860775907885888015293583814797980172229370880346074702802808508926818873101679808696082530209462660476899918662676979008784237598306467948346848326369842104043199404644255144328888908813873009440737379343448352806628695428822224705700054237282650189681322648076300327898246473901960689839052750019716961301177046268259423040484055432375942290648290957861330534482330437338921362895048190158984235128807853982438857060636841594889353985210610954132354584751319018637901272324164889730221558743093722332115510800247039132092255277805888362267248561982009868703113899705810084489968009834496290248553019006179622509073901569844642131235992380837101365361874377014730559751646361430967046173999966460327276486627183489157999085911978598416846930476892195736618249613758402234418517888876252539127632288737120986158920392041661143708859252372257897983132259675961232674242849887490027458317509346198107206617473196024391736202250611311181129335649892388493588034932475864344001323208229068994301544611300962632636767027654010072733809307436998101889450619762172037887614161323634868212480836752567070376567394765639564678673985918795224771265308620081574741712500985059133568558727260836109850694118207085274461180878528281911408865969396544394595507000092723775512530689343654809436635413738323856925647986789510792334052580788346727064062222230512405711749772795892897623073384732765942433254499348263606344844509582553803790523503567392703072035644555334845081970407543518101646423948949679696215988829394036594940855966411292363841944914028879498020918634470558024282074495130941332986465467442457040571382965151773842987844357879889893997534300433752265703453481522495509395428308105344481515030457943971507790281685035967635103958095808356317964331302536301555213213246012875530727322899450955393466674195951714434674065423383990162014706292581943810394565249307434556525341425883702222072102823795887919516107658228534099862707828535038301320751520117563393485570527249673506985039334236459500518989515395523559590881474914458579281387564001626177595501464955734694496045068200485192503508249499412904067578728399569645598117009951781797726920981054088759187040854193651373038708781896464492849611289839667857765106738450926413937615373778267604673091558870806090361987349133156255595684066302929320250711255996139766203530489445658162062151513059568106973085405661721014637530492918934087844420203561462099324862165544500065295994613441413861007787763899746734893761250747174544502385318453286708607558628590533771889111799716041901817845663526836786597137728449256481734732120666699761151742941903044907317876828153086778624208931115403613601897153921960257615329768521377776082345916945229018202884791409010268757489326966546878718407025241143213912293036031218702374759791313915682237534335662078667709156277566631742371723766825014051017953525652858878930657891267463537386887921700100451767758023788918023797610652491255222359089711493955598338788700083921172901942546651820298819110000914464850326230710847027356442081399295967815541873355546352082079297535330420741208348546727549691123033188438351491895517519704945668650478890167898672336756504636332638940504290859616986909488111574961893925910553720261850365884845054185020083314510801678593235783326884573281220516340068702537439006621298541102718161878190428154464705451728494392097685900144545397029349638744892025128650341537042647242939003926785776692718455817951862011821881180833960552563539076902469064687634175957135649078349594053857419594148421958615457787397263971721031744674235402575277406449317230057983704700101816704169294612195980326568507488211692931092715239673483043135444927982409283733869509382771219155435787306654416500916511071409455354474282490541740918827168326515407480703752637490941507732520883308497801259873278960996309945169996866448425247883153581213522317392485516464210341685801635334198764238105150702980466563834361679994406365738690322384902984017096961909880746667453195525874260535580203079072740964764167005072431407518017951452445575478426898404105477351047872316034654769262756157354488192605264801396751999419300434118408595587236661243907162518961989331164668036303444724104194410267784441376999430051909314525349355187487240251791124177240395005117367363361611342211190305492865429036301933804663603586520233068394957687542048536233466528840064995279245479321414344315916577149613297363906358029571661560373202030327312987635085515041649229603307875559176059447391658604469288511905662985478584493552788187362428346556453658692109923073433741902483693234258902902939938504099033141410845132137697277623853323426635874766639505192165944608459726495154661078064097644929282547326817567185002266063174910985063416597789899811815778657509875016950421095447938090306798707243261895015979822858966602668695680765628459682484885868134433668538745752861528405010831582554810294092854044780203697639575131888995195245501468249670035148684644501044422679539941578221129507096449407058216956922342332459511671470109293428328666230284262341906622722698911323592067123696196819601252715162138657673285584956757862963619322648829952403811981443371658504549159096657632920078788633714196855633459883983758914183962840531670252632614706697315136347048540307529645012752970473139520785048236063086623672934186573428906254932509723174639919134677785300637634512462453756329411996136289763980271552168691435609873552407250898576237778176837496427574128472770308192155218095924385788364341678074113591276651668779349114653470653325176849578044157602652224438766946980276022704583940729920316207014709180377817395894980362748470070567191654794425501610109788302541325038912740370737082062956777529591841100840475767998825378179664964789101858713774392834533687586890769006985070932368319528932343270162777037264973478698970955816975730396519508396852444069821067470278318079035352289568383410126814303293205945630997519308969770105519586508718809122352607093299490931377868499309612603836716630671718369345824286923732217245525214918348416453556559241947133735775036069330919887074532514644317635602323475176833186356589313852194496758425923565319721474855057294017829341518844731824490717573188834205921805815061474510575026277420236888114026416426102072843254215915368449461005128753703708891335261839134549476513176535166186217028674844450974620146073712976950628837303296105222069428540436140363145558265075714446627749118563420902326662362377456441946835112805301036796242398793127448472532192476549761692285205870759476987573387577648509925661859850712495337519838209965507614149761431205406281824464466437729848427870412925615920296471859648243312969759353010956731548149089465186549864483662273590572909677680000949515245859247273462185556093510024515192611989727597467599882263829087032472961736509115276689541067365221662391274577351882799892611943624724941113956953946405365586445071150638201579879945010758570571258022975499696672728179079224864234225393078944078454654247312165496544039160259687151009413246969490351139489777497129444844816562603388884448654119299923157003160438820011283592387766588069975034473323304688730480737752588078338879027249280246148221477368595753572182669773571711086213053693414927525090204243423976573395331870582038910710678298781941281753647285001190417289201815345878671461262505163459390072517930707461538019195228968460982571950182019478815926690178482604584988794706443423714306142471306951527537797307939109799790854533295011530556969511946052186195452916156094746788034963416382147551154271277948598642773266517948474544731274965688962530486648901389463718509486302280837523981223553399474464238147972210599847556771057034160306033564322525537346190704613845041754297340781178288178327194121030050305068556519015956480377360479829185319522766687705914248432371567997193660034360192842855659415819385800927081034762059728166223187681684189898872048059301228131063402472667593422304724796473942186036058950890131011938831035180877788079975225091477766942102959244351238745416261001910458648595116006622095121526173685700004869561032834294669122733438750413211286012707021249751455491616277456561318019621375105571775642764348842660652327281221922151281188747831727636504882714094438255036106818843540257885446336033300501774026548278999786722380972071507195586603014306266251208793670825256455139038006007194046633331623834475685812290085421651273493075862368460907964383686287509204736028446278251069598792344678301514743113587027974614305778799887619738482519434864702961306521429891891848202698057784512539968055174394196971336447857111969784125319597442014833136896062606910446190557927664762304792946140299570978421690946448669281580924292667365739886270708939837134662130140071849388963953136205193672414235473226006798919231033911031879369887166632803850240508910099083747239080752443620941256083945790300490936850938367139129346708192081817844573501993053111223464092959389840538933330139798522330954092532351183160063618549591141114590635468598988624070539634659079706320344278639590778372273662820370556168030113959264768148722385342657225001968504711933483067935142972071188861516513990129487354757025075410539945813949070198268453720657520652321061909771795091206548434350034778851780480028655394952787823733491861384881194931772536262623292151195430717692881955888736038038869818642825282189710796987828295841813462717753493570940675425446392802664103881371002636159000132595259694038328548178103390879221821249431791580508851004506155929113461580808907884236118835216545111964227976465189748249944634181673868628222005095977225947781493514630275972546299581577981660568491119583053381544270605621926547781674296868182237303644123092300698102397283941490336622315106846591642133977086035723856687185156723067034368166328568333320750649618220429264228221035844534948632747248944559352235278668546929199563562130261028110694893095313532133448944236749714059951879123427287260808149710782023815002425145623611749948807879886663770327000328124885215399897783648531453850308671759680655145910489663169668637363122509950956118997960709036868012698080226435508657545703113755769029978776329027381086650762948061841299285797180588723141620039546204694300557702493863853428349417674134225656854632345739297739400387152385820573124575774181888796602903449755580522998311715235874310425804460026539140169946663484928641287803007358453442647479096134760729976339442576692649973562023275331074411982727423583659186360851155679770455888868414561428278685327382543402171466019875280934795926536814758359219229128048761029010852598807264134251767607272360462904721131679720467208714838533109759247482882340432972093784453392388736636919041171803756762535764457850912361503577568386005410316353310075734236555517423901756071494973853337125107885660408722661574377166721815068914950931320874106297960773090384067154481131040578175754741767944086070037763006701372230025275296592462628227560395166549842851220019627914475171500856248684232896705464478864321869729927897849740468369195919136130255375024232399884297068909993525805394975868574425859086771745014786958921053362619949489850683901588063601439661250592350091409722926117636874251072618822993661371475660576718825222627615612992601525250718168490687527783993682315811911474645809339266803699167267566984876611801600768293155505804501192420876858135188332437830118971338918141279654256515267211429646983557863773084946372712931147326301687788503224944927529873687735833371409991406601970188092169106610167335326396408902678606169010903161484993749906870978645216769660524078438417368490022061809414821772532930674126836735894315108315531275973583367822120888150357161868817016467040401009960953261130367657466413331574304510175871269633870924279997167311905409823177039917069946944394560850470582583035980588409453373556572430163935829085886432232388932561350250906302979430499270318501113362388291129446185777401281934730027526747489530157948008175273307215664142407471548207520567153121147134545051458503995979641591176032014445429701558417043353673988731800225470265765714180259566574323832182578569086578281958710338930117715650207821157557847317038012541368353034858668449955285239947959420135244568143688629587513895772603634557947570411863375288135119224178349069082532411473128148751440877350056515424016540266408952126706891927609341710269470965470883919257352616360532647053567446980499787477618619592560634217880950632609126691268241975030077685667917099328385611208854542763581857287945356969206405623740175734364898496645224147819174206626517660163544712168282560318314046084423362338964894650449621342316053485376460785972365177900452803904153027536941757672836463558565734708940124795739580554346321138794387420340384452003784888436020247514634453892370269392122085930873770554006991801170631370438961426194553604177888855262439210149583075746512949524553644685800457076254047916104562163653857450059269744100004137792688772057260396276741127821549621235926562807854492954255739761677176787402129979037723764045370638399188686639703212723555774115020798131184864684191615056112344459072878441987322122463817162240355314416207465981630712219156545138163700035349426413836623167329081671326987490276475991647969445756290249147379281556797524030862140654081074886137727651692408007001147313823263636413701048110746919675130410799175314753783228522116371029732516532244850617759630753541366396214919480992293718492805023416122163845469787547145896290484371562048726522367129640952878077391897462247339155991559431025849464030933679457768503817145081400750771542425566457383895464799351641034335570052592742305989845742612071846278275438452012845249285036692792860425928130827008553350774415560937213755696007622299268516305541939747612543362142151242250653730254768839139537671245897957103757243500875477777385465667718553058018484347964385243123712166597624170962435053216077088925108412623089632828294773964417078052887051232108392548605905740512576262335848823990707365297359437913201823625895711530440306803588207589312676229504240855245639387520161023876602220253634128553264281440424918854099374741777069414560175082459827855810747398286579432373512252332537936118715199233505497501245925811544579878621420083147830101355203853858601186241653271014087627393931432448099349689588974104974903257488428450313094419022044433264067681037728709587765771857042832123859459137913569024154152056840684079240564577997186616863808673601973213182174265342695717337567310138571619924938698408636749407754509758928133497988254930691992370042065123283588542303585048085526710081188244112509338880962650315252547271167957096389469599218918913381955384189456555464087286878476370991468413080411566704752863194377935541817243245608997417431312638139640950367279469254240349472810249472762369934046345710734323875427519053772084246688324024505643441140280257686145000562804772016274909019446458985924479712555695685084420274604515368038923116716919377017081883151229573236535851403351456180060227197027286595879566814533083196552411221708137858772746508109724851146744755099265891597697176122477971023728096636531436278953577792018035647101253741401046500843810389397201767245169913039861352447924358333691977605068224381159782164375435085479503339505283858093979808481327710342034265897623735276849586587003705777358184716380966167687943211268161925811868138718033028587211068621082343720997339751866098565464563337598943365962543891918322055699919593426936340459126773264504347833192577692161270488045080816885863733044130887262029957638023056323251934299076604510475058592013802525169727381447061222073335515259381613131454981327260657806719589476108516892446905112894594327204036649490768621754951009673920501167666271534086970696184851684205999817061240482219405452107288842509915012852487503055659899588088835901176593051964555722762788101069094199365233317766591487350176430441639423298840430306461157157189704943713566769213469588890371922571548923618140275238817585884264331263257541823541765018672723224880817911356663755419903328342565013990947769469942426892503780482725097956643687460508764344374460381845964380861321693056242134303146132817520666808153391887604274725128393060283755040170845073270999003054241885140261359507715273800847099128793052099156827518350194369709071181611511741077851405587796157944066309347783061790147619528633769446895730049683420597308475593494794199895987282746402150457066952870113549634693666831183124008864300632115108819662957935919930736431105199507341952685718656833484832134301816567361684389087747408611224575736893857860345754953893675680431725537370064893053879249111275977732008231457514648909245905997208561122121236593694342526038542365374325803941638765735306255881121901289947370153214168951826192011243975033626006623363717797155458729723676370829880655492718498461392019428692581374306550325852257611983740209803242475365913252190104042400974303315579022640514879446117041642375807515180204497337328245302934227517576630661422425669951001071261834251487667868399897106219935389660183939881821862576062211155317263647338009283541454393742345140417200571808000995437046886859327813944729153782582531460362828783488946549158921552318188183407301804754881090230718298047870853496470912747857187638615925646317508691802659138397973675769073601171730095845313249610717880388785130795121475880957782104390261401988298207899062500029603326905703870772457130576377172299340017004375635936310807755209410049891819460292416959247147197470502619159334781599070424847272623427711372133162106113179551362257954297997495409220525666769838157070158525095778030647592002154578277580417895818983990752128996987913179014549366896314700835493018069627561625403999855643406534695115450021514162319699285645198578690295995843248039571947663358995928850615523471359443913189643558740417493385225491556508294737951440362609898036223523785039571033358283296703288624212087543108993104162112290347074643982386925528535771051029165699693861409901264065498505948363707531654338693836799732807720624027825772231910225025898390192371971232754697223422090219957027506187771508530601269941080384564631109847771367145293545114635584033526221627607509358507887971430003634298589828405022234707542282625696239358206820609144831989690620611764654755802419031266078130400420284047989880713415736690430957563156896926830921717949368016073620549851361395161503038200792711656413083933221097871938503885458780002751760086694199492034618340631296612287198706971354484660557619138275517100361128607359750767664441402805697570637707576698866745500537115788632645606906263586167390648040319798499900068192525254041670492658427337735353164880680825078689353900360718181958042615970204041291373287940207132431461599945702399350605434275633395410373780580162397955457647448588967516237237608167221232802019092653971090305296693123010113845176507789664494911380626106094265425021784258708876570220469412764597095481464186090818656121606475854180322400522709234818663781100708494321920320420898868413377149841967310149465175424234360198887593168090272156375759279809663754462074625461378149827229627597113360798707589710806647356863812476775348578299850756224037411744157155454473857009084021792246311615263517935524046339491312125531008788002671555038395359103217875633899401407788959272863333384188040565685662334673000012576861095633764616140955674168299559006589284500210265959351645016968079042006362877583395991973366813685700444578997284434041189637675894424329250674508038731926882309538401953525510139504979489180520312999117528591372405769117930936356503829646036736216929220705241088124621366901886539226898937893220728625022241514759709162221910524615562982494263107619854138753582173804329973250943093042592579438517093013610901263249441978572975590880654237700937563237997560058059015684306821228333335606622750287586334847040310869134898134471417324461594544173376872584134609302926132912833438839325177972597550885587158866549095516245210195703803216409937787780070024464031739422279175803237200772726837904136948368638767665605776459175610115863329821132530503204848452642626302515156925100567460543376007541727261015628207013830320754474564866632000507420485356339432015615623697147463080198585749222894591415410027614418220316881235111647085560255447986390985273024454433532875690071254636548582648446479464165969953765216141457235786648502801118696637517880928346418257555008770600020438877506627058835305608251824230952893907299985003706297241697005125284503001707704569483487985925972954339157382039401520225623553113455693257599014310866243562310146186287459912706295854112725575736708849622130315196267041285259389534338488870967676115539757074058341028736696796079132227028178910016551414308122115089924844821167704606709498398526807561814544783793203709895994563307773889643652855479310755130591725502053710915444101761755450668580064321385561432632466685170023545523264840165793698851677910078093158312394160428547691766308606434015667406915335054674596735628166017005376554708522770115113462164759910167270998152520161586788722449376105391581213932526152443397982895519767863009058944149864071657759005569581174246116881427470923344932085305213993574550647248118269423064535789829015342598571293640580460171288292515668467202503689065779395523299920571728654557395584512951861318027584604035448093917493265483860414321604209716869417169170201652590443635188448170043226594760581205070306500709285130859381352660178023367073684867005763383611473448845619618455878438900503374440067928538884319135926335346464370789874996708458325643722461434021455693261064191694383641772454056090844261426721609404651985422622217479628741164921903184895965977709712721279887270295675514757473769127462850012044470857922327485455862147451323043591874841992892455379423513648326020729836094347220083420597239329251529497115185997546295066325744891325001673785099665258888551078644870191524770005314592580315797158022900136900724283929682340246129628385940319098590313810595198073511901257247379790629714224309951934438132777168064358702379714569050299286241265034389173207040696450327407584253289979375626651957138036308725557816523950724185018912459055886599702196294726022251810690705275958934135227310191008530392692395982713399058812815098343912043651571236937748018121567761077918879602314973448180338800181682268492053505642762311608079131106121864551584526088145816590196401224298977322485577917105230627963079799311058281407690108166298907501390357582002342358202998186213507654328300114927835409769517693981732897740590411089042847876072385045784601287655533835584707264157030994833512221623475187433412321412211641155914093302063970259613907563803073146923527321958785908963248737533779354483738839859046709722167742706399338122061413760237597904575317666305996458967016964667550620442779984214045084767661340691241761893631120749212361414641014894437488381945595600142128601479521514672805217459103232258911697772317832131668339025284053274905323338966863985711166487707354143039635970766904554986440090478975297728200227775741095237979960485191585829868184970249559632669732225448986563827526337167763410153273586959983870368234198054306897030752295963067016267334270798215256753073004754655721942781220123078137949844707728641308035237937070844361101403910558858827058542574780875731392225121569981476603500161054796709982060667655685699329093234043687280611167104888168957746195645718325986828575076788672374084105170756387611859386211834633210153883417437245994401264838312223192691855361139943361174856741282045712390576512611406241300957619769631307219549560123105218531353313498052833897549688963218719596231917609107462714986577819874537418676465341154645959697531322358049926750651699990982530060271705620320615902402488914158188119911088837585826109159038848699221051342537740813200079526166727979538905419817202991058090013322685954997284391827359031297964633746755766919262469032096147211808437979221089040743182558669059102791102085813398338999728438536943384798757643699817295900794803316108675513963251980939425381577237361375633508657306731665470127162551331561149835867287023135099864969210607084138431896272593375813539554496886220398367337409758545792172622274184670023876251491257923104118001411920112372061650621178266555656302261685916704222662165529440590936738070849475961252661753570594898894342305843567543344186334299595287375111344778287669619050775539291386612727345489708486658554172378708808423322338467927243533207373455684498822733271135933601506887327903392947895182736512636752723670486663516097629348278384909529981968064680051424348235029543337610215839832726177270349096511700492475993303532831518345060951427180807166476420895360553430402360666186924018956199654554986759313207496238756399716499920262202106999781624048345471044187429827068450621575190141946681273502605346068047611634487745375404004126222556547324320487036810127109736832768152765090239161946500308883964838219131300627554258157416173300314990326330072764322217933494854627666606034108782295844078324977990953066147268328083557409292100300163326313698947897275740519475046124723132313797891059269672970187169599523829688867521053122309188318948148521696153363336717342976693905493408601825748272317554461615636894123238303168289545560765619442803389356235129667324247653761416808161554350904231434414622937110550675559280771522514086938950835026009715194412350701407979888144178019895390209411138050829126382186932692429435268181522029312777137146429068024993285509920861335592871785202065887982959439632882400921304421137051369889430770479897521420977294170861215573855297980732529217690559620021539177523922005025481962457065632754429694792245376068770418244965857251465486202149118283658985594802656732834113418002243987049591996387528644537157835827102847524258101966984166670162409189367114165046876912596012288856172346456103605472647365700447781624306971905839873561136327058502056587879590551481531335188489223733808788058820661879386187670165355391807300551955644051719244746890855937984633542462200003846018195863470509052292651561551917285254747042064150440197355283970555816171750702648620278169579372777561634375814207020549973165010646052579774899795356342083723176651827868900537785382184694306857258624907576347352969751885317201050653809913051272705296596890864380970879350415061808838096019818337204477400967918229852142248315300878863081750532746640711229371408574680402817289027272554230529692200855720465851915198324218520875536932635695336875961984896739658257305546854795643771791053763890956501989100106083104830687030754143705180202843072512876502404054420697843434511097959860623016559012631950936285367613304109268817728753787070544396792510990773657040837429534787046764783234175558349827705702567650799081296445673370578040656620707809125696954381290037583727855071830905546961085463972756574446272222407994708615055816305990399883961103859328129921750263936057161630791860326938026445801178971822060354467753221084614972151800019353781566119610322478885466721993655075948830328248198251780311402606548640745905678992913400552860182081802454420546019877365072618947328860358181137143251629039205751244959676589024808222671383278039704394713732216761865488451714411245481926039000967222511798870358990897983611103965470038101409519174231730516170654174029137599363459318340630881580705645961022146349254751171723579206469282584883712588069541042251360787927961205578763970409846250327211696051341258274437756923973601409949690289045892674433416740487092792709210617864772913507069963498124423684800390307985238475273200825222419720485226710917638694391798764464747297735146352478847059365294658988956330078478286606909237455997169463265223118578983931483689971168584163908968957237320834373851716497894020395062887557008498074415070786260379799751160899554029989341362472511338024992480890804679041187653686684234011858576335830417336539430574283594258680609790553053631337123747683389494346277623172106107288211032289292717760164333640274618217478282534758657676578083120688484088881187783763672451351388694348416075718576480556674539801045421772621995734617551273029026377227729802620632730487567694108666793460344135214314529632452303555414306803337277369784241052186454058032552262118922898067912971979862256368426274707088813392095372403013345918604881075504663006669900763222417870773561399441916723954514445057850400739934641727071431767597960078734818602832428338307337982308849790155595325600399483349952748540460264037979230800466810124846082921347220671097841722965522958001126368518909479800884713239918621337655886595915015896969574637720021163008866021359169192852594218893787269410744066594820309770183435370452664810996590010034570012625379679461520974645426018735513368462400462288784364000331717664552288715391395006931612466360404177482102661247613026498088079588803779455771174071575673941141863571752157736099975285476526113710709576024869892454066693809345102395483654204733720912837826281594924990844774180346368015675639109403768275202172924339597519014152715972387933613564880285450884612593652038574445397226775087847579541152174876728705660298203047078092661258000363437906019707993031330234200826568744205772474323604091037458064133346720167586800110735447321424885426719053197588799876167280684712472124182691570727946562892696399302581442597346958476132878039720096800506045745768866939808798994949426712147180342433789498252955188401847514751477597543342028175796000082653097640814806163083867472950118098332951131799179471174649569339329892603505878902117142069975796296125451549978412719431777679920013422163961898058117077399790598152309552342425477710738678108620004910332017387153255181782248864185635765623198556381458178112240754685230847487762642376584290233407515180907211546074808963388198046074879812633585753159600273365007560350226300400948679223205345489507817403159896493004157224585931936269517153869411556369146232602999155665141795329133114213519701816752281448284997912234644978299276450383268861218344830339782611284354514050151056705638221056663552921133210528011090367020905390664044863509766054216916186090583292444113375191245019744103868053801350873585129485196507549210345890815377895378620633832498182256210884199204056575084498502769569543127087566349989746510749361855218928566779591825589599600965611695791686027225408399658916556634524885396822888472671092884930839793695583982573480155402875621273821823911066258700742273023830236988119217543640417431568479000472141402726331868411970304392877009254880394570948350445656684219566427019839481228296649417416470419471418706421587189693495132779836385575944673922971769233481457622951569350376504238200978009359485019441368161353097855348982168297710927065854241275871353527202083925453050738955977195012093090935408945021131890955087606712838977933502748238303387516078261871613093165150970047115786051376842266208093761585231564498862516308306116925366980426861283883906954775948452028862857269929618218864609684442222752140415787954464970849916971370189041204067645348832626579261278690144088693153752431117442165309729892917747848793106552190881979436419851222597791653596559113254853178088342348632476391577806811886248789866002963047542705690729212153119124477569433579839284507002737850707308332493721314517883693108311979515201846168830970668667689197094535098907625142020163301090198357636685090865878263271284721281970275249479505056409761546500166628692559266351507575373805203264875190747180166172838653219574082922070255776493696081639930285986327215584231080338763260339255704870859232510465827386633482031834041791329937982011776747442387214439590894548724701200760587629859427304262411733679783199975607790141212039559596728533191329156025814340895242266011200160229302014976868459698994763874061487809683955265875794094409364926929187908152900495638321436163968844986393784698274630881717990532194126234326647747818067017698041087247950059875808175457911031005548448452428044347188645945163860426760117745610312402113968552207473033241553347289838761531734713170041765245483749945095395377747285888767204038079462013360484766560084860425645660109872905473607827316148401188566531302723225852789051636246686382701192953250585111407393355691291632108751857960858824193680529002668380144562854493877815466272846898645876317053404533711842192886256527307133316074265829033655539140441743970419666789607012046588101803646149467465289783584749719264220179742416382895220574782538165844009325013734862631814266326039164740906518575356527324817747713451675497650775459448797185873635677717399615878195027936018762647336585080146338702921547373819529803866045977422254706784234581315731151174756614668681768267279936546399607333782084224618897661689729351085891451672480881330870675805551532026127142812130300966133324713353987729402967178920323820693286455625596085890760095346790753674043765026644119832224515456411767980036837469970787592985746271323438569950534619416918544764811646529407845638032168293440095174633281657593342662820480831856399757005553455152041062968575964954317503745926102088012975063499564342282328093286459941872086297102438374303698843939600713310858110865297481817926131522732402157074532711473784589894145124838321688554071724806849116975819708677027406093378498119427640755829435248633366539484028526956919516434695863655173750974779007909155022072830902018476833749876806579710830797011983702268507997626134483807034114900897282277528877945858149918029325785375462359357298641062120531108296567248123051694419495732674083446556419727714751393594206378321646825463946608196594368258964902853519807641760301520968226335510948200441554974056127863614861437925702471597038333374236404050906713766751502971040911123084357624339090390782690893058951087275034416209264098252415372069399643325637280034928356278365002300565334842084330319507752147698656871760876717107482194820833044145475146600558192944041692005705484585118421317213329042259529140021121711543849777324161676557081126192246758442265798665721597609176450451523078941615052567607370611549107884348927355128038889548242593558971831891346015898047101518736262319525679920757414551668005434823111201992062491431888881474779993016348113832180187663362118877007543286351627900189796589749882298789322634372043894500870249245958941227722607045804252656741796671456624998029426685052158526201035989983796797366595029487165349500446752728322681740676656722135267201751651835065834060824943435798317903895380020590904166715580654708468077203536543565307980293520403331511872299312054562118621889355520650315773430958328548637274222769603620487051694537841122857734372634603570779639691876326589435172739472016765721793754447781885219717233875328145870836840319130127698871217185111583984112676802901212587147171887829545430295339490083226102288092376175235531328309941702201338869221442614892599434223806467841200453384636804003717624018420300990645227973739680406050895664508031388619922826667311313792462137916131571924896487563775314645630252197959139831747526117689232164073958241213586736141803071116589919907575604026742905829993544876777978256293622217716662741726419294476698955618496785433702192629955821750105639527724202075239151956798505742649908172440808603538041346328085079742257736517134072377892263934575719680678644104565448259466389962435291988659207229739619961699929726586475772232366393335095041110846045044385821478418059426506160385170295920182054126674287506078827494958963843122519013721346292540125747176051606549336305973218005029960436371894400727877274190172320625655795850703918547531030810275077853951716880078090229291280167016760295986698176306347150049975999933216455845807810617941232735979216333213454325641959578933262201085081092907350311962101875803385577199692591431423770555704493783351923223116569448029751849993356280133889749625236645559890192907167613205946145142604102503419341318808495892274979641953364940583700554667289716111029098064415703455214732868835472360563989242427373232077961968077016136450595002007764647558535118731136117846597351063585437531777483021185374694672652901081424701644332266228887996428831428520664418346889605599504364498518954537186602377912474905718984159723179858735301686784273431831045490048799198180576345974454353345716016999232029396596004400936719494999972454002012361761543883707456985688835866949903926621110421491863571081950621667255871807078288526805554606684791959732634575985443564137830094207469715745200916022411937419639280954378928255700869819885662601740131605126066077233645385759362217620933838208878176311084794874196466316466366561110717541563515091022901689054164932560840538921870558551570209457827832537188665082495815383515085030739101858459988472768479252392198903531540277656527490199053983838953165870973272090621896668526385771526927555957503631269562850905715165821313473975811026690719006403381921256493406488095763727837961697910954175992829302595948948894233049894896786119825500897609367473452862928897027105064293528290195355021915074756757984997986257316207842161992340974384996760214149673124431997313969890016759205083012552107844324534980497636562177791671302390911238733284993550532638196187285795737900975212486292817219590618681427984651300847189438614220809217474496284564568914412383071722376006876843171336509230484542435573077594277136624021478312668059227934234552703538749960822727271821359814567324754968398249928213983225472139923571479702162686799170374736812829218147178468708632658516168190044946347080690987889755337968290176053878194416581387556770229503739510916598454651932054486173713713999565943775104294729890503032274070985055731686628456960571337454642422539906522123727106465625504996303935684288808431264388841180586578283700649303852921530765694261983559829843168540172903062001147006042955256493060300334383538801609461756230462517511983570229832441556818800311537743728446482884269201046462188089372368444934064954932770435177732814326600254576881792148434432281651800090434348019163784942133681600715345027003685151645548293402114875918809156820820569844722447250036905997246621604975912155124061704955601135306069427343955368719218317870424006551191778571729465923514375808984832320723982129345077924803519295222159647789621270950332617879283184496067120943172034865415402262113694738170954444154222509006846277089359725463084560686573593994006946980332295747844301817068102884694603617043276064232797346632335058892659464299176860283484575479579222778240487675177877037994523328860045556781304179591686190230885140277822367311184259381413338350266486118413467533863612225331876286675947498140128462775941404222397880973624556320475150207333440029864303633371432071435934894017227930086825934892834570280501630000486058811892783603796866852487336637209600693129945137982417049367728153745751464266173954985097623863493083485411818077711701451043972290804583836328486474846220401835393471333657467208259793412157518406942621232140699950950630057881944751809607103877185869742212537161092217507616239116646351474343594263264531587386677368834685270601437006106825135216804842365495492843623373216536249062832794308170833765485091606414736095247185391761813316395066601000298088389440841324591077816693497091759399758884993285679972923156799406283319781642227449932052674713483505248364883088165761667817218993389106481841413606175968065980353891598829658276733244475864464433299856165608564640020030971276132839468250491264998535877242467037642015246705375042500151489771847562322209457082848312226728198376094643438979266789350334489576986098330971257497796745840754530534782771252990674064733980576387938096941897343882739932543278906971086294930703768599682392816288050669859495230406189493453642961907669510080942388655409652659795341414645374153718718375488301295948645955589509890239464495304699847796539108894737149802269144207946473613619358164750403575677993082618471063625342055258003330983042398194436243103044333198612890602736135531863214645211059549041377856421928851563173992956618783479570183615526972924421337861838710730959941697235564257145947900446001884485675575163703814424761765230218155054769923637250887460216656693218117857349971974430673745110133213958943331369281178779806826484367554523309656119572195684197551977678143070916201580908532668071571759158432544712596754744056095474208758291694326614500248071639789469627844985036518732083140699347404926930918563522522248544517673821843415633004567715996250216827048347851925993697897119159596468256538032116010239739314363193725453430677265399740781950121601583147849336644348631369183228001307468066091529389824546679139267827162049535838955884676389984627583131636903738811112859525300913418484135330705710515240059327678921563992735102033271190475940514588405569193588474888833451770055896663083472818412315194865288789598222897898757057502343554367376626295823586548987109871164315895216170225643991665397819685269031923734990473261332954924435872269517773742385492978050736400347221431544291221099141085551254020629406568291663620344315100367391643530488743440553495843991390337690496096249554010799349004029600932344397897501597712553637835755731484080304577185760750510455989424590210740751928027887694792541379592750650904106727335161597363710061909196422918774601611406146761450199347675477540448858157996606655036843655378846371783182416549435142638073534554317594060149446922922240415059043879315188738761087354964723684676485168715892071091172346912715868739650544271597832179017423261665493123101963193726607928410859068335306278351720179409939296451536305771387854794442408151350344032706383447119636239191269308080281069432106474098959471971846483850091860939363149857218936267289485629719255599634079706415337244451839608379137114029070855155222739935917811973143923355187832690160198693030611940138816347306704002988370911731732629034751713281989879893354433674858487944087803096460165019587552190413609366927630020749407010602355661383589107236128330881678996312808761917596449450289282460204036480333568471095771624187795491094009138101068121940457839207369887767229887008005762020036374237725926965054242585307989786871986742253920928359663089554467531082945969820704882865282938207680363532717770658405136617642477633119445460718936970523473436632771591550564890805763245472379755739499074542423988506933978079274156257126169301706415863481334196551085651140285291022708181842613740996354478007023082838577208275446651041410281125383488667310269541022756325118562612300501912763905960371774327039117949974965486277275978362253310167398281526679771310189633490276485669769253783620855945557425261874334164319090356912240404808706081359923842280501198448581360051388796000621398841049868009779628340142099348207267308771825240193328624564217491430581630085772946989252638679361173836087332627097196033742416989684657407631030821671321570209326022609905431892439597220273779154004128224112500068009249749800607548320495810978265052330619151851352350910443498078750770311551693838313700493545236031393782206867723603690653064465496118104659980733003349336311895681968187448785173230256081588027619170744941583129760551178606736228965894904343988458909046078904944273295255067672680805410172024965355331149786642178896383069276267692949847332743365468075347007446105623677610050716217886695722302266768717029741622395696656437017112062349933763705645637496686012132663644299433954887103155353845341370248547143250876340249018034701646298030764733553999904790517367088284317902029999535926343830388653707430022226241295278544596631339335994377287277394641736817167595811866110536877850451012802681706319366891509550199703957192438052895391638593223876220939826568277144493216199543644109787782289426819604762475138251159005490090719966985544579670830342233609559039322586731785704869639342454460216622969174310455471662502688787280359355668733915105932880416621850355580806014103268240391494093231769818669728349579844741111391034005177521211503043381107820006266243792460794580063003752609712077562125860919487682125870528406272086228930275620914190368256960479979043899049384751826242258818909823039496143027450632620149694631724512412476769227125971867768586720086290061373288241417911264219875268607045039476854193599969288356444726287925689816155693346434562077479766380922464950908867889353619590836388933865556208453012948156626768483098960479092594549613292514276018386069998388864878688141304716609380903593362980040581192340950518149805041856190301060035683741567057968951166079874895330295984571156097370766121873923086217701233098632200640782423988692585099619284712290992542247656272829628983222083160117117208782579017647878708421919766548589866612405373053484418450391741428881483174670819134589050774619017007175354832672534560105074365589394228416709846598733050929394120998100342336255587271291806932928700858031427734959758736741842052641969767949066503178845494483740552208094376270764348703468241656349420369674796952191395161688858089648234352092462412067336461365972070460321699122821579221828518065673917010445039630809414370516246373286962032586009774858710312923125549895764162285741022278949189613208181394176824331838920664701928062522117568420485006377875667312676324216375995177469190535246366627274909091448168437481349685234642803510554343785311466860763223734067741490976866204564064397957635605734584573727440980671037695745387224563070430899450965703564028613335593393486307941183926598507689383719821838093721387460499580253807573398066089853867014561036444200320004245452180886110285619425691160764382275130726625206678664297077196420790158746840563803438534287743962260621646538558309349919148256957878245355370710975239119590065661288665520036481805054845252575153490558487055293717092735157554532161542136558562775376262934855351422683726759220181218491658632185418030978437155109321365122115907723864514091769346317731476850702463957464085147961383288033532343807894651119662537200726841410564230471993314910143340361399928682547563756830640634964256503318549330710248799144336182888565472656022772847954116088087286162975406845085077271317434136052663164790741314910852069993406578903019106570775716342658046807805944689001235761109788747623886298257024517637896244208353785259676567565462260770934988007521937837314005821198605059157099200987984841224506977474955328883718516826412024206029767549219024712638321313226888672890623491497484880402783036117298154611055011796311512118055155037710355482911013602475221950740408647066568797951301784247512570184940883815495254109077619233534070187608452730313287686505061057090362152164087582317678660872734135416505053700604878541891369124664058398370901768757280222415411418023523930679488714619752065350895540371497241470883098007705383689788727001239781162423152479286564778244373350534246800038619573123148702882775119524513723701524175761474124423167997128103486608366816065252026575811417272027471827506288983452585992098440835528995308868504434508135257849373972356217363835925694001509715875192785611243401146555351665288126889600111591217455558695515489696285343231500183700299071215660232463834131069381915435996345701307473886748594541153775881715580466497108799480467271859225533288697800946703143177271442167813487068810242545046223796869453942333547787656191276545072099434653537379022863038040628120619726391453013803969007736576281691513779957502199106981693202076766379070601021417143198883520539598312952403279107731732964130757166288791734964717502979335239830545432454771787257270972535560052339620342514287919820686302336535528419180091701985852822416627891388578130698003625884091805497738998461356106104746720412912126505915146773219906141115969360041948027929538008429281688634050013808303365979654361676412344220973630786454937250972226624768065173533961363128382302998667462767786354541454759604468436384494975263056141218099567036563169855272011274263042329572086169433364952226462134492017220983464265793123980911551617526650687734942010224377153065636810148628196164335097653325071969322751256599647801433237575288996510283304968450838200723846911378502827683832358045711450655472016350734013795696597793748161010531716820663405570396278624860279628151550038557384083856902432935211011675141294832754989016608621260434517801884499284468605688866438397159991324609089736905279931114931089660171542849329732486672799472944935194434723435329257611950356544005552656035004911248109586477466537031989375649751999634923668301914104348460048990640513907865030663235243248632877446243505155246338898871716410085616681203596634783697784675650049869312243566619620635027732388437927081132684397915003893330694680787029521837665477651096033176494848117148359991387211563252299881693630962436643569579319817485494872636903708979041350457209448653024779957407218912177740351855047929929835750907932493427955835535748010689666268513845145262306359724150409331292498229461755876093889589670330721274409039409813416652713349703261294298081424816172940567087760070595652567102247500965956052473937990648452294051021036388633478003960727418542925884070890361245951307510154921814439685054577147473399993176701403514855810241734345908930104849774136676852343252734427050118911665593331387939993812536889568133517062990688181024282595784188741796241859844190722028593219143309612021821692978839782715304854280403863244816204212306332765231007461868066545783107622512565018621928512582115185957359590241017425588914174043043130330535253432479127152932648890360654108995912504296923756550901140688326999604177855450351915816644740492452376352584813889060132178481277979275005393955960670364722499847165441451247587613073195399947292676564925048527443571635158328786267976950962840443571216154117480949819938303387360009143280282993127725973242994132898439270516453608860407550997506087194892719611078344384769585071872082342880292363804608215078824718904021500589615100842750983518591209305167943691896931582301308508714198017639697369975537891924578108441570929204193107016853457606503240700226398133736762249534717728796123488237125871527540792680812973501278582267457435749732641038574031272446716511954645329498571189854980428758515236792990245911164510444224564947585270700440000140728859558280395382410187289794798913826749603430469304756765726097751945317388109693392117630165186826121313774664647422579171480530488572995657878523069265389895643913627122689860647825915072766691928353564818140449292536763827250498887669794375872534967158054524507767869826156416778383088193844028408569025372951076128147514973171651467467662936277617263340418562750373890422304505885816184520961121605105618615851855039296535682492936956742286971553368190909348956741776063919469805473668812690634923426213573056520278755367313839403446007004103522093913343227774245629333592164161592519238430526335830498537942536620118249437564743201024168296858689707865659697262818197263466742443664195080142536868953665378913762197907768010886068755266860345471097210643557051203410242117053208957773685389225116721412010588158795729020756640539161929080067410604678527773067475280721028384349390581511596638387131782796030653677896956054685178474685810717915938152702391739873389921307045815028174528459891109259101869124339880894588695929457098637779741164141709782855988791854352499300051376513297656755395716334540320758170772375845705099778020463825041795353785374042451950591579373204625802373328639161213302994208004797677916850705612084232313699942272102100588141188663122686426634120723641490578210607589067240341597922445899144738800663399357327375400434605980768681706870354435408305329155410653630446249264578909471692201005312682615166643392075798595075423069834210779514383049994611214452249953780833361373928622328015130533327938926073811724010140645573663737046705246220800089338732899187911967818371825938847883685330664855226326326161498185463832364131923299809417479726014911517199073263519160380466989588307985332376311950340185922247388382642039355931163122806133389143915585939168323269562830563511507433221999051729428571583695107218944489210540132307187795588809590716680421774535321801402152317359797458753272717556759688673250626409746964236212822249498893848415346095918342496110464407035971314196153550012715507876329556375907433773449553210133574184486208741054952040662527332832108850895194263349776670039777041146252568270366817915966745287084186145613161584183906163341360099768813701723230544977199528783414723894385434217740243008259202343231670080522042974502560478937401002084274640895642829100335588043253711323771887205023493734112500897309885825240583009196675810400605943649278865052450170170169523735017327091064185499857869231156681108503231938520052984182287692351171868933051901935586112540766646569035198506772939702961805547198254767593155526984831273166532377310061651788930199726874064611937888344339772927887990370971102007328644136044326666076949841736928096466820449748306164276430618985306534633866311675114575239274700111016248251047252775247156211784549111607461740109195752778543694740366000614265751099266254595434895188048139251211621534406018464403730603926597006628215637814840892478593801863991498987744743921310220177382175591466793305798808034684551767779239634546206637295099601546255427849395907972188553356701635604119340723901352740485304341893051402829537906514260342357420433537348777403249250644062312204652180608534025488380079170295844339597250393487616247232248172545413308419492487167720198252567607731427941515830841941732077013349622010233137022510753237999977918994640547045669494475379855248357170199749199121164354178711819007205080873891806890374876019671156946853370979265831864150464807396656502791536238260843677672681499121072505893700500353498419212369382408352826297654068003149379033845915390920799135732189309044739522706970167613508254151611093266163530459219548751140302275288357409303774175490127416188815249630990092156095317743964500891690632961399611603318614083144911107112723665654291736059877430735857620128770462763080815461426216165691329810930900275559952482803526114119210713319123946951559799204497653843085747972161500960879549176573224270214334327654700809458156222264316794548076105583076486932067141520869826300552407109342602952716172420742915429917963788634354115514380778595253866278322176384213302099487841982628079308376112724137862179670292342611685579084164414017919286995510694449752317193583840067911085766466194256630556378573818418239118287891612217845283004828457836404910464861134551631034746302218403433501117321695152516008314340127559314423468059662485082421320660391098222450716197203694873739809791310344414534919206897900136172079319615419285025658414003451992868373801013808286073655864331781020083771951378427491379534634553916269503716601687302871873909297432691690633562922090007608826460293474287144205069797350467097365664664292801333605552853589611565362099450750952647851527563608764200095843116341714234779981276602706826377363122907483278856859485621757561655514558094560617971459288981289789254322318867909918460423290092107840972581511598435181843445211308464701789847663494195546077909931940647922583954847866854173083245742816705958526635359007362602394489676168083215066022010674400665848260831881122927072177498195783413275641653525945113498385800503520579794235852120006190071725098297157187157004883260507906729700138254654287872915950714578405771366095185793552121250469801124133671689505304104109858248152785563399833310881108448340200007595047415207640592618576774724803654115842564833199480020198692192408008091530365557130367451740116784195474661842951352014619790459398324582180288059058557550287228658965184885410517902879850327647132306013285799563278384939611395047813838325221167384292002996129658890606760915089088710807979512263857082336285228968689234091261560040913458764183301931933036336849571548528377579969251348181425991229405018256051542130312236665675459217455512041543239656939612883112482788341870884356536419365103737252292021245504395590385524240418389848736696785422238028986311268156631542278738405739748627293562731533039877006907105925892524335617376741987454019037892072706298654554802807170938591396826681079726044622979461511071437998188086835767018242118113108571341987380945454503001402684192990182361104867061563885255074137020870903174875933785590682399777394572472031556215859538340739071699002684130319019902557400500038699702400550134790472251040463309225945478485401664976569452940641830292643456767315089483237417965086530743883951348993112796347751271592633202834919112387875150032773555880564208882567937489747775297301818893201145943679625785014705923855076318249671676089413889803104027817954604043943745008702078265612700734737454952541693262561715839828009271788392795998589960190555368275020361089685149565310486215636571244366058421002963533232700515287012669251544757064527950326987830059715447899029689990540007389566657907262787743521280108212918151654154696354562168125107266526974491359415690446216709292183575627740453345030224048534189470579059893691413354668925835652383951042926186042707729493731430474171390545097695679906792854472282019616934520706558673103906727396929867070193175563110461439034087458870768698125628361951912064683395624033051941686160224325621057735339839379232075493962312135520178604621586835754060276347203772675117682439682429911902234848417202137638701862482871396477809265505861998749207410838660519881040311456768921205705754286546503799198021129069961417769248044625235973723183611368075816461640707711544424237914000434153166436582869928242836626961803528998694025078063880189723628790448815285871818985363652894371330035375139859412753686188994258129334705504182626144247521725301239364064205852056470984668426953995644177701308171595480260355371443572052689024036050786681359680396767514784490329666880270778774560775498601507583498711863512485719098511178117798576285594214153306220243523117525767524304208417416547243377646674787992322873823404334904350668338848950486369868028698705590078960486475821729883863114357241268653609080667250718364454462154108031789024382054888115151810264814240452405974627076033288539362889571750542184350716161660775764586509423941774999589254317416472115912160896674741939040165843880877745578929148094910327227256266437258190174953543640927302882232262169700275468006817213987806369424150562512260372743500860374731258178652696660801342885641235150252802543848954096711643389160227189350900822507934697829367353949099838908795644621777577883564707591122739892628184598299709120698817268471661650384908020599038746966575953732946269408477707464653486613036226840057944047895794836913927464951931696662685832239172653395085321005068473557194638751385983610175159532945303522324681018608710241281316710360604472985937473317344478305116815129789536846207517631041576707933344950754471280947481565213846622911513240321408631510520470825532993703903749924347461681775906943052629630644027078790441506047047890839462560977119408201526014222968658871750981788670822714714745022337873316404712726046028211171143130294264487685596787928332974448807763273814396905782541529442256739844595837903401051773551602334086094443806117707865611869055582869554484353693117910136904111024874069861204981980020650333979220808851049391785991444831293925403458633791289142887046990069919982863792506510824747694588483145965536684790292604058946051913713793161139220724839570555618437375935357987447176292131025528480628935269508990699125040196609998373124378710176896888727722539642812407902851698032638020481621723662133566226983505495470559628156437581481748350898140518204938261369217485397827630173757889857200021792452297877790702211093224643839149169098774869787958455920013378613870752382766425317839306850050135494713206199393871575538003442666169485958319131689153497260033600344370368273595148410281288752407660153002890756551586787557133113259685318997076688902949234765639104641138020913309375512034708835160263699317641710133743849027377896931370934037775976102757377125325280929735076021953922183725181511240679454425141794161398370739178767599652532813011236493496183583449586190353403108716313835955539682126655707032203086346365931313323549395022873934791208269019632781497046384743055923891058408376430676197216182764710370831245492459666271056975539547696515225416381486570034522487216744493421131755875065917263300958868380608660336829982287207720802346183069117008321044985077423563983945864903105242861414193244882819948101504422018467058075964049955261215180774852754584085730054899330531595917576169414587521331557321080856716139564756260997572324905232324698816238272386396662249919860369900500355665088426709744847895782778999584051476677854108653273684153709684460890229685352767135630694356049647635661586260425025157459565250479388581740576742774987376887470660561141123107048721396496450180960740058342437062872144236068227701595541472951702673772843754647632057779645243730049990486562942390243839710549199961100686463025810015249732340452680844658605167222633973081223360809968271133252828285164448940940581277702386522260520933416044555141342375246372181079336694490934001188355647275049327793981377989253818745747109736789855119320622589474960083350266228988640194359317883605660766576155774791199719203282811522661329107666544849430718767844123380355241081883601800688051893545779525326563968386871947542077966720769881695505617447446222528027981381543531063410089310635326491539657372045989424053901838743890069692555029062588344970962181540466670249356951073900742383444214651111874804249390477772937077372907480525177617642818660621781467952212632816166591460893879518866348785799471941836735575826439451228830732455265145277683238434888600881353949266107704774956407777602446220617082309635195104052320139935775257653285608069720074913106074788633726257568110202726335074362514208178499390436729471610776203421225720162615175527455399681580234970123487932313549505474017669180172070488763906917043446439483923637847755652176974581697043225983269800609506779820358404957901600927212340096532004613567630958727235674077417001735426721306764470196584448980686057651351473189798411199437784843137683823087625853755655944119810140624580800576564462371124481011706578134586595512404664137862921320238085860487524404149317324380483329151285022154587991332655088247485694408286324885474267240113133404411904079527913700090332920053071148606043089134475779236743952859333716859103968127657847078277843302699975951310053608676367703016119539541235952722204715997401040634038576027671514921214480499817913800612228949793891636733469327041274540832149513198004302464231184654874561144065274500672000858189376425856821134349578197972946381856971553074260170176312337513791081575482780705962056809075351787694478548973295577736291835474940588501432843400535558736757061992527084309290040203915454858189526121919114073909443502782196778194675375769919998377466153416585704736682681353479084560757495958948100643087746435735477593154254584807453035550170024910044398856721830351180276076297300064687093019902819133656861089837609776356210803598397322763783520984168878849996647740030960077698421809602424795991501609018366955804884407014301798844051830200962240599388200873398408023123450509372281363251791511959637630840803924013003291629999175323107974860914476469892721014911020449464637328983257140160991730832417564349143044346255376226645918366607865602019695725694123341892271072585042787793333009597492111937226916954217239336180396014184763098535538671876173641611559517458322140601133970014878343130038748931448115536167178230060885788726778399823130545731271489603405853683344484261173556714665983313573923995422732471219763934046677775806096480821564729836594266753393966696921596904792542205834075967611646904627142392914790011514675530239762901804939477872695181623188957933951360034837075975872969539720293113383655643450858922811467485132507370771825604410562707264669374652991645006960876458129805547376036202948159787458267474127355732569919816680731938759739594863528644364251876077322488537821131024553529223637933201089463357025196553992958109731737722392889729736189466500634125146690304570296283934018974712867167421186944994852635443145758927318519757476102323303057879001078097741170846625745880528620764102944980171948901419103849839387725147008250340761762048119060938361993371136135042233632132843330098575218430092395765493339101513886838822147831037341172906026822513263060164774607250573533128593552273404834170699017347083941971568233532384881973458199358626488018774000315346934787446230272192308865157713160176752789870170243769882236378134745699188223457044675538215365974460771894272262230634988041667313519251201548521612807081998274147998994194343581775958573806805119107911132732131896190544655436636152038534187900491277810020205653490474436939414569122622469957382695528215823819939526365493711710538848890552126094274010808178598425847455358779764680632754786551897748352127680201608198563180334330361283636239371001283907775763126484419395080054534567134299240550401967341656124081681792086391598027834709385277003134128134633816001209758949554361870749406633227913220789304519726369113057843763363361127141334629680075929516676941932236402565161792408010526906535521715958411285050380992343982866865996961529025183502990250221360221032890750148718936715701779185561706586931862143500188979410332359019913302647276599290072237788527674777826343878748818196596053337249787848996460496733832636545614824221989349305651791415230851771801470081976816034521953056550655559645319248461130327425850297665903933651922687116048454867790454200704983891567140681978437562583158039572297127107565008786496135901065269677727311809645706805829285841885689688283820636625297737364687110099673568741077852798823960906701149915439142140922305988134013167254981243959717963554406618071446859723939674994709959190919584390378586520983603642344098284323197370402345335209314345524050539087551600507868911305207923744542140774549700654819011497345317439505164766265495883557155664247564508960016591576187341136531521259593753107392474692705207516211395534346042719341035775274790576246723020035396663839859578463133535095969562207887023411709368378669489686069994528554491700399171263071173022229214560359937417442742905153016231458737059562499512473357875321655027510133891875445801134682149866641081082032579273026450283652436831681563963089884063168702270923545480868653081354833588136870739022591526974489397945574491705763176096595836612306470664413822533792718222759552995514166745371972077705818562456655418704409227593022749583377716677436143900778015553218816339617801029627496320015053805788713748945731870487347588306490884083499564895149488715070958031161679359612191669599658069535725477446441968393887219216239662691378978425008172191662615921266100829672477874895159171045754945384122674590878381560573280990575730243850558052362440101532072710135533817740859410819014004843806598399017599577601013847108018913695000519865198614484773258595143315731386980900278726591248910452281044189010340819612750875979776208617082193932164805406264721868225760343096067528973277797578064746546076395106429596566369768883280962369571224885767280870142202929257356663453997551938250567867446763127440475849513567817692104157309572438754159423974411261241587099301977142939314210914723317001332337740179960876650197165765192601327552694049634512106968482956898058436892659329979033616611984924031034331247605894239454848504165369966553216201697816846768399400777648555828637792557037279735012998450805135715972925526877417322654861330484634663584912541081833287409696808598789714880859479544345183573057786082419635000146247210734218731909043203731167728439925190362411565080250646613380853538954173697273277970475899665407981512149257272165083148594671577226826884826943949811831493586132981442422910927051174901071646326111216174004514936394111406091807259895925378126057539912735910689383025084375432024573788201222542134862529380708350546335495897218423732364608250799029228187029095633176164600279214958913009016838642342435616312335355947757803328279245945152503560105992396809378735913667340946526182231841237489110623892062291080718562419684024485119400827090229743928600655972194704555888245392964479552116149310054956017282932679032946998452111760283886068293428902175847860265084927738068556056343192282755351875726502406936718808739830215636293094244997393103914952171914422844573649711845159098622485318550916800083769864244424838432086356914870854810586776596385095417599465518464975839359816921258461062788495426004539279525650114038657918561461393999261362779330824926017141376297762764891301674264559124686203614328290712825987867456207034404454934612254059427007042664912554754329797763932267700413809108549415307902371024503365008319970444754561548299903508868337426849762471621063463568440382925134207517971355001286874657571696918240316431825044229684275816404285378835163219330875283211199830190632787172011786332152999842581546667376298786983211775740730861432082260505777789282227876241504340691797640302038675624120949940473624092828486200578475003837456996898810570942952172948491081491339441430708528285375453551004964392347836691614875350525792775419797311205385633447903410222465284718497006273402715715838021356182474843302452993268899281782652531414095495226302425303842266030368293983953137392100416780151078934101310085747503301567710229478034360271326956227561847835913130151772736885118264183065554988618148294161055641257118442842620279326167615486057196942714661321917604575213984265172944599180246679944499354618889597918139581492356005708113750170070777495179359301812613473685868641615814260371873550821580785229954782574686152906816778888072018749736039581372059626970117308569919546096264966965737973415111315994148786798273649271519266339172272460301153786177729769239799617062296306855293383340090958556190933770405206299870972022632926739609448409042282811834417321565667075637794874327669025757225217824027674434329578947109924406745176732885607277956071765075982722132906046441139561338619727616196666919114781538499346831119896151127999810398921412168127373324241485537192604390878325761823749026952995157455535012024632452483470525514427073251387973578508518294282746975858488622081552547412314606038638433905164610899907455915723038427153513708686000231265288487240408495250149992010912580102958592151730464456999067048712565844203423123954479160007671989160146679911665002067963672014530818036793506559437638254788491401286158320501421026866594414833795403628772848170627689116282185388587819387491684287218253396122255972548426198453042932999359073609552630969867401391443764398396918640892994517033308079121326850038054553028824288669846201612463930700341906733005518367200496088756857875431170816931800071098390296168426557032622867423130796554293436498665717811299449182218938691657911297517609229040372053040914278363724642645379827893116660963165754121630440292623308329702240185732075549369317884533309335710169553476729832604883076395119698744000349703619075256087301274880613073452192757585129884832701224700773208235704294192866311051591675949145435312867180244517519714538668245746035069316692342314715332696158960691914849749547061951969256222848404362903487051755118605807361796463992413340551017768640263315500753485945312247275090254965104248188383338069031801859341963989353030698426018443303704791205018757609578844614952937978060035533134061834309005002193276130938205067358896459327049952294179821809718273266413089010658331168123089978934398899802953807342404404943227725688928627318707663752265383197493064630579165760708454784586010621989764088959718472867447658316081715066031941864520637694605834112531474238003499264450302485218750202753503495447657809423753120267692950442075375454224697039216669452277967980422265666527670270211956366340474034246399593932041642788977850977846667950565555522081327791830601824240614952810878015833379633225266063939096149348970863916565241509585091893453975110040362446086908570133897793952678461972981580090393239100501480120355554597384766047545364271032381434431783001254149670403335244922775647746344465462179527263648729523770186824078009786611617899815931339626380063896667720027024508549977596506564913386124952392926959988199547389952878133840785736775589011484308464562039517900555555167695175550837539672005469103794913067571908060937199938320792139727665551545264947931403096618573704465596204443331671479658526906215870900818614139360698544557429238345386314735857064215868034712290987787599975549840615691223360661706998440465787388962644183736523700343146317909342487899275034087359533605479794517542726404418592026306735430321237487465457921295942054375957312751405603002493980153798133056103321335044742168350236011496554481689286739230028917814781689811133311283944073562042830297789175687907550220028828486431782930618175514448475380220080433498000366443472791553503434749648615673799178912830611889549222769876250192211347955228655298417537168924493971706484487753804527901232270797285201038174207959570204856342102804975719888732621279436918690977919609665721771452371392440522646339255200776079758568372206354692166594482912157714964853770827070764311897454820136044519812185804616864735662546298765444106057878550784877604666758721179037029045702253417415002345928685161565389118093614044659088840868307359028582584068627310100520252588668788209354408436644738470127458925334215841350219199097909280550978309473441027809796747962136617936581661071930476670490496689275305088524026844298670421013180054910498267053655069887095055318618037350513505360578788668020707490158064840728823513112432538633315660230041746969107624148234011545673436546495712079864140470636858677733707257102076443810792276430586083215436584697563281019509876271364674249010619179199523980872239691842407445296047557341299120244605422033170302757142076445647897564494051044131298753355120073761699700184799627393909790922345465203675775013874771700778518991302002749704668670853825433431871394714558241685195814360949026955040810509142608054835281929851105116951750188782468418841066742965529402870792712478825340659986319375684250525341874742881119241234567323846143905950325992033934466566778973992929963669867736673343871941007826885780430605769060753019833123750938280742254396695102965481630525727230226324402598379225537508577968558003258742297735973563655124326242961220838647832643010864765709482691422540999133333099653059232207955765719042032101480613194263825119484195341947702025336286701574317425622663980310503947565033388626235653469750707986938242793767297268717277538109109753486179381240777430887039876010448455567474676813170918620632080391496876866889381745215104486264407727318898923365455252750539239504626806675451709111053624184826120925795191452098576070044174786917859315552001001444497900903945559032314658238679825391252815079426685700161763781154118626489430442555669255158759855531861398702353342179885385603065918579377961259232362953258713144044696223737981552353301793928496474318302049600179827916110307877319084711717414754429043878812241537059112757891180016787884031982929187253061746481495007198341949674184675308752258029976335649265970570511318099410973737333606166250488497796358112677271701530386024798359676271615027203726693046685215371517061824148921171892522788169845822571015379794299772025998446384695225558848360747643126236151043794340725496703136873316728233911122109613533983303250923479107295066341834624490396262681560195624429466781178746513665620293550689869570757507712146544177458311514984583898158902498298059474130843265536813090514123334413618672813162814336220829843724383107334515870500418898443759525935966213444132147812917874203128766476688624620593232739354393379429680049034377177941487905628274733584318265285918552821270919895016822333670762089193004000124121518511131351680951994200771468058860421042652274285507383483093376393541850444651165299885442271429444506697910869788542431961321333476348778874608767961260231611652323060187466719643308957824920414968122086590442485801110934578280621529736323455379376006663625266348486967704022730657034983020862004287523810129089261774762712889240491974875086723747545562622770234067221158214440768204588488588302946024190741505033756086060051416477876802095103497227414298836973137824648464376153094883900817000664337881438910795326080170844393012590988516557555210083530765905131372895284432501598635712742274788745499802746424378391616966551601140446506857528928090273351938385885476037023557822826559288025815060652531077713633378929508991624693780761221701460713671775770129386200379866093185520327828263266952501494445214845780493049881244925892988709644795876872388673622914419912867058573241591948954522069726004352295560992496106981082267914835425976841517979913690415404823366597014314511990812843692226884314948937304544327427926882271941473080079006550044186886733408624714471001028045136317636471865382142869262364005194106566402666407119155308581098941629406636384255622513973377575017954090264136967119766076109458154896297355165927274322808324076092717701611195965298682411695449600798485959160168360632658229445548897909423001401755458407091840067518576482722609732837761144300391215154956547366212915754158392038306144412128946974911162666188747596947438429124807713950515480918519735460797141747197825529158217970478495479308350459280755662724290757011351751735959376283073020016204455194386362641234039480418347876909851313328357673380936384093923504230588911496278344581012779855103336695355403914472169744996377324701842035530902281562806172776681199791092190544742854443889178799024793794391424703863374360942565316833366911753596488921132004453030108702188764926718996472603558064416415820987251506454508596106942041903984484431963650206809053654370187180951949763090784396943986154483904087589903278846957828217498203824180702397768540075906365259675096039218324736222966041049270792220449074815300025879030338264479834082635255644292288440646928558895680320276864585799741805477724118564749140148032378052632287370832306405032711553405847510112888230927220106275184431060687151169490772710029443175592347442382675629267546697832722261477337884485072555725908180579752931820380335929697302737661520906475657564692164474560797710262404130048680546802355113707586824950310274781289996128258812693612274768185060013954940972762637747334503248643427360878225910345208667615428798751489306945759886084151943276047874864767968950363694315856080900632594923362469608781838430790753738879506249653280839189369672016883720986584435581080691096800700857382542907803293579950645159000232159524441776737618448062321371851613854066154228764580848991266048322935818026014846300048857487546039222862481492812873063635670332603975155027647374979534923292274524228688214526089550187815261544489305101463103779556966128507888702287678339887628677670050630833602610504861579703418369644226414959235986461832201622921235394145108840961208050283083110204351243610669519255637596052127280428904537361174190929311212733486625083526674074588418759456377366109304195995684602290621780939204982707597060048057826962858975029970486079074406924810931798647268385103730409651958915847092452758399420107589169453673241941913564521494969402775815311878439730709563354234190011044172274417002430237406199083608777994946017908409627746451559738568793158254035798776164148980678150352471189859037884604043897477577705534986244477469023832045931384276181710065824512256815494029577892301236563628165333149983839746395377336260956402832481286740213032043077124908156263540797994825269384262374641313486155686970123204005059338575969015361461991325349921604925655946234017056397939891596491540478587888982369216509947973178046694589973123502916379842959505755009893294636631752850954505989442073126982446619477719709598603672257579790685447640516385516436845515514254675487399426141066687241755750725412998087481513633567432240783461075364594349043364899396288596194616826724412108174780447291283365959283038257715543522613945864763616170158973808117799490397053188386999607169715700208165552129686387848991027129549665651926829412339029113007654630724403682447270915705376117981334438388972768080326600622049716143640694799318117645427090712774928351123964439408357157782343564718824456812611423140447205823636067180967791064682139440967600533267032220130625483101808448164101644534640256511642759232649302875963750142155540570372503610004564591891950122780053210659416563178225916598466251402886899117615676418630968495692648765937870946562662416619505262474383763127546686370316288124211356591674767192985656253515259089486762932477032429758433274995043583153046907974573154789288722123439063542797443924483625311708229121371909202194828390622082996589106831992048553128472291961392346871103320148785810151870890524288828235252732807408836519716703046806046090949372880925255237846882574818577346421688195529814790628455122421164217654896036643232514723725529987676317497976129450827810986662121260824611659378233134787305101268028905940174055689678770200536899613209055555989221332637144572113090686556314936904141748163209873668243177134875017328049311724483545663507427205050002096554434131772143987378553879122935404880163612826067485588973458225805255422799692018885977089126424255546470138437107387126627819610098769642031524266730874596846148593409043927436973236138784842070334735663098077593326546269713259054414207129418922779331359201275818068652797071845592437433033314900953174376412847709271034692510821251827128292075491197187532328687893445861725342469728332925519771208552706358582035906213887353183745303272373236183889522287986632332682638735309922908491032543132627843445097210317178521178127502426999733904878704696576479619825275119103008947670116861377357807508296218146244655112700701642355492874371410654253774539664353845585702589018403571640226512951629323677351774315977030557813182216782159975070800861551381602350198450117667985186279471041531753869342009442425788785497653901076454824489894848153210283921710711469870428090829349705322923572343049321602217142743236702431079638347109295023177247143690018520199817341551976443588587310606705206221262422889623093923695514545236264774661865279367278356692787541952533068293881674873797501467002582617814920753782115321281224664244086352149704153377227719283018657292453766404883796791893018314066159756175940334933832932488614991335752375461714624342427783484862576927567118554070503595856893113958301398738017719231117409635463851486201831203490266737787741348948749210072888560508513610971973540605267231070072933720509715307300084658876173875046620021395787472686642793330051624782151641285435257140263568604620361084139148045467511950944064425427104251034491587893891872918991468515548659883864629621795429895354321166391052390232790833122708904110454480272443360148253167760875297963386502776760315994704043713643043741654859713124937133932052795435590226532270042638658587251360702771960484600611140755782857236489510923405261350173933354964445534439106363487763616721625145528423910895556046139093640139023879251146590712843150652934752527752200695907994924449402295005631134617354048240359104330233906402880257623331844088773383506879447287343228117769728280345026138310567542204179336799268996763479622407261377783932800250122500870382566501570387379691350032180664252670574326960361752275248353768473908466718708019130627134331458517048154799839474570679967236008954056490160729092999717239154955107033398824600319306457901006310875188855051062084096019741787836436482764383109391281913794826645624124536287290860816539609189739414369171314021965880468457649671363091933025071275654178228705604271682104611682256778476030549840261494265702312446551408415485017352394118370378595615409043288204788409618279164805054744564978900648915746738016824824721157391215441666656338114942074713601502213932063773446420692549385380863080721905385198130500173225155672916173228428061773043092832609151832741664129233478531696802086634700042137197763848354094759990605137110547270433472308726061383119622124227100549354293575216932754131183583282570116511810615386823445928993028677985795598633044605746544491787096498355222087939297530371605309739093524038030536908513282887388563107207727881381814500050782405260538888549345912907614345905979465618642304281384075712902173826691637155274077703186789270549528421608232531486803704508559573235757502864007633129880850248312211574449481073479313952505651052340734759969731982777553270835548244081419122944426429146099559240186096536716330460226305201770748002071257304648228219463185350131808989951863212810028418541770160649966884832954785092289554113999521138830644248023098360875238375981017503289762729270034706337071469550447412227288992772694378864008350869229225725769513465718131373350641967418300398176608707768072490833054378670549253244898411338982618552085848435985838064348454111666416227711113111988674580152224252922337379701714450821138288114439477686896690776714896397740531638113077414509958652392143908898581063057719655673110823575480766691426439684683118006873179330495917275518944845818645034839188777466695968757140126626652259672714403125463277848264559084248750603967639143034178851315237549223011152564133232554835294509360323350567940836303633219932973209430239126293760097459296475124642381744882003848738918874693064968900362893965715689038251560919906380899876459347550680785009165626621922916691597451887408522589950392503401466765631803093786063124174415571795114778646074197477143834409581557180507127348507729362353783605435240760455914740006503284852962569799282002358207186945906255588946172211958119359284201847718652532373595009192779349563864539209345347659356487275810611809311675664989492064688371699628209138879236014495217975933278489648682555367196523917049556704218527225734968512270489232507742030428742640509144531868418202286644674333173431038447808072319936528341757843351397506340328855191011989452092043087552612674632318968622256308559701931715340520680789600276620748525213589556505242316891967052093888319890445525549081702938199077700537161095489164185684954138256277397948892113122996560599133362977113755968941070208062456255542925894708305276520396937470876362773408305164407024434210538286706053852749900948687072667808640042889684514136272241175001887451525179118249642099358505657509364539564366783604781872254080943857831819448511608178559091032437416960697202829332686887447221747181630561843939719911511839069443970690699207880401155611867459104535852073692566883926378968582864751674902046243907003477874724589592530151242670225110466661467490726045093345077114190849778552153969936605037003764813474482885160012832281089642495176407618582567285389033925575067995120968243669830036221195995524347371541420466983902251363310230991682366193867655381475158583118254139633937688397787837385720566434246344452881576515623051382219643467588034166335223485531238010706614851225686379238785212064982353959441438323266417058495723676738926856047643162548315666989515099530478310048133794412569562951193193272294935638324060714165113681566039784455413564935632394484050141693407949226212411087901956445247207995307228818280695335357537083595612090406740314285863499984085181604963240634888419127099333087723101053859105705690421626559258526628541002098613005900378940936832113785745366555379226878676369603617942153575504312217277345586065241916967195658785719318298961949730721193589666352059451786543466829198994914736148317493300182183235882895535594030748415159917690589226046991970886984514594708547006555478678658691361637463825919398238831877181145784587956671164807637071271269273522166282437851262121730651183700025720368610585978843509903804372219428803613980048382871779062846773497102437787912136195556788388210999505750892182948560313921690051994870183091720132124417576140198451474343028778157409975108077935971292937879788804366890348706396439075727804317005849340055399766223496266157715456701669271820268915476641336572677549981913792366292952612401580042254097865932540734021477203914719040959950097687919466152046413233907368251658506658084209603811411587027951779848445101171378351495460901640285261734841554212446053240445456234351509519631226020740625757602363800115109512774076655753720411763569844112812294957545246494027840123182184029787714496988938577498701758172639148710472943206396824803085246250307896612586043493289357298851399561303904944410094959593012359066118023390267266682014221453541722415102786532196922436396800373968288824081064420840649784472290862682768952952790321618260140832729988139249158128434004697498084736716365616357527730101770382913928665787262164541010272778621947345414571583059931487344568473719284986309337169629846545380073830098489585671372687499062273782807421865803216550078428542494898538858444627908128409220377679113130451057525443433392791417912621303716385050831679713571704425681563446623210710267824727909693292577581268137948104254232256067751872432402246064841729803752190928331183638348005978191038965279281159511010205519922091453064630858833591208933500819025303551091952274681783258132943597187780866437372095716826788111732359347881614648389869931986203858769694399587184340602933598328391349077890271855083770601222546914857436900426345931522832209636583195229355828447624352498085275202990174245158209509737386404887072606525086702262400612113216307293717239266225052668206260220612631047867327720688731565476047850024022087303284868283912105730123824608250384469351515727220060007848907234903903778529590724775694470582635624675733379268571549592357888878814467428136592536122998212999376182497976922764349626152363154255812575466930200657424913215516989436944545428505455599035297584699722842295722201939881584178705356529429125775599473823802820959462183549590727440549600007878263249560653564249817549141989123303932522302216460350001056138144975208145913031156918896869286120555271222000420003435230389052344249171969398188891214163495485840735430583963294100291573681374751452809154997221566303871935708996439867302729371827691291570394020882138884483203114023677845551114795176518978458992130820729284984548304577475252909128666010564594371269967616227613955830282725916622197538701159834391849935082215970080667595388628300738317120259363563059249695655220996871032940497259508402021299806112035058598358301958181155786710147899337119345766159068836200395814600742009488267236586111453573163160780085737858966450967106057336845697018561321248989062572303541773528927528254847880885173621622494930277929844483541349976039453629349199239651917707119222834863984182068864561116435054861343424454533709379473495671029376958662142431383654117035897731568318060445541007618208186730893374243364814822465803125850166009963103914923932414131375182599780221920728234572121397839300091077698888183979385797243641705221949351728757527227005563150373899776961012471622994299201293597510047637699142881307568130276153289182968025743198071441374920679885813867404719487417176907422464345926451519706250501427616032194986165635834560830185356983324102670934704571296822155134211296397535282238424854152145342673867706567748863606537311903247166461503949200158818683173566167834131730606420271416888872828545840805149933988205323546739713207342484541496583930652904869335819981279426164525553430959986604547779970874397033035191653688794461758106724508464978170884161608364940443588070851539345940036960315597557187241459781992326899978744709024396476246499226049720663586958411344618892649107301977942156124734087075484375456114202984424488990594545022835266095318177379000430091849910580110273859598941113959152335870833865654186663048519491525186486422221906000223202931317004881654770540988150448348738886579700558261825017062572007111763611264708810460590092112212996063069320571329800021224775190176308433931952772839164432301015217352426413791235738500693149684781324013935846609809149625324337602727521775234207836691924057676928967220200954331888365252017838576342405158760851728714441438186915203743249776589452276188698444733957089519779362844960096218966046465022559583794055058978050382450201832722129049857134827237503964131534546408010381536277505285326958745164320328587186516543777394451379125571856604746090507672124878824489345257310224877889642226824008629784593215123219631529988663511140652203450215209546163632438189759892169544576127372709072286369767143581884608748988820473223995758987688942195664471825822763872316453630792737188149676122749563604113842423130398172118285457971198862971710206260060821519258426234686656717694499034333094061441837320558205818504744581121727652192805458420254357557602141052910095621708377440824854436068870728936473614936503403996790723920701030703291468361325149903626956726470850670761919131152398572409609027325935639736911002999276773800319276460362552087425814199146417676207801134432749958647175521151358489071842439061789514635027630902969467462535889527404409440070351975942641347630055162470852847619431764664631288387741369817008817557367405713285134583684097448046624440432500524581730310321663973018470348002464024012671346896777332134586331806829832486994018445619250293841041460791302718126644934639210832748800708953249895669745520848914718298898289797423212517173377017528073019063999089099667415680676449551637401454487016873588121662614097872589064236175090800469840168443669607768520707465327963626334591880846817527616089502294896205662904453214695272592072774824461313160296593942391768889356583402673190285731123896513876963958230675076043796314859247086643680452288296333514642282320156226508019718840379291253045022561694009447425277773502738864202135784753500370616652920840258521592525387049319192632711114436354979780197302793512663655095281744410909270186536205734133314549554977223189559078678974593493854058923807373861150553696148918024258552928938719417892080672709835509589850511421877470865787440407798662943509277182526043093624618705202290451004453084088624976861644956720923411539229658950776483392822057305902509832324525475312830187261058399927067448911802865782181155915927705883693253074002052166381846565166673417037721913653365178606464456187433057250324506050911090331864018386199091578143629558653972363515083790938451158305395927506430934536476052187265972564925974792263823415566975004850446975540962909290705517549765245610349619423794703585226543182992379753241299548195425421942839806600662311646146148652663500093116089460161621865155888139015872954296300913640552688520951676760334153376798254393552037580351149396797795326344250841431620063709565835652311688796455628038935011457636359043372963956663057377172176454418001146290273364495398565909691504676261590365297016314244816781310019055439993499814265335102626981769185333385605176854956885200586226841475099888933514498836562219202211183368864293017354369445275609706609153415279046650824581623954299062624152541039662172320216044711631561555038737538255923956226205490827862111136605529738509588500057400575307783107536401795473763260181507036805859457106878126847877607360379561010649670249927880269936438927553000076095640360749429863047686581469134848135628648327581438195832219859585832003415023155348958247269735357452996315093990923277732976552305872776797694150862619312022911454814441952923156835149976096533201335428023371184079850901131917981116678041119738875084046710345039385993254826764248488706348812937348665861198017164023775552305185806637577457561678129234528637318274085502069146263556101092457644055283056980755729056683715580976625453671500307291667469015642471593158968230104934246751421300599308678731560277106549920420517365898040054799463385883079937733780076161411733003935459145849388875212236289403960977702213049352330689694174714473432096056390196477815881096256458597169448840919389819354630513822144068796858953693348722735715857108868018453276639618990065556399011771903658557148881583372985626563777805594997084899442685498937724971709222701013492206996410489180443319083515342204880638263266963460591567835064492106919906382261776745385898505982760297433018515870599497246118680651885514720164018536760796430760109836781382733649714273892154186530094417891350537727464164486858302565055635206499612201349537472875481709229758711299787639387516878113447234209317810369856809033576356214391345876733456305166269651451308584852927627383145190464162678369724588038522087285227989313645067705131187466599742689379739848417709757437746792676508925119723690331924729448031451997367356870051554900871791336221261893745827276590161731598265300865392000488259552136603642097803627824079990791001938070015879086832614222815895470739481463887759642586527173006750478104684958408894417507752738368918020183589343576444455640934127817022484608372740901929210916150157991871838561559068677596671246556912217914415025039709172304553623044187172961067078929287621887375032184910196647239497911973902071860176169416918924887904627833653055335491424952717018664780493133389420521723689904665709648241348947466650548139301562878625371418023949707542702642716207851332792907158763178711962638525231806292553339488375018997350871596205034669173926862158383320679698058529160411626930202649205545789839229200959667279933405954134033879830654045472741182319342242816453035507937958415220118141005442574581851392345924390665211886412760784432896224315756099084366704447578264701358398551755308730670848957432681398540873114299154497882337986785179067411051304725947357185537488924091990915007747222252646452160724114998753647514138119645944920978031859572715847464384493106079656979815455813416947325950082291097757513475524645017577990072739948549711203606387702860976406352706856205961681278019024054822889131989403332504035166428505698278090437500258668174547524571517051879814576602711943635286597496616540700560317437674680131039730599246557917628982957705613458797395979047864669134855838415836316419255934050427994794486118350287717390277572977982283838838951965758987452895991003234246908591706394208806543993290459709567972469889774899662780334432693162403373393905456747308701105250750587638558925294750925056129965969832897164459146270980851003041607403880353679032743021262258714348523416999748791476479780652335444931698239888672233079559483218695161032818029329898368179203480235727733789700084538111303920419851162266645448520222433185858563333618593593782841490642199534619881958656767622929272589508327517405465825949770946515385063736227822319719421231243247058576080175707558031245459476879762545436997994791083468339311275417185935202881562346419895927493392503090140792235110234633782299927380524643750795805824279253899622965223609314829553446685276949475644705561596225822035954728750416945951755673739035184397152960156413691888902660450171334053154415275209989017165084785824861823012223877798134937238297728332245649025482253970965371963818118199317042760636937374583261617131481782764222334646432286893521761958853605117328485793886365102604671798236504202564569084631988431076098343730619060011812466866020471227559459631776812981648414346784065729470322845269051374102304169016422748031770332721533054123127609642104612008093911972915043918932473837399957620414377104670938876389680417107911574142279110617817277723290648952961305471156226138311656346834060991814660276738275634292276043116263410619015205020737904146669107924188893074837506113868391388029751056024459068664133068556296539642873373272481722798046768772917614847346016920582779446683832669011999612623521603168171851000187549212740412510448132308714885354002495969224600558823838318142255144313262165101404439143674180671275289927863380102091531499069287251305950251883255549253293070048985019921546424822459563805453736042759678856227140141078892573655293247439041926268957077996334234454144140440521611429511309929814384682542494686922140113388321155083334120946533613143653563000071557472106369797613224442523210914396424962532631090435951710350687044882772790599962026314637614974646424440212188625160044320920274451492337437837174727191898847958006200088062146378163034324608725925876556759652833636423690589632212224381434497456832605745182560879619926429757319189863667047873475179836656129968716581888359392787950005725630378646922560169998080383295038637878828184848187406097934903239467193894363628322490850052452799007249027002676453420162690206370122621510134814151886048627237329507285571091925919044137797038634292595228524225309275371440810434427878702178204399702001578625872654012240623721416837949749765730809880588335133705845714398406359852317947712912257908614525743045507343465162267299272279402971391741967513176939299578943076721264059673355630749792291628303164363934123099345291071049563232813018145592026638618763879501984450402352467742343644497490285787803957872418754105678951089384237167363310670398007428401914488047873082917880022205282997157309981804556424135420986885652465290915438650593569163310138872741253622913911482495995136463490399942992416456415916596830890978120978314324027829925942453773318479373498032180145370622760815300649417656683457066400108125497499055298778920854063575597799118209526341355019346514288191516113834635661448877501572097610436393184278667591597254040770014523530480034879199435326450176568086226273069404508782125611039016495393970553035351978175245941322548600007771141807070386894254551991577488223611031832658713614655769273829111626405528174180621314670439643247164978261065484932615956437255862329042948812073473178135873031448043517439113539353127228438412894252681483618456886448516771117979687820107288906018474127725021085100377805757583606141930838958818957462881064451199741593208342265089599142622161196875201019123007911494694332831377715819088735542252949620302848973740153746364125918421307716707857428387518633364279045608130600674245794828497282856111018268556529052100146299817697329707781845443203217219033663869065829673697145622548564424012375024761736334437947690641267738631494083637172880792562357626759218660940665113631616381293937287423559661757665240072997530495655651451548922807840140430706845410033121139895375097514827619576085224714618659019456413153903566766408580991298108526215267258883612896821505681054963080630403966449696276206688221061826916371604490986582205819595747091864427228651458350686054629164415743560136892478851999759807680018950107424433212593571066434736708223868409952043227480205788003207384354139625976711807007473037882721214123236798459144803047133097321536709844825583253849622590965145854088562394642855720891945330312318391406627618896738687985346265601606633366388779026612761130430597592447166247980684343685669938097986526170194911569155216195504249028372941424330141877781028120806320874301978896862205887727013162589391552878121734956114736645991696968129327145083364811598886928513778095356667088248952832638127719929480839863311983494590847362025641048266044815845082345763968739909833202004438375355433181211642932222293181688646606118392859761623466076975908137405441248236011678678308921123302497403303948390673244962016842011009828476452474857958705426563568723117938612252357040710726222793886754027275077126554720793186138721148157206276792017214902277758986226288414728268073770943315345200569234936602547982674428320023245073574272013064451702397425740757923887384277852508888267453073655795269093449596542160845178500538007942223112142423719514690249520662703216362870986500241781288556958305381444941922288167723476883512188131394273676342192481481166795952961588410372316960857749230852048333401450908033465785056583385567676270476877694460232981940343537119793471543455095387786592074101184998464484763583564175004057783255208483467572090944358911954062376276511363506696763376516284000563865093802460997354316971009633432837151396697877970892639329104602235773568760069795417636630948042065704003096592314106380192742378762641691278988901342647843845979468958460333434191523977028247915536471815469150462224181764421128291429431901280040966307687347357266758009413217183410089154706867654694320389520541577487299304858539062825361635606426969821137840370768423196786747695489055336308871788384330856022879759901612642464860691816674594574846559969637582278049932420363085472965995322065119863083712629288520263268325316593226803201576267210638124196211744391000163095417213300225665485273769327158600534222765869357897045329618893736448680594579071903740706119485927288662348192105351958602863587738216770992616693228887434179409449683366640521629705796008074756682113019341497328412686890711667586973307122838491093888564223312229519383318562875510197140631166210855456385713389434783642588689454912286816271493486692302071718696570549262758544154970021988871440850829511382623003000001620536343898991100417110390834907243907552305087051501065724741416249222239325616103055035155481351218508056571053385957382759222206209945569124539314483428993344396865512557216701380718869071677571424066291375592856463256993904398489857305933739760344897048158970314060530312008682357147817708309659225962102199124602666505950656978740928874645753467310613429790542886331718557117513397401081942507751256305112849737833729771279831275939104260281645944077244809703398199617810362360129561084478811928364703902772221999797942265142070226875768929807995598807930720130859707527637955790688882795644122272714958282097592374955324664388531552008783314358080410523777401587771399556019845497006789102410387572125526313689760807850498519211008581956401025028973270023641326591043942128920122430609610763508311970290522221081808956161466070573738036838964605196298478131837367229840941967800850006021138489738550881310248488107503154257359787250641355736547316156643475051101805147164343313180222538827641057147081639285837432420599252865574337764402830446957560790836027811987893962880029005798915762137798619614951795087774228017548075939157354606612317743801806235602155926029042386305102530334315432181980197518585910870544604579107712342512665570340122581990582726394327490262777491798215666556397880342586435824103487642058209066694024019581820240233895354520646669178718791399417478553535219317655468433384965748204706477592001016348197803809826734879296927161246500728224428829013886750520558719788507179817809793531645892830206631091286072324175608205976011174454121567967890826956150452912936906439069301718807600818785985376564403535672694850578544494151535045505152236006154784797816520190304437368285564243094778136383237136989046445844813886024277493959200467818418948045421776827576280226032932164647372282844521673812962685174237096129528253923033944356514574764125266401841761744158157186769306570632298989470911919046179027010548808595651925946080351034113609530859715067220228433009456091468702618194089895285577574737031502154922413689139048043261487220062737334466207774434390777799521784965318445627330156749081210394239430838859380506641910942949053364597476248515840170925185978747491393240511022401691327958381636811163630671164281176774707259823195140017503407943033341309904874608592980241267548788798569923036036423098296547331393988314619796834030715994137890260475106369333933461473504759278159265342182797530333553194571322000223558820565212810567328484674403047630653918401371097871857273239520933614016795628665978992091954332661244554889017975599772189188600706799912030300338317658400776504817983678370461106146287801377174776185980465640445870539000376574099990906546630994906628166999117298089698054441147315539477939394753805545137069623895496829275832902088863366556449843032599458182627478773055590757422873020823560615631333283791171229569434238468953031286318875865516412278409970743332504753791579461726660539687051459789774069285781416898810342312026553349935178739346006800891327835399582833985412919590373879718768321549495292519776167212089475263274359658734191113968846650099966357334011726113361726542726877436365222528842073697355777987648406402984903117553864620395517443116469004835188872821487284481607632867902208606687785389901564605446952727377127894667296355628628502101035120818447959834912959902905546087761782851952046886234070721222924393955912535496830187907123852211735153630112960697468003593695996158657386478952050889418858178191388454227963007017098512022774784475412072333498551339981536018642520212233288341496060673346238079373011651096717578415638204295088032370441600694734536077918770463475979315748285379962328482536117009461860582887194073963892827905552410701737466901356018907461214308366473341065888615700070825920980534981014603528139428730288262687281710799212649166586356686934151800783112143372829774624666381611989398797332683960740242895750439798538313610939054589133448356757000251559966127149790405161842169280092105479850753667013471716209732191175380136260328012589007521821635833167453566957758339213754079525779935988979811281018205783303714007736629256455076130913202634139273857755779671122503172801794398253234833005407527162990524761816722136747630485382105063192460211800644676856719853124911077832818256886037535258982553921232709689516956209215863020943599570352833528837401490643262285119616002134789723687158049621766119026326251885731450024805242803234985273914405072793384310556854037485880663565765287698133320981675583206933168094345881043714179116848915744263831232103592655315531889766019080843755255249847129602130808330005213544304332550617676590462541994171610296372520286915234278054783862015817097333537565179943749198072194918487200373525980887672897896575590588085710131506733925938537240644570224934347785915906452648245614607476699434487888967904621792478303938805882161690766715905648661956043381366046420772995677932452447982783047621028551580092047661866207252917566615062104465431326520181575485861435333294160429541027976536819833478959530949443834810050521975239797933560401376424753447250687938247902244742733736417086759852810946467123356837975391208797421942068500878428668532227595058330021926319947809372110569776150823715824762098309681525740065232393509976228529570152844537896732088826828908242779066542441459380450126844678276552515770674477056165000347872685490543000008947025455899064232938024624162528632772448365225005375600571373592186560061691696599407678114410087064024788362893904840012068351475297487386608397921737490889234403392700779155682054071369543391746169423163918454708956343005803237497753158658003080448052919419254821422945748064205213109281081359485327507706722405091224878720740289869231382603205196905527157370246912440464687949078548224631415075765351017575761993917648031552067481772433510479747821656212177803102937687409007037155902830157640986886751522774349488737296128099055625462982997219361988802852462096259326667513208314921076219394303718690728479778201913985863001048329651746412437805074777613751693580423606081104582353562999639214888260322746611052591521991758203384049870606676970871354437305560315683507178677603986953231273895233204705158616137928094606204536303606432681457156756715645470196977844878950836542077478645316075599521770401397657285724479101433487763785358143641806586856815710137079819104638347059275308955651917908483143522098538575896467909679342105056177041041317909127872966190645807483056595638411858760806474548881660045334352840285887943164467920343302775786121077068772595405936115482590343177847594455046258141279051349990350798621352649310412947559508223504264444307341283797031277809767842116623616533976280228711047641214405665967104617519756294894647073319143458829682084458595636384490134510339369632870176301531594551921112785091439699203692477782536763603207170611793614945063001139681493479486518878009398630914988723254687331420279596409060642536571901211412348324892285804824048639561161337739355307966842009037783646880026279390269044039126515662388627780881708358940184974264878301808662288846398312787878463352151883311236634177851065346112674322620522412967520284043273162874115030767696001089437653875863073936318442808322273705110428893936787807847691646320928441285568863567536399612867992950910802972854629591325169507904754090987037332776244523676786319162800200241742230935887433360744751670817828174855846561078026400543334817745897640757985061849726069580798171996647257688694010006392400004341287732479539697433524120054807211538829141692564661921075100001767285833981218528590588512619173998794347224007804228023974598475747243258176781729823935690003269639034839410642754424014274132031104916678311226797610377535427727584346217589524147667333521870564766904990597381039381524114993232200629625735448572390987729529868150292206639744986917977388104696545381032967712743272798754491722931787314170968645334962381445221943555067087727551990163357756828532837202536626117933341403490303547928487870610164697394191248211010665361634254740451064901598796767746260618058053616273683266275560500194874841323393869993206006118212496226281009709486992575049775401790301477989005808683259190386394401801436895032831282410192841326583396273234166225981923587669854281052708060719975905353054995648962867525956224164672918912898071745202411223128838045055351353405851128504027499073400983463833441233532519986083674963139628053745946157969616388031091057999703935248468394668291549263234990709124808244925147338055586437682323703285890205196889127970106908572738233051125399071010606801794641761075969861360704015910002145991025788556283301693398904070763273888679849816997948295101643122496191037990379867467022574445642003385291159167495576423821199258106415687147281995547683616034849601367395536540271090959681206473310382047453335867263364654010181987852324124567470092654614878978342007541734844915878430807297409451769653096355335264259908538530198954318674629055407120341990833615723540779516910755409848719608498595332646160854623866679164528437747189434454005878720596214887355243425668206076754699545216027828139894781242252256574764229123105986207421039414253722731205039845558143727647413357781156067279595263736102611691403203732571299410031127212245247709483339880006540196608576971909696390683255231810314214944773381438744163362709293875021821995819636312076088396901454013964476136860801826825963013470465422501742577287881961104742039344319388368778396635977184170646054182298723694694074581692988232303957429454090809453280466304045900432087957701331940230222396564877480233075337178778959202491329758253380232405317713958932403624707267316971314311379293200256517211869560420030401671433510705690268026584706011765482814072776404377087223526353360966871224554042470872646199370221551756947079914088465922439890347863401409729721687415646274401909528465913333849512642175181088715111646079289124594964526465512101576034181299043315272158512243375101707146457938938311603681859711825779578375456235133819052953848456178146212889916348601811638860776453840766913444470833657836396012800766430349236189690831351710343706797996440607050141947067175123771487166731609997452451580367794601972623761034799311633993282284666138332753908344060199132194088382604466970549052250974803418967387398655385031894423955254281069823187474823108626591189367799719845318469245098347384674873255767442240369062030614157318015674518803737424065008258204969969763389163176912818854603261184931805291900131601187785788150719437412398230057234546365943845215283067697178765833361060711679625287249135632502248034575693744011414138720588032725801415564995039752961239410786676781353509536078525750150491596647931022418968307994717302804068761227147768298437979776299686156423103817784899923373163652627921395713015949254734261328902901310269010798882844413507609397035546686750018104928508891497773199400656294477295322397177401297916933628022899065595877581174816961300388358629737584012996792959552662153203394914608368623072146480979078116594696918323995472002547538224289483496120025527743897279925147911144809100230921589016368427638834949987730421833641055289092237793206393951817079810554380239518182339240254048569097015925615653208208242336845167145485688804175214143997766577336409985558740961575095676565536151308725294246609124615606286527925427825410483602311441708939864268566036382347990518584850191200959497198553217213331475528660669140285675636055320411988479615145118549771680497997981479826264313315624795538527774474685930450407154644540823087557258921193379733802428667964560243593438554894158462460622840564894552567131062060305483813072180192380952896608693285082045194537122982594691821609528786331124878079599582332181103700811416541318046266365567208557505611434618913393303485789333458743841736341590031990853507376231985456164909017479499787959321820830859111718330247904153093525160446572931752003967581002710233384125879936425159039177382087522370209542479199825426463342345502002065830178863358366123213026863977002148486730442434449554977525477256562065430773300197027307925915343554008648749954178708831081001344149641348325560555713792258734332265792351615022100410182879096718868939804358563431480702204480583356693552448086549857422400948283485050880107733385223601578038000483915850033395721697563158255834137230238893306105143904095316098539959803175793528812213080719037867161537030945452410469749588603785250904489487802503561861439837888477937228322500234411687831670097873688123732893004199426169070218040552137359244172556476999438071163017923275140704530166058445686806285473977758880532758417089788581919887395940932329914315389361611091260616265813940728790886288491862971390878642833192495044979442997912778409755376636090503095608035936933940612482563330791562423762844304132537325122887954984421861405478666899153712700965383254534748081192979597887578376334290363760756766176752465344726685539119185378850266883872131716169644085605322545177964611371154096428894368533431960437674353828530331478094457966818773011304878903016942796660642329416328460263460596562591840222380745344152253809457412159155660314658133399543161015781001612506327922830644735161386941945434242175149306181890657554293369472065048352757790055744375195854298174401756358969204005767808376959410601322268350033574875764931990911546714271139836671611341918179260694485310810883364128798189323560785212570219149550058341487300675231484386618967591940078023683554098715111301014483463493069956640882479405535002269342962176253731026353839024081614788773813270686113909539101951892837646379162823055177485486207802491237110511422190821608053394192120983646987102871873909864505774481457848819455954689615085042443175878510568128118191758049462543415365386704873501648819098916867496739183740935074323393678418036605763751588587392641289756260584150082493193648539562979722795572361237382608281210100155558855771227084928592975023464325558171442966397737190334742993207872579112976684856510264884397202264363385438712591133248093567159290545767395440919940242333719910213233166617961534549531559009609712636007678147693583882540498386558370672544594559769173006771994495267155802685235566266615618469606249394035976820849211127838855572605287409894983559979365005814922301406862981645268923184749946141486045619352130121824198722004253810114584996849226241649177221381246785764229840334591526322593744629558198738358251226394642276266494939103714446040347502138410484429231387840667088896519020504225090865869732548215686092318836752952124531065830143058398691584656226149863188143754332916072770974824330702540178918915623744621829577797847192463891658461596130849548453276463256479636663383420369672698294890816725750260111367379377586978719580562204231967305892221743273575129486137815294815393210416117473396454839814063156965862399038658630423983811361191483266029233818618388450585944063219623415387173727127740702365917556290804119601525270569777731223072970066991164437681995542631377866322218890363756555892452453625515324117364560926484926198115463946674233217686732084871806934974826198757571211973923753065464201757986834474719341918970761138124529824581005295753691983625100133226197122167174181813249672211549848068277592979904891899025033446564298827423075080870405496296145735503385962192545979009519787517684604364117873731683759812476926777856948657522944260664256489978643834759474467272211841498569599609063662756705942515183702032077949126578961450652387374007818689024646321631860288190735981034683593922893772623460371385350411659819894551765160119608759378404035174016807880672127730310349656840852534379203385269491148932302346650158511133802077044615759374935587002571336040288843798823279941407672693446075769269996124512779381705584572939277261680214170711680113763583561280654976176126840541334938564307094268808283987962705734147067427498116512139381736982933381755702332678060061385358643341027135543391981900222649315853098314174548122691585029865579798818307025144573039288924822368201991763617149361237058037586205327921916036910163847966993429141923716795227549805050051893542886459427434190961421117833708736039030869162687848710269345573394368825471670387035155040204271077417997576031100182018176041605805347493063041873901051751087837358845731858258307122593392558877066953542835082840956772801194607527683431265691272720622563174212339634030254497085262278299979146052699609542614283285862787815750246517022348209576676728106353139232630232710511229587566544168460683155590968811818365584913588443185443879572080081178327976695181683687785647479617089442736779891200120812722087946197765246017483633436766376606265994785548603349332377442412733145167671061751419010221418674117808632050360625820757712327415691580696547378089018425641703464828804188964006695076157830684006988970857169906190242631713577125229379123228044849356355459265338327512872270326923809386492099972447143294609951309708693514800924178851842897701644118786391778475986806747688697571858601132930356116982319024403873229839238629682302283346223483241939864795777172289713782678880528410697887218448130858499998224747144000224602395838552374621240626061900262688375557487415442599681552169248422319126708013519105283388542104043923422920730161821512225334004800433052851393386149832480239716675987312879905637521052107561269028831774387940834437823433638876756976247710723965527330144090769273736029594113034567305282914554562477098735219861794502023287566090443723434409940995978996282057931880922488475893569100847268680325231681142163772877489306435937202665778084020258974365233972049000980036827327981758517250642764420673783091888667203456319373787860155661430297897348417783072979484456527381726668612149090156199040776896706264687804346154801408917012484255730243204513356852870655369483207979368075234346660877182617898012614815596778759943217934339895244696921563455051029992691379790276722174825630890244229142391563489261415725558062827030576025881867225760520885163466634271291284538182453298538837872104932658473124299658594248214065813069839955853483144771077164478567944748453020158068809739664553793535839698541625501717967321821775527734510693889489933860193870468819746815336509542260219392976721217689663008680887974024759964991815220831260648727798059595667427504363318070742516769520877529453200026069256325156245155959446627878705677978408525539533446840495493558265802826424928764863487457875565881243398571721296756563103261094954757517998559234255087882051783352990771550752686076081104534309530022201378159866474986375181510688347638877474898332003739751371422704726077152321772783747185764182795454241747415213326638120648834652484287428267385702770824252503427503837227214986719743434402332307721269337560778799246831616038080423086283197647090619479607884154075499287451899584603316360262494744780230645615421307541771544850245107784696134278219510117991152423044593985812618998917254665545216732572012179498431019714520731359244027475611038090832421809718487855475828162017442423004719116520996503959202067892642008680451674864825160620046374496391933791161853057946797740781980393052787692262784008037979044688830102260886857996764460761001327542012720895807495418242090706774742200457559401105464241242693023878351613268198707427851953607142746903213816103097416266218851220215044907219514146951481711097479461756447730541437246826616154458037953391794319682580095784212711377921660771732944344193359861182879340303858076160125314003993235083925305988311465681019328182096119831818061702146352472699251427139496429812459288641522618343684659661988142508262239886591973852862251265856239808410930656443645362271285004091158409483097302063404696069246954926230240294095174714774080649271207697479350195912658383838872616378815186636645573617652094559585318538738581189727001985624763462816137473371961735477425604093103465112378703379309671056580035941373440308197888983657146221936357886066041764114188035062158322181427586014625964841187227014228087662386161405530989277338085118472917327128323178028446502497210631858816083526051361701870028757367289714110493582713297676649684556869134663587100270619508639172226420291213311212276443616225508535264378581087358003495294855405152699291923185603797879513357645465241511053443855344371068173344435942332450431521304672347899659760594063671140455597995723543041285889100889633518185487686553170376239193553143665791163827582902352736208601326629652328267933230228975086259102124921759407816638783719248133060009060162752173908635700468708905596093983643378582444228335394291677138148141145693776691935564421999335945300790545343201462088325523179052718914501765849020396851397016002759376558654488312778002567089727722477803289654493643257000901917321734862547100319789103134229412224647214357542741092560234667315423499119570740261375966892069625472907469356462231885793043302553761934105969076099175929645673409034800151890626345406140567776903928301957284627520054875949334715124317413630190417440416796196737197132990376244422618894424794549885065400777109876608357266254482811899242812432572138249488773344210073828345389039551355502701586740985476729295749109280312263609905557319795260454393348894691131626952136264095982612641334976005464102988109124946841327676205387229469126800808742427307434634862245484421727961903063173062832644897122506129767775676427435103745965761930764255424980226254579925496316399303132103057195969965121728867805825337994729661880847593015512806010694064760817855806431414466543367399582325316256456850481188534434340225026373147349323332187692402149860073636266915011023890665345814337355068159491523387257378035593699937590832332430632950014964689940376201648623877661793149447729641249250755986394041853206460754549109679800462035208857659414222434776870290353070917172438529988775323527747814102402783353276533614706415159632032434058926928203784934515404292400948734613678369761733540411794269507316260790584454286977948039449921646227274347533042428619289495501966007424139403188738535393380966135055940482059825529110952790674588412327573710221555294404181378946231782758363121574380665507397994731563948075218977826765277585029899268024966972675012979347316767889598575684509689068958962045687185007164064732266564984103979905079469144073658566435567292080266786459695990826157498215016331223919772255833047627799617150256606955949333039802635383068811529680277470451965693292555374601132413687061403132850918360613792191580977703223665857884900008378836096157810568498853035628124592619952311399940745521001536376109197865744596217167675661150970657818663077920343131175943028646265567472145479621015548304834609842483077447075406947604870208501436949440566633700483242569129136549544062144270797314068117145151368017438104671050395642730706647198853891495212325771658088451916722067216144060019454831087614887591257730473225029427368060652454479516672127865165481661008618550865147426401866429464251479263515794635316199146753187552494039183392178369360807164132786604131246156901441659162590309571981796213027207889022363103240280795117733039707495744832287407537215875048496650279335281920613452414063169624349654590631565071094249252324588932813914540403613849930458945855316183409439184226649559074138139789039987912167011943738275256031191255436403821006157290256127644319157180536650643561113584255846891528365554213458996018316811735391187851575665408431758736798521410112507215398546259696470729415667524081781114847721830798389583731293702975164655675701107701541886997582988068881510173570953647402471428422501642768568655367785768915030497439995803920622441067719182588159797489666242143480281148038166796163197312814263523558064675263113460600941031225715501049171321119912101430558948344341443510669234859312960535722103843798395200157659346282912789049930498408904425227924292574742942654887233471336192180640194365311316585010673967183819341895785885831012329551370593459608874970956197014175042701147699745491969136843362536986446858890708560686063994571234008591597785168269263405689588102868937738091083061714892728355869562002371006464135894687335882684194666190608680437707461495292010640042902149046705815264789514529191077014456694351911276654652890484532763313687936962900067377828009355014928166697428951357639349349756453561119066630066682406051583257820143718814973923286098576945563638911817531963408662999952163292340808665467397755749232294148320498551210398150111928542231630825135314805547478803841180327098500862392835308012789257565775344073674903769840086884837133938668673386421020901306246936008576384111139535661115823373469763746946707300555074574039619169001698830731803561321631571957671891589096510614256556419454761629491215845134747704549102103941308589079371135180559414688095458586584274031932487632285136685259060777514694621631128814214580228071570904507587147096820935662839915455255909620803796763109227749784997741187565204029252929390248588723584976797148839065318713820757845819478247223754996640704150797536528388928613187102250768475978770272154218455216588603388736705726197916626504567196128903717278869705537074383393795985462819618082703031493843401398722251641882372525379284261773274860789614258069134107298454167290840873729326378204508652837194009862893190202181543789324978726677092675781654864866217320334303337945140695671132698608885514066297836519101226623393090622190220803540375051015496014052129544418958765965049542024204361389518478802736116461105148256633148814642160875322226821769906459323312172155470153651357511008198642554434862838420456552719571852882003343208657897188403439895807982731496643854559062095293916554044687801985388784375814862953954961091318286706501976320233555693297152489518904721015637604935844775146162755446708728756737086768731620574224130816817720226079470875290171359344896316352734978146071393627208632089378667957709435885043858017807531890406479101379639279276465805005937096294130403544194687406594923187378657965232785122055569941945057524672032425691949838344508071664028119255317599250818880600229595071401866719037113668109760613883250288556076304709904072507199143287655226912534717503351162464411215401523840783127913882505263309383430172769172608439482031623173019638096362215508729648070545351219641903871225330021229080096584820212545842051184743952625946036971842749685935766051969218176618046915433348207101689095624047473672229879244750145315094163737325248961617374554684174767343976241369958189970312189931667954270456837630955095051740662255285201488577370431686910220929250011547546121279801577834302279175874763383360618647934559920155044039966490314764190315410097737957501874451689445112145613812967084459174352226904962026353322420856859304018926652834483277250821007304652934496581674368322988628316309175640388097605769795107205755742885252977801263964001837068909582898957283162896322039398932888335919752746299404186039025646600664650124827500328933583788138425210772343135646289713444040062641086444436626276892315831525379088536748554520538134339858177918310874108827863397748096965257217360286054153834189740288374178298098225840681565495253851363742389729793423037807038054020248889265502806696998118020022520360701870339957920195376504254025460691076754919994788673183395385511820041486575658342229892155755211732804262266808694854319931854151539622024446926553632254220307761618203306637759542188374955076195099232078829374963489296738403028970116076115659933745622473499368517141631708962972800915887547373440318643441664090021605986550447165697198870252726043668631515803996201748341014557499980330965128179744547623697120010241092229543772956978781060680864087083827433424944544437216598662731085889218811862141647062258020156519089790584459045101868343751948177912408048276802816028473027441805317807607831683080081708016519421185406480298669047183883130815650999748582541997226750784724988647185764725978951048968408949264527244111600692832790217361447603902426712051510213144660372500126491394214109211840754698517393579383606050508824111922503361195461375668088618319224163705237002381818449116986225851133471113525360299631562271420786004166205363742890274861417679784593182850800611017817485038589718531782643334362387750116342001915093633487053750709154155590513254543925012694692880979043250466834420357249693969656933431891634858477629134318625841143222846577383166339648730520258432566241694100296023562771591461922536860282952208750620162519804997969662785058482911683453958899772471160321683478720991289463544138434898137706799192607572242733329978077442805941913303787362999675469388960918156640715299986756789671944997844941108127512518404117894784041080764780054661016527643500299539943867322186974116986813165916119334311673351299782498832517650763527028001706608038140581330059773736757426037192358882310535930017986240574947180821956181514070117177367226585216269369153375513697406480521802654059629909012428771076591687665426079180312124022056425491967275934764506621093377057331095207249310852680137259740292945426589454363559960181781738558651121561165617000688389830972496695278785996927212948238219547364968372405545733136798259927134351096253213412153440138649623310346558135150480869824927976668122725507447078486247323670308057935246697466075373089981672326382622403687945082336525629338311302282673227903824119803346544755801299175803948001653406517729649294506977642594090688314853783133606829637915341773082785527697123297231457668038486536650092572821692178682175727483159339304898987711439023276272674449439883460417365610679275440802563745929165222313025394760857850628203332020733776560244671780252725026024825854490837913869145902380640234916655618275930803040882507589423530007245748648555856709896922029324717295120597164577159767043957121262937788778892804562260870940473162100291517012723017414188949797117528385651867345870680949782301515791695657109456588808230939036655756021152367819020373534953745999044859349575169930895622529181053195441952162204273260324273428418293647508697277998339872354764870204021769157932974106182981476909274020063127098804388691275347665609105399146393043113259844834899317025603746476284163152134090825005170991308020306890857192666148729285807709797182763041006827419978332839375843296339480701494335959682073506751517860049456115941656520728586627602658922598439741577519531571564113739202051114831490453585868131788744069988229317642770077012937812810717602974345606687952623391749385435492068421503794556994090869975844915719422513104283283489356541730976306670789706299499007213354647366600765176246692557047608805919575757226798163916536160091677588837215522463890485799777409332123424313711503470119302736946635480764315714922548163753525245416498180036149720083382071900347130544164221218771635897003161330166659106043212468033497328089058566977243741771997712045243135533378791851899914543815325216366864065850542293185528151138655566659667971711711243457878233486395882320053075093504808552070705923823236311677813932625503183233401984236418292721914116798543711336566116392062712279880529989871935167147333587430566500304404445091211659288957471173246167027543945444864904117497369937929083413619173710197177010918824758827447857050492312555402108854491306818545743769461956170568580719823767421912374128425468260963208204189869326964730473250035205007561743367354008479674834439323785367911254999138099159551348398884608022859690454853149172972025505723931928934704206135007493163968806295321361036030200738326090935743369552331491228880527984764841477458563182848961357847454699132983536026029985640351107568168667207854825109250768822115727041699514673514341908754070437988999207473847769267922187952476600862966625453250354003839593977819058173045505080758891285218601327212739547603438164375090964508184933848912759887174885683628334157337410862762925221930957697065279235597249319755902084018101847652413334119224404071257630356035427713612935379464105708795385765833929867350971699145718189481851414721664011662384895553677399303211923794660276984984151231070688198278364033979860530158376110850857499156767957690486123956803799404686578944031231678707317296329483949076705254708113534856608168267515754595975018381236103493717274115022546761174010523143510506527566131266794641217490024448659014008119367168757495857170798834391623293251720636583580002129454823813071414333062293126018173349187818221008938471688218706139752050105994134893202494524350612242399448213804180792530809717433795011185195214522380356907809616249559953415286705234845702218537903983157383402274715372631637691273279377750959944494683823996672251632925496829650753480321995922235818150793125150651560970549119816681105820867443856763392733327987097316459200939593885985858433867268292747003959932833375323789955529729893964520342570644653615161931193154474424124582542661800602129886414871603326264954252286561863022549469932200879776162936652795088409119737434422799704022904689372005172715821482877450633618311981752085153781244846824274353246636817994998226922831315028513053914004711910472216577084939419912595812261511495236909831917134846599476663903380618477990562915888473030772692839197485491358435352759328228681609967097986731071040246487644423112702151920643389208133672162355437398787745165652406821461726321720442349954506650057046762617508328908231804418173253688936033909345269274088609135090516822033340110798660536931091785944403567484822719959116431482211716234824607577741271613629189991399468652075275421097227042661724235243472404974965743321833625647796220308069773843623821090388309986898900665610799703019199820310909791978996878153147927215347990671149466009037648556835980316026938247559920128451117649726239635102035002720433484478843354275612359366441876498751276919175475388318302737685115596713139878555038011206366990924055618759141441305558412980665958957924489179048954153894107579860554029245523601876760275618647497126000568976925421141410964014265418596773818302520230133331353001381630789413789392692878671899557091476613904002345889218860707836205375691328651392727689553286191089285664874531423036241519785491030360633445304101882678693487619006828722236071073594076835100692341358909571940925985290870038407347281992569747953438100211159451801014195761938386539699553072272208540127815530032102714287310920595154363464630584324588801913168559562693471683638500824796791844034141929619999897874017593640031147896264765256212231832074732528565910448601010247685021764887365053269578432732435605202514197333807878875867245163699489806939217111686111423721273325645090005202837241529653505805687616295507442411829255538099096390863691973915936832993710148661679337258332300174766529580563878641827953912593587472226966221484556207469454326384403923652579408829408664436869257085816199624677764180403583488511170387612646175002792836861973967521728673146022143016774374668688712673600980129519461980948869982093442267555216535732908612271664481561220567561798871797292973978275752354535167297195931869344502780738278854060586186972877415037966971779846406884906461893552145395389212932484567527980356468305618764122354621743481440646701372446462747017958377882727326551419593650056897131752767691438071361497314450231530218591929239293105251992391194692540786823306637305743290021851192488050681419545822868934176805032233206517877751503081587569419842171302704481828552817531700441924244218815807524468651216641827065183859281018424422327042898381729343645555162926573037820675098145273812534947131063482216219669309928104503471079104684985061468909740549070449487454545196372848887518955915751711444569975725582628959049628988156277890297367576094227361756979027659002061567523167527492848172031974452050929379367497706053033628666647187997049361558320978195946966839212091494700461467650102797573110857842507745409315369410171517151981093045984761144746617520309611809491090492540677053727860178753568788511243727452127466214916240705800819999507643637970897031185051544443344421627425068753497353471514174758699904915300015451594815124697532164295933656576789528267545227540599607820261096778925468279563929373860862984578374098133599817078543890988088769446391471178429621631031892075522052356020728544322630215019837950945353629195199977521534556778913219484068668114058698096772570880404658444393538654383117638818437573881978969705141737452462429771910430947699058473070528970177750580618039997609577262444074931881534883933892250669676136383551093577090071887225599619054875740409799427785314443926330378195155764772646915078000760801952886216649610408420824303133209554385616639958520947144555967952532868783806213342844834070335572126840300456898952000626002453624981576767227949868164785325441354813478471809657287596046077621186606698824832175064647201489985664003362786751646450784585179634235460884427430473041349333734930166029119034167540828794132625892939286908818059196822768968476655204581149823988656756476318319717385707648965232629667409982715501709621514575472320761411254348211715806686991606132545308935767621276410732151067351478466919500492604824265050048799163378976858375254384733535278434765201955614065397966945306490331092309141924768276420150691605960563596324257701593228115992527981941962730728360891238416343651930410154722546437908231692392387792991578728024887611958229897330915539994582535272059660390984467874325736136439772203058193673313221468410550296241048067232381781703595746324371101270574449491092003731260125601851526589345646664392376202845194711746570395452989103732288701823620942367466435729355820778036348734550320119782258190776502981690452059225253224816895644795112009498622140850810576517614522069568281709866626734846710325172507497795304623572923759720537781089371854516638149142535477201274060745650788847650288987731243722897419822474836663034939338485685776152551620414878244789212937904694122145390465785498395071785177952315585406246940302231875689285888542511711457944983584197650204769243603163098128465537829225552188128035981267020757174006285376054765873508234053867073710824497243967312634544509732766452702799495891671703383511937017584739655298647360176897222178896518405444777685829195308124016457993679273829876090141707588610293745460685874359980990943274561072823689263022105927129585361147817119218059931846977049505356042073363891541284277672951209649116226597482124035123299428157453805900512576896989170706616163469676240287151550345518668602399755729681389162829903773511013004934870986312632659877948392170483803896742356024417561545234543110549980915920189923028938864198145634920773192477860289822242762056168922683848794194078761065347189250183169228065643191511149211968950090644602468576668293751982657854572176670116820221824405700617588526284926057294010441679726087040392523629037653302954524076786714391477707924805196646245291342140419938839412165149847738476784994288533128603485990060177648437212207657379297039583589076312076539950419727912358478783282300086357057164713398418481028585240527977488628859693285177129774615925802640966332629465395955995385906507960281657622450778196320484801919308603359267942256899643292405975034642929685603350670993687418860816975650927848554127921198070325124173927524469853856119922103309414614891447548212636657003658294788657230502006602849724845361647327900280417975566791863666987685837123705300476480542758802397931128149060164849605165578657085414927692752577053651883407012444576912800727825113095361345494801871745576283664097153826753340634095220396975452801834040853671001448852575829692960054660037241528464811227763866983207432115356867402661919122126614212932209173046051919544292264865870404449832804209391257815021556726079508743094297755992450881165741517454193398334765908436940192711991562151198042533880791797653494397637907752279913525213965619951896791923296510226546909395482172611688770111284996899049827585868940772432725434317756505238345543919612404974793046855704780151694077827616130578496533024141981172677718711896832917788600406165044518432794468314421145702460869452675321891308103360781355707767664651296337817088418119220014350917716929801149911232022649799301300709235035917210296944257405247786733039888456631838749544875744479224554099425493605853347839945094335289019516845828443310233327404196263180509052111866251911363648609511714287067440737833260449373545519313270866649639291770630017521202468857980797665987775046962958658257409020713262820266325468918283210589711911655369011207858179805784346925502977291711497525408668756182876239417686664063291297926843150409720555154085657491004942828915243973139204633060523176904980332228268881038879124808608682176476739107800135790473895370742322163911941450502878601045461998326166008969921951071047092569759668773587133499456221845804126494713542430235607416431029886859337524427003979040544721528205617289957246542036437909982293433039036395637553626911166095920974194083327171972917563081402799491625639411889607202219681327505663096513356225576321203181066426691031750721066077309826921216349376683253145537857371968302889988373460058030937312219593625078969734368891559650823809369235720626253131280788570143876269092339585854712036689126788917358982556256453394780757310297841344078712583699715021108019278727049447314380370482735991375781936045287848729713058276014733128639301962206852427182998586720952759646906141080787656516779173499439317361258121302916460706097432217493135135201484232908480940027184672922713922933812869484428272763446579467001185869507967246406994020069206455721171504660021656021250317120448952141001490786144667345539131959032785841852976924885892168730714863273338436700958352685160435539466370100742045371154466168197044326211125498330379510610199506297460371167695020865829375589776472428908174103768609888171313333190169156377837555294257485330021077573799994058933365960157700329796562176384537016694655850176287657972479745402853049924717982377102441021481958139804427939362365300799218218015041500268534831659415905539635979159878269745638365094524302483949906000716070075048802545683181993789818726946312357238019688987107040385095660271833543518115703500375639973954163739601481947568754815319365131446638643883983658501489389174380844083145659912451794949374780725934800993131736498329738601554098914930298731239100118609962454203604080118348014557589705496045161343348722453689355852127258358205444142814070402566469355639624218684649286139917692798208298991855259538024507331854318627206125273941047987580740609384497467354601526978151501018484491023348581646943325524167122863446327848288287764233763597011678537168160858008872548978561803875891312820666309179384254308785129034555201906065148053256826650514735426653977807249170032745691131494434483517050397606384130621553556509459178142861462760915013869258459770387459766701756026589008860961201054102915817854568333012871114183843602065646452698676269586578508419849998386538347430244264170479255990535963840678394976979734150842798506115609940473183458899146802199010451511290397045256060555629516155172277601261899883905798082692744633580425369579630904399777347368150315846834054722023566429245669264227054713835048484646258534255940150164090675220972467207634906197919195083295669096443655311048309090788507181572687510519067134762324651281727151564268541022310265396418669647722606479262284865030952702176394591433244912231703061968070916028724054991788235600934449317780606640598965814182041759230828683706543905125503057629531074741811835147214250629524868025063038025139588971737360843079643212656843767965082762701381548276209000720078916246248857704064606620311412727003877351525422882810557806915202456171842109534882623266218212206810114523565161778549030744175305919820023480002718577727432298693874573323567463583994662672821441636964872712301359718581692079079003797168622729386797080497021159952315211326925141408891727957064693804733630280871843185132719732818206682645619185689522282011183893293100929080886542363533769443175140600613501969049761621164745657678311825656199911755755084864960197343071555173004502990527007485822251232355704783772141482729367755607022454972049983677584176310176386451734775791858711829072906603904425847737707569687547234094205224125376029378470335668336342339661031003453754143754513385248762512395807364818013147583517738018962132388457276657053658494614785569585882812412021855878567145432043900989947821713621810371687592670739969323626369384744698306424724940947257397847606392501653649202491437757768740543416705688491020045194146483545659034708746501981384694352341524707618582342889314412192886605003635747982866172645361701352693382004359744786297796543167735939266752519028254497504290269244996164629767542580554309452603253730383066101745270178766797677143422655780605515031468651010610125622636136115566935021555321310639086295955087745874199220373084354835185353773112104980929334745305857585599387915408258724372769544311935898056600301870924317313036367410992957112974346961096726885276557459843163790941970016528934220727995249931401554650471173269976396298439606578397126033970117374682575235781782760078808495471840417033451985906193585504880955735038947070661095029359168160155593718822025769317492841250845070192243309172427058057734598759391582774415206237374455631217787833940595356731741206811504142870047507992361774575671448137477514482488943699772426370037237969229705234253279873912275826561827559107384885429756344583430168007344373374003156246585890501315679188434867022120285780380899425680275795377137372232700013318894953918932921761702035921658533459557570189930311489512938915284302113914672608388151473399513230627878616450109830238144634760499691244911580547769079233760003751145367314074442035645920806853545549575297618751492612274671432881886225872228027523724755331281359562197792988359831568126170425536840519467702311986881006992477193443277276300624680874664839712168706190460360155465609240307105283775995604706524094335641708691909858851919096316372273728949645750037955858723126761171367559199941962326744175314943431837072077137176559667505842726184553586621654993973795985209408875095789978955522700175343881586540984673453410364931128014446333961015273193650492239579641870769412204434731120951934484125856779085036322172338660528514991125997205666388222282907033726109358883948328217647947046746712673735966112329951803390248681921630495175587124392689621471939309473597705406381955272558535218352913297785303235224835694826579992594740925805042416513293759998342810694893014977998329127668473227214273049212676869457223754823035945531828095629602903791914054094899162318687810654496103694100085183283242092045912346844550900676080702859866714525433487511585044121021749958601243143368416264277004768850787041461644653610266774240960601720337835019370724479493493056400246774011986655735559814363502553395525505011034185966165683227040996914506446189335533983293155820585741541112188583230310117052559516583384568483382047435456649977837475705017041188007262647963895243661107591237929073502601274479168096986398032464665553034452183139745829283134173295253111031464013807431898239615647378266088681891620894098469304584185265381085737948403520168585573704642681835037815112893906442728422681468959638345738024109665568927212897188030557351736660415048536251012102824893726218569984787106362092538113225624019411749133557867749477000168132542458467996736154580481186344125809232080673513851400528854048536254530721615541121935686277103293194802644182061392151096431120276836721677464593055610598353336632219922849837641601169786826349243045282377773063188269197951336456340196495005784622830272768937273526549422968181717860564400501184469827938577262618848406973850066736170630161728549803042221184946041401673526948034676381275248119009437534653417273653951512412922917732595056502880814844272235087520951291113947573808506315118456597423831085311710001136821222897899086701451036192805794648877868104865631862228764207470171361338371167226613706814208115011929863355276946890749848523583171737886662153323814141015660082947806970249390273886902668481620358104710425598063056762581347577746687566859401185292383110628785149471188793109369583046400647911219858949287340395904607628821427570080612614782087225910027483903592800889886771073245572392805724505232782001032831910608288585785091845473393422522270903442081171826653850483110315183075540960774465321952521313931044800699336451780866776096868836271686919227867329354549630251500852489487034906449615587312295814564889220734998548142627302877236199744655036477484259446860842531610998259622010608621623971291083926185052974300786122663063550192610212002070587949560947305149249449872485880587932818460928537752115863760034291535068064827628912726446836904381684368213562653448942342323435750265893853314905999453544767151195984628668178414784085548239554981298863304953560249781879920781152973339469400212453836048455992046225233194762355004648763789316836976462359552950131217107650917037166815891235844043337031741238549361685275102216037712697647997184570823374000506068152976472540140354432490124916384141618549668242343070250902098181156220369497161939392793619766455768942368069141633509896325505700751132502524608677625694503673777982434313302522419666442885623219640614035343567165100372199830519893878775539156158004159429800342981580120881068371338462204482302287583858797762508969229562375111570871871079498064688368298164313118065069460515296426641255191920000654014598176261387730380403481092218103106149195680560733123027141996538984517889102035162897862610079791103782336715383391384788955858278664529497993738093099270916387416543435990516641427952912931896323067377228199346862093210673417071315406150922969725838359970793825292226223456751909554458623780257352261793925128811007109982483828919947302295820117480781572190058812092403193382608513624029610030765091963543485851226755664583703956581322180651463798269441172098555426438946051162275579763515532642788059722644233263104412991313375575246789432296219686705243232128233895915167889062441754268367305821512553524185201582510800704477911128375217128489645505416991949177935824313677889732076774246737608630975007665422578774382109015854778469319737317481977734840797830870993402508469492390801415139738727889422118296006800172243396107275720392593997269803641479516513491247462495889022580255400083412635046156498804725166740889860614127184752087941511191872297383639161607074296786384913456508029392174186406362819309950855197455206464618969456006341641394681938344869026406862984068931783142057432913718518083302177818240558849898944475900809419215064838528455220886123299101287598999463306943115327319091079289633014391940443346373756901000513669903074964490017011150936535964008444027028040492716544042873538671995411086139459452511057857759552437508248106392284200722262808817933071688268798243550122156739949179130611573456361159243079462938130318723428701319745189083759493617639812723645869334011826157390828844084375282253133328258378322322515099542904076385697291750408809538251673476503663947822076571201812273157903023624239700589960943869773258619082172845728928764870781425568414760959417266660176165965713557371461971412507509511106644831988082925194017078449263703041841259722800025964012011861648106369944071869562594915748476227849144517755205721853370134148672074341435903114910106832149669024492108220655587378827452045834708113536499935044358507369823511170617056496344744113299176888288329002175304102192747355353519251499834237406728528630772053546327135689949974490817871560979251561505576359418973693347101275691739871204183351947049602146287707928870610612093515871597925950066051493154628703515176389356120403534620496187231753847199714032802207039510524256580984451134420941367215595768238818584540986298818878939479921968388578562617292029430418320913067930924945414018039768946345239528667244350764886564624498633703238857846646951372918243496357706158307247043356460765256560621251444634984718547573082928412721406998697296010401285498289642993649718928641492084472059516664499164109488813567096222263089482711098114338743049245366788928119664064953581169030260386488830304297667163168155738590447063791146986784559219561528929113609983567170656571965003790338243086479603216256666803654768486884484740213642161395453911391014731549543414794220342830083321280314975282330240197783693300320043146993963101166852132011060916137793825217074927833912921414506411357869967685443170627146900303367751561327035097539626901242950210026863827261171777958473500037874016967031842367956288489584043472653489833151910869557786722055755766329396912937571832054864342289397881380148115931202140486775231972145636449077190875958853729250284587967718975473946984342512015439259441239058313467304822080284411058278020884441731021055628921745798831950783163660901680334400402526801007897301132177854970103985230588893208629221717330478441279271477594313557697210078791418088476940443991073056714604131081649723259800259676196740283242941267865666227185768039529696911190846266444012797274285988002858237871801399693861832429130821281737496452219492327398805609841610826251543492802825009701542953503228554883638545307926672112258406890387605059264928391220497099687035925307788926262749219044264295328059726390675262729602627508674789193214768470525466315621105296115999415763072861877115452448223559892411985467114678388808648887961059664764306728457123843756121506928408067005883032117355022235851946954761635489917205997666673205345982069277766163553574859067556217367182464226035218603119111627003279439533721113212190460799048420633072302963870508004470451608402327068803700642393084741585535257977411028354876318065585957287233514369053240501359949922557583025307126149052525631927918654374826726662104892973801129148163189992352141667968703104672417192525442954026474316095772162406886763486460989284370835062439317206000205903632406124420658556742524162111951014401674962066885450019160062614903230169218020625521590078826480195230814803955961319913125149683714320419068799299198577446814560417591790508773628882104778175841785703480355268237227348467801028392319166302483604190224707447644321796138528187912737322278062042261250245759974836967864596111674707567019655139511357818656485866506170367898113052104284888172447827189381062643468039056027648610936240199627941722576066259474607306607169479522956759600537841375580479847365083649559131241472105740286603509865455545085339726326047341872979109195728656395049726093448335919601580238184471474027650224912325639362424837303483763701038135482947793634408731370822554058731969694620598356833857023101804912104773746534353231157252323936085986524670213185775930453620811066825043180924670545164129336860423230840904326496497834729545865769325642902994482323417954448554036358257162632781730554407270940012458555361184596247011957809161476127933309459776723645203639999739619632194792784198307490582011180038084303358085653158480843376394971334489853350588272912901184697832099496260415856376541934791183874652130218205180819092979334693328676378447157298088163321179270627310952393006226561547946794096310843437997311067552695074462710863019551945503814845063488967226462857230241897968564586296928480385810174731497687716094268501192913094243968917339369514888969768028398812930526765537773316286391114659017709417167101406396680513245907120245053243484078647168391406937746318633493292116101992196536033674631152908784474340313150788884656876519185087363711467455326900135015515045639349731349546153811279581439403319038875810868700984627784541249950424243219987328571980819600104199956224219820257960894886736151979135122055471621224724753788638855959297236252031242311274660083642433010293452828458400032896097541890536937129778907664656421312551821442973249302901083407955129491190067762040900816284127689854978677564081564673870242967564783436824087620956297653098802450147137834483182269608422330279028186863437565209118627736416670494333292134705311063012997644742115087755196486938889300542134291411342766345442862502962906999305147979544097621688209909082449514034360532950634572374620806398370846738152186090024385800989308963985630405764558799076867382121554886981666166300188266853235275205798696275384555681020097989193882050318620769927954069845894509135145729991420191906447161920835075810865142746571166004368758911611031159227909454498995549433957270476750384027268193656955254016060708130477623313784568250985232369988013979731969103056152154964809952029049552588833871498390438107540439690228973903073554902870803212022711390978117834907057934606359938093600403238051691223182265666832971916966829853662711194404067600749086012627167702637265390333112921894908723536004439175025058452695165120140221486760575152137412739123273627228004120459216353959075995241193880191040328443285138771317770240885209509199388500196394796779497962520805922392777185368241193894852956175883328986945678157536629479031277701903864343460231170643877848452010925418961721027159990465479547941369636246112104485608962891921432563674882435659976141733544016252975226461401710578459491936752535182338754913487113856628300374478266866988753944693815103124254645518186668625304574300673629961151759332056412553495119008947699123747685641038611705617190306405832914717440710093587107124828452163507643540000698788537519841179900746693018699710884897686666660326725068615725068970455252219466401980304381351560156541120828153482441213762685295452902229250437621598629843993866795320312956633611781192229495111134516660423386915916466250405174773976502673738291075921832533462207053573009438604705204273173346234481726815997537471631507961326128987354980951468931442621424915608832605198467152949337523949578677385225925303575699075481438689580556251541387675095537781055690496786602807202535700255706565923703770427581501501520618812509797314416474339940040062366102796069495042063792169783200566879961719922395608503305639458260425662716098742950284014355136242727139196836669029317164144264537672919424182670392740250451115490774069245106173438126843831794172994036560458181346406827694806509224980461955840170632685102758010257923701056641316846731246164643491905745092305374110547994085998314668661032386747510713093111992622676736567100465032856936793580469457193827221504981793081985909035052284291550540137221516109103904767098451671057679174369321181810703439626741889572673780738075125850317134157991272216452189109801474137648463029142221244888652899097312327112520021256263765038125353754377364734120607961767173940656200822209096080553528397928188112126304850397140410916615758354724109970540769785403325797946139329084197624334842116373728361974070594058584852092701860929351264441992544419207456077339887263615667086639620168107980261063740509336594536186325911529013376172563246949657726240524427691964707300044874012661671549093129125856464587247326162872267455044944120553385590407864286808602937694654148589952940791722232204244068998610163285070404668254257818634678856110890034711945730709025122500111010444089788160722678204245913137478791406883072247186210661707280344337101627920270078390117273092876687117758109640914588131738810875966324746551678305114585333798795734698950421117343184334074445090991901119005906874621396849919519469607932623468348518956078457614762534043979499743761930650222794784888668697937763554021955219189102009013415089638495493836167221872317935899167778569758160621781764941715227863276335173377376158219895402188892186850576731923562026262349277991160513346630628721404079913784202520602247101047398651085722687663936679407732344247692075798591654271390923921142807699550394259545805284851903205762129751430935283342456154936750930652272588655775478968265067909031423165346785634091582970758241725311836912765555054291078515851140027059128856634822971022556719370532128977373575175243070745736057739457693689514083220667897998572285954173394604368370281861775706591652424701918991379676405259184318793742490335198817604729372766326599329311649610505142025174847513000211985153423238525577472504885735006874820973006968524893463523821219863319173351141055131401272837407897745905444123951001938662760004058973033599370120577061401344983243082651781753717274285096838349464109216804189971850882003732241932864542242450586391938503751855733304535865771875438439535345113208636890314467400208062376941940480581084043940628780300121527646245404828867952331705064442337549885412672479329790002973524959538704554136342097730845060988325359954867491959115707406035736451877446154435928139067483624398339460987289947691119914239843386481171668992149099689860124990896953125114493462482701477668990995027313192162857509864548441037671980059061399857058408232301594775255433378180169022348463789609861223341236688701439664974603144944063491953721909119141046412781979490537302503257159234225153598570509965279667680427457011138675821362924571110103632990495544693324977938074097258842388646226063001424083264141320847339844723741146242785224416001522177704454865864240974166607737666969044990031343136038616780758370380591055852457551489015013727287192776687500227918363782702607367624956408299583053716543337358144783326798790399948751123495044605914212932601222000985273517636915609092421377572880708953365749072016584692285559796070757773140153242455975865046559897027897851120382737823090880314947858315185617402188912800880737933563794408990839272326871053919076885738165688925677318353401858961746478059511015635433036815151206354417919028762760559956599373355016079022097771369225425302774299740489842131127293585368418709895741635432506034503754336685338609654455867245454066553093423326646250455615717288288171549414898943746456866154769588596425081899893148701277279573792370729838299611300053731041297667182521480785626147359831584403043277920797188591613273965090939306998576881701228966881966206146640976452684913822627585982483608125552471090350168536234117606707985286486726571340612604853982184429341956166867151095471489529345484936253745207569240819877123305419339411809265111031783722540945978842179021220843430797001737453794391316326286487361827211704669284694441900486670448282551936714300258452157581987810889292792133156556182849358186860881250292418550594185192714795841352892502675645331681205373074491046774987412892680895735880818382089658486123412477056694436756070317519708386429258465120405145286662066768369137299034760558271554212492518935057053157321719588919623492116469759063771819658618125400113988672552497076569187244397805132123595287437303358706983884874715172284957799442313779508179064580865278800791134814516145715034363442282415668269077024511227614075776035655716256692704421523449543985729971629777040340159389138403720568030173899043026060592826362039553469524646585952929193778358846037671703151864273641240966591433632647208138899827476452725994060511722920011104745994025653207321392945517443573597196603495397956992117668163223059211093489713485867254911723017777217290949890224314490864062266920604292450105983358198196559025644373941957547302948816901963453481660599170874448483169920766548848138745000705967073053236929628880027807436759929652601563876807150246776059429000398413568203431779321716884400969293357701222534836263251446767490680247245109330891370888382177587064223187076636595743119915763901303125226946771414278414404903301577894276330318590433868656129926324195815483817984829368751951279430076136817788733372235525732293676058399575220209692132325387235971705316059206008198913152485084993225974685326208529393710257573203918237165987476480046570236820987811418081665474879894981502259085226780914889591587912574407208455671495849266217795568226896758112004371391632501190537426319890310431508776943130514013914317046941757621144589595330458897440148104889288099276922230636013291229855076505000101035099725461334500602561559701492722070025080657098288651030584144501061339066476606962623205416979455418230795742175525853663603766877844880610472862218780269102954734579979922346771570205892143237535393673402591757221469902710625578858305488148571479270688744334751109274059696390666100933936480205690371142230092561110397083787675765146830530640532884616320827075953099127705113441921412172716201306252354300460704271883148511175530510376637263678352086244021187182050287987229480493551769023856917798369763117609864048265809085190178433248056701743558026397831176840863340456123857530956890869728609432681330100162999964993723552349846630892728891665969185934029722512215056228215319213057664159850746327202641971360845956187780235848756501298928500398463047535564177142402833022801689405723809383572021387631790795095166186811097552806040928273099265332124644174870961353491808805910760764881347516473615405633524825754073268884520519470729721114376996592891160250136809488367794193164774580019680350769589420840883960466755842324736959307020568136572224834156988057542168497417450998010614824898324077701875226979481113719104311501906012177303675401922662110464937330647385816830016760816202525245676280661875813176653755556925639863593123377983108227963556833501072114920227125944936638181151452182901160789413613493382555027955396813552769599800222146392195823223692652148991067871030092330114047312057139855811557650386839327691025911146239433786187879563118083913787864086585922511007068139388278915079035779585901871596127703025343146405250063651289208458573372696115064172309219558329354225257607894759278912401000766528493687405239409864400236648689976606187250549030546961951017411048699288115888530482524069867248794809626207434823443659330162878018386505641096754936801565043956811824596664251020593329305926130811667744757443195161165275106096792552391901587495510859827356641314488261151666525825782654305802754794035938920057198758140408735023887588598796183319316555935581215818405499759843694216842053005435635360936677649651203876662151676718866060388137616524724050359121277025421266228609004412391082080962409680361660115506021350229728327805530557684371258379652490161219041636975593190460484444911374931600338840003597358697327085943855237309016846305181444317015804696777471876987958482493009018336890020408178428076532685695335127790222732835832372063725578378627683427303957446860879888151736452430166695759672671602454685974831446972255707212663757245327324336241558197629624770312872874812487146005727615200578699899347378813766712115907413876916383909628716679375527590826234054445894568298881695135359943952914308688409207474474738334369613675773511641809865115832399454352340718011748550549741120787095935009815523477446559845690256812507682671803923117481610976712073543385303182143628257851510847455740742950226877524757495242616404174888672342168665491258864850342252359056451181552268874789116167009128840357135449192397759524435072667968608383612623047196468835192484506348265822582714664615454249598593607425074207451754176012576509049753369925028776748907988244336360569423144519895621982363444926198701541139423382053227932215267630517719541677152474775265832127417312603397546609580345757642049283308904579858646365154660078497705726028080158129341247859043273342098229663417800855365569076477656059264555340500074732918632936504598982089331811413912193870032471411552174504784909314532072077189220972250393179919595794215856353740503668395591793031391508962775155366934883222408383927177984720619182123218885128016804270109935665709088284139947322200969754802725670585857719399359730300350171825818984708985932550847130862535394082475839161793993098878337653563039962814101471786781880226778295095622968546673726324848725388638231479224457938429961245936565402356270981584969230058848106460452113767421526454508333126607483041544426080466338878782327054148658008664648890905703564764443236853351470370813007014262412146824730568435033896978649534168416974557664786801425018543743173390823266770652040313312439193482873295094909190111907125414814121249271601043882748093319243867315101494993790131512114088656619278146603196157305328885340319190211354352402184329383622655796085400891255719448941442037415292409236808292505608251436433438262246058526933909421814164299174281246615763383044650392807202994487249800289962637032786039100338038785735020315067796330280579615672153894570876202646039603222954536565103977016231872621663882367228019998421024698131231066740738056900589152542625269475840944364993912242728978540458800564449728292190372635713681795740868227804300747955057914999734126689844478980534302678244249640376083945372590212612548543432381080380466943142846741976707697325679074697289803363586138472170902373945824331506745735322487601283123841505556277645180146691977093201851093872545860455358720789773880219440966041927064786327634371231323771652204411154463171798064934468105668503612302797738525662842917539469320140683756362802897205834622834359671728153485215127798962508302592662027186589115588026684518457697185175103517322759814655812252039562088547429319727953459230978139015892827182846080676507271952449692653143360319730500487462662915341641291799898905716991315612248523799312875659968070789305958599168298491701551021846497278803929228870655695054890194784114259333427307939321039767203285320437791971373942715555494223051414113614926704797251725135595818617025145889406888179279471149212717268587489825809752454116241349249210870044960587424255213024403484827187027742560278538369243819152492403910285424519404524160458593924851955821460217930532738577693634811469845953338313670469762281967954739935622766536746904194050800934792263533515159936059037530335797806345365491776529179474194722093285143625927235867211667224706319149628770071231705190983562026798626137649024846704842939494356044870469167655407888080467056285004679994885402254790944512606108564189224323516877235249261594238410574920950358210382418919820204804207371021931782039943261325876680145837691114260614875761138867720637000392226915708593218643521928757679579541981029761258052380527735892173265279495819788384400623277831218134181509824544766049830994791953838483805633633545613416413537670066793188593716576467616361971663520075448552258025051243621746451927952670252966767474775235967082561676760436021864371382838238524913795895871978582866529133083999797024962110208925361069605077972357297362154960024566979576708693458762314068829800183880167505534053265795977540298306172933390113753352186923100395366829902891231227268053338334034519884928412234591129655602656000545213221224872020886604312589309550661612571285150647872391775429277088477097413870545102768037731422921691850075872271195767435935595189546593597954114431469687034193802582712368730454613955826082155247432358254771219026845535770292679243094457607519504178018906588876851052713682707488006841704848171019121059230943490192902368339138452266381614352712911201295928889560379210096461762220290475897074967633238141855980258158520072717936451004299986151982024180914944995354347117883435030231610973647916573272631472362777016109963071625265415901614322235439663996319477752114310389415682340658353538416537943176880723277219302830405682942918607899765473230774760163857737063201715154540079127944268803787767528064945968937424854315708138958614379604812502584779156597456055129047289452346435497610629778815891149112912931284507937610090713236414142873317656275357469340821972829065502405258602862966633629412993971877350004186303646223629750485359274749658789128374968917524146103109946329084999028662197441639421996776655366677081464594222134172679758505362724164345645111356956337869439775516739699469299655501442948267620740648915321858820171103124391288894829775626217847176829947844096103929203174894532972319753102242116667273518805045709665097087150145928135721352960410212663848329038604208777725191529684318596468229976719578789669775017524431976182560676530844544663451902620221357682882308882545023604180926854322889250115172999980649698569558637611680481600948236104231621960367240721099860769707493787193399094991786632060635387717456295324535600296326407603281624932728382592198356102345652673070151973244030001838162682646465168110096446714079091324039271986661243868918369058240736310969128856660764669909981726951366965941450206692577279909575942348462462981716898547419437512835936326429217585742401032309088479456894915673471321539576066533285941811175346681305478018458399809494928306391909893812291809437720649559209222175556740174722702769721467628259630721263443115111265037413894972561975963565017079520693442602429231179801558208605148920109988228913665929688676670145357268040952336654869734724248732882098317519139716628319782980486688643512160683572660640330013216059339717372538612278363608347802160958236318665037235372341244802576145491218233896839042655873912849456132027578920994194074180025778877047902067685903651433392524569844265060741495300457070125039481283551670928633063388570835708007965626030807176236565306532736256841968348416618766068668095204694977645098475153317302627620142751324556213994385111671445791511032527222121076893804328857794923095233456841999363189611090219590032617766292255686680591112369158210020741317530560626687310351923441323192114918016422286913461903518649990077083844404428489126252020881888747302711847460547897183890788345146082662671555211166402975262984188421116665745007853488218534810317143718774525255614273985423128679230589052558126866470748918722857467587904005975039796845029049925451462849812443844006626554289914436181473937688395913615112974501295662247967136935668717635368674071193414643094993879413228744008310524372470172563063646424998265375697095593220021235855341029321699599179441131873021168468823809150126504604780114477469057011987380171546540673466700993658878269334120283816538939943836074306055316457995549638181197761607486796935645171876876187573143036534711595456267684672413856068888612699246595031842520756773171970232115825051608507776715992524438029196229231312748510157194829197188705473660463775517636691136438305512305800428302210926867104697831128103902199691230892326099250622017259850439941132446741997787238512750558636186966940283771097613389199645166916897924702209811185309271076387372599681566315931563183129165511811645551505112807508112208969537594205727542800063387932356086485210429525139462295423730236537285762660379848842319646872569335366863722803427626853825386068487836377130816774488612028029186542074552732396913803864030511403519644357053019490769154170807741337666327323287874185659119226577974757314499225715332357177780084350457976159187536082324824028534944965863057541385955450400748119084911668244918888698316905575613841914293774517337421496187036997955722722088263911767543854966144256115113902679434484148287647919786039804966137106986122458793217895521379243447688363755343107895586563808455302785336580617192626509693225743931071342710619869550168499811098648461503839315383869555210273304178609097015942673413735744199333357348185432616549013944662287909331217534728853778397434938577396663148832640855416086228247241942373036563541456715326581612780304270787299748464935856205607151916830438130260711577768000050861820458740550627027617258191130419521340994421308604543359186560086342253179896327333822323077901655535771185795326302736347512179274302942541178053065572581333958083121054108399873326789446206872789109696487282426967789074519502667944774915626895925661493020201315116602013968627142528006871049736337978315090120372425824981104084398359594671695351375881304248519173193088566603419620016095797039854706271757354392433687171818031652330155293939216785332099738460655309057249914540397857475984737842145076140294397364468859474889666284832087347886575128485631927012751823031271044565534405994529227861358624706081034653477887374273467139471454559237984822377545834251350628517547819030783844309861126372601737953961543991546382604768549772252996786407647508658949678324186554011806711392014609109528513976999626817428422043117628190677043071517667954487614059324716955623060059889999354577320065174503808432357342752409567399705736931635749380725033977910299582059660918313508389177510534899643957844455820204798807851434042997442534207502530175698231031671789095634474284009815821619602974988307505507134267608811952878175757670817711037513304050258927636722856451811787615027687629108296644556271277366187004342535972673114471525697041653410681939567223659864451274598706494853029673270698616368231003113292910136585608198593615913865775268689297905275160926740002445847148981537104881474981620870534310530195643802353319838205252034164686752341056809174898408863192786908823131418479688185866351824713636948202045230749225604713449628574676356105156203171098502623433369284231428477903382576973300890185587801777609631175538584102369379638019497209095178111900125880063531878438050868478974942899182089510597790469558122132579252737393608488364954926460746267263990756567998472441009266220599336772090730601738692526127316650166419953989535175565444566056461082584298523109370910175973296964641122543492914695299386889877371699815795562843751966410236590075496841609708045043711276311694482196997045708597919208760168357671503582381049294688406632446039016387927617236369039660136077598439236391859559925192259387018494849946845423791178320785142030669140078464497349033850836826865903951527465459756766400444638575360734644153599397738788742116646173238228470368526420447379332578846863446272946793945544033404008684487474786593347284152863443078331779593742363041756125377393648508453967336423244121992898727859448535845380027203205956511813942832441438109625189904314677184168308643412920491873265935545567902792079068200386446583565976640410694734691046242182012899042560208914090203676861130269087366587333506126323784188332603005591627154038571190678124062128947530847758836019403434393199095827838037564489886247902757134982256054591393110353731775843678584180828174458069199127089108353922728992702303464501869703339130685003239017489520400310576774063782087433675828568323121249430916062114547144429300806560592215758037379585915607157832272746701928693199623906329855738917341447080186657494972125599803891769636585407478538810316216610444753119390950251978790005631219570775547475449932021594996743544060190019671096844808446546559624031317629873400030465412286516377957108023572045852201258894232647188862966464815256650886685703216316179669759383418134312638616159202848226068751679132715191033144842596057898209350147576765772906165647618401162174924074359187071365796620541114166424126105193070058458601744599881166864882188027975465649158481436928975263916171708328646268844853247999377054691869508252431159119934460076545397192787488508274889768481645242089620294857248445542440731358511133165715669292593099708221898865663503408782737022286020811800138936004416710355531308215755363391346730081373387421614604337782470931333689371217217910831745810627253672796573212343861073844536512310894843962300575245007292934451619297190503114989540255864457518746082148139470164542725664760255524514614922599717059431116478421919197368603738473486260651496699445549513333436315903558598011747660146818242596102414180323087748158475519642607545783277198796051562314216332813649821455931447939079939016871969219336079669919588113539042061991314559590380286866968448882058206493192535695238404188671643737864110836685793921830030695671454044955851448455946501098918819541780503455009484095329316296837283906404999792790886234729388682207591573942442904819634134650611426401270699398227327613445028680044541026432299488913327804964909620356378557002224016709100978210584611432872895382655331268478866071815544795650394904801154233524891828420418615251401883004286970694466819430118529624569640961214495996484319001076190408326547879502370576659380136763623609002537248877398207683300372052028419162911945939814316758627475210547434620976008221908496854506703532813566374448656618802307059381809877602685765068491685610511509743071690332471090849706710725652751746614146917407714856083547898072686061997327383850237884779695184100673499725361047789154231349593043600562807111588111432331305651880810255184950247566556119395164934400252731499664013242694700518831581532135285158704605301668613830643146318503510589534061723929096871885710446627545107210620329683029915734461045440103342161433715455449213773484065006285380842154493796159558614169235637829047161391430293168562540954891068319889072119758945289135060128086613470267433699001372508603156346101107331750892735371998622715459491965644673372733880851343423731838004421866195374863022394218865008543681497378624371464919777059335136582905023848526505575801972367696961674506711980136030248379038569882791156766769824231754842667698371384807397564774970448908574228983133445157471239702972418993898433157914738424534929001217675508688833589850509572868904640296277727243376662447521027972209955832621569336727667287564611398891363730239271425405938880576471152103523690699673417324997117264095191944193999833623381778282931134981594918772718523407644285044112906983698288305461894550850698379071337417055088125694314113685516866780663885693724064877156762041879602809245805495041876273254309989697009106962074873255536736420720852015611360641584458027895905074272369364900052014323344326779199815338187711176743230557833868713618939123951551424887232819042352278093866259009655890579220303908592161132793245129263693595465811969592358355071853643990641314679982849806125513561056374994294950559418390568812708435995624266512772865750118176270174639518727083813015152627220988082256952468652232486178410711973023400034931882191831145910202035194298122698698907836284043406436199813470816698939780512572418791933693026200276784950437981032537448534228496038661983993030718958585331443689787365511496454710129371319644063561376381064120300258037042826256142896453454418204283940875431379565827559578984255643126898373825228954236368013666906705737366478841495961000642365582907362103512053631622858865578215752570767131331504169527224970293786373943056101245677259530906332289898928733146720536067528662229935290369552365572034017897033331219993976001374707856978964623288187104419469108968324298136811378099955684155663937219888174375765510078569871517670261506499306924339113888520613371278524117565086018678505386008510313957980261672357129669028867031209942524998181185866635804260894492221955126363144886458251052876130117581595189372787190493749997465902313828613280929701753043705244343148176523890062860002071947608387427657887761171835455117782851135257479216447801409165316326938772744087795661165941199885640962621271992815810700934450045106650919677378198471546238761886348367414253084855279191656536782886897260766295185602267522183080439793294132553958437267957723563482052399526115671388344364889456480222850638087021767774776798231084203288336986579414029243309725644226390705624441690076997327337447075391630906940084672897213649573812274852225062590733907662236866475988288651449581279785281055951297507274262525824394846844430012186256959524936176653725782239288239299193401044140453051066171870642460105665615109880748919604735720035662893126227496094139705213529174350342341588673958111677398175058079523093172111426689153192765787515334448527166946451601912475713110837402614197936532784945723767532596850604401954459505626048576330641578396317469070355409440035015235334665455373277209116931124016794079847545591484852370301276062407979005227924319586077112206300152722491696504743275051872967343254330252691224990725636162309560398194167951001855449161060045651374850264272642049391137924386632730757473638095950011962154828519826252019164381238085298117984557202855895788646171358593676056561917999325022061478587226573326924903746228934563987274869152350356017281897132000679900011388618050583428875765461113700964355937157509799724765912139918292892451656594199720277357179107918538880923762713287991561061608022469389647586719897463792253208599996903492411497886516817194918974809198569847693224560640151149318169475016849236457967287752987552824801847094755598400066672351228841835308612967796201116874626254005690340000775842582673161011710448605727053785538415847790807487143433417426032126262176448759490224135286079563627403574362684114119616050484282444612052605565896977885013318590666987506927445228539287253090008615943853214903631420345472361372108672669100734727764132678076178173714722762549084734256965705680548886136301500161582539044583818622621006208030270910617752640126033908358459176555506238861871940011624918774048187484149393380334496598183070608550222395172383938678806440444292051373615274394313384137381875190171146232052677010505835111492116472420888043496794210650867699946914843447604742688873019756773274047445985077635766235814239832410062766478809620644353572718551449582418696444190824841279610648679879488254483528506633212014911795316383636391556511735012816833343785737391604152442264060485358492572956087735694812530268254568628937979085267551540842331229903829062768375797745502493030606748863322939654253896185697643936951249825740129085822044037936666650842298971220903498754777585270613799479993543051951217747358636415200334059841443826298562866851803455225704484758076848163659824214636930604668168389497130417017842280497553100629675287417593370169686372261575072418144339958407187944319494534942852629880460892663235339681718727785708404324731248092238009988917247599002365445163583296186362312810391376866737966434914628959752533956646762882086144446063682642917878209939187618531288971754075364123530417720905327661853041694608607137999735038801514982898221639004557632891946258464726837257809866122338734929763256153881714938351009968777022987228138151474855951826556492434501997834138388380581356432503206719702183125979941866678156897281053243806395145897380747723241743225403821809705808975538786398380149112992499531069403138361733524035710137595957600699207578560381685838768616941702135580017703830688117201201780381717156763031627340988608497163784730831132192163434107402626741233153427717688245574774420502009333099416229299211698507087104728705652726919302003168652676074972442225672201729027801852693468436178614271104914183721560328771454391957864460746897902957501163940140957269224911979104841733201567396009210485597284118929810770084573736609188541344045604172664169920199829755604461772526038013130383375696147419472170839921681992309178624412896474304073181384495602928364839747579882176070862466247411105627291132900559180986915709448278954445074677190173414757878690926564313116667124248439289960912105571876530926245800864512921243303874753107135749494407194478665665337617222707417221946739586547700483630833946093764310445722878642636731339740228853699362055836906929144719011198837365271988866696892876016044618238154337521756573577450075365831746051588608820059549856564359360080067992352054999142642645531835998465727274931664297248134475158662950208159014806527654307639544630723540757256448181436282544648897333241205596475951883298975646589971618802054183603091772826748043964720962520128804071616408619231931563416369881800827435204477455085612502162065399835064714987974986239427658720257647294852236887706745271806587007544312621138764609590773711481409106224971221835901347907756531207972207988135284245705305750432820273738212677044493573643097322745187972571016209875090897723064370814630797890348633073157959807900558951074156348791403946340036924222863287346458633566083823799882203044160404099531614757334288474779157816878960875830128916855309113629699346060792824014602866168295627718000061985422606063766988535660278789362222476434421207031613500383188375029783441489310240784576232981681395567556638546874465625248788633380958335588474744677255233084019112438529858003738183724897606842842823739666675539996405698008884889820489263077552138757656966549115187879030401961626693783196972336077020679389500325643174286467716002435645757012668488253239464563048418618960485262343730240054071352146524754791983100233539495003577563351337673192536542995366199189580480315155084988196826336133571277241257087686213300842675345975724946046979032570678481397143103945681072100461379255291772888589620288140822715990155005109416920300463861846706328302412966106668342820100571962594048289203128951361984066181457464858085269651603835114919542020105779792171758401066612731706762651745677230001240175614383580008163094866410029466997636806326785501037494574956382764557938891018358487592276215509074189251139745362746213293086763708521686372360839929826695855265180265067234428603452715742489690568545045514631200322909285074459063172870414485830778375468298215537758211508571678386392894005199256474952395056648749867938280222518849228927324937074924008464351764282662396489360325014104573259160712610709543250703184503893683806179812144987745360289822156232222337719225591507864314397575525042399394434171521482332661281613321560037528798426774041881624413899939019259006040612646286392693739714709755206370434624341005315736126219757142459979124619023783807417945003956173267796470021405812521022023598119370228355451495760364118497030442496430366993625341456634554601390030939698942137199366999880834396709106278619573289037311442213595822352019201794636532628978416736027475810590914229460165638703337365069628409551216003471722642613711444794664374165776573690975999372521652429987774324503266752161103462952095181742395932277754947141078924400732778410194253511492416512857612228822513487143373977979398511076401869701459743674783652803588878705766743875472975854755602030389110752049615441933877073610932709308547612066862394059902908832055713957828496859071450506265873962973900075684432263146434655179720526009448531196599787092192406511286980420435652925901226432557762232333238214082620898864806806199410673537912756056369031623072889388975747250773354102030349469443103850765761668916328316680668885416842400168502542747020173679602237270690454913317066712559257374907973480448872675628008058449530987663799440790036409351635656565819178858612108101178156134627283277028167430352437893497501659036402955835082077658778109878036348505417635997744182837888016984918569250085841876853022326497494552433301292283011790381759008810825837487833573803589130369345352078714144595133652546214922771465101992997885743227791365103885656759973825907096266017859408329626211025388436170109190371499985797828353953425300871539828201012630543293228877619972778527653910329294492338111780242881452890487570441948585136151532852909983853878759098092714795467584229593875521817277312436492039620925020475184229313902572061751234526310206391731743188676753983310777540122669472182668237892155486239185816735593049151984257322285737705181554844728777151982287682577530031346631403137222197453796881527890201017122643007778263083063547928629357846182017664917602661715770347478764301250584058278375724094613202061371715354106139598288296843336473731875398303354240851048545883596355278302133574626087302106297556503203171300846410327674138807306779481458987439480361534892399748073469900244288715894075058653820539198444606013440246791669274791960901831221768185716394744082260276387790519540119831639799693549549176034723205881072321895331133504075679057425988198493168947374780948174604639327163362040394805338390027248940502595982773217365704537750195103814251796652277870815540127974334712144378996180273759644619634073870833633503513282590115990449966497319881286707297792843012932520806385059134548096536586108309416033708250555829662499711023142629402620002209507117173298287429398895225469601527106725145553819063452272392223032429988595714419974226389154899929680988335066157199790057738852618381658447881500553795466636371802144953430633752208443053845528152069442067646508719165961711096107294299967299021355599499393811096911861058558522203572986634098751891241728852107880357734754810334059658292389103918134513933846499389663141988233733254773691520342544265155231373788535293186177456181239935673102434362114187623755919493205293130634294809779509876320354473811598416288539358105376773387580998974203048793744539612133595545572919561198996811972989376441338196675047499653165751310789163387720553758979385599994161144516480018339531585026599230900055876993237901789590319513103323111330879585737938596173694742670409873619605498315267042788202034350991137401906858730515185464427006776551088958404887323698225049381163333252432164739127373702759449304682925732412908565628779571536028168094716790262225597998984292276254347157965665198548769470752373623080525794836065760980084833398850935655508531201096662872334565496586732702160384178476956316522580041105237935031804707432339775081584944089651982786657262302049969090497203994488240374915115989523661374536897371659704092309725816232624073188776334602086218912865105189485858217550160528869525522312469422385840186990635222545757220621233493425096214633301037652509090732252363276638198582139154345142776932635555335065441107966579011834004221154246939257920499086157898384013253625889170499614834062682325138971612956818073204760090198384410858191306694141326869552559157987110186390120993479140641138040009673817200760764479214088657062158542091451344853370827391893211510059536998841592649978382017489891546308531809178109116739605129345388740365584255369406087240062116522090341977745334363636223900556569576128084341211981152855466124212710110469572468896035700822300771822309279863609818261155717370635490959110932046851654881100280570620453306834890694092059402513072204844512534247256175715973534756096658543492169945871651863240656005011607914537246007816430908050017844679850460111851142085298548580701402513310780598817876550758030208563274491992514072070658231903226542673387491314498536929502782617045934557515349823066383131718282862705728869200211603798700723326523522168616697825409185150508932166494594823169127465850122939600891835429479670128156175969460176219552109388555274484529386912930590368317515930360658332113675270454892219950997085037108495326342747087353283766145656793312258077144258774519729328274804799988000607177698197583776500817558028517632742325977743901983194739703240940191419400100860429674085402478324709212309279038981363985601402393793952887809635030121240051781068321838449338779790676835700428756858893975341336474169215713054390151947776925779594344283913578556066260581352320694959572053484498562920234640385541906712331107025489962855775677961586563800885698960339285745867129315872372141882084408367470819964873281001886381777846539650201545559743763806866251778527619944994521003702569519651731213330110470856023350821919502583431194070029532924679032931984581359286558974398303190781724203018575972299784440109286510700843985263626385542895744808942773090394503602548082131232029350735151524825850939368637912150817086899591771925319854794183356976423877214597563342095506136063306992937230340043725532578727823603369468974072184074001969278963040135438142505578836365418197070043037695365129118959087430945129391487031440764131643977624305369570300599019476075108357057457169357709074324568994906169578959734402061336515978609607176108558427444658377304377779633244770566875844867007675494171185797580268165816553377608726859867402627609248121638398885966357129611666346014556639485488447317161523183867748947668569596786212536681635826506751289220059005225657314191987618005441732867341249776758247079778350526035769780723327945964532359909588954562888639644006130364664474103086997516673849010802626260949400030150758483038886856157065735390230973153932677531544072440163742228982558966774892985895645254668585532064648075543338651806447943484325348025519920803170750075956124274250506706331197127275889997808126443251927531390548937368658926170365740578148536618326561858415380983547317842773160817315065995411745251437098702183884738086776357955704994708772260875164517095516306410265007836853178766773363502157937128847936195074499181625010347910638253496900836295808912597956698635351270261673174548549946180418385388019524764768341501334363590550070668734316912292069753862521445663760948535512905658215714970770944816202605681037629870160883331446388635270703575455554632701467553701371859784397904622067959429937324882533392584515728733894326667839495844929920008621026846612371732438385329624808929768847860133622570229335004747938773716172808474064153957755572867094555121711646335325149185070375346211172091618998207995814102026582368087188286616692426727396973798739500413942723326733160104815062616859542174154090219704146846400900424002372391343330195823829484207158905855868120740055451911185345941295017886838102751334414627161573102923607433090320179277671610300643404355071320574547978172804643689713658061727073583799926232447928084807271480907105164160218803436772120916769846640006994892963014681209474325126352918343633822216170465015417575085712486667049031156630330248483295378845977705768845568982648659663082815675862423982174439645808820112312246597885044363608470663062632140597054092953087086634469465946364094000250344434190141758451080479200496243682126594720025858320749262454548472214801242932157241717797038589730918598505976487226579287923250316024948190901401304012608064587197076789829169377403013728521603591052565993728476242775788920321106858821270793558317193244979487159374469040456731547296545636696152835462889704201126726550735885473876552519202458259370855974152917520573990482582748261231564253145403564832850020113348187528336104912473815636541884202140248160827553653248163862728074016227576688211927340962194647943125651762646405867075334227540158784523709504441841682077208210037707543953619829061705316717212951997670769766001476003988883529051111336500034548532138730658436632032788109588059338436946595300132823308606857650210950869313632788131147573286166940638908707474699361095836556774320723948569214625062856322652747219633686108745760144265940774906212803165926233533226011218180236185016611625523961907097487284385734135267709553297648456844151792080546174235283293831824081647853694046458244750892747506381932240097648014450581709585472254196496165678673010497168116237181173964516494358405540656805338303434973088145781479315665484040157762004023030663286923226017382341556666004390495959885588055717528727095726333953067717518713909923106201957282828237613058186994182890325114572043224398170727026830168515629307773397070490693073291061926304872146426003894968507336378790346409207157023659220517630383995915353491810896897869759941510680761967825409997665830114388832210357721149280475838683607294360492974646639658066162584370849296688910081524940575361873736805946385733290371560602685338342359449009343163503218503856308622211026636615996875890367310956820408586706308600985326737640401760124444185086558917114365161715585372863522957946829682328397726738052202085216855923195457961085199677324328152860857378234306707206812755387390004067475819352631122147631178429983946305053265601956040146265541266330332273165299100428982026349082055392032306495874795329920091212589129593985806758083238581085373679397043987210626841560405679853254767071099589192596460071658724171178690170771173887809346357992575637893325032918782625268560913574618282583856654520676887278488369047485429968229376515858019960207954674501396683330605712952228592625756916867558029518040454182995940336550018117981447884152908554506498243344690683660256266838014495457347217752918079078599075896253305099653866984753219428182738209718805033174737830037603954586260437328372897484310479776919437917505105626002824169429325000514426561492878762426376250246776860384864750763047817976336562984717987907231202269866186371536794140740669450522789489660651824210260902260947650923214839907194629921975757345227905229620115775478448022481396152066308336597676184048602092664044534425763161140093050019087552507818093856449394512576028212102853106512766136420152096705396424026612477082256697618642692436984165138216503452538352658022543453396310609099117679695319842150162535529516160411535370763529500056172455728092847490501223426918592085180571264133618748587616589255147708956693501272498801040184014685963785736701978499317714751961139789102375468971440261933073076579815869284022240323457874755599173701521481609789158202550594320866409196095680916446658318574076064106155847720547235671543100260820690487510173224644478184200580254838656604484297669010116001347637362245282730599802393622988874818268481094285454619300017539203570418462387005940128940215888302838901678675915399695904027017594334980740295582654855863203533177569641343391346121175619660776676713989791952641812285506981893784327381805050485027585753454375160154372205144593432881438642592828468499968800367487288983819124046085854673304748491670868227084318884771681716915664011219934940294879195673634330243263620600016567248722184730965528038819085019587550569352742021663564730893704158083116374636692133517413998042554465211680776713118202589591510567969634304765983262260908827010400236298948114458057749609038451960037457687736750295604029096605848849952867833771927682127198229223692925479817279486754341859358287544596478983583312772855463623198576791373389378583595739873303864066569263313988591839359808738526310354650748517831115684571453607195558187771958789274149493061599675689978890166230232050785079606629100957432340628356608999275031430391680699896243736269514143394103641085609250585777506638332541803557173446715907106669052202835059595761475104851301806896644559205836075981408906118696117725460871150590406458925247623228574072634330095316004411176059531602426630006028881441804521540530395621033348950678672518734610359888772127404343329485640269873217056126087380320169160269549184419497871291870209669298368446067351497303247783451688069063374018391089110973562873063840629959588626732547498253666050068728759928959744601496546713004989091442864326286746855967725315525912886847729520275701437774687912755442671919024948782819885569293713782418578450541920459004963812231113948298308885886569668650917272338770939018906956475069025584995791961063098408558351400616953024932754093769398273657686479510127462468699894389221403706461614677443781296033594504291953683403747612018433802042349224980410835993066742891439535918800999032765281718179108736946517902598149597430290757789861238453419707223019227284088677293753605914777957463636013921921376744748381242550380253316651003845969888599428298640114067642559386778693797066668180019329783312780300539380722092804069494974085901742605140669815275625030201918137853642648454329592663097567628556069192535128515686385701532127051621301428008687852852181973219237617322410074132105736769525322472372361487893264648711617619874216093344106649580420807523646778201320208702083186200552592283428911620316297313736033031104276400319036505344045260966763947291859976652963266384595191139363220813408577279587979948816200274463113237117805139556935313285179041894510465006509240575664468730143281484938536686693662812822531644541447559775352964014203872408931099443772138191317054099606236213837923284193946045698326599649684991784598287994467040637106567465588345719882216601932268993550131021079376585996025122505526831257454639739646944012001217199948450280511976503978674071776731562267457336356984060269865009322266038386928785608043627688079671729839578922100503412125542433694655846559073180132762354946467421052394233830412877377733625895655456121290770941848019965171035472723361863341854779920285400729912602351254747400940144053938443050321938571430989862219591090117621769093630231673925027130283639944651967901912638237564415425698153595502350797489768540918531982139441014554622554722589051392480459647774978373471855213738113280774299287638886472830778473737070357815295613883513361532185942487058094089768757288383604424939694232962980659691596311502412377564505098454867242171913239070043554256521886864290490300868758182813477289295011576710069064963231045130884953444365488727413860761246815110060605552962126634136413720420924216915208991078259916403497638727338870041210791287642377237949377661465381280037088051431502558390202276754166142190902973444959094764674694998638937708143740852148659960973326114928218753486490085786339717782499203299165511962318034361548253138646160122311784476413599679694932751573275661509777691263966649453820989502905107343943548868659527349898529182184059655871716064959510265381623069805460619342177709879660789624517486644493484430247006504760366878268185086798934839639801204051002980581268475364785173894684429348287610906254707609196175729321716074074321867743829497375826267779428649609989841701523143697713048567753851639964534053812994079333073833472658743247827645850272511516156673684616164954134245201473943825013896467392376387889855581329193360815448549472616204627994630151775031910665273080311274623735871279665168417753649880516737945714459391830192546131637724257966316885518731495287566445903266585188158243124538335480336886389595752817425175608927339249118204756957391463744260098918680463596133276899288107131865551466042348785926207432192049931045312309393848284469938526575413219225618118735103818651323217531411264786932188387487967678733120172493639509328284299617250030408898880273805429521734911828801978590166849833960878855638117142353090571486856602382754390483660395772262674089916531835840050313328152667553509261347787760380067138711713798097822730631220388118022777287567327446038116638567250159563489429742169310413840442798161344645386039207981803210773111298192351020019013157673322158740090529444974178614682446908873895101096779897399512387062673487103525877780003943896356905698731514505087582314460726424714235639650916772793127011255371397247318818397300925136187466209483375523091853180229814638062381389458740322848648168558941786667283456821809373767073974886145648032013789537698923062234766954425521284433072129551009536960854049570188656329192635514707551945082767422353719423739758954332607074684075613227259329760280271674247990350202268616960942985096385003229132425188499270983346218373178262801178545047865712926997884550670045140477364578290178086919731001732441040479925200459168024982537204522256416102111764218123709268722676100200878358411463494061938835602562543832487983216388274871478802637134087725843105741376446759227892632352789520434872220426153606043564830859902851974082412846500754687399881535271355436391527897700612620783311847704377994918296607629135356699881936646474533526680239449248348006192586411241988371400782593630141901046630175113602924633247967675452049714086371803557005431107937075774520699702061201633860155627135029607615726837231201638736259047735769039654266552373219819706549879033403291776592269800426367188680274105698044045505560772884070000536107709497774772966046927497919902086872012566141603970135000202979303910398547873167329608484763316175561238428487135385475167576594820901804177411718508107614790773930172359274909865497713032848908214991423621841421444375408717980133606669060200746552782248569658027708105050234738933580142104947292015531074735356846367324328998401727899709168131941374444412696839303131716105667206038741560208785255724849388243394404527911235243337697859674154148350817741524568221476510907423536903994428437474512414119488586039402432198680986829927044390927947520599421335511923639732540653035188088530637583104314959440568485065312105066682020026487491975367890900255011944372551864607728476368123382748092631835855959032833296228111535515021464702055407803791205677852341459442241324970429735234298072847004543890468585106715761890166871961463701642089062976307966683068840165511375159622384472499214698309578467181450989186972032014957304488314671870556342257406560006168048212115694692493659830101029678490088182407877846501543836628248521607578114606288787547521689253722818901695001996539434044309487723857934689696781694529638179647136794821070583245250395516803424072501294054933465575517660485927101942982180101883782836327320407599686878722211139853198331739669615756504737269981264636085471862807798384313254154098278488786793876056115127246450336537213100138754828704873379765543299968535571934482185382834275833629172897083118255290822924128627907383434640038439870114158582006478154424642773020196928026978945530434092407403218705574437914048730660043671869729499800068934616737859399259647602101679266583171894575750445690927151817968068235263346679376413627145227623012498682825135793358040377350762942556269245097532701569741189500653895740205010781191237275722279352000671207501314666589795578567998632858338486978106945433921109612868822546847568096489446840343629651261545648390756924781035493332755019810487514690733789604131450504750465634149101391495565028537231955612383719880226150466406852854087389341594095829166317725353460132097122539158259920693849653575283647848618828527275833481145968571799835961883967037638079061082347132457308154934258846036662282822517916459480806177071867168950895295851004055084421436782097220548458823174950329509306868861452914874633975545372009950317931724113927662397874739818717233817287421830235384888877948472458440302066299437808060120000631982711123479801100745043110307265264420162593464529789417666867922213590326981285587562375059315060716250157268872061652491053247805742018234393203130465235048866621326479840840826847962033456610489939518151300610479562843546462879218102178508589456309522469430544512424351356239138820881549994482202382811549395417637378068615154140329688219421220953749704810857065806846253239198790973429385596726600633244256257574066666720459825977607420345202732391769895607682765855340119356299839170059964160809094117461426071973222406583103529259004551704117136733340919498486879054750007305781693738499917828276098224915650872002886654999349800710547644501097791737813125836424791797572201299363611361902883733129939098507218237405166908834975521868003854010461652232665280789847665228335416121647291702327802933121189013692017012163158474753520394705526847793820793703641407960754496830736633794093622029770962328360306038220182538576738317902354679286810213621962648436088557785656578574712264255957784621554141899272324242957191913897068995682448175477024102533206583456904761516785870411513537994956923105209059266363156860012511753259267134624225521166332620964848547171895074820653604393478601905090618330586671493046158853503794941871645137792201927275855826450966041631726242144879310348093742300172806963827513871940702841447668095778195242787032489148670038115737928387270132038295746883596508661479047543846119491604054628853072622461455444322054628841480670857155337032787218714596600486071583698207933853263617786211682776718758311428953362817954865105738513260229716272391904450285616143426625751893222850740866421060348977294904739050778174771345004525660309546514224394913681815283427261822644521303766077448443151385390950514860192340604258812987012731117137774777651105834445798792533087209803582117390334881159627399054945597839193663722197652223838211848247012102124985427870872701549621501969361083596625538234238786510674851975105557500724850233623299881531494314345955482752757271010254568836167778743070792636291175991753203821582241978567300290405058500882677865074594607154581819379797512575096744577674236496654683763032855833627638140985665255654544900703329195663707459514958915621772790997809495858280112730323345296829206993672980354474125749975745207483621206850240436117772129756562199997651320904456768258096978928759877393449686383587683777176005901146053974602612895736299695979924736023486011646886178874651027735735896712940618913989957905822111536310101109084681941245765797721267320267539911575722685607574772326717028356614296481986814377283905677226013057577510872711313501221083434574535686821800968932450068825793902570226357176218495195864202910198681125483161823437432742111158394700260610656634105248323391184092970102158467522917785713220149043462975267238259820105011290353893377134192178967203336383394855411670775992220798011660851456791770127825484581612775100325377303177505387208483463735552902996662721972491471377163609226903299638763575963071096906956105190021521022787932249379412109353399345382557152103866148877792301666527374244631604611104173118345768006752925873253741992120668683462823338277846534369588965054865903952405324254416658121028204744066620595112632845572906079516403051318142765792684625769976223886977370101132657075100657665743491386804682256682321641028760962096483217797098757734472328330140792411095433348521305299810164840425399931762048150245600874955658375531592309193507848695143561127026767598487625979475876141797740955887184506513219312463653293202371836640292169354624015958915629940526731246080456573780889419587766896158198608965766651220031570653369782339997389090106907176355646683153031687972432026889606155213288629234844105407783703496421945886185545264781444111485764054483926235865940487814496664147096248468540202998295402216265646146504730730189521165732935415322713119452380431837530344003120450369214597243819062276137717066496648455363595235108783099261812778134168156198010025832952877254993715228746384160883771161696320937528622263348252467506802441780799952515847938577486534431336966065284385249826039560260835758299860669421464620095808003192842274289421522765393433612336474418663313824222216466264814922668542137589511833966453389762733500068721672004200772634344732457141463527192972875170265185619726413502558837622190274749686497517522858634002781270936589994742303516427805846866375226819464672104779812154045568034393612362325833037179402209776288501591031324716517100262140542251271197831193375528164005467233760245489098359950178792093612800444462694924433538647913473106594854286661193981637465728934174615253024423578370578438280678998879874660459477767050304782398665672969723993634090257571471167874905815806229399271081194034773451884582597131611948779720364622202608634059538935464870649564952571458620362216655193407034665458793131298375029022405738525049922330222427613603196737963857331721865526326932386128210803561392678330430610899531155904895426837945789883389579918876988587517050387498904028785093029198338183329154344850305208307466119237786298712828673430189148072071289706301941151833265376273932242569235030415334305765449663856285529987037887237651753849452247332788727479119945578535661993873912658276585234102352375182964462572429192649371442081684793908889763362400563345051539643460098726641076285603244960156447742313098878075685858662280556874541884974139384681806339322946817060615345753621861300237440231113397892910447445434654545080801428215552282379268172960772694980234551099740904305053634639727196433809892312357709316844718227167810317093930057008222477558085715105871207103688727685978937469915085595105429913271066405209590508288891919809593887059208693165325989696502961239256290365694368363993012726982242293838182518043306240068728202477915610307739906234778022329225242000906739301071436867969040878970207225945824056168191957120630013736742028282567227477755727298176102030743843212307313446608306820500244579781037981729801415368053523595948869970634970189029306248987589589356686978421632946178309632261457284868645738529579009637160951888077908624637889004931869164989606040146592756635481250894467224265326135222468390449302292319282045125237590350654430764060498852157439947005316708197148402898653457134559513247720407495141762367129525469564802872290035144910940157909181997316802658024063951395343779731588700161904684583893843747310635180461484957092155009388690878415099571794688139347365744132228746374614485307533614865752130992194091637059372147364689807769018288642997243600406101612978602480209914872742259695095476114250411498240483736364922372001224282858358936545916010749559662517272034719148639805569275501233059720355826405007384671119503028539365145481801558723669348673226397112601527314845965314998217318148176216511264817804332986652376198863275833150880194548254923223787532007975834275834980386767746225254153826981187621075044205582892847871883799314865446385055883131586154499526049010521366431806990726033962568564277391356044129145088892698601163162186019257994385274388120839977978675662830807175908626455687475371767125665928111114278212407959118815249402488324056348072948603496506014258691340747942455600641779843287074845472214708357760162021538842511905170246612685402071435156928259765986250928251153582805449728341051664466346174586087684795408709592564750960000659212266148142734839285859905485367096932530444486169454626960307851453461190009144366858094061919500835623246046037394775757947562793416405268773217883141046779432709575297615596850087511251017268641104122484492574272303151407625897250888017954660771867592515532509234892982995069802900832857061769472798699936861231498564770633621901700395938045210976401947062865426757589301835407865150880425762889576410902757776377012346218735689825855482865084095515398144346953986997768312136013795461483028061097472538611340909026521529334233294652976777545629904136955269251209717156669789059274905253675477324351711748385044787998613314779297917402962678530027308148810423221033870538043874169195045339383002961733776390418961035715271844908959451335231807553901511183144357823145174614256408614299264673221704522540987082741048848088974059558540240452416435808643676835829870746765713034400886690765378457107453698278021510374082181692016896506265017854866612504543505427695460233311738870038557114214756007647298782574494511300184307025844946372928969253679413866426098890308693553167906739209001459873638566090536041399182013173952616210398578402804803118728587336666019849410701075543424097754534737648484261119912069422957212070598534046952258585615895336917860332643038900901811473851012607297440941449663966729485192050190789657998244051121030197012797995727441738807563272980588384517582405735878919896024476096152531877103302782943174799133124648629794903478402980803036849229630569149273932718487509561031210020768884016711189455958950506769287755227448197584130612817791839791624219523668039085642002732806422598211231624123328121120619510503126195740100203616827911982686228063967060502809992156472312951538511702421557720416476927205032248942439727518030214504027474208100858253271047058862961699556241904861832733667460284169791666356713411244192273304757708583187482762861891297549100056696005884478630940929510041765912734447276688430287881434129308602924948993688638040206942396978195799204539835308770508931914760941271821837173919617013802602476393913475709275039977998828101532358843919863910158082969254440281500178936302618226825647371915231980368038070249553376465418866187335292023132384826535208737962902430989545277341357051702331392702738831069322341794790251251798650189242106545020004577802808291002952871892295224622337507467653526130633276324385068840484018045621566267146506131788106815529580791375755055199939082122667539847260843325512400010713620792579919832463630972005432660223670912844802982673820889205065854305565944275996000351170152890659269106218000383794142824318362294276573678533523943660155294787669872050626923408610648944533343759422763047326627261637623305791243805371623421684217087582915985309519585540332215428624361565644719288122777555858648521876819228173052109473558294688215754214944033224570637136828376207885248121893981430287358570322568171783042236180629763001976335631512550542004187350131522355898913452595090728922023870130115653643679865171501570791945153099641662645863381275826638447585716760525612012200705953150847614005323077988102060137517039390058919853065973324095656766694092595720201607393727479663618188270135183107268872952882762822402633446552865256079104084378860177512253435158465606831513895441802682645265853399930261004090310241588680082409758989382773831515252877251535059122513671213222339744718945034285092545740241646501366902558076139970894652100619078213590519756989888127299043638845347314602711215999836030382412372999180346529303295605094818359146816276729498803564576858365625484752376083995687673098432192054661255844849034021221404327060124921327852581427339149274801260875827018169481557995735182177109780721506775114065423959751005514357528443397994243660070149957833982568885770915963429621441725529197480389181338439427932259570669735520262687837695374123211853251365234737268671617803947997322911404589448358225391252786822603723215258167178263457313000960406512314558951577350371647611007465558108042097875580206921933803893348288177346797075712980629870235385746188102736827926162646913916328934765133772326999297559342392852433272455179656760213462474647615989674827918544351622292215163354939002679698160775534668533639194201188142754712111393895974364668595715548003081713646145420052222763246767963461092541479083413159064263975860418320665694746358424083084649517807906656482452052956631121073723359194146263543783009847972682827115300579823177504761263885218432672277183989194431896751123762869162452797186096327259628776433008961139728979014991917717595114224196256171569832161397868287787553556974295676637675521

ApproximationsEdit

Notation Lower bound Upper bound
Scientific notation \(1.482\times10^{388341}\) \(1.483\times10^{388341}\)
Arrow notation \(1198\uparrow126148\) \(2076\uparrow117068\)
Steinhaus-Moser Notation 6[3][3] 7[3][3]
Copy notation 3[3[6]] 4[4[6]]
Taro's multivariable Ackermann function A(3,A(3,17)) A(3,A(3,18))
Pound-Star Notation #*((36356))*273 #*((36357))*273
BEAF {1198,126148} {2076,117068}
Hyper-E notation E388341 2E388341
Bashicu matrix system (0)(1)[17] (0)(1)[18]
Hyperfactorial array notation (8!)! (9!)!
Fast-growing hierarchy \(f_2(f_2(16))\) \(f_2(f_2(17))\)
Hardy hierarchy \(H_{\omega^22}(16)\) \(H_{\omega^22}(17)\)
Slow-growing hierarchy \(g_{\omega^{\omega^26+\omega4+28}148}(170)\) \(g_{\omega^{\omega^210+\omega22+59}107}(134)\)

Sources Edit

  1. The Prime Database: 2996863034895*2^1290000-1
  2. The Prime Database: 2996863034895*2^1290000+1